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

Handles object selection, preview, and editing UI. More...

#include <dungeon_object_selector.h>

Public Member Functions

 DungeonObjectSelector (Rom *rom=nullptr)
 
void DrawTileSelector ()
 
void DrawObjectRenderer ()
 
void DrawIntegratedEditingPanels ()
 
void Draw ()
 
void set_rom (Rom *rom)
 
void SetRom (Rom *rom)
 
Romrom () const
 
void set_dungeon_editor_system (std::unique_ptr< zelda3::DungeonEditorSystem > *system)
 
void set_object_editor (std::unique_ptr< zelda3::DungeonObjectEditor > *editor)
 
void set_rooms (std::array< zelda3::Room, 0x128 > *rooms)
 
void set_current_room_id (int room_id)
 
void set_current_palette_group_id (uint64_t id)
 
void SetCurrentPaletteGroup (const gfx::PaletteGroup &palette_group)
 
void SetCurrentPaletteId (uint64_t palette_id)
 
void SetObjectSelectedCallback (std::function< void(const zelda3::RoomObject &)> callback)
 
void SetObjectPlacementCallback (std::function< void(const zelda3::RoomObject &)> callback)
 
const zelda3::RoomObjectGetPreviewObject () const
 
bool IsObjectLoaded () const
 

Private Member Functions

void DrawRoomGraphics ()
 
void DrawObjectBrowser ()
 
void DrawCompactObjectEditor ()
 
void DrawCompactSpriteEditor ()
 
ImU32 GetObjectTypeColor (int object_id)
 
std::string GetObjectTypeSymbol (int object_id)
 
void RenderObjectPrimitive (const zelda3::RoomObject &object, int x, int y)
 
void DrawObjectAssetBrowser ()
 
bool MatchesObjectFilter (int obj_id, int filter_type)
 
void CalculateObjectDimensions (const zelda3::RoomObject &object, int &width, int &height)
 
void PlaceObjectAtPosition (int x, int y)
 
void DrawCompactItemEditor ()
 
void DrawCompactEntranceEditor ()
 
void DrawCompactDoorEditor ()
 
void DrawCompactChestEditor ()
 
void DrawCompactPropertiesEditor ()
 

Private Attributes

Romrom_ = nullptr
 
gui::Canvas room_gfx_canvas_ {"##RoomGfxCanvas", ImVec2(0x100 + 1, 0x10 * 0x40 + 1)}
 
gui::Canvas object_canvas_
 
std::unique_ptr< zelda3::DungeonEditorSystem > * dungeon_editor_system_ = nullptr
 
zelda3::DungeonObjectEditorobject_editor_ = nullptr
 
std::array< zelda3::Room, 0x128 > * rooms_ = nullptr
 
int current_room_id_ = 0
 
uint64_t current_palette_group_id_ = 0
 
uint64_t current_palette_id_ = 0
 
gfx::PaletteGroup current_palette_group_
 
zelda3::RoomObject preview_object_ {0, 0, 0, 0, 0}
 
gfx::SnesPalette preview_palette_
 
bool object_loaded_ = false
 
std::function< void(const zelda3::RoomObject &)> object_selected_callback_
 
std::function< void(const zelda3::RoomObject &)> object_placement_callback_
 
int selected_object_id_ = -1
 

Detailed Description

Handles object selection, preview, and editing UI.

Definition at line 18 of file dungeon_object_selector.h.

Constructor & Destructor Documentation

◆ DungeonObjectSelector()

yaze::editor::DungeonObjectSelector::DungeonObjectSelector ( Rom rom = nullptr)
inlineexplicit

Definition at line 20 of file dungeon_object_selector.h.

Member Function Documentation

◆ DrawTileSelector()

void yaze::editor::DungeonObjectSelector::DrawTileSelector ( )

Definition at line 26 of file dungeon_object_selector.cc.

References DrawObjectRenderer(), and DrawRoomGraphics().

Here is the call graph for this function:

◆ DrawObjectRenderer()

◆ DrawIntegratedEditingPanels()

◆ Draw()

void yaze::editor::DungeonObjectSelector::Draw ( )

Definition at line 283 of file dungeon_object_selector.cc.

References DrawIntegratedEditingPanels(), DrawObjectRenderer(), and DrawRoomGraphics().

Here is the call graph for this function:

◆ set_rom()

void yaze::editor::DungeonObjectSelector::set_rom ( Rom rom)
inline

Definition at line 27 of file dungeon_object_selector.h.

References rom(), and rom_.

Here is the call graph for this function:

◆ SetRom()

void yaze::editor::DungeonObjectSelector::SetRom ( Rom rom)
inline

