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

Editors are the view controllers for the application. More...

Namespaces

namespace  AgentUI
 
namespace  anonymous_namespace{activity_bar.cc}
 
namespace  anonymous_namespace{agent_chat.cc}
 
namespace  anonymous_namespace{agent_chat_history_codec.cc}
 
namespace  anonymous_namespace{agent_collaboration_coordinator.cc}
 
namespace  anonymous_namespace{agent_configuration_panel.cc}
 
namespace  anonymous_namespace{agent_editor.cc}
 
namespace  anonymous_namespace{agent_editor_dashboard.cc}
 
namespace  anonymous_namespace{agent_editor_models.cc}
 
namespace  anonymous_namespace{agent_proposals_panel.cc}
 
namespace  anonymous_namespace{assembly_editor.cc}
 
namespace  anonymous_namespace{background_command_task.cc}
 
namespace  anonymous_namespace{canvas_navigation_manager.cc}
 
namespace  anonymous_namespace{collision_source_pairing.cc}
 
namespace  anonymous_namespace{command_palette.cc}
 
namespace  anonymous_namespace{command_palette_goto.cc}
 
namespace  anonymous_namespace{content_registry.cc}
 
namespace  anonymous_namespace{crumble_floor_model.cc}
 
namespace  anonymous_namespace{cutscene_camera_panel.cc}
 
namespace  anonymous_namespace{dashboard_panel.cc}
 
namespace  anonymous_namespace{diagnostics_panel.cc}
 
namespace  anonymous_namespace{door_editor_content.cc}
 
namespace  anonymous_namespace{door_interaction_handler.cc}
 
namespace  anonymous_namespace{dungeon_canvas_connected_matrix.cc}
 
namespace  anonymous_namespace{dungeon_canvas_connected_view.cc}
 
namespace  anonymous_namespace{dungeon_canvas_debug.cc}
 
namespace  anonymous_namespace{dungeon_canvas_issue_report.cc}
 
namespace  anonymous_namespace{dungeon_canvas_overlays.cc}
 
namespace  anonymous_namespace{dungeon_canvas_proposal_preview.cc}
 
namespace  anonymous_namespace{dungeon_canvas_room_chrome.cc}
 
namespace  anonymous_namespace{dungeon_canvas_room_frame.cc}
 
namespace  anonymous_namespace{dungeon_canvas_room_render.cc}
 
namespace  anonymous_namespace{dungeon_canvas_viewer.cc}
 
namespace  anonymous_namespace{dungeon_chest_editor.cc}
 
namespace  anonymous_namespace{dungeon_connection_edit.cc}
 
namespace  anonymous_namespace{dungeon_connection_editor.cc}
 
namespace  anonymous_namespace{dungeon_destination_editor.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_chest_edits.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_connection_edits.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_entrance_camera.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_minecart.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_persistence.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_room_edits.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_room_transfer.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_selection_edits.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2_undo.cc}
 
namespace  anonymous_namespace{dungeon_entity_inspector.cc}
 
namespace  anonymous_namespace{dungeon_entrance_camera.cc}
 
namespace  anonymous_namespace{dungeon_issue_report_storage.cc}
 
namespace  anonymous_namespace{dungeon_object_interaction.cc}
 
namespace  anonymous_namespace{dungeon_object_selector.cc}
 
namespace  anonymous_namespace{dungeon_overlay_controls.cc}
 
namespace  anonymous_namespace{dungeon_pit_damage_view_model.cc}
 
namespace  anonymous_namespace{dungeon_proposal_overlay.cc}
 
namespace  anonymous_namespace{dungeon_render_context.cc}
 
namespace  anonymous_namespace{dungeon_room_composite.cc}
 
namespace  anonymous_namespace{dungeon_room_edit.cc}
 
namespace  anonymous_namespace{dungeon_room_nav_widget.cc}
 
namespace  anonymous_namespace{dungeon_room_transfer.cc}
 
namespace  anonymous_namespace{dungeon_room_transfer_editor.cc}
 
namespace  anonymous_namespace{dungeon_room_transfer_json.cc}
 
namespace  anonymous_namespace{dungeon_selection_edit.cc}
 
namespace  anonymous_namespace{dungeon_status_bar.cc}
 
namespace  anonymous_namespace{dungeon_toolset.cc}
 
namespace  anonymous_namespace{dungeon_usage_tracker.cc}
 
namespace  anonymous_namespace{dungeon_workbench_content.cc}
 
namespace  anonymous_namespace{dungeon_workbench_layout.cc}
 
namespace  anonymous_namespace{dungeon_workbench_toolbar.cc}
 
namespace  anonymous_namespace{editor_manager.cc}
 
namespace  anonymous_namespace{editor_manager_frame.cc}
 
namespace  anonymous_namespace{editor_manager_project_io.cc}
 
namespace  anonymous_namespace{editor_manager_sessions.cc}
 
namespace  anonymous_namespace{editor_selection_dialog.cc}
 
namespace  anonymous_namespace{entity_operations.cc}
 
namespace  anonymous_namespace{entity_workbench.cc}
 
namespace  anonymous_namespace{feature_flag_editor_panel.cc}
 
namespace  anonymous_namespace{gfx_group_editor.cc}
 
namespace  anonymous_namespace{gfx_group_editor_main.cc}
 
namespace  anonymous_namespace{graphics_sheet_sync.cc}
 
namespace  anonymous_namespace{interaction_coordinator.cc}
 
namespace  anonymous_namespace{layout_manager.cc}
 
namespace  anonymous_namespace{manifest_panel.cc}
 
namespace  anonymous_namespace{map_properties.cc}
 
namespace  anonymous_namespace{map_refresh_coordinator.cc}
 
namespace  anonymous_namespace{map_texture_coordinator.cc}
 
namespace  anonymous_namespace{menu_inspector_panel.cc}
 
namespace  anonymous_namespace{menu_orchestrator.cc}
 
namespace  anonymous_namespace{mesen_debug_panel.cc}
 
namespace  anonymous_namespace{mesen_screenshot_panel.cc}
 
namespace  anonymous_namespace{message_data.cc}
 
namespace  anonymous_namespace{message_editor.cc}
 
namespace  anonymous_namespace{message_source_sync.cc}
 
namespace  anonymous_namespace{minecart_collision_tool.cc}
 
namespace  anonymous_namespace{minecart_track_editor_panel.cc}
 
namespace  anonymous_namespace{minecart_track_source.cc}
 
namespace  anonymous_namespace{new_project_dialog.cc}
 
namespace  anonymous_namespace{object_coverage_model.cc}
 
namespace  anonymous_namespace{object_coverage_panel.cc}
 
namespace  anonymous_namespace{object_selector_content.cc}
 
namespace  anonymous_namespace{object_tile_editor_panel.cc}
 
namespace  anonymous_namespace{oracle_hack_workflow_backend.cc}
 
namespace  anonymous_namespace{oracle_ram_panel.cc}
 
namespace  anonymous_namespace{oracle_state_library_panel.cc}
 
namespace  anonymous_namespace{oracle_validation_panel.cc}
 
namespace  anonymous_namespace{overworld_canvas_renderer.cc}
 
namespace  anonymous_namespace{overworld_editor.cc}
 
namespace  anonymous_namespace{overworld_entity_renderer.cc}
 
namespace  anonymous_namespace{overworld_item_list_panel.cc}
 
 
namespace  anonymous_namespace{overworld_sidebar.cc}
 
namespace  anonymous_namespace{overworld_toolbar.cc}
 
namespace  anonymous_namespace{palette_controls_panel.cc}
 
namespace  anonymous_namespace{palette_editor.cc}
 
namespace  anonymous_namespace{palette_group_panel.cc}
 
namespace  anonymous_namespace{palette_pixel_command.cc}
 
namespace  anonymous_namespace{panel_admission.cc}
 
namespace  anonymous_namespace{pixel_editor_panel.cc}
 
namespace  anonymous_namespace{planning_editor.cc}
 
namespace  anonymous_namespace{polyhedral_editor_panel.cc}
 
namespace  anonymous_namespace{project_file_editor.cc}
 
namespace  anonymous_namespace{project_management_panel.cc}
 
namespace  anonymous_namespace{recent_files_menu_model.cc}
 
namespace  anonymous_namespace{recent_projects_model.cc}
 
namespace  anonymous_namespace{right_drawer_manager.cc}
 
namespace  anonymous_namespace{rom_file_manager.cc}
 
namespace  anonymous_namespace{rom_lifecycle_manager.cc}
 
namespace  anonymous_namespace{room_graphics_content.cc}
 
namespace  anonymous_namespace{room_matrix_census.cc}
 
namespace  anonymous_namespace{scratch_space.cc}
 
namespace  anonymous_namespace{screen_menu_tilemap_editor.cc}
 
namespace  anonymous_namespace{session_coordinator.cc}
 
namespace  anonymous_namespace{settings_panel.cc}
 
namespace  anonymous_namespace{sheet_browser_panel.cc}
 
namespace  anonymous_namespace{sheet_png_transfer.cc}
 
namespace  anonymous_namespace{shortcut_configurator.cc}
 
namespace  anonymous_namespace{shortcut_manager.cc}
 
namespace  anonymous_namespace{sprite_editor.cc}
 
namespace  anonymous_namespace{sram_viewer_panel.cc}
 
namespace  anonymous_namespace{status_bar.cc}
 
namespace  anonymous_namespace{tile16_edit_history.cc}
 
namespace  anonymous_namespace{tile16_edit_session.cc}
 
namespace  anonymous_namespace{tile16_workbench.cc}
 
namespace  anonymous_namespace{tile_object_handler.cc}
 
namespace  anonymous_namespace{tile_painting_manager.cc}
 
namespace  anonymous_namespace{usage_preview_view.cc}
 
namespace  anonymous_namespace{user_settings.cc}
 
namespace  anonymous_namespace{welcome_screen.cc}
 
namespace  anonymous_namespace{window_browser.cc}
 
namespace  anonymous_namespace{window_sidebar.cc}
 
namespace  anonymous_namespace{workspace_window_manager.cc}
 
namespace  anonymous_namespace{workspace_window_manager_state.cc}
 
namespace  ContentRegistry
 Central registry for editor content and services.
 
namespace  dungeon_coords
 Coordinate conversion utilities for dungeon editing.
 
namespace  dungeon_project_labels
 
namespace  dungeon_ui
 
namespace  FeatureHintId
 Stable IDs for one-shot, dismissible onboarding tips.
 
namespace  internal
 
namespace  layout_designer
 
namespace  music
 
namespace  oracle_validation
 
namespace  paint_util
 
namespace  palette_internal
 
namespace  palette_utility
 Utility functions for palette operations across editors.
 
namespace  PopupID
 
namespace  ResourcePanelLimits
 
namespace  snapping
 
namespace  sprite_authoring
 
namespace  sprite_behavior
 
namespace  sprite_graphics_context
 
namespace  tool_mode_names
 
namespace  usage_preview
 
namespace  workbench
 
namespace  workflow
 
namespace  workflow_mode_names
 
namespace  zsprite
 Namespace for the ZSprite format from Zarby's ZSpriteMaker.
 

Classes

class  AboutPanel
 
class  ActivityBar
 
class  AgentAutomationPanel
 
class  AgentBotProfilesPanel
 WindowContent for Bot Profiles panel. More...
 
class  AgentBuilderPanel
 WindowContent for Agent Builder panel. More...
 
class  AgentChat
 Unified Agent Chat Component. More...
 
class  AgentChatHistoryCodec
 
class  AgentChatHistoryPanel
 WindowContent for Chat History panel. More...
 
class  AgentChatPanel
 WindowContent for Agent Chat panel. More...
 
class  AgentCollaborationCoordinator
 
class  AgentConfigPanel
 
struct  AgentConfigState
 Agent configuration state. More...
 
class  AgentConfigurationPanel
 WindowContent for AI Configuration panel. More...
 
class  AgentEditor
 Comprehensive AI Agent Platform & Bot Creator. More...
 
class  AgentKnowledgeBasePanel
 WindowContent for Knowledge Base panel. More...
 
class  AgentKnowledgePanel
 Panel for viewing/editing learned knowledge patterns. More...
 
class  AgentMesenDebugPanel
 WindowContent for Mesen2 debug integration. More...
 
class  AgentPromptEditorPanel
 WindowContent for Prompt Editor panel. More...
 
class  AgentProposalsPanel
 Compact proposal management panel for agent sidebar. More...
 
class  AgentRomSyncPanel
 
struct  AgentSession
 Represents a single agent session with its own chat history and config. More...
 
class  AgentSessionManager
 Manages multiple agent sessions with dual-view support. More...
 
class  AgentStatusPanel
 WindowContent for Agent Status panel. More...
 
class  AgentUIContext
 Unified context for agent UI components. More...
 
class  AgentUiController
 Central coordinator for all agent UI components. More...
 
struct  AgentUITheme
 Centralized theme colors for Agent UI components. More...
 
class  AgentZ3EDCommandPanel
 
struct  AnnotationEntry
 A room-level annotation entry. More...
 
class  AnnotationOverlayPanel
 Room-level annotation management for Oracle projects. More...
 
class  AreaGraphicsPanel
 Displays the current area's GFX sheet for preview. More...
 
class  AsmFollowService
 Service that synchronizes Mesen's Program Counter with ASM source files. More...
 
struct  AsmSymbolLocation
 
class  AssemblyBuildOutputPanel
 Build output / errors panel. More...
 
class  AssemblyCodeEditorPanel
 Main code editor panel with text editing. More...
 
class  AssemblyDisassemblyPanel
 Read-only disassembly browser panel. More...
 
class  AssemblyEditor
 Text editor for modifying assembly code. More...
 
class  AssemblyFileBrowserPanel
 File browser panel for navigating project files. More...
 
class  AssemblySymbolsPanel
 Symbol table viewer panel. More...
 
class  AssemblyToolbarPanel
 Toolbar panel with quick actions. More...
 
struct  AutomationCallbacks
 Callbacks for automation operations. More...
 
struct  AutomationState
 State for automation/test harness integration. More...
 
struct  AutomationTelemetry
 Telemetry from automation/test harness. More...
 
class  BackgroundCommandTask
 
class  BaseEntityHandler
 Abstract base class for entity interaction handlers. More...
 
struct  CanvasNavigationCallbacks
 Callbacks for operations that remain in the OverworldEditor. More...
 
struct  CanvasNavigationContext
 Shared state pointers that the navigation manager reads/writes. More...
 
class  CanvasNavigationManager
 
struct  ChatCallbacks
 Callbacks for chat operations. More...
 
struct  ChatState
 State for chat UI and history. More...
 
struct  ClipboardPaste
 A clipboard PNG mapped onto a sheet's colors. More...
 
struct  CollaborationCallbacks
 Callbacks for collaboration operations. More...
 
struct  CollaborationState
 State for collaborative editing sessions. More...
 
struct  ColorChange
 Represents a single color change for undo/redo. More...
 
struct  CommandCategory
 Categories for command palette entries. More...
 
struct  CommandEntry
 
class  CommandManager
 
struct  CommandMatch
 A search hit: the (deduplicated) entry plus the score it matched with. More...
 
class  CommandPalette
 
class  CommandProvider
 Plug-in command source for the palette. More...
 
struct  CoreDependencies
 
class  CrumbleFloorModel
 
class  CrumbleFloorView
 
class  CustomCollisionPanel
 
class  CustomPalettePanel
 
class  CustomSpriteEditorPanel
 WindowContent for Custom Sprite Editor (ZSM format) More...
 
class  CutsceneCameraPanel
 
class  DashboardPanel
 
class  DebugWindowCard
 
class  DebugWindowPanel
 Displays debug information for the Overworld Editor. More...
 
struct  DiagnosticsPanelCallbacks
 
struct  DictionaryEntry
 
class  DictionaryPanel
 WindowContent for Dictionary. More...
 
class  DoorEditorContent
 
class  DoorInteractionHandler
 Handles door placement and interaction in the dungeon editor. More...
 
struct  DrawerCatalogEntry
 One entry in the shared right-drawer catalog (header / overflow / View). More...
 
class  DrawerCommandsProvider
 ID: "drawers". Right-drawer toggles with "drawer: " prefix for discovery. More...
 
class  DungeonCanvasTransform
 
class  DungeonCanvasViewer
 
struct  DungeonChestEditorState
 
struct  DungeonConnectedRoomLink
 
struct  DungeonConnectedRoomLinkDiagnostics
 
struct  DungeonConnectionEditorState
 
struct  DungeonConnectionPlan
 
struct  DungeonConnectionRequest
 
class  DungeonCustomCollisionAction
 
class  DungeonCustomCollisionBatchAction
 
struct  DungeonCustomCollisionSnapshot
 
class  DungeonEditorV2
 DungeonEditorV2 - Simplified dungeon editor using component delegation. More...
 
class  DungeonEntitiesAction
 
struct  DungeonEntitySnapshot
 
struct  DungeonEntranceCameraDerived
 
struct  DungeonEntranceCameraState
 
struct  DungeonEntranceCameraValidation
 
class  DungeonEntrancesPanel
 WindowContent for displaying and editing dungeon entrances. More...
 
struct  DungeonIssueLogEntry
 
struct  DungeonIssueReportPaths
 
class  DungeonMainPalettePanel
 Dungeon Main palette group panel. More...
 
class  DungeonMapPanel
 WindowContent for displaying multiple rooms in a spatial dungeon layout. More...
 
struct  DungeonMapSnapshot
 Snapshot of dungeon map editing state for undo/redo. More...
 
class  DungeonMapsPanel
 EditorPanel for Dungeon Maps Editor. More...
 
class  DungeonObjectInteraction
 Handles object selection, placement, and interaction within the dungeon canvas. More...
 
struct  DungeonObjectPreviewFit
 
class  DungeonObjectsAction
 Undoable action for dungeon room object edits. More...
 
class  DungeonObjectSelector
 Handles object selection, preview, and editing UI. More...
 
struct  DungeonObjectSelectorGridLayout
 
struct  DungeonOverlayControlSpec
 
struct  DungeonProposalOverlay
 
struct  DungeonRenderContext
 
struct  DungeonRenderEntranceCandidate
 
class  DungeonRenderingHelpers
 
class  DungeonRoomCommandsProvider
 ID: "dungeon-rooms". One-shot; only depends on the session id. More...
 
struct  DungeonRoomDocument
 
class  DungeonRoomLoader
 Manages loading and saving of dungeon room data. More...
 
class  DungeonRoomNavWidget
 
class  DungeonRoomSelector
 Handles room and entrance selection UI. More...
 
class  DungeonRoomStore
 
struct  DungeonRoomTransferEditorState
 
struct  DungeonRoomTransferOptions
 
struct  DungeonRoomTransferPlan
 
struct  DungeonSelectionClipboard
 
struct  DungeonSelectionEditPlan
 
struct  DungeonSelectionEditRequest
 
struct  DungeonSelectionEditState
 
struct  DungeonSelectionSnapshot
 
struct  DungeonSpriteSnapshot
 
struct  DungeonStaircaseIssue
 
class  DungeonStatusBar
 
struct  DungeonStatusBarState
 
class  DungeonToolset
 Handles the dungeon editor toolset UI. More...
 
class  DungeonUsageTracker
 Tracks and analyzes usage statistics for dungeon resources. More...
 
class  DungeonWaterFillAction
 
class  DungeonWorkbenchContent
 
struct  DungeonWorkbenchLayoutState
 
struct  DungeonWorkbenchPaneLayout
 
struct  DungeonWorkbenchPitDamageControlRects
 
struct  DungeonWorkbenchResponsiveLayout
 
struct  DungeonWorkbenchTestRect
 
class  DungeonWorkbenchToolbar
 
struct  DungeonWorkbenchToolbarParams
 
class  Editor
 Interface for editor classes. More...
 
class  EditorActivator
 Handles editor switching, layout initialization, and jump-to navigation. More...
 
class  EditorCommandsProvider
 ID: "editors". Rebuilds on editor-registry changes (rare). More...
 
struct  EditorContext
 Lightweight view into the essential runtime context (Rom + GameData) More...
 
struct  EditorContextAction
 
struct  EditorContextDiagnostic
 
struct  EditorContextSnapshot
 
struct  EditorContextValue
 
struct  EditorDependencies
 Unified dependency container for all editor types. More...
 
struct  EditorExperimentContext
 
struct  EditorExperimentPolicy
 
struct  EditorInfo
 Metadata about an available editor. More...
 
class  EditorManager
 The EditorManager controls the main editor window and manages the various editor classes. More...
 
class  EditorRegistry
 Manages editor types, categories, and lifecycle. More...
 
class  EditorSelectionDialog
 Beautiful grid-based editor selection dialog. More...
 
class  EditorSet
 Contains a complete set of editors for a single ROM instance. More...
 
struct  EditorSwitchedEvent
 Published when the active editor changes. More...
 
class  EntityMutationService
 Editor-level service responsible for overworld entity mutations. More...
 
class  EquipmentPalettePanel
 Equipment/Armor palette group panel. More...
 
class  ExtensionManager
 
class  FeatureFlagEditorEditorPanel
 WindowContent for Feature Flag Editor. More...
 
class  FeatureFlagEditorPanel
 Panel for viewing and toggling ASM feature flags from the hack manifest. More...
 
struct  FeatureHintDefinition
 
class  FeatureHintManager
 Show-once feature tips backed by ToastManager + UserSettings. More...
 
class  FileBrowser
 File system browser for the sidebar. More...
 
struct  FileEntry
 Represents a file or folder in the file browser. More...
 
struct  FolderItem
 
class  FontAtlasPanel
 WindowContent for Font Atlas. More...
 
struct  FrameBeginEvent
 Published at the beginning of each frame (pre-ImGui). More...
 
struct  FrameEndEvent
 Published at the end of each frame. More...
 
struct  FrameGuiBeginEvent
 Published after ImGui::NewFrame and dockspace creation. More...
 
struct  GameCaptureManifest
 
class  GfxGroupEditor
 Manage graphics group configurations in a Rom. More...
 
class  GfxGroupsPanel
 Graphics group configuration editor. More...
 
struct  GfxGroupWorkspaceState
 Per-ROM-session UI state shared by all GfxGroupEditor surfaces. More...
 
class  GitignoreParser
 Simple .gitignore pattern matcher. More...
 
class  GlobalEditorContext
 Instance-based runtime context replacing ContentRegistry::Context. More...
 
struct  GotoQuery
 
struct  GraphicsEditContext
 
class  GraphicsEditor
 Allows the user to edit graphics sheets from the game or view prototype graphics. More...
 
class  GraphicsEditorState
 Shared state between GraphicsEditor panel components. More...
 
struct  GraphicsEditTarget
 
class  GraphicsGfxGroupPanel
 Graphics group editor panel for managing GFX groups. More...
 
class  GraphicsLinkSpritePanel
 Link sprite editor panel for editing Link's graphics. More...
 
struct  GraphicsPaletteAddressing
 
class  GraphicsPaletteControlsPanel
 Palette controls panel for managing graphics palettes. More...
 
struct  GraphicsPalettePreview
 
struct  GraphicsPaletteSelection
 
class  GraphicsPalettesetPanel
 Paletteset editor panel for managing dungeon palette associations. More...
 
class  GraphicsPixelEditAction
 Undoable pixel edit on one graphics sheet. More...
 
class  GraphicsPixelEditorPanel
 Main pixel editing panel for graphics sheets. More...
 
class  GraphicsPolyhedralPanel
 3D polyhedral object editor panel More...
 
class  GraphicsPrototypeViewerPanel
 Prototype graphics viewer for Super Donkey and dev format imports. More...
 
struct  GraphicsSavePlanEntry
 
class  GraphicsSheetBrowserPanel
 Sheet browser panel for navigating graphics sheets. More...
 
class  GraphicsUsagePreviewPanel
 Live preview of how the game uses the current sheet (room, sprite animation, tile16s), updated from unsaved pixel edits. More...
 
class  IEditorSwitcher
 Interface for editor selection and navigation. More...
 
struct  InteractionContext
 Shared context for all interaction handlers. More...
 
class  InteractionCoordinator
 Coordinates interaction mode switching and dispatches to handlers. More...
 
class  InteractionModeManager
 Manages interaction mode state and transitions. More...
 
class  InventoryMenuPanel
 EditorPanel for Inventory Menu Editor. More...
 
class  ISessionConfigurator
 Interface for session configuration. More...
 
class  ItemEditorPanel
 WindowContent for placing and managing dungeon pot items. More...
 
class  ItemInteractionHandler
 Handles pot item placement and interaction in the dungeon editor. More...
 
struct  JumpToAssemblySymbolRequestEvent
 Request to navigate to an assembly symbol definition. More...
 
struct  JumpToMapRequestEvent
 Request to navigate to a specific overworld map. More...
 
struct  JumpToMessageRequestEvent
 Request to navigate to a specific message ID. More...
 
struct  JumpToRoomRequestEvent
 Request to navigate to a specific dungeon room. More...
 
struct  KnowledgeState
 State for learned knowledge management (CLI integration) More...
 
class  LayoutCommandsProvider
 ID: "layouts". layout: / Apply Layout / profile commands. More...
 
class  LayoutCoordinator
 Facade class that coordinates all layout-related operations. More...
 
class  LayoutManager
 Manages ImGui DockBuilder layouts for each editor type. More...
 
class  LayoutOrchestrator
 Coordinates between LayoutManager, WorkspaceWindowManager, and LayoutPresets. More...
 
class  LayoutPresets
 Centralized definition of default layouts per editor. More...
 
struct  LayoutProfile
 Built-in workflow-oriented layout profiles. More...
 
class  LinkSpritePanel
 Dedicated panel for editing Link's 14 graphics sheets. More...
 
class  ManifestEditorPanel
 WindowContent for Hack Manifest Status + Protected Regions Inspector. More...
 
class  ManifestPanel
 Panel for manifest freshness UX and protected regions inspection. More...
 
struct  MapBrushPreview
 
struct  MapClickInput
 One frame of canvas mouse input, reduced to what map selection needs. More...
 
class  MapPropertiesPanel
 Displays and edits properties for the current overworld map. More...
 
class  MapPropertiesSystem
 
struct  MapRefreshContext
 Context struct holding all data dependencies for map refresh operations. All pointers/references must remain valid for the lifetime of the MapRefreshCoordinator. More...
 
class  MapRefreshCoordinator
 
struct  MapTextureContext
 
class  MemoryEditor
 
class  MenuBuilder
 Fluent interface for building ImGui menus with icons. More...
 
class  MenuOrchestrator
 Handles all menu building and UI coordination logic. More...
 
class  MenuTilemapEditorUI
 Self-contained ImGui UI for editing a single Oracle-of-Secrets- style 2bpp BG3 menu tilemap file, with a live preview rendered from real CHR + palette sources. More...
 
class  MenuTilemapPanel
 EditorPanel for the Menu Tilemap (2bpp) Editor. More...
 
struct  MenuTilemapSnapshot
 Snapshot of a Menu Tilemap document's raw bytes for undo/redo. More...
 
class  MesenDebugPanel
 ImGui panel for Mesen2-OoS debugging integration. More...
 
class  MesenScreenshotEditorPanel
 WindowContent for Mesen2 live screenshot preview. More...
 
class  MesenScreenshotPanel
 ImGui panel that streams live screenshots from a running Mesen2 emulator via socket and displays them as a GPU texture preview. More...
 
struct  MessageBundleEntry
 
struct  MessageData
 
class  MessageEditAction
 Undoable action for message text edits. More...
 
class  MessageEditor
 
class  MessageEditorPanel
 WindowContent for Message Editor. More...
 
class  MessageListPanel
 WindowContent for Message List. More...
 
struct  MessageParseResult
 
struct  MessagePreview
 
struct  MessageSnapshot
 
struct  MessageSourceSnapshot
 
struct  MessageSourceSyncOptions
 
struct  MessageSourceSyncResult
 
struct  MinecartCanvasBinding
 
class  MinecartCanvasTool
 
struct  MinecartCollisionStamp
 
class  MinecartCollisionTool
 
struct  MinecartTrack
 
class  MinecartTrackEditorPanel
 
class  MinecartTrackSourceDocument
 
struct  MinecartTrackSourceTokenSpan
 
struct  ModelCache
 Cached model list + UI helpers. More...
 
struct  ModelPreset
 Model preset for quick switching. More...
 
struct  ModeState
 Mode-specific state data. More...
 
struct  MoreAction
 
class  MoreActionsRegistry
 
struct  MultimodalCallbacks
 Callbacks for multimodal/vision operations. More...
 
struct  MultimodalState
 State for multimodal/vision features. More...
 
class  MusicAssemblyPanel
 WindowContent wrapper for the assembly editor view in Music context. More...
 
class  MusicAudioDebugPanel
 WindowContent providing audio diagnostics for debugging the music editor. More...
 
class  MusicEditor
 A class for editing music data in a Rom. More...
 
class  MusicHelpPanel
 WindowContent providing help documentation for the Music Editor. More...
 
class  MusicInstrumentEditorPanel
 WindowContent wrapper for the instrument editor. More...
 
class  MusicPianoRollPanel
 WindowContent wrapper for the piano roll view. More...
 
class  MusicPlaybackControlPanel
 WindowContent for music playback controls and status display. More...
 
class  MusicSampleEditorPanel
 WindowContent wrapper for the sample editor. More...
 
class  MusicSongBrowserPanel
 WindowContent wrapper for the music song browser. More...
 
class  MusicSongEditAction
 Undoable action for edits to a music song. More...
 
class  NamingScreenPanel
 EditorPanel for Naming Screen Editor. More...
 
class  NewProjectDialog
 
struct  NotificationEntry
 Entry in the notification history with timestamp. More...
 
class  ObjectAutoCheckResults
 
class  ObjectCoveragePanel
 Checklist for proving each dungeon object draws like the game. More...
 
struct  ObjectCustomDrawCode
 
struct  ObjectEvidence
 
class  ObjectEvidenceStore
 
struct  ObjectOccurrence
 
class  ObjectSelection
 Manages object selection state and operations for the dungeon editor. More...
 
class  ObjectSelectorContent
 Browse and place dungeon objects. More...
 
class  ObjectTileEditorPanel
 Panel for editing the tile8 composition of dungeon objects. More...
 
class  ObjectUsageIndex
 
class  OracleHackWorkflowBackend
 
class  OracleMenuInspectorPanel
 
class  OracleRamPanel
 Panel for live monitoring of Oracle of Secrets RAM variables. More...
 
class  OracleStateLibraryEditorPanel
 WindowContent for Oracle State Library management. More...
 
class  OracleStateLibraryPanel
 ImGui panel for Oracle of Secrets save state library management. More...
 
class  OracleValidationPanel
 
class  OverlayManagerPanel
 
class  OverworldAnimatedPalettePanel
 Overworld Animated palette group panel. More...
 
class  OverworldCanvasRenderer
 Handles all canvas drawing and panel rendering for the overworld editor. More...
 
class  OverworldCanvasView
 WindowContent wrapper for the main overworld canvas. More...
 
struct  OverworldCommandSink
 Sink for high-level commands emitted by the interaction coordinator. More...
 
struct  OverworldContextTarget
 
class  OverworldEditor
 Main UI class for editing overworld maps in A Link to the Past. More...
 
struct  OverworldEntityEditingTarget
 
struct  OverworldEntityInsertionRequest
 
class  OverworldEntityRenderer
 Handles visualization of all overworld entities (entrances, exits, items, sprites) More...
 
class  OverworldEntityWorkbench
 Authoritative component for entity editing state and UI. More...
 
class  OverworldInteractionCoordinator
 Translates raw user input into high-level Overworld commands. More...
 
class  OverworldItemListPanel
 Filterable list view for overworld items with quick selection/actions. More...
 
class  OverworldItemsEditAction
 Undoable action for overworld item mutations. More...
 
struct  OverworldItemsSnapshot
 Snapshot of overworld item list + current item selection. More...
 
class  OverworldMainPalettePanel
 Overworld Main palette group panel. More...
 
class  OverworldMapCommandsProvider
 ID: "overworld-maps". One command per map 0x00-0x9F (JumpToMapRequest). More...
 
struct  OverworldMapMetadata
 
struct  OverworldMapMetadataClipboard
 
class  OverworldMapPropertyBatchEditAction
 
class  OverworldMapPropertyEditAction
 
class  OverworldMapScreenPanel
 EditorPanel for Overworld Map Screen Editor. More...
 
class  OverworldMapTextureCoordinator
 
struct  OverworldPanelIds
 Panel IDs for overworld editor panels. More...
 
class  OverworldProjectLabelEditAction
 
struct  OverworldPropertyEdit
 
class  OverworldSidebar
 Map properties and canvas appearance controls share the same edit path. More...
 
struct  OverworldTileChange
 A single tile coordinate + old/new value pair for undo/redo. More...
 
class  OverworldTilePaintAction
 Undoable action for painting tiles on the overworld map. More...
 
class  OverworldToolbar
 
struct  PaletteCategoryInfo
 Information about a palette category for UI rendering. More...
 
class  PaletteControlPanel
 
class  PaletteControlsPanel
 Panel for managing palettes applied to graphics sheets. More...
 
class  PaletteEditor
 Allows the user to view and edit in game palettes. More...
 
class  PaletteEditorContent
 WindowContent wrapper for PaletteEditorWidget in dungeon context. More...
 
struct  PaletteGroupMetadata
 Metadata for an entire palette group. More...
 
class  PaletteGroupPanel
 Base class for palette group editing cards. More...
 
struct  PaletteMetadata
 Metadata for a single palette in a group. More...
 
struct  PalettePixelPlan
 
class  PaletteReorderControl
 
class  PalettesetEditorPanel
 Dedicated panel for editing dungeon palette sets. More...
 
struct  PanelAdmissionEntry
 
struct  PanelAdmissionFinding
 One audit failure. fix tells the panel author what to change. More...
 
class  PanelCommandsProvider
 ID: "panels". Rebuilds when the set of open windows/panels changes. More...
 
struct  PanelLayoutPreset
 Defines default panel visibility for an editor type. More...
 
struct  PanelToggleEvent
 
struct  PanelVisibilityChangedEvent
 Published when panel visibility changes. More...
 
struct  ParsedElement
 
struct  PersonaProfile
 User persona profile for personalized AI behavior. More...
 
struct  PitDamageMembershipState
 
class  PixelEditorPanel
 Main pixel editing panel for graphics sheets. More...
 
struct  PixelSelection
 Selection data for copy/paste operations. More...
 
struct  PlacementAutoResult
 
class  PlanningEditor
 
struct  PolyFace
 
class  PolyhedralEditorPanel
 
struct  PolyShape
 
struct  PolyVertex
 
struct  PopupDefinition
 Complete definition of a popup including metadata. More...
 
class  PopupManager
 
struct  PopupParams
 Runtime state for a registered popup. More...
 
class  ProgressionDashboardPanel
 Visual dashboard of Oracle game state from SRAM data. More...
 
class  ProjectFileEditor
 Editor for .yaze project files with syntax highlighting and validation. More...
 
struct  ProjectFileEditorState
 
class  ProjectManagementPanel
 Panel for managing project settings, ROM versions, and snapshots. More...
 
class  ProjectManager
 Handles all project file operations with ROM-first workflow. More...
 
struct  ProjectWorkflowHistoryEntry
 
struct  ProjectWorkflowStatus
 
struct  ProposalCallbacks
 Callbacks for proposal operations. More...
 
class  ProposalDrawer
 ImGui drawer for displaying and managing agent proposals. More...
 
struct  ProposalLayer
 
struct  ProposalPixelRect
 
struct  ProposalRoom
 
struct  ProposalShape
 
struct  ProposalState
 State for proposal management. More...
 
struct  ProposalTile
 
class  QuickAccessPalettePanel
 
struct  RecentFileMenuEntry
 
class  RecentFilesCommandsProvider
 ID: "recent-files". Refresh after RecentFilesManager mutates. More...
 
struct  RecentProject
 
class  RecentProjectsModel
 
struct  RegionSelectionState
 Region selection state for screenshot cropping. More...
 
struct  ReleaseFocusGroup
 
struct  ResolvedMessageId
 
class  ResourceWindowContent
 Base class for windows that edit specific ROM resources. More...
 
class  RightDrawerManager
 Manages right-side sliding drawers for agent chat, proposals, settings. More...
 
struct  RomBaselineIdentity
 
class  RomFileManager
 Handles all ROM file I/O operations. More...
 
class  RomLifecycleManager
 Manages ROM and project persistence state. More...
 
struct  RomLoadedEvent
 Published when a ROM is successfully loaded into a session. More...
 
class  RomLoadOptionsDialog
 ROM load options and ZSCustomOverworld upgrade dialog. More...
 
struct  RomModifiedEvent
 Published when ROM data is modified. More...
 
struct  RomSession
 Represents a single session, containing a ROM and its associated editors. More...
 
struct  RomSyncCallbacks
 Callbacks for ROM sync operations. More...
 
struct  RomSyncState
 State for ROM synchronization. More...
 
struct  RomUnloadedEvent
 Published when a ROM is unloaded from a session. More...
 
class  RoomBrowserContent
 WindowContent for room list selection. More...
 
class  RoomCompositeOutput
 
class  RoomGraphicsContent
 WindowContent for displaying room graphics blocks. More...
 
class  RoomMatrixCensusOverlay
 "Census" overlay for the Room Matrix. More...
 
class  RoomMatrixContent
 WindowContent for displaying a visual 16x19 grid of all dungeon rooms. More...
 
struct  RoomMetadataEdit
 
struct  RoomMetadataRequest
 
class  RoomTagEditorPanel
 WindowContent showing all room tag slots and their usage across rooms. More...
 
class  ScratchSpacePanel
 Provides a scratch workspace for layout planning and clipboard operations. More...
 
class  ScreenEditAction
 Undoable action for screen editor edits. More...
 
class  ScreenEditor
 The ScreenEditor class allows the user to edit a variety of screens in the game or create a custom menu. More...
 
struct  ScreenshotPreviewState
 Preview state for captured screenshots. More...
 
struct  ScreenSnapshot
 Unified screen editor snapshot. More...
 
struct  SelectedEntity
 Represents a selected entity in the dungeon editor. More...
 
struct  SelectionChangedEvent
 Published when selection changes in any editor. More...
 
struct  SelectionContext
 Holds information about the current selection. More...
 
class  SelectionPropertiesPanel
 Full-editing properties panel for selected entities. More...
 
struct  SessionClosedEvent
 Published when a session is closed. More...
 
class  SessionCoordinator
 High-level orchestrator for multi-session UI. More...
 
struct  SessionCreatedEvent
 Published when a new session is created. More...
 
struct  SessionSwitchedEvent
 Published when the active session changes. More...
 
class  SettingsPanel
 Manages the settings UI displayed in the right sidebar. More...
 
struct  SharedClipboard
 
class  SheetBrowserPanel
 WindowContent for browsing and selecting graphics sheets. More...
 
struct  SheetPixelDiff
 The pixels one undo step changes in one sheet. More...
 
struct  SheetPngImportPreview
 One sheet's pixels after an import, and what changed. More...
 
struct  Shortcut
 
class  ShortcutCommandsProvider
 
struct  ShortcutDependencies
 
class  ShortcutManager
 
class  SidebarCommandsProvider
 
struct  SidebarStateChangedEvent
 Sidebar visibility state change notification. More...
 
class  SpriteCatalogPanel
 
class  SpriteDrawer
 Draws sprite OAM tiles to bitmaps for preview rendering. More...
 
class  SpriteEditAction
 Undoable action for edits to a custom ZSprite. More...
 
class  SpriteEditor
 Allows the user to edit sprites. More...
 
class  SpriteEditorPanel
 WindowContent for placing and managing dungeon sprites. More...
 
class  SpriteInteractionHandler
 Handles sprite placement and interaction in the dungeon editor. More...
 
struct  SpriteItem
 
class  SpritePalettePanel
 Global Sprite palette group panel. More...
 
class  SpritesAux1PalettePanel
 Sprites Aux1 palette group panel. More...
 
class  SpritesAux2PalettePanel
 Sprites Aux2 palette group panel. More...
 
class  SpritesAux3PalettePanel
 Sprites Aux3 palette group panel. More...
 
struct  SpriteSnapshot
 Snapshot of a custom ZSprite's editable state for undo/redo. More...
 
class  SramViewerEditorPanel
 WindowContent for SRAM Variable Viewer. More...
 
class  SramViewerPanel
 Panel for viewing Oracle of Secrets SRAM variables via Mesen2. More...
 
struct  StateEntry
 State entry from the Oracle save state library. More...
 
class  StatusBar
 A session-aware status bar displayed at the bottom of the application. More...
 
struct  StatusBarSegmentOptions
 Optional behavior for an interactive status bar segment. More...
 
struct  StatusUpdateEvent
 
struct  StickyWheelPan
 
class  StoryEventGraphPanel
 Interactive node graph of Oracle narrative progression. More...
 
struct  TextElement
 
struct  Tile16ActionControlState
 
struct  Tile16ClipboardData
 
struct  Tile16Commit
 
struct  Tile16CompSnapshot
 Snapshot of tile16 composition state for undo/redo. More...
 
class  Tile16EditAction
 Undoable action for edits to a single Tile16. More...
 
class  Tile16Editor
 ImGui façade for Tile16 editing; domain state lives in Tile16EditSession. More...
 
class  Tile16EditorView
 WindowContent wrapper for Tile16Editor. More...
 
class  Tile16EditSession
 Domain session for Tile16 editing (no ImGui). More...
 
struct  Tile16LayoutScratch
 
struct  Tile16LocalPos
 
struct  Tile16NumericShortcutResult
 
struct  Tile16ScratchData
 
class  Tile16SelectorView
 Displays the Tile16 palette for painting tiles on the overworld. More...
 
struct  Tile16Snapshot
 Snapshot of a Tile16's editable state for undo/redo. More...
 
class  Tile8SelectorView
 Low-level 8x8 tile editing interface. More...
 
struct  TileBrush
 
struct  TileHighlight
 Transient highlight for focusing a tile in the pixel editor. More...
 
class  TileObjectHandler
 Handles functional mutations and queries for tile objects. More...
 
struct  TilePaintingCallbacks
 Callbacks for undo integration and map refresh. More...
 
struct  TilePaintingDependencies
 Shared state for the tile painting system. More...
 
class  TilePaintingManager
 Manages tile painting, fill, selection, and eyedropper operations. More...
 
class  TitleScreenPanel
 EditorPanel for Title Screen Editor. More...
 
struct  Toast
 
class  ToastManager
 
struct  ToolConfig
 Tool enablement configuration. More...
 
struct  ToolExecutionEntry
 Single tool execution entry for timeline display. More...
 
struct  ToolExecutionState
 State for tool execution timeline display. More...
 
struct  TrackDirectionMasks
 
struct  TypedWindowContext
 
struct  UIActionRequestEvent
 Activity bar or menu action request. More...
 
class  UICoordinator
 Handles all UI drawing operations and state management. More...
 
struct  UIDependencies
 
class  UndoAction
 Abstract base for all undoable actions (Command pattern) More...
 
class  UndoManager
 Manages undo/redo stacks for a single editor. More...
 
class  UsagePreviewView
 Shows how the game uses the current graphics sheet while it is edited: a room that loads it, a sprite animation drawn from it, and the tile16s that use the selected 8x8 tile. More...
 
class  UsageStatisticsCard
 
class  UsageStatisticsPanel
 Displays tile usage statistics across all overworld maps. More...
 
class  UserSettings
 Manages user preferences and settings persistence. More...
 
class  V3SettingsPanel
 ZSCustomOverworld configuration settings. More...
 
class  VanillaMessageSavePlan
 
class  VanillaMessageWrite
 
class  VanillaSpriteEditorPanel
 WindowContent for Vanilla Sprite Editor. More...
 
class  WaterFillPanel
 
struct  WaterFillSnapshot
 
class  WelcomeCommandsProvider
 
class  WelcomeScreen
 Modern welcome screen with project grid and quick actions. More...
 
class  WindowBrowser
 
class  WindowContent
 Base interface for all logical window content components. More...
 
struct  WindowDefinition
 Declarative registration contract for editor windows. More...
 
class  WindowDelegate
 Low-level window operations with minimal dependencies. More...
 
struct  WindowDescriptor
 Metadata for a dockable editor window (formerly PanelInfo) More...
 
class  WindowHost
 Thin host API over WorkspaceWindowManager for declarative window workflows. More...
 
struct  WindowPresentationPolicy
 
class  WindowSidebar
 
class  WorkflowCommandsProvider
 ID: "workflow". Refresh when workflow actions change. More...
 
class  WorkspaceManager
 Manages workspace layouts, sessions, and presets. More...
 
class  WorkspaceWindowManager
 Central registry for all editor cards with session awareness and dependency injection. More...
 
struct  Z3EDCommandCallbacks
 Callbacks for Z3ED command operations. More...
 
struct  Z3EDCommandState
 State for Z3ED command palette. More...
 
struct  ZoomChangedEvent
 Published when zoom level changes in any canvas/editor. More...
 

Typedefs

using MinecartCollisionApply
 
using DungeonWindowContext = TypedWindowContext<DungeonEditorV2>
 
using PalettePermutation = std::array<uint8_t, 8>
 
using SheetColors = std::array<std::array<uint8_t, 3>, 8>
 The 8 colors a 3bpp sheet shows (index 0 is transparent in game).
 
using WorkspaceLayoutPreset = PanelLayoutPreset
 
using RecentFileExistsFn = std::function<bool(const std::string&)>
 
using EntityType = zelda3::GameEntity::EntityType
 
using OverworldWindowContext = TypedWindowContext<OverworldEditor>
 
using EditorPanel = WindowContent
 
using PanelManager = WorkspaceWindowManager
 
using PanelDescriptor = WindowDescriptor
 
using PanelDefinition = WindowDefinition
 
using PanelHost = WindowHost
 

Enumerations

enum class  CollaborationMode { kLocal = 0 , kNetwork = 1 }
 Collaboration mode for multi-user sessions. More...
 
enum class  CaptureMode { kFullWindow = 0 , kActiveEditor = 1 , kSpecificWindow = 2 , kRegionSelect = 3 }
 Screenshot capture mode. More...
 
enum class  ChainMode { kDisabled = 0 , kRoundRobin = 1 , kConsensus = 2 }
 Model chain mode for multi-model responses. More...
 
enum class  DungeonConnectedLinkType : uint8_t { Door , Staircase , Holewarp }
 
enum class  DungeonStaircaseIssueKind : uint8_t { UnusedHeader , MissingDestination , ExtraPlacedObject }
 
enum class  DungeonIssueCategory : int {
  PaletteMismatch = 0 , ObjectDrawMismatch = 1 , DoorRenderMismatch = 2 , EntityMismatch = 3 ,
  OverlayCollisionMismatch = 4 , GeneralRoomRenderMismatch = 5
}
 
enum class  ObjectRenderMode { Manual , Emulator , Hybrid }
 Handles the main dungeon canvas rendering and interaction. More...
 
enum class  DungeonConnectionLayer { kUpper , kLower }
 
enum class  DungeonRoomNavigationDirection { kUp , kDown , kLeft , kRight }
 
enum class  DungeonEntranceRecordKind { kRegularEntrance , kSpawnPoint }
 
enum class  DungeonOverlayControlId {
  kGrid , kObjectBounds , kHoverCoordinates , kCameraQuadrants ,
  kTrackCollision , kCustomCollision , kWaterFillOracle , kMinecartPathing ,
  kTrackGaps , kTrackRoutes , kCustomObjects , kCrumbleFloor ,
  kChestContents
}
 
enum class  ProposalShapeType { kRect , kPath , kMarker , kRemove }
 
enum class  DungeonRenderContextSource {
  kSelectedEntrance , kDirectEntrance , kInferredOwnerEntrance , kRoomHeaderFallback ,
  kAmbiguous
}
 
enum class  TrackDir : uint8_t { North , East , South , West }
 
enum class  RoomMetadataField {
  kLayout , kBlockset , kFloor1 , kFloor2 ,
  kPalette , kSpriteset , kMessage , kBg2 ,
  kEffect , kCollision , kTag1 , kTag2 ,
  kHolewarp , kStaircaseRoom , kStaircasePlane , kPitPlane
}
 
enum class  RoomPropertyLayout { kCompact , kFull }
 
enum class  RoomSelectionIntent { kFocusInWorkbench , kOpenStandalone , kPreview }
 Intent for room selection in the dungeon editor. More...
 
enum class  DungeonSelectionEditKind { kDelete , kDuplicate , kMove , kPaste }
 
enum class  DungeonSelectionKind : uint8_t {
  None = 0 , ObjectSingle , ObjectMulti , Door ,
  Sprite , Item , EntityMulti , Mixed
}
 
enum class  PlacementCapacityState { kNormal = 0 , kNearLimit , kAtLimit }
 
enum class  EntityType {
  None , Object , Door , Sprite ,
  Item
}
 Type of entity that can be selected in the dungeon editor. More...
 
enum class  MutationDomain : uint8_t {
  kUnknown = 0 , kTileObjects , kDoors , kSprites ,
  kItems , kCustomCollision , kWaterFill
}
 Domain/type of mutation for undo + invalidation routing. More...
 
enum class  InteractionMode {
  Select , PlaceObject , PlaceDoor , PlaceSprite ,
  PlaceItem , DraggingObjects , DraggingEntity , RectangleSelect ,
  PaintCollision , PaintWaterFill
}
 Unified interaction mode for the dungeon editor. More...
 
enum class  ObjectEvidenceState {
  kUntriaged , kReproduced , kFixedAwaitingProof , kVerified ,
  kIntentionalPreviewLimit
}
 
enum class  CrumbleFloorCell { kOther , kIntact , kCracked , kPit }
 
enum class  DungeonWorkbenchToolRequestTarget : uint8_t { kEmbeddedInspector , kStandaloneWindow }
 
enum class  EditorType {
  kUnknown , kAssembly , kDungeon , kEmulator ,
  kGraphics , kMusic , kOverworld , kPalette ,
  kScreen , kSprite , kMessage , kHex ,
  kAgent , kSettings , kPlanning
}
 
enum class  EditorContextDiagnosticSeverity { kInfo , kWarning , kError }
 
enum class  EditorContextActionKind { kOpenWindow , kCommand }
 
enum class  PixelTool {
  kSelect , kLasso , kPencil , kBrush ,
  kEraser , kFill , kLine , kRectangle ,
  kEyedropper , kHand
}
 Pixel editing tool types for the graphics editor. More...
 
enum class  GraphicsPaletteSelectorLayout { kStacked , kInline }
 
enum class  ScreenEditType { kDungeonMap , kTile16Edit , kMenuTilemap }
 Which screen type the snapshot belongs to. More...
 
enum class  AnnotationPriority : int {
  kNote = 0 , kBug = 1 , kBlocker = 2 , kNote = 0 ,
  kBug = 1 , kBlocker = 2
}
 Annotation priority levels. More...
 
enum class  LayoutType {
  kDefault , kOverworld , kDungeon , kGraphics ,
  kPalette , kScreen , kMusic , kSprite ,
  kMessage , kAssembly , kSettings , kEmulator
}
 Predefined layout types for different editor workflows. More...
 
enum class  LayoutScope { kGlobal , kProject }
 Storage scope for saved layouts. More...
 
enum class  DockPosition {
  Center , Left , Right , Bottom ,
  Top , LeftBottom , RightBottom , RightTop ,
  LeftTop
}
 Preferred dock position for a card in a layout. More...
 
enum class  MessageBank { kVanilla , kExpanded }
 
enum class  MessageBankFilter { kAll = 0 , kVanilla = 1 , kExpanded = 2 }
 
enum class  AnnotationPriority : int {
  kNote = 0 , kBug = 1 , kBlocker = 2 , kNote = 0 ,
  kBug = 1 , kBlocker = 2
}
 Annotation priority levels. More...
 
enum  SpriteItemColumnID { SpriteItemColumnID_ID , SpriteItemColumnID_Name , SpriteItemColumnID_Description }
 Column IDs for the sprite table. More...
 
enum class  OverworldPropertyField {
  kAreaSize , kAreaGraphics , kAreaPalette , kMainPalette ,
  kSpriteGraphics , kSpritePalette , kAnimatedGraphics , kCustomTileset ,
  kMessageId , kMusic , kMosaic , kMosaicExpanded ,
  kAreaSpecificBgColor , kSubscreenOverlay
}
 
enum class  OverworldMapMetadataClipboardScope { kAll , kGraphics , kPalettes , kMusicMessages }
 
enum class  Tile16EditMode { kPaint = 0 , kPick = 1 , kUsageProbe = 2 }
 
enum class  EditingMode { MOUSE = 0 , DRAW_TILE = 1 , FILL_TILE = 2 }
 
enum class  EntityEditMode {
  NONE = 0 , ENTRANCES = 1 , EXITS = 2 , ITEMS = 3 ,
  SPRITES = 4 , TRANSPORTS = 5 , MUSIC = 6
}
 
enum class  PaletteCategory {
  kOverworld , kDungeon , kSprites , kEquipment ,
  kMiscellaneous
}
 Categories for organizing palette groups in the UI. More...
 
enum class  StartupSurface { kWelcome , kDashboard , kEditor }
 Represents the current startup surface state. More...
 
enum class  PopupType {
  kInfo , kHelp , kSettings , kFileOperation ,
  kConfirmation , kWarning , kEditor
}
 Type classification for popups to enable future filtering and organization. More...
 
enum class  ToastType { kInfo , kSuccess , kWarning , kError }
 
enum class  SelectionType {
  kNone , kDungeonRoom , kDungeonObject , kDungeonSprite ,
  kDungeonEntrance , kOverworldMap , kOverworldTile , kOverworldSprite ,
  kOverworldEntrance , kOverworldExit , kOverworldItem , kGraphicsSheet ,
  kPalette
}
 Types of entities that can be selected and edited. More...
 
enum class  GotoKind { kRoom , kOverworldMap , kMessage , kSprite }
 
enum class  ProjectWorkflowState { kIdle , kRunning , kSuccess , kFailure }
 
enum class  WindowLifecycle { EditorBound , CrossEditor }
 Defines lifecycle behavior for editor windows. More...
 
enum class  WindowContextScope : uint8_t { kNone = 0 , kRoom , kSelection }
 Optional context binding for a window's behavior within an editor. More...
 
enum class  WindowScope { kSession , kGlobal }
 Defines whether a window is session-scoped or global. More...
 
enum class  WindowPresentationRole : uint8_t { kCoreWorkspace , kEmbeddedTool , kOptionalPopOut , kDiagnostic }
 Product role for a registered workspace surface. More...
 
enum class  WindowDefaultHost : uint8_t { kWorkspace , kEmbedded }
 
enum class  ExperimentalSavePosture { kNormal , kDefensiveBackup , kReadOnly }
 

Functions

void ShowPatchExportDialog (Rom *rom)
 
void QuickExportBPS (Rom *rom)
 
void QuickExportIPS (Rom *rom)
 
void DrawDiagnosticsPanel (std::span< const core::AssemblyDiagnostic > diagnostics, const DiagnosticsPanelCallbacks &callbacks)
 
 REGISTER_PANEL (CutsceneCameraPanel)
 
DungeonConnectedRoomLinkDiagnostics CollectDungeonConnectedRoomLinkDiagnostics (int room_id, const zelda3::Room &room, const std::function< bool(int, zelda3::DoorDirection)> &has_reciprocal_door)
 
std::vector< DungeonConnectedRoomLink > CollectDungeonConnectedRoomLinks (int room_id, const zelda3::Room &room, const std::function< bool(int, zelda3::DoorDirection)> &has_reciprocal_door)
 
std::string FormatDungeonConnectedLinkDescription (const DungeonConnectedRoomLink &link)
 
std::string FormatDungeonStaircaseIssueDescription (const DungeonStaircaseIssue &issue)
 
void DrawDungeonRoomPropertyFields (DungeonCanvasViewer &viewer, zelda3::Room &room, int room_id, RoomPropertyLayout layout)
 
constexpr int ToIssueCategoryIndex (DungeonIssueCategory category)
 
const char * GetIssueCategoryLabel (int index)
 
DungeonIssueCategory GetDefaultSelectionIssueCategory (const DungeonObjectInteraction &object_interaction)
 
int NeighborRoomId (int room_id, zelda3::DoorDirection dir)
 
zelda3::DoorDirection OppositeDir (zelda3::DoorDirection dir)
 
bool SameDungeonDoors (const std::vector< Door > &first, const std::vector< Door > &second)
 
absl::StatusOr< int > DungeonConnectionTargetRoom (int source_room_id, const Door &door)
 
absl::StatusOr< DungeonConnectionPlan > PlanDungeonDoorConnection (const zelda3::Room &source, const zelda3::Room &target, const DungeonConnectionRequest &request)
 
absl::StatusOr< int > DungeonConnectionTargetRoom (int source_room_id, const zelda3::Room::Door &door)
 
bool SameDungeonDoors (const std::vector< zelda3::Room::Door > &first, const std::vector< zelda3::Room::Door > &second)
 
DungeonEntranceCameraDerived DeriveDungeonEntranceCamera (int room_id, uint16_t player_x, uint16_t player_y)
 
DungeonEntranceCameraValidation ValidateDungeonEntranceCamera (const DungeonEntranceCameraState &state)
 
DungeonEntranceCameraState BuildRepairedDungeonEntranceCamera (const DungeonEntranceCameraState &state)
 
DungeonEntranceCameraState CaptureDungeonEntranceCamera (const zelda3::RoomEntrance &entrance)
 
DungeonEntranceCameraState CaptureDungeonSpawnCamera (const zelda3::DungeonSpawnPoint &spawn)
 
void ApplyDungeonEntranceCameraState (const DungeonEntranceCameraState &state, zelda3::RoomEntrance *entrance)
 
void ApplyDungeonSpawnCameraState (const DungeonEntranceCameraState &state, zelda3::DungeonSpawnPoint *spawn)
 
bool CanEditDungeonEntrance (int slot_index, const zelda3::RoomEntrance &entrance)
 
bool MarkDungeonEntranceDirtyIfEditable (int slot_index, zelda3::RoomEntrance &entrance, bool properties_changed)
 
bool CanEditDungeonSpawnPoint (int slot_index, const zelda3::DungeonSpawnPoint &spawn)
 
bool MarkDungeonSpawnPointDirtyIfEditable (int slot_index, zelda3::DungeonSpawnPoint &spawn, bool properties_changed)
 
DungeonObjectSelectorGridLayout ResolveDungeonObjectSelectorGridLayout (float available_width, float preferred_item_size, float item_spacing, float min_item_size)
 
DungeonObjectPreviewFit ResolveDungeonObjectPreviewFit (float source_width, float source_height, float box_width, float box_height)
 
bool MatchesDungeonObjectStreamFilter (int object_id, int selected_filter)
 
bool IsDungeonCustomObjectRuntimeSlot (int object_id, int subtype)
 
bool IsMinecartGraphicsRuntimeSlot (int object_id, int subtype)
 
std::string GetDungeonCustomObjectSlotName (int object_id, int subtype)
 
const std::array< DungeonOverlayControlSpec, 13 > & GetDungeonOverlayControlSpecs ()
 
float DungeonLayerControlsWidth ()
 
void DrawDungeonLayerControls (DungeonCanvasViewer &viewer, int room_id, float height)
 
void DrawDungeonOverlayControls (DungeonCanvasViewer &viewer)
 
bool GetDungeonOverlayControlEnabled (const DungeonCanvasViewer &viewer, DungeonOverlayControlId id)
 
void SetDungeonOverlayControlEnabled (DungeonCanvasViewer &viewer, DungeonOverlayControlId id, bool enabled)
 
absl::StatusOr< uint32_t > ParseProposalColor (std::string_view text)
 
absl::StatusOr< DungeonProposalOverlay > ParseDungeonProposalOverlay (std::string_view json_text, int max_room_id)
 
ProposalPixelRect ProposalTileRectToPixels (ProposalTile a, ProposalTile b)
 
void ProposalTileCenter (ProposalTile tile, float *x, float *y)
 
float ProposalRoomOriginX (int index, float gap_pixels)
 
float ProposalDistanceToSegment (float px, float py, float ax, float ay, float bx, float by)
 
bool ProposalShapeHitTest (const ProposalShape &shape, float px, float py, float tolerance)
 
std::string DungeonEntrancePreviewLabel (int slot)
 
const char * DungeonRenderContextSourceName (DungeonRenderContextSource source)
 
const char * DungeonRenderContextSourceName (const DungeonRenderContext &context)
 
DungeonRenderContext ResolveDungeonRenderContext (int room_id, int selected_entrance_slot, uint8_t room_header_blockset, const zelda3::RoomCensus *census, std::span< const DungeonRenderEntranceCandidate > entrances, zelda3::RoomDefaultEntrance default_entrance, const core::DungeonEntry *project_dungeon)
 
gfx::Bitmap & PrepareCanonicalRoomComposite (zelda3::Room &room, RoomCompositeOutput &output)
 
absl::StatusOr< std::string > ReadDungeonRoomDocumentFile (const std::string &path)
 
absl::Status WriteDungeonRoomDocumentFile (const std::string &path, const std::string &json)
 
absl::Status ValidateRoomMetadataEdit (const RoomMetadataEdit &edit)
 
absl::Status ApplyRoomMetadataEdit (zelda3::Room &room, const RoomMetadataEdit &edit)
 
DungeonRoomDocument CaptureDungeonRoomDocument (const zelda3::Room &room)
 
bool SameDungeonRoomDocument (const DungeonRoomDocument &a, const DungeonRoomDocument &b)
 
absl::Status ValidateDungeonRoomDocument (const DungeonRoomDocument &document)
 
absl::Status ValidateDungeonRoomDocumentForInterchange (const DungeonRoomDocument &document)
 
absl::StatusOr< DungeonRoomTransferPlan > PlanDungeonRoomTransfer (const zelda3::Room &target, const DungeonRoomDocument &source, DungeonRoomTransferOptions options)
 
void ApplyDungeonRoomDocument (zelda3::Room &room, const DungeonRoomDocument &document)
 
absl::StatusOr< std::string > SerializeDungeonRoomDocument (const DungeonRoomDocument &document)
 
absl::StatusOr< DungeonRoomDocument > ParseDungeonRoomDocument (const std::string &json)
 
DungeonSelectionEditState CaptureDungeonSelectionEditState (const zelda3::Room &room)
 
uint8_t ChangedDungeonSelectionDomains (const DungeonSelectionEditState &a, const DungeonSelectionEditState &b)
 
absl::StatusOr< DungeonSelectionClipboard > CopyDungeonSelection (const zelda3::Room &room, const std::vector< size_t > &objects, const std::vector< SelectedEntity > &entities)
 
absl::StatusOr< DungeonSelectionEditPlan > PlanDungeonSelectionEdit (const zelda3::Room &room, const DungeonSelectionEditRequest &request)
 
void ApplyDungeonSelectionEditState (zelda3::Room &room, const DungeonSelectionEditState &state, uint8_t domains)
 
void AppendDungeonSelectionSummaryPart (std::vector< std::string > *parts, size_t count, const char *singular, const char *plural=nullptr)
 
DungeonSelectionSnapshot BuildDungeonSelectionSnapshot (const DungeonObjectInteraction &interaction, const DungeonRoomStore *rooms, int room_id)
 
std::string GetDungeonSelectionSummaryText (const DungeonSelectionSnapshot &snapshot)
 
const char * GetDungeonSelectionKindLabel (DungeonSelectionKind kind)
 
std::string GetDungeonChestItemLabel (uint8_t item_id)
 
std::string GetDungeonChestItemLabel (uint8_t item_id, const project::YazeProject *project)
 
void DrawDungeonChestEditor (int room_id, zelda3::Room &room, DungeonCanvasViewer &viewer)
 
void DrawDungeonConnectionEditor (DungeonCanvasViewer &viewer, size_t door_index, const std::function< void(int, size_t)> &jump_to_reciprocal)
 
void DrawDungeonDestinationEditor (DungeonCanvasViewer &viewer)
 
void DrawDungeonPotItemSaveNotice ()
 
void DrawDungeonEntityInspector (DungeonCanvasViewer &viewer, const std::function< void(int, size_t)> &jump_to_reciprocal)
 
void LoadDungeonRoomTransferFile (DungeonRoomTransferEditorState &state, const std::string &path)
 
void DrawDungeonRoomTransferEditor (DungeonCanvasViewer &viewer)
 
void DrawDungeonRoomTransferPopup (DungeonCanvasViewer &viewer)
 
PlacementCapacityState GetPlacementCapacityState (size_t current_count, size_t max_count)
 
ImVec4 GetPlacementAccentColor (const AgentUITheme &theme, PlacementCapacityState state, const ImVec4 &normal_color)
 
std::string_view GetPlacementCapacityStatusText (PlacementCapacityState state)
 
std::string_view GetPlacementCapacityTooltipSuffix (PlacementCapacityState state)
 
void DrawPlacementCapacityBadge (ImDrawList *draw_list, const ImVec2 &badge_min, const AgentUITheme &theme, PlacementCapacityState state, std::string_view primary_text)
 
ImVec4 GetPlacementSummaryColor (const AgentUITheme &theme, size_t current_count, size_t max_count, const ImVec4 &normal_color)
 
const char * ObjectEvidenceStateKey (ObjectEvidenceState state)
 
const char * ObjectEvidenceStateLabel (ObjectEvidenceState state)
 
std::optional< ObjectEvidenceState > ParseObjectEvidenceState (std::string_view key)
 
const std::vector< ReleaseFocusGroup > & ReleaseFocusGroups ()
 
int ReleaseFocusGroupFor (int object_id)
 
std::vector< int > OrderObjectsForReview (const std::vector< int16_t > &object_ids)
 
std::optional< int > NextObjectToCheck (const std::vector< int > &review_order, const ObjectEvidenceStore &evidence, const ObjectUsageIndex &usage, std::optional< int > after_object_id)
 
std::string SafeEvidenceFileName (std::string_view name)
 
bool IsPlainCaptureDir (const std::filesystem::path &dir)
 
absl::StatusOr< GameCaptureManifest > LoadGameCaptureManifest (const std::filesystem::path &dir)
 
std::filesystem::path GameCaptureRoomPath (const std::filesystem::path &dir, int room_id)
 
std::map< int, ObjectEvidence > ProposeAutomaticVerdicts (const ObjectAutoCheckResults &results, const ObjectEvidenceStore &evidence, const std::string &rom_sha1)
 
std::map< int, ObjectCustomDrawCode > FindObjectsWithCustomDrawCode (const std::vector< zelda3::ObjectDrawCode > &draw_code, const std::vector< core::ProtectedRegion > &hooks)
 
std::string FormatObjectId (int object_id)
 
CrumbleFloorCell ClassifyCrumbleFloorWord (uint16_t word)
 
bool HasOracleCrumbleTag (const Rom &rom, const project::YazeProject *project, const zelda3::Room &room)
 
CrumbleFloorModel::Words ReadCrumbleFloorWords (const zelda3::Room &room)
 
std::optional< std::pair< int, int > > MinecartLocalPosition (const MinecartTrack &track)
 
absl::StatusOr< size_t > FindCartStartSprite (const zelda3::Room &room, const MinecartTrack &start)
 
absl::Status ValidateCartStartDestination (const zelda3::Room &room, const MinecartTrack &start)
 
absl::StatusOr< zelda3::CustomCollisionMap > PreviewMinecartCollisionStamp (const zelda3::CustomCollisionMap &before, const MinecartCollisionStamp &stamp)
 
absl::StatusOr< DungeonIssueReportPaths > ResolveDungeonIssueReportPaths ()
 
absl::StatusOr< std::filesystem::path > BuildDungeonIssueScreenshotPath (int room_id, const std::string &category_label, const std::string &timestamp_slug)
 
absl::StatusOr< std::filesystem::path > AppendDungeonIssueLogEntry (const DungeonIssueLogEntry &entry)
 
DungeonWindowContext CurrentDungeonWindowContext ()
 
PitDamageMembershipState BuildPitDamageMembershipState (const zelda3::PitDamageTable *table, int room_id, uint16_t replacement_fallback, uint16_t victim_fallback)
 
absl::Status AddCurrentRoomToPitDamage (zelda3::PitDamageTable *table, uint16_t current_room_id, uint16_t victim_room_id)
 
absl::Status RemoveCurrentRoomFromPitDamage (zelda3::PitDamageTable *table, uint16_t current_room_id, uint16_t replacement_room_id)
 
DungeonWorkbenchToolRequestTarget ResolveDungeonWorkbenchToolRequestTarget (bool standalone_window_open)
 
DungeonWorkbenchResponsiveLayout ResolveDungeonWorkbenchResponsiveLayout (float total_width, float min_canvas_width, float min_sidebar_width, float splitter_width, bool want_left, bool want_right)
 
DungeonWorkbenchPaneLayout ResolveDungeonWorkbenchPaneLayout (float total_width, float min_canvas_width, float min_sidebar_width, float splitter_width, float stored_left_width, float stored_right_width, bool want_left, bool want_right)
 
bool DrawDungeonWorkbenchVerticalSplitter (const char *id, float height, float *pane_width, float min_width, float max_width, bool resize_from_left_edge, float collapse_threshold)
 
size_t EditorTypeIndex (EditorType type)
 
std::optional< EditorType > ParseEditorTypeFromString (absl::string_view name)
 
absl::Status ValidateGraphicsPaletteAddressing (const GraphicsEditTarget &target, const zelda3::GameData *owner)
 
void ResolveGraphicsPaletteAddressing (GraphicsEditTarget &target, const zelda3::GameData *owner, const zelda3::PaletteAddressMap &addresses, int row, int half_offset)
 
absl::Status UpdateGraphicsContextPalettes (GraphicsEditContext &context, GraphicsEditContext refreshed)
 
absl::StatusOr< GraphicsEditContext > MakeDungeonGraphicsEditContext (const zelda3::Room &room, const zelda3::RoomObject &object, const zelda3::GameData *owner)
 
absl::StatusOr< GraphicsPalettePreview > ResolveGraphicsPreviewPalette (zelda3::GameData &data, const GraphicsPaletteSelection &selection)
 
absl::Status SetGraphicsPreviewPalette (GraphicsEditorState &state, uint16_t sheet, std::optional< GraphicsPaletteSelection > selection)
 
void RefreshGraphicsPreviewPalettes (GraphicsEditorState &state)
 
absl::Status VerifyWrittenSheetPixels (const Rom &rom, uint16_t sheet_id, const std::vector< uint8_t > &expected_pixels, const zelda3::GfxSheetPointerTables &tables)
 
std::string DescribeGraphicsSavePlanEntry (const GraphicsSavePlanEntry &entry)
 "Sheet 0x92: in place at 0x0AED16, 1476 -> 1473 bytes".
 
SheetPixelDiff MakeSheetPixelDiff (uint16_t sheet, absl::Span< const uint8_t > before, absl::Span< const uint8_t > after)
 The pixels that differ between two 4096-byte sheets.
 
void AttachSheetStore (GraphicsEditorState &state, zelda3::GameData *game_data)
 
zelda3::GraphicsSheetStore * ActiveSheetStore (const GraphicsEditorState &state)
 
void RefreshArenaSheet (GraphicsEditorState &state, uint16_t sheet)
 
absl::Status CommitSheetPixels (GraphicsEditorState &state, uint16_t sheet, absl::Span< const uint8_t > pixels)
 
absl::Status ApplySheetPixelDiff (GraphicsEditorState &state, const SheetPixelDiff &diff, bool redo)
 
int SyncArenaFromStore (GraphicsEditorState &state)
 
void DrawGraphicsPreviewPaletteSelector (GraphicsEditorState &state, GraphicsPaletteSelectorLayout layout)
 
absl::StatusOr< PalettePixelPlan > PlanPalettePixelPermutation (const GraphicsEditContext &source, const std::vector< size_t > &targets, const PalettePermutation &permutation)
 
absl::Status ExecutePalettePixelPlan (GraphicsEditorState &state, const PalettePixelPlan &plan, bool redo, const std::function< absl::Status(size_t)> &after_sheet_write)
 
absl::Status ApplyPalettePixelPermutation (GraphicsEditorState &state, UndoManager &history, const std::vector< size_t > &targets, const PalettePermutation &permutation)
 
absl::StatusOr< std::vector< uint8_t > > EncodeClipboardPng (const std::vector< uint8_t > &indices, int width, int height, const SheetColors &colors)
 
absl::StatusOr< ClipboardPaste > MapClipboardPng (const std::vector< uint8_t > &png_bytes, const SheetColors &colors, int max_width, int max_height)
 
std::string DescribeClipboardPaste (const ClipboardPaste &paste)
 "16x16: 200 kept" / "16x8: 90 exact, 38 remapped, 4 above color 7".
 
void AppendResolvedGraphicsContext (EditorContextSnapshot &snapshot, const zelda3::ResolvedGraphicsContext &context)
 
absl::StatusOr< usage_preview::PreviewImage > RenderDungeonMapTilesGfxPreview (const zelda3::GameData *owner)
 
absl::StatusOr< GraphicsEditContext > MakeDungeonMapTilesGfxEditContext (const zelda3::GameData *owner, int selected_tile8, bool binary_gfx_loaded)
 
absl::StatusOr< std::vector< uint8_t > > ExportSheetPixelsPng (uint16_t sheet_id, const std::vector< uint8_t > &indexed_pixels, const zelda3::SheetPalette &palette)
 
absl::StatusOr< SheetPngImportPreview > PreviewSheetPngImport (uint16_t sheet_id, const std::vector< uint8_t > &indexed_pixels, const std::vector< uint8_t > &png_bytes, const zelda3::SheetPalette &palette, int first_block)
 
absl::StatusOr< std::vector< SheetPngImportPreview > > PreviewRoomPngImport (const Rom &rom, const zelda3::RoomBackgroundSet &set, const std::vector< uint8_t > &png_bytes, const zelda3::SheetPalette &palette)
 
absl::Status ApplySheetPngImport (const SheetPngImportPreview &preview, GraphicsEditorState &state, UndoManager *undo_manager)
 
std::string DescribeSheetPngImport (const SheetPngImportPreview &preview)
 "Sheet 0x20: blocks 0, 3 (5 tiles)" for the preview list.
 
std::string ShortcutLabelForAction (const ShortcutManager *shortcut_manager, absl::string_view action)
 
std::vector< RecentFileMenuEntry > BuildRecentFileMenuEntries (const std::vector< std::string > &recent_paths, size_t max_entries, const RecentFileExistsFn &exists)
 
absl::Span< const DrawerCatalogEntry > GetDrawerCatalog ()
 Switchable drawers in header-cycle order (excludes Tool Output).
 
const char * GetPanelShortcutAction (RightDrawerManager::PanelType type)
 Shortcut action id used by ShortcutManager for a drawer toggle.
 
const char * GetPanelTypeName (RightDrawerManager::PanelType type)
 Get the name of a panel type.
 
const char * GetPanelTypeIcon (RightDrawerManager::PanelType type)
 Get the icon for a panel type.
 
const char * GetDrawerTypeName (RightDrawerManager::DrawerType type)
 
const char * GetDrawerTypeIcon (RightDrawerManager::DrawerType type)
 
const char * GetDrawerShortcutAction (RightDrawerManager::DrawerType type)
 
int GetExpandedTextDataStart ()
 
int GetExpandedTextDataEnd ()
 
uint8_t FindMatchingCharacter (char value)
 
int8_t FindDictionaryEntry (uint8_t value)
 
std::optional< TextElement > FindMatchingCommand (uint8_t b)
 
std::optional< TextElement > FindMatchingSpecial (uint8_t value)
 
ParsedElement FindMatchingElement (const std::string &str)
 
std::string ParseTextDataByte (uint8_t value)
 
std::vector< uint8_t > ParseMessageToData (std::string str)
 
MessageParseResult ParseMessageToDataWithDiagnostics (std::string_view str)
 
std::string MessageBankToString (MessageBank bank)
 
absl::StatusOr< MessageBank > MessageBankFromString (std::string_view value)
 
std::vector< DictionaryEntry > BuildDictionaryEntries (Rom *rom)
 
std::vector< std::vector< uint8_t > > ReadDictionaryEntryBytes (const uint8_t *rom, size_t rom_size)
 
std::vector< uint8_t > ExpandMessageDictionary (const std::vector< uint8_t > &data, const std::vector< std::vector< uint8_t > > &dictionary)
 
std::vector< uint8_t > CompressMessageWithDictionary (const std::vector< uint8_t > &data, const std::vector< std::vector< uint8_t > > &dictionary)
 
std::string ReplaceAllDictionaryWords (std::string str, const std::vector< DictionaryEntry > &dictionary)
 
std::optional< size_t > FindTextMatch (std::string_view text, std::string_view query, size_t start_pos, bool case_sensitive, bool match_whole_word)
 
int ReplaceTextMatches (std::string *text, std::string_view query, std::string_view replacement, size_t start_pos, bool replace_all, bool case_sensitive, bool match_whole_word, size_t *first_replaced_pos)
 
DictionaryEntry FindRealDictionaryEntry (uint8_t value, const std::vector< DictionaryEntry > &dictionary)
 
absl::StatusOr< MessageData > ParseSingleMessage (const std::vector< uint8_t > &rom_data, int *current_pos)
 
std::vector< std::string > ParseMessageData (std::vector< MessageData > &message_data, const std::vector< DictionaryEntry > &dictionary_entries)
 
std::vector< MessageData > ReadAllTextData (uint8_t *rom, int pos, int max_pos, bool allow_bank_switch)
 
absl::Status LoadExpandedMessages (std::string &expanded_message_path, std::vector< std::string > &parsed_messages, std::vector< MessageData > &expanded_messages, std::vector< DictionaryEntry > &dictionary)
 
nlohmann::json SerializeMessagesToJson (const std::vector< MessageData > &messages)
 
absl::Status ExportMessagesToJson (const std::string &path, const std::vector< MessageData > &messages)
 
nlohmann::json SerializeMessageBundle (const std::vector< MessageData > &vanilla, const std::vector< MessageData > &expanded)
 
absl::Status ExportMessageBundleToJson (const std::string &path, const std::vector< MessageData > &vanilla, const std::vector< MessageData > &expanded)
 
absl::StatusOr< std::vector< MessageBundleEntry > > ParseMessageBundleJson (const nlohmann::json &json)
 
absl::StatusOr< std::vector< MessageBundleEntry > > LoadMessageBundleFromJson (const std::string &path)
 
std::vector< std::string > ValidateMessageLineWidths (const std::string &message)
 
std::optional< std::pair< int, std::string > > ParseOrgHeader (const std::string &line)
 
std::vector< std::pair< int, std::string > > ParseOrgContent (const std::string &content)
 
std::string ExportToOrgFormat (const std::vector< std::pair< int, std::string > > &messages, const std::vector< std::string > &labels)
 
std::vector< MessageData > ReadExpandedTextData (uint8_t *rom, int pos)
 
std::vector< MessageData > ReadExpandedTextData (uint8_t *rom, int pos, int end)
 
absl::Status WriteExpandedTextData (Rom *rom, int start, int end, const std::vector< std::string > &messages)
 
absl::Status WriteExpandedTextData (uint8_t *rom, int start, int end, const std::vector< std::string > &messages)
 
absl::StatusOr< VanillaMessageSavePlan > BuildVanillaMessageSavePlan (const std::vector< MessageData > &messages, std::optional< size_t > expected_message_count)
 
absl::Status ApplyVanillaMessageSavePlan (Rom *rom, const VanillaMessageSavePlan &plan)
 
absl::Status WriteAllTextData (Rom *rom, const std::vector< MessageData > &messages)
 
std::optional< ResolvedMessageId > ResolveMessageDisplayId (int display_id, int vanilla_count, int expanded_base_id, int expanded_count)
 
char AsciiLower (unsigned char c)
 
bool ContainsCaseInsensitive (std::string_view haystack, std::string_view needle)
 
std::string_view StripHexPrefix (std::string_view query)
 
bool HexDigitsContain (uint32_t value, int width, std::string_view query)
 
bool DecimalContains (int value, std::string_view query)
 
bool MessageListQueryMatches (int display_id, uint32_t address, std::string_view contents, bool expanded, MessageBankFilter bank, std::string_view query)
 
bool IsWordChar (std::string_view text, size_t index)
 
std::optional< size_t > FindNextTextMatch (std::string_view text, std::string_view needle, size_t start, bool case_sensitive, bool whole_word)
 
std::optional< size_t > FindPreviousTextMatch (std::string_view text, std::string_view needle, size_t before, bool case_sensitive, bool whole_word)
 
std::string MessageListPreview (std::string_view text, size_t max_chars=96)
 
std::string ComputeMessageSourceSha256 (std::string_view content)
 
absl::StatusOr< MessageSourceSnapshot > LoadMessageSource (const project::YazeProject &project)
 
absl::StatusOr< MessageSourceSyncResult > SyncMessageSource (const project::YazeProject &project, const fs::path &incoming_bundle_path, const MessageSourceSyncOptions &options)
 
absl::StatusOr< MessageSourceSyncResult > SyncMessageSource (const project::YazeProject &project, const std::filesystem::path &incoming_bundle_path, const MessageSourceSyncOptions &options={})
 
 REGISTER_PANEL (AnnotationOverlayPanel)
 
 REGISTER_PANEL (OracleMenuInspectorPanel)
 
 REGISTER_PANEL (OracleValidationPanel)
 
 REGISTER_PANEL (ProgressionDashboardPanel)
 
 REGISTER_PANEL (StoryEventGraphPanel)
 
bool IsValidOverworldMapJumpTarget (int map_id)
 
std::optional< int > ResolveStoryLocationMapJumpTarget (const std::optional< int > &overworld_id, const std::optional< int > &special_world_id)
 
bool IsMapSelectClick (const MapClickInput &input)
 
ImVec2 ScrollForZoomAtAnchor (ImVec2 scroll, ImVec2 anchor, float old_scale, float new_scale)
 
std::optional< OverworldContextTarget > ResolveOverworldContextTarget (int world, int game_state, ImVec2 screen_position, ImVec2 canvas_origin, ImVec2 scrolling, float scale, int map_count=zelda3::kNumOverworldMaps)
 
bool IsMouseHoveringOverEntity (const zelda3::GameEntity &entity, ImVec2 canvas_p0, ImVec2 scrolling, float scale=1.0f)
 Check if mouse is hovering over an entity.
 
bool IsMouseHoveringOverEntity (const zelda3::GameEntity &entity, const gui::CanvasRuntime &rt)
 Check if mouse is hovering over an entity (CanvasRuntime version)
 
void MoveEntityOnGrid (zelda3::GameEntity *entity, ImVec2 canvas_p0, ImVec2 scrolling, bool free_movement=false, float scale=1.0f)
 Move entity to grid-aligned position based on mouse.
 
bool DrawEntranceInserterPopup ()
 
bool DrawOverworldEntrancePopup (zelda3::OverworldEntrance &entrance)
 
void DrawExitInserterPopup ()
 
bool DrawExitEditorPopup (zelda3::OverworldExit &exit)
 
void DrawItemInsertPopup ()
 
bool DrawItemEditorPopup (zelda3::OverworldItem &item)
 
void DrawSpriteTable (std::function< void(int)> onSpriteSelect, int &selected_id)
 
void DrawSpriteInserterPopup ()
 
bool DrawSpriteEditorPopup (zelda3::Sprite &sprite)
 
bool DrawDiggableTilesEditorPopup (zelda3::DiggableTiles *diggable_tiles, const std::vector< gfx::Tile16 > &tiles16, const std::array< uint8_t, 0x200 > &all_tiles_types)
 Draw popup dialog for editing diggable tiles configuration.
 
absl::StatusOr< zelda3::OverworldItem > BuildOverworldItemForInsertion (const std::vector< zelda3::OverworldMap > &maps, ImVec2 world_position, int current_map, uint8_t item_id)
 
absl::StatusOr< zelda3::Sprite > BuildOverworldSpriteForInsertion (const std::vector< zelda3::OverworldMap > &maps, ImVec2 world_position, int current_map, uint8_t sprite_id)
 
absl::StatusOr< zelda3::OverworldEntrance * > InsertEntrance (zelda3::Overworld *overworld, ImVec2 mouse_pos, int current_map, bool is_hole=false)
 Flat helper functions for entity insertion/manipulation.
 
absl::StatusOr< zelda3::OverworldExit * > InsertExit (zelda3::Overworld *overworld, ImVec2 mouse_pos, int current_map)
 Insert a new exit at the specified position.
 
absl::StatusOr< zelda3::Sprite * > InsertSprite (zelda3::Overworld *overworld, ImVec2 mouse_pos, int current_map, int game_state, uint8_t sprite_id=0)
 Insert a new sprite at the specified position.
 
absl::StatusOr< zelda3::OverworldItem * > InsertItem (zelda3::Overworld *overworld, ImVec2 mouse_pos, int current_map, uint8_t item_id=0)
 Insert a new item at the specified position.
 
absl::Status RemoveItem (zelda3::Overworld *overworld, const zelda3::OverworldItem *item_ptr)
 Remove an item from the overworld item list by pointer identity.
 
absl::Status RemoveItemByIdentity (zelda3::Overworld *overworld, const zelda3::OverworldItem &item_identity)
 Remove an item by value identity instead of pointer identity.
 
zelda3::OverworldItem * FindItemByIdentity (zelda3::Overworld *overworld, const zelda3::OverworldItem &item_identity)
 Find a live item by value identity.
 
absl::StatusOr< zelda3::OverworldItem * > DuplicateItemByIdentity (zelda3::Overworld *overworld, const zelda3::OverworldItem &item_identity, int offset_x=16, int offset_y=0)
 Duplicate an existing item by identity with a positional offset.
 
absl::Status NudgeItem (zelda3::OverworldItem *item, int delta_x, int delta_y)
 Move an item by pixel deltas with overworld bounds clamping.
 
zelda3::OverworldItem * FindNearestItemForSelection (zelda3::Overworld *overworld, const zelda3::OverworldItem &anchor_identity)
 Find the best next item to keep selection continuity after deletion.
 
uint8_t GetParentMapId (const zelda3::OverworldMap *map, int current_map)
 Helper to get parent map ID for multi-area maps.
 
ImVec2 SnapToEntityGrid (ImVec2 pos)
 Snap position to 16x16 grid (standard entity positioning)
 
ImVec2 ClampToOverworldBounds (ImVec2 pos)
 Clamp position to valid overworld bounds.
 
 REGISTER_PANEL (OverworldEntityWorkbench)
 
ImVec4 EntityMarkerColor (const AgentUITheme &theme, EntityType type, bool is_hole)
 
ImVec4 EntityMarkerColor (const AgentUITheme &theme, zelda3::GameEntity::EntityType type, bool is_hole=false)
 Box color for an overworld entity marker.
 
std::string GetProjectResourceLabel (const project::YazeProject *project, const std::string &type, int id)
 
absl::Status RenameProjectResourceLabel (project::YazeProject *project, const std::string &type, int id, const std::string &label)
 
OverworldMapMetadata BuildOverworldMapMetadata (const zelda3::Overworld &overworld, const Rom *rom, const project::YazeProject *project, int map_id, int game_state)
 
const char * OverworldPropertyFieldName (OverworldPropertyField field)
 
const char * OverworldMapMetadataClipboardScopeName (OverworldMapMetadataClipboardScope scope)
 
std::string DescribeOverworldMapMetadataClipboard (const OverworldMapMetadataClipboard &clipboard)
 
std::string DescribeOverworldPropertyEdit (const OverworldPropertyEdit &edit)
 
bool CanPasteOverworldMapMetadata (const OverworldMapMetadataClipboard &clipboard, OverworldMapMetadataClipboardScope requested_scope)
 
std::vector< OverworldPropertyEdit > BuildOverworldMetadataPasteEdits (int target_map_id, const OverworldMapMetadataClipboard &clipboard, OverworldMapMetadataClipboardScope requested_scope)
 
constexpr ImVec2 kOverworldCanvasSize (kOverworldMapSize *8, kOverworldMapSize *8)
 
constexpr ImVec2 kCurrentGfxCanvasSize (0x100+1, 0x10 *0x40+1)
 
constexpr ImVec2 kBlocksetCanvasSize (0x100+1, 0x4000+1)
 
constexpr ImVec2 kGraphicsBinCanvasSize (0x100+1, kNumSheetsToLoad *0x40+1)
 
absl::StatusOr< GraphicsEditTarget > ResolveOverworldQuadrantTarget (const zelda3::OverworldMap &map, const gfx::Tile16 &tile16, int tile16_id, int quadrant, const zelda3::GameData *owner)
 
absl::StatusOr< GraphicsEditContext > MakeOverworldGraphicsEditContext (const zelda3::OverworldMap &map, const gfx::Tile16 &tile16, int tile16_id, int quadrant, const zelda3::GameData *owner)
 
const char * OverworldWorldLabelFromMap (int map_id)
 
int EffectiveOverworldHoverMap (int hovered_map, bool canvas_hovered)
 
std::string FormatOverworldMapStatusSegment (int current_map, int hovered_map)
 
MapBrushPreview BuildMapBrushPreview (const TileBrush &brush, int anchor_x, int anchor_y, int map_x, int map_y, std::span< const uint8_t > atlas, int atlas_width=128)
 
void SyncMapBrushPreview (const MapBrushPreview &piece, const gfx::SnesPalette &palette, gfx::Bitmap &preview)
 
std::vector< uint8_t > Tile16PixelsFromBlockset (std::span< const uint8_t > atlas, int tile_id, int atlas_width=128)
 
 REGISTER_PANEL (AreaGraphicsPanel)
 
 REGISTER_PANEL (DebugWindowPanel)
 
 REGISTER_PANEL (GfxGroupsPanel)
 
 REGISTER_PANEL (MapPropertiesPanel)
 
 REGISTER_PANEL (OverworldItemListPanel)
 
OverworldWindowContext CurrentOverworldWindowContext ()
 
OverworldEditor * CurrentOverworldEditor ()
 
 REGISTER_PANEL (ScratchSpacePanel)
 
 REGISTER_PANEL (UsageStatisticsPanel)
 
 REGISTER_PANEL (V3SettingsPanel)
 
Tile16ActionControlState ComputeTile16ActionControlState (bool has_pending, bool current_tile_pending, bool can_undo, bool can_redo)
 
int ComputeTile16CompactActionColumnCount (float available_width_px)
 
int ComputeTile16ActionRowCount (int action_count, int column_count)
 
float ComputeTile16PaletteButtonSize (float available_width_px)
 
Tile16NumericShortcutResult ResolveTile16NumericShortcut (bool ctrl_held, int number_index)
 
bool ComputeTile8UsageHighlight (bool source_hovered, bool right_mouse_down)
 
int ComputeTile8IndexFromCanvasMouse (float mouse_x, float mouse_y, int source_bitmap_width_px, int max_tile_count, float display_scale)
 
float ComputeTile8SourceDisplayScale (float available_width_px, int source_bitmap_width_px, float min_scale=1.0f, float max_scale=4.0f)
 
float ComputeTile8SourcePanelHeight (float available_height_px, int source_bitmap_height_px, float display_scale, float preferred_height_px=0.0f, float min_height_px=220.0f, float max_height_px=520.0f)
 
 REGISTER_PANEL (OverworldCanvasView)
 
 REGISTER_PANEL (Tile16EditorView)
 
 REGISTER_PANEL (Tile16SelectorView)
 
 REGISTER_PANEL (Tile8SelectorView)
 
const std::vector< PaletteCategoryInfo > & GetPaletteCategories ()
 Get all palette categories with their associated groups.
 
std::string GetGroupDisplayName (const std::string &group_name)
 Get display name for a palette group.
 
PaletteCategory GetGroupCategory (const std::string &group_name)
 Get the category that a palette group belongs to.
 
absl::Status DisplayPalette (gfx::SnesPalette &palette, bool loaded)
 Display SNES palette with enhanced ROM hacking features.
 
template<typename EditorT >
TypedWindowContext< EditorT > CurrentTypedWindowContext (const std::string &category)
 
