Handles object selection, preview, and editing UI. More...
#include <dungeon_object_selector.h>
Private Member Functions | |
| bool | MatchesObjectFilter (int obj_id, int filter_type) |
| bool | MatchesObjectSearch (int obj_id, const std::string &name, int subtype=-1) const |
| void | CalculateObjectDimensions (const zelda3::RoomObject &object, int &width, int &height) |
| bool | DrawObjectPreview (const zelda3::RoomObject &object, ImVec2 top_left, float size) |
| zelda3::RoomObject | MakePreviewObject (int obj_id) const |
| void | EnsureRegistryInitialized () |
| ImU32 | GetObjectTypeColor (int object_id) |
| std::string | GetObjectTypeSymbol (int object_id) |
| void | EnsureCustomObjectsInitialized () |
| void | DrawNewCustomObjectDialog () |
| bool | GetOrCreatePreview (const zelda3::RoomObject &object, float size, gfx::BackgroundBuffer **out) |
Handles object selection, preview, and editing UI.
Definition at line 32 of file dungeon_object_selector.h.
|
inlineexplicit |
Definition at line 34 of file dungeon_object_selector.h.
|
inline |
Definition at line 37 of file dungeon_object_selector.h.
References yaze::editor::EditorContext::game_data, game_data_, yaze::editor::EditorContext::rom, and rom_.
Referenced by yaze::editor::ObjectSelectorContent::SetContext().
|
inline |
Definition at line 41 of file dungeon_object_selector.h.
References game_data_, and rom_.
|
inline |
|
inline |
|
inline |
Definition at line 46 of file dungeon_object_selector.h.
References game_data(), and game_data_.
Referenced by yaze::editor::ObjectSelectorContent::SetGameData().

|
inline |
Definition at line 47 of file dungeon_object_selector.h.
References game_data_.
Referenced by yaze::editor::ObjectSelectorContent::OpenStaticObjectEditor(), and SetGameData().
|
inline |
Definition at line 50 of file dungeon_object_selector.h.
References rooms_.
Referenced by yaze::editor::ObjectSelectorContent::SetRooms().
|
inline |
Definition at line 51 of file dungeon_object_selector.h.
References rooms_.
Referenced by yaze::editor::ObjectSelectorContent::DrawRoomValidationBar(), and yaze::editor::ObjectSelectorContent::OpenStaticObjectEditor().
|
inline |
Definition at line 52 of file dungeon_object_selector.h.
References current_room_id_.
Referenced by yaze::editor::ObjectSelectorContent::SetCurrentRoom().
|
inline |
Definition at line 55 of file dungeon_object_selector.h.
References current_palette_group_id_.
|
inline |
Definition at line 58 of file dungeon_object_selector.h.
References current_palette_group_.
Referenced by yaze::editor::ObjectSelectorContent::SetCurrentPaletteGroup().
|
inline |
Definition at line 61 of file dungeon_object_selector.h.
References current_palette_id_.
| void yaze::editor::DungeonObjectSelector::SetCustomObjectsFolder | ( | const std::string & | folder | ) |
Definition at line 757 of file dungeon_object_selector.cc.
References custom_objects_folder_, custom_objects_initialized_, EnsureCustomObjectsInitialized(), and InvalidatePreviewCache().
Referenced by yaze::editor::DungeonEditorV2::Load().

