yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::editor::ObjectEditorCard Class Reference

Unified card combining object selection, emulator preview, and canvas interaction. More...

#include <object_editor_card.h>

Public Member Functions

 ObjectEditorCard (gfx::IRenderer *renderer, Rom *rom, DungeonCanvasViewer *canvas_viewer)
 
void Draw (bool *p_open)
 
DungeonObjectSelectorobject_selector ()
 
gui::DungeonObjectEmulatorPreviewemulator_preview ()
 
void SetCurrentRoom (int room_id)
 

Private Types

enum class  InteractionMode { None , Place , Select , Delete }
 

Private Member Functions

void DrawObjectSelector ()
 
void DrawEmulatorPreview ()
 
void DrawInteractionControls ()
 
void DrawSelectedObjectInfo ()
 
void DrawObjectPreviewIcon (int object_id, const ImVec2 &size)
 

Private Attributes

Romrom_
 
DungeonCanvasViewercanvas_viewer_
 
int current_room_id_ = 0
 
DungeonObjectSelector object_selector_
 
gui::DungeonObjectEmulatorPreview emulator_preview_
 
std::unordered_map< int, gui::Canvasobject_preview_canvases_
 
int selected_tab_ = 0
 
bool show_emulator_preview_ = false
 
bool show_object_list_ = true
 
bool show_interaction_controls_ = true
 
InteractionMode interaction_mode_ = InteractionMode::None
 
zelda3::RoomObject preview_object_ {0, 0, 0, 0, 0}
 
bool has_preview_object_ = false
 
gfx::IRendererrenderer_
 

Detailed Description

Unified card combining object selection, emulator preview, and canvas interaction.

This card replaces three separate components:

  • Object Selector (choosing which object to place)
  • Emulator Preview (seeing how objects look in-game)
  • Object Interaction Controls (placing, selecting, deleting objects)

It provides a complete workflow for managing dungeon objects in one place.

Definition at line 29 of file object_editor_card.h.

Member Enumeration Documentation

◆ InteractionMode

Enumerator
None 
Place 
Select 
Delete 

Definition at line 68 of file object_editor_card.h.

Constructor & Destructor Documentation

◆ ObjectEditorCard()

yaze::editor::ObjectEditorCard::ObjectEditorCard ( gfx::IRenderer renderer,
Rom rom,
DungeonCanvasViewer canvas_viewer 
)

Definition at line 11 of file object_editor_card.cc.

References emulator_preview_, and yaze::gui::DungeonObjectEmulatorPreview::Initialize().

Here is the call graph for this function:

Member Function Documentation

◆ Draw()

◆ object_selector()

DungeonObjectSelector & yaze::editor::ObjectEditorCard::object_selector ( )
inline

Definition at line 37 of file object_editor_card.h.

References object_selector_.

◆ emulator_preview()

gui::DungeonObjectEmulatorPreview & yaze::editor::ObjectEditorCard::emulator_preview ( )
inline

Definition at line 38 of file object_editor_card.h.

References emulator_preview_.

◆ SetCurrentRoom()

void yaze::editor::ObjectEditorCard::SetCurrentRoom ( int  room_id)
inline

Definition at line 41 of file object_editor_card.h.

References current_room_id_.

◆ DrawObjectSelector()

◆ DrawEmulatorPreview()

void yaze::editor::ObjectEditorCard::DrawEmulatorPreview ( )
private

Definition at line 202 of file object_editor_card.cc.

References emulator_preview_, yaze::gui::HelpMarker(), ICON_MD_INFO, ICON_MD_PREVIEW, yaze::gui::DungeonObjectEmulatorPreview::Render(), and show_emulator_preview_.

Referenced by Draw().

Here is the call graph for this function:

◆ DrawInteractionControls()

void yaze::editor::ObjectEditorCard::DrawInteractionControls ( )
private

◆ DrawSelectedObjectInfo()

◆ DrawObjectPreviewIcon()

void yaze::editor::ObjectEditorCard::DrawObjectPreviewIcon ( int  object_id,
const ImVec2 &  size 
)
private

Definition at line 232 of file object_editor_card.cc.

Referenced by DrawObjectSelector().

Member Data Documentation

◆ rom_

Rom* yaze::editor::ObjectEditorCard::rom_
private

Definition at line 50 of file object_editor_card.h.

◆ canvas_viewer_

DungeonCanvasViewer* yaze::editor::ObjectEditorCard::canvas_viewer_
private

Definition at line 51 of file object_editor_card.h.

Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().

◆ current_room_id_

int yaze::editor::ObjectEditorCard::current_room_id_ = 0
private

Definition at line 52 of file object_editor_card.h.

Referenced by SetCurrentRoom().

◆ object_selector_

DungeonObjectSelector yaze::editor::ObjectEditorCard::object_selector_
private

Definition at line 55 of file object_editor_card.h.

Referenced by object_selector().

◆ emulator_preview_

gui::DungeonObjectEmulatorPreview yaze::editor::ObjectEditorCard::emulator_preview_
private

Definition at line 56 of file object_editor_card.h.

Referenced by DrawEmulatorPreview(), emulator_preview(), and ObjectEditorCard().

◆ object_preview_canvases_

std::unordered_map<int, gui::Canvas> yaze::editor::ObjectEditorCard::object_preview_canvases_
private

Definition at line 59 of file object_editor_card.h.

◆ selected_tab_

int yaze::editor::ObjectEditorCard::selected_tab_ = 0
private

Definition at line 62 of file object_editor_card.h.

◆ show_emulator_preview_

bool yaze::editor::ObjectEditorCard::show_emulator_preview_ = false
private

Definition at line 63 of file object_editor_card.h.

Referenced by DrawEmulatorPreview().

◆ show_object_list_

bool yaze::editor::ObjectEditorCard::show_object_list_ = true
private

Definition at line 64 of file object_editor_card.h.

◆ show_interaction_controls_

bool yaze::editor::ObjectEditorCard::show_interaction_controls_ = true
private

Definition at line 65 of file object_editor_card.h.

◆ interaction_mode_

InteractionMode yaze::editor::ObjectEditorCard::interaction_mode_ = InteractionMode::None
private

Definition at line 74 of file object_editor_card.h.

Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().

◆ preview_object_

zelda3::RoomObject yaze::editor::ObjectEditorCard::preview_object_ {0, 0, 0, 0, 0}
private

Definition at line 77 of file object_editor_card.h.

Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().

◆ has_preview_object_

bool yaze::editor::ObjectEditorCard::has_preview_object_ = false
private

Definition at line 78 of file object_editor_card.h.

Referenced by Draw(), DrawObjectSelector(), and DrawSelectedObjectInfo().

◆ renderer_

gfx::IRenderer* yaze::editor::ObjectEditorCard::renderer_
private

Definition at line 79 of file object_editor_card.h.


The documentation for this class was generated from the following files: