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

#include <dungeon_canvas_viewer.h>

Classes

struct  CachedSpritePreview
 
struct  ChangePingRect
 
struct  ConnectedRoomCompositeEntry
 
struct  ConnectedRoomGraphData
 
struct  EntityVisibility
 
struct  ObjectOutlineToggles
 
struct  ObjectRenderCache
 
struct  RoomLayerState
 

Public Types

using MetadataEditCallback
 
using MetadataBatchEditCallback
 
using ChestEditCallback
 
using ChestDeleteCallback = std::function<absl::Status(int, size_t)>
 
using DoorConnectionPreviewCallback
 
using DoorConnectionApplyCallback
 
using RoomDocumentExportCallback
 
using RoomTransferPreviewCallback
 
using RoomTransferApplyCallback
 

Public Member Functions

 DungeonCanvasViewer (Rom *rom=nullptr)
 
 ~DungeonCanvasViewer ()
 
void DrawDungeonCanvas (int room_id)
 
std::optional< int > DrawConnectedRoomMatrix (int center_room_id)
 
void DrawProposalPreview (const DungeonProposalOverlay &overlay, const std::vector< char > &layer_visible, bool show_overlay, float scale)
 
ImVec2 GetProposalPreviewContentSize (const DungeonProposalOverlay &overlay, float scale) const
 
void DrawConnectedToolbarControls (int center_room_id)
 
void Draw (int room_id)
 
void CancelMinecartGesture ()
 
void TriggerChangePing ()
 
void SetMetadataEditCallback (MetadataEditCallback callback)
 
void SetMetadataBatchEditCallback (MetadataBatchEditCallback callback)
 
void SetChestEditCallback (ChestEditCallback callback)
 
void SetChestDeleteCallback (ChestDeleteCallback callback)
 
void SetDoorConnectionCallbacks (DoorConnectionPreviewCallback preview, DoorConnectionApplyCallback apply)
 
absl::StatusOr< DungeonConnectionPlan > PreviewDoorConnection (const DungeonConnectionRequest &request)
 
absl::Status ApplyDoorConnection (const DungeonConnectionPlan &plan)
 
void SetDoorConnectionNavigationCallback (std::function< void(int, size_t)> callback)
 
bool CanNavigateDoorConnectionTarget () const
 
bool NavigateToDoorConnectionTarget (int room_id, size_t door_index)
 
DungeonConnectionEditorState & connection_editor_state ()
 
void SetRoomTransferCallbacks (RoomDocumentExportCallback export_document, RoomTransferPreviewCallback preview, RoomTransferApplyCallback apply)
 
absl::StatusOr< std::string > ExportRoomDocument (int room_id)
 
absl::StatusOr< DungeonRoomTransferPlan > PreviewRoomTransfer (int source_room_id, const std::string &json, const DungeonRoomTransferOptions &options)
 
absl::Status ApplyRoomTransfer (const DungeonRoomTransferPlan &plan)
 
DungeonRoomTransferEditorState & room_transfer_state ()
 
absl::Status EditRoomMetadata (int room_id, const RoomMetadataEdit &edit)
 
absl::Status EditRoomMetadataBatch (const std::vector< RoomMetadataRequest > &requests)
 
absl::Status EditChest (int room_id, size_t index, uint8_t item_id, bool big_chest)
 
absl::Status DeleteChest (int room_id, size_t index)
 
DungeonChestEditorState & chest_editor_state ()
 
void InvalidateConnectedRoomGraph ()
 
void TriggerCanvasPingRect (int pixel_x, int pixel_y, int pixel_w, int pixel_h)
 
void TriggerObjectChangePing (const std::vector< zelda3::RoomObject > &previous_objects, const std::vector< zelda3::RoomObject > &next_objects)
 
ImVec2 GetConnectedContentSize (int center_room_id)
 
float ConnectedCanvasScale () const
 
void SetConnectedControlsInline (bool inline_controls)
 
void SetContext (EditorContext ctx)
 
EditorContext context () const
 
void SetRom (Rom *rom)
 
Rom * rom () const
 
void SetGameData (zelda3::GameData *game_data)
 
zelda3::GameData * game_data () const
 
void SetRenderer (gfx::IRenderer *renderer)
 
void SetRooms (DungeonRoomStore *rooms)
 
void RefreshRomBackedState (Rom *rom, zelda3::GameData *game_data, DungeonRoomStore *rooms, int room_id)
 
DungeonRoomStore * rooms () const
 
bool HasRooms () const
 
int current_room_id () const
 
void SetCompactHeaderMode (bool compact)
 
bool compact_header_mode () const
 
void SetRoomDetailsExpanded (bool expanded)
 
void set_active_rooms (const ImVector< int > &rooms)
 
void set_current_active_room_tab (int tab)
 
void set_current_palette_group_id (uint64_t id)
 
void SetCurrentPaletteId (uint64_t id)
 
void SetCurrentPaletteGroup (const gfx::PaletteGroup &group, bool force_refresh=false)
 
void SetEntranceRenderContext (int entrance_id, uint8_t entrance_blockset)
 
void ClearEntranceRenderContext ()
 
int current_entrance_id () const
 
uint8_t current_entrance_blockset () const
 
void SetEntranceBlocksetResolver (std::function< uint8_t(int)> resolver)
 
void SetEntranceCameraOverlay (int entrance_slot, const DungeonEntranceCameraState &state)
 
void ClearEntranceCameraOverlay ()
 
const std::optional< DungeonEntranceCameraState > & entrance_camera_overlay () const
 
void SetRoomNavigationCallback (std::function< void(int)> callback)
 
void SetRoomSwapCallback (std::function< void(int, int)> callback)
 
bool CanNavigateRooms () const
 
void NavigateToRoom (int target_room)
 
void SetShowObjectPanelCallback (std::function< void()> callback)
 
void SetShowSpritePanelCallback (std::function< void()> callback)
 
void SetShowItemPanelCallback (std::function< void()> callback)
 
void SetShowRoomListCallback (std::function< void()> callback)
 
void SetShowRoomMatrixCallback (std::function< void()> callback)
 
void SetShowEntranceListCallback (std::function< void()> callback)
 
void set_show_custom_collision_overlay (bool show)
 
bool show_custom_collision_overlay () const
 
void set_show_water_fill_overlay (bool show)
 
bool show_water_fill_overlay () const
 
bool show_track_collision_overlay () const
 
void set_show_track_collision_overlay (bool show)
 
bool show_camera_quadrant_overlay () const
 
void set_show_camera_quadrant_overlay (bool show)
 
bool show_minecart_sprite_overlay () const
 
void set_show_minecart_sprite_overlay (bool show)
 
bool show_track_gap_overlay () const
 
void set_show_track_gap_overlay (bool show)
 
bool show_track_route_overlay () const
 
void set_show_track_route_overlay (bool show)
 
bool show_custom_objects_overlay () const
 
void set_show_custom_objects_overlay (bool show)
 
bool show_grid () const
 
void set_show_grid (bool show)
 
int custom_grid_size () const
 
void set_custom_grid_size (int size)
 
bool show_object_bounds () const
 
void set_show_object_bounds (bool show)
 
bool show_coordinate_overlay () const
 
void set_show_coordinate_overlay (bool show)
 
bool show_room_debug_info () const
 
void set_show_room_debug_info (bool show)
 
bool show_texture_debug () const
 
void set_show_texture_debug (bool show)
 
bool show_layer_info () const
 
void set_show_layer_info (bool show)
 
bool show_crumble_floor () const
 
void set_show_crumble_floor (bool show)
 
bool show_minecart_tracks () const
 
void set_show_minecart_tracks (bool show)
 
bool show_track_collision_legend () const
 
void set_show_track_collision_legend (bool show)
 
bool * mutable_show_grid ()
 
bool * mutable_show_object_bounds ()
 
bool * mutable_show_coordinate_overlay ()
 
bool * mutable_show_room_debug_info ()
 
bool * mutable_show_texture_debug ()
 
bool * mutable_show_layer_info ()
 
bool * mutable_show_minecart_tracks ()
 
bool * mutable_show_custom_collision_overlay ()
 
bool * mutable_show_track_collision_overlay ()
 
bool * mutable_show_camera_quadrant_overlay ()
 
bool * mutable_show_minecart_sprite_overlay ()
 
bool * mutable_show_track_collision_legend ()
 
void SetShowRoomGraphicsCallback (std::function< void()> callback)
 
void SetShowDoorEditorCallback (std::function< void()> callback)
 
void SetShowDungeonSettingsCallback (std::function< void()> callback)
 
void SetSaveRoomCallback (std::function< void(int)> callback)
 
void SetEditGraphicsCallback (std::function< void(int, const zelda3::RoomObject &)> callback)
 
void SetEditObjectTilesCallback (std::function< void(int, const zelda3::RoomObject &)> callback)
 
void SetCheckObjectCoverageCallback (std::function< void(int, const zelda3::RoomObject &)> callback)
 
void SetMinecartTrackPanel (MinecartTrackEditorPanel *panel)
 
void SetPinned (bool pinned)
 
void SetPinCallback (std::function< void(bool)> callback)
 
void SetProject (const project::YazeProject *project)
 
void InvalidateExternalSpriteResources ()
 
const project::YazeProject * project () const
 
gui::Canvas & canvas ()
 
const gui::Canvas & canvas () const
 
DungeonObjectInteraction & object_interaction ()
 
void SetEditorSystem (zelda3::DungeonEditorSystem *system)
 
void SetObjectInteractionEnabled (bool enabled)
 
bool IsObjectInteractionEnabled () const
 
void SetHeaderReadOnly (bool read_only)
 
bool header_read_only () const
 
void SetHeaderVisible (bool visible)
 
bool header_visible () const
 
void SetHeaderHiddenMetadataHudVisible (bool visible)
 
bool show_header_hidden_metadata_hud () const
 
void SetObjectRenderMode (ObjectRenderMode mode)
 
ObjectRenderMode GetObjectRenderMode () const
 
void SetLayerVisible (int room_id, zelda3::LayerType layer, bool visible)
 
bool IsLayerVisible (int room_id, zelda3::LayerType layer) const
 
void SetBG1Visible (int room_id, bool visible)
 
void SetBG2Visible (int room_id, bool visible)
 
bool IsBG1Visible (int room_id) const
 
bool IsBG2Visible (int room_id) const
 
void SetLayerBlendMode (int room_id, zelda3::LayerType layer, zelda3::LayerBlendMode mode)
 
zelda3::LayerBlendMode GetLayerBlendMode (int room_id, zelda3::LayerType layer) const
 
void SetObjectTranslucent (int room_id, size_t object_index, bool translucent, uint8_t alpha=128)
 
zelda3::RoomLayerManager & GetRoomLayerManager (int room_id)
 
const zelda3::RoomLayerManager & GetRoomLayerManager (int room_id) const
 
void SetBG2LayerType (int room_id, int type)
 
int GetBG2LayerType (int room_id) const
 
void SetPreviewObject (const zelda3::RoomObject &object)
 
void ClearPreviewObject ()
 
void ScrollToTile (int tile_x, int tile_y)
 
bool HasPendingScrollTarget () const
 
std::optional< std::pair< int, int > > GetPendingScrollTarget () const
 
void DeleteSelectedObjects ()
 
bool CanHandleRoomCanvasShortcut () const
 
bool OwnsRoomNavigationShortcutFocus () const
 
void SetSpritesVisible (bool visible)
 
bool AreSpritesVisible () const
 
void SetPotItemsVisible (bool visible)
 
bool ArePotItemsVisible () const
 
void SetChestContentsVisible (bool visible)
 
bool AreChestContentsVisible () const
 

Private Types

using SpritePreviewKey = std::tuple<uint64_t, uint8_t, int, bool>
 

Private Member Functions

void DisplayObjectInfo (const gui::CanvasRuntime &rt, const zelda3::RoomObject &object, int canvas_x, int canvas_y)
 
void DrawRoomHeader (zelda3::Room &room, int room_id)
 
void DrawRoomNavigation (int room_id)
 
void DrawRoomPropertyTable (zelda3::Room &room, int room_id)
 
void DrawRecentRoomBreadcrumbs (int room_id)
 
void DrawLayerControls (zelda3::Room &room, int room_id)
 
void DrawCompactLayerToggles (int room_id)
 
void PopulateCanvasContextMenu (int room_id)
 
void AddInteractionContextMenuItems (int room_id)
 
void AddLoadedRoomContextMenuItems (int room_id)
 
gui::CanvasMenuItem BuildInsertContextMenu ()
 
std::vector< gui::CanvasMenuItem > BuildSelectionContextMenuItems (int room_id)
 
std::vector< gui::CanvasMenuItem > BuildSelectionContextMenuItems (int room_id, std::optional< zelda3::RoomObject > context_object)
 
std::optional< zelda3::RoomObject > GetObjectUnderContextCursor (int room_id)
 
gui::CanvasMenuItem BuildRoomContextMenu (int room_id)
 
gui::CanvasMenuItem BuildReportContextMenu (int room_id)
 
std::optional< gui::CanvasMenuItem > BuildOpenContextMenu ()
 
gui::CanvasMenuItem BuildCopyExportContextMenu (int room_id)
 
gui::CanvasMenuItem BuildLayerVisibilityContextMenu (int room_id)
 
gui::CanvasMenuItem BuildOverlayContextMenu ()
 
gui::CanvasMenuItem BuildDebugContextMenu (int room_id)
 
std::string BuildRoomMetadataSummary (const zelda3::Room &room, int room_id) const
 
std::string BuildDrawIssueReport (const zelda3::Room &room, int room_id)
 
std::string BuildSelectionIssueReport (const zelda3::Room &room, int room_id) const
 
void OpenIssueReportPopup (const std::string &title, const std::string &summary, const std::string &kind_label, const std::string &diagnostics, int room_id, int default_category_index)
 
absl::Status PrepareIssueReportPopup (const std::string &title, const std::string &summary, const std::string &kind_label, const std::string &diagnostics, int room_id, int default_category_index)
 