float GetStaggeredEntryProgress (float entry_time, int section_index, float duration, float stagger_delay)
 
 REGISTER_PANEL (AboutPanel)
 
const char * GetSelectionTypeName (SelectionType type)
 Get a human-readable name for a selection type.
 
std::optional< int > ParseGotoId (std::string_view token)
 Parse a single id token using the formats above. nullopt if malformed.
 
int GotoMaxId (GotoKind kind)
 Inclusive upper bound for kind.
 
const char * GotoKindName (GotoKind kind)
 
bool GotoKindHasJumpPath (GotoKind kind)
 True when a jump path exists for kind (sprites have none yet).
 
std::optional< GotoQuery > ParseGotoQuery (std::string_view query)
 
CommandEntry BuildGotoEntry (const GotoQuery &query, size_t session_id)
 
std::string LookupShortcutHint (const ShortcutManager *shortcut_manager, const std::string &name)
 
std::string PaletteNameForShortcut (const std::string &name)
 
void ConfigureEditorShortcuts (const ShortcutDependencies &deps, ShortcutManager *shortcut_manager)
 
void ConfigureMenuShortcuts (const ShortcutDependencies &deps, ShortcutManager *shortcut_manager)
 
void ApplyUserShortcutOverrides (const UserSettings &user_settings, ShortcutManager *shortcut_manager)
 Apply persisted global/editor rebinds (UserSettings global_shortcuts and editor_shortcuts) to already-registered shortcuts.
 
void ConfigurePanelShortcuts (const ShortcutDependencies &deps, ShortcutManager *shortcut_manager)
 Final configuration pass: apply user rebinds, then register panel toggle shortcuts.
 
std::string PrintShortcut (const std::vector< ImGuiKey > &keys)
 
std::string InferShortcutGroup (absl::string_view name)
 Menu-IA group for a shortcut/command name (File, View, Drawers, …).
 
std::vector< ImGuiKey > ParseShortcut (const std::string &shortcut)
 
void ExecuteShortcuts (const ShortcutManager &shortcut_manager)
 Fire at most one shortcut for this frame's key press.
 
bool SameChord (const std::vector< ImGuiKey > &a, const std::vector< ImGuiKey > &b)
 True when two key lists describe the same chord (order-insensitive).
 
bool ShouldTickEmulatorWhenHidden (bool keep_running_in_background)
 
std::string PreferStartupCategory (const std::string &saved_category, const std::vector< std::string > &available_categories)
 
absl::Status ValidateRomCollisionSourceBinding (Rom *replacement_rom, const fs::path &json_path)
 
absl::Status SaveRomWithCollisionSource (Rom *rom, const fs::path &json_path)
 
absl::Status ValidateRomCollisionSourceBinding (Rom *replacement_rom, const std::filesystem::path &json_path)
 
absl::Status SaveRomWithCollisionSource (Rom *rom, const std::filesystem::path &json_path)
 
void RegisterDefaultEditorFactories (EditorRegistry *registry)
 
absl::Status ValidateHackManifestSaveConflicts (const core::HackManifest &manifest, project::RomWritePolicy write_policy, const std::vector< std::pair< uint32_t, uint32_t > > &ranges, absl::string_view save_scope, const char *log_tag, ToastManager *toast_manager)
 
const char * WindowPresentationRoleName (WindowPresentationRole role)
 
const std::vector< PanelAdmissionEntry > & FirstClassPanelAllowlist ()
 
const PanelAdmissionEntry * FindFirstClassPanelEntry (const std::string &window_id)
 Returns the allowlist entry for a base window id, or nullptr.
 
const std::vector< PanelAdmissionEntry > & DeferredPolicyDeclarations ()
 
bool IsPolicyDeclarationDeferred (const std::string &window_id)
 
std::vector< std::string > CollectDefaultVisibleWindowIds (const WorkspaceWindowManager &window_manager, size_t session_id)
 
std::vector< PanelAdmissionFinding > AuditPanelAdmission (const WorkspaceWindowManager &window_manager, size_t session_id)
 Audits every window registered for session_id. Empty means admitted.
 
std::string FormatPanelAdmissionFindings (const std::vector< PanelAdmissionFinding > &findings)
 Joins findings into one message for test output.
 
bool IsTransientPanelVisibilityId (absl::string_view panel_id)
 

Variables

constexpr std::array< const char *, 6 > kDungeonIssueCategoryLabels
 
constexpr char kDungeonSpawnReadOnlyReason []
 
constexpr int kProposalOverlayVersion = 1
 
constexpr std::string_view kProposalOverlayFormat
 
constexpr int kProposalRoomTiles = 64
 
constexpr int kProposalTilePixels = 8
 
constexpr int kProposalDefaultMaxRoomId = 0x127
 
constexpr uint8_t kTrackDirNorth = 1 << 0
 
constexpr uint8_t kTrackDirEast = 1 << 1
 
constexpr uint8_t kTrackDirSouth = 1 << 2
 
constexpr uint8_t kTrackDirWest = 1 << 3
 
constexpr uint16_t kTransferObjects = 1
 
constexpr uint16_t kTransferDoors = 2
 
constexpr uint16_t kTransferSprites = 4
 
constexpr uint16_t kTransferItems = 8
 
constexpr uint16_t kTransferMetadata = 16
 
constexpr uint16_t kTransferCollision = 32
 
constexpr uint16_t kTransferWater = 64
 
constexpr uint16_t kTransferCore = 31
 
constexpr uint16_t kTransferAll = 127
 
constexpr size_t kMaxDungeonRoomDocumentBytes = 1024 * 1024
 
constexpr size_t kMaxDungeonRoomDocumentObjects = 4096
 
constexpr size_t kMaxDungeonRoomDocumentChestRecords
 
constexpr char kRoomTransferSharedHeaderPayload []
 
constexpr uint8_t kSelectionObjects = 1
 
constexpr uint8_t kSelectionDoors = 2
 
constexpr uint8_t kSelectionSprites = 4
 
constexpr uint8_t kSelectionItems = 8
 
constexpr size_t kMinecartTrackSlotCount = 32
 
constexpr ObjectEvidenceState kAllObjectEvidenceStates []
 
constexpr std::array< const char *, 15 > kEditorNames
 
constexpr EditorType kLastEditorType = EditorType::kPlanning
 
constexpr size_t kEditorTypeCount = static_cast<size_t>(kLastEditorType) + 1
 
const std::string kSuperDonkeyTiles []
 
const std::string kSuperDonkeySprites []
 
const std::array< DrawerCatalogEntry, 7 > kDrawerCatalog
 
const std::string kBankToken = "BANK"
 
const std::string DICTIONARYTOKEN = "D"
 
constexpr uint8_t kMessageTerminator = 0x7F
 
constexpr uint8_t DICTOFF = 0x88
 
constexpr uint8_t kWidthArraySize = 100
 
constexpr uint8_t kBankSwitchCommand = 0x80
 
constexpr int kTextData = 0xE0000
 
constexpr int kTextDataEnd = 0xE7FFF
 
constexpr int kNumDictionaryEntries = 0x61
 
constexpr int kPointersDictionaries = 0x74703
 
constexpr uint8_t kScrollVertical = 0x73
 
constexpr uint8_t kLine1 = 0x74
 
constexpr uint8_t kLine2 = 0x75
 
constexpr uint8_t kLine3 = 0x76
 
const std::string CHEESE = "\uBEBE"
 
constexpr int kMessageBundleVersion = 1
 
constexpr int kTextData2 = 0x75F40
 
constexpr int kTextData2End = 0x773FF
 
constexpr int kMaxLineWidth = 32
 
constexpr int kExpandedTextDataDefault = 0x178000
 
constexpr int kExpandedTextDataEndDefault = 0x17FFFF
 
constexpr ImGuiTableFlags kMessageTableFlags
 
constexpr int kGfxFont = 0x70000
 
constexpr int kCharactersWidth = 0x74ADF
 
constexpr int kNumMessages = 396
 
constexpr int kFontGfxMessageSize = 128
 
constexpr int kFontGfxMessageDepth
 
constexpr int kFontGfx16Size = 172 * 4096
 
constexpr uint8_t kBlockTerminator = 0x80
 
constexpr uint8_t kMessageBankChangeId = 0x80
 
constexpr int kCurrentMessageWidth = 172
 
constexpr int kCurrentMessageHeight = 4096
 
constexpr char kOracleExpandedRomWriteRefusal []
 
const ImGuiTableFlags toolset_table_flags_ = ImGuiTableFlags_SizingFixedFit
 
const ImGuiTableFlags music_editor_flags_
 
constexpr float kInputFieldSize = 30.f
 
constexpr unsigned int k4BPP = 4
 
constexpr unsigned int kByteSize = 3
 
constexpr unsigned int kMessageIdSize = 5
 
constexpr unsigned int kNumSheetsToLoad = 223
 
constexpr ImGuiTableFlags kOWMapFlags
 
constexpr absl::string_view kWorldList
 
constexpr absl::string_view kGamePartComboString = "Part 0\0Part 1\0Part 2\0"
 
constexpr absl::string_view kOWMapTable = "#MapSettingsTable"
 
constexpr int kTile16Size = 16
 
constexpr int kTile8Size = 8
 
constexpr int kTilesheetEditorWidth = 0x100
 
constexpr int kTilesheetEditorHeight = 0x4000
 
constexpr int kTile16CanvasSize = 0x20
 
constexpr int kTile8CanvasHeight = 0x175
 
constexpr int kNumScratchSlots = 4
 
constexpr int kNumTile16Palettes = 8
 
constexpr int kTile8PixelCount = 64
 
constexpr int kTile16PixelCount = 256
 
constexpr float kTile8DisplayScale = 4.0f
 
constexpr const char * kGameStateNames []
 
constexpr const char * kWorldNames []
 
constexpr const char * kAreaSizeNames []
 
constexpr float kHexByteInputWidth = 50.f
 
constexpr float kHexWordInputWidth = 70.f
 
constexpr float kCompactButtonWidth = 60.f
 
constexpr float kIconButtonWidth = 40.f
 
constexpr float kPanelToggleButtonWidth = 40.f
 
constexpr float kSmallButtonWidth = 80.f
 
constexpr float kMediumButtonWidth = 90.f
 
constexpr float kLargeButtonWidth = 100.f
 
constexpr float kTableColumnWorld = 120.f
 
constexpr float kTableColumnMap = 80.f
 
constexpr float kTableColumnAreaSize = 120.f
 
constexpr float kTableColumnLock = 50.f
 
constexpr float kTableColumnGraphics = 80.f
 
constexpr float kTableColumnPalettes = 80.f
 
constexpr float kTableColumnProperties = 100.f
 
constexpr float kTableColumnTools = 80.f
 
constexpr float kTableColumnView = 80.f
 
constexpr float kTableColumnQuick = 80.f
 
constexpr float kComboWorldWidth = 115.f
 
constexpr float kComboAreaSizeWidth = 115.f
 
constexpr float kComboGameStateWidth = 100.f
 
constexpr float kTableButtonGraphics = 75.f
 
constexpr float kTableButtonPalettes = 75.f
 
constexpr float kTableButtonProperties = 95.f
 
constexpr float kTableButtonTools = 75.f
 
constexpr float kTableButtonView = 75.f
 
constexpr float kTableButtonQuick = 75.f
 
constexpr float kCompactItemSpacing = 4.f
 
constexpr float kCompactFramePadding = 2.f
 
constexpr unsigned int kOverworldMapSize = 0x200
 
constexpr int kTile16SelectorColumns = 8
 
constexpr float kTile16SelectorScale = 2.0f
 
constexpr float kTile16SelectorDrawOffsetX = 2.0f
 
constexpr float kOverworldMinZoom = 0.1f
 
constexpr float kOverworldMaxZoom = 5.0f
 
constexpr float kOverworldZoomStep = 0.25f
 
constexpr float kOverworldWheelPanPx = 64.0f
 
constexpr float kOverworldPanSnapMapPx = 8.0f
 
constexpr float kOverworldWheelDeadzone = 0.05f
 
constexpr float kOverworldWheelIdleResetSec = 0.08f
 
constexpr float kOverworldWheelZoomUnitsPerStep = 1.0f
 
constexpr ImGuiTableFlags kPaletteTableFlags
 
constexpr ImGuiColorEditFlags kPalNoAlpha = ImGuiColorEditFlags_NoAlpha
 
constexpr ImGuiColorEditFlags kPalButtonFlags
 
constexpr ImGuiColorEditFlags kColorPopupFlags
 
constexpr ImGuiTabItemFlags kSpriteTabFlags
 
constexpr ImGuiTabBarFlags kSpriteTabBarFlags
 
constexpr ImGuiTableFlags kSpriteTableFlags
 

Detailed Description

Editors are the view controllers for the application.

Typedef Documentation

◆ MinecartCollisionApply

Initial value:
std::function<absl::Status(
int, const zelda3::CustomCollisionMap&, const MinecartCollisionStamp&)>

Definition at line 28 of file minecart_collision_tool.h.

◆ DungeonWindowContext

◆ PalettePermutation

using yaze::editor::PalettePermutation = std::array<uint8_t, 8>

Definition at line 14 of file palette_pixel_command.h.

◆ SheetColors

using yaze::editor::SheetColors = std::array<std::array<uint8_t, 3>, 8>

The 8 colors a 3bpp sheet shows (index 0 is transparent in game).

Definition at line 14 of file pixel_clipboard.h.

◆ WorkspaceLayoutPreset

◆ RecentFileExistsFn

using yaze::editor::RecentFileExistsFn = std::function<bool(const std::string&)>

Definition at line 19 of file recent_files_menu_model.h.

◆ EntityType

◆ OverworldWindowContext

◆ EditorPanel

Definition at line 9 of file editor_panel.h.

◆ PanelManager

◆ PanelDescriptor

◆ PanelDefinition

Definition at line 101 of file panel_host.h.

◆ PanelHost

Definition at line 102 of file panel_host.h.

Enumeration Type Documentation

◆ CollaborationMode

Collaboration mode for multi-user sessions.

Enumerator
kLocal 
kNetwork 

Definition at line 33 of file agent_state.h.

◆ CaptureMode

enum class yaze::editor::CaptureMode
strong

Screenshot capture mode.

Enumerator
kFullWindow 
kActiveEditor 
kSpecificWindow 
kRegionSelect 

Definition at line 59 of file agent_state.h.

◆ ChainMode

enum class yaze::editor::ChainMode
strong

Model chain mode for multi-model responses.

Enumerator
kDisabled 
kRoundRobin 
kConsensus 

Definition at line 172 of file agent_state.h.

◆ DungeonConnectedLinkType

enum class yaze::editor::DungeonConnectedLinkType : uint8_t
strong
Enumerator
Door 
Staircase 
Holewarp 

Definition at line 54 of file dungeon_canvas_viewer.h.

◆ DungeonStaircaseIssueKind

enum class yaze::editor::DungeonStaircaseIssueKind : uint8_t
strong
Enumerator
UnusedHeader 
MissingDestination 
ExtraPlacedObject 

Definition at line 76 of file dungeon_canvas_viewer.h.

◆ DungeonIssueCategory

enum class yaze::editor::DungeonIssueCategory : int
strong
Enumerator
PaletteMismatch 
ObjectDrawMismatch 
DoorRenderMismatch 
EntityMismatch 
OverlayCollisionMismatch 
GeneralRoomRenderMismatch 

Definition at line 103 of file dungeon_canvas_viewer.h.

◆ ObjectRenderMode

enum class yaze::editor::ObjectRenderMode
strong

Handles the main dungeon canvas rendering and interaction.

Enumerator
Manual 
Emulator 
Hybrid 

Definition at line 224 of file dungeon_canvas_viewer.h.

◆ DungeonConnectionLayer

Enumerator
kUpper 
kLower 

Definition at line 12 of file dungeon_connection_edit.h.

◆ DungeonRoomNavigationDirection

Enumerator
kUp 
kDown 
kLeft 
kRight 

Definition at line 74 of file dungeon_editor_v2.h.

◆ DungeonEntranceRecordKind

Enumerator
kRegularEntrance 
kSpawnPoint 

Definition at line 16 of file dungeon_entrance_camera.h.

◆ DungeonOverlayControlId

Enumerator
kGrid 
kObjectBounds 
kHoverCoordinates 
kCameraQuadrants 
kTrackCollision 
kCustomCollision 
kWaterFillOracle 
kMinecartPathing 
kTrackGaps 
kTrackRoutes 
kCustomObjects 
kCrumbleFloor 
kChestContents 

Definition at line 10 of file dungeon_overlay_controls.h.

◆ ProposalShapeType

Enumerator
kRect 
kPath 
kMarker 
kRemove 

Definition at line 32 of file dungeon_proposal_overlay.h.

◆ DungeonRenderContextSource

Enumerator
kSelectedEntrance 
kDirectEntrance 
kInferredOwnerEntrance 
kRoomHeaderFallback 
kAmbiguous 

Definition at line 18 of file dungeon_render_context.h.

◆ TrackDir

enum class yaze::editor::TrackDir : uint8_t
strong
Enumerator
North 
East 
South 
West 

Definition at line 20 of file dungeon_rendering_helpers.h.

◆ RoomMetadataField

Enumerator
kLayout 
kBlockset 
kFloor1 
kFloor2 
kPalette 
kSpriteset 
kMessage 
kBg2 
kEffect 
kCollision 
kTag1 
kTag2 
kHolewarp 
kStaircaseRoom 
kStaircasePlane 
kPitPlane 

Definition at line 12 of file dungeon_room_edit.h.

◆ RoomPropertyLayout

Enumerator
kCompact 
kFull 

Definition at line 11 of file dungeon_room_property_controls.h.

◆ RoomSelectionIntent

Intent for room selection in the dungeon editor.

Enumerator
kFocusInWorkbench 
kOpenStandalone 
kPreview 

Definition at line 30 of file dungeon_room_selector.h.

◆ DungeonSelectionEditKind

Enumerator
kDelete 
kDuplicate 
kMove 
kPaste 

Definition at line 50 of file dungeon_selection_edit.h.

◆ DungeonSelectionKind

enum class yaze::editor::DungeonSelectionKind : uint8_t
strong
Enumerator
None 
ObjectSingle 
ObjectMulti 
Door 
Sprite 
Item 
EntityMulti 
Mixed 

Definition at line 14 of file dungeon_selection_snapshot.h.

◆ PlacementCapacityState

Enumerator
kNormal 
kNearLimit 
kAtLimit 

Definition at line 13 of file ghost_preview_feedback.h.

◆ EntityType

enum class yaze::editor::EntityType
strong

Type of entity that can be selected in the dungeon editor.

Enumerator
None 
Object 
Door 
Sprite 
Item 

Definition at line 26 of file interaction_context.h.

◆ MutationDomain

enum class yaze::editor::MutationDomain : uint8_t
strong

Domain/type of mutation for undo + invalidation routing.

Dungeon editing spans multiple independent data planes (tile objects, doors/sprites/items, custom collision, water fill zones, etc.). The editor can selectively capture undo/redo for some planes without polluting others.

Enumerator
kUnknown 
kTileObjects 
kDoors 
kSprites 
kItems 
kCustomCollision 
kWaterFill 

Definition at line 41 of file interaction_context.h.

◆ InteractionMode

enum class yaze::editor::InteractionMode
strong

Unified interaction mode for the dungeon editor.

Only ONE mode can be active at a time. This replaces the previous pattern of multiple boolean flags (object_loaded_, door_placement_mode_, sprite_placement_mode_, item_placement_mode_, is_dragging_, etc.).

State transitions: Select <-> PlaceObject (when user picks object from palette) Select <-> PlaceDoor (when user picks door type) Select <-> PlaceSprite (when user picks sprite) Select <-> PlaceItem (when user picks item) Select <-> DraggingObjects (when user starts drag on selection) Select <-> DraggingEntity (when user starts drag on entity) Select <-> RectangleSelect (when user starts drag on empty space)

Enumerator
Select 
PlaceObject 
PlaceDoor 
PlaceSprite 
PlaceItem 
DraggingObjects 
DraggingEntity 
RectangleSelect 
PaintCollision 
PaintWaterFill 

Definition at line 29 of file interaction_mode.h.

◆ ObjectEvidenceState

Enumerator
kUntriaged 
kReproduced 
kFixedAwaitingProof 
kVerified 
kIntentionalPreviewLimit 

Definition at line 25 of file object_coverage_model.h.

◆ CrumbleFloorCell

enum class yaze::editor::CrumbleFloorCell
strong
Enumerator
kOther 
kIntact 
kCracked 
kPit 

Definition at line 17 of file crumble_floor_model.h.

◆ DungeonWorkbenchToolRequestTarget

Enumerator
kEmbeddedInspector 
kStandaloneWindow 

Definition at line 68 of file dungeon_workbench_content.h.

◆ EditorType

enum class yaze::editor::EditorType
strong
Enumerator
kUnknown 
kAssembly 
kDungeon 
kEmulator 
kGraphics 
kMusic 
kOverworld 
kPalette 
kScreen 
kSprite 
kMessage 
kHex 
kAgent 
kSettings 
kPlanning 

Definition at line 210 of file editor.h.

◆ EditorContextDiagnosticSeverity

Enumerator
kInfo 
kWarning 
kError 

Definition at line 10 of file editor_context_snapshot.h.

◆ EditorContextActionKind

Enumerator
kOpenWindow 
kCommand 

Definition at line 16 of file editor_context_snapshot.h.

◆ PixelTool

enum class yaze::editor::PixelTool
strong

Pixel editing tool types for the graphics editor.

Enumerator
kSelect 
kLasso 
kPencil 
kBrush 
kEraser 
kFill 
kLine 
kRectangle 
kEyedropper 
kHand 

Definition at line 28 of file graphics_editor_state.h.

◆ GraphicsPaletteSelectorLayout

Enumerator
kStacked 
kInline 

Definition at line 13 of file palette_controls_panel.h.

◆ ScreenEditType

enum class yaze::editor::ScreenEditType
strong

Which screen type the snapshot belongs to.

Enumerator
kDungeonMap 
kTile16Edit 
kMenuTilemap 

Definition at line 23 of file screen_undo_actions.h.

◆ AnnotationPriority [1/2]

enum class yaze::editor::AnnotationPriority : int
strong

Annotation priority levels.

Enumerator
kNote 
kBug 
kBlocker 
kNote 
kBug 
kBlocker 

Definition at line 24 of file annotation_overlay_panel.h.

◆ LayoutType

enum class yaze::editor::LayoutType
strong

Predefined layout types for different editor workflows.

Enumerator
kDefault 
kOverworld 
kDungeon 
kGraphics 
kPalette 
kScreen 
kMusic 
kSprite 
kMessage 
kAssembly 
kSettings 
kEmulator 

Definition at line 26 of file layout_manager.h.

◆ LayoutScope

enum class yaze::editor::LayoutScope
strong

Storage scope for saved layouts.

Enumerator
kGlobal 
kProject 

Definition at line 45 of file layout_manager.h.

◆ DockPosition

enum class yaze::editor::DockPosition
strong

Preferred dock position for a card in a layout.

Enumerator
Center 
Left 
Right 
Bottom 
Top 
LeftBottom 
RightBottom 
RightTop 
LeftTop 

Definition at line 17 of file layout_presets.h.

◆ MessageBank

enum class yaze::editor::MessageBank
strong
Enumerator
kVanilla 
kExpanded 

Definition at line 156 of file message_data.h.

◆ MessageBankFilter

Enumerator
kAll 
kVanilla 
kExpanded 

Definition at line 18 of file message_list_query.h.

◆ AnnotationPriority [2/2]

enum class yaze::editor::AnnotationPriority : int
strong

Annotation priority levels.

Enumerator
kNote 
kBug 
kBlocker 
kNote 
kBug 
kBlocker 

Definition at line 24 of file annotation_overlay_panel.h.

◆ SpriteItemColumnID

Column IDs for the sprite table.

Enumerator
SpriteItemColumnID_ID 
SpriteItemColumnID_Name 
SpriteItemColumnID_Description 

Definition at line 68 of file entity.h.

◆ OverworldPropertyField

Enumerator
kAreaSize 
kAreaGraphics 
kAreaPalette 
kMainPalette 
kSpriteGraphics 
kSpritePalette 
kAnimatedGraphics 
kCustomTileset 
kMessageId 
kMusic 
kMosaic 
kMosaicExpanded 
kAreaSpecificBgColor 
kSubscreenOverlay 

Definition at line 10 of file overworld_property_edit.h.

◆ OverworldMapMetadataClipboardScope

Enumerator
kAll 
kGraphics 
kPalettes 
kMusicMessages 

Definition at line 27 of file overworld_property_edit.h.

◆ Tile16EditMode

enum class yaze::editor::Tile16EditMode
strong
Enumerator
kPaint 
kPick 
kUsageProbe 

Definition at line 24 of file tile16_edit_types.h.

◆ EditingMode

enum class yaze::editor::EditingMode
strong
Enumerator
MOUSE 
DRAW_TILE 
FILL_TILE 

Definition at line 87 of file ui_constants.h.

◆ EntityEditMode

enum class yaze::editor::EntityEditMode
strong
Enumerator
NONE 
ENTRANCES 
EXITS 
ITEMS 
SPRITES 
TRANSPORTS 
MUSIC 

Definition at line 89 of file ui_constants.h.

◆ PaletteCategory

enum class yaze::editor::PaletteCategory
strong

Categories for organizing palette groups in the UI.

Enumerator
kOverworld 
kDungeon 
kSprites 
kEquipment 
kMiscellaneous 

Definition at line 16 of file palette_category.h.

◆ StartupSurface

enum class yaze::editor::StartupSurface
strong

Represents the current startup surface state.

Single source of truth for startup UI visibility:

  • kWelcome: No ROM loaded, showing onboarding screen
  • kDashboard: ROM loaded, no active editor (editor chooser)
  • kEditor: Active editor/category selected
Enumerator
kWelcome 
kDashboard 
kEditor 

Definition at line 30 of file ui_coordinator.h.

◆ PopupType

enum class yaze::editor::PopupType
strong

Type classification for popups to enable future filtering and organization.

Enumerator
kInfo 
kHelp 
kSettings 
kFileOperation 
kConfirmation 
kWarning 
kEditor 

Definition at line 23 of file popup_manager.h.

◆ ToastType

enum class yaze::editor::ToastType
strong
Enumerator
kInfo 
kSuccess 
kWarning 
kError 

Definition at line 24 of file toast_manager.h.

◆ SelectionType

enum class yaze::editor::SelectionType
strong

Types of entities that can be selected and edited.

Enumerator
kNone 
kDungeonRoom 
kDungeonObject 
kDungeonSprite 
kDungeonEntrance 
kOverworldMap 
kOverworldTile 
kOverworldSprite 
kOverworldEntrance 
kOverworldExit 
kOverworldItem 
kGraphicsSheet 
kPalette 

Definition at line 28 of file selection_properties_panel.h.

◆ GotoKind

enum class yaze::editor::GotoKind
strong

Go-to queries typed into the command palette.

Grammar (case-insensitive, optional leading "go to" / "goto"): room|r|rm <id> dungeon room 0x000-0x127 map|ow <id> overworld map 0x00-0x9F msg|message <id> message 0x000-0xFFFF (editor validates) sprite|spr <id> sprite 0x00-0xFF The keyword and id are separated by whitespace and/or ':'.

Id formats. yaze shows ids in hex everywhere, so hex is the default: 4A 0x4A $4A 4Ah -> hex 0x4A #74 -> decimal 74 (the only decimal form)

Enumerator
kRoom 
kOverworldMap 
kMessage 
kSprite 

Definition at line 28 of file command_palette_goto.h.

◆ ProjectWorkflowState

Enumerator
kIdle 
kRunning 
kSuccess 
kFailure 

Definition at line 10 of file project_workflow_status.h.

◆ WindowLifecycle

enum class yaze::editor::WindowLifecycle
strong

Defines lifecycle behavior for editor windows.

Panels are categorized by how they behave when switching between editors:

  • EditorBound: Hidden when switching away from parent editor (default)
  • CrossEditor: User can "pin" to persist across editor switches

Panels that want always-visible behavior should declare CrossEditor and seed a default pin on first registration (see UserSettings revision-7 migration for the historical Persistent → CrossEditor collapse).

Enumerator
EditorBound 

Hidden when switching editors (default)

CrossEditor 

User can pin to persist across editors.

Definition at line 26 of file editor_panel.h.

◆ WindowContextScope

enum class yaze::editor::WindowContextScope : uint8_t
strong

Optional context binding for a window's behavior within an editor.

This does not change panel IDs by itself. WorkspaceWindowManager can use it to apply predictable default rules when a context becomes invalid (e.g. selection cleared) to avoid "mystery panels".

Most panels should remain kNone.

Enumerator
kNone 
kRoom 
kSelection 

Definition at line 41 of file editor_panel.h.

◆ WindowScope

enum class yaze::editor::WindowScope
strong

Defines whether a window is session-scoped or global.

Session-scoped panels are registered per session (with optional prefixing). Global panels share a single descriptor across all sessions.

Enumerator
kSession 
kGlobal 

Definition at line 54 of file editor_panel.h.

◆ WindowPresentationRole

enum class yaze::editor::WindowPresentationRole : uint8_t
strong

Product role for a registered workspace surface.

Registration describes ownership and lifetime. Presentation policy describes how users discover the same content. Keeping those concerns separate lets an embedded tool remain available to context actions and the command palette without automatically adding another row to every window browser.

Pick the role by asking where a user should meet the content first:

  • kCoreWorkspace: the editor's primary work surface (canvas, main editor). Visible by default. Needs an entry in FirstClassPanelAllowlist().
  • kEmbeddedTool: a tool that acts on the primary surface's selection or context. It belongs in another surface (inspector section, tool tab, canvas context-menu popup) and is not listed in the window browser.
  • kOptionalPopOut: a genuinely standalone window a user may choose to open or dock (reference browsers, catalogs). Listed, hidden by default.
  • kDiagnostic: developer, validation, or debug tooling. Not listed; reachable from the command palette and named host menus.
Enumerator
kCoreWorkspace 
kEmbeddedTool 
kOptionalPopOut 
kDiagnostic 

Definition at line 76 of file editor_panel.h.

◆ WindowDefaultHost

enum class yaze::editor::WindowDefaultHost : uint8_t
strong
Enumerator
kWorkspace 
kEmbedded 

Definition at line 83 of file editor_panel.h.

◆ ExperimentalSavePosture

Enumerator
kNormal 
kDefensiveBackup 
kReadOnly 

Definition at line 15 of file editor_registry.h.

Function Documentation

◆ ShowPatchExportDialog()

◆ QuickExportBPS()

void yaze::editor::QuickExportBPS ( Rom * rom)

Definition at line 128 of file patch_export_usage.cc.

References yaze::Rom::data(), yaze::platform::WasmPatchExport::ExportBPS(), yaze::Rom::filename(), and yaze::Rom::is_loaded().

