From 5532623e16e5d6c702b91972bd366ec59d9cc8ad Mon Sep 17 00:00:00 2001 From: scawful Date: Thu, 29 Aug 2024 13:08:36 -0400 Subject: [PATCH] game constants housekeeping --- src/app/editor/overworld/refresh.cc | 2 +- src/app/editor/sprite/zsprite.h | 5 ++- src/app/zelda3/overworld/overworld.cc | 43 +++++++++++++---------- src/app/zelda3/overworld/overworld.h | 17 +++------ src/app/zelda3/overworld/overworld_map.cc | 40 ++++++++++----------- 5 files changed, 51 insertions(+), 56 deletions(-) diff --git a/src/app/editor/overworld/refresh.cc b/src/app/editor/overworld/refresh.cc index f3675944..9c1aa368 100644 --- a/src/app/editor/overworld/refresh.cc +++ b/src/app/editor/overworld/refresh.cc @@ -12,7 +12,7 @@ void OverworldEditor::RefreshChildMap(int map_index) { status_ = overworld_.mutable_overworld_map(map_index)->BuildTileset(); PRINT_IF_ERROR(status_); status_ = overworld_.mutable_overworld_map(map_index)->BuildTiles16Gfx( - overworld_.tiles16().size()); + *overworld_.mutable_tiles16(), overworld_.tiles16().size()); PRINT_IF_ERROR(status_); status_ = overworld_.mutable_overworld_map(map_index)->BuildBitmap( overworld_.GetMapTiles(current_world_)); diff --git a/src/app/editor/sprite/zsprite.h b/src/app/editor/sprite/zsprite.h index 19717403..1bec0596 100644 --- a/src/app/editor/sprite/zsprite.h +++ b/src/app/editor/sprite/zsprite.h @@ -1,8 +1,6 @@ #ifndef YAZE_APP_EDITOR_SPRITE_ZSPRITE_H #define YAZE_APP_EDITOR_SPRITE_ZSPRITE_H -#include "imgui/imgui.h" - #include #include #include @@ -11,6 +9,7 @@ #include "absl/status/status.h" #include "app/gfx/snes_tile.h" +#include "imgui/imgui.h" namespace yaze { namespace app { @@ -46,7 +45,7 @@ struct OamTile { struct AnimationGroup { AnimationGroup() = default; AnimationGroup(uint8_t fs, uint8_t fe, uint8_t fsp, std::string fn) - : frame_start(fs), frame_end(fe), frame_speed(fsp), frame_name(fn) {} + : frame_name(fn), frame_start(fs), frame_end(fe), frame_speed(fsp) {} std::string frame_name; uint8_t frame_start; diff --git a/src/app/zelda3/overworld/overworld.cc b/src/app/zelda3/overworld/overworld.cc index 33cdd999..a6bef5d7 100644 --- a/src/app/zelda3/overworld/overworld.cc +++ b/src/app/zelda3/overworld/overworld.cc @@ -330,7 +330,8 @@ absl::Status Overworld::LoadOverworldMaps() { void Overworld::LoadTileTypes() { for (int i = 0; i < 0x200; i++) { - all_tiles_types_[i] = rom()->data()[overworldTilesType + i]; + all_tiles_types_[i] = + rom()->data()[rom()->version_constants().overworldTilesType + i]; } } @@ -632,8 +633,9 @@ absl::Status Overworld::SaveOverworldMaps() { core::Logger::log("Saving map pointers1 and compressed data for map " + core::UppercaseHexByte(i) + " at " + core::UppercaseHexLong(snes_pos)); - RETURN_IF_ERROR( - rom()->WriteLong(kCompressedAllMap32PointersLow + (3 * i), snes_pos)); + RETURN_IF_ERROR(rom()->WriteLong( + rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i), + snes_pos)); RETURN_IF_ERROR(rom()->WriteVector(pos, a)); pos += size_a; } else { @@ -642,8 +644,9 @@ absl::Status Overworld::SaveOverworldMaps() { core::Logger::log("Saving map pointers1 for map " + core::UppercaseHexByte(i) + " at " + core::UppercaseHexLong(snes_pos)); - RETURN_IF_ERROR( - rom()->WriteLong(kCompressedAllMap32PointersLow + (3 * i), snes_pos)); + RETURN_IF_ERROR(rom()->WriteLong( + rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i), + snes_pos)); } if ((pos + b.size()) >= 0x5FE70 && (pos + b.size()) <= 0x60000) { @@ -666,7 +669,8 @@ absl::Status Overworld::SaveOverworldMaps() { core::UppercaseHexByte(i) + " at " + core::UppercaseHexLong(snes_pos)); RETURN_IF_ERROR(rom()->WriteLong( - kCompressedAllMap32PointersHigh + (3 * i), snes_pos)); + rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i), + snes_pos)); RETURN_IF_ERROR(rom()->WriteVector(pos, b)); pos += size_b; } else { @@ -676,7 +680,8 @@ absl::Status Overworld::SaveOverworldMaps() { core::UppercaseHexByte(i) + " at " + core::UppercaseHexLong(snes_pos)); RETURN_IF_ERROR(rom()->WriteLong( - kCompressedAllMap32PointersHigh + (3 * i), snes_pos)); + rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i), + snes_pos)); } } @@ -1433,9 +1438,9 @@ absl::Status Overworld::SaveItems() { absl::Status Overworld::SaveMapProperties() { core::Logger::log("Saving Map Properties"); for (int i = 0; i < 64; i++) { - RETURN_IF_ERROR( - rom()->WriteByte(mapGfx + i, overworld_maps_[i].area_graphics())); - RETURN_IF_ERROR(rom()->WriteByte(overworldMapPalette + i, + RETURN_IF_ERROR(rom()->WriteByte(kAreaGfxIdPtr + i, + overworld_maps_[i].area_graphics())); + RETURN_IF_ERROR(rom()->WriteByte(kOverworldMapPaletteIds + i, overworld_maps_[i].area_palette())); RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + i, overworld_maps_[i].sprite_graphics(0))); @@ -1443,30 +1448,30 @@ absl::Status Overworld::SaveMapProperties() { overworld_maps_[i].sprite_graphics(1))); RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 128 + i, overworld_maps_[i].sprite_graphics(2))); - RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + i, overworld_maps_[i].sprite_palette(0))); - RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 64 + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 64 + i, overworld_maps_[i].sprite_palette(1))); - RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 128 + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 128 + i, overworld_maps_[i].sprite_palette(2))); } for (int i = 64; i < 128; i++) { - RETURN_IF_ERROR( - rom()->WriteByte(mapGfx + i, overworld_maps_[i].area_graphics())); + RETURN_IF_ERROR(rom()->WriteByte(kAreaGfxIdPtr + i, + overworld_maps_[i].area_graphics())); RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + i, overworld_maps_[i].sprite_graphics(0))); RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 64 + i, overworld_maps_[i].sprite_graphics(1))); RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 128 + i, overworld_maps_[i].sprite_graphics(2))); - RETURN_IF_ERROR(rom()->WriteByte(overworldMapPalette + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldMapPaletteIds + i, overworld_maps_[i].area_palette())); - RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 64 + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 64 + i, overworld_maps_[i].sprite_palette(0))); - RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 128 + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 128 + i, overworld_maps_[i].sprite_palette(1))); - RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 192 + i, + RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 192 + i, overworld_maps_[i].sprite_palette(2))); } diff --git a/src/app/zelda3/overworld/overworld.h b/src/app/zelda3/overworld/overworld.h index eddeefee..62eae0e9 100644 --- a/src/app/zelda3/overworld/overworld.h +++ b/src/app/zelda3/overworld/overworld.h @@ -376,13 +376,8 @@ class OverworldEntrance : public GameEntity { } }; -constexpr int kCompressedAllMap32PointersHigh = 0x1794D; -constexpr int kCompressedAllMap32PointersLow = 0x17B2D; -constexpr int overworldPalGroup1 = 0xDE6C8; -constexpr int overworldPalGroup2 = 0xDE86C; -constexpr int overworldPalGroup3 = 0xDE604; -constexpr int overworldMapPalette = 0x7D1C; -constexpr int overworldSpritePalette = 0x7B41; +constexpr int kOverworldMapPaletteIds = 0x7D1C; +constexpr int kOverworldSpritePaletteIds = 0x7B41; constexpr int overworldMapPaletteGroup = 0x75504; constexpr int overworldSpritePaletteGroup = 0x75580; constexpr int overworldSpriteset = 0x7A41; @@ -392,12 +387,8 @@ constexpr int overworldSpritesBegining = 0x4C881; constexpr int overworldSpritesAgahnim = 0x4CA21; constexpr int overworldSpritesZelda = 0x4C901; -constexpr int mapGfx = 0x7C9C; -constexpr int overlayPointers = 0x77664; -constexpr int overlayPointersBank = 0x0E; - -constexpr int overworldTilesType = 0x71459; -constexpr int overworldMessages = 0x3F51D; +constexpr int kAreaGfxIdPtr = 0x7C9C; +constexpr int kOverworldMessageIds = 0x3F51D; constexpr int overworldMusicBegining = 0x14303; constexpr int overworldMusicZelda = 0x14303 + 0x40; diff --git a/src/app/zelda3/overworld/overworld_map.cc b/src/app/zelda3/overworld/overworld_map.cc index 3b43df3a..c6763602 100644 --- a/src/app/zelda3/overworld/overworld_map.cc +++ b/src/app/zelda3/overworld/overworld_map.cc @@ -48,8 +48,8 @@ absl::Status OverworldMap::BuildMap(int count, int game_state, int world, area_graphics_ = 0x51; area_palette_ = 0x00; } else { - area_graphics_ = rom_[mapGfx + parent_]; - area_palette_ = rom_[overworldMapPalette + parent_]; + area_graphics_ = rom_[kAreaGfxIdPtr + parent_]; + area_palette_ = rom_[kOverworldMapPaletteIds + parent_]; } initialized_ = true; @@ -75,11 +75,11 @@ void OverworldMap::LoadAreaInfo() { } } - message_id_ = rom_.toint16(overworldMessages + (parent_ * 2)); + message_id_ = rom_.toint16(kOverworldMessageIds + (parent_ * 2)); if (index_ < 0x40) { - area_graphics_ = rom_[mapGfx + parent_]; - area_palette_ = rom_[overworldMapPalette + parent_]; + area_graphics_ = rom_[kAreaGfxIdPtr + parent_]; + area_palette_ = rom_[kOverworldMapPaletteIds + parent_]; area_music_[0] = rom_[overworldMusicBegining + parent_]; area_music_[1] = rom_[overworldMusicZelda + parent_]; @@ -90,21 +90,21 @@ void OverworldMap::LoadAreaInfo() { sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x40]; sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80]; - sprite_palette_[0] = rom_[overworldSpritePalette + parent_]; - sprite_palette_[1] = rom_[overworldSpritePalette + parent_ + 0x40]; - sprite_palette_[2] = rom_[overworldSpritePalette + parent_ + 0x80]; + sprite_palette_[0] = rom_[kOverworldSpritePaletteIds + parent_]; + sprite_palette_[1] = rom_[kOverworldSpritePaletteIds + parent_ + 0x40]; + sprite_palette_[2] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; } else if (index_ < 0x80) { - area_graphics_ = rom_[mapGfx + parent_]; - area_palette_ = rom_[overworldMapPalette + parent_]; + area_graphics_ = rom_[kAreaGfxIdPtr + parent_]; + area_palette_ = rom_[kOverworldMapPaletteIds + parent_]; area_music_[0] = rom_[overworldMusicDW + (parent_ - 64)]; sprite_graphics_[0] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80]; - sprite_palette_[0] = rom_[overworldSpritePalette + parent_ + 0x80]; - sprite_palette_[1] = rom_[overworldSpritePalette + parent_ + 0x80]; - sprite_palette_[2] = rom_[overworldSpritePalette + parent_ + 0x80]; + sprite_palette_[0] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; + sprite_palette_[1] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; + sprite_palette_[2] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; } else { if (index_ == 0x94) { parent_ = 0x80; @@ -139,17 +139,17 @@ void OverworldMap::LoadAreaInfo() { area_palette_ = 0x00; } else { // pyramid bg use 0x5B map - area_graphics_ = rom_[mapGfx + parent_]; - area_palette_ = rom_[overworldMapPalette + parent_]; + area_graphics_ = rom_[kAreaGfxIdPtr + parent_]; + area_palette_ = rom_[kOverworldMapPaletteIds + parent_]; } sprite_graphics_[0] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80]; - sprite_palette_[0] = rom_[overworldSpritePalette + parent_ + 0x80]; - sprite_palette_[1] = rom_[overworldSpritePalette + parent_ + 0x80]; - sprite_palette_[2] = rom_[overworldSpritePalette + parent_ + 0x80]; + sprite_palette_[0] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; + sprite_palette_[1] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; + sprite_palette_[2] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80]; } } @@ -571,9 +571,9 @@ absl::StatusOr OverworldMap::GetPalette( } absl::Status OverworldMap::LoadPalette() { - int previousPalId = index_ > 0 ? rom_[overworldMapPalette + parent_ - 1] : 0; + int previousPalId = index_ > 0 ? rom_[kOverworldMapPaletteIds + parent_ - 1] : 0; int previousSprPalId = - index_ > 0 ? rom_[overworldSpritePalette + parent_ - 1] : 0; + index_ > 0 ? rom_[kOverworldSpritePaletteIds + parent_ - 1] : 0; area_palette_ = std::min((int)area_palette_, 0xA3);