DungeonEditorV2 - Simplified dungeon editor using component delegation. More...
#include <dungeon_editor_v2.h>

Public Member Functions | |
| DungeonEditorV2 (Rom *rom=nullptr) | |
| void | Initialize (gfx::IRenderer *renderer, Rom *rom) |
| void | Initialize () override |
| absl::Status | Load () |
| absl::Status | Update () override |
| absl::Status | Undo () override |
| absl::Status | Redo () override |
| absl::Status | Cut () override |
| absl::Status | Copy () override |
| absl::Status | Paste () override |
| absl::Status | Find () override |
| absl::Status | Save () override |
| void | set_rom (Rom *rom) |
| Rom * | rom () const |
| void | add_room (int room_id) |
| void | FocusRoom (int room_id) |
| bool | IsRomLoaded () const override |
| std::string | GetRomStatus () const override |
Public Member Functions inherited from yaze::editor::Editor | |
| Editor ()=default | |
| virtual | ~Editor ()=default |
| void | SetDependencies (const EditorDependencies &deps) |
| virtual absl::Status | Clear () |
| EditorType | type () const |
| bool * | active () |
| void | set_active (bool active) |
| void | toggle_active () |
Public Attributes | |
| bool | show_room_selector_ = false |
| bool | show_room_matrix_ = false |
| bool | show_entrances_list_ = false |
| bool | show_room_graphics_ = false |
| bool | show_object_editor_ = false |
| bool | show_palette_editor_ = false |
| bool | show_debug_controls_ = false |
| bool | show_control_panel_ = true |
Private Member Functions | |
| void | DrawLayout () |
| void | DrawRoomTab (int room_id) |
| void | DrawRoomMatrixCard () |
| void | DrawRoomsListCard () |
| void | DrawEntrancesListCard () |
| void | DrawRoomGraphicsCard () |
| void | DrawDebugControlsCard () |
| void | ProcessDeferredTextures () |
| void | OnRoomSelected (int room_id) |
| void | OnEntranceSelected (int entrance_id) |
Private Attributes | |
| gfx::IRenderer * | renderer_ = nullptr |
| Rom * | rom_ |
| std::array< zelda3::Room, 0x128 > | rooms_ |
| std::array< zelda3::RoomEntrance, 0x8C > | entrances_ |
| int | current_entrance_id_ = 0 |
| ImVector< int > | active_rooms_ |
| std::unordered_map< int, std::shared_ptr< gui::EditorCard > > | room_cards_ |
| int | current_room_id_ = 0 |
| bool | control_panel_minimized_ = false |
| gfx::SnesPalette | current_palette_ |
| gfx::PaletteGroup | current_palette_group_ |
| uint64_t | current_palette_id_ = 0 |
| uint64_t | current_palette_group_id_ = 0 |
| DungeonRoomLoader | room_loader_ |
| DungeonRoomSelector | room_selector_ |
| DungeonCanvasViewer | canvas_viewer_ |
| DungeonObjectSelector | object_selector_ |
| gui::DungeonObjectEmulatorPreview | object_emulator_preview_ |
| gui::PaletteEditorWidget | palette_editor_ |
| std::unique_ptr< ObjectEditorCard > | object_editor_card_ |
| bool | is_loaded_ = false |
| ImGuiWindowClass | room_window_class_ |
Additional Inherited Members | |
Protected Member Functions inherited from yaze::editor::Editor | |
| std::string | MakeCardTitle (const std::string &base_title) const |
| std::string | MakeCardId (const std::string &base_id) const |
| template<typename T > | |
| absl::StatusOr< T > | SafeRomAccess (std::function< T()> accessor, const std::string &operation="") const |
Protected Attributes inherited from yaze::editor::Editor | |
| bool | active_ = false |
| EditorType | type_ |
| EditorDependencies | dependencies_ |
DungeonEditorV2 - Simplified dungeon editor using component delegation.
This is a drop-in replacement for DungeonEditor that properly delegates to the component system instead of implementing everything inline.
Architecture:
The editor acts as a coordinator, not an implementer.
Definition at line 41 of file dungeon_editor_v2.h.
|
inlineexplicit |
Definition at line 43 of file dungeon_editor_v2.h.
References yaze::editor::kDungeon, and yaze::editor::Editor::type_.
| void yaze::editor::DungeonEditorV2::Initialize | ( | gfx::IRenderer * | renderer, |
| Rom * | rom | ||
| ) |
Definition at line 21 of file dungeon_editor_v2.cc.
References yaze::editor::EditorDependencies::card_registry, yaze::editor::Editor::dependencies_, ICON_MD_BUG_REPORT, ICON_MD_CASTLE, ICON_MD_CONSTRUCTION, ICON_MD_DOOR_FRONT, ICON_MD_GRID_VIEW, ICON_MD_IMAGE, ICON_MD_LIST, ICON_MD_PALETTE, yaze::editor::Editor::MakeCardId(), yaze::editor::EditorCardRegistry::RegisterCard(), renderer_, rom(), rom_, room_window_class_, show_control_panel_, show_debug_controls_, show_entrances_list_, show_object_editor_, show_palette_editor_, show_room_graphics_, show_room_matrix_, and show_room_selector_.
Referenced by yaze::test::TEST_F().