Here is the call graph for this function:

◆ QuickExportIPS()

void yaze::editor::QuickExportIPS ( Rom * rom)

Definition at line 152 of file patch_export_usage.cc.

References yaze::Rom::data(), yaze::platform::WasmPatchExport::ExportIPS(), yaze::Rom::filename(), and yaze::Rom::is_loaded().

Here is the call graph for this function:

◆ DrawDiagnosticsPanel()

void yaze::editor::DrawDiagnosticsPanel ( std::span< const core::AssemblyDiagnostic > diagnostics,
const DiagnosticsPanelCallbacks & callbacks )

◆ REGISTER_PANEL() [1/20]

yaze::editor::REGISTER_PANEL ( CutsceneCameraPanel )

◆ CollectDungeonConnectedRoomLinkDiagnostics()

DungeonConnectedRoomLinkDiagnostics yaze::editor::CollectDungeonConnectedRoomLinkDiagnostics ( int room_id,
const zelda3::Room & room,
const std::function< bool(int, zelda3::DoorDirection)> & has_reciprocal_door )

Definition at line 172 of file dungeon_canvas_connected_view.cc.

References yaze::editor::DungeonConnectedRoomLink::direction, Door, yaze::editor::DungeonConnectedRoomLink::door_index, yaze::editor::DungeonConnectedRoomLink::door_type, ExtraPlacedObject, yaze::editor::DungeonConnectedRoomLink::from_room_id, yaze::editor::DungeonStaircaseIssue::from_room_id, yaze::zelda3::Room::GetDoors(), yaze::zelda3::Room::GetTileObjects(), yaze::editor::DungeonStaircaseIssue::header_room_id, Holewarp, yaze::zelda3::Room::holewarp(), yaze::zelda3::Room::holewarp_destination_room(), yaze::zelda3::IsRoomConnectionDoorType(), yaze::editor::DungeonStaircaseIssue::kind, yaze::zelda3::kNumberOfRooms, yaze::editor::DungeonConnectedRoomLinkDiagnostics::links, MissingDestination, NeighborRoomId(), yaze::zelda3::North, yaze::editor::DungeonConnectedRoomLink::object_id, yaze::editor::DungeonStaircaseIssue::object_id, OppositeDir(), yaze::editor::DungeonConnectedRoomLink::slot_index, yaze::editor::DungeonStaircaseIssue::slot_index, Staircase, yaze::zelda3::Room::staircase_destination_room(), yaze::editor::DungeonConnectedRoomLinkDiagnostics::staircase_issues, yaze::zelda3::Room::staircase_room(), yaze::editor::DungeonConnectedRoomLink::to_room_id, yaze::editor::DungeonConnectedRoomLink::type, and UnusedHeader.

Referenced by yaze::editor::DungeonCanvasViewer::BuildConnectedRoomGraph(), yaze::editor::DungeonCanvasViewer::BuildRoomMetadataSummary(), CollectDungeonConnectedRoomLinks(), and yaze::editor::DungeonCanvasViewer::DrawConnectedRoomMatrix().

◆ CollectDungeonConnectedRoomLinks()

std::vector< DungeonConnectedRoomLink > yaze::editor::CollectDungeonConnectedRoomLinks ( int room_id,
const zelda3::Room & room,
const std::function< bool(int, zelda3::DoorDirection)> & has_reciprocal_door )

Definition at line 280 of file dungeon_canvas_connected_view.cc.

References CollectDungeonConnectedRoomLinkDiagnostics(), and yaze::editor::DungeonConnectedRoomLinkDiagnostics::links.

Here is the call graph for this function:

◆ FormatDungeonConnectedLinkDescription()

◆ FormatDungeonStaircaseIssueDescription()

◆ DrawDungeonRoomPropertyFields()

◆ ToIssueCategoryIndex()

constexpr int yaze::editor::ToIssueCategoryIndex ( DungeonIssueCategory category)
constexpr

◆ GetIssueCategoryLabel()

◆ GetDefaultSelectionIssueCategory()

◆ NeighborRoomId()

◆ OppositeDir()

◆ SameDungeonDoors() [1/2]

bool yaze::editor::SameDungeonDoors ( const std::vector< Door > & first,
const std::vector< Door > & second )

◆ DungeonConnectionTargetRoom() [1/2]

absl::StatusOr< int > yaze::editor::DungeonConnectionTargetRoom ( int source_room_id,
const Door & door )

◆ PlanDungeonDoorConnection()

◆ DungeonConnectionTargetRoom() [2/2]

absl::StatusOr< int > yaze::editor::DungeonConnectionTargetRoom ( int source_room_id,
const zelda3::Room::Door & door )

◆ SameDungeonDoors() [2/2]

bool yaze::editor::SameDungeonDoors ( const std::vector< zelda3::Room::Door > & first,
const std::vector< zelda3::Room::Door > & second )

◆ DeriveDungeonEntranceCamera()

◆ ValidateDungeonEntranceCamera()

DungeonEntranceCameraValidation yaze::editor::ValidateDungeonEntranceCamera ( const DungeonEntranceCameraState & state)

Definition at line 77 of file dungeon_entrance_camera.cc.

References yaze::editor::DungeonEntranceCameraState::boundaries, yaze::editor::DungeonEntranceCameraDerived::boundaries, yaze::editor::DungeonEntranceCameraState::camera_x, yaze::editor::DungeonEntranceCameraDerived::camera_x, yaze::editor::DungeonEntranceCameraState::camera_y, yaze::editor::DungeonEntranceCameraDerived::camera_y, DeriveDungeonEntranceCamera(), yaze::editor::DungeonEntranceCameraValidation::differences, yaze::editor::DungeonEntranceCameraValidation::errors, yaze::editor::DungeonEntranceCameraValidation::expected, yaze::editor::DungeonEntranceCameraValidation::has_repairable_difference, yaze::zelda3::kRoomCensusRoomCount, yaze::editor::DungeonEntranceCameraState::player_x, yaze::editor::DungeonEntranceCameraState::player_y, yaze::editor::DungeonEntranceCameraState::quadrant, yaze::editor::DungeonEntranceCameraDerived::quadrant, yaze::editor::DungeonEntranceCameraValidation::quadrant_repair_safe, yaze::editor::DungeonEntranceCameraValidation::repair_source_valid, yaze::editor::DungeonEntranceCameraState::room_id, yaze::editor::DungeonEntranceCameraState::trigger_x, yaze::editor::DungeonEntranceCameraDerived::trigger_x, yaze::editor::DungeonEntranceCameraState::trigger_y, and yaze::editor::DungeonEntranceCameraDerived::trigger_y.

Referenced by yaze::editor::DungeonEditorV2::BuildContextSnapshot(), yaze::editor::DungeonEntrancesPanel::DrawCameraRepairPreview(), yaze::editor::DungeonEntrancesPanel::DrawCameraSafety(), yaze::editor::DungeonCanvasViewer::DrawRoomCanvasOverlays(), and yaze::editor::DungeonEditorV2::RepairEntranceCamera().

Here is the call graph for this function:

◆ BuildRepairedDungeonEntranceCamera()

◆ CaptureDungeonEntranceCamera()

◆ CaptureDungeonSpawnCamera()

◆ ApplyDungeonEntranceCameraState()

◆ ApplyDungeonSpawnCameraState()

◆ CanEditDungeonEntrance()

◆ MarkDungeonEntranceDirtyIfEditable()

bool yaze::editor::MarkDungeonEntranceDirtyIfEditable ( int slot_index,
zelda3::RoomEntrance & entrance,
bool properties_changed )
inline

◆ CanEditDungeonSpawnPoint()

◆ MarkDungeonSpawnPointDirtyIfEditable()

bool yaze::editor::MarkDungeonSpawnPointDirtyIfEditable ( int slot_index,
zelda3::DungeonSpawnPoint & spawn,
bool properties_changed )
inline

◆ ResolveDungeonObjectSelectorGridLayout()

◆ ResolveDungeonObjectPreviewFit()

◆ MatchesDungeonObjectStreamFilter()

bool yaze::editor::MatchesDungeonObjectStreamFilter ( int object_id,
int selected_filter )

◆ IsDungeonCustomObjectRuntimeSlot()

bool yaze::editor::IsDungeonCustomObjectRuntimeSlot ( int object_id,
int subtype )

◆ IsMinecartGraphicsRuntimeSlot()

bool yaze::editor::IsMinecartGraphicsRuntimeSlot ( int object_id,
int subtype )

Definition at line 170 of file dungeon_object_selector.cc.

References yaze::zelda3::IsMinecartTrackGraphicsSubtype().

Referenced by yaze::editor::DungeonObjectSelector::DrawCustomObjectAssetBrowser().

Here is the call graph for this function:

◆ GetDungeonCustomObjectSlotName()

std::string yaze::editor::GetDungeonCustomObjectSlotName ( int object_id,
int subtype )

◆ GetDungeonOverlayControlSpecs()

const std::array< DungeonOverlayControlSpec, 13 > & yaze::editor::GetDungeonOverlayControlSpecs ( )

Definition at line 33 of file dungeon_overlay_controls.cc.

Referenced by DrawDungeonOverlayControls().

◆ DungeonLayerControlsWidth()

float yaze::editor::DungeonLayerControlsWidth ( )

◆ DrawDungeonLayerControls()

◆ DrawDungeonOverlayControls()

◆ GetDungeonOverlayControlEnabled()

◆ SetDungeonOverlayControlEnabled()

◆ ParseProposalColor()

absl::StatusOr< uint32_t > yaze::editor::ParseProposalColor ( std::string_view text)

Definition at line 159 of file dungeon_proposal_overlay.cc.

Referenced by ParseDungeonProposalOverlay().

◆ ParseDungeonProposalOverlay()

◆ ProposalTileRectToPixels()

◆ ProposalTileCenter()

◆ ProposalRoomOriginX()

float yaze::editor::ProposalRoomOriginX ( int index,
float gap_pixels )

◆ ProposalDistanceToSegment()

float yaze::editor::ProposalDistanceToSegment ( float px,
float py,
float ax,
float ay,
float bx,
float by )

Definition at line 324 of file dungeon_proposal_overlay.cc.

Referenced by ProposalShapeHitTest().

◆ ProposalShapeHitTest()

bool yaze::editor::ProposalShapeHitTest ( const ProposalShape & shape,
float px,
float py,
float tolerance )

◆ DungeonEntrancePreviewLabel()

std::string yaze::editor::DungeonEntrancePreviewLabel ( int slot)

◆ DungeonRenderContextSourceName() [1/2]

◆ DungeonRenderContextSourceName() [2/2]

◆ ResolveDungeonRenderContext()

◆ PrepareCanonicalRoomComposite()

◆ ReadDungeonRoomDocumentFile()

absl::StatusOr< std::string > yaze::editor::ReadDungeonRoomDocumentFile ( const std::string & path)

Definition at line 14 of file dungeon_room_document_file.cc.

References kMaxDungeonRoomDocumentBytes, ParseDungeonRoomDocument(), and RETURN_IF_ERROR.

Referenced by LoadDungeonRoomTransferFile(), and WriteDungeonRoomDocumentFile().

Here is the call graph for this function:

◆ WriteDungeonRoomDocumentFile()

absl::Status yaze::editor::WriteDungeonRoomDocumentFile ( const std::string & path,
const std::string & json )

◆ ValidateRoomMetadataEdit()

absl::Status yaze::editor::ValidateRoomMetadataEdit ( const RoomMetadataEdit & edit)

◆ ApplyRoomMetadataEdit()

◆ CaptureDungeonRoomDocument()

◆ SameDungeonRoomDocument()

◆ ValidateDungeonRoomDocument()

absl::Status yaze::editor::ValidateDungeonRoomDocument ( const DungeonRoomDocument & document)

◆ ValidateDungeonRoomDocumentForInterchange()

absl::Status yaze::editor::ValidateDungeonRoomDocumentForInterchange ( const DungeonRoomDocument & document)

Definition at line 232 of file dungeon_room_transfer.cc.

References kTransferAll.

Referenced by ParseDungeonRoomDocument(), and SerializeDungeonRoomDocument().

◆ PlanDungeonRoomTransfer()

absl::StatusOr< DungeonRoomTransferPlan > yaze::editor::PlanDungeonRoomTransfer ( const zelda3::Room & target,
const DungeonRoomDocument & source,
DungeonRoomTransferOptions options )

Definition at line 237 of file dungeon_room_transfer.cc.

References yaze::editor::DungeonRoomTransferPlan::after, yaze::editor::DungeonRoomTransferPlan::before, CaptureDungeonRoomDocument(), yaze::editor::DungeonSelectionEditState::chests, yaze::editor::DungeonRoomDocument::collision, yaze::editor::DungeonRoomDocument::contents, yaze::editor::DungeonRoomTransferOptions::copy_destinations, yaze::editor::DungeonRoomTransferOptions::domains, yaze::editor::DungeonSelectionEditState::doors, yaze::zelda3::Room::MetadataSnapshot::holewarp, yaze::zelda3::Room::id(), yaze::editor::DungeonSelectionEditState::items, yaze::zelda3::kMaxDungeonSpriteset, yaze::zelda3::kNumberOfRooms, kTransferAll, kTransferCollision, kTransferDoors, kTransferItems, kTransferMetadata, kTransferObjects, kTransferSprites, kTransferWater, yaze::editor::DungeonRoomDocument::metadata, yaze::editor::DungeonSelectionEditState::objects, yaze::editor::DungeonRoomTransferPlan::options, yaze::zelda3::Room::MetadataSnapshot::pit_target_layer, RETURN_IF_ERROR, yaze::editor::DungeonRoomTransferPlan::rom, yaze::zelda3::Room::rom(), yaze::editor::DungeonSelectionEditState::sprites, yaze::zelda3::Room::MetadataSnapshot::spriteset, yaze::zelda3::Room::spriteset(), yaze::zelda3::Room::MetadataSnapshot::staircase_planes, yaze::zelda3::Room::MetadataSnapshot::staircase_rooms, yaze::editor::DungeonRoomTransferPlan::target_room_id, and yaze::editor::DungeonRoomDocument::water.

Referenced by yaze::editor::DungeonEditorV2::ApplyRoomTransfer(), and yaze::editor::DungeonEditorV2::PreviewRoomTransfer().

Here is the call graph for this function:

◆ ApplyDungeonRoomDocument()

◆ SerializeDungeonRoomDocument()

◆ ParseDungeonRoomDocument()

◆ CaptureDungeonSelectionEditState()

◆ ChangedDungeonSelectionDomains()

◆ CopyDungeonSelection()

◆ PlanDungeonSelectionEdit()

absl::StatusOr< DungeonSelectionEditPlan > yaze::editor::PlanDungeonSelectionEdit ( const zelda3::Room & room,
const DungeonSelectionEditRequest & request )

Definition at line 321 of file dungeon_selection_edit.cc.

References yaze::editor::DungeonSelectionEditPlan::after, ASSIGN_OR_RETURN, yaze::editor::DungeonSelectionEditPlan::before, CaptureDungeonSelectionEditState(), ChangedDungeonSelectionDomains(), yaze::zelda3::Chest, yaze::editor::DungeonSelectionEditState::chests, yaze::editor::DungeonSelectionEditRequest::clipboard, CopyDungeonSelection(), yaze::editor::DungeonSelectionEditRequest::delta_x_pixels, yaze::editor::DungeonSelectionEditRequest::delta_y_pixels, yaze::editor::DungeonSelectionEditPlan::domains, yaze::editor::DungeonSelectionEditState::doors, yaze::editor::DungeonSelectionClipboard::doors, yaze::editor::DungeonSelectionEditRequest::entities, yaze::zelda3::Room::id(), yaze::zelda3::IsStatefulChestObjectId(), yaze::editor::DungeonSelectionClipboard::items, kDelete, kDuplicate, yaze::editor::DungeonSelectionEditRequest::kind, yaze::editor::DungeonSelectionEditPlan::kind, yaze::zelda3::kMaxDoors, yaze::zelda3::kMaxTileObjects, yaze::zelda3::kMaxTotalSprites, kMove, kPaste, kSelectionObjects, yaze::editor::DungeonSelectionClipboard::object_chests, yaze::editor::DungeonSelectionEditState::objects, yaze::editor::DungeonSelectionClipboard::objects, yaze::editor::DungeonSelectionEditRequest::objects, yaze::zelda3::PlanChestObjectEdit(), RETURN_IF_ERROR, yaze::zelda3::Room::rom(), yaze::editor::DungeonSelectionEditPlan::room_id, yaze::editor::DungeonSelectionEditState::selected_entities, yaze::editor::DungeonSelectionEditState::selected_objects, yaze::editor::DungeonSelectionEditState::sprites, yaze::editor::DungeonSelectionClipboard::sprites, and yaze::zelda3::UsesRoomObjectStream().

Referenced by yaze::editor::InteractionCoordinator::CommitSelectionEdit().

◆ ApplyDungeonSelectionEditState()

◆ AppendDungeonSelectionSummaryPart()

void yaze::editor::AppendDungeonSelectionSummaryPart ( std::vector< std::string > * parts,
size_t count,
const char * singular,
const char * plural = nullptr )
inline

Definition at line 50 of file dungeon_selection_snapshot.h.

Referenced by GetDungeonSelectionSummaryText().

◆ BuildDungeonSelectionSnapshot()

◆ GetDungeonSelectionSummaryText()

◆ GetDungeonSelectionKindLabel()

const char * yaze::editor::GetDungeonSelectionKindLabel ( DungeonSelectionKind kind)
inline

◆ GetDungeonChestItemLabel() [1/2]

std::string yaze::editor::GetDungeonChestItemLabel ( uint8_t item_id)

Definition at line 192 of file dungeon_chest_editor.cc.

References yaze::zelda3::GetItemReceiptLabel().

Referenced by yaze::editor::anonymous_namespace{dungeon_chest_editor.cc}::ItemPreview().

Here is the call graph for this function:

◆ GetDungeonChestItemLabel() [2/2]

std::string yaze::editor::GetDungeonChestItemLabel ( uint8_t item_id,
const project::YazeProject * project )

Definition at line 196 of file dungeon_chest_editor.cc.

References yaze::zelda3::GetItemReceiptLabel(), and yaze::project::YazeProject::resource_labels.

Here is the call graph for this function:

◆ DrawDungeonChestEditor()

◆ DrawDungeonConnectionEditor()

◆ DrawDungeonDestinationEditor()

◆ DrawDungeonPotItemSaveNotice()

void yaze::editor::DrawDungeonPotItemSaveNotice ( )

◆ DrawDungeonEntityInspector()

◆ LoadDungeonRoomTransferFile()

◆ DrawDungeonRoomTransferEditor()

◆ DrawDungeonRoomTransferPopup()

◆ GetPlacementCapacityState()

◆ GetPlacementAccentColor()

◆ GetPlacementCapacityStatusText()

std::string_view yaze::editor::GetPlacementCapacityStatusText ( PlacementCapacityState state)
inline

◆ GetPlacementCapacityTooltipSuffix()

◆ DrawPlacementCapacityBadge()

void yaze::editor::DrawPlacementCapacityBadge ( ImDrawList * draw_list,
const ImVec2 & badge_min,
const AgentUITheme & theme,
PlacementCapacityState state,
std::string_view primary_text )
inline

◆ GetPlacementSummaryColor()

ImVec4 yaze::editor::GetPlacementSummaryColor ( const AgentUITheme & theme,
size_t current_count,
size_t max_count,
const ImVec4 & normal_color )
inline

Definition at line 107 of file ghost_preview_feedback.h.

References GetPlacementAccentColor(), and GetPlacementCapacityState().

Referenced by yaze::editor::ObjectSelectorContent::DrawInteractionSummary().

Here is the call graph for this function:

◆ ObjectEvidenceStateKey()

const char * yaze::editor::ObjectEvidenceStateKey ( ObjectEvidenceState state)

◆ ObjectEvidenceStateLabel()

◆ ParseObjectEvidenceState()

std::optional< ObjectEvidenceState > yaze::editor::ParseObjectEvidenceState ( std::string_view key)

Definition at line 101 of file object_coverage_model.cc.

References kAllObjectEvidenceStates, and ObjectEvidenceStateKey().

Referenced by yaze::editor::ObjectEvidenceStore::FromJson().

Here is the call graph for this function:

◆ ReleaseFocusGroups()

const std::vector< ReleaseFocusGroup > & yaze::editor::ReleaseFocusGroups ( )

◆ ReleaseFocusGroupFor()

◆ OrderObjectsForReview()

std::vector< int > yaze::editor::OrderObjectsForReview ( const std::vector< int16_t > & object_ids)

Definition at line 336 of file object_coverage_model.cc.

References ReleaseFocusGroupFor(), and ReleaseFocusGroups().

Referenced by yaze::editor::ObjectCoveragePanel::RebuildIndex().

Here is the call graph for this function:

◆ NextObjectToCheck()

std::optional< int > yaze::editor::NextObjectToCheck ( const std::vector< int > & review_order,
const ObjectEvidenceStore & evidence,
const ObjectUsageIndex & usage,
std::optional< int > after_object_id )

◆ SafeEvidenceFileName()

std::string yaze::editor::SafeEvidenceFileName ( std::string_view name)

◆ IsPlainCaptureDir()

bool yaze::editor::IsPlainCaptureDir ( const std::filesystem::path & dir)

◆ LoadGameCaptureManifest()

absl::StatusOr< GameCaptureManifest > yaze::editor::LoadGameCaptureManifest ( const std::filesystem::path & dir)

◆ GameCaptureRoomPath()

std::filesystem::path yaze::editor::GameCaptureRoomPath ( const std::filesystem::path & dir,
int room_id )

◆ ProposeAutomaticVerdicts()

◆ FindObjectsWithCustomDrawCode()

std::map< int, ObjectCustomDrawCode > yaze::editor::FindObjectsWithCustomDrawCode ( const std::vector< zelda3::ObjectDrawCode > & draw_code,
const std::vector< core::ProtectedRegion > & hooks )

◆ FormatObjectId()

◆ ClassifyCrumbleFloorWord()

CrumbleFloorCell yaze::editor::ClassifyCrumbleFloorWord ( uint16_t word)

Definition at line 7 of file crumble_floor_model.cc.

References kCracked, kIntact, kOther, and kPit.

Referenced by yaze::editor::CrumbleFloorModel::Rebuild().

◆ HasOracleCrumbleTag()

◆ ReadCrumbleFloorWords()

CrumbleFloorModel::Words yaze::editor::ReadCrumbleFloorWords ( const zelda3::Room & room)

Definition at line 47 of file crumble_floor_view.cc.

References yaze::zelda3::Room::bg1_buffer(), and yaze::zelda3::Room::object_bg1_buffer().

Referenced by yaze::editor::CrumbleFloorView::Sync().

Here is the call graph for this function:

◆ MinecartLocalPosition()

◆ FindCartStartSprite()

absl::StatusOr< size_t > yaze::editor::FindCartStartSprite ( const zelda3::Room & room,
const MinecartTrack & start )

◆ ValidateCartStartDestination()

◆ PreviewMinecartCollisionStamp()

◆ ResolveDungeonIssueReportPaths()

◆ BuildDungeonIssueScreenshotPath()

absl::StatusOr< std::filesystem::path > yaze::editor::BuildDungeonIssueScreenshotPath ( int room_id,
const std::string & category_label,
const std::string & timestamp_slug )

Definition at line 106 of file dungeon_issue_report_storage.cc.

References ResolveDungeonIssueReportPaths().

Referenced by yaze::editor::DungeonCanvasViewer::CaptureIssueReportScreenshot().

Here is the call graph for this function:

◆ AppendDungeonIssueLogEntry()

◆ CurrentDungeonWindowContext()

DungeonWindowContext yaze::editor::CurrentDungeonWindowContext ( )
inline

Definition at line 11 of file dungeon_panel_access.h.

Referenced by yaze::editor::RoomGraphicsContent::Draw().

◆ BuildPitDamageMembershipState()

◆ AddCurrentRoomToPitDamage()

absl::Status yaze::editor::AddCurrentRoomToPitDamage ( zelda3::PitDamageTable * table,
uint16_t current_room_id,
uint16_t victim_room_id )

◆ RemoveCurrentRoomFromPitDamage()

absl::Status yaze::editor::RemoveCurrentRoomFromPitDamage ( zelda3::PitDamageTable * table,
uint16_t current_room_id,
uint16_t replacement_room_id )

◆ ResolveDungeonWorkbenchToolRequestTarget()

DungeonWorkbenchToolRequestTarget yaze::editor::ResolveDungeonWorkbenchToolRequestTarget ( bool standalone_window_open)

◆ ResolveDungeonWorkbenchResponsiveLayout()

DungeonWorkbenchResponsiveLayout yaze::editor::ResolveDungeonWorkbenchResponsiveLayout ( float total_width,
float min_canvas_width,
float min_sidebar_width,
float splitter_width,
bool want_left,
bool want_right )

◆ ResolveDungeonWorkbenchPaneLayout()

◆ DrawDungeonWorkbenchVerticalSplitter()

bool yaze::editor::DrawDungeonWorkbenchVerticalSplitter ( const char * id,
float height,
float * pane_width,
float min_width,
float max_width,
bool resize_from_left_edge,
float collapse_threshold )

Definition at line 20 of file dungeon_workbench_layout.cc.

References yaze::gui::GetOutlineVec4(), and yaze::gui::UIConfig::kSplitterWidth.

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

Here is the call graph for this function:

◆ EditorTypeIndex()

◆ ParseEditorTypeFromString()

std::optional< EditorType > yaze::editor::ParseEditorTypeFromString ( absl::string_view name)

◆ ValidateGraphicsPaletteAddressing()

◆ ResolveGraphicsPaletteAddressing()

◆ UpdateGraphicsContextPalettes()

◆ MakeDungeonGraphicsEditContext()

◆ ResolveGraphicsPreviewPalette()

◆ SetGraphicsPreviewPalette()

◆ RefreshGraphicsPreviewPalettes()

◆ VerifyWrittenSheetPixels()

absl::Status yaze::editor::VerifyWrittenSheetPixels ( const Rom & rom,
uint16_t sheet_id,
const std::vector< uint8_t > & expected_pixels,
const zelda3::GfxSheetPointerTables & tables )

Decodes a written sheet with the game's decoder (ReadGfxSheetData) and, for compressed sheets, with the editor's loader (DecompressV2), and compares both with the edited pixels (128x32 indices). DataLoss on any difference.

Definition at line 11 of file graphics_save_plan.cc.

References ASSIGN_OR_RETURN, yaze::Rom::data(), yaze::gfx::lc_lz2::DecompressV2(), yaze::zelda3::GetGfxSheetStorageKind(), yaze::zelda3::kCompressed3bpp, yaze::zelda3::kGfxSheet3bppBytes, yaze::zelda3::ReadGfxSheetData(), yaze::zelda3::ReadGfxSheetPc(), yaze::Rom::size(), and yaze::gfx::SnesTo8bppSheet().

◆ DescribeGraphicsSavePlanEntry()

◆ MakeSheetPixelDiff()

SheetPixelDiff yaze::editor::MakeSheetPixelDiff ( uint16_t sheet,
absl::Span< const uint8_t > before,
absl::Span< const uint8_t > after )

◆ AttachSheetStore()

void yaze::editor::AttachSheetStore ( GraphicsEditorState & state,
zelda3::GameData * game_data )

◆ ActiveSheetStore()

zelda3::GraphicsSheetStore * yaze::editor::ActiveSheetStore ( const GraphicsEditorState & state)

◆ RefreshArenaSheet()

void yaze::editor::RefreshArenaSheet ( GraphicsEditorState & state,
uint16_t sheet )

◆ CommitSheetPixels()

absl::Status yaze::editor::CommitSheetPixels ( GraphicsEditorState & state,
uint16_t sheet,
absl::Span< const uint8_t > pixels )

Replaces a sheet through the store (one revision), refreshes its Arena copy and marks it modified.

Definition at line 76 of file graphics_sheet_sync.cc.

References ActiveSheetStore(), yaze::editor::GraphicsEditorState::MarkSheetModified(), and RefreshArenaSheet().

Referenced by ApplySheetPixelDiff(), and ApplySheetPngImport().

Here is the call graph for this function:

◆ ApplySheetPixelDiff()

absl::Status yaze::editor::ApplySheetPixelDiff ( GraphicsEditorState & state,
const SheetPixelDiff & diff,
bool redo )

◆ SyncArenaFromStore()

int yaze::editor::SyncArenaFromStore ( GraphicsEditorState & state)

Refreshes the Arena bitmaps whose store revision moved since their last refresh. Returns how many were refreshed.

Definition at line 114 of file graphics_sheet_sync.cc.

References ActiveSheetStore(), yaze::editor::GraphicsEditorState::arena_revisions, and RefreshArenaSheet().

Referenced by yaze::editor::GraphicsEditor::Update().

Here is the call graph for this function:

◆ DrawGraphicsPreviewPaletteSelector()

◆ PlanPalettePixelPermutation()

◆ ExecutePalettePixelPlan()

◆ ApplyPalettePixelPermutation()

absl::Status yaze::editor::ApplyPalettePixelPermutation ( GraphicsEditorState & state,
UndoManager & history,
const std::vector< size_t > & targets,
const PalettePermutation & permutation )

◆ EncodeClipboardPng()

absl::StatusOr< std::vector< uint8_t > > yaze::editor::EncodeClipboardPng ( const std::vector< uint8_t > & indices,
int width,
int height,
const SheetColors & colors )

Pixels as an indexed PNG in the sheet's colors, index 0 transparent, for the system clipboard. Indices must be 0-7.

Definition at line 13 of file pixel_clipboard.cc.

References yaze::util::EncodeIndexedPng().

Referenced by yaze::editor::PixelEditorPanel::CopyToSystemClipboard().

Here is the call graph for this function:

◆ MapClipboardPng()

absl::StatusOr< ClipboardPaste > yaze::editor::MapClipboardPng ( const std::vector< uint8_t > & png_bytes,
const SheetColors & colors,
int max_width = 128,
int max_height = 32 )

Maps a PNG onto the sheet's colors. An indexed PNG that only uses indices 0-7 keeps its indices. Otherwise each pixel maps by color: transparent pixels to 0, exact matches to that index, anything else to the nearest of colors 1-7 (counted as remapped). Indexed pixels above 7 are also counted in above_depth so the preview can flag them. Refuses images larger than max_width x max_height.

Definition at line 28 of file pixel_clipboard.cc.

References yaze::editor::ClipboardPaste::above_depth, ASSIGN_OR_RETURN, yaze::util::DecodePng(), yaze::editor::ClipboardPaste::exact, yaze::editor::ClipboardPaste::height, yaze::util::PngImage::height, yaze::util::PngImage::indexed, yaze::editor::ClipboardPaste::indices, yaze::util::PngImage::indices, yaze::editor::ClipboardPaste::kept, yaze::util::PngImage::palette, yaze::editor::ClipboardPaste::remapped, yaze::util::PngImage::rgba, yaze::editor::ClipboardPaste::transparent, yaze::editor::ClipboardPaste::width, and yaze::util::PngImage::width.