Definition at line 30 of file dungeon_object_selector.h.

References rom(), and rom_.

Referenced by yaze::editor::DungeonEditorV2::set_rom().

Here is the call graph for this function:

◆ rom()

Rom * yaze::editor::DungeonObjectSelector::rom ( ) const
inline

Definition at line 33 of file dungeon_object_selector.h.

References rom_.

Referenced by set_rom(), and SetRom().

◆ set_dungeon_editor_system()

void yaze::editor::DungeonObjectSelector::set_dungeon_editor_system ( std::unique_ptr< zelda3::DungeonEditorSystem > *  system)
inline

Definition at line 36 of file dungeon_object_selector.h.

References dungeon_editor_system_.

◆ set_object_editor()

void yaze::editor::DungeonObjectSelector::set_object_editor ( std::unique_ptr< zelda3::DungeonObjectEditor > *  editor)
inline

Definition at line 39 of file dungeon_object_selector.h.

References object_editor_.

◆ set_rooms()

void yaze::editor::DungeonObjectSelector::set_rooms ( std::array< zelda3::Room, 0x128 > *  rooms)
inline

Definition at line 44 of file dungeon_object_selector.h.

References rooms_.

Referenced by yaze::editor::DungeonEditorV2::Load().

◆ set_current_room_id()

void yaze::editor::DungeonObjectSelector::set_current_room_id ( int  room_id)
inline

Definition at line 45 of file dungeon_object_selector.h.

References current_room_id_.

◆ set_current_palette_group_id()

void yaze::editor::DungeonObjectSelector::set_current_palette_group_id ( uint64_t  id)
inline

Definition at line 48 of file dungeon_object_selector.h.

References current_palette_group_id_.

◆ SetCurrentPaletteGroup()

void yaze::editor::DungeonObjectSelector::SetCurrentPaletteGroup ( const gfx::PaletteGroup palette_group)
inline

Definition at line 49 of file dungeon_object_selector.h.

References current_palette_group_.

Referenced by yaze::editor::DungeonEditorV2::Load().

◆ SetCurrentPaletteId()

void yaze::editor::DungeonObjectSelector::SetCurrentPaletteId ( uint64_t  palette_id)
inline

Definition at line 50 of file dungeon_object_selector.h.

References current_palette_id_.

Referenced by yaze::editor::DungeonEditorV2::Load().

◆ SetObjectSelectedCallback()

void yaze::editor::DungeonObjectSelector::SetObjectSelectedCallback ( std::function< void(const zelda3::RoomObject &)>  callback)
inline

Definition at line 53 of file dungeon_object_selector.h.

References object_selected_callback_.

◆ SetObjectPlacementCallback()

void yaze::editor::DungeonObjectSelector::SetObjectPlacementCallback ( std::function< void(const zelda3::RoomObject &)>  callback)
inline

Definition at line 57 of file dungeon_object_selector.h.

References object_placement_callback_.

◆ GetPreviewObject()

const zelda3::RoomObject & yaze::editor::DungeonObjectSelector::GetPreviewObject ( ) const
inline

Definition at line 62 of file dungeon_object_selector.h.

References preview_object_.

◆ IsObjectLoaded()

bool yaze::editor::DungeonObjectSelector::IsObjectLoaded ( ) const
inline

Definition at line 63 of file dungeon_object_selector.h.

References object_loaded_.

◆ DrawRoomGraphics()

◆ DrawObjectBrowser()

◆ DrawCompactObjectEditor()

void yaze::editor::DungeonObjectSelector::DrawCompactObjectEditor ( )
private

◆ DrawCompactSpriteEditor()

◆ GetObjectTypeColor()

ImU32 yaze::editor::DungeonObjectSelector::GetObjectTypeColor ( int  object_id)
private

◆ GetObjectTypeSymbol()

std::string yaze::editor::DungeonObjectSelector::GetObjectTypeSymbol ( int  object_id)
private

Definition at line 507 of file dungeon_object_selector.cc.

Referenced by DrawObjectAssetBrowser(), and DrawObjectBrowser().

◆ RenderObjectPrimitive()

void yaze::editor::DungeonObjectSelector::RenderObjectPrimitive ( const zelda3::RoomObject object,
int  x,
int  y 
)
private

Definition at line 528 of file dungeon_object_selector.cc.

References CalculateObjectDimensions(), yaze::gui::Canvas::DrawRect(), yaze::gui::Canvas::DrawText(), GetObjectTypeColor(), and object_canvas_.

Referenced by DrawObjectRenderer().

Here is the call graph for this function:

◆ DrawObjectAssetBrowser()

◆ MatchesObjectFilter()

