EditorPanel for displaying a visual 16x19 grid of all dungeon rooms. More...
#include <dungeon_room_matrix_panel.h>


Public Member Functions | |
| DungeonRoomMatrixPanel (int *current_room_id, ImVector< int > *active_rooms, std::function< void(int)> on_room_selected, std::array< zelda3::Room, 0x128 > *rooms=nullptr) | |
| Construct a room matrix panel. | |
| std::string | GetId () const override |
| Unique identifier for this panel. | |
| std::string | GetDisplayName () const override |
| Human-readable name shown in menus and title bars. | |
| std::string | GetIcon () const override |
| Material Design icon for this panel. | |
| std::string | GetEditorCategory () const override |
| Editor category this panel belongs to. | |
| int | GetPriority () const override |
| Get display priority for menu ordering. | |
| void | Draw (bool *p_open) override |
| Draw the panel content. | |
| void | SetRooms (std::array< zelda3::Room, 0x128 > *rooms) |
Public Member Functions inherited from yaze::editor::EditorPanel | |
| virtual | ~EditorPanel ()=default |
| virtual void | OnOpen () |
| Called when panel becomes visible. | |
| virtual void | OnClose () |
| Called when panel is hidden. | |
| virtual void | OnFocus () |
| Called when panel receives focus. | |
| virtual PanelCategory | GetPanelCategory () const |
| Get the lifecycle category for this panel. | |
| virtual bool | IsEnabled () const |
| Check if this panel is currently enabled. | |
| virtual std::string | GetDisabledTooltip () const |
| Get tooltip text when panel is disabled. | |
| virtual std::string | GetShortcutHint () const |
| Get keyboard shortcut hint for display. | |
| virtual float | GetPreferredWidth () const |
| Get preferred width for this panel (optional) | |
| virtual bool | IsVisibleByDefault () const |
| Whether this panel should be visible by default. | |
| virtual std::string | GetParentPanelId () const |
| Get parent panel ID for cascade behavior. | |
| virtual bool | CascadeCloseChildren () const |
| Whether closing this panel should close child panels. | |
Private Member Functions | |
| ImU32 | GetRoomColor (int room_id, const AgentUITheme &theme) |
| Get color for a room based on palette or algorithmic fallback. | |
Private Attributes | |
| int * | current_room_id_ = nullptr |
| ImVector< int > * | active_rooms_ = nullptr |
| std::array< zelda3::Room, 0x128 > * | rooms_ = nullptr |
| std::function< void(int)> | on_room_selected_ |
EditorPanel for displaying a visual 16x19 grid of all dungeon rooms.
This panel provides a compact overview of all 296 dungeon rooms in a matrix layout. Users can click on cells to select and open rooms.
Features:
Definition at line 33 of file dungeon_room_matrix_panel.h.
|
inline |
Construct a room matrix panel.
| current_room_id | Pointer to the current room ID (for highlighting) |
| active_rooms | Pointer to list of currently open rooms |
| on_room_selected | Callback when a room is clicked |
| rooms | Optional pointer to room array for palette-based coloring |
Definition at line 42 of file dungeon_room_matrix_panel.h.
|
inlineoverridevirtual |
Unique identifier for this panel.
IDs should be:
Implements yaze::editor::EditorPanel.
Definition at line 54 of file dungeon_room_matrix_panel.h.
|
inlineoverridevirtual |
Human-readable name shown in menus and title bars.
Implements yaze::editor::EditorPanel.
Definition at line 55 of file dungeon_room_matrix_panel.h.
|
inlineoverridevirtual |
Material Design icon for this panel.
Implements yaze::editor::EditorPanel.
Definition at line 56 of file dungeon_room_matrix_panel.h.
References ICON_MD_GRID_VIEW.
|
inlineoverridevirtual |
Editor category this panel belongs to.
Implements yaze::editor::EditorPanel.
Definition at line 57 of file dungeon_room_matrix_panel.h.
|
inlineoverridevirtual |
Get display priority for menu ordering.
Reimplemented from yaze::editor::EditorPanel.
Definition at line 58 of file dungeon_room_matrix_panel.h.
|
inlineoverridevirtual |
Draw the panel content.
| p_open | Pointer to visibility flag (nullptr if not closable) |
Called by PanelManager when the panel is visible. Do NOT call ImGui::Begin/End - the PanelWindow wrapper handles that. Just draw your content directly.
Implements yaze::editor::EditorPanel.
Definition at line 64 of file dungeon_room_matrix_panel.h.
References active_rooms_, current_room_id_, GetRoomColor(), yaze::zelda3::GetRoomLabel(), yaze::editor::AgentUI::GetTheme(), on_room_selected_, and rooms_.

|
inline |
Definition at line 176 of file dungeon_room_matrix_panel.h.
References rooms_.
|
inlineprivate |
Get color for a room based on palette or algorithmic fallback.
If room data is available and loaded, generates a color based on the room's palette ID for semantic grouping. Otherwise falls back to algorithmic coloring.
Definition at line 186 of file dungeon_room_matrix_panel.h.
References rooms_.
Referenced by Draw().
|
private |
Definition at line 248 of file dungeon_room_matrix_panel.h.
Referenced by Draw().
|
private |
Definition at line 249 of file dungeon_room_matrix_panel.h.
Referenced by Draw().
|
private |
Definition at line 250 of file dungeon_room_matrix_panel.h.
Referenced by Draw(), GetRoomColor(), and SetRooms().
|
private |
Definition at line 251 of file dungeon_room_matrix_panel.h.
Referenced by Draw().