refactor: Update Dungeon Rendering Logic for Enhanced Tile Management (WIP)

- Refactored DungeonCanvasViewer to utilize LoadLayoutTilesToBuffer for rendering layout tiles, improving the separation of concerns in the rendering process.
- Updated ObjectDrawer to draw using 8x8 tiles instead of 16x16, enhancing tile rendering accuracy and efficiency.
- Modified Room and RoomLayoutObject classes to support room-specific graphics buffers, ensuring correct tile usage during rendering.
- Removed legacy methods and classes related to tile handling, streamlining the codebase and improving maintainability.
This commit is contained in:
scawful
2025-10-09 23:50:12 -04:00
parent 3f2ef7f523
commit 8481cd9366
9 changed files with 348 additions and 362 deletions

View File

@@ -51,7 +51,9 @@ class RoomLayoutObject {
void set_layer(uint8_t layer) { layer_ = layer; }
// Get tile data for this layout object
absl::StatusOr<gfx::Tile16> GetTile() const;
// NOTE: Layout codes need to be mapped to actual VRAM tile IDs
// The room_gfx_buffer provides the assembled graphics for this specific room
absl::StatusOr<gfx::Tile16> GetTile(const uint8_t* room_gfx_buffer = nullptr) const;
// Get the name/description of this layout object type
std::string GetTypeName() const;