diff --git a/src/app/zelda3/overworld/overworld_map.cc b/src/app/zelda3/overworld/overworld_map.cc index ccd3a15c..0e26d7e7 100644 --- a/src/app/zelda3/overworld/overworld_map.cc +++ b/src/app/zelda3/overworld/overworld_map.cc @@ -672,9 +672,9 @@ absl::Status OverworldMap::LoadPalette() { } void OverworldMap::ProcessGraphicsBuffer(int index, int static_graphics_offset, - int size) { + int size, uint8_t *all_gfx) { for (int i = 0; i < size; i++) { - auto byte = all_gfx_[i + (static_graphics_offset * size)]; + auto byte = all_gfx[i + (static_graphics_offset * size)]; switch (index) { case 0: case 3: @@ -688,13 +688,11 @@ void OverworldMap::ProcessGraphicsBuffer(int index, int static_graphics_offset, } absl::Status OverworldMap::BuildTileset() { - all_gfx_ = rom_.graphics_buffer(); if (current_gfx_.size() == 0) current_gfx_.resize(0x10000, 0x00); - for (int i = 0; i < 0x10; i++) { - ProcessGraphicsBuffer(i, static_graphics_[i], 0x1000); + ProcessGraphicsBuffer(i, static_graphics_[i], 0x1000, + rom_.graphics_buffer().data()); } - return absl::OkStatus(); } diff --git a/src/app/zelda3/overworld/overworld_map.h b/src/app/zelda3/overworld/overworld_map.h index f3080197..785c864d 100644 --- a/src/app/zelda3/overworld/overworld_map.h +++ b/src/app/zelda3/overworld/overworld_map.h @@ -110,7 +110,7 @@ class OverworldMap : public gfx::GfxContext { auto static_graphics(int i) const { return static_graphics_[i]; } auto large_index() const { return large_index_; } - auto mutable_current_graphics() { return ¤t_gfx_; } + auto mutable_current_graphics() { return ¤t_gfx_; } auto mutable_area_graphics() { return &area_graphics_; } auto mutable_area_palette() { return &area_palette_; } auto mutable_sprite_graphics(int i) { return &sprite_graphics_[i]; } @@ -161,7 +161,8 @@ class OverworldMap : public gfx::GfxContext { void LoadAreaGraphicsBlocksets(); void LoadDeathMountainGFX(); - void ProcessGraphicsBuffer(int index, int static_graphics_offset, int size); + void ProcessGraphicsBuffer(int index, int static_graphics_offset, int size, + uint8_t* all_gfx); absl::StatusOr GetPalette(const gfx::PaletteGroup& group, int index, int previous_index, int limit); @@ -192,7 +193,6 @@ class OverworldMap : public gfx::GfxContext { std::array area_music_; std::array static_graphics_; - std::vector all_gfx_; std::vector current_blockset_; std::vector current_gfx_; std::vector bitmap_data_;