|
inline |
Definition at line 67 of file dungeon_object_selector.h.
References object_selected_callback_.
Referenced by yaze::editor::ObjectSelectorContent::ObjectSelectorContent().
|
inline |
Definition at line 72 of file dungeon_object_selector.h.
References object_double_click_callback_.
Referenced by yaze::editor::ObjectSelectorContent::ObjectSelectorContent().
|
inline |
Definition at line 77 of file dungeon_object_selector.h.
References preview_object_.
|
inline |
Definition at line 78 of file dungeon_object_selector.h.
References object_loaded_.
| void yaze::editor::DungeonObjectSelector::DrawObjectAssetBrowser | ( | ) |
Definition at line 159 of file dungeon_object_selector.cc.
References yaze::zelda3::ObjectTileEditor::CaptureObjectLayout(), create_filename_, create_object_id_, current_palette_group_, current_palette_group_id_, current_room_id_, yaze::Rom::data(), DrawNewCustomObjectDialog(), DrawObjectPreview(), yaze::gfx::PaletteGroupMap::dungeon_main, enable_object_previews_, EnsureCustomObjectsInitialized(), game_data_, yaze::zelda3::CustomObjectManager::Get(), yaze::zelda3::ObjectDrawer::GetDrawRoutineId(), yaze::zelda3::GetObjectName(), yaze::zelda3::GetObjectSubtype(), GetObjectTypeColor(), GetObjectTypeSymbol(), yaze::editor::AgentUI::GetTheme(), ICON_MD_ADD, ICON_MD_CLEAR, ICON_MD_IMAGE, ICON_MD_LABEL, ICON_MD_REFRESH, ICON_MD_SEARCH, InvalidatePreviewCache(), yaze::zelda3::kNumberOfRooms, layout_cache_, MakePreviewObject(), MatchesObjectFilter(), MatchesObjectSearch(), object_double_click_callback_, object_loaded_, object_search_buffer_, object_selected_callback_, object_type_filter_, yaze::zelda3::GameData::palette_groups, preview_object_, preview_palette_, rom_, rooms_, selected_object_id_, SelectObject(), yaze::zelda3::RoomObject::SetRom(), show_create_dialog_, yaze::gfx::PaletteGroup::size(), yaze::zelda3::RoomObject::size_, static_editor_object_id_, yaze::gui::ThemedButton(), yaze::gui::ThemedTooltip(), and tile_editor_panel_.
Referenced by yaze::editor::ObjectSelectorContent::DrawObjectSelector().
| void yaze::editor::DungeonObjectSelector::SelectObject | ( | int | obj_id, |
| int | subtype = -1 ) |
Definition at line 136 of file dungeon_object_selector.cc.
References current_palette_group_id_, yaze::gfx::PaletteGroupMap::dungeon_main, game_data_, object_loaded_, object_selected_callback_, yaze::zelda3::GameData::palette_groups, preview_object_, preview_palette_, rom_, selected_object_id_, and yaze::zelda3::RoomObject::SetRom().
Referenced by DrawObjectAssetBrowser(), and yaze::editor::ObjectSelectorContent::SelectObject().

|
inline |
Definition at line 87 of file dungeon_object_selector.h.
References tile_editor_panel_.
Referenced by yaze::editor::DungeonEditorV2::Load().
|
inline |
Definition at line 90 of file dungeon_object_selector.h.
References project_.
Referenced by yaze::editor::DungeonEditorV2::Load().
| void yaze::editor::DungeonObjectSelector::InvalidatePreviewCache | ( | ) |
Definition at line 783 of file dungeon_object_selector.cc.
References layout_cache_, and preview_cache_.
Referenced by DrawObjectAssetBrowser(), GetOrCreatePreview(), yaze::editor::DungeonEditorV2::Load(), and SetCustomObjectsFolder().
|
inline |
Definition at line 96 of file dungeon_object_selector.h.
References static_editor_object_id_.
Referenced by yaze::editor::ObjectSelectorContent::CloseStaticObjectEditor(), and yaze::editor::ObjectSelectorContent::OpenStaticObjectEditor().
|
inline |
Definition at line 99 of file dungeon_object_selector.h.
References static_editor_object_id_.
|
private |
Definition at line 682 of file dungeon_object_selector.cc.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 701 of file dungeon_object_selector.cc.
References object_search_buffer_.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 743 of file dungeon_object_selector.cc.
References yaze::zelda3::DimensionService::Get(), and yaze::zelda3::DimensionService::GetPixelDimensions().

|
private |
Definition at line 880 of file dungeon_object_selector.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), and GetOrCreatePreview().
Referenced by DrawObjectAssetBrowser().

|
private |
Definition at line 776 of file dungeon_object_selector.cc.
References yaze::zelda3::RoomObject::EnsureTilesLoaded(), rom_, and yaze::zelda3::RoomObject::SetRom().
Referenced by DrawObjectAssetBrowser().

|
private |
Definition at line 750 of file dungeon_object_selector.cc.
References object_registry_, yaze::zelda3::DungeonObjectRegistry::RegisterVanillaRange(), and registry_initialized_.

|
private |
Definition at line 34 of file dungeon_object_selector.cc.
References yaze::editor::AgentUI::GetTheme().
Referenced by DrawObjectAssetBrowser().

|
private |
Definition at line 89 of file dungeon_object_selector.cc.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 766 of file dungeon_object_selector.cc.
References custom_objects_folder_, custom_objects_initialized_, yaze::zelda3::CustomObjectManager::Get(), and yaze::zelda3::CustomObjectManager::Initialize().
Referenced by DrawObjectAssetBrowser(), GetOrCreatePreview(), and SetCustomObjectsFolder().

