From d98e8bc324760aa2a41554667db4ebc131b26555 Mon Sep 17 00:00:00 2001 From: scawful Date: Sat, 3 May 2025 17:24:43 -0400 Subject: [PATCH] Refactor Inventory class to remove inheritance from SharedRom and add ROM pointer management. Update LoadDungeonMapGfxFromBinary to simplify palette setting logic, enhancing code clarity and maintainability. --- src/app/zelda3/screen/dungeon_map.cc | 2 +- src/app/zelda3/screen/inventory.h | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/app/zelda3/screen/dungeon_map.cc b/src/app/zelda3/screen/dungeon_map.cc index 39ed3a58..3ecd7bd5 100644 --- a/src/app/zelda3/screen/dungeon_map.cc +++ b/src/app/zelda3/screen/dungeon_map.cc @@ -34,7 +34,7 @@ absl::Status LoadDungeonMapGfxFromBinary(Rom &rom, gfx_sheets.emplace_back(converted_bin.begin() + (i * 0x1000), converted_bin.begin() + ((i + 1) * 0x1000)); sheets[i] = gfx::Bitmap(128, 32, 8, gfx_sheets[i]); - RETURN_IF_ERROR(sheets[i].SetPalette(*rom.mutable_dungeon_palette(3))); + sheets[i].SetPalette(*rom.mutable_dungeon_palette(3)); core::Renderer::GetInstance().RenderBitmap(&sheets[i]); } } else { diff --git a/src/app/zelda3/screen/inventory.h b/src/app/zelda3/screen/inventory.h index bf2b958c..b0fce3c2 100644 --- a/src/app/zelda3/screen/inventory.h +++ b/src/app/zelda3/screen/inventory.h @@ -13,7 +13,7 @@ namespace zelda3 { constexpr int kInventoryStart = 0x6564A; constexpr int kBowItemPos = 0x6F631; -class Inventory : public SharedRom { +class Inventory { public: absl::Status Create(); @@ -21,6 +21,9 @@ class Inventory : public SharedRom { auto &tilesheet() { return tilesheets_bmp_; } auto &palette() { return palette_; } + void LoadRom(Rom *rom) { rom_ = rom; } + auto rom() { return rom_; } + private: absl::Status BuildTileset(); @@ -32,6 +35,7 @@ class Inventory : public SharedRom { gfx::Bitmap tilesheets_bmp_; gfx::SnesPalette palette_; + Rom *rom_; gui::Canvas canvas_; std::vector tiles_; };