#include <dungeon_canvas_viewer.h>
Classes | |
| struct | EntityVisibility |
| struct | ObjectOutlineToggles |
| struct | ObjectRenderCache |
Private Member Functions | |
| void | DisplayObjectInfo (const gui::CanvasRuntime &rt, const zelda3::RoomObject &object, int canvas_x, int canvas_y) |
| void | RenderSprites (const gui::CanvasRuntime &rt, const zelda3::Room &room) |
| void | RenderPotItems (const gui::CanvasRuntime &rt, const zelda3::Room &room) |
| void | RenderEntityOverlay (const gui::CanvasRuntime &rt, const zelda3::Room &room) |
| std::pair< int, int > | RoomToCanvasCoordinates (int room_x, int room_y) const |
| std::pair< int, int > | CanvasToRoomCoordinates (int canvas_x, int canvas_y) const |
| bool | IsWithinCanvasBounds (int canvas_x, int canvas_y, int margin=32) const |
| void | DrawObjectPositionOutlines (const gui::CanvasRuntime &rt, const zelda3::Room &room) |
| void | DrawMaskHighlights (const gui::CanvasRuntime &rt, const zelda3::Room &room) |
| absl::Status | LoadAndRenderRoomGraphics (int room_id) |
| void | DrawRoomBackgroundLayers (int room_id) |
Definition at line 31 of file dungeon_canvas_viewer.h.
|
inlineexplicit |
Definition at line 33 of file dungeon_canvas_viewer.h.
References object_interaction_, rom(), and yaze::editor::DungeonObjectInteraction::SetRom().

