From d2fa9c0c53a2786699195e40a7ea748940c1e21f Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 26 Nov 2023 16:50:09 -0500 Subject: [PATCH] Update overworld map accessors --- src/app/zelda3/overworld.h | 3 +++ src/app/zelda3/overworld_map.cc | 2 +- src/app/zelda3/overworld_map.h | 13 ++++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/app/zelda3/overworld.h b/src/app/zelda3/overworld.h index ed7b0171..c3ac3613 100644 --- a/src/app/zelda3/overworld.h +++ b/src/app/zelda3/overworld.h @@ -191,6 +191,9 @@ class Overworld : public SharedROM, public core::ExperimentFlags { absl::Status SaveMap16Tiles(); absl::Status SaveMap32Tiles(); + auto overworld_map(int i) const { return overworld_maps_[i]; } + auto mutable_overworld_map(int i) { return &overworld_maps_[i]; } + auto Sprites(int state) const { return all_sprites_[state]; } auto AreaGraphics() const { return overworld_maps_[current_map_].AreaGraphics(); diff --git a/src/app/zelda3/overworld_map.cc b/src/app/zelda3/overworld_map.cc index fb6e174f..6e9ddd7e 100644 --- a/src/app/zelda3/overworld_map.cc +++ b/src/app/zelda3/overworld_map.cc @@ -348,7 +348,7 @@ void OverworldMap::LoadPalette() { int previousSprPalId = index_ > 0 ? rom_[overworldSpritePalette + parent_ - 1] : 0; - area_palette_ = std::min(area_palette_, 0xA3); + area_palette_ = std::min((int)area_palette_, 0xA3); uchar pal0 = 0; uchar pal1 = rom_[rom_.version_constants().overworldMapPaletteGroup + diff --git a/src/app/zelda3/overworld_map.h b/src/app/zelda3/overworld_map.h index 742d0000..d830d561 100644 --- a/src/app/zelda3/overworld_map.h +++ b/src/app/zelda3/overworld_map.h @@ -24,6 +24,7 @@ static constexpr int kTileOffsets[] = {0, 8, 4096, 4104}; class OverworldMap { public: + OverworldMap() = default; OverworldMap(int index, ROM& rom, std::vector& tiles16); absl::Status BuildMap(int count, int game_state, int world, uchar* map_parent, @@ -38,6 +39,12 @@ class OverworldMap { auto IsInitialized() const { return initialized_; } auto Parent() const { return parent_; } + auto mutable_area_graphics() { return &area_graphics_; } + auto mutable_area_palette() { return &area_palette_; } + auto mutable_sprite_graphics(int i) { return &sprite_graphics_[i]; } + auto mutable_sprite_palette(int i) { return &sprite_palette_[i]; } + auto mutable_message_id() { return &message_id_; } + private: void LoadAreaInfo(); @@ -61,9 +68,9 @@ class OverworldMap { int parent_ = 0; int index_ = 0; int world_ = 0; - int message_id_ = 0; - int area_graphics_ = 0; - int area_palette_ = 0; + uint8_t message_id_ = 0; + uint8_t area_graphics_ = 0; + uint8_t area_palette_ = 0; int game_state_ = 0; int world_index_ = 0;