|
overridevirtual |
Implements yaze::editor::Editor.
Definition at line 120 of file dungeon_editor_v2.cc.
|
virtual |
Implements yaze::editor::Editor.
Definition at line 122 of file dungeon_editor_v2.cc.
References active_rooms_, ASSIGN_OR_RETURN, canvas_viewer_, yaze::gfx::CreatePaletteGroupFromLargePalette(), current_palette_, current_palette_group_, current_palette_group_id_, current_palette_id_, entrances_, yaze::gfx::PaletteManager::Get(), yaze::gui::DungeonObjectEmulatorPreview::Initialize(), yaze::gfx::PaletteManager::Initialize(), yaze::gui::PaletteEditorWidget::Initialize(), yaze::Rom::is_loaded(), is_loaded_, yaze::editor::DungeonRoomLoader::LoadRoomEntrances(), object_editor_card_, object_emulator_preview_, object_selector_, OnRoomSelected(), palette_editor_, yaze::Rom::palette_group(), renderer_, RETURN_IF_ERROR, rom_, room_loader_, room_selector_, rooms_, yaze::editor::DungeonRoomSelector::set_active_rooms(), yaze::editor::DungeonRoomSelector::set_entrances(), yaze::editor::DungeonRoomSelector::set_room_selected_callback(), yaze::editor::DungeonObjectSelector::set_rooms(), yaze::editor::DungeonRoomSelector::set_rooms(), yaze::editor::DungeonCanvasViewer::SetCurrentPaletteGroup(), yaze::editor::DungeonObjectSelector::SetCurrentPaletteGroup(), yaze::editor::DungeonCanvasViewer::SetCurrentPaletteId(), yaze::editor::DungeonObjectSelector::SetCurrentPaletteId(), yaze::gui::PaletteEditorWidget::SetOnPaletteChanged(), and yaze::editor::DungeonCanvasViewer::SetRooms().
Referenced by yaze::test::TEST_F(), and yaze::test::TEST_F().
|
overridevirtual |
Implements yaze::editor::Editor.
Definition at line 181 of file dungeon_editor_v2.cc.
References yaze::gui::EditorCard::Begin(), DrawLayout(), yaze::gui::EditorCard::End(), ICON_MD_CASTLE, is_loaded_, room_window_class_, and yaze::gui::EditorCard::SetDefaultSize().

