refactor: Enhance Map Properties System with Graphics Management and Refresh Logic

- Introduced OverworldGraphicsManager to handle graphics loading, refreshing, and texture management for the overworld editor.
- Updated MapPropertiesSystem to integrate new graphics management features, ensuring proper refresh order for map properties and graphics.
- Added methods for forcing graphics refresh and handling sibling map graphics, improving the responsiveness of the editor.
- Enhanced UI elements in the MapPropertiesSystem for better user experience, including tooltips and organized layouts.
- Updated CMake configuration to include new graphics manager files, ensuring proper integration into the build system.
This commit is contained in:
scawful
2025-10-05 19:07:06 -04:00
parent 9835eb2ab1
commit 405dece70a
10 changed files with 1190 additions and 85 deletions

View File

@@ -633,14 +633,6 @@ absl::Status Overworld::LoadExits() {
uint16_t px = (uint16_t)((rom_data[OWExitXPlayer + (i * 2) + 1] << 8) +
rom_data[OWExitXPlayer + (i * 2)]);
// util::logf(
// "Exit: %d RoomID: %d MapID: %d VRAM: %d YScroll: %d XScroll: "
// "%d YPlayer: %d XPlayer: %d YCamera: %d XCamera: %d "
// "ScrollModY: %d ScrollModX: %d DoorType1: %d DoorType2: %d",
// i, exit_room_id, exit_map_id, exit_vram, exit_y_scroll, exit_x_scroll,
// py, px, exit_y_camera, exit_x_camera, exit_scroll_mod_y,
// exit_scroll_mod_x, exit_door_type_1, exit_door_type_2);
exits.emplace_back(exit_room_id, exit_map_id, exit_vram, exit_y_scroll,
exit_x_scroll, py, px, exit_y_camera, exit_x_camera,
exit_scroll_mod_y, exit_scroll_mod_x, exit_door_type_1,

View File

@@ -194,10 +194,6 @@ class OverworldExit : public GameEntity {
map_pos_ = (uint16_t)(((vram_y_scroll & 0xFFF0) << 3) |
((vram_x_scroll & 0xFFF0) >> 3));
std::cout << "Exit: " << room_id_ << " MapId: " << std::hex << mapid
<< " X: " << static_cast<int>(area_x_)
<< " Y: " << static_cast<int>(area_y_) << std::endl;
}
};

View File

@@ -53,12 +53,6 @@ class OverworldItem : public GameEntity {
game_x_ = static_cast<uint8_t>(std::abs(x_ - (map_x * 512)) / 16);
game_y_ = static_cast<uint8_t>(std::abs(y_ - (map_y * 512)) / 16);
std::cout << "Item: " << std::hex << std::setw(2) << std::setfill('0')
<< static_cast<int>(id_) << " MapId: " << std::hex << std::setw(2)
<< std::setfill('0') << static_cast<int>(room_map_id_)
<< " X: " << static_cast<int>(game_x_)
<< " Y: " << static_cast<int>(game_y_) << std::endl;
}
bool bg2_ = false;