| void yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas | ( | int | room_id | ) |
Definition at line 51 of file dungeon_canvas_viewer.cc.
References yaze::gui::Canvas::AddContextMenuItem(), yaze::zelda3::BG1_Layout, yaze::zelda3::BG1_Objects, yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, yaze::gui::CanvasMenuItem::callback, canvas_, yaze::gui::CanvasFrameOptions::canvas_size, yaze::gui::Canvas::ClearContextMenuItems(), yaze::editor::DungeonObjectInteraction::ClearEntitySelection(), yaze::gfx::CreatePaletteGroupFromLargePalette(), current_palette_group_, current_palette_group_id_, custom_grid_size_, yaze::gui::Canvas::custom_step(), yaze::gui::CanvasMenuItem::Disabled(), yaze::editor::Door, yaze::gui::CanvasFrameOptions::draw_context_menu, yaze::gui::CanvasFrameOptions::draw_grid, yaze::gui::CanvasFrameOptions::draw_overlay, yaze::gfx::PaletteGroupMap::dungeon_main, yaze::gui::CanvasMenuItem::enabled_condition, entity_visibility_, game_data_, yaze::zelda3::GetDoorTypeName(), yaze::editor::DungeonObjectInteraction::GetLayerFilter(), GetRoomLayerManager(), yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), yaze::gui::Canvas::global_scale(), yaze::gui::CanvasFrameOptions::grid_step, yaze::gui::Canvas::height(), yaze::gui::CanvasMenuItem::icon, ICON_MD_ADD, ICON_MD_ADD_CIRCLE, ICON_MD_ARROW_DOWNWARD, ICON_MD_ARROW_UPWARD, ICON_MD_AUTO_AWESOME, ICON_MD_BUG_REPORT, ICON_MD_CANCEL, ICON_MD_CONTENT_COPY, ICON_MD_CONTENT_CUT, ICON_MD_CONTENT_PASTE, ICON_MD_CROP_SQUARE, ICON_MD_DELETE, ICON_MD_DOOR_FRONT, ICON_MD_FILTER_ALT, ICON_MD_FLIP_TO_BACK, ICON_MD_FLIP_TO_FRONT, ICON_MD_GRID_OFF, ICON_MD_GRID_ON, ICON_MD_GRID_VIEW, ICON_MD_IMAGE, ICON_MD_INFO, ICON_MD_INVENTORY, ICON_MD_LABEL, ICON_MD_LABEL_OUTLINE, ICON_MD_LAYERS, ICON_MD_LOOKS_3, ICON_MD_LOOKS_ONE, ICON_MD_LOOKS_TWO, ICON_MD_MERGE_TYPE, ICON_MD_MY_LOCATION, ICON_MD_PALETTE, ICON_MD_PERSON, ICON_MD_PEST_CONTROL, ICON_MD_PRINT, ICON_MD_REFRESH, ICON_MD_SELECT_ALL, ICON_MD_SQUARE, ICON_MD_SQUARE_FOOT, ICON_MD_SWAP_VERT, ICON_MD_TUNE, ICON_MD_VIEW_MODULE, ICON_MD_WIDGETS, yaze::gui::InputHexByteEx(), yaze::Rom::is_loaded(), yaze::editor::DungeonObjectInteraction::IsDoorPlacementActive(), yaze::editor::DungeonObjectInteraction::IsItemPlacementActive(), yaze::editor::DungeonObjectInteraction::IsLayerFilterActive(), yaze::editor::DungeonObjectInteraction::IsSpritePlacementActive(), yaze::editor::Item, yaze::editor::ObjectSelection::kLayer1, yaze::editor::ObjectSelection::kLayer2, yaze::editor::ObjectSelection::kLayer3, yaze::editor::ObjectSelection::kLayerAll, yaze::editor::ObjectSelection::kMaskLayer, yaze::gui::CanvasMenuItem::label, LOG_DEBUG, yaze::zelda3::NormalDoor, yaze::zelda3::NumberOfRooms, object_interaction_, object_interaction_enabled_, object_outline_toggles_, yaze::zelda3::GameData::palette_groups, yaze::zelda3::GameData::paletteset_ids, pending_scroll_target_, prev_blockset_, prev_layout_, prev_palette_, prev_spriteset_, yaze::Rom::ReadWord(), yaze::gui::CanvasFrameOptions::render_popups, yaze::zelda3::ResolveSpriteName(), rom_, room_navigation_callback_, room_swap_callback_, rooms_, SetCurrentPaletteId(), yaze::editor::DungeonObjectInteraction::SetDoorPlacementMode(), yaze::editor::DungeonObjectInteraction::SetItemPlacementMode(), yaze::editor::DungeonObjectInteraction::SetLayerFilter(), yaze::editor::DungeonObjectInteraction::SetLayersMerged(), yaze::gui::Canvas::SetShowBuiltinContextMenu(), yaze::editor::DungeonObjectInteraction::SetSpritePlacementMode(), yaze::gui::InputHexResult::ShouldApply(), show_coordinate_overlay_, show_grid_, show_item_panel_callback_, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_layer0_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_layer1_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_layer2_objects, show_layer_info_, show_object_bounds_, show_object_panel_callback_, yaze::editor::DungeonCanvasViewer::EntityVisibility::show_pot_items, show_room_debug_info_, show_sprite_panel_callback_, yaze::editor::DungeonCanvasViewer::EntityVisibility::show_sprites, show_texture_debug_, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_type1_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_type2_objects, yaze::editor::DungeonCanvasViewer::ObjectOutlineToggles::show_type3_objects, yaze::gfx::PaletteGroup::size(), yaze::editor::Sprite, yaze::gui::CanvasMenuItem::subitems, yaze::gui::Canvas::width(), and yaze::gui::Canvas::zero_point().
Referenced by yaze::editor::DungeonRoomPanel::Draw(), and Draw().
| void yaze::editor::DungeonCanvasViewer::Draw | ( | int | room_id | ) |
Definition at line 47 of file dungeon_canvas_viewer.cc.
References DrawDungeonCanvas().

|
inline |
Definition at line 41 of file dungeon_canvas_viewer.h.
References yaze::editor::EditorContext::game_data, game_data_, object_interaction_, yaze::editor::EditorContext::rom, rom_, and yaze::editor::DungeonObjectInteraction::SetRom().

|
inline |
Definition at line 46 of file dungeon_canvas_viewer.h.
References game_data_, and rom_.
|
inline |
Definition at line 47 of file dungeon_canvas_viewer.h.
References object_interaction_, rom(), rom_, and yaze::editor::DungeonObjectInteraction::SetRom().

|
inline |
Definition at line 51 of file dungeon_canvas_viewer.h.
References rom_.
Referenced by DungeonCanvasViewer(), and SetRom().
|
inline |
Definition at line 52 of file dungeon_canvas_viewer.h.
References game_data(), and game_data_.