|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 58 of file dungeon_editor_v2.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 59 of file dungeon_editor_v2.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 60 of file dungeon_editor_v2.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 61 of file dungeon_editor_v2.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 62 of file dungeon_editor_v2.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 63 of file dungeon_editor_v2.h.
|
overridevirtual |
Implements yaze::editor::Editor.
Definition at line 207 of file dungeon_editor_v2.cc.
References yaze::gfx::PaletteManager::Get(), yaze::Rom::is_loaded(), LOG_ERROR, LOG_INFO, rom_, rooms_, and yaze::gfx::PaletteManager::SaveAllToRom().
Referenced by DrawDebugControlsCard(), and yaze::test::TEST_F().

|
inline |
Definition at line 67 of file dungeon_editor_v2.h.
References canvas_viewer_, yaze::gui::DungeonObjectEmulatorPreview::Initialize(), object_emulator_preview_, object_selector_, renderer_, rom(), rom_, room_loader_, room_selector_, yaze::editor::DungeonRoomSelector::set_rom(), yaze::editor::DungeonCanvasViewer::SetRom(), and yaze::editor::DungeonObjectSelector::SetRom().
Referenced by yaze::test::TEST_F(), and yaze::test::TEST_F().
|
inline |
Definition at line 75 of file dungeon_editor_v2.h.
References rom_.
Referenced by Initialize(), set_rom(), and yaze::test::TEST_F().
| void yaze::editor::DungeonEditorV2::add_room | ( | int | room_id | ) |
Definition at line 426 of file dungeon_editor_v2.cc.
References OnRoomSelected().

| void yaze::editor::DungeonEditorV2::FocusRoom | ( | int | room_id | ) |
Definition at line 430 of file dungeon_editor_v2.cc.
References room_cards_.
Referenced by OnRoomSelected().
|
inlineoverridevirtual |
Reimplemented from yaze::editor::Editor.
Definition at line 82 of file dungeon_editor_v2.h.
References yaze::Rom::is_loaded(), and rom_.
Referenced by yaze::test::TEST_F().

|
inlineoverridevirtual |
Reimplemented from yaze::editor::Editor.
Definition at line 83 of file dungeon_editor_v2.h.
References yaze::Rom::is_loaded(), rom_, and yaze::Rom::title().

|
private |
Definition at line 237 of file dungeon_editor_v2.cc.
References active_rooms_, yaze::gui::EditorCard::Begin(), yaze::gui::PaletteEditorWidget::Draw(), DrawDebugControlsCard(), DrawEntrancesListCard(), DrawRoomGraphicsCard(), DrawRoomMatrixCard(), DrawRoomsListCard(), DrawRoomTab(), yaze::gui::EditorCard::End(), yaze::gui::EditorCard::Floating, ICON_MD_GRID_ON, ICON_MD_PALETTE, yaze::zelda3::kRoomNames, yaze::editor::Editor::MakeCardTitle(), object_editor_card_, palette_editor_, room_cards_, room_window_class_, show_debug_controls_, show_entrances_list_, show_object_editor_, show_palette_editor_, show_room_graphics_, show_room_matrix_, and show_room_selector_.
Referenced by Update().
|
private |
Definition at line 336 of file dungeon_editor_v2.cc.
References canvas_viewer_, yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas(), ICON_MD_CHECK, ICON_MD_PENDING, yaze::editor::DungeonRoomLoader::LoadRoom(), LOG_DEBUG, room_loader_, and rooms_.
Referenced by DrawLayout().