std::string BuildIssueReportClipboardText () const
 
absl::Status CaptureIssueReportScreenshot ()
 
absl::Status AppendIssueReportToLog ()
 
absl::Status EnsureIssueReportPersisted ()
 
void MarkIssueReportDirty ()
 
void RefreshIssueReportOutputTargets ()
 
void SetIssueReportPopupStatus (std::string message, bool is_error)
 
void DrawIssueReportStorageSummary () const
 
void DrawIssueReportStatusMessage () const
 
void RenderSprites (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void RenderPotItems (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void RenderChestContents (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void RenderEntityOverlay (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void HandleTouchLongPressContextMenu (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void DrawObjectPositionOutlines (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void ApplyTrackCollisionConfig ()
 
const DungeonRenderingHelpers::CollisionOverlayCache & GetCollisionOverlayCache (int room_id)
 
void DrawMaskHighlights (const gui::CanvasRuntime &rt, const zelda3::Room &room)
 
void DrawPersistentDebugWindows (int room_id)
 
void DrawRoomDebugWindow (zelda3::Room &room, int room_id)
 
void DrawTextureDebugWindow (zelda3::Room &room, int room_id)
 
void DrawLayerInfoWindow (int room_id)
 
void DrawRoomCanvasOverlays (const gui::CanvasRuntime &rt, zelda3::Room &room, int room_id)
 
void DrawCoordinateOverlayHud (int room_id)
 
bool ValidateRoomCanvasRequest (int room_id)
 
gui::CanvasFrameOptions BuildRoomCanvasFrameOptions () const
 
void UpdateRoomCanvasViewport (ImVec2 viewport_size)
 
void HandleRoomCanvasNavigation (gui::CanvasRuntime &canvas_rt)
 
void SyncCanvasConfigFromViewerState ()
 
void SyncViewerStateFromCanvasConfig ()
 
void RefreshActiveRoomCanvasState (zelda3::Room &room, int room_id)
 
zelda3::Room * PrepareActiveRoomForCanvasFrame (int room_id)
 
void SyncCanvasCaptureRegion (const gui::CanvasRuntime &canvas_rt)
 
void ConsumePendingCanvasScroll (const gui::CanvasRuntime &canvas_rt)
 
void DrawHeaderHiddenMetadataHud (int room_id)
 
void PrepareRoomStateForCanvas (zelda3::Room &room, int room_id)
 
void DrawRoomCanvasContent (const gui::CanvasRuntime &canvas_rt, zelda3::Room &room, int room_id)
 
void HandleRoomCanvasDropTargets (zelda3::Room &room, int room_id)
 
void DrawChangePingOverlay (const gui::CanvasRuntime &canvas_rt, const zelda3::Room &room)
 
void RecordVisitedRoom (int room_id)
 
gfx::Bitmap * PrepareRoomCompositeWithOutput (int room_id, RoomCompositeOutput &output)
 
void PruneConnectedRoomCompositeOutputs ()
 
void ResetRoomCompositeOutputs ()
 
void UpdateRoomCanvasShortcutFocus (bool hovered, bool pointer_pressed, int frame_index)
 
bool HasRoomCanvasShortcutFocusForFrame (int frame_index) const
 
absl::Status LoadAndRenderRoomGraphics (int room_id)
 
gfx::Bitmap * PrepareRoomCompositeBitmap (int room_id)
 
gfx::Bitmap * PrepareConnectedRoomCompositeBitmap (int room_id)
 
zelda3::Room * EnsureRoomLoadedForConnectedView (int room_id)
 
bool RoomHasNonExitDoorInDirection (int room_id, zelda3::DoorDirection dir)
 
ConnectedRoomGraphData BuildConnectedRoomGraph (int start_room_id)
 
int ApplyConnectedStaircaseIssueAutoFixes (int center_room_id)
 
bool DrawRoomBackgroundLayers (int room_id)
 
bool DrawCrumbleCanvas (const gui::CanvasRuntime &rt)
 
bool DrawMinecartCanvas (const gui::CanvasRuntime &rt, zelda3::Room &room, int room_id)
 

Private Attributes

Rom * rom_ = nullptr
 
zelda3::GameData * game_data_ = nullptr
 
gui::Canvas canvas_ {"##DungeonCanvas", ImVec2(0x200, 0x200)}
 
bool room_viewport_auto_fit_ = true
 
float room_viewport_last_scale_ = -1.0f
 
gui::Canvas connected_canvas_
 
DungeonObjectInteraction object_interaction_
 
gui::CanvasTouchHandler touch_handler_
 
std::optional< std::pair< int, int > > pending_scroll_target_
 
DungeonRoomStore * rooms_ = nullptr
 
int current_room_id_ = -1
 
std::vector< int > recently_visited_rooms_
 
int current_entrance_id_ = -1
 
uint8_t current_entrance_blockset_ = 0xFF
 
std::function< uint8_t(int)> entrance_blockset_resolver_
 
int camera_overlay_entrance_slot_ = -1
 
std::optional< DungeonEntranceCameraState > entrance_camera_overlay_
 
ImVector< int > active_rooms_
 
int current_active_room_tab_ = 0
 
int last_connected_matrix_room_id_ = -1
 
bool connected_canvas_initialized_ = false
 
bool show_connected_overview_ = false
 
bool show_connected_current_room_preview_ = false
 
bool connected_controls_inline_ = false
 
bool connected_canvas_fit_requested_ = false
 
bool connected_canvas_reset_requested_ = false
 
bool connected_side_panel_visible_last_frame_ = false
 
bool connected_controls_custom_position_ = false
 
ImVec2 connected_controls_custom_position_value_ = ImVec2(0.0f, 0.0f)
 
int connected_graph_cache_start_room_id_ = -1
 
ConnectedRoomGraphData connected_graph_cache_ {}
 
std::string connected_action_status_message_
 
bool connected_action_status_is_error_ = false
 
bool object_interaction_enabled_ = true
 
bool room_canvas_shortcut_focus_ = false
 
int room_canvas_last_draw_frame_ = -1
 
std::map< int, RoomLayerState > room_layer_managers_
 
RoomCompositeOutput primary_composite_output_
 
std::map< int, ConnectedRoomCompositeEntry > connected_composite_outputs_
 
int connected_composite_prune_frame_ = -1
 
uint64_t current_palette_group_id_ = 0
 
uint64_t current_palette_id_ = 0
 
gfx::PaletteGroup current_palette_group_
 
std::function< void(int)> room_navigation_callback_
 
std::function< void(int, int)> room_swap_callback_
 
std::function< void()> show_object_panel_callback_
 
std::function< void()> show_sprite_panel_callback_
 
std::function< void()> show_item_panel_callback_
 
std::function< void()> show_room_list_callback_
 
std::function< void()> show_room_matrix_callback_
 
std::function< void()> show_entrance_list_callback_
 
std::function< void()> show_room_graphics_callback_
 
std::function< void()> show_door_editor_callback_
 
std::function< void()> show_dungeon_settings_callback_
 
std::function< void(int)> save_room_callback_
 
std::function< void(int, const zelda3::RoomObject &) edit_graphics_callback_ )
 
MinecartTrackEditorPanel * minecart_track_panel_ = nullptr
 
MinecartCanvasTool minecart_canvas_tool_
 
MinecartCollisionTool minecart_collision_tool_
 
bool minecart_owned_input_ = false
 
bool show_crumble_floor_ = false
 
CrumbleFloorView crumble_floor_view_
 
bool show_minecart_tracks_ = false
 
bool is_pinned_ = false
 
std::function< void(bool)> pin_callback_
 
const project::YazeProject * project_ = nullptr
 
zelda3::SpritePreviewResourceCache sprite_preview_resources_
 
util::LruCache< SpritePreviewKey, CachedSpritePreview > sprite_preview_cache_
 
bool show_track_collision_overlay_ = false
 
bool show_track_collision_legend_ = true
 
bool show_camera_quadrant_overlay_ = false
 
bool show_minecart_sprite_overlay_ = false
 
bool show_track_gap_overlay_ = false
 
bool show_track_route_overlay_ = false
 
bool show_custom_objects_overlay_ = false
 
bool show_custom_collision_overlay_ = false
 
bool show_water_fill_overlay_ = false
 
bool show_room_details_ = false
 
MetadataEditCallback metadata_edit_callback_
 
MetadataBatchEditCallback metadata_batch_edit_callback_
 
ChestEditCallback chest_edit_callback_
 
ChestDeleteCallback chest_delete_callback_
 
DungeonChestEditorState chest_editor_state_
 
DoorConnectionPreviewCallback door_connection_preview_callback_
 
DoorConnectionApplyCallback door_connection_apply_callback_
 
std::function< void(int, size_t)> door_connection_navigation_callback_
 
DungeonConnectionEditorState connection_editor_state_
 
RoomDocumentExportCallback room_document_export_callback_
 
RoomTransferPreviewCallback room_transfer_preview_callback_
 
RoomTransferApplyCallback room_transfer_apply_callback_
 
DungeonRoomTransferEditorState room_transfer_state_
 
bool compact_header_mode_ = false
 
bool header_read_only_ = false
 
bool header_visible_ = true
 
bool show_header_hidden_metadata_hud_ = true
 
bool track_direction_map_enabled_ = true
 
std::vector< uint16_t > track_tile_order_
 
std::vector< uint16_t > switch_tile_order_
 
DungeonRenderingHelpers::TrackCollisionConfig track_collision_config_
 
std::unordered_map< int, DungeonRenderingHelpers::CollisionOverlayCache > collision_overlay_cache_
 
std::bitset< 256 > minecart_sprite_ids_ {}
 
std::vector< ObjectRenderCache > object_render_cache_
 
uint64_t last_palette_hash_ = 0
 
bool show_room_debug_info_ = false
 
bool show_texture_debug_ = false
 
bool show_object_bounds_ = false
 
bool show_layer_info_ = false
 
bool show_grid_ = false
 
bool show_coordinate_overlay_
 
int layout_override_ = -1
 
int custom_grid_size_ = 8
 
ObjectRenderMode object_render_mode_
 
ObjectOutlineToggles object_outline_toggles_
 
EntityVisibility entity_visibility_
 
gfx::IRenderer * renderer_ = nullptr
 
int prev_blockset_ = -1
 
int prev_palette_ = -1
 
int prev_layout_ = -1
 
int prev_spriteset_ = -1
 
std::string issue_report_popup_title_
 
std::string issue_report_popup_kind_
 
std::string issue_report_popup_diagnostics_
 
std::string issue_report_popup_log_target_path_
 
std::string issue_report_popup_screenshot_dir_
 
std::string issue_report_popup_screenshot_path_
 
std::string issue_report_popup_last_log_path_
 
std::string issue_report_popup_status_message_
 
std::string issue_report_popup_id_
 
int issue_report_popup_room_id_ = -1
 
int issue_report_category_index_ = 0
 
bool issue_report_popup_persisted_ = false
 
bool issue_report_popup_status_is_error_ = false
 
char issue_report_summary_ [256] {}
 
char issue_report_notes_ [2048] {}
 
bool has_canvas_capture_region_ = false
 
int canvas_capture_x_ = 0
 
int canvas_capture_y_ = 0
 
int canvas_capture_width_ = 0
 
int canvas_capture_height_ = 0
 
std::vector< ChangePingRect > change_ping_rects_
 
double change_ping_start_time_ = -1.0
 
std::function< void(int, const zelda3::RoomObject &) edit_object_tiles_callback_ )
 
std::function< void(int, const zelda3::RoomObject &) check_object_coverage_callback_ )
 

Friends

class DungeonCanvasViewerTestPeer
 
class DungeonCanvasMinecartTestPeer
 
class DungeonRoomTransferEditorTestPeer
 
class DungeonRoomEditsTestPeer
 
class DungeonEditorPaletteRefreshTestPeer
 
class DungeonEditorPaletteRefreshTest_CachedRoomRefreshesThroughViewerCompositePreparation_Test
 
class DungeonEditorPaletteRefreshTest_CachedCompositePreparationPreservesTargetEntranceContext_Test
 
class DungeonEditorPaletteRefreshTest_CachedPanelPaletteRefreshSurvivesWorkbenchModeAndPreservesRoomPalette_Test
 
class DungeonEditorPaletteRefreshTest_DungeonMainNotificationSkipsUnrelatedCachedViewerWork_Test
 
class DungeonCanvasCrumbleTestPeer
 

Detailed Description

Definition at line 230 of file dungeon_canvas_viewer.h.

Member Typedef Documentation

◆ MetadataEditCallback

Initial value:
std::function<absl::Status(int, const RoomMetadataEdit&)>

Definition at line 301 of file dungeon_canvas_viewer.h.

◆ MetadataBatchEditCallback

Initial value:
std::function<absl::Status(const std::vector<RoomMetadataRequest>&)>

Definition at line 303 of file dungeon_canvas_viewer.h.

◆ ChestEditCallback

Initial value:
std::function<absl::Status(int, size_t, uint8_t, bool)>

Definition at line 305 of file dungeon_canvas_viewer.h.

◆ ChestDeleteCallback

using yaze::editor::DungeonCanvasViewer::ChestDeleteCallback = std::function<absl::Status(int, size_t)>

Definition at line 307 of file dungeon_canvas_viewer.h.

◆ DoorConnectionPreviewCallback

Initial value:
std::function<absl::StatusOr<DungeonConnectionPlan>(
const DungeonConnectionRequest&)>

Definition at line 308 of file dungeon_canvas_viewer.h.

◆ DoorConnectionApplyCallback

Initial value:
std::function<absl::Status(const DungeonConnectionPlan&)>

Definition at line 311 of file dungeon_canvas_viewer.h.

◆ RoomDocumentExportCallback

Initial value:
std::function<absl::StatusOr<std::string>(int)>

Definition at line 350 of file dungeon_canvas_viewer.h.

◆ RoomTransferPreviewCallback

Initial value:
std::function<absl::StatusOr<DungeonRoomTransferPlan>(
int, int, const std::string&, const DungeonRoomTransferOptions&)>

Definition at line 352 of file dungeon_canvas_viewer.h.

◆ RoomTransferApplyCallback

Initial value:
std::function<absl::Status(const DungeonRoomTransferPlan&)>

Definition at line 355 of file dungeon_canvas_viewer.h.

◆ SpritePreviewKey

using yaze::editor::DungeonCanvasViewer::SpritePreviewKey = std::tuple<uint64_t, uint8_t, int, bool>
private

Definition at line 1174 of file dungeon_canvas_viewer.h.

Constructor & Destructor Documentation

◆ DungeonCanvasViewer()

◆ ~DungeonCanvasViewer()

yaze::editor::DungeonCanvasViewer::~DungeonCanvasViewer ( )
default

Member Function Documentation

◆ DrawDungeonCanvas()

void yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas ( int room_id)

Definition at line 370 of file dungeon_canvas_viewer.cc.

References yaze::gui::BeginCanvas(), BuildRoomCanvasFrameOptions(), yaze::editor::MinecartCanvasTool::Cancel(), yaze::editor::InteractionModeManager::CancelCurrentMode(), yaze::editor::DungeonObjectInteraction::CancelPlacement(), canvas_, yaze::editor::MinecartTrackEditorPanel::canvas_editing(), yaze::editor::InteractionCoordinator::ClearAllEntitySelections(), yaze::editor::DungeonObjectInteraction::ClearSelection(), ConsumePendingCanvasScroll(), crumble_floor_view_, current_room_id_, DrawChangePingOverlay(), DrawCompactLayerToggles(), yaze::editor::CrumbleFloorView::DrawControls(), DrawCoordinateOverlayHud(), yaze::editor::DrawDungeonRoomTransferPopup(), DrawHeaderHiddenMetadataHud(), DrawPersistentDebugWindows(), DrawRoomCanvasContent(), DrawRoomCanvasOverlays(), yaze::gui::EndCanvas(), yaze::editor::DungeonObjectInteraction::entity_coordinator(), yaze::editor::DungeonObjectInteraction::HandleMouseRelease(), HandleRoomCanvasNavigation(), header_visible_, minecart_canvas_tool_, minecart_track_panel_, yaze::editor::DungeonObjectInteraction::mode_manager(), object_interaction_, object_interaction_enabled_, PopulateCanvasContextMenu(), PrepareActiveRoomForCanvasFrame(), PrepareRoomCompositeBitmap(), yaze::gui::CanvasTouchHandler::ProcessForCanvas(), project_, PruneConnectedRoomCompositeOutputs(), RecordVisitedRoom(), yaze::editor::CrumbleFloorView::rehearsing(), rom_, rooms_, yaze::editor::MinecartTrackEditorPanel::set_canvas_editing(), yaze::editor::MinecartTrackEditorPanel::set_collision_stamping(), yaze::editor::DungeonObjectInteraction::SetCurrentRoom(), show_crumble_floor_, yaze::editor::CrumbleFloorView::Stop(), yaze::editor::CrumbleFloorView::Sync(), SyncCanvasCaptureRegion(), SyncCanvasConfigFromViewerState(), SyncViewerStateFromCanvasConfig(), touch_handler_, yaze::gui::CanvasTouchHandler::Update(), UpdateRoomCanvasShortcutFocus(), UpdateRoomCanvasViewport(), and ValidateRoomCanvasRequest().

Referenced by Draw(), yaze::editor::DungeonWorkbenchContent::DrawCanvasPane(), and yaze::editor::DungeonWorkbenchContent::DrawSplitView().

◆ DrawConnectedRoomMatrix()

std::optional< int > yaze::editor::DungeonCanvasViewer::DrawConnectedRoomMatrix ( int center_room_id)

Definition at line 840 of file dungeon_canvas_connected_matrix.cc.

References yaze::gui::BeginCanvas(), yaze::gui::BeginNoPadding(), BuildConnectedRoomGraph(), CancelMinecartGesture(), yaze::gui::CanvasFrameOptions::canvas_size, yaze::editor::CollectDungeonConnectedRoomLinkDiagnostics(), yaze::gui::ComputeZoomToFit(), connected_canvas_, connected_canvas_fit_requested_, connected_canvas_initialized_, connected_canvas_reset_requested_, connected_controls_custom_position_, connected_controls_custom_position_value_, connected_controls_inline_, connected_graph_cache_, connected_graph_cache_start_room_id_, connected_side_panel_visible_last_frame_, crumble_floor_view_, current_room_id_, yaze::editor::Door, yaze::gui::CanvasFrameOptions::draw_context_menu, yaze::gui::CanvasFrameOptions::draw_grid, yaze::gui::CanvasFrameOptions::draw_overlay, yaze::gui::DrawCanvasHUD(), yaze::gui::EndCanvas(), yaze::gui::EndNoPadding(), EnsureRoomLoadedForConnectedView(), yaze::editor::FormatDungeonConnectedLinkDescription(), yaze::editor::FormatDungeonStaircaseIssueDescription(), yaze::gfx::Arena::Get(), yaze::gui::Canvas::GetConfig(), yaze::gui::GetOutlineVec4(), yaze::editor::dungeon_project_labels::GetRoomLabel(), yaze::editor::AgentUI::GetTheme(), yaze::gui::Canvas::global_scale(), yaze::Rom::is_loaded(), yaze::zelda3::kNumberOfRooms, yaze::gui::kPreviewOnly, last_connected_matrix_room_id_, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::links, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::max_col, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::max_row, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::min_col, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::min_row, NavigateToRoom(), PrepareConnectedRoomCompositeBitmap(), yaze::gfx::Arena::ProcessTextureQueue(), project_, PruneConnectedRoomCompositeOutputs(), yaze::gui::CanvasFrameOptions::render_popups, renderer_, yaze::gui::CanvasConfig::role, rom_, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::room_count, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::room_floor_labels, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::room_mask, yaze::editor::DungeonCanvasViewer::ConnectedRoomGraphData::room_positions, RoomHasNonExitDoorInDirection(), rooms_, yaze::gui::Canvas::set_global_scale(), show_connected_current_room_preview_, show_connected_overview_, yaze::editor::DungeonRoomStore::size(), yaze::editor::CrumbleFloorView::Stop(), and yaze::gfx::Bitmap::texture().

Referenced by yaze::editor::DungeonWorkbenchContent::DrawCanvasPane().

◆ DrawProposalPreview()

◆ GetProposalPreviewContentSize()

ImVec2 yaze::editor::DungeonCanvasViewer::GetProposalPreviewContentSize ( const DungeonProposalOverlay & overlay,
float scale ) const

Definition at line 132 of file dungeon_canvas_proposal_preview.cc.

References yaze::editor::ProposalRoomOriginX(), and yaze::editor::DungeonProposalOverlay::rooms.

Referenced by DrawProposalPreview().

Here is the call graph for this function:

◆ DrawConnectedToolbarControls()

◆ Draw()

void yaze::editor::DungeonCanvasViewer::Draw ( int room_id)

Definition at line 305 of file dungeon_canvas_viewer.cc.

References DrawDungeonCanvas().

Here is the call graph for this function:

◆ CancelMinecartGesture()

void yaze::editor::DungeonCanvasViewer::CancelMinecartGesture ( )
inline

Definition at line 299 of file dungeon_canvas_viewer.h.

References yaze::editor::MinecartCanvasTool::Cancel(), and minecart_canvas_tool_.

Referenced by DrawConnectedRoomMatrix().

Here is the call graph for this function:

◆ TriggerChangePing()

void yaze::editor::DungeonCanvasViewer::TriggerChangePing ( )

◆ SetMetadataEditCallback()

void yaze::editor::DungeonCanvasViewer::SetMetadataEditCallback ( MetadataEditCallback callback)
inline

◆ SetMetadataBatchEditCallback()

void yaze::editor::DungeonCanvasViewer::SetMetadataBatchEditCallback ( MetadataBatchEditCallback callback)
inline

◆ SetChestEditCallback()

void yaze::editor::DungeonCanvasViewer::SetChestEditCallback ( ChestEditCallback callback)
inline

◆ SetChestDeleteCallback()

void yaze::editor::DungeonCanvasViewer::SetChestDeleteCallback ( ChestDeleteCallback callback)
inline

◆ SetDoorConnectionCallbacks()

void yaze::editor::DungeonCanvasViewer::SetDoorConnectionCallbacks ( DoorConnectionPreviewCallback preview,
DoorConnectionApplyCallback apply )
inline

◆ PreviewDoorConnection()

◆ ApplyDoorConnection()

◆ SetDoorConnectionNavigationCallback()

void yaze::editor::DungeonCanvasViewer::SetDoorConnectionNavigationCallback ( std::function< void(int, size_t)> callback)
inline

◆ CanNavigateDoorConnectionTarget()

bool yaze::editor::DungeonCanvasViewer::CanNavigateDoorConnectionTarget ( ) const
inline

◆ NavigateToDoorConnectionTarget()

bool yaze::editor::DungeonCanvasViewer::NavigateToDoorConnectionTarget ( int room_id,
size_t door_index )
inline

◆ connection_editor_state()

DungeonConnectionEditorState & yaze::editor::DungeonCanvasViewer::connection_editor_state ( )
inline

◆ SetRoomTransferCallbacks()

void yaze::editor::DungeonCanvasViewer::SetRoomTransferCallbacks ( RoomDocumentExportCallback export_document,
RoomTransferPreviewCallback preview,
RoomTransferApplyCallback apply )
inline

◆ ExportRoomDocument()

absl::StatusOr< std::string > yaze::editor::DungeonCanvasViewer::ExportRoomDocument ( int room_id)

Definition at line 29 of file dungeon_canvas_viewer.cc.

References room_document_export_callback_, rooms_, and yaze::editor::DungeonRoomStore::size().

Referenced by yaze::editor::DrawDungeonRoomTransferEditor().

Here is the call graph for this function:

◆ PreviewRoomTransfer()

◆ ApplyRoomTransfer()

◆ room_transfer_state()

◆ EditRoomMetadata()

absl::Status yaze::editor::DungeonCanvasViewer::EditRoomMetadata ( int room_id,
const RoomMetadataEdit & edit )

◆ EditRoomMetadataBatch()

absl::Status yaze::editor::DungeonCanvasViewer::EditRoomMetadataBatch ( const std::vector< RoomMetadataRequest > & requests)

Definition at line 102 of file dungeon_canvas_viewer.cc.

References yaze::editor::DungeonRoomStore::GetIfLoaded(), header_read_only_, metadata_batch_edit_callback_, and rooms_.

Here is the call graph for this function:

◆ EditChest()

absl::Status yaze::editor::DungeonCanvasViewer::EditChest ( int room_id,
size_t index,
uint8_t item_id,
bool big_chest )

◆ DeleteChest()

absl::Status yaze::editor::DungeonCanvasViewer::DeleteChest ( int room_id,
size_t index )

◆ chest_editor_state()

DungeonChestEditorState & yaze::editor::DungeonCanvasViewer::chest_editor_state ( )
inline

Definition at line 378 of file dungeon_canvas_viewer.h.

References chest_editor_state_.

Referenced by yaze::editor::DrawDungeonChestEditor().

◆ InvalidateConnectedRoomGraph()

void yaze::editor::DungeonCanvasViewer::InvalidateConnectedRoomGraph ( )
inline

◆ TriggerCanvasPingRect()

void yaze::editor::DungeonCanvasViewer::TriggerCanvasPingRect ( int pixel_x,
int pixel_y,
int pixel_w,
int pixel_h )

◆ TriggerObjectChangePing()

void yaze::editor::DungeonCanvasViewer::TriggerObjectChangePing ( const std::vector< zelda3::RoomObject > & previous_objects,
const std::vector< zelda3::RoomObject > & next_objects )

◆ GetConnectedContentSize()

ImVec2 yaze::editor::DungeonCanvasViewer::GetConnectedContentSize ( int center_room_id)

◆ ConnectedCanvasScale()

float yaze::editor::DungeonCanvasViewer::ConnectedCanvasScale ( ) const

◆ SetConnectedControlsInline()

void yaze::editor::DungeonCanvasViewer::SetConnectedControlsInline ( bool inline_controls)
inline

◆ SetContext()

◆ context()

EditorContext yaze::editor::DungeonCanvasViewer::context ( ) const
inline

◆ SetRom()

◆ rom()

◆ SetGameData()

void yaze::editor::DungeonCanvasViewer::SetGameData ( zelda3::GameData * game_data)
inline

Definition at line 424 of file dungeon_canvas_viewer.h.

References game_data(), game_data_, and ResetRoomCompositeOutputs().

Referenced by RefreshRomBackedState(), and yaze::editor::DungeonEditorV2::RefreshViewerRuntimeContext().

Here is the call graph for this function:

◆ game_data()

zelda3::GameData * yaze::editor::DungeonCanvasViewer::game_data ( ) const
inline

◆ SetRenderer()

void yaze::editor::DungeonCanvasViewer::SetRenderer ( gfx::IRenderer * renderer)
inline

◆ SetRooms()

void yaze::editor::DungeonCanvasViewer::SetRooms ( DungeonRoomStore * rooms)
inline

◆ RefreshRomBackedState()

◆ rooms()

◆ HasRooms()

bool yaze::editor::DungeonCanvasViewer::HasRooms ( ) const
inline

◆ current_room_id()

int yaze::editor::DungeonCanvasViewer::current_room_id ( ) const
inline

Definition at line 452 of file dungeon_canvas_viewer.h.

References current_room_id_.

Referenced by yaze::editor::DungeonStatusBar::BuildState(), yaze::editor::CustomCollisionPanel::Draw(), yaze::editor::WaterFillPanel::Draw(), yaze::editor::anonymous_namespace{dungeon_chest_editor.cc}::DrawChestActions(), yaze::editor::anonymous_namespace{dungeon_chest_editor.cc}::DrawChestPlacement(), yaze::editor::SpriteEditorPanel::DrawContent(), yaze::editor::anonymous_namespace{dungeon_entity_inspector.cc}::DrawDoor(), yaze::editor::DrawDungeonChestEditor(), yaze::editor::DrawDungeonConnectionEditor(), yaze::editor::DrawDungeonDestinationEditor(), yaze::editor::DrawDungeonEntityInspector(), yaze::editor::DrawDungeonRoomTransferEditor(), yaze::editor::DrawDungeonRoomTransferPopup(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelf(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelfRoom(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelfSelection(), yaze::editor::anonymous_namespace{dungeon_entity_inspector.cc}::DrawItem(), yaze::editor::SpriteEditorPanel::DrawPlacementControls(), yaze::editor::DungeonWorkbenchContent::DrawSelectedObjectActions(), yaze::editor::anonymous_namespace{dungeon_entity_inspector.cc}::DrawSprite(), yaze::editor::SpriteEditorPanel::DrawSpriteSelector(), yaze::editor::DungeonWorkbenchContent::DrawWorkbenchTool(), yaze::editor::DoorEditorContent::HasMatchingViewer(), yaze::editor::ItemEditorPanel::HasMatchingViewer(), yaze::editor::anonymous_namespace{dungeon_connection_editor.cc}::OpenTarget(), and yaze::editor::DungeonEditorV2::RefreshRoomMetadataViews().

◆ SetCompactHeaderMode()

void yaze::editor::DungeonCanvasViewer::SetCompactHeaderMode ( bool compact)
inline

Definition at line 455 of file dungeon_canvas_viewer.h.

References compact_header_mode_.

◆ compact_header_mode()

bool yaze::editor::DungeonCanvasViewer::compact_header_mode ( ) const
inline

Definition at line 456 of file dungeon_canvas_viewer.h.

References compact_header_mode_.

◆ SetRoomDetailsExpanded()

void yaze::editor::DungeonCanvasViewer::SetRoomDetailsExpanded ( bool expanded)
inline

Definition at line 457 of file dungeon_canvas_viewer.h.

References show_room_details_.

◆ set_active_rooms()

void yaze::editor::DungeonCanvasViewer::set_active_rooms ( const ImVector< int > & rooms)
inline

Definition at line 460 of file dungeon_canvas_viewer.h.

References active_rooms_, and rooms().

Here is the call graph for this function:

◆ set_current_active_room_tab()

void yaze::editor::DungeonCanvasViewer::set_current_active_room_tab ( int tab)
inline

Definition at line 461 of file dungeon_canvas_viewer.h.

References current_active_room_tab_.

◆ set_current_palette_group_id()

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

Definition at line 464 of file dungeon_canvas_viewer.h.

References current_palette_group_id_.

◆ SetCurrentPaletteId()

void yaze::editor::DungeonCanvasViewer::SetCurrentPaletteId ( uint64_t id)
inline

◆ SetCurrentPaletteGroup()

◆ SetEntranceRenderContext()

void yaze::editor::DungeonCanvasViewer::SetEntranceRenderContext ( int entrance_id,
uint8_t entrance_blockset )
inline

◆ ClearEntranceRenderContext()

void yaze::editor::DungeonCanvasViewer::ClearEntranceRenderContext ( )
inline

Definition at line 488 of file dungeon_canvas_viewer.h.

References current_entrance_blockset_, and current_entrance_id_.

◆ current_entrance_id()

int yaze::editor::DungeonCanvasViewer::current_entrance_id ( ) const
inline

Definition at line 492 of file dungeon_canvas_viewer.h.

References current_entrance_id_.

◆ current_entrance_blockset()

uint8_t yaze::editor::DungeonCanvasViewer::current_entrance_blockset ( ) const
inline

Definition at line 493 of file dungeon_canvas_viewer.h.

References current_entrance_blockset_.

◆ SetEntranceBlocksetResolver()

void yaze::editor::DungeonCanvasViewer::SetEntranceBlocksetResolver ( std::function< uint8_t(int)> resolver)
inline

◆ SetEntranceCameraOverlay()

void yaze::editor::DungeonCanvasViewer::SetEntranceCameraOverlay ( int entrance_slot,
const DungeonEntranceCameraState & state )
inline

◆ ClearEntranceCameraOverlay()

void yaze::editor::DungeonCanvasViewer::ClearEntranceCameraOverlay ( )
inline

◆ entrance_camera_overlay()

const std::optional< DungeonEntranceCameraState > & yaze::editor::DungeonCanvasViewer::entrance_camera_overlay ( ) const
inline

Definition at line 510 of file dungeon_canvas_viewer.h.

References entrance_camera_overlay_.

◆ SetRoomNavigationCallback()

void yaze::editor::DungeonCanvasViewer::SetRoomNavigationCallback ( std::function< void(int)> callback)
inline

Definition at line 514 of file dungeon_canvas_viewer.h.

References room_navigation_callback_.

◆ SetRoomSwapCallback()

void yaze::editor::DungeonCanvasViewer::SetRoomSwapCallback ( std::function< void(int, int)> callback)
inline

Definition at line 518 of file dungeon_canvas_viewer.h.

References room_swap_callback_.

◆ CanNavigateRooms()

bool yaze::editor::DungeonCanvasViewer::CanNavigateRooms ( ) const
inline

◆ NavigateToRoom()

◆ SetShowObjectPanelCallback()

void yaze::editor::DungeonCanvasViewer::SetShowObjectPanelCallback ( std::function< void()> callback)
inline

◆ SetShowSpritePanelCallback()

void yaze::editor::DungeonCanvasViewer::SetShowSpritePanelCallback ( std::function< void()> callback)
inline

◆ SetShowItemPanelCallback()

void yaze::editor::DungeonCanvasViewer::SetShowItemPanelCallback ( std::function< void()> callback)
inline

◆ SetShowRoomListCallback()

void yaze::editor::DungeonCanvasViewer::SetShowRoomListCallback ( std::function< void()> callback)
inline

◆ SetShowRoomMatrixCallback()

void yaze::editor::DungeonCanvasViewer::SetShowRoomMatrixCallback ( std::function< void()> callback)
inline

◆ SetShowEntranceListCallback()

void yaze::editor::DungeonCanvasViewer::SetShowEntranceListCallback ( std::function< void()> callback)
inline

◆ set_show_custom_collision_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_custom_collision_overlay ( bool show)
inline

◆ show_custom_collision_overlay()

bool yaze::editor::DungeonCanvasViewer::show_custom_collision_overlay ( ) const
inline

◆ set_show_water_fill_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_water_fill_overlay ( bool show)
inline

◆ show_water_fill_overlay()

bool yaze::editor::DungeonCanvasViewer::show_water_fill_overlay ( ) const
inline

◆ show_track_collision_overlay()

bool yaze::editor::DungeonCanvasViewer::show_track_collision_overlay ( ) const
inline

◆ set_show_track_collision_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_track_collision_overlay ( bool show)
inline

◆ show_camera_quadrant_overlay()

bool yaze::editor::DungeonCanvasViewer::show_camera_quadrant_overlay ( ) const
inline

◆ set_show_camera_quadrant_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_camera_quadrant_overlay ( bool show)
inline

◆ show_minecart_sprite_overlay()

bool yaze::editor::DungeonCanvasViewer::show_minecart_sprite_overlay ( ) const
inline

◆ set_show_minecart_sprite_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_minecart_sprite_overlay ( bool show)
inline

◆ show_track_gap_overlay()

bool yaze::editor::DungeonCanvasViewer::show_track_gap_overlay ( ) const
inline

◆ set_show_track_gap_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_track_gap_overlay ( bool show)
inline

◆ show_track_route_overlay()

bool yaze::editor::DungeonCanvasViewer::show_track_route_overlay ( ) const
inline

◆ set_show_track_route_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_track_route_overlay ( bool show)
inline

◆ show_custom_objects_overlay()

bool yaze::editor::DungeonCanvasViewer::show_custom_objects_overlay ( ) const
inline

◆ set_show_custom_objects_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_custom_objects_overlay ( bool show)
inline

◆ show_grid()

bool yaze::editor::DungeonCanvasViewer::show_grid ( ) const
inline

Definition at line 604 of file dungeon_canvas_viewer.h.

References show_grid_.

Referenced by yaze::editor::GetDungeonOverlayControlEnabled().

◆ set_show_grid()

void yaze::editor::DungeonCanvasViewer::set_show_grid ( bool show)
inline

Definition at line 605 of file dungeon_canvas_viewer.h.

References show_grid_.

Referenced by yaze::editor::SetDungeonOverlayControlEnabled().

◆ custom_grid_size()

int yaze::editor::DungeonCanvasViewer::custom_grid_size ( ) const
inline

Definition at line 606 of file dungeon_canvas_viewer.h.

References custom_grid_size_.

◆ set_custom_grid_size()

void yaze::editor::DungeonCanvasViewer::set_custom_grid_size ( int size)
inline

Definition at line 607 of file dungeon_canvas_viewer.h.

References custom_grid_size_.

Referenced by SyncViewerStateFromCanvasConfig().

◆ show_object_bounds()

bool yaze::editor::DungeonCanvasViewer::show_object_bounds ( ) const
inline

◆ set_show_object_bounds()

void yaze::editor::DungeonCanvasViewer::set_show_object_bounds ( bool show)
inline

◆ show_coordinate_overlay()

bool yaze::editor::DungeonCanvasViewer::show_coordinate_overlay ( ) const
inline

◆ set_show_coordinate_overlay()

void yaze::editor::DungeonCanvasViewer::set_show_coordinate_overlay ( bool show)
inline

◆ show_room_debug_info()

bool yaze::editor::DungeonCanvasViewer::show_room_debug_info ( ) const
inline

Definition at line 616 of file dungeon_canvas_viewer.h.

References show_room_debug_info_.

◆ set_show_room_debug_info()

void yaze::editor::DungeonCanvasViewer::set_show_room_debug_info ( bool show)
inline

Definition at line 617 of file dungeon_canvas_viewer.h.

References show_room_debug_info_.

◆ show_texture_debug()

bool yaze::editor::DungeonCanvasViewer::show_texture_debug ( ) const
inline

Definition at line 618 of file dungeon_canvas_viewer.h.

References show_texture_debug_.

◆ set_show_texture_debug()

void yaze::editor::DungeonCanvasViewer::set_show_texture_debug ( bool show)
inline

Definition at line 619 of file dungeon_canvas_viewer.h.

References show_texture_debug_.

◆ show_layer_info()

bool yaze::editor::DungeonCanvasViewer::show_layer_info ( ) const
inline

Definition at line 620 of file dungeon_canvas_viewer.h.

References show_layer_info_.

◆ set_show_layer_info()

void yaze::editor::DungeonCanvasViewer::set_show_layer_info ( bool show)
inline

Definition at line 621 of file dungeon_canvas_viewer.h.

References show_layer_info_.

◆ show_crumble_floor()

bool yaze::editor::DungeonCanvasViewer::show_crumble_floor ( ) const
inline

◆ set_show_crumble_floor()

void yaze::editor::DungeonCanvasViewer::set_show_crumble_floor ( bool show)
inline

Definition at line 623 of file dungeon_canvas_viewer.h.

References crumble_floor_view_, show_crumble_floor_, and yaze::editor::CrumbleFloorView::Stop().

Referenced by yaze::editor::SetDungeonOverlayControlEnabled().

Here is the call graph for this function:

◆ show_minecart_tracks()

bool yaze::editor::DungeonCanvasViewer::show_minecart_tracks ( ) const
inline

Definition at line 628 of file dungeon_canvas_viewer.h.

References show_minecart_tracks_.

◆ set_show_minecart_tracks()

void yaze::editor::DungeonCanvasViewer::set_show_minecart_tracks ( bool show)
inline

Definition at line 629 of file dungeon_canvas_viewer.h.

References show_minecart_tracks_.

◆ show_track_collision_legend()

bool yaze::editor::DungeonCanvasViewer::show_track_collision_legend ( ) const
inline

Definition at line 630 of file dungeon_canvas_viewer.h.

References show_track_collision_legend_.

◆ set_show_track_collision_legend()

void yaze::editor::DungeonCanvasViewer::set_show_track_collision_legend ( bool show)
inline

Definition at line 633 of file dungeon_canvas_viewer.h.

References show_track_collision_legend_.

◆ mutable_show_grid()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_grid ( )
inline

Definition at line 638 of file dungeon_canvas_viewer.h.

References show_grid_.

◆ mutable_show_object_bounds()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_object_bounds ( )
inline

Definition at line 639 of file dungeon_canvas_viewer.h.

References show_object_bounds_.

◆ mutable_show_coordinate_overlay()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_coordinate_overlay ( )
inline

Definition at line 640 of file dungeon_canvas_viewer.h.

References show_coordinate_overlay_.

◆ mutable_show_room_debug_info()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_room_debug_info ( )
inline

Definition at line 641 of file dungeon_canvas_viewer.h.

References show_room_debug_info_.

◆ mutable_show_texture_debug()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_texture_debug ( )
inline

Definition at line 642 of file dungeon_canvas_viewer.h.

References show_texture_debug_.

◆ mutable_show_layer_info()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_layer_info ( )
inline

Definition at line 643 of file dungeon_canvas_viewer.h.

References show_layer_info_.

◆ mutable_show_minecart_tracks()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_minecart_tracks ( )
inline

Definition at line 644 of file dungeon_canvas_viewer.h.

References show_minecart_tracks_.

◆ mutable_show_custom_collision_overlay()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_custom_collision_overlay ( )
inline

Definition at line 645 of file dungeon_canvas_viewer.h.

References show_custom_collision_overlay_.

◆ mutable_show_track_collision_overlay()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_track_collision_overlay ( )
inline

Definition at line 648 of file dungeon_canvas_viewer.h.

References show_track_collision_overlay_.

◆ mutable_show_camera_quadrant_overlay()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_camera_quadrant_overlay ( )
inline

Definition at line 651 of file dungeon_canvas_viewer.h.

References show_camera_quadrant_overlay_.

◆ mutable_show_minecart_sprite_overlay()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_minecart_sprite_overlay ( )
inline

Definition at line 654 of file dungeon_canvas_viewer.h.

References show_minecart_sprite_overlay_.

◆ mutable_show_track_collision_legend()

bool * yaze::editor::DungeonCanvasViewer::mutable_show_track_collision_legend ( )
inline

Definition at line 657 of file dungeon_canvas_viewer.h.

References show_track_collision_legend_.

◆ SetShowRoomGraphicsCallback()

void yaze::editor::DungeonCanvasViewer::SetShowRoomGraphicsCallback ( std::function< void()> callback)
inline

◆ SetShowDoorEditorCallback()

void yaze::editor::DungeonCanvasViewer::SetShowDoorEditorCallback ( std::function< void()> callback)
inline

◆ SetShowDungeonSettingsCallback()

void yaze::editor::DungeonCanvasViewer::SetShowDungeonSettingsCallback ( std::function< void()> callback)
inline

◆ SetSaveRoomCallback()

void yaze::editor::DungeonCanvasViewer::SetSaveRoomCallback ( std::function< void(int)> callback)
inline

◆ SetEditGraphicsCallback()

void yaze::editor::DungeonCanvasViewer::SetEditGraphicsCallback ( std::function< void(int, const zelda3::RoomObject &)> callback)
inline

◆ SetEditObjectTilesCallback()

void yaze::editor::DungeonCanvasViewer::SetEditObjectTilesCallback ( std::function< void(int, const zelda3::RoomObject &)> callback)
inline

◆ SetCheckObjectCoverageCallback()

void yaze::editor::DungeonCanvasViewer::SetCheckObjectCoverageCallback ( std::function< void(int, const zelda3::RoomObject &)> callback)
inline

◆ SetMinecartTrackPanel()

void yaze::editor::DungeonCanvasViewer::SetMinecartTrackPanel ( MinecartTrackEditorPanel * panel)
inline

◆ SetPinned()

void yaze::editor::DungeonCanvasViewer::SetPinned ( bool pinned)
inline

Definition at line 688 of file dungeon_canvas_viewer.h.

References is_pinned_.

◆ SetPinCallback()

void yaze::editor::DungeonCanvasViewer::SetPinCallback ( std::function< void(bool)> callback)
inline

Definition at line 689 of file dungeon_canvas_viewer.h.

References pin_callback_.

◆ SetProject()

void yaze::editor::DungeonCanvasViewer::SetProject ( const project::YazeProject * project)

◆ InvalidateExternalSpriteResources()

void yaze::editor::DungeonCanvasViewer::InvalidateExternalSpriteResources ( )

Definition at line 156 of file dungeon_canvas_viewer.cc.

References yaze::zelda3::SpritePreviewResourceCache::SetContext(), sprite_preview_cache_, and sprite_preview_resources_.

Referenced by RefreshRomBackedState(), and SetProject().

Here is the call graph for this function:

◆ project()

◆ canvas() [1/2]

gui::Canvas & yaze::editor::DungeonCanvasViewer::canvas ( )
inline

◆ canvas() [2/2]

const gui::Canvas & yaze::editor::DungeonCanvasViewer::canvas ( ) const
inline

Definition at line 699 of file dungeon_canvas_viewer.h.

References canvas_.

◆ object_interaction()

DungeonObjectInteraction & yaze::editor::DungeonCanvasViewer::object_interaction ( )
inline

Definition at line 702 of file dungeon_canvas_viewer.h.

References object_interaction_.

Referenced by yaze::editor::DoorEditorContent::CancelPlacement(), yaze::editor::ObjectSelectorContent::CancelPlacement(), yaze::editor::DungeonEditorV2::ConfigureEditableViewer(), yaze::editor::DungeonEditorV2::ConfigureViewerUndoHooks(), yaze::editor::DungeonWorkbenchContent::DrawCanvasPane(), yaze::editor::anonymous_namespace{dungeon_chest_editor.cc}::DrawChestActions(), yaze::editor::anonymous_namespace{dungeon_chest_editor.cc}::DrawChestPlacement(), yaze::editor::ObjectSelectorContent::DrawContent(), yaze::editor::DoorEditorContent::DrawContent(), yaze::editor::SpriteEditorPanel::DrawContent(), yaze::editor::anonymous_namespace{dungeon_entity_inspector.cc}::DrawDoor(), yaze::editor::DrawDungeonChestEditor(), yaze::editor::DrawDungeonDestinationEditor(), yaze::editor::DrawDungeonEntityInspector(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelf(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelfRoom(), yaze::editor::DungeonWorkbenchContent::DrawInspectorShelfSelection(), yaze::editor::anonymous_namespace{dungeon_entity_inspector.cc}::DrawItem(), yaze::editor::ItemEditorPanel::DrawItemSelector(), yaze::editor::DungeonWorkbenchContent::DrawObjectPlacementInspector(), yaze::editor::ItemEditorPanel::DrawPlacementControls(), yaze::editor::SpriteEditorPanel::DrawPlacementControls(), yaze::editor::ItemEditorPanel::DrawRoomItems(), yaze::editor::SpriteEditorPanel::DrawRoomSprites(), yaze::editor::DungeonWorkbenchContent::DrawSelectedObjectActions(), yaze::editor::anonymous_namespace{dungeon_entity_inspector.cc}::DrawSprite(), yaze::editor::SpriteEditorPanel::DrawSpriteSelector(), yaze::editor::DungeonWorkbenchContent::DrawWorkbenchTool(), yaze::editor::DungeonEditorV2::FinalizeEntityUndoAction(), yaze::editor::DungeonEditorV2::HandleDungeonPaletteChanged(), yaze::editor::DoorEditorContent::HasMatchingViewer(), yaze::editor::ItemEditorPanel::HasMatchingViewer(), yaze::editor::anonymous_namespace{dungeon_connection_editor.cc}::OpenTarget(), and yaze::editor::DungeonEditorV2::RefreshRoomMetadataViews().

◆ SetEditorSystem()

void yaze::editor::DungeonCanvasViewer::SetEditorSystem ( zelda3::DungeonEditorSystem * system)
inline

Definition at line 704 of file dungeon_canvas_viewer.h.

References object_interaction_, and yaze::editor::DungeonObjectInteraction::SetEditorSystem().

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

Here is the call graph for this function:

◆ SetObjectInteractionEnabled()

void yaze::editor::DungeonCanvasViewer::SetObjectInteractionEnabled ( bool enabled)
inline

◆ IsObjectInteractionEnabled()

◆ SetHeaderReadOnly()

void yaze::editor::DungeonCanvasViewer::SetHeaderReadOnly ( bool read_only)
inline

Definition at line 718 of file dungeon_canvas_viewer.h.

References header_read_only_.

◆ header_read_only()

◆ SetHeaderVisible()

void yaze::editor::DungeonCanvasViewer::SetHeaderVisible ( bool visible)
inline

Definition at line 723 of file dungeon_canvas_viewer.h.

References header_visible_.

◆ header_visible()

bool yaze::editor::DungeonCanvasViewer::header_visible ( ) const
inline

Definition at line 724 of file dungeon_canvas_viewer.h.

References header_visible_.

◆ SetHeaderHiddenMetadataHudVisible()

void yaze::editor::DungeonCanvasViewer::SetHeaderHiddenMetadataHudVisible ( bool visible)
inline

Definition at line 725 of file dungeon_canvas_viewer.h.

References show_header_hidden_metadata_hud_.

◆ show_header_hidden_metadata_hud()

bool yaze::editor::DungeonCanvasViewer::show_header_hidden_metadata_hud ( ) const
inline

Definition at line 728 of file dungeon_canvas_viewer.h.

References show_header_hidden_metadata_hud_.

◆ SetObjectRenderMode()

void yaze::editor::DungeonCanvasViewer::SetObjectRenderMode ( ObjectRenderMode mode)
inline

Definition at line 733 of file dungeon_canvas_viewer.h.

References object_render_mode_.

◆ GetObjectRenderMode()

ObjectRenderMode yaze::editor::DungeonCanvasViewer::GetObjectRenderMode ( ) const
inline

Definition at line 736 of file dungeon_canvas_viewer.h.

References object_render_mode_.

◆ SetLayerVisible()

void yaze::editor::DungeonCanvasViewer::SetLayerVisible ( int room_id,
zelda3::LayerType layer,
bool visible )
inline

Definition at line 739 of file dungeon_canvas_viewer.h.

References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetLayerVisible().

Here is the call graph for this function:

◆ IsLayerVisible()

bool yaze::editor::DungeonCanvasViewer::IsLayerVisible ( int room_id,
zelda3::LayerType layer ) const
inline

Definition at line 742 of file dungeon_canvas_viewer.h.

References room_layer_managers_.

Referenced by DungeonCanvasViewer().

◆ SetBG1Visible()

void yaze::editor::DungeonCanvasViewer::SetBG1Visible ( int room_id,
bool visible )
inline

Definition at line 750 of file dungeon_canvas_viewer.h.

References yaze::zelda3::BG1_Layout, yaze::zelda3::BG1_Objects, and GetRoomLayerManager().

Referenced by yaze::editor::DrawDungeonLayerControls().

Here is the call graph for this function:

◆ SetBG2Visible()

void yaze::editor::DungeonCanvasViewer::SetBG2Visible ( int room_id,
bool visible )
inline

Definition at line 755 of file dungeon_canvas_viewer.h.

References yaze::zelda3::BG2_Layout, yaze::zelda3::BG2_Objects, and GetRoomLayerManager().

Referenced by yaze::editor::DrawDungeonLayerControls().

Here is the call graph for this function:

◆ IsBG1Visible()

bool yaze::editor::DungeonCanvasViewer::IsBG1Visible ( int room_id) const
inline

◆ IsBG2Visible()

bool yaze::editor::DungeonCanvasViewer::IsBG2Visible ( int room_id) const
inline

◆ SetLayerBlendMode()

void yaze::editor::DungeonCanvasViewer::SetLayerBlendMode ( int room_id,
zelda3::LayerType layer,
zelda3::LayerBlendMode mode )
inline

Definition at line 776 of file dungeon_canvas_viewer.h.

References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetLayerBlendMode().

Here is the call graph for this function:

◆ GetLayerBlendMode()

zelda3::LayerBlendMode yaze::editor::DungeonCanvasViewer::GetLayerBlendMode ( int room_id,
zelda3::LayerType layer ) const
inline

Definition at line 780 of file dungeon_canvas_viewer.h.

References yaze::zelda3::Normal, and room_layer_managers_.

Referenced by DungeonCanvasViewer(), and GetBG2LayerType().

◆ SetObjectTranslucent()

void yaze::editor::DungeonCanvasViewer::SetObjectTranslucent ( int room_id,
size_t object_index,
bool translucent,
uint8_t alpha = 128 )
inline

Definition at line 789 of file dungeon_canvas_viewer.h.

References GetRoomLayerManager(), and yaze::zelda3::RoomLayerManager::SetObjectTranslucency().

Here is the call graph for this function:

◆ GetRoomLayerManager() [1/2]

◆ GetRoomLayerManager() [2/2]

const zelda3::RoomLayerManager & yaze::editor::DungeonCanvasViewer::GetRoomLayerManager ( int room_id) const
inline

Definition at line 797 of file dungeon_canvas_viewer.h.

References room_layer_managers_.

◆ SetBG2LayerType()

void yaze::editor::DungeonCanvasViewer::SetBG2LayerType ( int room_id,
int type )
inline

◆ GetBG2LayerType()

int yaze::editor::DungeonCanvasViewer::GetBG2LayerType ( int room_id) const
inline

◆ SetPreviewObject()

◆ ClearPreviewObject()

void yaze::editor::DungeonCanvasViewer::ClearPreviewObject ( )
inline

◆ ScrollToTile()

◆ HasPendingScrollTarget()

bool yaze::editor::DungeonCanvasViewer::HasPendingScrollTarget ( ) const
inline

Definition at line 864 of file dungeon_canvas_viewer.h.

References pending_scroll_target_.

◆ GetPendingScrollTarget()

std::optional< std::pair< int, int > > yaze::editor::DungeonCanvasViewer::GetPendingScrollTarget ( ) const
inline

Definition at line 867 of file dungeon_canvas_viewer.h.

References pending_scroll_target_.

◆ DeleteSelectedObjects()

void yaze::editor::DungeonCanvasViewer::DeleteSelectedObjects ( )
inline

◆ CanHandleRoomCanvasShortcut()

bool yaze::editor::DungeonCanvasViewer::CanHandleRoomCanvasShortcut ( ) const
inline

Definition at line 875 of file dungeon_canvas_viewer.h.

References HasRoomCanvasShortcutFocusForFrame().

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

Here is the call graph for this function:

◆ OwnsRoomNavigationShortcutFocus()

bool yaze::editor::DungeonCanvasViewer::OwnsRoomNavigationShortcutFocus ( ) const
inline

◆ SetSpritesVisible()

void yaze::editor::DungeonCanvasViewer::SetSpritesVisible ( bool visible)
inline

◆ AreSpritesVisible()

bool yaze::editor::DungeonCanvasViewer::AreSpritesVisible ( ) const
inline

◆ SetPotItemsVisible()

void yaze::editor::DungeonCanvasViewer::SetPotItemsVisible ( bool visible)
inline

◆ ArePotItemsVisible()

bool yaze::editor::DungeonCanvasViewer::ArePotItemsVisible ( ) const
inline

◆ SetChestContentsVisible()

void yaze::editor::DungeonCanvasViewer::SetChestContentsVisible ( bool visible)
inline

◆ AreChestContentsVisible()

bool yaze::editor::DungeonCanvasViewer::AreChestContentsVisible ( ) const
inline

◆ DisplayObjectInfo()

void yaze::editor::DungeonCanvasViewer::DisplayObjectInfo ( const gui::CanvasRuntime & rt,
const zelda3::RoomObject & object,
int canvas_x,
int canvas_y )
private

Definition at line 277 of file dungeon_canvas_room_chrome.cc.

References yaze::gui::DrawText(), and yaze::zelda3::GetObjectName().

Here is the call graph for this function:

◆ DrawRoomHeader()

void yaze::editor::DungeonCanvasViewer::DrawRoomHeader ( zelda3::Room & room,
int room_id )
private

◆ DrawRoomNavigation()

void yaze::editor::DungeonCanvasViewer::DrawRoomNavigation ( int room_id)
private

◆ DrawRoomPropertyTable()

◆ DrawRecentRoomBreadcrumbs()

void yaze::editor::DungeonCanvasViewer::DrawRecentRoomBreadcrumbs ( int room_id)
private

◆ DrawLayerControls()

void yaze::editor::DungeonCanvasViewer::DrawLayerControls ( zelda3::Room & room,
int room_id )
private

◆ DrawCompactLayerToggles()

void yaze::editor::DungeonCanvasViewer::DrawCompactLayerToggles ( int room_id)
private

Definition at line 540 of file dungeon_canvas_room_chrome.cc.

References yaze::editor::DrawDungeonLayerControls(), and yaze::editor::DrawDungeonOverlayControls().

Referenced by DrawDungeonCanvas().

Here is the call graph for this function:

◆ PopulateCanvasContextMenu()

void yaze::editor::DungeonCanvasViewer::PopulateCanvasContextMenu ( int room_id)
private

Definition at line 21 of file dungeon_canvas_context_menu.cc.

References AddInteractionContextMenuItems(), AddLoadedRoomContextMenuItems(), canvas_, and yaze::gui::Canvas::ClearContextMenuItems().

Referenced by DrawDungeonCanvas().

Here is the call graph for this function:

◆ AddInteractionContextMenuItems()

void yaze::editor::DungeonCanvasViewer::AddInteractionContextMenuItems ( int room_id)
private

◆ AddLoadedRoomContextMenuItems()

◆ BuildInsertContextMenu()

◆ BuildSelectionContextMenuItems() [1/2]

std::vector< gui::CanvasMenuItem > yaze::editor::DungeonCanvasViewer::BuildSelectionContextMenuItems ( int room_id)
private

Definition at line 168 of file dungeon_canvas_context_menu.cc.

References BuildSelectionContextMenuItems(), and GetObjectUnderContextCursor().

Referenced by AddInteractionContextMenuItems(), and BuildSelectionContextMenuItems().

Here is the call graph for this function:

◆ BuildSelectionContextMenuItems() [2/2]

◆ GetObjectUnderContextCursor()

◆ BuildRoomContextMenu()

◆ BuildReportContextMenu()

◆ BuildOpenContextMenu()

◆ BuildCopyExportContextMenu()

◆ BuildLayerVisibilityContextMenu()

◆ BuildOverlayContextMenu()

◆ BuildDebugContextMenu()

◆ BuildRoomMetadataSummary()

◆ BuildDrawIssueReport()

std::string yaze::editor::DungeonCanvasViewer::BuildDrawIssueReport ( const zelda3::Room & room,
int room_id )
private

Definition at line 632 of file dungeon_canvas_issue_report.cc.

References BuildRoomMetadataSummary(), current_palette_group_, yaze::gfx::DecodeDungeonFloorTilePattern(), entity_visibility_, yaze::zelda3::Room::floor1(), yaze::zelda3::Room::floor2(), yaze::zelda3::DimensionService::Get(), yaze::zelda3::PaletteDebugger::Get(), yaze::zelda3::Room::GetDoors(), yaze::zelda3::PaletteDebugger::GetEvents(), yaze::editor::DungeonRoomStore::GetIfMaterialized(), yaze::editor::InteractionModeManager::GetModeName(), yaze::zelda3::Room::GetPotItems(), yaze::editor::DungeonObjectInteraction::GetSelectedEntity(), yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), yaze::zelda3::DimensionService::GetSelectionBoundsPixels(), yaze::zelda3::Room::GetSprites(), yaze::zelda3::Room::GetTileObjects(), yaze::editor::DungeonObjectInteraction::HasEntitySelection(), yaze::Rom::is_loaded(), IsBG1Visible(), IsBG2Visible(), yaze::zelda3::kNumberOfRooms, yaze::zelda3::kRoomObjectTileAddress, yaze::zelda3::kRoomObjectTileAddressFloor, yaze::editor::DungeonObjectInteraction::mode_manager(), object_interaction_, PrepareRoomCompositeBitmap(), yaze::zelda3::Room::ResolveDungeonPaletteId(), yaze::zelda3::ResolveSpriteName(), rom_, rooms_, show_camera_quadrant_overlay_, show_custom_collision_overlay_, show_grid_, show_object_bounds_, yaze::editor::DungeonCanvasViewer::EntityVisibility::show_pot_items, yaze::editor::DungeonCanvasViewer::EntityVisibility::show_sprites, and yaze::Rom::vector().

Referenced by BuildReportContextMenu().

◆ BuildSelectionIssueReport()

◆ OpenIssueReportPopup()

◆ PrepareIssueReportPopup()

absl::Status yaze::editor::DungeonCanvasViewer::PrepareIssueReportPopup ( const std::string & title,
const std::string & summary,
const std::string & kind_label,
const std::string & diagnostics,
int room_id,
int default_category_index )
private

◆ BuildIssueReportClipboardText()

std::string yaze::editor::DungeonCanvasViewer::BuildIssueReportClipboardText ( ) const
private

◆ CaptureIssueReportScreenshot()

◆ AppendIssueReportToLog()

◆ EnsureIssueReportPersisted()

absl::Status yaze::editor::DungeonCanvasViewer::EnsureIssueReportPersisted ( )
private

Definition at line 1277 of file dungeon_canvas_issue_report.cc.

References AppendIssueReportToLog(), issue_report_popup_last_log_path_, issue_report_popup_persisted_, and RETURN_IF_ERROR.

Referenced by OpenIssueReportPopup().

Here is the call graph for this function:

◆ MarkIssueReportDirty()

void yaze::editor::DungeonCanvasViewer::MarkIssueReportDirty ( )
private

Definition at line 947 of file dungeon_canvas_issue_report.cc.

References issue_report_popup_persisted_.

Referenced by OpenIssueReportPopup().

◆ RefreshIssueReportOutputTargets()

void yaze::editor::DungeonCanvasViewer::RefreshIssueReportOutputTargets ( )
private

◆ SetIssueReportPopupStatus()

void yaze::editor::DungeonCanvasViewer::SetIssueReportPopupStatus ( std::string message,
bool is_error )
private

◆ DrawIssueReportStorageSummary()

void yaze::editor::DungeonCanvasViewer::DrawIssueReportStorageSummary ( ) const
private

◆ DrawIssueReportStatusMessage()

void yaze::editor::DungeonCanvasViewer::DrawIssueReportStatusMessage ( ) const
private

◆ RenderSprites()

◆ RenderPotItems()

◆ RenderChestContents()

◆ RenderEntityOverlay()

void yaze::editor::DungeonCanvasViewer::RenderEntityOverlay ( const gui::CanvasRuntime & rt,
const zelda3::Room & room )
private

Definition at line 359 of file dungeon_canvas_overlays.cc.

References RenderChestContents(), RenderPotItems(), and RenderSprites().

Referenced by DrawRoomCanvasContent().

Here is the call graph for this function:

◆ HandleTouchLongPressContextMenu()

void yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu ( const gui::CanvasRuntime & rt,
const zelda3::Room & room )
private

Definition at line 366 of file dungeon_canvas_overlays.cc.

References yaze::gui::CanvasRuntime::canvas_p0, yaze::editor::DungeonObjectInteraction::entity_coordinator(), yaze::editor::TileObjectHandler::GetEntityAtPosition(), yaze::gui::CanvasTouchHandler::GetGesturePosition(), yaze::zelda3::GetObjectName(), yaze::zelda3::Room::GetPotItems(), yaze::editor::DungeonObjectInteraction::GetSelectedEntity(), yaze::editor::DungeonObjectInteraction::GetSelectedObjectIndices(), yaze::editor::DungeonObjectInteraction::GetSelectionCount(), yaze::zelda3::GetSpriteLabel(), yaze::zelda3::Room::GetSprites(), yaze::zelda3::Room::GetTileObjects(), yaze::editor::DungeonObjectInteraction::HandleCopySelected(), yaze::editor::DungeonObjectInteraction::HandleDeleteSelected(), yaze::editor::DungeonObjectInteraction::HasEntitySelection(), yaze::gui::CanvasRuntime::hovered, yaze::gui::LayoutHelpers::IsTouchDevice(), yaze::editor::dungeon_coords::IsWithinBounds(), object_interaction_, yaze::gui::CanvasRuntime::scale, yaze::editor::DungeonCanvasTransform::ScreenToRoomPixelCoordinates(), yaze::editor::DungeonCanvasTransform::ScreenToRoomPixels(), yaze::gui::CanvasRuntime::scrolling, yaze::editor::DungeonObjectInteraction::SelectEntity(), yaze::editor::DungeonObjectInteraction::SendSelectedToBack(), yaze::editor::DungeonObjectInteraction::SendSelectedToFront(), yaze::editor::DungeonObjectInteraction::SetSelectedObjects(), yaze::editor::InteractionCoordinator::tile_handler(), touch_handler_, and yaze::gui::CanvasTouchHandler::WasLongPressed().

Referenced by DrawRoomCanvasContent().

◆ DrawObjectPositionOutlines()

◆ ApplyTrackCollisionConfig()

◆ GetCollisionOverlayCache()

◆ DrawMaskHighlights()

◆ DrawPersistentDebugWindows()

void yaze::editor::DungeonCanvasViewer::DrawPersistentDebugWindows ( int room_id)
private

◆ DrawRoomDebugWindow()

◆ DrawTextureDebugWindow()

◆ DrawLayerInfoWindow()

◆ DrawRoomCanvasOverlays()

void yaze::editor::DungeonCanvasViewer::DrawRoomCanvasOverlays ( const gui::CanvasRuntime & rt,
zelda3::Room & room,
int room_id )
private

Definition at line 289 of file dungeon_canvas_debug.cc.

References camera_overlay_entrance_slot_, yaze::editor::MinecartTrackEditorPanel::canvas_editing(), yaze::gui::CanvasRuntime::canvas_p0, yaze::editor::DungeonRenderingHelpers::DrawCameraQuadrantOverlay(), yaze::editor::DungeonRenderingHelpers::DrawCustomCollisionOverlay(), yaze::editor::DungeonRenderingHelpers::DrawMinecartSpriteOverlay(), DrawObjectPositionOutlines(), yaze::editor::DungeonRenderingHelpers::DrawTrackCollisionOverlay(), yaze::editor::DungeonRenderingHelpers::DrawTrackGapOverlay(), yaze::editor::DungeonRenderingHelpers::DrawTrackRouteOverlay(), yaze::editor::DungeonRenderingHelpers::DrawWaterFillOverlay(), entrance_camera_overlay_, GetCollisionOverlayCache(), yaze::gui::GetInfoColor(), yaze::editor::MinecartTrackEditorPanel::GetPickingTrackIndex(), yaze::editor::AgentUI::GetTheme(), yaze::zelda3::Room::GetTileObjects(), yaze::editor::MinecartTrackEditorPanel::GetTracks(), yaze::zelda3::Room::id(), yaze::editor::MinecartTrackEditorPanel::IsPickingCoordinates(), minecart_sprite_ids_, minecart_track_panel_, yaze::editor::MinecartLocalPosition(), yaze::editor::DungeonCanvasTransform::room_origin_screen(), yaze::zelda3::CustomObjectManager::RuntimeSubtypeCountForObject(), yaze::editor::DungeonCanvasTransform::scale(), yaze::gui::CanvasRuntime::scale, yaze::gui::CanvasRuntime::scrolling, show_camera_quadrant_overlay_, show_custom_collision_overlay_, show_custom_objects_overlay_, show_minecart_sprite_overlay_, show_minecart_tracks_, show_object_bounds_, show_track_collision_legend_, show_track_collision_overlay_, show_track_gap_overlay_, show_track_route_overlay_, show_water_fill_overlay_, switch_tile_order_, track_collision_config_, track_direction_map_enabled_, track_tile_order_, and yaze::editor::ValidateDungeonEntranceCamera().

Referenced by DrawDungeonCanvas().

◆ DrawCoordinateOverlayHud()

◆ ValidateRoomCanvasRequest()

bool yaze::editor::DungeonCanvasViewer::ValidateRoomCanvasRequest ( int room_id)
private

Definition at line 19 of file dungeon_canvas_room_frame.cc.

References yaze::Rom::is_loaded(), yaze::zelda3::kNumberOfRooms, and rom_.

Referenced by DrawDungeonCanvas().

Here is the call graph for this function:

◆ BuildRoomCanvasFrameOptions()

◆ UpdateRoomCanvasViewport()

void yaze::editor::DungeonCanvasViewer::UpdateRoomCanvasViewport ( ImVec2 viewport_size)
private

◆ HandleRoomCanvasNavigation()

◆ SyncCanvasConfigFromViewerState()

void yaze::editor::DungeonCanvasViewer::SyncCanvasConfigFromViewerState ( )
private

◆ SyncViewerStateFromCanvasConfig()

void yaze::editor::DungeonCanvasViewer::SyncViewerStateFromCanvasConfig ( )
private

Definition at line 127 of file dungeon_canvas_room_frame.cc.

References canvas_, yaze::gui::CanvasConfig::enable_grid, yaze::gui::Canvas::GetConfig(), set_custom_grid_size(), and show_grid_.

Referenced by DrawDungeonCanvas().

Here is the call graph for this function:

◆ RefreshActiveRoomCanvasState()

◆ PrepareActiveRoomForCanvasFrame()

zelda3::Room * yaze::editor::DungeonCanvasViewer::PrepareActiveRoomForCanvasFrame ( int room_id)
private

Definition at line 152 of file dungeon_canvas_room_frame.cc.

References RefreshActiveRoomCanvasState(), rooms_, and yaze::editor::DungeonRoomStore::TryEnsureRoom().

Referenced by DrawDungeonCanvas().

Here is the call graph for this function:

◆ SyncCanvasCaptureRegion()

void yaze::editor::DungeonCanvasViewer::SyncCanvasCaptureRegion ( const gui::CanvasRuntime & canvas_rt)
private

◆ ConsumePendingCanvasScroll()

void yaze::editor::DungeonCanvasViewer::ConsumePendingCanvasScroll ( const gui::CanvasRuntime & canvas_rt)
private

◆ DrawHeaderHiddenMetadataHud()

◆ PrepareRoomStateForCanvas()

◆ DrawRoomCanvasContent()

◆ HandleRoomCanvasDropTargets()

◆ DrawChangePingOverlay()

◆ RecordVisitedRoom()

void yaze::editor::DungeonCanvasViewer::RecordVisitedRoom ( int room_id)
private

Definition at line 132 of file dungeon_canvas_viewer.cc.

References yaze::zelda3::kNumberOfRooms, and recently_visited_rooms_.

Referenced by DrawDungeonCanvas().

◆ PrepareRoomCompositeWithOutput()

◆ PruneConnectedRoomCompositeOutputs()

void yaze::editor::DungeonCanvasViewer::PruneConnectedRoomCompositeOutputs ( )
private

◆ ResetRoomCompositeOutputs()

void yaze::editor::DungeonCanvasViewer::ResetRoomCompositeOutputs ( )
private

◆ UpdateRoomCanvasShortcutFocus()

void yaze::editor::DungeonCanvasViewer::UpdateRoomCanvasShortcutFocus ( bool hovered,
bool pointer_pressed,
int frame_index )
private

◆ HasRoomCanvasShortcutFocusForFrame()

bool yaze::editor::DungeonCanvasViewer::HasRoomCanvasShortcutFocusForFrame ( int frame_index) const
private

◆ LoadAndRenderRoomGraphics()

◆ PrepareRoomCompositeBitmap()

◆ PrepareConnectedRoomCompositeBitmap()

gfx::Bitmap * yaze::editor::DungeonCanvasViewer::PrepareConnectedRoomCompositeBitmap ( int room_id)
private

◆ EnsureRoomLoadedForConnectedView()

◆ RoomHasNonExitDoorInDirection()

bool yaze::editor::DungeonCanvasViewer::RoomHasNonExitDoorInDirection ( int room_id,
zelda3::DoorDirection dir )
private

◆ BuildConnectedRoomGraph()

DungeonCanvasViewer::ConnectedRoomGraphData yaze::editor::DungeonCanvasViewer::BuildConnectedRoomGraph ( int start_room_id)
private

◆ ApplyConnectedStaircaseIssueAutoFixes()

int yaze::editor::DungeonCanvasViewer::ApplyConnectedStaircaseIssueAutoFixes ( int center_room_id)
private

◆ DrawRoomBackgroundLayers()

◆ DrawCrumbleCanvas()

◆ DrawMinecartCanvas()

Friends And Related Symbol Documentation

◆ DungeonCanvasViewerTestPeer

friend class DungeonCanvasViewerTestPeer
friend

Definition at line 934 of file dungeon_canvas_viewer.h.

◆ DungeonCanvasMinecartTestPeer

friend class DungeonCanvasMinecartTestPeer
friend

Definition at line 935 of file dungeon_canvas_viewer.h.

◆ DungeonRoomTransferEditorTestPeer

friend class DungeonRoomTransferEditorTestPeer
friend

Definition at line 936 of file dungeon_canvas_viewer.h.

◆ DungeonRoomEditsTestPeer

friend class DungeonRoomEditsTestPeer
friend

Definition at line 937 of file dungeon_canvas_viewer.h.

◆ DungeonEditorPaletteRefreshTestPeer

friend class DungeonEditorPaletteRefreshTestPeer
friend

Definition at line 938 of file dungeon_canvas_viewer.h.

◆ DungeonEditorPaletteRefreshTest_CachedRoomRefreshesThroughViewerCompositePreparation_Test

friend class DungeonEditorPaletteRefreshTest_CachedRoomRefreshesThroughViewerCompositePreparation_Test
friend

Definition at line 940 of file dungeon_canvas_viewer.h.

◆ DungeonEditorPaletteRefreshTest_CachedCompositePreparationPreservesTargetEntranceContext_Test

friend class DungeonEditorPaletteRefreshTest_CachedCompositePreparationPreservesTargetEntranceContext_Test
friend

Definition at line 942 of file dungeon_canvas_viewer.h.

◆ DungeonEditorPaletteRefreshTest_CachedPanelPaletteRefreshSurvivesWorkbenchModeAndPreservesRoomPalette_Test

friend class DungeonEditorPaletteRefreshTest_CachedPanelPaletteRefreshSurvivesWorkbenchModeAndPreservesRoomPalette_Test
friend

Definition at line 944 of file dungeon_canvas_viewer.h.

◆ DungeonEditorPaletteRefreshTest_DungeonMainNotificationSkipsUnrelatedCachedViewerWork_Test

friend class DungeonEditorPaletteRefreshTest_DungeonMainNotificationSkipsUnrelatedCachedViewerWork_Test
friend

Definition at line 946 of file dungeon_canvas_viewer.h.

◆ DungeonCanvasCrumbleTestPeer

friend class DungeonCanvasCrumbleTestPeer
friend

Definition at line 1161 of file dungeon_canvas_viewer.h.

Member Data Documentation

◆ rom_

◆ game_data_

zelda3::GameData* yaze::editor::DungeonCanvasViewer::game_data_ = nullptr
private

◆ canvas_

◆ room_viewport_auto_fit_

bool yaze::editor::DungeonCanvasViewer::room_viewport_auto_fit_ = true
private

◆ room_viewport_last_scale_

float yaze::editor::DungeonCanvasViewer::room_viewport_last_scale_ = -1.0f
private

◆ connected_canvas_

gui::Canvas yaze::editor::DungeonCanvasViewer::connected_canvas_
private
Initial value:
{"##DungeonConnectedCanvas",
ImVec2(0x200, 0x200)}

Definition at line 1074 of file dungeon_canvas_viewer.h.

Referenced by ConnectedCanvasScale(), and DrawConnectedRoomMatrix().

◆ object_interaction_

◆ touch_handler_

gui::CanvasTouchHandler yaze::editor::DungeonCanvasViewer::touch_handler_
private

Definition at line 1080 of file dungeon_canvas_viewer.h.

Referenced by DrawDungeonCanvas(), and HandleTouchLongPressContextMenu().

◆ pending_scroll_target_

std::optional<std::pair<int, int> > yaze::editor::DungeonCanvasViewer::pending_scroll_target_
private

◆ rooms_

◆ current_room_id_

◆ recently_visited_rooms_

std::vector<int> yaze::editor::DungeonCanvasViewer::recently_visited_rooms_
private

Definition at line 1088 of file dungeon_canvas_viewer.h.

Referenced by DrawRecentRoomBreadcrumbs(), and RecordVisitedRoom().

◆ current_entrance_id_

int yaze::editor::DungeonCanvasViewer::current_entrance_id_ = -1
private

◆ current_entrance_blockset_

◆ entrance_blockset_resolver_

std::function<uint8_t(int)> yaze::editor::DungeonCanvasViewer::entrance_blockset_resolver_
private

◆ camera_overlay_entrance_slot_

int yaze::editor::DungeonCanvasViewer::camera_overlay_entrance_slot_ = -1
private

◆ entrance_camera_overlay_

std::optional<DungeonEntranceCameraState> yaze::editor::DungeonCanvasViewer::entrance_camera_overlay_
private

◆ active_rooms_

ImVector<int> yaze::editor::DungeonCanvasViewer::active_rooms_
private

Definition at line 1095 of file dungeon_canvas_viewer.h.

Referenced by set_active_rooms().

◆ current_active_room_tab_

int yaze::editor::DungeonCanvasViewer::current_active_room_tab_ = 0
private

Definition at line 1096 of file dungeon_canvas_viewer.h.

Referenced by set_current_active_room_tab().

◆ last_connected_matrix_room_id_

int yaze::editor::DungeonCanvasViewer::last_connected_matrix_room_id_ = -1
private

Definition at line 1097 of file dungeon_canvas_viewer.h.

Referenced by DrawConnectedRoomMatrix(), and RefreshRomBackedState().

◆ connected_canvas_initialized_

bool yaze::editor::DungeonCanvasViewer::connected_canvas_initialized_ = false
private

Definition at line 1098 of file dungeon_canvas_viewer.h.

Referenced by DrawConnectedRoomMatrix().

◆ show_connected_overview_

bool yaze::editor::DungeonCanvasViewer::show_connected_overview_ = false
private

◆ show_connected_current_room_preview_

bool yaze::editor::DungeonCanvasViewer::show_connected_current_room_preview_ = false
private

◆ connected_controls_inline_

bool yaze::editor::DungeonCanvasViewer::connected_controls_inline_ = false
private

◆ connected_canvas_fit_requested_

bool yaze::editor::DungeonCanvasViewer::connected_canvas_fit_requested_ = false
private

◆ connected_canvas_reset_requested_

bool yaze::editor::DungeonCanvasViewer::connected_canvas_reset_requested_ = false
private

◆ connected_side_panel_visible_last_frame_

bool yaze::editor::DungeonCanvasViewer::connected_side_panel_visible_last_frame_ = false
private

Definition at line 1108 of file dungeon_canvas_viewer.h.

Referenced by DrawConnectedRoomMatrix().

◆ connected_controls_custom_position_

bool yaze::editor::DungeonCanvasViewer::connected_controls_custom_position_ = false
private

Definition at line 1109 of file dungeon_canvas_viewer.h.

Referenced by DrawConnectedRoomMatrix().

◆ connected_controls_custom_position_value_

ImVec2 yaze::editor::DungeonCanvasViewer::connected_controls_custom_position_value_ = ImVec2(0.0f, 0.0f)
private

Definition at line 1110 of file dungeon_canvas_viewer.h.

Referenced by DrawConnectedRoomMatrix().

◆ connected_graph_cache_start_room_id_

int yaze::editor::DungeonCanvasViewer::connected_graph_cache_start_room_id_ = -1
private

◆ connected_graph_cache_

ConnectedRoomGraphData yaze::editor::DungeonCanvasViewer::connected_graph_cache_ {}
private

◆ connected_action_status_message_

std::string yaze::editor::DungeonCanvasViewer::connected_action_status_message_
private

◆ connected_action_status_is_error_

bool yaze::editor::DungeonCanvasViewer::connected_action_status_is_error_ = false
private

◆ object_interaction_enabled_

◆ room_canvas_shortcut_focus_

bool yaze::editor::DungeonCanvasViewer::room_canvas_shortcut_focus_ = false
private

◆ room_canvas_last_draw_frame_

int yaze::editor::DungeonCanvasViewer::room_canvas_last_draw_frame_ = -1
private

◆ room_layer_managers_

std::map<int, RoomLayerState> yaze::editor::DungeonCanvasViewer::room_layer_managers_
private

◆ primary_composite_output_

RoomCompositeOutput yaze::editor::DungeonCanvasViewer::primary_composite_output_
private

◆ connected_composite_outputs_

std::map<int, ConnectedRoomCompositeEntry> yaze::editor::DungeonCanvasViewer::connected_composite_outputs_
private

◆ connected_composite_prune_frame_

int yaze::editor::DungeonCanvasViewer::connected_composite_prune_frame_ = -1
private

◆ current_palette_group_id_

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

◆ current_palette_id_

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

Definition at line 1141 of file dungeon_canvas_viewer.h.

Referenced by SetCurrentPaletteId().

◆ current_palette_group_

gfx::PaletteGroup yaze::editor::DungeonCanvasViewer::current_palette_group_
private

◆ room_navigation_callback_

std::function<void(int)> yaze::editor::DungeonCanvasViewer::room_navigation_callback_
private

◆ room_swap_callback_

std::function<void(int, int)> yaze::editor::DungeonCanvasViewer::room_swap_callback_
private

◆ show_object_panel_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_object_panel_callback_
private

Definition at line 1146 of file dungeon_canvas_viewer.h.

Referenced by BuildInsertContextMenu(), and SetShowObjectPanelCallback().

◆ show_sprite_panel_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_sprite_panel_callback_
private

Definition at line 1147 of file dungeon_canvas_viewer.h.

Referenced by BuildInsertContextMenu(), and SetShowSpritePanelCallback().

◆ show_item_panel_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_item_panel_callback_
private

Definition at line 1148 of file dungeon_canvas_viewer.h.

Referenced by BuildInsertContextMenu(), and SetShowItemPanelCallback().

◆ show_room_list_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_room_list_callback_
private

Definition at line 1149 of file dungeon_canvas_viewer.h.

Referenced by SetShowRoomListCallback().

◆ show_room_matrix_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_room_matrix_callback_
private

Definition at line 1150 of file dungeon_canvas_viewer.h.

Referenced by BuildOpenContextMenu(), and SetShowRoomMatrixCallback().

◆ show_entrance_list_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_entrance_list_callback_
private

Definition at line 1151 of file dungeon_canvas_viewer.h.

Referenced by BuildOpenContextMenu(), and SetShowEntranceListCallback().

◆ show_room_graphics_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_room_graphics_callback_
private

◆ show_door_editor_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_door_editor_callback_
private

Definition at line 1153 of file dungeon_canvas_viewer.h.

Referenced by BuildOpenContextMenu(), and SetShowDoorEditorCallback().

◆ show_dungeon_settings_callback_

std::function<void()> yaze::editor::DungeonCanvasViewer::show_dungeon_settings_callback_
private

Definition at line 1154 of file dungeon_canvas_viewer.h.

Referenced by SetShowDungeonSettingsCallback().

◆ save_room_callback_

std::function<void(int)> yaze::editor::DungeonCanvasViewer::save_room_callback_
private

Definition at line 1155 of file dungeon_canvas_viewer.h.

Referenced by BuildRoomContextMenu(), and SetSaveRoomCallback().

◆ edit_graphics_callback_

std::function<void(int, const zelda3::RoomObject&) yaze::editor::DungeonCanvasViewer::edit_graphics_callback_)
private

◆ minecart_track_panel_

MinecartTrackEditorPanel* yaze::editor::DungeonCanvasViewer::minecart_track_panel_ = nullptr
private

◆ minecart_canvas_tool_

MinecartCanvasTool yaze::editor::DungeonCanvasViewer::minecart_canvas_tool_
private

◆ minecart_collision_tool_

MinecartCollisionTool yaze::editor::DungeonCanvasViewer::minecart_collision_tool_
private

Definition at line 1159 of file dungeon_canvas_viewer.h.

Referenced by DrawMinecartCanvas().

◆ minecart_owned_input_

bool yaze::editor::DungeonCanvasViewer::minecart_owned_input_ = false
private

Definition at line 1160 of file dungeon_canvas_viewer.h.

Referenced by DrawMinecartCanvas().

◆ show_crumble_floor_

bool yaze::editor::DungeonCanvasViewer::show_crumble_floor_ = false
private

◆ crumble_floor_view_

◆ show_minecart_tracks_

bool yaze::editor::DungeonCanvasViewer::show_minecart_tracks_ = false
private

◆ is_pinned_

bool yaze::editor::DungeonCanvasViewer::is_pinned_ = false
private

Definition at line 1168 of file dungeon_canvas_viewer.h.

Referenced by DrawRoomPropertyTable(), and SetPinned().

◆ pin_callback_

std::function<void(bool)> yaze::editor::DungeonCanvasViewer::pin_callback_
private

Definition at line 1169 of file dungeon_canvas_viewer.h.

Referenced by DrawRoomPropertyTable(), and SetPinCallback().

◆ project_

◆ sprite_preview_resources_

zelda3::SpritePreviewResourceCache yaze::editor::DungeonCanvasViewer::sprite_preview_resources_
private

Definition at line 1171 of file dungeon_canvas_viewer.h.

Referenced by InvalidateExternalSpriteResources(), and RenderSprites().

◆ sprite_preview_cache_

util::LruCache<SpritePreviewKey, CachedSpritePreview> yaze::editor::DungeonCanvasViewer::sprite_preview_cache_
private
Initial value:
{
128}

Definition at line 1179 of file dungeon_canvas_viewer.h.

Referenced by InvalidateExternalSpriteResources(), and RenderSprites().

◆ show_track_collision_overlay_

bool yaze::editor::DungeonCanvasViewer::show_track_collision_overlay_ = false
private

◆ show_track_collision_legend_

bool yaze::editor::DungeonCanvasViewer::show_track_collision_legend_ = true
private

◆ show_camera_quadrant_overlay_

bool yaze::editor::DungeonCanvasViewer::show_camera_quadrant_overlay_ = false
private

◆ show_minecart_sprite_overlay_

bool yaze::editor::DungeonCanvasViewer::show_minecart_sprite_overlay_ = false
private

◆ show_track_gap_overlay_

bool yaze::editor::DungeonCanvasViewer::show_track_gap_overlay_ = false
private

◆ show_track_route_overlay_

bool yaze::editor::DungeonCanvasViewer::show_track_route_overlay_ = false
private

◆ show_custom_objects_overlay_

bool yaze::editor::DungeonCanvasViewer::show_custom_objects_overlay_ = false
private

◆ show_custom_collision_overlay_

bool yaze::editor::DungeonCanvasViewer::show_custom_collision_overlay_ = false
private

◆ show_water_fill_overlay_

bool yaze::editor::DungeonCanvasViewer::show_water_fill_overlay_ = false
private

◆ show_room_details_

bool yaze::editor::DungeonCanvasViewer::show_room_details_ = false
private

◆ metadata_edit_callback_

MetadataEditCallback yaze::editor::DungeonCanvasViewer::metadata_edit_callback_
private

Definition at line 1192 of file dungeon_canvas_viewer.h.

Referenced by EditRoomMetadata(), and SetMetadataEditCallback().

◆ metadata_batch_edit_callback_

MetadataBatchEditCallback yaze::editor::DungeonCanvasViewer::metadata_batch_edit_callback_
private

◆ chest_edit_callback_

ChestEditCallback yaze::editor::DungeonCanvasViewer::chest_edit_callback_
private

Definition at line 1194 of file dungeon_canvas_viewer.h.

Referenced by EditChest(), and SetChestEditCallback().

◆ chest_delete_callback_

ChestDeleteCallback yaze::editor::DungeonCanvasViewer::chest_delete_callback_
private

Definition at line 1195 of file dungeon_canvas_viewer.h.

Referenced by DeleteChest(), and SetChestDeleteCallback().

◆ chest_editor_state_

DungeonChestEditorState yaze::editor::DungeonCanvasViewer::chest_editor_state_
private

Definition at line 1196 of file dungeon_canvas_viewer.h.

Referenced by chest_editor_state().

◆ door_connection_preview_callback_

DoorConnectionPreviewCallback yaze::editor::DungeonCanvasViewer::door_connection_preview_callback_
private

Definition at line 1197 of file dungeon_canvas_viewer.h.

Referenced by PreviewDoorConnection(), and SetDoorConnectionCallbacks().

◆ door_connection_apply_callback_

DoorConnectionApplyCallback yaze::editor::DungeonCanvasViewer::door_connection_apply_callback_
private

Definition at line 1198 of file dungeon_canvas_viewer.h.

Referenced by ApplyDoorConnection(), and SetDoorConnectionCallbacks().

◆ door_connection_navigation_callback_

std::function<void(int, size_t)> yaze::editor::DungeonCanvasViewer::door_connection_navigation_callback_
private

◆ connection_editor_state_

DungeonConnectionEditorState yaze::editor::DungeonCanvasViewer::connection_editor_state_
private

Definition at line 1200 of file dungeon_canvas_viewer.h.

Referenced by connection_editor_state(), and RefreshRomBackedState().

◆ room_document_export_callback_

RoomDocumentExportCallback yaze::editor::DungeonCanvasViewer::room_document_export_callback_
private

Definition at line 1201 of file dungeon_canvas_viewer.h.

Referenced by ExportRoomDocument(), and SetRoomTransferCallbacks().

◆ room_transfer_preview_callback_

RoomTransferPreviewCallback yaze::editor::DungeonCanvasViewer::room_transfer_preview_callback_
private

Definition at line 1202 of file dungeon_canvas_viewer.h.

Referenced by PreviewRoomTransfer(), and SetRoomTransferCallbacks().

◆ room_transfer_apply_callback_

RoomTransferApplyCallback yaze::editor::DungeonCanvasViewer::room_transfer_apply_callback_
private

Definition at line 1203 of file dungeon_canvas_viewer.h.

Referenced by ApplyRoomTransfer(), and SetRoomTransferCallbacks().

◆ room_transfer_state_

DungeonRoomTransferEditorState yaze::editor::DungeonCanvasViewer::room_transfer_state_
private

◆ compact_header_mode_

bool yaze::editor::DungeonCanvasViewer::compact_header_mode_ = false
private

◆ header_read_only_

bool yaze::editor::DungeonCanvasViewer::header_read_only_ = false
private

◆ header_visible_

bool yaze::editor::DungeonCanvasViewer::header_visible_ = true
private

◆ show_header_hidden_metadata_hud_

bool yaze::editor::DungeonCanvasViewer::show_header_hidden_metadata_hud_ = true
private

◆ track_direction_map_enabled_

bool yaze::editor::DungeonCanvasViewer::track_direction_map_enabled_ = true
private

Definition at line 1210 of file dungeon_canvas_viewer.h.

Referenced by ApplyTrackCollisionConfig(), and DrawRoomCanvasOverlays().

◆ track_tile_order_

std::vector<uint16_t> yaze::editor::DungeonCanvasViewer::track_tile_order_
private

Definition at line 1211 of file dungeon_canvas_viewer.h.

Referenced by ApplyTrackCollisionConfig(), and DrawRoomCanvasOverlays().

◆ switch_tile_order_

std::vector<uint16_t> yaze::editor::DungeonCanvasViewer::switch_tile_order_
private

Definition at line 1212 of file dungeon_canvas_viewer.h.

Referenced by ApplyTrackCollisionConfig(), and DrawRoomCanvasOverlays().

◆ track_collision_config_

DungeonRenderingHelpers::TrackCollisionConfig yaze::editor::DungeonCanvasViewer::track_collision_config_
private

◆ collision_overlay_cache_

std::unordered_map<int, DungeonRenderingHelpers::CollisionOverlayCache> yaze::editor::DungeonCanvasViewer::collision_overlay_cache_
private

◆ minecart_sprite_ids_

std::bitset<256> yaze::editor::DungeonCanvasViewer::minecart_sprite_ids_ {}
private

Definition at line 1216 of file dungeon_canvas_viewer.h.

Referenced by ApplyTrackCollisionConfig(), and DrawRoomCanvasOverlays().

◆ object_render_cache_

std::vector<ObjectRenderCache> yaze::editor::DungeonCanvasViewer::object_render_cache_
private

Definition at line 1226 of file dungeon_canvas_viewer.h.

Referenced by RefreshRomBackedState().

◆ last_palette_hash_

uint64_t yaze::editor::DungeonCanvasViewer::last_palette_hash_ = 0
private

Definition at line 1227 of file dungeon_canvas_viewer.h.

Referenced by RefreshRomBackedState().

◆ show_room_debug_info_

bool yaze::editor::DungeonCanvasViewer::show_room_debug_info_ = false
private

◆ show_texture_debug_

bool yaze::editor::DungeonCanvasViewer::show_texture_debug_ = false
private

◆ show_object_bounds_

bool yaze::editor::DungeonCanvasViewer::show_object_bounds_ = false
private

◆ show_layer_info_

bool yaze::editor::DungeonCanvasViewer::show_layer_info_ = false
private

◆ show_grid_

bool yaze::editor::DungeonCanvasViewer::show_grid_ = false
private

◆ show_coordinate_overlay_

bool yaze::editor::DungeonCanvasViewer::show_coordinate_overlay_
private

◆ layout_override_

int yaze::editor::DungeonCanvasViewer::layout_override_ = -1
private

Definition at line 1237 of file dungeon_canvas_viewer.h.

Referenced by DrawRoomDebugWindow().

◆ custom_grid_size_

int yaze::editor::DungeonCanvasViewer::custom_grid_size_ = 8
private

◆ object_render_mode_

ObjectRenderMode yaze::editor::DungeonCanvasViewer::object_render_mode_
private

◆ object_outline_toggles_

ObjectOutlineToggles yaze::editor::DungeonCanvasViewer::object_outline_toggles_
private

◆ entity_visibility_

◆ renderer_

gfx::IRenderer* yaze::editor::DungeonCanvasViewer::renderer_ = nullptr
private

◆ prev_blockset_

int yaze::editor::DungeonCanvasViewer::prev_blockset_ = -1
private

◆ prev_palette_

int yaze::editor::DungeonCanvasViewer::prev_palette_ = -1
private

◆ prev_layout_

int yaze::editor::DungeonCanvasViewer::prev_layout_ = -1
private

◆ prev_spriteset_

int yaze::editor::DungeonCanvasViewer::prev_spriteset_ = -1
private

◆ issue_report_popup_title_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_title_
private

Definition at line 1269 of file dungeon_canvas_viewer.h.

Referenced by OpenIssueReportPopup(), and PrepareIssueReportPopup().

◆ issue_report_popup_kind_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_kind_
private

◆ issue_report_popup_diagnostics_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_diagnostics_
private

◆ issue_report_popup_log_target_path_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_log_target_path_
private

◆ issue_report_popup_screenshot_dir_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_screenshot_dir_
private

◆ issue_report_popup_screenshot_path_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_screenshot_path_
private

◆ issue_report_popup_last_log_path_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_last_log_path_
private

◆ issue_report_popup_status_message_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_status_message_
private

◆ issue_report_popup_id_

std::string yaze::editor::DungeonCanvasViewer::issue_report_popup_id_
private
Initial value:
=
"Report Dungeon Issue##DungeonIssueReportPopup"

Definition at line 1277 of file dungeon_canvas_viewer.h.

Referenced by OpenIssueReportPopup().

◆ issue_report_popup_room_id_

int yaze::editor::DungeonCanvasViewer::issue_report_popup_room_id_ = -1
private

◆ issue_report_category_index_

int yaze::editor::DungeonCanvasViewer::issue_report_category_index_ = 0
private

◆ issue_report_popup_persisted_

bool yaze::editor::DungeonCanvasViewer::issue_report_popup_persisted_ = false
private

◆ issue_report_popup_status_is_error_

bool yaze::editor::DungeonCanvasViewer::issue_report_popup_status_is_error_ = false
private

◆ issue_report_summary_

char yaze::editor::DungeonCanvasViewer::issue_report_summary_[256] {}
private

◆ issue_report_notes_

char yaze::editor::DungeonCanvasViewer::issue_report_notes_[2048] {}
private

◆ has_canvas_capture_region_

bool yaze::editor::DungeonCanvasViewer::has_canvas_capture_region_ = false
private

◆ canvas_capture_x_

int yaze::editor::DungeonCanvasViewer::canvas_capture_x_ = 0
private

◆ canvas_capture_y_

int yaze::editor::DungeonCanvasViewer::canvas_capture_y_ = 0
private

◆ canvas_capture_width_

int yaze::editor::DungeonCanvasViewer::canvas_capture_width_ = 0
private

◆ canvas_capture_height_

int yaze::editor::DungeonCanvasViewer::canvas_capture_height_ = 0
private

◆ change_ping_rects_

std::vector<ChangePingRect> yaze::editor::DungeonCanvasViewer::change_ping_rects_
private

◆ change_ping_start_time_

double yaze::editor::DungeonCanvasViewer::change_ping_start_time_ = -1.0
private

◆ edit_object_tiles_callback_

std::function<void(int, const zelda3::RoomObject&) yaze::editor::DungeonCanvasViewer::edit_object_tiles_callback_)
private

◆ check_object_coverage_callback_

std::function<void(int, const zelda3::RoomObject&) yaze::editor::DungeonCanvasViewer::check_object_coverage_callback_)
private

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