Refactor overworld constants

This commit is contained in:
scawful
2024-12-31 17:50:19 -05:00
parent 1a5d5befb9
commit 5e1e2901ff
4 changed files with 28 additions and 31 deletions

View File

@@ -46,10 +46,10 @@ struct VersionConstants {
uint32_t kOverworldGfxGroups2; uint32_t kOverworldGfxGroups2;
uint32_t kCompressedAllMap32PointersHigh; uint32_t kCompressedAllMap32PointersHigh;
uint32_t kCompressedAllMap32PointersLow; uint32_t kCompressedAllMap32PointersLow;
uint32_t overworldMapPaletteGroup; uint32_t kOverworldMapPaletteGroup;
uint32_t overlayPointers; uint32_t kOverlayPointers;
uint32_t overlayPointersBank; uint32_t kOverlayPointersBank;
uint32_t overworldTilesType; uint32_t kOverworldTilesType;
uint32_t kOverworldGfxPtr1; uint32_t kOverworldGfxPtr1;
uint32_t kOverworldGfxPtr2; uint32_t kOverworldGfxPtr2;
uint32_t kOverworldGfxPtr3; uint32_t kOverworldGfxPtr3;
@@ -72,10 +72,10 @@ static const std::map<Z3_Version, VersionConstants> kVersionConstantsMap = {
0x6073, // kOverworldGfxGroups2 0x6073, // kOverworldGfxGroups2
0x1794D, // kCompressedAllMap32PointersHigh 0x1794D, // kCompressedAllMap32PointersHigh
0x17B2D, // kCompressedAllMap32PointersLow 0x17B2D, // kCompressedAllMap32PointersLow
0x75504, // overworldMapPaletteGroup 0x75504, // kOverworldMapPaletteGroup
0x77664, // overlayPointers 0x77664, // kOverlayPointers
0x0E, // overlayPointersBank 0x0E, // kOverlayPointersBank
0x71459, // overworldTilesType 0x71459, // kOverworldTilesType
0x4F80, // kOverworldGfxPtr1 0x4F80, // kOverworldGfxPtr1
0x505F, // kOverworldGfxPtr2 0x505F, // kOverworldGfxPtr2
0x513E, // kOverworldGfxPtr3 0x513E, // kOverworldGfxPtr3
@@ -93,10 +93,10 @@ static const std::map<Z3_Version, VersionConstants> kVersionConstantsMap = {
0x60B3, // kOverworldGfxGroups2 0x60B3, // kOverworldGfxGroups2
0x176B1, // kCompressedAllMap32PointersHigh 0x176B1, // kCompressedAllMap32PointersHigh
0x17891, // kCompressedAllMap32PointersLow 0x17891, // kCompressedAllMap32PointersLow
0x67E74, // overworldMapPaletteGroup 0x67E74, // kOverworldMapPaletteGroup
0x3FAF4, // overlayPointers 0x3FAF4, // kOverlayPointers
0x07, // overlayPointersBank 0x07, // kOverlayPointersBank
0x7FD94, // overworldTilesType 0x7FD94, // kOverworldTilesType
0x4FC0, // kOverworldGfxPtr1 0x4FC0, // kOverworldGfxPtr1
0x509F, // kOverworldGfxPtr2 0x509F, // kOverworldGfxPtr2
0x517E, // kOverworldGfxPtr3 0x517E, // kOverworldGfxPtr3

View File

@@ -291,9 +291,9 @@ absl::Status Overworld::LoadOverworldMaps() {
} }
void Overworld::LoadTileTypes() { void Overworld::LoadTileTypes() {
for (int i = 0; i < 0x200; i++) { for (int i = 0; i < kNumTileTypes; ++i) {
all_tiles_types_[i] = all_tiles_types_[i] =
rom()->data()[rom()->version_constants().overworldTilesType + i]; rom()->data()[rom()->version_constants().kOverworldTilesType + i];
} }
} }

View File

@@ -93,6 +93,7 @@ constexpr int kOverworldEntranceExpandedFlagPos = 0x0DB895; // 0xB8
constexpr int kOverworldCompressedMapPos = 0x058000; constexpr int kOverworldCompressedMapPos = 0x058000;
constexpr int kOverworldCompressedOverflowPos = 0x137FFF; constexpr int kOverworldCompressedOverflowPos = 0x137FFF;
constexpr int kNumTileTypes = 0x200;
constexpr int kMap16Tiles = 0x78000; constexpr int kMap16Tiles = 0x78000;
constexpr int kNumOverworldMaps = 160; constexpr int kNumOverworldMaps = 160;
constexpr int kNumTile16Individual = 4096; constexpr int kNumTile16Individual = 4096;
@@ -242,8 +243,8 @@ class Overworld : public SharedRom, public core::ExperimentFlags {
OverworldMapTiles map_tiles_; OverworldMapTiles map_tiles_;
std::array<uint8_t, 160> map_parent_; std::array<uint8_t, kNumOverworldMaps> map_parent_;
std::array<uint8_t, 0x200> all_tiles_types_; std::array<uint8_t, kNumTileTypes> all_tiles_types_;
std::vector<gfx::Tile16> tiles16_; std::vector<gfx::Tile16> tiles16_;
std::vector<gfx::Tile32> tiles32_; std::vector<gfx::Tile32> tiles32_;
std::vector<uint16_t> tiles32_list_; std::vector<uint16_t> tiles32_list_;

View File

@@ -377,12 +377,12 @@ void OverworldMap::LoadMainBlocksets() {
// of the 5A sheet, so this will need some special manipulation to make work // 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). // during the BuildBitmap step (or a new one specifically for animating).
void OverworldMap::DrawAnimatedTiles() { void OverworldMap::DrawAnimatedTiles() {
std::cout << "static_graphics_[6] = " std::cout << "static_graphics_[6] = " << core::HexByte(static_graphics_[6])
<< core::HexByte(static_graphics_[6]) << std::endl; << std::endl;
std::cout << "static_graphics_[7] = " std::cout << "static_graphics_[7] = " << core::HexByte(static_graphics_[7])
<< core::HexByte(static_graphics_[7]) << std::endl; << std::endl;
std::cout << "static_graphics_[8] = " std::cout << "static_graphics_[8] = " << core::HexByte(static_graphics_[8])
<< core::HexByte(static_graphics_[8]) << std::endl; << std::endl;
if (static_graphics_[7] == 0x5B) { if (static_graphics_[7] == 0x5B) {
static_graphics_[7] = 0x5A; static_graphics_[7] = 0x5A;
} else { } 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 // contains 7 colors width wide) There is 16 color per line so 16*Y
// Left side of the palette - Main, Animated // Left side of the palette - Main, Animated
std::vector<gfx::SnesColor> new_palette(256); std::array<gfx::SnesColor, 256> new_palette = {};
// Main Palette, Location 0,2 : 35 colors [7x5] // Main Palette, Location 0,2 : 35 colors [7x5]
int k = 0; int k = 0;
@@ -487,8 +487,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current,
k = 0; k = 0;
for (int y = 8; y < 9; y++) { for (int y = 8; y < 9; y++) {
for (int x = 1; x < 8; x++) { for (int x = 1; x < 8; x++) {
auto pal_group = rom.palette_group().sprites_aux1; new_palette[x + (16 * y)] = rom.palette_group().sprites_aux1[1][k];
new_palette[x + (16 * y)] = pal_group[1][k];
k++; k++;
} }
} }
@@ -497,8 +496,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current,
k = 0; k = 0;
for (int y = 8; y < 9; y++) { for (int y = 8; y < 9; y++) {
for (int x = 9; x < 16; x++) { for (int x = 9; x < 16; x++) {
auto pal_group = rom.palette_group().sprites_aux3; new_palette[x + (16 * y)] = rom.palette_group().sprites_aux3[0][k];
new_palette[x + (16 * y)] = pal_group[0][k];
k++; k++;
} }
} }
@@ -507,8 +505,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current,
k = 0; k = 0;
for (int y = 9; y < 13; y++) { for (int y = 9; y < 13; y++) {
for (int x = 1; x < 16; x++) { for (int x = 1; x < 16; x++) {
auto pal_group = rom.palette_group().global_sprites; new_palette[x + (16 * y)] = rom.palette_group().global_sprites[0][k];
new_palette[x + (16 * y)] = pal_group[0][k];
k++; k++;
} }
} }
@@ -535,8 +532,7 @@ absl::Status SetColorsPalette(Rom& rom, int index, gfx::SnesPalette& current,
k = 0; k = 0;
for (int y = 15; y < 16; y++) { for (int y = 15; y < 16; y++) {
for (int x = 1; x < 16; x++) { for (int x = 1; x < 16; x++) {
auto pal_group = rom.palette_group().armors; new_palette[x + (16 * y)] = rom.palette_group().armors[0][k];
new_palette[x + (16 * y)] = pal_group[0][k];
k++; k++;
} }
} }