Referenced by yaze::editor::PixelEditorPanel::PasteFromSystemClipboard().

Here is the call graph for this function:

◆ DescribeClipboardPaste()

◆ AppendResolvedGraphicsContext()

◆ RenderDungeonMapTilesGfxPreview()

◆ MakeDungeonMapTilesGfxEditContext()

◆ ExportSheetPixelsPng()

absl::StatusOr< std::vector< uint8_t > > yaze::editor::ExportSheetPixelsPng ( uint16_t sheet_id,
const std::vector< uint8_t > & indexed_pixels,
const zelda3::SheetPalette & palette )

Indexed PNG of a 3bpp sheet, laid out like z3ed gfx-export (16x16 blocks, 8 per row). Refuses 2bpp sheets and pixels above index 7.

Definition at line 69 of file sheet_png_transfer.cc.

References yaze::zelda3::ExportSheetBlocksPng(), yaze::gfx::IndexedToSnesSheet(), and RETURN_IF_ERROR.

Referenced by yaze::editor::SheetBrowserPanel::DrawPngTransfer().

Here is the call graph for this function:

◆ PreviewSheetPngImport()

absl::StatusOr< SheetPngImportPreview > yaze::editor::PreviewSheetPngImport ( uint16_t sheet_id,
const std::vector< uint8_t > & indexed_pixels,
const std::vector< uint8_t > & png_bytes,
const zelda3::SheetPalette & palette,
int first_block = 0 )

Places a PNG over a sheet from 16x16 block first_block (0-15, row-major over the 8x2 blocks) without changing anything. The PNG must be a multiple of 16 pixels on each side and fit from that block; indexed PNGs must use indices 0-7, RGB PNGs exactly the palette's colors. Offending pixels are listed in the error, never clamped.

Definition at line 77 of file sheet_png_transfer.cc.

References ASSIGN_OR_RETURN, yaze::util::DecodePng(), yaze::zelda3::ImportSheetBlocksPng(), yaze::gfx::IndexedToSnesSheet(), and RETURN_IF_ERROR.

Referenced by yaze::editor::SheetBrowserPanel::DrawPngTransfer().

Here is the call graph for this function:

◆ PreviewRoomPngImport()

absl::StatusOr< std::vector< SheetPngImportPreview > > yaze::editor::PreviewRoomPngImport ( const Rom & rom,
const zelda3::RoomBackgroundSet & set,
const std::vector< uint8_t > & png_bytes,
const zelda3::SheetPalette & palette )

Splits a 128x256 room background PNG (z3ed gfx-room-export layout) into the room's sheets, read from the ROM. Returns only sheets that change.

Definition at line 90 of file sheet_png_transfer.cc.

References ASSIGN_OR_RETURN, yaze::util::DecodePng(), and yaze::zelda3::ImportRoomBackgroundPng().

Referenced by yaze::editor::SheetBrowserPanel::DrawPngTransfer().

Here is the call graph for this function:

◆ ApplySheetPngImport()

absl::Status yaze::editor::ApplySheetPngImport ( const SheetPngImportPreview & preview,
GraphicsEditorState & state,
UndoManager * undo_manager )

Writes a previewed import through the session's sheet store, marks the sheet modified and pushes one undoable step. Refuses when this ROM's graphics are not loaded or another open ROM's sheets are on screen.

Definition at line 105 of file sheet_png_transfer.cc.

References ActiveSheetStore(), CommitSheetPixels(), yaze::editor::SheetPixelDiff::empty(), yaze::editor::SheetPngImportPreview::indexed_pixels, MakeSheetPixelDiff(), yaze::editor::UndoManager::Push(), RETURN_IF_ERROR, and yaze::editor::SheetPngImportPreview::sheet_id.

Referenced by yaze::editor::SheetBrowserPanel::DrawPngTransfer().

◆ DescribeSheetPngImport()

std::string yaze::editor::DescribeSheetPngImport ( const SheetPngImportPreview & preview)

◆ ShortcutLabelForAction()

std::string yaze::editor::ShortcutLabelForAction ( const ShortcutManager * shortcut_manager,
absl::string_view action )

Definition at line 10 of file menu_shortcut_labels.cc.

References yaze::editor::ShortcutManager::GetDisplayString().

Referenced by yaze::editor::MenuOrchestrator::GetShortcutForAction().

Here is the call graph for this function:

◆ BuildRecentFileMenuEntries()

std::vector< RecentFileMenuEntry > yaze::editor::BuildRecentFileMenuEntries ( const std::vector< std::string > & recent_paths,
size_t max_entries,
const RecentFileExistsFn & exists )

◆ GetDrawerCatalog()

◆ GetPanelShortcutAction()

◆ GetPanelTypeName()

◆ GetPanelTypeIcon()

◆ GetDrawerTypeName()

const char * yaze::editor::GetDrawerTypeName ( RightDrawerManager::DrawerType type)
inline

Definition at line 433 of file right_drawer_manager.h.

References GetPanelTypeName().

Referenced by yaze::editor::EditorManager::DrawInterface().

Here is the call graph for this function:

◆ GetDrawerTypeIcon()

const char * yaze::editor::GetDrawerTypeIcon ( RightDrawerManager::DrawerType type)
inline

Definition at line 437 of file right_drawer_manager.h.

References GetPanelTypeIcon().

Here is the call graph for this function:

◆ GetDrawerShortcutAction()

const char * yaze::editor::GetDrawerShortcutAction ( RightDrawerManager::DrawerType type)
inline

Definition at line 441 of file right_drawer_manager.h.

References GetPanelShortcutAction().

Here is the call graph for this function:

◆ GetExpandedTextDataStart()

◆ GetExpandedTextDataEnd()

◆ FindMatchingCharacter()

uint8_t yaze::editor::FindMatchingCharacter ( char value)

◆ FindDictionaryEntry()

int8_t yaze::editor::FindDictionaryEntry ( uint8_t value)

Definition at line 76 of file message_data.cc.

References DICTOFF.

Referenced by ParseSingleMessage(), ParseTextDataByte(), and ReadAllTextData().

◆ FindMatchingCommand()

◆ FindMatchingSpecial()

std::optional< TextElement > yaze::editor::FindMatchingSpecial ( uint8_t value)

◆ FindMatchingElement()

ParsedElement yaze::editor::FindMatchingElement ( const std::string & str)

Definition at line 103 of file message_data.cc.

References DICTIONARYTOKEN, DICTOFF, kNumDictionaryEntries, and yaze::util::logf().

Referenced by ParseMessageToData(), and ParseMessageToDataWithDiagnostics().

Here is the call graph for this function:

◆ ParseTextDataByte()

std::string yaze::editor::ParseTextDataByte ( uint8_t value)

◆ ParseMessageToData()

◆ ParseMessageToDataWithDiagnostics()

◆ MessageBankToString()

◆ MessageBankFromString()

absl::StatusOr< MessageBank > yaze::editor::MessageBankFromString ( std::string_view value)

◆ BuildDictionaryEntries()

std::vector< DictionaryEntry > yaze::editor::BuildDictionaryEntries ( Rom * rom)

◆ ReadDictionaryEntryBytes()

std::vector< std::vector< uint8_t > > yaze::editor::ReadDictionaryEntryBytes ( const uint8_t * rom,
size_t rom_size )

Definition at line 354 of file message_data.cc.

References kNumDictionaryEntries, kPointersDictionaries, and yaze::SnesToPc().

Referenced by yaze::cli::handlers::anonymous_namespace{message_commands.cc}::PlanVanillaEdits().

Here is the call graph for this function:

◆ ExpandMessageDictionary()

std::vector< uint8_t > yaze::editor::ExpandMessageDictionary ( const std::vector< uint8_t > & data,
const std::vector< std::vector< uint8_t > > & dictionary )

Definition at line 381 of file message_data.cc.

References DICTOFF, and FindMatchingCommand().

Referenced by yaze::cli::handlers::anonymous_namespace{message_commands.cc}::PlanVanillaEdits().

Here is the call graph for this function:

◆ CompressMessageWithDictionary()

std::vector< uint8_t > yaze::editor::CompressMessageWithDictionary ( const std::vector< uint8_t > & data,
const std::vector< std::vector< uint8_t > > & dictionary )

Definition at line 404 of file message_data.cc.

References DICTOFF, and FindMatchingCommand().

Referenced by yaze::cli::handlers::anonymous_namespace{message_commands.cc}::PlanVanillaEdits().

Here is the call graph for this function:

◆ ReplaceAllDictionaryWords()

std::string yaze::editor::ReplaceAllDictionaryWords ( std::string str,
const std::vector< DictionaryEntry > & dictionary )

◆ FindTextMatch()

std::optional< size_t > yaze::editor::FindTextMatch ( std::string_view text,
std::string_view query,
size_t start_pos,
bool case_sensitive,
bool match_whole_word )

Definition at line 479 of file message_data.cc.

Referenced by ReplaceTextMatches().

◆ ReplaceTextMatches()

int yaze::editor::ReplaceTextMatches ( std::string * text,
std::string_view query,
std::string_view replacement,
size_t start_pos,
bool replace_all,
bool case_sensitive,
bool match_whole_word,
size_t * first_replaced_pos )

Definition at line 509 of file message_data.cc.

References FindTextMatch().

Here is the call graph for this function:

◆ FindRealDictionaryEntry()

DictionaryEntry yaze::editor::FindRealDictionaryEntry ( uint8_t value,
const std::vector< DictionaryEntry > & dictionary )

Definition at line 545 of file message_data.cc.

References DICTOFF.

Referenced by yaze::editor::MessagePreview::DrawCharacterToPreview().

◆ ParseSingleMessage()

absl::StatusOr< MessageData > yaze::editor::ParseSingleMessage ( const std::vector< uint8_t > & rom_data,
int * current_pos )

◆ ParseMessageData()

std::vector< std::string > yaze::editor::ParseMessageData ( std::vector< MessageData > & message_data,
const std::vector< DictionaryEntry > & dictionary_entries )

◆ ReadAllTextData()

◆ LoadExpandedMessages()

absl::Status yaze::editor::LoadExpandedMessages ( std::string & expanded_message_path,
std::vector< std::string > & parsed_messages,
std::vector< MessageData > & expanded_messages,
std::vector< DictionaryEntry > & dictionary )

Definition at line 837 of file message_data.cc.

References yaze::Rom::LoadFromFile(), yaze::Rom::mutable_data(), ParseMessageData(), and ReadAllTextData().

Referenced by yaze::editor::MessageEditor::LoadExpandedMessagesFromBin().

Here is the call graph for this function:

◆ SerializeMessagesToJson()

nlohmann::json yaze::editor::SerializeMessagesToJson ( const std::vector< MessageData > & messages)

Definition at line 855 of file message_data.cc.

Referenced by ExportMessagesToJson().

◆ ExportMessagesToJson()

absl::Status yaze::editor::ExportMessagesToJson ( const std::string & path,
const std::vector< MessageData > & messages )

Definition at line 867 of file message_data.cc.

References SerializeMessagesToJson().

Referenced by yaze::editor::MessageEditor::DrawExpandedMessageSettings().

Here is the call graph for this function:

◆ SerializeMessageBundle()

nlohmann::json yaze::editor::SerializeMessageBundle ( const std::vector< MessageData > & vanilla,
const std::vector< MessageData > & expanded )

Definition at line 884 of file message_data.cc.

References kExpanded, kMessageBundleVersion, kVanilla, MessageBankToString(), and ValidateMessageLineWidths().

Referenced by ExportMessageBundleToJson().

Here is the call graph for this function:

◆ ExportMessageBundleToJson()

absl::Status yaze::editor::ExportMessageBundleToJson ( const std::string & path,
const std::vector< MessageData > & vanilla,
const std::vector< MessageData > & expanded )

◆ ParseMessageBundleJson()

absl::StatusOr< std::vector< MessageBundleEntry > > yaze::editor::ParseMessageBundleJson ( const nlohmann::json & json)

Definition at line 999 of file message_data.cc.

References kMessageBundleVersion, and kVanilla.

Referenced by LoadMessageBundleFromJson().

◆ LoadMessageBundleFromJson()

absl::StatusOr< std::vector< MessageBundleEntry > > yaze::editor::LoadMessageBundleFromJson ( const std::string & path)

◆ ValidateMessageLineWidths()

◆ ParseOrgHeader()

std::optional< std::pair< int, std::string > > yaze::editor::ParseOrgHeader ( const std::string & line)

Definition at line 1128 of file message_data.cc.

Referenced by ParseOrgContent().

◆ ParseOrgContent()

std::vector< std::pair< int, std::string > > yaze::editor::ParseOrgContent ( const std::string & content)

Definition at line 1157 of file message_data.cc.

References ParseOrgHeader().

Referenced by yaze::cli::handlers::MessageImportOrgCommandHandler::Execute().

Here is the call graph for this function:

◆ ExportToOrgFormat()

std::string yaze::editor::ExportToOrgFormat ( const std::vector< std::pair< int, std::string > > & messages,
const std::vector< std::string > & labels )

◆ ReadExpandedTextData() [1/2]

std::vector< MessageData > yaze::editor::ReadExpandedTextData ( uint8_t * rom,
int pos )

◆ ReadExpandedTextData() [2/2]

std::vector< MessageData > yaze::editor::ReadExpandedTextData ( uint8_t * rom,
int pos,
int end )

Definition at line 1241 of file message_data.cc.

References ReadAllTextData().

Here is the call graph for this function:

◆ WriteExpandedTextData() [1/2]

absl::Status yaze::editor::WriteExpandedTextData ( Rom * rom,
int start,
int end,
const std::vector< std::string > & messages )

◆ WriteExpandedTextData() [2/2]

absl::Status yaze::editor::WriteExpandedTextData ( uint8_t * rom,
int start,
int end,
const std::vector< std::string > & messages )

Definition at line 1323 of file message_data.cc.

References kMessageTerminator, and ParseMessageToDataWithDiagnostics().

Here is the call graph for this function:

◆ BuildVanillaMessageSavePlan()

absl::StatusOr< VanillaMessageSavePlan > yaze::editor::BuildVanillaMessageSavePlan ( const std::vector< MessageData > & messages,
std::optional< size_t > expected_message_count )

◆ ApplyVanillaMessageSavePlan()

◆ WriteAllTextData()

absl::Status yaze::editor::WriteAllTextData ( Rom * rom,
const std::vector< MessageData > & messages )

Definition at line 1528 of file message_data.cc.

References ApplyVanillaMessageSavePlan(), ASSIGN_OR_RETURN, and BuildVanillaMessageSavePlan().

Here is the call graph for this function:

◆ ResolveMessageDisplayId()

std::optional< ResolvedMessageId > yaze::editor::ResolveMessageDisplayId ( int display_id,
int vanilla_count,
int expanded_base_id,
int expanded_count )
inline

◆ AsciiLower()

char yaze::editor::AsciiLower ( unsigned char c)
inline

Definition at line 24 of file message_list_query.h.

Referenced by ContainsCaseInsensitive(), and FindNextTextMatch().

◆ ContainsCaseInsensitive()

bool yaze::editor::ContainsCaseInsensitive ( std::string_view haystack,
std::string_view needle )
inline

◆ StripHexPrefix()

std::string_view yaze::editor::StripHexPrefix ( std::string_view query)
inline

Definition at line 52 of file message_list_query.h.

Referenced by HexDigitsContain().

◆ HexDigitsContain()

bool yaze::editor::HexDigitsContain ( uint32_t value,
int width,
std::string_view query )
inline

Definition at line 63 of file message_list_query.h.

References ContainsCaseInsensitive(), and StripHexPrefix().

Referenced by MessageListQueryMatches().

Here is the call graph for this function:

◆ DecimalContains()

bool yaze::editor::DecimalContains ( int value,
std::string_view query )
inline

Definition at line 80 of file message_list_query.h.

References ContainsCaseInsensitive().

Referenced by MessageListQueryMatches().

Here is the call graph for this function:

◆ MessageListQueryMatches()

bool yaze::editor::MessageListQueryMatches ( int display_id,
uint32_t address,
std::string_view contents,
bool expanded,
MessageBankFilter bank,
std::string_view query )
inline

Definition at line 91 of file message_list_query.h.

References ContainsCaseInsensitive(), DecimalContains(), HexDigitsContain(), kExpanded, and kVanilla.

Referenced by yaze::editor::MessageEditor::CollectMessageRows().

Here is the call graph for this function:

◆ IsWordChar()

bool yaze::editor::IsWordChar ( std::string_view text,
size_t index )
inline

◆ FindNextTextMatch()

std::optional< size_t > yaze::editor::FindNextTextMatch ( std::string_view text,
std::string_view needle,
size_t start,
bool case_sensitive,
bool whole_word )
inline

Definition at line 125 of file message_list_query.h.

References AsciiLower(), and IsWordChar().

Referenced by yaze::editor::MessageEditor::AdvanceFind(), FindPreviousTextMatch(), and yaze::editor::MessageEditor::ReplaceCurrentMatch().

Here is the call graph for this function:

◆ FindPreviousTextMatch()

std::optional< size_t > yaze::editor::FindPreviousTextMatch ( std::string_view text,
std::string_view needle,
size_t before,
bool case_sensitive,
bool whole_word )
inline

Definition at line 163 of file message_list_query.h.

References FindNextTextMatch().

Referenced by yaze::editor::MessageEditor::AdvanceFind().

Here is the call graph for this function:

◆ MessageListPreview()

std::string yaze::editor::MessageListPreview ( std::string_view text,
size_t max_chars = 96 )
inline

Definition at line 188 of file message_list_query.h.

Referenced by yaze::editor::MessageEditor::DrawMessageList().

◆ ComputeMessageSourceSha256()

std::string yaze::editor::ComputeMessageSourceSha256 ( std::string_view content)

Definition at line 521 of file message_source_sync.cc.

References yaze::core::ComputeSourceArtifactSha256().

Referenced by yaze::editor::MessageEditor::HashFileSha256(), and LoadMessageSource().

Here is the call graph for this function:

◆ LoadMessageSource()

◆ SyncMessageSource() [1/2]

◆ SyncMessageSource() [2/2]

absl::StatusOr< MessageSourceSyncResult > yaze::editor::SyncMessageSource ( const project::YazeProject & project,
const std::filesystem::path & incoming_bundle_path,
const MessageSourceSyncOptions & options = {} )

◆ REGISTER_PANEL() [2/20]

yaze::editor::REGISTER_PANEL ( AnnotationOverlayPanel )

◆ REGISTER_PANEL() [3/20]

yaze::editor::REGISTER_PANEL ( OracleMenuInspectorPanel )

◆ REGISTER_PANEL() [4/20]

yaze::editor::REGISTER_PANEL ( OracleValidationPanel )

◆ REGISTER_PANEL() [5/20]

yaze::editor::REGISTER_PANEL ( ProgressionDashboardPanel )

◆ REGISTER_PANEL() [6/20]

yaze::editor::REGISTER_PANEL ( StoryEventGraphPanel )

◆ IsValidOverworldMapJumpTarget()

bool yaze::editor::IsValidOverworldMapJumpTarget ( int map_id)
inline

◆ ResolveStoryLocationMapJumpTarget()

std::optional< int > yaze::editor::ResolveStoryLocationMapJumpTarget ( const std::optional< int > & overworld_id,
const std::optional< int > & special_world_id )
inline

Definition at line 14 of file story_event_graph_navigation.h.

References IsValidOverworldMapJumpTarget().

Referenced by yaze::editor::StoryEventGraphPanel::DrawNodeDetail().

Here is the call graph for this function:

◆ IsMapSelectClick()

bool yaze::editor::IsMapSelectClick ( const MapClickInput & input)

True when this input is an explicit "make the map under the cursor the current map" click: a Select-tool left click that did not pan and whose press also landed on this canvas and map (on release), or a paint-tool right click (which also samples the Tile16). Shift+right-click opens the map menu instead. Explicit clicks select even when the map is pinned; the pin then holds the clicked map.

Definition at line 316 of file canvas_navigation_manager.cc.

References DRAW_TILE, yaze::editor::MapClickInput::entity_hovered, FILL_TILE, yaze::editor::MapClickInput::left_dragged, yaze::editor::MapClickInput::left_press_owned, yaze::editor::MapClickInput::left_released, yaze::editor::MapClickInput::mode, MOUSE, yaze::editor::MapClickInput::right_clicked, and yaze::editor::MapClickInput::shift.

Referenced by yaze::editor::CanvasNavigationManager::HandleMapInteraction().

◆ ScrollForZoomAtAnchor()

ImVec2 yaze::editor::ScrollForZoomAtAnchor ( ImVec2 scroll,
ImVec2 anchor,
float old_scale,
float new_scale )

Scroll that keeps the content point under anchor (viewport-local px) fixed while the scale changes from old_scale to new_scale.

Definition at line 444 of file canvas_navigation_manager.cc.

Referenced by yaze::editor::CanvasNavigationManager::SetScaleAboutAnchor().

◆ ResolveOverworldContextTarget()

◆ IsMouseHoveringOverEntity() [1/2]

bool yaze::editor::IsMouseHoveringOverEntity ( const zelda3::GameEntity & entity,
ImVec2 canvas_p0,
ImVec2 scrolling,
float scale = 1.0f )

◆ IsMouseHoveringOverEntity() [2/2]

bool yaze::editor::IsMouseHoveringOverEntity ( const zelda3::GameEntity & entity,
const gui::CanvasRuntime & rt )

Check if mouse is hovering over an entity (CanvasRuntime version)

Parameters
entityThe entity to check
rtThe canvas runtime with geometry info
Returns
true if mouse is over the entity bounds

Definition at line 48 of file entity.cc.

References yaze::gui::CanvasRuntime::canvas_p0, yaze::gui::CanvasRuntime::scale, yaze::gui::CanvasRuntime::scrolling, yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

◆ MoveEntityOnGrid()

void yaze::editor::MoveEntityOnGrid ( zelda3::GameEntity * entity,
ImVec2 canvas_p0,
ImVec2 scrolling,
bool free_movement = false,
float scale = 1.0f )

Move entity to grid-aligned position based on mouse.

Parameters
entityEntity to move
canvas_p0Canvas origin point
scrollingCanvas scroll offset
free_movementIf true, use 8x8 grid; else 16x16
scaleCanvas scale factor (default 1.0f)

Definition at line 66 of file entity.cc.

References yaze::zelda3::GameEntity::entity_type_, yaze::zelda3::GameEntity::kSprite, yaze::zelda3::GameEntity::set_x(), and yaze::zelda3::GameEntity::set_y().

Here is the call graph for this function:

◆ DrawEntranceInserterPopup()

bool yaze::editor::DrawEntranceInserterPopup ( )

Definition at line 91 of file entity.cc.

References ICON_MD_CANCEL, ICON_MD_DONE, and yaze::gui::InputHex().

Here is the call graph for this function:

◆ DrawOverworldEntrancePopup()

◆ DrawExitInserterPopup()

void yaze::editor::DrawExitInserterPopup ( )

Definition at line 167 of file entity.cc.

References yaze::gui::InputHex().

Here is the call graph for this function:

◆ DrawExitEditorPopup()

◆ DrawItemInsertPopup()

void yaze::editor::DrawItemInsertPopup ( )

Definition at line 377 of file entity.cc.

References ICON_MD_CANCEL, ICON_MD_DONE, and yaze::zelda3::kSecretItemNames.

◆ DrawItemEditorPopup()

◆ DrawSpriteTable()

void yaze::editor::DrawSpriteTable ( std::function< void(int)> onSpriteSelect,
int & selected_id )

◆ DrawSpriteInserterPopup()

void yaze::editor::DrawSpriteInserterPopup ( )

Definition at line 494 of file entity.cc.

References DrawSpriteTable(), and yaze::gui::InputHex().

Here is the call graph for this function:

◆ DrawSpriteEditorPopup()

◆ DrawDiggableTilesEditorPopup()

bool yaze::editor::DrawDiggableTilesEditorPopup ( zelda3::DiggableTiles * diggable_tiles,
const std::vector< gfx::Tile16 > & tiles16,
const std::array< uint8_t, 0x200 > & all_tiles_types )

Draw popup dialog for editing diggable tiles configuration.

Provides UI for:

  • Viewing/editing which Map16 tiles are diggable
  • Auto-detecting diggable tiles from tile types
  • Exporting ASM patch for the digging routine
Parameters
diggable_tilesPointer to the DiggableTiles instance to edit
tiles16Vector of Map16 tile definitions
all_tiles_typesArray of tile type bytes for auto-detection
Returns
true if changes were saved, false otherwise

Definition at line 588 of file entity.cc.

References yaze::zelda3::DiggableTiles::Clear(), yaze::zelda3::DiggableTilesPatchConfig::freespace_address, yaze::zelda3::DiggableTilesPatch::GeneratePatch(), yaze::zelda3::DiggableTiles::GetDiggableCount(), yaze::zelda3::DiggableTilesPatchConfig::hook_address, ICON_MD_AUTO_FIX_HIGH, ICON_MD_CANCEL, ICON_MD_CLEAR, ICON_MD_DONE, ICON_MD_FILE_DOWNLOAD, ICON_MD_RESTART_ALT, yaze::gui::InputHex(), yaze::zelda3::DiggableTiles::IsDiggable(), yaze::zelda3::DiggableTiles::IsTile16Diggable(), yaze::zelda3::kMaxDiggableTileId, yaze::gui::EditorNames::kOverworld, yaze::gui::MakePopupId(), yaze::zelda3::DiggableTiles::SetDiggable(), yaze::zelda3::DiggableTiles::SetVanillaDefaults(), yaze::zelda3::DiggableTilesPatchConfig::table_address, and yaze::zelda3::DiggableTilesPatchConfig::use_zs_compatible_mode.

◆ BuildOverworldItemForInsertion()

absl::StatusOr< zelda3::OverworldItem > yaze::editor::BuildOverworldItemForInsertion ( const std::vector< zelda3::OverworldMap > & maps,
ImVec2 world_position,
int current_map,
uint8_t item_id )

Definition at line 79 of file entity_operations.cc.

Referenced by InsertItem().

◆ BuildOverworldSpriteForInsertion()

absl::StatusOr< zelda3::Sprite > yaze::editor::BuildOverworldSpriteForInsertion ( const std::vector< zelda3::OverworldMap > & maps,
ImVec2 world_position,
int current_map,
uint8_t sprite_id )

Definition at line 93 of file entity_operations.cc.

Referenced by InsertSprite().

◆ InsertEntrance()

absl::StatusOr< zelda3::OverworldEntrance * > yaze::editor::InsertEntrance ( zelda3::Overworld * overworld,
ImVec2 mouse_pos,
int current_map,
bool is_hole = false )

Flat helper functions for entity insertion/manipulation.

Following ZScream's entity management pattern (EntranceMode.cs, ExitMode.cs, etc.) but implemented as free functions to minimize state management.

Key concepts from ZScream:

  • Find first deleted slot for insertion
  • Calculate map position from mouse coordinates
  • Use parent map ID for multi-area maps
  • Call UpdateMapProperties to sync position data

Insert a new entrance at the specified position

Follows ZScream's EntranceMode.AddEntrance() logic (EntranceMode.cs:53-148):

  • Finds first deleted entrance slot
  • Snaps position to 16x16 grid
  • Uses parent map ID for multi-area maps
  • Calls UpdateMapProperties to calculate game coordinates
Parameters
overworldOverworld data containing entrance arrays
mouse_posMouse position in canvas coordinates (world space)
current_mapCurrent map index being edited
is_holeTrue to insert a hole instead of entrance
Returns
Pointer to newly inserted entrance, or error if no slots available

Definition at line 107 of file entity_operations.cc.

References ClampToOverworldBounds(), GetParentMapId(), yaze::zelda3::Overworld::holes(), yaze::zelda3::Overworld::is_loaded(), LOG_DEBUG, yaze::zelda3::Overworld::mutable_entrances(), yaze::zelda3::Overworld::overworld_map(), and SnapToEntityGrid().

Referenced by yaze::editor::EntityMutationService::InsertEntity().

◆ InsertExit()

absl::StatusOr< zelda3::OverworldExit * > yaze::editor::InsertExit ( zelda3::Overworld * overworld,
ImVec2 mouse_pos,
int current_map )

Insert a new exit at the specified position.

Follows ZScream's ExitMode.AddExit() logic (ExitMode.cs:59-124):

  • Finds first deleted exit slot
  • Snaps position to 16x16 grid
  • Initializes exit with default scroll/camera values
  • Sets room ID to 0 (needs to be configured by user)
Parameters
overworldOverworld data containing exit arrays
mouse_posMouse position in canvas coordinates
current_mapCurrent map index being edited
Returns
Pointer to newly inserted exit, or error if no slots available

Definition at line 175 of file entity_operations.cc.

References ClampToOverworldBounds(), GetParentMapId(), yaze::zelda3::Overworld::is_loaded(), LOG_DEBUG, yaze::zelda3::Overworld::mutable_exits(), yaze::zelda3::Overworld::overworld_map(), and SnapToEntityGrid().

Referenced by yaze::editor::EntityMutationService::InsertEntity().

◆ InsertSprite()

absl::StatusOr< zelda3::Sprite * > yaze::editor::InsertSprite ( zelda3::Overworld * overworld,
ImVec2 mouse_pos,
int current_map,
int game_state,
uint8_t sprite_id = 0 )

Insert a new sprite at the specified position.

Follows ZScream's SpriteMode sprite insertion (SpriteMode.cs:27-100):

  • Adds new sprite to game state array
  • Calculates map position and game coordinates
  • Sets sprite ID (default 0, user configures in popup)
Parameters
overworldOverworld data containing sprite arrays
mouse_posMouse position in canvas coordinates
current_mapCurrent map index being edited
game_stateCurrent game state (0=beginning, 1=zelda, 2=agahnim)
sprite_idSprite ID to insert (default 0)
Returns
Pointer to newly inserted sprite

Definition at line 228 of file entity_operations.cc.

References BuildOverworldSpriteForInsertion(), yaze::zelda3::Overworld::is_loaded(), LOG_DEBUG, yaze::zelda3::Sprite::map_id(), yaze::zelda3::Overworld::mutable_sprites(), yaze::zelda3::Overworld::overworld_maps(), yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

Referenced by yaze::editor::EntityMutationService::InsertEntity().

◆ InsertItem()

absl::StatusOr< zelda3::OverworldItem * > yaze::editor::InsertItem ( zelda3::Overworld * overworld,
ImVec2 mouse_pos,
int current_map,
uint8_t item_id = 0 )

Insert a new item at the specified position.