bool yaze::editor::DungeonObjectSelector::MatchesObjectFilter ( int  obj_id,
int  filter_type 
)
private

Definition at line 652 of file dungeon_object_selector.cc.

Referenced by DrawObjectAssetBrowser().

◆ CalculateObjectDimensions()

void yaze::editor::DungeonObjectSelector::CalculateObjectDimensions ( const zelda3::RoomObject object,
int &  width,
int &  height 
)
private

Definition at line 671 of file dungeon_object_selector.cc.

Referenced by RenderObjectPrimitive().

◆ PlaceObjectAtPosition()

void yaze::editor::DungeonObjectSelector::PlaceObjectAtPosition ( int  x,
int  y 
)
private

Definition at line 707 of file dungeon_object_selector.cc.

References object_loaded_, object_placement_callback_, preview_object_, and yaze::zelda3::RoomObject::set_x().

Referenced by DrawObjectRenderer().

Here is the call graph for this function:

◆ DrawCompactItemEditor()

◆ DrawCompactEntranceEditor()

void yaze::editor::DungeonObjectSelector::DrawCompactEntranceEditor ( )
private

Definition at line 842 of file dungeon_object_selector.cc.

References dungeon_editor_system_.

Referenced by DrawIntegratedEditingPanels().

◆ DrawCompactDoorEditor()

◆ DrawCompactChestEditor()

void yaze::editor::DungeonObjectSelector::DrawCompactChestEditor ( )
private

Definition at line 955 of file dungeon_object_selector.cc.

References dungeon_editor_system_, chest::x, and chest::y.

Referenced by DrawIntegratedEditingPanels().

◆ DrawCompactPropertiesEditor()

Member Data Documentation

◆ rom_

Rom* yaze::editor::DungeonObjectSelector::rom_ = nullptr
private

◆ room_gfx_canvas_

gui::Canvas yaze::editor::DungeonObjectSelector::room_gfx_canvas_ {"##RoomGfxCanvas", ImVec2(0x100 + 1, 0x10 * 0x40 + 1)}
private

Definition at line 88 of file dungeon_object_selector.h.

Referenced by DrawRoomGraphics().

◆ object_canvas_

gui::Canvas yaze::editor::DungeonObjectSelector::object_canvas_
private

Definition at line 89 of file dungeon_object_selector.h.

Referenced by DrawObjectRenderer(), and RenderObjectPrimitive().

◆ dungeon_editor_system_

◆ object_editor_

zelda3::DungeonObjectEditor* yaze::editor::DungeonObjectSelector::object_editor_ = nullptr
private

◆ rooms_

std::array<zelda3::Room, 0x128>* yaze::editor::DungeonObjectSelector::rooms_ = nullptr
private

Definition at line 97 of file dungeon_object_selector.h.

Referenced by DrawRoomGraphics(), and set_rooms().

◆ current_room_id_

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

Definition at line 98 of file dungeon_object_selector.h.

Referenced by DrawRoomGraphics(), and set_current_room_id().

◆ current_palette_group_id_

uint64_t yaze::editor::DungeonObjectSelector::current_palette_group_id_ = 0
private

◆ current_palette_id_

uint64_t yaze::editor::DungeonObjectSelector::current_palette_id_ = 0
private

Definition at line 102 of file dungeon_object_selector.h.

Referenced by SetCurrentPaletteId().

◆ current_palette_group_

gfx::PaletteGroup yaze::editor::DungeonObjectSelector::current_palette_group_
private

Definition at line 103 of file dungeon_object_selector.h.

Referenced by SetCurrentPaletteGroup().

◆ preview_object_

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

◆ preview_palette_

gfx::SnesPalette yaze::editor::DungeonObjectSelector::preview_palette_
private

Definition at line 107 of file dungeon_object_selector.h.

Referenced by DrawObjectAssetBrowser(), and DrawObjectBrowser().

◆ object_loaded_

bool yaze::editor::DungeonObjectSelector::object_loaded_ = false
private

◆ object_selected_callback_

std::function<void(const zelda3::RoomObject&)> yaze::editor::DungeonObjectSelector::object_selected_callback_
private

◆ object_placement_callback_

std::function<void(const zelda3::RoomObject&)> yaze::editor::DungeonObjectSelector::object_placement_callback_
private

Definition at line 112 of file dungeon_object_selector.h.

Referenced by PlaceObjectAtPosition(), and SetObjectPlacementCallback().

◆ selected_object_id_

int yaze::editor::DungeonObjectSelector::selected_object_id_ = -1
private

Definition at line 115 of file dungeon_object_selector.h.

Referenced by DrawObjectAssetBrowser().


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