|
private |
Definition at line 602 of file dungeon_editor_v2.cc.
References active_rooms_, yaze::gui::EditorCard::Begin(), current_room_id_, yaze::gui::EditorCard::End(), ICON_MD_GRID_VIEW, yaze::zelda3::kRoomNames, yaze::editor::Editor::MakeCardTitle(), OnRoomSelected(), yaze::gui::EditorCard::SetDefaultSize(), and show_room_matrix_.
Referenced by DrawLayout().
|
private |
Definition at line 438 of file dungeon_editor_v2.cc.
References yaze::gui::EditorCard::Begin(), current_room_id_, yaze::gui::EditorCard::End(), ICON_MD_LIST, ICON_MD_SEARCH, yaze::Rom::is_loaded(), yaze::zelda3::kRoomNames, yaze::editor::Editor::MakeCardTitle(), yaze::zelda3::NumberOfRooms, OnRoomSelected(), rom_, yaze::gui::EditorCard::SetDefaultSize(), and show_room_selector_.
Referenced by DrawLayout().
|
private |
Definition at line 503 of file dungeon_editor_v2.cc.
References yaze::gui::EditorCard::Begin(), current_entrance_id_, yaze::gui::EditorCard::End(), entrances_, ICON_MD_DOOR_FRONT, yaze::gui::InputHexByte(), yaze::gui::InputHexWord(), yaze::Rom::is_loaded(), yaze::zelda3::kEntranceNames, yaze::zelda3::kRoomNames, yaze::editor::Editor::MakeCardTitle(), OnEntranceSelected(), rom_, yaze::gui::EditorCard::SetDefaultSize(), and show_entrances_list_.
Referenced by DrawLayout().
|
private |
Definition at line 747 of file dungeon_editor_v2.cc.
References yaze::gui::EditorCard::Begin(), yaze::gfx::Arena::CREATE, current_room_id_, yaze::gui::Canvas::draw_list(), yaze::gui::Canvas::DrawBackground(), yaze::gui::Canvas::DrawContextMenu(), yaze::gui::Canvas::DrawGrid(), yaze::gui::Canvas::DrawOverlay(), yaze::gui::Canvas::DrawTileSelector(), yaze::gui::EditorCard::End(), yaze::gfx::Arena::Get(), yaze::gfx::Arena::gfx_sheets(), ICON_MD_IMAGE, yaze::Rom::is_loaded(), yaze::editor::Editor::MakeCardTitle(), yaze::gfx::Arena::ProcessTextureQueue(), yaze::gfx::Arena::QueueTextureCommand(), yaze::gui::EditorCard::Right, rom_, rooms_, yaze::gui::EditorCard::SetDefaultSize(), yaze::gui::EditorCard::SetPosition(), show_room_graphics_, and yaze::gui::Canvas::zero_point().
Referenced by DrawLayout().
|
private |
Definition at line 843 of file dungeon_editor_v2.cc.
References active_rooms_, yaze::gui::EditorCard::Begin(), current_room_id_, yaze::util::LogManager::DisableDebugLogging(), yaze::util::LogManager::EnableDebugLogging(), yaze::gui::EditorCard::End(), yaze::gfx::Arena::Get(), yaze::util::LogManager::GetLogLevel(), ICON_MD_BUG_REPORT, ICON_MD_CLEANING_SERVICES, ICON_MD_CLOSE, ICON_MD_DELETE_SWEEP, ICON_MD_FLASH_ON, ICON_MD_IMAGE, ICON_MD_MEMORY, ICON_MD_REFRESH, ICON_MD_REPLAY, ICON_MD_SAVE, ICON_MD_TERMINAL, ICON_MD_TEXTURE, yaze::util::LogManager::instance(), yaze::util::LogManager::IsDebugEnabled(), yaze::editor::DungeonRoomLoader::LoadRoom(), LOG_ERROR, LOG_INFO, yaze::editor::Editor::MakeCardTitle(), yaze::gfx::Arena::ProcessTextureQueue(), renderer_, room_cards_, room_loader_, rooms_, Save(), yaze::gui::EditorCard::SetDefaultSize(), yaze::util::LogManager::SetLogLevel(), and show_debug_controls_.
Referenced by DrawLayout().
|
private |
Definition at line 981 of file dungeon_editor_v2.cc.
References yaze::gfx::Arena::Get(), yaze::gfx::Arena::ProcessTextureQueue(), and renderer_.