Follows ZScream's ItemMode item insertion (ItemMode.cs:54-113):

  • Adds new item to all_items array
  • Calculates map position and game coordinates
  • Sets item ID (default 0, user configures in popup)
Parameters
overworldOverworld data containing item arrays
mouse_posMouse position in canvas coordinates
current_mapCurrent map index being edited
item_idItem ID to insert (default 0x00 - Nothing)
Returns
Pointer to newly inserted item

Definition at line 263 of file entity_operations.cc.

References BuildOverworldItemForInsertion(), yaze::zelda3::OverworldItem::game_x_, yaze::zelda3::OverworldItem::game_y_, yaze::zelda3::Overworld::is_loaded(), LOG_DEBUG, yaze::zelda3::Overworld::mutable_all_items(), yaze::zelda3::Overworld::overworld_maps(), yaze::zelda3::OverworldItem::room_map_id_, yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

Referenced by yaze::editor::EntityMutationService::InsertEntity().

Here is the call graph for this function:

◆ RemoveItem()

absl::Status yaze::editor::RemoveItem ( zelda3::Overworld * overworld,
const zelda3::OverworldItem * item_ptr )

Remove an item from the overworld item list by pointer identity.

Overworld item deletion should physically erase the item entry so it no longer participates in in-memory workflows and save pipelines.

Parameters
overworldOverworld data containing the all_items array
item_ptrPointer to the item to remove (must point into all_items)
Returns
OkStatus on success, NotFound if pointer is not in all_items

Definition at line 292 of file entity_operations.cc.

References yaze::zelda3::Overworld::mutable_all_items().

Here is the call graph for this function:

◆ RemoveItemByIdentity()

absl::Status yaze::editor::RemoveItemByIdentity ( zelda3::Overworld * overworld,
const zelda3::OverworldItem & item_identity )

Remove an item by value identity instead of pointer identity.

This is safer for UI flows where selected pointers may become stale after vector erases/reallocation.

Parameters
overworldOverworld data containing the all_items array
item_identitySnapshot identity of the item to remove
Returns
OkStatus on success, NotFound if no matching identity is present

Definition at line 314 of file entity_operations.cc.

References yaze::zelda3::Overworld::mutable_all_items().

Referenced by yaze::editor::EntityMutationService::DeleteItem(), and yaze::editor::OverworldEditor::DeleteSelectedItem().

Here is the call graph for this function:

◆ FindItemByIdentity()

zelda3::OverworldItem * yaze::editor::FindItemByIdentity ( zelda3::Overworld * overworld,
const zelda3::OverworldItem & item_identity )

Find a live item by value identity.

Parameters
overworldOverworld data containing the all_items array
item_identitySnapshot identity to resolve
Returns
Pointer to matching item in all_items or nullptr if not found

Definition at line 333 of file entity_operations.cc.

References yaze::zelda3::Overworld::mutable_all_items().

Referenced by DuplicateItemByIdentity(), yaze::editor::OverworldEditor::GetSelectedItem(), yaze::editor::OverworldEditor::RestoreItemUndoSnapshot(), and yaze::editor::OverworldEditor::SelectItemByIdentity().

Here is the call graph for this function:

◆ DuplicateItemByIdentity()

absl::StatusOr< zelda3::OverworldItem * > yaze::editor::DuplicateItemByIdentity ( zelda3::Overworld * overworld,
const zelda3::OverworldItem & item_identity,
int offset_x = 16,
int offset_y = 0 )

Duplicate an existing item by identity with a positional offset.

Parameters
overworldOverworld data containing the all_items array
item_identitySnapshot identity of source item
offset_xSigned world-space offset in pixels
offset_ySigned world-space offset in pixels
Returns
Pointer to new duplicated item on success

Definition at line 351 of file entity_operations.cc.

References ClampToOverworldBounds(), yaze::zelda3::OverworldItem::deleted, FindItemByIdentity(), yaze::zelda3::Overworld::mutable_all_items(), yaze::zelda3::OverworldItem::room_map_id_, yaze::zelda3::OverworldItem::UpdateMapProperties(), yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

Referenced by yaze::editor::EntityMutationService::DuplicateItem(), and yaze::editor::OverworldEditor::DuplicateSelectedItem().

Here is the call graph for this function:

◆ NudgeItem()

absl::Status yaze::editor::NudgeItem ( zelda3::OverworldItem * item,
int delta_x,
int delta_y )

Move an item by pixel deltas with overworld bounds clamping.

Parameters
itemItem pointer to mutate
delta_xSigned world-space X delta
delta_ySigned world-space Y delta
Returns
OkStatus when applied

Definition at line 377 of file entity_operations.cc.

References ClampToOverworldBounds(), yaze::zelda3::OverworldItem::room_map_id_, yaze::zelda3::OverworldItem::UpdateMapProperties(), yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

Referenced by yaze::editor::OverworldEditor::NudgeSelectedItem().

Here is the call graph for this function:

◆ FindNearestItemForSelection()

zelda3::OverworldItem * yaze::editor::FindNearestItemForSelection ( zelda3::Overworld * overworld,
const zelda3::OverworldItem & anchor_identity )

Find the best next item to keep selection continuity after deletion.

Selection preference: 1) Remaining items on the same map as the deleted anchor item 2) Smallest world-space distance to the anchor position 3) Stable first-match order as tie-breaker

Parameters
overworldOverworld data containing the all_items array
anchor_identitySnapshot of the deleted item's identity/position
Returns
Pointer to the best candidate in all_items, or nullptr if none

Definition at line 390 of file entity_operations.cc.

References yaze::zelda3::Overworld::mutable_all_items(), yaze::zelda3::OverworldItem::room_map_id_, yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

Referenced by yaze::editor::OverworldEditor::DeleteSelectedItem(), and yaze::editor::EntityMutationService::ResolveNextSelection().

Here is the call graph for this function:

◆ GetParentMapId()

uint8_t yaze::editor::GetParentMapId ( const zelda3::OverworldMap * map,
int current_map )
inline

Helper to get parent map ID for multi-area maps.

Returns the parent map ID, handling the case where a map is its own parent. Matches ZScream logic where ParentID == 255 means use current map.

Definition at line 198 of file entity_operations.h.

References yaze::zelda3::OverworldMap::parent().

Referenced by yaze::editor::EntityMutationService::InsertEntity(), InsertEntrance(), and InsertExit().

Here is the call graph for this function:

◆ SnapToEntityGrid()

ImVec2 yaze::editor::SnapToEntityGrid ( ImVec2 pos)
inline

Snap position to 16x16 grid (standard entity positioning)

Definition at line 207 of file entity_operations.h.

Referenced by InsertEntrance(), and InsertExit().

◆ ClampToOverworldBounds()

ImVec2 yaze::editor::ClampToOverworldBounds ( ImVec2 pos)
inline

Clamp position to valid overworld bounds.

Definition at line 215 of file entity_operations.h.

Referenced by DuplicateItemByIdentity(), InsertEntrance(), InsertExit(), and NudgeItem().

◆ REGISTER_PANEL() [7/20]

yaze::editor::REGISTER_PANEL ( OverworldEntityWorkbench )

◆ EntityMarkerColor() [1/2]

◆ EntityMarkerColor() [2/2]

ImVec4 yaze::editor::EntityMarkerColor ( const AgentUITheme & theme,
zelda3::GameEntity::EntityType type,
bool is_hole = false )

Box color for an overworld entity marker.

Each entity type reads its own theme token (entrance_color, hole_color, exit_color, item_color, sprite_color); holes are entrances with is_hole set. Types without a marker token return the sprite color.

◆ GetProjectResourceLabel()

◆ RenameProjectResourceLabel()

absl::Status yaze::editor::RenameProjectResourceLabel ( project::YazeProject * project,
const std::string & type,
int id,
const std::string & label )

◆ BuildOverworldMapMetadata()

OverworldMapMetadata yaze::editor::BuildOverworldMapMetadata ( const zelda3::Overworld & overworld,
const Rom * rom,
const project::YazeProject * project,
int map_id,
int game_state )

Definition at line 169 of file overworld_map_metadata.cc.

References yaze::zelda3::OverworldMap::animated_gfx(), yaze::editor::OverworldMapMetadata::animated_gfx_label, yaze::editor::OverworldMapMetadata::area_gfx_label, yaze::zelda3::OverworldMap::area_graphics(), yaze::zelda3::OverworldMap::area_palette(), yaze::editor::OverworldMapMetadata::area_palette_label, yaze::zelda3::OverworldMap::area_size(), yaze::editor::OverworldMapMetadata::area_size_label, yaze::zelda3::ResourceLabelProvider::GetLabel(), GetProjectResourceLabel(), yaze::zelda3::GetResourceLabels(), yaze::zelda3::Overworld::inspected_map_count(), yaze::zelda3::Overworld::is_lyra_preview(), yaze::zelda3::kGraphics, yaze::zelda3::kNumOverworldMaps, yaze::zelda3::kOverworldMap, yaze::zelda3::OverworldMap::main_palette(), yaze::editor::OverworldMapMetadata::main_palette_label, yaze::editor::OverworldMapMetadata::map_id, yaze::editor::OverworldMapMetadata::map_id_label, yaze::editor::OverworldMapMetadata::map_name, yaze::editor::OverworldMapMetadata::map_title, yaze::zelda3::OverworldMap::message_id(), yaze::editor::OverworldMapMetadata::message_label, yaze::editor::OverworldMapMetadata::music_label, yaze::zelda3::Overworld::overworld_map(), yaze::zelda3::OverworldMap::parent(), yaze::editor::OverworldMapMetadata::parent_label, yaze::editor::OverworldMapMetadata::sprite_gfx_label, yaze::zelda3::OverworldMap::sprite_graphics(), yaze::zelda3::OverworldMap::sprite_palette(), yaze::editor::OverworldMapMetadata::sprite_palette_label, yaze::editor::OverworldMapMetadata::version_label, yaze::editor::OverworldMapMetadata::world, and yaze::editor::OverworldMapMetadata::world_label.

Referenced by yaze::editor::OverworldEditor::BuildContextSnapshot(), yaze::editor::OverworldToolbar::Draw(), yaze::editor::OverworldSidebar::DrawHeader(), and yaze::editor::MapPropertiesSystem::SetupCanvasContextMenu().

◆ OverworldPropertyFieldName()

◆ OverworldMapMetadataClipboardScopeName()

const char * yaze::editor::OverworldMapMetadataClipboardScopeName ( OverworldMapMetadataClipboardScope scope)

Definition at line 41 of file overworld_property_edit.cc.

References kAll, kGraphics, kMusicMessages, and kPalettes.

Referenced by DescribeOverworldMapMetadataClipboard().

◆ DescribeOverworldMapMetadataClipboard()

◆ DescribeOverworldPropertyEdit()

◆ CanPasteOverworldMapMetadata()

◆ BuildOverworldMetadataPasteEdits()

std::vector< OverworldPropertyEdit > yaze::editor::BuildOverworldMetadataPasteEdits ( int target_map_id,
const OverworldMapMetadataClipboard & clipboard,
OverworldMapMetadataClipboardScope requested_scope )

◆ kOverworldCanvasSize()

constexpr ImVec2 yaze::editor::kOverworldCanvasSize ( kOverworldMapSize * 8,
kOverworldMapSize * 8 )
constexpr

◆ kCurrentGfxCanvasSize()

constexpr ImVec2 yaze::editor::kCurrentGfxCanvasSize ( 0x100+ 1,
0x10 *0x40+ 1 )
constexpr

◆ kBlocksetCanvasSize()

constexpr ImVec2 yaze::editor::kBlocksetCanvasSize ( 0x100+ 1,
0x4000+ 1 )
constexpr

◆ kGraphicsBinCanvasSize()

constexpr ImVec2 yaze::editor::kGraphicsBinCanvasSize ( 0x100+ 1,
kNumSheetsToLoad *0x40+ 1 )
constexpr

◆ ResolveOverworldQuadrantTarget()

◆ MakeOverworldGraphicsEditContext()

◆ OverworldWorldLabelFromMap()

const char * yaze::editor::OverworldWorldLabelFromMap ( int map_id)
inline

Definition at line 11 of file overworld_map_status.h.

Referenced by FormatOverworldMapStatusSegment().

◆ EffectiveOverworldHoverMap()

int yaze::editor::EffectiveOverworldHoverMap ( int hovered_map,
bool canvas_hovered )
inline

◆ FormatOverworldMapStatusSegment()

std::string yaze::editor::FormatOverworldMapStatusSegment ( int current_map,
int hovered_map )
inline

Definition at line 32 of file overworld_map_status.h.

References OverworldWorldLabelFromMap().

Referenced by yaze::editor::CanvasNavigationManager::CheckForCurrentMap(), and yaze::editor::OverworldEditor::ContributeStatus().

Here is the call graph for this function:

◆ BuildMapBrushPreview()

MapBrushPreview yaze::editor::BuildMapBrushPreview ( const TileBrush & brush,
int anchor_x,
int anchor_y,
int map_x,
int map_y,
std::span< const uint8_t > atlas,
int atlas_width = 128 )
inline

◆ SyncMapBrushPreview()

◆ Tile16PixelsFromBlockset()

std::vector< uint8_t > yaze::editor::Tile16PixelsFromBlockset ( std::span< const uint8_t > atlas,
int tile_id,
int atlas_width = 128 )
inline

◆ REGISTER_PANEL() [8/20]

yaze::editor::REGISTER_PANEL ( AreaGraphicsPanel )

◆ REGISTER_PANEL() [9/20]

yaze::editor::REGISTER_PANEL ( DebugWindowPanel )

◆ REGISTER_PANEL() [10/20]

yaze::editor::REGISTER_PANEL ( GfxGroupsPanel )

◆ REGISTER_PANEL() [11/20]

yaze::editor::REGISTER_PANEL ( MapPropertiesPanel )

◆ REGISTER_PANEL() [12/20]

yaze::editor::REGISTER_PANEL ( OverworldItemListPanel )

◆ CurrentOverworldWindowContext()

◆ CurrentOverworldEditor()

◆ REGISTER_PANEL() [13/20]

yaze::editor::REGISTER_PANEL ( ScratchSpacePanel )

◆ REGISTER_PANEL() [14/20]

yaze::editor::REGISTER_PANEL ( UsageStatisticsPanel )

◆ REGISTER_PANEL() [15/20]

yaze::editor::REGISTER_PANEL ( V3SettingsPanel )

◆ ComputeTile16ActionControlState()

◆ ComputeTile16CompactActionColumnCount()

int yaze::editor::ComputeTile16CompactActionColumnCount ( float available_width_px)
inline

◆ ComputeTile16ActionRowCount()

int yaze::editor::ComputeTile16ActionRowCount ( int action_count,
int column_count )
inline

◆ ComputeTile16PaletteButtonSize()

float yaze::editor::ComputeTile16PaletteButtonSize ( float available_width_px)
inline

◆ ResolveTile16NumericShortcut()

Tile16NumericShortcutResult yaze::editor::ResolveTile16NumericShortcut ( bool ctrl_held,
int number_index )
inline

◆ ComputeTile8UsageHighlight()

bool yaze::editor::ComputeTile8UsageHighlight ( bool source_hovered,
bool right_mouse_down )
inline

◆ ComputeTile8IndexFromCanvasMouse()

int yaze::editor::ComputeTile8IndexFromCanvasMouse ( float mouse_x,
float mouse_y,
int source_bitmap_width_px,
int max_tile_count,
float display_scale )
inline

◆ ComputeTile8SourceDisplayScale()

float yaze::editor::ComputeTile8SourceDisplayScale ( float available_width_px,
int source_bitmap_width_px,
float min_scale = 1.0f,
float max_scale = 4.0f )
inline

◆ ComputeTile8SourcePanelHeight()

float yaze::editor::ComputeTile8SourcePanelHeight ( float available_height_px,
int source_bitmap_height_px,
float display_scale,
float preferred_height_px = 0.0f,
float min_height_px = 220.0f,
float max_height_px = 520.0f )
inline

◆ REGISTER_PANEL() [16/20]

yaze::editor::REGISTER_PANEL ( OverworldCanvasView )

◆ REGISTER_PANEL() [17/20]

yaze::editor::REGISTER_PANEL ( Tile16EditorView )

◆ REGISTER_PANEL() [18/20]

yaze::editor::REGISTER_PANEL ( Tile16SelectorView )

◆ REGISTER_PANEL() [19/20]

yaze::editor::REGISTER_PANEL ( Tile8SelectorView )

◆ GetPaletteCategories()

const std::vector< PaletteCategoryInfo > & yaze::editor::GetPaletteCategories ( )
inline

Get all palette categories with their associated groups.

Returns
Vector of category info structures

Definition at line 38 of file palette_category.h.

References ICON_MD_CASTLE, ICON_MD_LANDSCAPE, ICON_MD_MORE_HORIZ, ICON_MD_PETS, ICON_MD_SHIELD, kDungeon, kEquipment, kMiscellaneous, kOverworld, and kSprites.

Referenced by yaze::editor::PaletteEditor::DrawCategorizedPaletteList(), and GetGroupCategory().

◆ GetGroupDisplayName()

std::string yaze::editor::GetGroupDisplayName ( const std::string & group_name)
inline

Get display name for a palette group.

Parameters
group_nameInternal group name (e.g., "ow_main")
Returns
Human-readable display name

Definition at line 68 of file palette_category.h.

Referenced by yaze::editor::PaletteEditor::DrawCategorizedPaletteList(), yaze::editor::PaletteEditor::DrawControlPanel(), and yaze::editor::PaletteEditor::PassesSearchFilter().

◆ GetGroupCategory()

PaletteCategory yaze::editor::GetGroupCategory ( const std::string & group_name)
inline

Get the category that a palette group belongs to.

Parameters
group_nameInternal group name
Returns
Category enum value

Definition at line 94 of file palette_category.h.

References GetPaletteCategories(), and kMiscellaneous.

Here is the call graph for this function:

◆ DisplayPalette()

absl::Status yaze::editor::DisplayPalette ( gfx::SnesPalette & palette,
bool loaded )

Display SNES palette with enhanced ROM hacking features.

Parameters
paletteSNES palette to display
loadedWhether the palette has been loaded from ROM

Enhanced Features:

  • Real-time color preview with SNES format conversion
  • Drag-and-drop color swapping for palette editing
  • Color picker integration with ROM palette system
  • Undo/redo support for palette modifications
  • Export functionality for palette sharing

Performance Notes:

  • Static color arrays to avoid repeated allocations
  • Cached color conversions for fast rendering
  • Batch palette updates to minimize ROM writes

Definition at line 188 of file palette_editor.cc.

References yaze::gui::PopupNames::kColorPicker, kPalButtonFlags, yaze::gui::EditorNames::kPalette, yaze::gui::MakePopupId(), yaze::gfx::SnesPalette::size(), and TEXT_WITH_SEPARATOR.

Here is the call graph for this function:

◆ CurrentTypedWindowContext()

template<typename EditorT >
TypedWindowContext< EditorT > yaze::editor::CurrentTypedWindowContext ( const std::string & category)
inline

Definition at line 19 of file window_context.h.

References yaze::editor::TypedWindowContext< EditorT >::editor, and yaze::editor::ContentRegistry::Context::editor_window_context().

Here is the call graph for this function:

◆ GetStaggeredEntryProgress()

float yaze::editor::GetStaggeredEntryProgress ( float entry_time,
int section_index,
float duration,
float stagger_delay )

◆ REGISTER_PANEL() [20/20]

yaze::editor::REGISTER_PANEL ( AboutPanel )

◆ GetSelectionTypeName()

◆ ParseGotoId()

std::optional< int > yaze::editor::ParseGotoId ( std::string_view token)

Parse a single id token using the formats above. nullopt if malformed.

Definition at line 71 of file command_palette_goto.cc.

Referenced by ParseGotoQuery().

◆ GotoMaxId()

int yaze::editor::GotoMaxId ( GotoKind kind)

Inclusive upper bound for kind.

Definition at line 87 of file command_palette_goto.cc.

References kMessage, yaze::zelda3::kNumOverworldMaps, kOverworldMap, kRoom, and kSprite.

Referenced by BuildGotoEntry(), and ParseGotoQuery().

◆ GotoKindName()

const char * yaze::editor::GotoKindName ( GotoKind kind)

Definition at line 101 of file command_palette_goto.cc.

References kMessage, kOverworldMap, kRoom, and kSprite.

Referenced by BuildGotoEntry().

◆ GotoKindHasJumpPath()

bool yaze::editor::GotoKindHasJumpPath ( GotoKind kind)

True when a jump path exists for kind (sprites have none yet).

Definition at line 115 of file command_palette_goto.cc.

References kSprite.

Referenced by BuildGotoEntry().

◆ ParseGotoQuery()

std::optional< GotoQuery > yaze::editor::ParseGotoQuery ( std::string_view query)

Parse query. Returns nullopt when the text is not a go-to query (no keyword, no separator, or an id token that is not a number), so ordinary searches like "map editor" fall through to fuzzy search.

Definition at line 119 of file command_palette_goto.cc.

References GotoMaxId(), yaze::editor::GotoQuery::id, yaze::editor::GotoQuery::kind, yaze::editor::GotoQuery::kMissingId, yaze::editor::GotoQuery::kOk, yaze::editor::GotoQuery::kOutOfRange, ParseGotoId(), and yaze::editor::GotoQuery::status.

Referenced by yaze::editor::UICoordinator::DrawCommandPalette().

Here is the call graph for this function:

◆ BuildGotoEntry()

◆ LookupShortcutHint()

std::string yaze::editor::LookupShortcutHint ( const ShortcutManager * shortcut_manager,
const std::string & name )

Display string for the live keybinding of shortcut name ("Ctrl+S"), or empty when unbound/unknown. Reads ShortcutManager::FindShortcut() + PrintShortcut() on every call, so rebinds show up on the next refresh.

TODO(after claude/ui-shortcuts merges): replace the body with std::string ShortcutManager::GetDisplayString(const std::string& name) const, which formats Cmd+ on macOS / Ctrl+ elsewhere and has the same "" contract for unknown or unbound names. This is the only call site.

Definition at line 49 of file command_palette_providers.cc.

References yaze::editor::ShortcutManager::GetDisplayString().

Referenced by yaze::editor::ShortcutCommandsProvider::Provide().

Here is the call graph for this function:

◆ PaletteNameForShortcut()

std::string yaze::editor::PaletteNameForShortcut ( const std::string & name)

Palette-facing name for ShortcutManager entry name. Internal keybinding ids map to a friendly name when one exists ("switch.6" -> "Switch to Overworld Editor") and to empty (hidden) otherwise.

Definition at line 55 of file command_palette_providers.cc.

References yaze::editor::EditorRegistry::GetEditorName(), yaze::editor::CommandPalette::IsInternalCommandId(), and kEditorTypeCount.

Referenced by yaze::editor::ShortcutCommandsProvider::Provide().

Here is the call graph for this function:

◆ ConfigureEditorShortcuts()

◆ ConfigureMenuShortcuts()

◆ ApplyUserShortcutOverrides()

void yaze::editor::ApplyUserShortcutOverrides ( const UserSettings & user_settings,
ShortcutManager * shortcut_manager )

Apply persisted global/editor rebinds (UserSettings global_shortcuts and editor_shortcuts) to already-registered shortcuts.

An empty stored binding unbinds the shortcut; unknown names and unparseable bindings are ignored.

Definition at line 1197 of file shortcut_configurator.cc.

References ApplyUserShortcutOverrides(), yaze::editor::UserSettings::Preferences::editor_shortcuts, yaze::editor::ShortcutManager::FindShortcut(), yaze::editor::UserSettings::Preferences::global_shortcuts, LOG_WARN, ParseShortcut(), yaze::editor::UserSettings::prefs(), and yaze::editor::ShortcutManager::UpdateShortcutKeys().

Referenced by ApplyUserShortcutOverrides(), and ConfigurePanelShortcuts().

◆ ConfigurePanelShortcuts()

void yaze::editor::ConfigurePanelShortcuts ( const ShortcutDependencies & deps,
ShortcutManager * shortcut_manager )

Final configuration pass: apply user rebinds, then register panel toggle shortcuts.