|
private |
Definition at line 900 of file dungeon_object_selector.cc.
References create_filename_, create_height_, create_object_id_, create_width_, current_room_id_, yaze::zelda3::CustomObjectManager::Get(), yaze::editor::ObjectTileEditorPanel::OpenForNewObject(), rooms_, show_create_dialog_, and tile_editor_panel_.
Referenced by DrawObjectAssetBrowser().

|
private |
Definition at line 788 of file dungeon_object_selector.cc.
References yaze::gfx::BackgroundBuffer::bitmap(), cached_preview_blockset_, cached_preview_palette_, cached_preview_room_id_, yaze::zelda3::ObjectTileEditor::CaptureObjectLayout(), yaze::gfx::Arena::CREATE, current_palette_group_, current_room_id_, EnsureCustomObjectsInitialized(), yaze::gfx::Arena::Get(), InvalidatePreviewCache(), yaze::Rom::is_loaded(), preview_cache_, yaze::gfx::Arena::ProcessTextureQueue(), yaze::gfx::Arena::QueueTextureCommand(), yaze::zelda3::ObjectTileEditor::RenderLayoutToBitmap(), rom_, rooms_, and yaze::editor::DungeonRoomStore::size().
Referenced by DrawObjectPreview().
|
private |
Definition at line 117 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), and DrawObjectAssetBrowser().
|
private |
Definition at line 118 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog().
|
private |
Definition at line 119 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog().
|
private |
Definition at line 120 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), and DrawObjectAssetBrowser().
|
private |
Definition at line 121 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), and DrawObjectAssetBrowser().
|
private |
Definition at line 124 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), DrawObjectAssetBrowser(), and SetTileEditorPanel().
|
private |
Definition at line 125 of file dungeon_object_selector.h.
Referenced by SetProject().
|
private |
Definition at line 127 of file dungeon_object_selector.h.
Referenced by context(), DrawObjectAssetBrowser(), GetOrCreatePreview(), MakePreviewObject(), rom(), SelectObject(), SetContext(), and SetRom().
|
private |
Definition at line 128 of file dungeon_object_selector.h.
Referenced by context(), DrawObjectAssetBrowser(), game_data(), SelectObject(), SetContext(), and SetGameData().
|
private |
Definition at line 129 of file dungeon_object_selector.h.
Referenced by EnsureCustomObjectsInitialized(), and SetCustomObjectsFolder().
|
private |
Definition at line 130 of file dungeon_object_selector.h.
Referenced by EnsureCustomObjectsInitialized(), and SetCustomObjectsFolder().
|
private |
Definition at line 133 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), DrawObjectAssetBrowser(), get_rooms(), GetOrCreatePreview(), and set_rooms().
|
private |
Definition at line 134 of file dungeon_object_selector.h.
Referenced by DrawNewCustomObjectDialog(), DrawObjectAssetBrowser(), GetOrCreatePreview(), and set_current_room_id().
|
private |
Definition at line 137 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), SelectObject(), and set_current_palette_group_id().
|
private |
Definition at line 138 of file dungeon_object_selector.h.
Referenced by SetCurrentPaletteId().
|
private |
Definition at line 139 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), GetOrCreatePreview(), and SetCurrentPaletteGroup().
|
private |
Definition at line 141 of file dungeon_object_selector.h.
Referenced by EnsureRegistryInitialized().
|
private |
Definition at line 144 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), GetPreviewObject(), and SelectObject().
|
private |
Definition at line 145 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and SelectObject().
|
private |
Definition at line 146 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), IsObjectLoaded(), and SelectObject().
|
private |
Definition at line 149 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), SelectObject(), and SetObjectSelectedCallback().
|
private |
Definition at line 150 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and SetObjectDoubleClickCallback().
|
private |
Definition at line 153 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and SelectObject().
|
private |
Definition at line 154 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), GetStaticEditorObjectId(), and SetStaticEditorObjectId().
|
private |
Definition at line 157 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 158 of file dungeon_object_selector.h.
|
private |
Definition at line 159 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and MatchesObjectSearch().
|
private |
Definition at line 162 of file dungeon_object_selector.h.
Referenced by EnsureRegistryInitialized().
|
private |
Definition at line 165 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser().
|
private |
Definition at line 170 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview(), and InvalidatePreviewCache().
|
private |
Definition at line 171 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview().
|
private |
Definition at line 172 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview().
|
private |
Definition at line 173 of file dungeon_object_selector.h.
Referenced by GetOrCreatePreview().
|
private |
Definition at line 175 of file dungeon_object_selector.h.
Referenced by DrawObjectAssetBrowser(), and InvalidatePreviewCache().