|
inline |
Definition at line 53 of file dungeon_canvas_viewer.h.
References game_data_.
Referenced by SetGameData().
|
inline |
Definition at line 54 of file dungeon_canvas_viewer.h.
References renderer_.
|
inline |
Definition at line 57 of file dungeon_canvas_viewer.h.
References rooms_.
|
inline |
Definition at line 58 of file dungeon_canvas_viewer.h.
References rooms_.
Referenced by yaze::editor::ObjectEditorPanel::DrawSelectedObjectInfo().
|
inline |
Definition at line 60 of file dungeon_canvas_viewer.h.
References active_rooms_.
|
inline |
Definition at line 61 of file dungeon_canvas_viewer.h.
References current_active_room_tab_.
|
inline |
Definition at line 64 of file dungeon_canvas_viewer.h.
References current_palette_group_id_.
|
inline |
Definition at line 67 of file dungeon_canvas_viewer.h.
References current_palette_id_.
Referenced by DrawDungeonCanvas().
|
inline |
Definition at line 68 of file dungeon_canvas_viewer.h.
References current_palette_group_.
|
inline |
Definition at line 71 of file dungeon_canvas_viewer.h.
References room_navigation_callback_.
|
inline |
Definition at line 75 of file dungeon_canvas_viewer.h.
References room_swap_callback_.
|
inline |
Definition at line 78 of file dungeon_canvas_viewer.h.
References show_object_panel_callback_.
|
inline |
Definition at line 81 of file dungeon_canvas_viewer.h.
References show_sprite_panel_callback_.
|
inline |
Definition at line 84 of file dungeon_canvas_viewer.h.
References show_item_panel_callback_.
|
inline |
Definition at line 89 of file dungeon_canvas_viewer.h.
References canvas_.
|
inline |
Definition at line 90 of file dungeon_canvas_viewer.h.
References canvas_.
|
inline |
Definition at line 93 of file dungeon_canvas_viewer.h.
References object_interaction_.
Referenced by yaze::editor::ObjectEditorPanel::CancelPlacement(), yaze::editor::ObjectEditorPanel::CopySelectedObjects(), yaze::editor::ObjectEditorPanel::CycleObjectSelection(), yaze::editor::ObjectEditorPanel::DeleteSelectedObjects(), yaze::editor::ObjectEditorPanel::DeselectAllObjects(), yaze::editor::ObjectEditorPanel::Draw(), yaze::editor::ObjectEditorPanel::DrawDoorSection(), yaze::editor::ItemEditorPanel::DrawItemSelector(), yaze::editor::ItemEditorPanel::DrawPlacementControls(), yaze::editor::SpriteEditorPanel::DrawPlacementControls(), yaze::editor::ObjectEditorPanel::DrawSelectedObjectInfo(), yaze::editor::SpriteEditorPanel::DrawSpriteSelector(), yaze::editor::ObjectEditorPanel::DuplicateSelectedObjects(), yaze::editor::ObjectEditorPanel::HandleKeyboardShortcuts(), yaze::editor::ObjectEditorPanel::NudgeSelectedObjects(), yaze::editor::ObjectEditorPanel::OnSelectionChanged(), yaze::editor::ObjectEditorPanel::PasteObjects(), yaze::editor::ObjectEditorPanel::PerformDelete(), yaze::editor::ObjectEditorPanel::SelectAllObjects(), and yaze::editor::ObjectEditorPanel::SetupSelectionCallbacks().
|
inline |
Definition at line 95 of file dungeon_canvas_viewer.h.
References object_interaction_, and yaze::editor::DungeonObjectInteraction::SetEditorSystem().

|
inline |
Definition at line 100 of file dungeon_canvas_viewer.h.
References object_interaction_enabled_.
Referenced by yaze::editor::ObjectEditorPanel::ObjectEditorPanel().
|
inline |
Definition at line 103 of file dungeon_canvas_viewer.h.
References object_interaction_enabled_.
|
inline |
Definition at line 108 of file dungeon_canvas_viewer.h.
References object_render_mode_.
|
inline |
Definition at line 111 of file dungeon_canvas_viewer.h.
References object_render_mode_.
|
inline |
Definition at line 114 of file dungeon_canvas_viewer.h.
References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetLayerVisible().

|
inline |
Definition at line 117 of file dungeon_canvas_viewer.h.
References room_layer_managers_.
|
inline |
Definition at line 124 of file dungeon_canvas_viewer.h.
References yaze::zelda3::BG1_Layout, yaze::zelda3::BG1_Objects, and GetRoomLayerManager().