Calls ApplyUserShortcutOverrides() when deps.user_settings is set, then registers "view.toggle.<card_id>" shortcuts (Scope::kPanel, owned by the panel category's editor).

Parameters
depsShortcut dependencies
shortcut_managerThe shortcut manager to register with

User panel bindings win; otherwise WindowDescriptor.shortcut_hint is used, but only when it does not collide with an existing binding.

Definition at line 1225 of file shortcut_configurator.cc.

References ApplyUserShortcutOverrides(), ConfigurePanelShortcuts(), yaze::editor::ShortcutManager::FindConflicts(), yaze::editor::SessionCoordinator::GetActiveSessionId(), LOG_DEBUG, yaze::editor::UserSettings::Preferences::panel_shortcuts, ParseShortcut(), yaze::editor::UserSettings::prefs(), yaze::editor::ShortcutDependencies::session_coordinator, yaze::editor::ShortcutManager::SetShortcutEditor(), yaze::editor::ShortcutDependencies::user_settings, and yaze::editor::ShortcutDependencies::window_manager.

Referenced by ConfigurePanelShortcuts(), and yaze::editor::EditorManager::InitializeShortcutSystem().

◆ PrintShortcut()

◆ InferShortcutGroup()

std::string yaze::editor::InferShortcutGroup ( absl::string_view name)

Menu-IA group for a shortcut/command name (File, View, Drawers, …).

Used by the shortcuts browser and any UI that wants the same buckets as the menu bar without hard-coding every action.

Definition at line 217 of file shortcut_manager.cc.

Referenced by yaze::editor::UICoordinator::DrawShortcutsBrowser(), and yaze::editor::ShortcutCommandsProvider::Provide().

◆ ParseShortcut()

std::vector< ImGuiKey > yaze::editor::ParseShortcut ( const std::string & shortcut)

◆ ExecuteShortcuts()

void yaze::editor::ExecuteShortcuts ( const ShortcutManager & shortcut_manager)

Fire at most one shortcut for this frame's key press.

Arbitration:

  1. Drop shortcuts that are keyless, have no callback, or are not applicable (IsShortcutApplicable: wrong active editor or enabled false).
  2. While an ImGui text field wants input, drop plain-key shortcuts and text-editing chords (primary modifier + A/C/V/X/Y/Z, arrows, Home/End, Backspace/Delete) so the field handles them instead of the editor.
  3. Prefer Panel > Editor > Global scope, then editor-owned over unowned, then more keys, then more modifiers, then name (for determinism).

Definition at line 348 of file shortcut_manager.cc.

References yaze::editor::ShortcutManager::GetShortcuts(), and yaze::editor::ShortcutManager::IsShortcutApplicable().

Referenced by yaze::editor::EditorManager::ProcessInput().

Here is the call graph for this function:

◆ SameChord()

bool yaze::editor::SameChord ( const std::vector< ImGuiKey > & a,
const std::vector< ImGuiKey > & b )

True when two key lists describe the same chord (order-insensitive).

Definition at line 446 of file shortcut_manager.cc.

Referenced by yaze::editor::ShortcutManager::FindConflicts().

◆ ShouldTickEmulatorWhenHidden()

bool yaze::editor::ShouldTickEmulatorWhenHidden ( bool keep_running_in_background)
inline

Definition at line 11 of file emulator_runtime_policy.h.

Referenced by yaze::editor::EditorManager::RunEmulator().

◆ PreferStartupCategory()

std::string yaze::editor::PreferStartupCategory ( const std::string & saved_category,
const std::vector< std::string > & available_categories )
inline

◆ ValidateRomCollisionSourceBinding() [1/2]

absl::Status yaze::editor::ValidateRomCollisionSourceBinding ( Rom * replacement_rom,
const fs::path & json_path )

◆ SaveRomWithCollisionSource() [1/2]

◆ ValidateRomCollisionSourceBinding() [2/2]

absl::Status yaze::editor::ValidateRomCollisionSourceBinding ( Rom * replacement_rom,
const std::filesystem::path & json_path )

◆ SaveRomWithCollisionSource() [2/2]

absl::Status yaze::editor::SaveRomWithCollisionSource ( Rom * rom,
const std::filesystem::path & json_path )

◆ RegisterDefaultEditorFactories()

void yaze::editor::RegisterDefaultEditorFactories ( EditorRegistry * registry)

◆ ValidateHackManifestSaveConflicts()

absl::Status yaze::editor::ValidateHackManifestSaveConflicts ( const core::HackManifest & manifest,
project::RomWritePolicy write_policy,
const std::vector< std::pair< uint32_t, uint32_t > > & ranges,
absl::string_view save_scope,
const char * log_tag,
ToastManager * toast_manager )

Definition at line 11 of file hack_manifest_save_validation.cc.

References yaze::core::AddressOwnershipToString(), yaze::core::HackManifest::AnalyzePcWriteRanges(), yaze::project::kAllow, yaze::project::kBlock, kError, yaze::project::kWarn, kWarning, LOG_DEBUG, LOG_WARN, and yaze::editor::ToastManager::Show().

Referenced by yaze::editor::DungeonEditorV2::ApplyDoorConnection(), yaze::editor::DungeonEditorV2::Load(), yaze::editor::DungeonEditorV2::PreflightObjectMutation(), yaze::editor::DungeonEditorV2::PreflightRoomTransfer(), yaze::editor::DungeonEditorV2::PreflightStreamMutation(), yaze::editor::DungeonEditorV2::Save(), yaze::editor::OverworldEditor::Save(), yaze::editor::PaletteEditor::Save(), yaze::editor::DungeonEditorV2::SaveRoomData(), yaze::editor::PaletteGroupPanel::SaveToRom(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidateChestManifestConflicts(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidateCustomCollisionManifestConflicts(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidateDungeonEntranceSavePreflight(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidatePaletteManifestConflicts(), yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidatePotItemManifestConflicts(), yaze::editor::MessageEditor::ValidateSavePlan(), and yaze::editor::anonymous_namespace{dungeon_editor_v2_persistence.cc}::ValidateWaterFillManifestConflicts().

Here is the call graph for this function:

◆ WindowPresentationRoleName()

const char * yaze::editor::WindowPresentationRoleName ( WindowPresentationRole role)
inline

Definition at line 88 of file editor_panel.h.

References kCoreWorkspace, kDiagnostic, kEmbeddedTool, and kOptionalPopOut.

Referenced by AuditPanelAdmission().

◆ FirstClassPanelAllowlist()

const std::vector< PanelAdmissionEntry > & yaze::editor::FirstClassPanelAllowlist ( )

Windows admitted as first-class default surfaces. Keep this list short. Adding an entry is a product decision: name the primary workflow, and the reason an inspector, tool tab, or context-menu popup cannot host it.

Definition at line 160 of file panel_admission.cc.

◆ FindFirstClassPanelEntry()

const PanelAdmissionEntry * yaze::editor::FindFirstClassPanelEntry ( const std::string & window_id)

Returns the allowlist entry for a base window id, or nullptr.

Definition at line 164 of file panel_admission.cc.

Referenced by AuditPanelAdmission().

◆ DeferredPolicyDeclarations()

const std::vector< PanelAdmissionEntry > & yaze::editor::DeferredPolicyDeclarations ( )

Windows that have not declared a policy yet because their source directory is frozen (its owner must approve the edit). Each entry names the blocker. The audit tolerates an undeclared policy for these ids only; remove the entry in the same change that declares the policy.

Definition at line 174 of file panel_admission.cc.

◆ IsPolicyDeclarationDeferred()

bool yaze::editor::IsPolicyDeclarationDeferred ( const std::string & window_id)

Definition at line 178 of file panel_admission.cc.

Referenced by AuditPanelAdmission().

◆ CollectDefaultVisibleWindowIds()

std::vector< std::string > yaze::editor::CollectDefaultVisibleWindowIds ( const WorkspaceWindowManager & window_manager,
size_t session_id )

Base ids of the windows in session_id that are open right after registration or listed in a default layout preset (LayoutPresets).

Definition at line 192 of file panel_admission.cc.

References yaze::editor::LayoutPresets::GetDefaultPanels(), yaze::editor::WorkspaceWindowManager::GetWindowDescriptor(), yaze::editor::WorkspaceWindowManager::GetWindowsInSession(), kAgent, kAssembly, kDungeon, kEmulator, kGraphics, kHex, kMessage, kMusic, kOverworld, kPalette, kPlanning, kScreen, kSprite, and yaze::editor::WindowDescriptor::visibility_flag.

Referenced by AuditPanelAdmission().

Here is the call graph for this function:

◆ AuditPanelAdmission()

◆ FormatPanelAdmissionFindings()

std::string yaze::editor::FormatPanelAdmissionFindings ( const std::vector< PanelAdmissionFinding > & findings)

Joins findings into one message for test output.

Definition at line 284 of file panel_admission.cc.

◆ IsTransientPanelVisibilityId()

Variable Documentation

◆ kDungeonIssueCategoryLabels

constexpr std::array<const char*, 6> yaze::editor::kDungeonIssueCategoryLabels
inlineconstexpr
Initial value:
= {{
"Palette mismatch",
"Object draw mismatch",
"Door render mismatch",
"Entity mismatch",
"Overlay or collision mismatch",
"General room render mismatch",
}}

Definition at line 112 of file dungeon_canvas_viewer.h.

Referenced by GetIssueCategoryLabel(), yaze::editor::DungeonCanvasViewer::OpenIssueReportPopup(), and yaze::editor::DungeonCanvasViewer::PrepareIssueReportPopup().

◆ kDungeonSpawnReadOnlyReason

constexpr char yaze::editor::kDungeonSpawnReadOnlyReason[]
inlineconstexpr
Initial value:
=
"Spawn properties are read-only in this legacy view. Use Entrance "
"Properties to edit the dedicated DungeonSpawnPoint record."

Definition at line 9 of file dungeon_entrance_edit_policy.h.

Referenced by yaze::editor::DungeonRoomSelector::DrawEntranceSelectorInternal().

◆ kProposalOverlayVersion

constexpr int yaze::editor::kProposalOverlayVersion = 1
inlineconstexpr

Definition at line 19 of file dungeon_proposal_overlay.h.

Referenced by ParseDungeonProposalOverlay().

◆ kProposalOverlayFormat

constexpr std::string_view yaze::editor::kProposalOverlayFormat
inlineconstexpr
Initial value:
=
"yaze-dungeon-proposal-overlay"

Definition at line 20 of file dungeon_proposal_overlay.h.

Referenced by ParseDungeonProposalOverlay().

◆ kProposalRoomTiles

constexpr int yaze::editor::kProposalRoomTiles = 64
inlineconstexpr

◆ kProposalTilePixels

constexpr int yaze::editor::kProposalTilePixels = 8
inlineconstexpr

◆ kProposalDefaultMaxRoomId

constexpr int yaze::editor::kProposalDefaultMaxRoomId = 0x127
inlineconstexpr

Definition at line 24 of file dungeon_proposal_overlay.h.

◆ kTrackDirNorth

◆ kTrackDirEast

◆ kTrackDirSouth

◆ kTrackDirWest

◆ kTransferObjects

◆ kTransferDoors

◆ kTransferSprites

◆ kTransferItems

◆ kTransferMetadata

◆ kTransferCollision

constexpr uint16_t yaze::editor::kTransferCollision = 32
inlineconstexpr

◆ kTransferWater

◆ kTransferCore

constexpr uint16_t yaze::editor::kTransferCore = 31
inlineconstexpr

Definition at line 21 of file dungeon_room_transfer.h.

◆ kTransferAll

constexpr uint16_t yaze::editor::kTransferAll = 127
inlineconstexpr

◆ kMaxDungeonRoomDocumentBytes

constexpr size_t yaze::editor::kMaxDungeonRoomDocumentBytes = 1024 * 1024
inlineconstexpr

◆ kMaxDungeonRoomDocumentObjects

constexpr size_t yaze::editor::kMaxDungeonRoomDocumentObjects = 4096
inlineconstexpr

◆ kMaxDungeonRoomDocumentChestRecords

constexpr size_t yaze::editor::kMaxDungeonRoomDocumentChestRecords
inlineconstexpr
Initial value:
=
zelda3::kChestTableCapacityRecords

Definition at line 29 of file dungeon_room_transfer.h.

Referenced by ParseDungeonRoomDocument(), and yaze::editor::anonymous_namespace{dungeon_room_transfer.cc}::ValidateDomains().

◆ kRoomTransferSharedHeaderPayload

constexpr char yaze::editor::kRoomTransferSharedHeaderPayload[]
inlineconstexpr

◆ kSelectionObjects

◆ kSelectionDoors

◆ kSelectionSprites

◆ kSelectionItems

constexpr uint8_t yaze::editor::kSelectionItems = 8
inlineconstexpr

◆ kMinecartTrackSlotCount

◆ kAllObjectEvidenceStates

constexpr ObjectEvidenceState yaze::editor::kAllObjectEvidenceStates[]
inlineconstexpr
Initial value:
= {
ObjectEvidenceState::kUntriaged,
ObjectEvidenceState::kReproduced,
ObjectEvidenceState::kFixedAwaitingProof,
ObjectEvidenceState::kVerified,
ObjectEvidenceState::kIntentionalPreviewLimit,
}

Definition at line 33 of file object_coverage_model.h.

Referenced by yaze::editor::ObjectCoveragePanel::DrawFilters(), yaze::editor::ObjectCoveragePanel::DrawSummary(), yaze::editor::ObjectCoveragePanel::DrawVerdictEditor(), and ParseObjectEvidenceState().

◆ kEditorNames

constexpr std::array<const char*, 15> yaze::editor::kEditorNames
constexpr
Initial value:
= {
"Unknown", "Assembly", "Dungeon", "Emulator", "Graphics",
"Music", "Overworld", "Palette", "Screen", "Sprite",
"Message", "Hex", "Agent", "Settings", "Planning",
}

Definition at line 229 of file editor.h.

Referenced by yaze::editor::Editor::BuildContextSnapshot(), yaze::editor::EditorManager::GenerateUniqueEditorTitle(), getEditorState(), yaze::Controller::OnLoad(), yaze::editor::EditorManager::SwitchToEditor(), and yaze::editor::SessionCoordinator::UpdateSessions().

◆ kLastEditorType

constexpr EditorType yaze::editor::kLastEditorType = EditorType::kPlanning
constexpr

◆ kEditorTypeCount

constexpr size_t yaze::editor::kEditorTypeCount = static_cast<size_t>(kLastEditorType) + 1
constexpr

Definition at line 236 of file editor.h.

Referenced by PaletteNameForShortcut(), and ParseEditorTypeFromString().

◆ kSuperDonkeyTiles

const std::string yaze::editor::kSuperDonkeyTiles[]
Initial value:
= {
"97C05", "98219", "9871E", "98C00", "99084", "995AF", "99DE0", "9A27E",
"9A741", "9AC31", "9B07E", "9B55C", "9B963", "9BB99", "9C009", "9C4B4",
"9C92B", "9CDD6", "9D2C2", "9E037", "9E527", "9EA56", "9EF65", "9FCD1",
"A0193", "A059E", "A0B17", "A0FB6", "A14A5", "A1988", "A1E66", "A232B",
"A27F0", "A2B6E", "A302C", "A3453", "A38CA", "A42BB", "A470C", "A4BA9",
"A5089", "A5385", "A5742", "A5BCC", "A6017", "A6361", "A66F8"}

Definition at line 38 of file graphics_editor.h.

Referenced by yaze::editor::GraphicsEditor::DecompressSuperDonkey().

◆ kSuperDonkeySprites

const std::string yaze::editor::kSuperDonkeySprites[]
Initial value:
= {
"A8E5D", "A9435", "A9934", "A9D83", "AA2F1", "AA6D4", "AABE4", "AB127",
"AB65A", "ABBDD", "AC38D", "AC797", "ACCC8", "AD0AE", "AD245", "AD554",
"ADAAC", "ADECC", "AE453", "AE9D2", "AEF40", "AF3C9", "AF92E", "AFE9D",
"B03D2", "B09AC", "B0F0C", "B1430", "B1859", "B1E01", "B229A", "B2854",
"B2D27", "B31D7", "B3B58", "B40B5", "B45A5", "B4D64", "B5031", "B555F",
"B5F30", "B6858", "B70DD", "B7526", "B79EC", "B7C83", "B80F7", "B85CC",
"B8A3F", "B8F97", "B94F2", "B9A20", "B9E9A", "BA3A2", "BA8F6", "BACDC",
"BB1F9", "BB781", "BBCCA", "BC26D", "BC7D4", "BCBB0", "BD082", "BD5FC",
"BE115", "BE5C2", "BEB63", "BF0CB", "BF607", "BFA55", "BFD71", "C017D",
"C0567", "C0981", "C0BA7", "C116D", "C166A", "C1FE0", "C24CE", "C2B19"}

Definition at line 46 of file graphics_editor.h.

Referenced by yaze::editor::GraphicsEditor::DecompressSuperDonkey().

◆ kDrawerCatalog

const std::array<DrawerCatalogEntry, 7> yaze::editor::kDrawerCatalog
Initial value:
= {{
{RightDrawerManager::PanelType::kProject, "Project", ICON_MD_FOLDER_SPECIAL,
"View: Toggle Project Panel"},
{RightDrawerManager::PanelType::kProperties, "Properties", ICON_MD_LIST_ALT,
"View: Toggle Properties Panel"},
{RightDrawerManager::PanelType::kAgentChat, "AI Agent", ICON_MD_SMART_TOY,
"View: Toggle AI Agent Panel"},
{RightDrawerManager::PanelType::kProposals, "Proposals",
ICON_MD_DESCRIPTION, "View: Toggle Proposals Panel"},
{RightDrawerManager::PanelType::kNotifications, "Notifications",
ICON_MD_NOTIFICATIONS, "View: Toggle Notifications Panel"},
{RightDrawerManager::PanelType::kHelp, "Help", ICON_MD_HELP,
"View: Toggle Help Panel"},
{RightDrawerManager::PanelType::kSettings, "Settings", ICON_MD_SETTINGS,
"View: Toggle Settings Panel"},
}}
#define ICON_MD_NOTIFICATIONS
Definition icons.h:1335
#define ICON_MD_SETTINGS
Definition icons.h:1699
#define ICON_MD_FOLDER_SPECIAL
Definition icons.h:815
#define ICON_MD_LIST_ALT
Definition icons.h:1095
#define ICON_MD_DESCRIPTION
Definition icons.h:539
#define ICON_MD_HELP
Definition icons.h:933
#define ICON_MD_SMART_TOY
Definition icons.h:1781

Definition at line 378 of file right_drawer_manager.cc.

Referenced by yaze::editor::anonymous_namespace{right_drawer_manager.cc}::FindRightPanelIndex(), GetDrawerCatalog(), and yaze::editor::anonymous_namespace{right_drawer_manager.cc}::StepRightPanel().

◆ kBankToken

const std::string yaze::editor::kBankToken = "BANK"

Definition at line 102 of file message_data.h.

Referenced by ReadAllTextData().

◆ DICTIONARYTOKEN

◆ kMessageTerminator

◆ DICTOFF

◆ kWidthArraySize

constexpr uint8_t yaze::editor::kWidthArraySize = 100
constexpr

Definition at line 106 of file message_data.h.

Referenced by yaze::editor::MessageEditor::Initialize().

◆ kBankSwitchCommand

constexpr uint8_t yaze::editor::kBankSwitchCommand = 0x80
constexpr

◆ kTextData

◆ kTextDataEnd

constexpr int yaze::editor::kTextDataEnd = 0xE7FFF
constexpr

◆ kNumDictionaryEntries

constexpr int yaze::editor::kNumDictionaryEntries = 0x61
constexpr

◆ kPointersDictionaries

constexpr int yaze::editor::kPointersDictionaries = 0x74703
constexpr

◆ kScrollVertical

constexpr uint8_t yaze::editor::kScrollVertical = 0x73
constexpr

◆ kLine1

constexpr uint8_t yaze::editor::kLine1 = 0x74
constexpr

◆ kLine2

constexpr uint8_t yaze::editor::kLine2 = 0x75
constexpr

◆ kLine3

constexpr uint8_t yaze::editor::kLine3 = 0x76
constexpr

◆ CHEESE

const std::string yaze::editor::CHEESE = "\uBEBE"

◆ kMessageBundleVersion

◆ kTextData2

constexpr int yaze::editor::kTextData2 = 0x75F40
constexpr

◆ kTextData2End

constexpr int yaze::editor::kTextData2End = 0x773FF
constexpr

Definition at line 501 of file message_data.h.

◆ kMaxLineWidth

constexpr int yaze::editor::kMaxLineWidth = 32
constexpr

Definition at line 626 of file message_data.h.

Referenced by ValidateMessageLineWidths().

◆ kExpandedTextDataDefault

constexpr int yaze::editor::kExpandedTextDataDefault = 0x178000
constexpr

Definition at line 660 of file message_data.h.

Referenced by GetExpandedTextDataStart().

◆ kExpandedTextDataEndDefault

constexpr int yaze::editor::kExpandedTextDataEndDefault = 0x17FFFF
constexpr

Definition at line 662 of file message_data.h.

Referenced by GetExpandedTextDataEnd().

◆ kMessageTableFlags

constexpr ImGuiTableFlags yaze::editor::kMessageTableFlags
constexpr
Initial value:
= ImGuiTableFlags_Hideable |
ImGuiTableFlags_Borders |
ImGuiTableFlags_Resizable

Definition at line 69 of file message_editor.cc.

Referenced by yaze::editor::MessageEditor::DrawDictionary(), and yaze::editor::MessageEditor::DrawTokenInserter().

◆ kGfxFont

constexpr int yaze::editor::kGfxFont = 0x70000
constexpr

Definition at line 35 of file message_editor.h.

Referenced by yaze::editor::MessageEditor::LoadFontGraphics().

◆ kCharactersWidth

constexpr int yaze::editor::kCharactersWidth = 0x74ADF
constexpr

◆ kNumMessages

constexpr int yaze::editor::kNumMessages = 396
constexpr

Definition at line 37 of file message_editor.h.

◆ kFontGfxMessageSize

constexpr int yaze::editor::kFontGfxMessageSize = 128
constexpr

◆ kFontGfxMessageDepth

constexpr int yaze::editor::kFontGfxMessageDepth
constexpr
Initial value:
=
8

Definition at line 39 of file message_editor.h.

Referenced by yaze::editor::MessageEditor::RefreshFontAtlasBitmap().

◆ kFontGfx16Size

constexpr int yaze::editor::kFontGfx16Size = 172 * 4096
constexpr

Definition at line 41 of file message_editor.h.

◆ kBlockTerminator

constexpr uint8_t yaze::editor::kBlockTerminator = 0x80
constexpr

Definition at line 43 of file message_editor.h.

◆ kMessageBankChangeId

constexpr uint8_t yaze::editor::kMessageBankChangeId = 0x80
constexpr

Definition at line 44 of file message_editor.h.

◆ kCurrentMessageWidth

◆ kCurrentMessageHeight

constexpr int yaze::editor::kCurrentMessageHeight = 4096
constexpr

◆ kOracleExpandedRomWriteRefusal

constexpr char yaze::editor::kOracleExpandedRomWriteRefusal[]
inlineconstexpr
Initial value:
=
"Oracle of Secrets expanded messages are owned by ASM. No message "
"bytes were written. Publish Data/dialogue/expanded_messages.json through "
"Yaze source sync, which regenerates Core/Generated/expanded_messages.asm, "
"then rebuild Oracle of Secrets and reopen the rebuilt ROM."

Definition at line 59 of file message_source_sync.h.

Referenced by yaze::cli::handlers::anonymous_namespace{message_commands.cc}::PreflightExpandedMutation(), and yaze::editor::MessageEditor::ValidateSavePlan().

◆ toolset_table_flags_

const ImGuiTableFlags yaze::editor::toolset_table_flags_ = ImGuiTableFlags_SizingFixedFit

Definition at line 82 of file music_editor.h.

◆ music_editor_flags_

const ImGuiTableFlags yaze::editor::music_editor_flags_
Initial value:
= ImGuiTableFlags_SizingFixedFit |
ImGuiTableFlags_Resizable |
ImGuiTableFlags_Reorderable

Definition at line 83 of file music_editor.h.

◆ kInputFieldSize

constexpr float yaze::editor::kInputFieldSize = 30.f
inlineconstexpr

◆ k4BPP

constexpr unsigned int yaze::editor::k4BPP = 4
constexpr

Definition at line 95 of file overworld_editor.h.

◆ kByteSize

constexpr unsigned int yaze::editor::kByteSize = 3
constexpr

Definition at line 96 of file overworld_editor.h.

◆ kMessageIdSize

constexpr unsigned int yaze::editor::kMessageIdSize = 5
constexpr

Definition at line 97 of file overworld_editor.h.

◆ kNumSheetsToLoad

constexpr unsigned int yaze::editor::kNumSheetsToLoad = 223
constexpr

Definition at line 98 of file overworld_editor.h.

◆ kOWMapFlags

constexpr ImGuiTableFlags yaze::editor::kOWMapFlags
constexpr
Initial value:
=
ImGuiTableFlags_Borders | ImGuiTableFlags_Resizable |
ImGuiTableFlags_RowBg | ImGuiTableFlags_SizingStretchProp

Definition at line 105 of file overworld_editor.h.

◆ kWorldList

constexpr absl::string_view yaze::editor::kWorldList
constexpr
Initial value:
=
"Light World\0Dark World\0Extra World\0"

Definition at line 109 of file overworld_editor.h.

◆ kGamePartComboString

constexpr absl::string_view yaze::editor::kGamePartComboString = "Part 0\0Part 1\0Part 2\0"
constexpr

Definition at line 112 of file overworld_editor.h.

◆ kOWMapTable

constexpr absl::string_view yaze::editor::kOWMapTable = "#MapSettingsTable"
constexpr

Definition at line 114 of file overworld_editor.h.

◆ kTile16Size

◆ kTile8Size

constexpr int yaze::editor::kTile8Size = 8
constexpr

◆ kTilesheetEditorWidth

constexpr int yaze::editor::kTilesheetEditorWidth = 0x100
constexpr

Definition at line 15 of file tile16_edit_types.h.

◆ kTilesheetEditorHeight

constexpr int yaze::editor::kTilesheetEditorHeight = 0x4000
constexpr

Definition at line 16 of file tile16_edit_types.h.

◆ kTile16CanvasSize

constexpr int yaze::editor::kTile16CanvasSize = 0x20
constexpr

Definition at line 17 of file tile16_edit_types.h.

◆ kTile8CanvasHeight

constexpr int yaze::editor::kTile8CanvasHeight = 0x175
constexpr

Definition at line 18 of file tile16_edit_types.h.

◆ kNumScratchSlots

◆ kNumTile16Palettes

constexpr int yaze::editor::kNumTile16Palettes = 8
constexpr

Definition at line 20 of file tile16_edit_types.h.

◆ kTile8PixelCount

constexpr int yaze::editor::kTile8PixelCount = 64
constexpr

◆ kTile16PixelCount

constexpr int yaze::editor::kTile16PixelCount = 256
constexpr

◆ kTile8DisplayScale

constexpr float yaze::editor::kTile8DisplayScale = 4.0f
constexpr

◆ kGameStateNames

constexpr const char* yaze::editor::kGameStateNames[]
inlineconstexpr

◆ kWorldNames

constexpr const char* yaze::editor::kWorldNames[]
inlineconstexpr
Initial value:
= {"Light World", "Dark World",
"Special World"}

Definition at line 12 of file ui_constants.h.

Referenced by yaze::editor::OverworldToolbar::Draw().

◆ kAreaSizeNames

constexpr const char* yaze::editor::kAreaSizeNames[]
inlineconstexpr
Initial value:
= {"Small (1x1)", "Large (2x2)",
"Wide (2x1)", "Tall (1x2)"}

Definition at line 16 of file ui_constants.h.

Referenced by yaze::editor::OverworldSidebar::DrawAreaSection().

◆ kHexByteInputWidth

constexpr float yaze::editor::kHexByteInputWidth = 50.f
inlineconstexpr

Definition at line 21 of file ui_constants.h.

◆ kHexWordInputWidth

constexpr float yaze::editor::kHexWordInputWidth = 70.f
inlineconstexpr

Definition at line 22 of file ui_constants.h.

◆ kCompactButtonWidth

constexpr float yaze::editor::kCompactButtonWidth = 60.f
inlineconstexpr

Definition at line 23 of file ui_constants.h.

◆ kIconButtonWidth

constexpr float yaze::editor::kIconButtonWidth = 40.f
inlineconstexpr

Definition at line 24 of file ui_constants.h.

◆ kPanelToggleButtonWidth

constexpr float yaze::editor::kPanelToggleButtonWidth = 40.f
inlineconstexpr

Definition at line 25 of file ui_constants.h.

◆ kSmallButtonWidth

constexpr float yaze::editor::kSmallButtonWidth = 80.f
inlineconstexpr

Definition at line 26 of file ui_constants.h.

◆ kMediumButtonWidth

constexpr float yaze::editor::kMediumButtonWidth = 90.f
inlineconstexpr

Definition at line 27 of file ui_constants.h.

◆ kLargeButtonWidth

constexpr float yaze::editor::kLargeButtonWidth = 100.f
inlineconstexpr

Definition at line 28 of file ui_constants.h.

◆ kTableColumnWorld

constexpr float yaze::editor::kTableColumnWorld = 120.f
inlineconstexpr

Definition at line 31 of file ui_constants.h.

◆ kTableColumnMap

constexpr float yaze::editor::kTableColumnMap = 80.f
inlineconstexpr

Definition at line 32 of file ui_constants.h.

◆ kTableColumnAreaSize

constexpr float yaze::editor::kTableColumnAreaSize = 120.f
inlineconstexpr

Definition at line 33 of file ui_constants.h.

◆ kTableColumnLock

constexpr float yaze::editor::kTableColumnLock = 50.f
inlineconstexpr

Definition at line 34 of file ui_constants.h.

◆ kTableColumnGraphics

constexpr float yaze::editor::kTableColumnGraphics = 80.f
inlineconstexpr

Definition at line 35 of file ui_constants.h.

◆ kTableColumnPalettes

constexpr float yaze::editor::kTableColumnPalettes = 80.f
inlineconstexpr

Definition at line 36 of file ui_constants.h.

◆ kTableColumnProperties

constexpr float yaze::editor::kTableColumnProperties = 100.f
inlineconstexpr

Definition at line 37 of file ui_constants.h.

◆ kTableColumnTools

constexpr float yaze::editor::kTableColumnTools = 80.f
inlineconstexpr

Definition at line 38 of file ui_constants.h.

◆ kTableColumnView

constexpr float yaze::editor::kTableColumnView = 80.f
inlineconstexpr

Definition at line 39 of file ui_constants.h.

◆ kTableColumnQuick

constexpr float yaze::editor::kTableColumnQuick = 80.f
inlineconstexpr

Definition at line 40 of file ui_constants.h.

◆ kComboWorldWidth

constexpr float yaze::editor::kComboWorldWidth = 115.f
inlineconstexpr

Definition at line 43 of file ui_constants.h.

◆ kComboAreaSizeWidth

constexpr float yaze::editor::kComboAreaSizeWidth = 115.f
inlineconstexpr

Definition at line 44 of file ui_constants.h.

◆ kComboGameStateWidth

constexpr float yaze::editor::kComboGameStateWidth = 100.f
inlineconstexpr

Definition at line 45 of file ui_constants.h.

◆ kTableButtonGraphics

constexpr float yaze::editor::kTableButtonGraphics = 75.f
inlineconstexpr

Definition at line 48 of file ui_constants.h.

◆ kTableButtonPalettes

constexpr float yaze::editor::kTableButtonPalettes = 75.f
inlineconstexpr

Definition at line 49 of file ui_constants.h.

◆ kTableButtonProperties

constexpr float yaze::editor::kTableButtonProperties = 95.f
inlineconstexpr

Definition at line 50 of file ui_constants.h.

◆ kTableButtonTools

constexpr float yaze::editor::kTableButtonTools = 75.f
inlineconstexpr

Definition at line 51 of file ui_constants.h.

◆ kTableButtonView

constexpr float yaze::editor::kTableButtonView = 75.f
inlineconstexpr

Definition at line 52 of file ui_constants.h.

◆ kTableButtonQuick

constexpr float yaze::editor::kTableButtonQuick = 75.f
inlineconstexpr

Definition at line 53 of file ui_constants.h.

◆ kCompactItemSpacing

constexpr float yaze::editor::kCompactItemSpacing = 4.f
inlineconstexpr

Definition at line 56 of file ui_constants.h.

◆ kCompactFramePadding

constexpr float yaze::editor::kCompactFramePadding = 2.f
inlineconstexpr

Definition at line 57 of file ui_constants.h.

◆ kOverworldMapSize

◆ kTile16SelectorColumns

constexpr int yaze::editor::kTile16SelectorColumns = 8
inlineconstexpr

◆ kTile16SelectorScale

constexpr float yaze::editor::kTile16SelectorScale = 2.0f
inlineconstexpr

◆ kTile16SelectorDrawOffsetX

constexpr float yaze::editor::kTile16SelectorDrawOffsetX = 2.0f
inlineconstexpr

◆ kOverworldMinZoom

constexpr float yaze::editor::kOverworldMinZoom = 0.1f
inlineconstexpr

◆ kOverworldMaxZoom

constexpr float yaze::editor::kOverworldMaxZoom = 5.0f
inlineconstexpr

◆ kOverworldZoomStep

constexpr float yaze::editor::kOverworldZoomStep = 0.25f
inlineconstexpr

Definition at line 71 of file ui_constants.h.

Referenced by yaze::editor::CanvasNavigationManager::ZoomBySteps().

◆ kOverworldWheelPanPx

constexpr float yaze::editor::kOverworldWheelPanPx = 64.0f
inlineconstexpr

◆ kOverworldPanSnapMapPx

constexpr float yaze::editor::kOverworldPanSnapMapPx = 8.0f
inlineconstexpr

◆ kOverworldWheelDeadzone

constexpr float yaze::editor::kOverworldWheelDeadzone = 0.05f
inlineconstexpr

Definition at line 82 of file ui_constants.h.

Referenced by yaze::editor::StickyWheelPan::Consume().

◆ kOverworldWheelIdleResetSec

constexpr float yaze::editor::kOverworldWheelIdleResetSec = 0.08f
inlineconstexpr

◆ kOverworldWheelZoomUnitsPerStep

constexpr float yaze::editor::kOverworldWheelZoomUnitsPerStep = 1.0f
inlineconstexpr

◆ kPaletteTableFlags

constexpr ImGuiTableFlags yaze::editor::kPaletteTableFlags
constexpr
Initial value:
=
ImGuiTableFlags_Reorderable | ImGuiTableFlags_Resizable |
ImGuiTableFlags_SizingStretchSame | ImGuiTableFlags_Hideable

Definition at line 61 of file palette_editor.cc.

◆ kPalNoAlpha

constexpr ImGuiColorEditFlags yaze::editor::kPalNoAlpha = ImGuiColorEditFlags_NoAlpha
constexpr

Definition at line 65 of file palette_editor.cc.

◆ kPalButtonFlags

constexpr ImGuiColorEditFlags yaze::editor::kPalButtonFlags
constexpr
Initial value:
= ImGuiColorEditFlags_NoAlpha |
ImGuiColorEditFlags_NoPicker |
ImGuiColorEditFlags_NoTooltip

Definition at line 67 of file palette_editor.cc.

Referenced by DisplayPalette(), yaze::editor::PaletteEditor::DrawCustomPalettePanel(), and yaze::editor::PaletteEditor::DrawQuickAccessPanel().

◆ kColorPopupFlags

constexpr ImGuiColorEditFlags yaze::editor::kColorPopupFlags
constexpr
Initial value:
=
ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoAlpha |
ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV |
ImGuiColorEditFlags_DisplayHex

Definition at line 71 of file palette_editor.cc.

Referenced by yaze::editor::anonymous_namespace{palette_editor.cc}::DrawCustomColorContextMenu(), yaze::editor::PaletteEditor::DrawCustomPalette(), yaze::editor::PaletteEditor::DrawCustomPalettePanel(), yaze::editor::PaletteEditor::DrawQuickAccessPanel(), yaze::editor::PaletteEditor::DrawQuickAccessTab(), and yaze::editor::PaletteEditor::HandleColorPopup().

◆ kSpriteTabFlags

constexpr ImGuiTabItemFlags yaze::editor::kSpriteTabFlags
constexpr
Initial value:
=
ImGuiTabItemFlags_Trailing | ImGuiTabItemFlags_NoTooltip

Definition at line 28 of file sprite_editor.h.

Referenced by yaze::editor::SpriteEditor::DrawVanillaSpriteEditor().

◆ kSpriteTabBarFlags

constexpr ImGuiTabBarFlags yaze::editor::kSpriteTabBarFlags
constexpr
Initial value:
=
ImGuiTabBarFlags_AutoSelectNewTabs | ImGuiTabBarFlags_Reorderable |
ImGuiTabBarFlags_FittingPolicyResizeDown |
ImGuiTabBarFlags_TabListPopupButton

Definition at line 31 of file sprite_editor.h.

Referenced by yaze::editor::SpriteEditor::DrawVanillaSpriteEditor().

◆ kSpriteTableFlags

constexpr ImGuiTableFlags yaze::editor::kSpriteTableFlags
constexpr
Initial value:
=
ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable |
ImGuiTableFlags_Hideable | ImGuiTableFlags_BordersOuter |
ImGuiTableFlags_BordersV

Definition at line 36 of file sprite_editor.h.