From 5e1e2901ffd9a1c71c0a236adf63f59532e5a442 Mon Sep 17 00:00:00 2001 From: scawful Date: Tue, 31 Dec 2024 17:50:19 -0500 Subject: [PATCH] Refactor overworld constants --- src/app/rom.h | 24 ++++++++++----------- src/app/zelda3/overworld/overworld.cc | 4 ++-- src/app/zelda3/overworld/overworld.h | 5 +++-- src/app/zelda3/overworld/overworld_map.cc | 26 ++++++++++------------- 4 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/app/rom.h b/src/app/rom.h index 20d63a22..c6e9f46b 100644 --- a/src/app/rom.h +++ b/src/app/rom.h @@ -46,10 +46,10 @@ struct VersionConstants { uint32_t kOverworldGfxGroups2; uint32_t kCompressedAllMap32PointersHigh; uint32_t kCompressedAllMap32PointersLow; - uint32_t overworldMapPaletteGroup; - uint32_t overlayPointers; - uint32_t overlayPointersBank; - uint32_t overworldTilesType; + uint32_t kOverworldMapPaletteGroup; + uint32_t kOverlayPointers; + uint32_t kOverlayPointersBank; + uint32_t kOverworldTilesType; uint32_t kOverworldGfxPtr1; uint32_t kOverworldGfxPtr2; uint32_t kOverworldGfxPtr3; @@ -72,10 +72,10 @@ static const std::map kVersionConstantsMap = { 0x6073, // kOverworldGfxGroups2 0x1794D, // kCompressedAllMap32PointersHigh 0x17B2D, // kCompressedAllMap32PointersLow - 0x75504, // overworldMapPaletteGroup - 0x77664, // overlayPointers - 0x0E, // overlayPointersBank - 0x71459, // overworldTilesType + 0x75504, // kOverworldMapPaletteGroup + 0x77664, // kOverlayPointers + 0x0E, // kOverlayPointersBank + 0x71459, // kOverworldTilesType 0x4F80, // kOverworldGfxPtr1 0x505F, // kOverworldGfxPtr2 0x513E, // kOverworldGfxPtr3 @@ -93,10 +93,10 @@ static const std::map kVersionConstantsMap = { 0x60B3, // kOverworldGfxGroups2 0x176B1, // kCompressedAllMap32PointersHigh 0x17891, // kCompressedAllMap32PointersLow - 0x67E74, // overworldMapPaletteGroup - 0x3FAF4, // overlayPointers - 0x07, // overlayPointersBank - 0x7FD94, // overworldTilesType + 0x67E74, // kOverworldMapPaletteGroup + 0x3FAF4, // kOverlayPointers + 0x07, // kOverlayPointersBank + 0x7FD94, // kOverworldTilesType 0x4FC0, // kOverworldGfxPtr1 0x509F, // kOverworldGfxPtr2 0x517E, // kOverworldGfxPtr3 diff --git a/src/app/zelda3/overworld/overworld.cc b/src/app/zelda3/overworld/overworld.cc index d4b5d0d0..6bb874bd 100644 --- a/src/app/zelda3/overworld/overworld.cc +++ b/src/app/zelda3/overworld/overworld.cc @@ -291,9 +291,9 @@ absl::Status Overworld::LoadOverworldMaps() { } void Overworld::LoadTileTypes() { - for (int i = 0; i < 0x200; i++) { + for (int i = 0; i < kNumTileTypes; ++i) { all_tiles_types_[i] = - rom()->data()[rom()->version_constants().overworldTilesType + i]; + rom()->data()[rom()->version_constants().kOverworldTilesType + i]; } } diff --git a/src/app/zelda3/overworld/overworld.h b/src/app/zelda3/overworld/overworld.h index 0af958f0..d936e927 100644 --- a/src/app/zelda3/overworld/overworld.h +++ b/src/app/zelda3/overworld/overworld.h @@ -93,6 +93,7 @@ constexpr int kOverworldEntranceExpandedFlagPos = 0x0DB895; // 0xB8 constexpr int kOverworldCompressedMapPos = 0x058000; constexpr int kOverworldCompressedOverflowPos = 0x137FFF; +constexpr int kNumTileTypes = 0x200; constexpr int kMap16Tiles = 0x78000; constexpr int kNumOverworldMaps = 160; constexpr int kNumTile16Individual = 4096; @@ -242,8 +243,8 @@ class Overworld : public SharedRom, public core::ExperimentFlags { OverworldMapTiles map_tiles_; - std::array map_parent_; - std::array all_tiles_types_; + std::array map_parent_; + std::array all_tiles_types_; std::vector tiles16_; std::vector tiles32_; std::vector tiles32_list_; diff --git a/src/app/zelda3/overworld/overworld_map.cc b/src/app/zelda3/overworld/overworld_map.cc index b6bac1b7..c10f6cd1 100644 --- a/src/app/zelda3/overworld/overworld_map.cc +++ b/src/app/zelda3/overworld/overworld_map.cc @@ -377,12 +377,12 @@ void OverworldMap::LoadMainBlocksets() { // of the 5A sheet, so this will need some special manipulation to make work // during the BuildBitmap step (or a new one specifically for animating). void OverworldMap::DrawAnimatedTiles() { - std::cout << "static_graphics_[6] = " - << core::HexByte(static_graphics_[6]) << std::endl; - std::cout << "static_graphics_[7] = " - << core::HexByte(static_graphics_[7]) << std::endl; - std::cout << "static_graphics_[8] = " - << core::HexByte(static_graphics_[8]) << std::endl; + std::cout << "static_graphics_[6] = " << core::HexByte(static_graphics_[6]) + << std::endl; + std::cout << "static_graphics_[7] = " << core::HexByte(static_graphics_[7]) + << std::endl; + std::cout << "static_graphics_[8] = " << core::HexByte(static_graphics_[8]) + << std::endl; if (static_graphics_[7] == 0x5B) { static_graphics_[7] = 0x5A; } else { @@ -436,7 +436,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current, // contains 7 colors width wide) There is 16 color per line so 16*Y // Left side of the palette - Main, Animated - std::vector new_palette(256); + std::array new_palette = {}; // Main Palette, Location 0,2 : 35 colors [7x5] int k = 0; @@ -487,8 +487,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current, k = 0; for (int y = 8; y < 9; y++) { for (int x = 1; x < 8; x++) { - auto pal_group = rom.palette_group().sprites_aux1; - new_palette[x + (16 * y)] = pal_group[1][k]; + new_palette[x + (16 * y)] = rom.palette_group().sprites_aux1[1][k]; k++; } } @@ -497,8 +496,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current, k = 0; for (int y = 8; y < 9; y++) { for (int x = 9; x < 16; x++) { - auto pal_group = rom.palette_group().sprites_aux3; - new_palette[x + (16 * y)] = pal_group[0][k]; + new_palette[x + (16 * y)] = rom.palette_group().sprites_aux3[0][k]; k++; } } @@ -507,8 +505,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current, k = 0; for (int y = 9; y < 13; y++) { for (int x = 1; x < 16; x++) { - auto pal_group = rom.palette_group().global_sprites; - new_palette[x + (16 * y)] = pal_group[0][k]; + new_palette[x + (16 * y)] = rom.palette_group().global_sprites[0][k]; k++; } } @@ -535,8 +532,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current, k = 0; for (int y = 15; y < 16; y++) { for (int x = 1; x < 16; x++) { - auto pal_group = rom.palette_group().armors; - new_palette[x + (16 * y)] = pal_group[0][k]; + new_palette[x + (16 * y)] = rom.palette_group().armors[0][k]; k++; } }