|
inline |
Definition at line 129 of file dungeon_canvas_viewer.h.
References yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, and GetRoomLayerManager().

|
inline |
Definition at line 134 of file dungeon_canvas_viewer.h.
References yaze::zelda3::BG1_Layout, yaze::zelda3::BG1_Objects, and room_layer_managers_.
|
inline |
Definition at line 140 of file dungeon_canvas_viewer.h.
References yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, and room_layer_managers_.
|
inline |
Definition at line 148 of file dungeon_canvas_viewer.h.
References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetLayerBlendMode().

|
inline |
Definition at line 152 of file dungeon_canvas_viewer.h.
References yaze::zelda3::Normal, and room_layer_managers_.
Referenced by GetBG2LayerType().
|
inline |
Definition at line 161 of file dungeon_canvas_viewer.h.
References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetObjectTranslucency().

|
inline |
Definition at line 168 of file dungeon_canvas_viewer.h.
References room_layer_managers_.
Referenced by DrawDungeonCanvas(), SetBG1Visible(), SetBG2LayerType(), SetBG2Visible(), SetLayerBlendMode(), SetLayerVisible(), and SetObjectTranslucent().
|
inline |
Definition at line 171 of file dungeon_canvas_viewer.h.
References room_layer_managers_.
|
inline |
Definition at line 178 of file dungeon_canvas_viewer.h.
References yaze::zelda3::Addition, yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, yaze::zelda3::Dark, GetRoomLayerManager(), yaze::zelda3::Normal, yaze::zelda3::Off, and yaze::zelda3::Translucent.

|
inline |
Definition at line 204 of file dungeon_canvas_viewer.h.
References yaze::zelda3::Addition, yaze::zelda3::BG2_Layout, yaze::zelda3::Dark, GetLayerBlendMode(), yaze::zelda3::Normal, yaze::zelda3::Off, and yaze::zelda3::Translucent.

|
inline |
Definition at line 222 of file dungeon_canvas_viewer.h.
References current_palette_group_, object_interaction_, yaze::editor::DungeonObjectInteraction::SetCurrentPaletteGroup(), and yaze::editor::DungeonObjectInteraction::SetPreviewObject().
Referenced by yaze::editor::ObjectEditorPanel::ObjectEditorPanel().

|
inline |
Definition at line 227 of file dungeon_canvas_viewer.h.
References object_interaction_, and yaze::editor::DungeonObjectInteraction::SetPreviewObject().
Referenced by yaze::editor::ObjectEditorPanel::CancelPlacement().

|
inline |
Definition at line 233 of file dungeon_canvas_viewer.h.
References yaze::editor::DungeonObjectInteraction::HandleDeleteSelected(), and object_interaction_.

|
inline |
Definition at line 236 of file dungeon_canvas_viewer.h.
References entity_visibility_, and yaze::editor::DungeonCanvasViewer::EntityVisibility::show_sprites.
|
inline |
Definition at line 237 of file dungeon_canvas_viewer.h.
References entity_visibility_, and yaze::editor::DungeonCanvasViewer::EntityVisibility::show_sprites.
|
inline |
Definition at line 238 of file dungeon_canvas_viewer.h.
References entity_visibility_, and yaze::editor::DungeonCanvasViewer::EntityVisibility::show_pot_items.
|
inline |
Definition at line 239 of file dungeon_canvas_viewer.h.
References entity_visibility_, and yaze::editor::DungeonCanvasViewer::EntityVisibility::show_pot_items.
|
private |
Definition at line 1389 of file dungeon_canvas_viewer.cc.
References yaze::gui::DrawText().

|
private |
Definition at line 1409 of file dungeon_canvas_viewer.cc.
References yaze::gui::DrawRect(), yaze::gui::DrawText(), yaze::zelda3::GetSpriteLabel(), and yaze::zelda3::Room::GetSprites().

|
private |
Definition at line 1456 of file dungeon_canvas_viewer.cc.
References yaze::gui::DrawRect(), yaze::gui::DrawText(), and yaze::zelda3::Room::GetPotItems().