|
private |
Definition at line 397 of file dungeon_editor_v2.cc.
References active_rooms_, current_room_id_, FocusRoom(), room_selector_, and yaze::editor::DungeonRoomSelector::set_active_rooms().
Referenced by add_room(), DrawRoomMatrixCard(), DrawRoomsListCard(), Load(), and OnEntranceSelected().

|
private |
Definition at line 414 of file dungeon_editor_v2.cc.
References entrances_, and OnRoomSelected().
Referenced by DrawEntrancesListCard().

| bool yaze::editor::DungeonEditorV2::show_room_selector_ = false |
Definition at line 90 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), DrawRoomsListCard(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_room_matrix_ = false |
Definition at line 91 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), DrawRoomMatrixCard(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_entrances_list_ = false |
Definition at line 92 of file dungeon_editor_v2.h.
Referenced by DrawEntrancesListCard(), DrawLayout(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_room_graphics_ = false |
Definition at line 93 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), DrawRoomGraphicsCard(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_object_editor_ = false |
Definition at line 94 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_palette_editor_ = false |
Definition at line 95 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_debug_controls_ = false |
Definition at line 96 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), DrawLayout(), and Initialize().
| bool yaze::editor::DungeonEditorV2::show_control_panel_ = true |
Definition at line 97 of file dungeon_editor_v2.h.
Referenced by Initialize().
|
private |
Definition at line 100 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), Initialize(), Load(), ProcessDeferredTextures(), and set_rom().
|
private |
Definition at line 118 of file dungeon_editor_v2.h.
Referenced by DrawEntrancesListCard(), DrawRoomGraphicsCard(), DrawRoomsListCard(), GetRomStatus(), Initialize(), IsRomLoaded(), Load(), rom(), Save(), and set_rom().
|
private |
Definition at line 119 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), DrawRoomGraphicsCard(), DrawRoomTab(), Load(), and Save().
|
private |
Definition at line 120 of file dungeon_editor_v2.h.
Referenced by DrawEntrancesListCard(), Load(), and OnEntranceSelected().
|
private |
Definition at line 123 of file dungeon_editor_v2.h.
Referenced by DrawEntrancesListCard().
|
private |
Definition at line 126 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), DrawLayout(), DrawRoomMatrixCard(), Load(), and OnRoomSelected().
|
private |
Definition at line 127 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), DrawLayout(), and FocusRoom().
|
private |
Definition at line 128 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), DrawRoomGraphicsCard(), DrawRoomMatrixCard(), DrawRoomsListCard(), and OnRoomSelected().
|
private |
Definition at line 130 of file dungeon_editor_v2.h.
|
private |
Definition at line 133 of file dungeon_editor_v2.h.
Referenced by Load().
|
private |
Definition at line 134 of file dungeon_editor_v2.h.
Referenced by Load().
|
private |
Definition at line 135 of file dungeon_editor_v2.h.
Referenced by Load().
|
private |
Definition at line 136 of file dungeon_editor_v2.h.
Referenced by Load().
|
private |
Definition at line 139 of file dungeon_editor_v2.h.
Referenced by DrawDebugControlsCard(), DrawRoomTab(), Load(), and set_rom().
|
private |
Definition at line 140 of file dungeon_editor_v2.h.
Referenced by Load(), OnRoomSelected(), and set_rom().
|
private |
Definition at line 141 of file dungeon_editor_v2.h.
Referenced by DrawRoomTab(), Load(), and set_rom().
|
private |
Definition at line 142 of file dungeon_editor_v2.h.
|
private |
Definition at line 143 of file dungeon_editor_v2.h.
|
private |
Definition at line 144 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), and Load().
|
private |
Definition at line 145 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), and Load().
|
private |
Definition at line 147 of file dungeon_editor_v2.h.
|
private |
Definition at line 150 of file dungeon_editor_v2.h.
Referenced by DrawLayout(), Initialize(), and Update().