|
private |
Definition at line 1543 of file dungeon_canvas_viewer.cc.
|
private |
Definition at line 1551 of file dungeon_canvas_viewer.cc.
|
private |
Definition at line 1562 of file dungeon_canvas_viewer.cc.
|
private |
Definition at line 1581 of file dungeon_canvas_viewer.cc.
|
private |
|
private |
Definition at line 1786 of file dungeon_canvas_viewer.cc.
References yaze::zelda3::ObjectDrawer::CalculateObjectDimensions(), yaze::gui::DrawRect(), yaze::zelda3::ObjectDimensionTable::Get(), yaze::zelda3::Room::GetTileObjects(), and yaze::zelda3::Room::id().
|
private |
Definition at line 1693 of file dungeon_canvas_viewer.cc.
References ASSIGN_OR_RETURN, yaze::gfx::CreatePaletteGroupFromLargePalette(), LOG_DEBUG, and LOG_ERROR.

|
private |
Definition at line 1753 of file dungeon_canvas_viewer.cc.
References yaze::gfx::Arena::CREATE, yaze::gfx::Arena::Get(), yaze::zelda3::NumberOfRooms, yaze::gfx::Arena::QueueTextureCommand(), and yaze::gfx::Arena::UPDATE.

|
private |
Definition at line 268 of file dungeon_canvas_viewer.h.
Referenced by context(), DrawDungeonCanvas(), rom(), SetContext(), and SetRom().
|
private |
Definition at line 269 of file dungeon_canvas_viewer.h.
Referenced by context(), DrawDungeonCanvas(), game_data(), SetContext(), and SetGameData().
|
private |
Definition at line 270 of file dungeon_canvas_viewer.h.
Referenced by canvas(), canvas(), and DrawDungeonCanvas().
|
private |
Definition at line 272 of file dungeon_canvas_viewer.h.
Referenced by ClearPreviewObject(), DeleteSelectedObjects(), DrawDungeonCanvas(), DungeonCanvasViewer(), object_interaction(), SetContext(), SetEditorSystem(), SetPreviewObject(), and SetRom().
|
private |
Definition at line 275 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 278 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), HasRooms(), and SetRooms().
|
private |
Definition at line 280 of file dungeon_canvas_viewer.h.
Referenced by set_active_rooms().
|
private |
Definition at line 281 of file dungeon_canvas_viewer.h.
Referenced by set_current_active_room_tab().
|
private |
Definition at line 284 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), IsObjectInteractionEnabled(), and SetObjectInteractionEnabled().
|
private |
Definition at line 287 of file dungeon_canvas_viewer.h.
Referenced by GetLayerBlendMode(), GetRoomLayerManager(), GetRoomLayerManager(), IsBG1Visible(), IsBG2Visible(), and IsLayerVisible().
|
private |
Definition at line 290 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), and set_current_palette_group_id().
|
private |
Definition at line 291 of file dungeon_canvas_viewer.h.
Referenced by SetCurrentPaletteId().
|
private |
Definition at line 292 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), SetCurrentPaletteGroup(), and SetPreviewObject().
|
private |
Definition at line 293 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), and SetRoomNavigationCallback().
|
private |
Definition at line 294 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), and SetRoomSwapCallback().
|
private |
Definition at line 295 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), and SetShowObjectPanelCallback().
|
private |
Definition at line 296 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), and SetShowSpritePanelCallback().
|
private |
Definition at line 297 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas(), and SetShowItemPanelCallback().
|
private |
Definition at line 307 of file dungeon_canvas_viewer.h.
|
private |
Definition at line 308 of file dungeon_canvas_viewer.h.
|
private |
Definition at line 311 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 312 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 313 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 314 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 315 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 316 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 317 of file dungeon_canvas_viewer.h.
|
private |
Definition at line 318 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 319 of file dungeon_canvas_viewer.h.
Referenced by GetObjectRenderMode(), and SetObjectRenderMode().
|
private |
Definition at line 331 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 339 of file dungeon_canvas_viewer.h.
Referenced by ArePotItemsVisible(), AreSpritesVisible(), DrawDungeonCanvas(), SetPotItemsVisible(), and SetSpritesVisible().
|
private |
Definition at line 341 of file dungeon_canvas_viewer.h.
Referenced by SetRenderer().
|
private |
Definition at line 344 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 345 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 346 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().
|
private |
Definition at line 347 of file dungeon_canvas_viewer.h.
Referenced by DrawDungeonCanvas().