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{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_proposals_panel.cc}
 
namespace  anonymous_namespace{assembly_editor.cc}
 
namespace  anonymous_namespace{canvas_navigation_manager.cc}
 
namespace  anonymous_namespace{content_registry.cc}
 
namespace  anonymous_namespace{dashboard_panel.cc}
 
namespace  anonymous_namespace{dungeon_canvas_viewer.cc}
 
namespace  anonymous_namespace{dungeon_editor_v2.cc}
 
namespace  anonymous_namespace{dungeon_overlay_controls.cc}
 
namespace  anonymous_namespace{dungeon_room_nav_widget.cc}
 
namespace  anonymous_namespace{dungeon_toolset.cc}
 
namespace  anonymous_namespace{dungeon_workbench_panel.cc}
 
namespace  anonymous_namespace{dungeon_workbench_toolbar.cc}
 
namespace  anonymous_namespace{editor_manager.cc}
 
namespace  anonymous_namespace{editor_selection_dialog.cc}
 
namespace  anonymous_namespace{feature_flag_editor_panel.cc}
 
namespace  anonymous_namespace{gfx_group_editor.cc}
 
namespace  anonymous_namespace{layout_manager.cc}
 
namespace  anonymous_namespace{manifest_panel.cc}
 
namespace  anonymous_namespace{menu_inspector_panel.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{minecart_track_editor_panel.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_entity_renderer.cc}
 
namespace  anonymous_namespace{palette_controls_panel.cc}
 
namespace  anonymous_namespace{palette_editor.cc}
 
namespace  anonymous_namespace{palette_group_panel.cc}
 
namespace  anonymous_namespace{panel_manager.cc}
 
namespace  anonymous_namespace{polyhedral_editor_panel.cc}
 
namespace  anonymous_namespace{right_panel_manager.cc}
 
namespace  anonymous_namespace{rom_file_manager.cc}
 
namespace  anonymous_namespace{rom_lifecycle_manager.cc}
 
namespace  anonymous_namespace{settings_panel.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{tile16_editor.cc}
 
namespace  anonymous_namespace{tile_object_handler.cc}
 
namespace  anonymous_namespace{user_settings.cc}
 
namespace  anonymous_namespace{welcome_screen.cc}
 
namespace  ContentRegistry
 Central registry for editor content and services.
 
namespace  dungeon_coords
 Coordinate conversion utilities for dungeon editing.
 
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  zsprite
 Namespace for the ZSprite format from Zarby's ZSpriteMaker.
 

Classes

class  AboutPanel
 
class  ActivityBar
 
class  AgentAutomationPanel
 
class  AgentBotProfilesPanel
 EditorPanel for Bot Profiles panel. More...
 
class  AgentBuilderPanel
 EditorPanel for Agent Builder panel. More...
 
class  AgentChat
 Unified Agent Chat Component. More...
 
class  AgentChatHistoryCodec
 
class  AgentChatHistoryPanel
 EditorPanel for Chat History panel. More...
 
class  AgentChatPanel
 EditorPanel for Agent Chat panel. More...
 
class  AgentCollaborationCoordinator
 
class  AgentConfigPanel
 
struct  AgentConfigState
 Agent configuration state. More...
 
class  AgentConfigurationPanel
 EditorPanel for AI Configuration panel. More...
 
class  AgentEditor
 Comprehensive AI Agent Platform & Bot Creator. More...
 
class  AgentKnowledgeBasePanel
 EditorPanel for Knowledge Base panel. More...
 
class  AgentKnowledgePanel
 Panel for viewing/editing learned knowledge patterns. More...
 
class  AgentMesenDebugPanel
 EditorPanel for Mesen2 debug integration. More...
 
class  AgentMetricsDashboardPanel
 EditorPanel for Metrics Dashboard panel. More...
 
class  AgentPromptEditorPanel
 EditorPanel 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
 EditorPanel 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  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  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...
 
class  ChestEditorPanel
 EditorPanel for managing chest contents in dungeon rooms. 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
 
class  CommandPalette
 
class  CommandPaletteWidget
 
struct  CoreDependencies
 
class  CustomCollisionPanel
 
class  CustomPalettePanel
 
class  CustomSpriteEditorPanel
 EditorPanel for Custom Sprite Editor (ZSM format) More...
 
class  DashboardPanel
 
class  DebugWindowCard
 
class  DebugWindowPanel
 Displays debug information for the Overworld Editor. More...
 
struct  DictionaryEntry
 
class  DictionaryPanel
 EditorPanel for Dictionary. More...
 
class  DoorInteractionHandler
 Handles door placement and interaction in the dungeon editor. More...
 
class  DungeonCanvasViewer
 
class  DungeonCustomCollisionAction
 
class  DungeonEditorV2
 DungeonEditorV2 - Simplified dungeon editor using component delegation. More...
 
class  DungeonEmulatorPreviewPanel
 EditorPanel wrapper for DungeonObjectEmulatorPreview. More...
 
class  DungeonEntranceListPanel
 EditorPanel for entrance list selection. More...
 
class  DungeonEntrancesPanel
 EditorPanel for displaying and editing dungeon entrances. More...
 
class  DungeonMainPalettePanel
 Dungeon Main palette group panel. More...
 
class  DungeonMapPanel
 EditorPanel for displaying multiple rooms in a spatial dungeon layout. More...
 
class  DungeonMapsPanel
 EditorPanel for Dungeon Maps Editor. More...
 
class  DungeonObjectInteraction
 Handles object selection, placement, and interaction within the dungeon canvas. More...
 
class  DungeonObjectsAction
 Undoable action for dungeon room object edits. More...
 
class  DungeonObjectSelector
 Handles object selection, preview, and editing UI. More...
 
struct  DungeonOverlayControlSpec
 
class  DungeonPaletteEditorPanel
 EditorPanel wrapper for PaletteEditorWidget in dungeon context. More...
 
class  DungeonRenderingHelpers
 
class  DungeonRoomGraphicsPanel
 EditorPanel for displaying room graphics blocks. More...
 
class  DungeonRoomLoader
 Manages loading and saving of dungeon room data. More...
 
class  DungeonRoomMatrixPanel
 EditorPanel for displaying a visual 16x19 grid of all dungeon rooms. More...
 
class  DungeonRoomNavWidget
 
class  DungeonRoomPanel
 ResourcePanel for editing individual dungeon rooms. More...
 
class  DungeonRoomSelector
 Handles room and entrance selection UI. More...
 
class  DungeonRoomSelectorPanel
 EditorPanel for room list selection. More...
 
class  DungeonSettingsPanel
 
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
 
struct  DungeonWorkbenchLayoutState
 
class  DungeonWorkbenchPanel
 
class  DungeonWorkbenchToolbar
 
struct  DungeonWorkbenchToolbarParams
 
class  Editor
 Interface for editor classes. More...
 
class  EditorActivator
 Handles editor switching, layout initialization, and jump-to navigation. More...
 
struct  EditorContext
 Lightweight view into the essential runtime context (Rom + GameData) More...
 
struct  EditorDependencies
 Unified dependency container for all editor types. More...
 
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  EditorPanel
 Base interface for all logical panel components. 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  EquipmentPalettePanel
 Equipment/Armor palette group panel. More...
 
class  ExtensionManager
 
class  FeatureFlagEditorEditorPanel
 EditorPanel for Feature Flag Editor. More...
 
class  FeatureFlagEditorPanel
 Panel for viewing and toggling ASM feature flags from the hack manifest. 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
 EditorPanel 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...
 
class  GfxGroupEditor
 Manage graphics group configurations in a Rom. More...
 
class  GfxGroupsPanel
 Graphics group configuration editor. More...
 
class  GitignoreParser
 Simple .gitignore pattern matcher. More...
 
class  GlobalEditorContext
 Instance-based runtime context replacing ContentRegistry::Context. More...
 
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...
 
class  GraphicsGfxGroupPanel
 Graphics group editor panel for managing GFX groups. More...
 
class  GraphicsLinkSpritePanel
 Link sprite editor panel for editing Link's graphics. More...
 
class  GraphicsPaletteControlsPanel
 Palette controls panel for managing graphics palettes. More...
 
class  GraphicsPalettesetPanel
 Paletteset editor panel for managing dungeon palette associations. More...
 
class  GraphicsPixelEditAction
 Undoable action for pixel edits on a 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...
 
class  GraphicsSheetBrowserPanel
 Sheet browser panel for navigating graphics sheets. More...
 
class  HistoryManager
 
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
 EditorPanel 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  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, PanelManager, 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
 EditorPanel for Hack Manifest Status + Protected Regions Inspector. More...
 
class  ManifestPanel
 Panel for manifest freshness UX and protected regions inspection. 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
 
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  MesenDebugPanel
 ImGui panel for Mesen2-OoS debugging integration. More...
 
class  MesenScreenshotEditorPanel
 EditorPanel 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
 EditorPanel for Message Editor. More...
 
class  MessageListPanel
 EditorPanel for Message List. More...
 
struct  MessageParseResult
 
struct  MessagePreview
 
struct  MessageSnapshot
 
struct  MinecartTrack
 
class  MinecartTrackEditorPanel
 
struct  ModelCache
 Cached model list + UI helpers. More...
 
struct  ModelPreset
 Model preset for quick switching. More...
 
struct  ModeState
 Mode-specific state data. More...
 
struct  MultimodalCallbacks
 Callbacks for multimodal/vision operations. More...
 
struct  MultimodalState
 State for multimodal/vision features. More...
 
class  MusicAssemblyPanel
 EditorPanel wrapper for the assembly editor view in Music context. More...
 
class  MusicAudioDebugPanel
 EditorPanel providing audio diagnostics for debugging the music editor. More...
 
class  MusicEditor
 A class for editing music data in a Rom. More...
 
class  MusicHelpPanel
 EditorPanel providing help documentation for the Music Editor. More...
 
class  MusicInstrumentEditorPanel
 EditorPanel wrapper for the instrument editor. More...
 
class  MusicPianoRollPanel
 EditorPanel wrapper for the piano roll view. More...
 
class  MusicPlaybackControlPanel
 EditorPanel for music playback controls and status display. More...
 
class  MusicSampleEditorPanel
 EditorPanel wrapper for the sample editor. More...
 
class  MusicSongBrowserPanel
 EditorPanel 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...
 
struct  NotificationEntry
 Entry in the notification history with timestamp. More...
 
class  ObjectEditorPanel
 Unified panel for dungeon object editing. More...
 
class  ObjectSelection
 Manages object selection state and operations for the dungeon editor. More...
 
class  ObjectTileEditorPanel
 Panel for editing the tile8 composition of dungeon objects. More...
 
class  OracleMenuInspectorPanel
 
class  OracleRamPanel
 Panel for live monitoring of Oracle of Secrets RAM variables. More...
 
class  OracleStateLibraryEditorPanel
 EditorPanel 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  OverworldCanvasPanel
 The main canvas panel for the Overworld Editor. More...
 
class  OverworldCanvasRenderer
 Handles all canvas drawing and panel rendering for the overworld editor. More...
 
class  OverworldEditor
 Main UI class for editing overworld maps in A Link to the Past. More...
 
class  OverworldEntityInteraction
 Handles entity interaction logic for the Overworld Editor. More...
 
class  OverworldEntityRenderer
 Handles visualization of all overworld entities (entrances, exits, items, sprites) More...
 
class  OverworldMainPalettePanel
 Overworld Main palette group panel. More...
 
class  OverworldMapScreenPanel
 EditorPanel for Overworld Map Screen Editor. More...
 
struct  OverworldPanelIds
 Panel IDs for overworld editor panels. More...
 
class  OverworldSidebar
 
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...
 
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...
 
class  PalettesetEditorPanel
 Dedicated panel for editing dungeon palette sets. More...
 
struct  PanelDefinition
 Declarative registration contract for editor panels. More...
 
struct  PanelDescriptor
 Metadata for an editor panel (formerly PanelInfo) More...
 
class  PanelHost
 Thin host API over PanelManager for declarative panel workflows. More...
 
struct  PanelLayoutPreset
 Defines default panel visibility for an editor type. More...
 
class  PanelManager
 Central registry for all editor cards with session awareness and dependency injection. More...
 
struct  PanelToggleEvent
 
struct  PanelVisibilityChangedEvent
 Published when panel visibility changes. More...
 
struct  ParsedElement
 
struct  PersonaProfile
 User persona profile for personalized AI behavior. More...
 
class  PixelEditorPanel
 Main pixel editing panel for graphics sheets. More...
 
struct  PixelSelection
 Selection data for copy/paste operations. More...
 
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...
 
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  ProposalCallbacks
 Callbacks for proposal operations. More...
 
class  ProposalDrawer
 ImGui drawer for displaying and managing agent proposals. More...
 
struct  ProposalState
 State for proposal management. More...
 
class  QuickAccessPalettePanel
 
struct  RecentProject
 Information about a recently used project. More...
 
struct  RegionSelectionState
 Region selection state for screenshot cropping. More...
 
struct  ResolvedMessageId
 
class  ResourcePanel
 Base class for panels that edit specific ROM resources. More...
 
class  RightPanelManager
 Manages right-side sliding panels for agent chat, proposals, settings. More...
 
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  RoomTagEditorPanel
 EditorPanel 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  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  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
 EditorPanel for browsing and selecting graphics sheets. More...
 
struct  Shortcut
 
struct  ShortcutDependencies
 
class  ShortcutLegendPanel
 
class  ShortcutManager
 
struct  SidebarStateChangedEvent
 Sidebar visibility state change notification. More...
 
class  SpriteDrawer
 Draws sprite OAM tiles to bitmaps for preview rendering. More...
 
class  SpriteEditor
 Allows the user to edit sprites. More...
 
class  SpriteEditorPanel
 EditorPanel 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...
 
class  SramViewerEditorPanel
 EditorPanel 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  StatusUpdateEvent
 
class  StoryEventGraphPanel
 Interactive node graph of Oracle narrative progression. More...
 
struct  TextElement
 
struct  Tile16ClipboardData
 
class  Tile16EditAction
 Undoable action for edits to a single Tile16. More...
 
class  Tile16Editor
 Popup window to edit Tile16 data. More...
 
class  Tile16EditorPanel
 EditorPanel wrapper for Tile16Editor. More...
 
struct  Tile16ScratchData
 
class  Tile16SelectorPanel
 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  Tile8SelectorPanel
 Low-level 8x8 tile editing interface. More...
 
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  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  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  VanillaSpriteEditorPanel
 EditorPanel for Vanilla Sprite Editor. More...
 
class  WaterFillPanel
 
struct  WaterFillSnapshot
 
class  WelcomeScreen
 Modern welcome screen with project grid and quick actions. More...
 
class  WindowDelegate
 Low-level window operations with minimal dependencies. More...
 
class  WorkspaceManager
 Manages workspace layouts, sessions, and presets. 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...
 

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  ObjectRenderMode { Manual , Emulator , Hybrid }
 Handles the main dungeon canvas rendering and interaction. More...
 
enum class  DungeonOverlayControlId {
  kGrid , kObjectBounds , kHoverCoordinates , kCameraQuadrants ,
  kTrackCollision , kCustomCollision , kWaterFillOracle , kMinecartPathing ,
  kTrackGaps , kTrackRoutes , kCustomObjects
}
 
enum class  TrackDir : uint8_t { North , East , South , West }
 
enum class  RoomSelectionIntent { kFocusInWorkbench , kOpenStandalone , kPreview }
 Intent for room selection in the dungeon editor. More...
 
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  EditorType {
  kUnknown , kAssembly , kDungeon , kEmulator ,
  kGraphics , kMusic , kOverworld , kPalette ,
  kScreen , kSprite , kMessage , kHex ,
  kAgent , kSettings
}
 
enum class  PixelTool {
  kSelect , kLasso , kPencil , kBrush ,
  kEraser , kFill , kLine , kRectangle ,
  kEyedropper
}
 Pixel editing tool types for the graphics editor. 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  AnnotationPriority : int { 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  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  PanelCategory { EditorBound , Persistent , CrossEditor }
 Defines lifecycle behavior for editor panels. More...
 
enum class  PanelContextScope : uint8_t { kNone = 0 , kRoom , kSelection }
 Optional context binding for a panel's behavior within an editor. More...
 
enum class  PanelScope { kSession , kGlobal }
 Defines whether a panel is session-scoped or global. More...
 
enum class  PopupType {
  kInfo , kHelp , kSettings , kFileOperation ,
  kConfirmation , kWarning , kEditor
}
 Type classification for popups to enable future filtering and organization. More...
 
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  ToastType { kInfo , kSuccess , kWarning , kError }
 
enum class  StartupSurface { kWelcome , kDashboard , kEditor }
 Represents the current startup surface state. More...
 

Functions

void ShowPatchExportDialog (Rom *rom)
 
void QuickExportBPS (Rom *rom)
 
void QuickExportIPS (Rom *rom)
 
const std::array< DungeonOverlayControlSpec, 11 > & GetDungeonOverlayControlSpecs ()
 
bool GetDungeonOverlayControlEnabled (const DungeonCanvasViewer &viewer, DungeonOverlayControlId id)
 
void SetDungeonOverlayControlEnabled (DungeonCanvasViewer &viewer, DungeonOverlayControlId id, bool enabled)
 
size_t EditorTypeIndex (EditorType type)
 
absl::Status RequireRomLoaded (const Rom *rom, const std::string &operation)
 
absl::Status CheckRomState (const Rom *rom, const std::string &message)
 
std::string GetRomStatusMessage (const Rom *rom)
 
bool IsRomReadyForEditing (const Rom *rom)
 
const char * GetPanelTypeName (RightPanelManager::PanelType type)
 Get the name of a panel type.
 
const char * GetPanelTypeIcon (RightPanelManager::PanelType type)
 Get the icon for a panel type.
 
int GetExpandedTextDataStart ()
 
int GetExpandedTextDataEnd ()
 
uint8_t FindMatchingCharacter (char value)
 
int8_t FindDictionaryEntry (uint8_t value)
 
std::optional< TextElementFindMatchingCommand (uint8_t b)
 
std::optional< TextElementFindMatchingSpecial (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< MessageBankMessageBankFromString (std::string_view value)
 
std::vector< DictionaryEntryBuildDictionaryEntries (Rom *rom)
 
std::string ReplaceAllDictionaryWords (std::string str, const std::vector< DictionaryEntry > &dictionary)
 
DictionaryEntry FindRealDictionaryEntry (uint8_t value, const std::vector< DictionaryEntry > &dictionary)
 
absl::StatusOr< MessageDataParseSingleMessage (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< MessageDataReadAllTextData (uint8_t *rom, int pos, int max_pos)
 
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< MessageDataReadExpandedTextData (uint8_t *rom, int pos)
 
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::Status WriteAllTextData (Rom *rom, const std::vector< MessageData > &messages)
 
std::optional< ResolvedMessageIdResolveMessageDisplayId (int display_id, int vanilla_count, int expanded_base_id, int expanded_count)
 
 REGISTER_PANEL (AnnotationOverlayPanel)
 
 REGISTER_PANEL (OracleMenuInspectorPanel)
 
 REGISTER_PANEL (OracleValidationPanel)
 
 REGISTER_PANEL (ProgressionDashboardPanel)
 
 REGISTER_PANEL (StoryEventGraphPanel)
 
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::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.
 
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.
 
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)
 
 REGISTER_PANEL (AreaGraphicsPanel)
 
 REGISTER_PANEL (DebugWindowPanel)
 
 REGISTER_PANEL (GfxGroupsPanel)
 
 REGISTER_PANEL (MapPropertiesPanel)
 
 REGISTER_PANEL (OverworldCanvasPanel)
 
 REGISTER_PANEL (ScratchSpacePanel)
 
 REGISTER_PANEL (Tile16EditorPanel)
 
 REGISTER_PANEL (Tile16SelectorPanel)
 
 REGISTER_PANEL (Tile8SelectorPanel)
 
 REGISTER_PANEL (UsageStatisticsPanel)
 
 REGISTER_PANEL (V3SettingsPanel)
 
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.
 
void RegisterDefaultEditorFactories (EditorRegistry *registry)
 
void ConfigureEditorShortcuts (const ShortcutDependencies &deps, ShortcutManager *shortcut_manager)
 
void ConfigureMenuShortcuts (const ShortcutDependencies &deps, ShortcutManager *shortcut_manager)
 
void ConfigurePanelShortcuts (const ShortcutDependencies &deps, ShortcutManager *shortcut_manager)
 Register configurable panel shortcuts from user settings.
 
std::string PrintShortcut (const std::vector< ImGuiKey > &keys)
 
std::vector< ImGuiKey > ParseShortcut (const std::string &shortcut)
 
void ExecuteShortcuts (const ShortcutManager &shortcut_manager)
 
 REGISTER_PANEL (AboutPanel)
 
const char * GetSelectionTypeName (SelectionType type)
 Get a human-readable name for a selection type.
 
float GetStaggeredEntryProgress (float entry_time, int section_index, float duration, float stagger_delay)
 

Variables

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 std::array< const char *, 14 > kEditorNames
 
constexpr size_t kEditorTypeCount
 
const std::string kSuperDonkeyTiles []
 
const std::string kSuperDonkeySprites []
 
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
 
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 float kTile8DisplayScale = 4.0f
 
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 kNumPalettes = 8
 
constexpr int kTile8PixelCount = 64
 
constexpr int kTile16PixelCount = 256
 
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 float kOverworldMinZoom = 0.1f
 
constexpr float kOverworldMaxZoom = 5.0f
 
constexpr float kOverworldZoomStep = 0.25f
 
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.

Enumeration Type Documentation

◆ CollaborationMode

Collaboration mode for multi-user sessions.

Enumerator
kLocal 
kNetwork 

Definition at line 31 of file agent_state.h.

◆ CaptureMode

enum class yaze::editor::CaptureMode
strong

Screenshot capture mode.

Enumerator
kFullWindow 
kActiveEditor 
kSpecificWindow 
kRegionSelect 

Definition at line 57 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 170 of file agent_state.h.

◆ ObjectRenderMode

enum class yaze::editor::ObjectRenderMode
strong

Handles the main dungeon canvas rendering and interaction.

Enumerator
Manual 
Emulator 
Hybrid 

Definition at line 34 of file dungeon_canvas_viewer.h.

◆ DungeonOverlayControlId

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

Definition at line 10 of file dungeon_overlay_controls.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.

◆ RoomSelectionIntent

Intent for room selection in the dungeon editor.

Enumerator
kFocusInWorkbench 
kOpenStandalone 
kPreview 

Definition at line 21 of file dungeon_room_selector.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 22 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 37 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.

◆ EditorType

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

Definition at line 200 of file editor.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 

Definition at line 20 of file graphics_editor_state.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 21 of file layout_manager.h.

◆ LayoutScope

enum class yaze::editor::LayoutScope
strong

Storage scope for saved layouts.

Enumerator
kGlobal 
kProject 

Definition at line 40 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 153 of file message_data.h.

◆ AnnotationPriority

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

Annotation priority levels.

Enumerator
kNote 
kBug 
kBlocker 

Definition at line 23 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.

◆ EditingMode

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

Definition at line 67 of file ui_constants.h.

◆ EntityEditMode

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

Definition at line 69 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.

◆ PanelCategory

enum class yaze::editor::PanelCategory
strong

Defines lifecycle behavior for editor panels.

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

  • EditorBound: Hidden when switching away from parent editor (default)
  • Persistent: Remains visible across all editor switches
  • CrossEditor: User can "pin" to make persistent (opt-in by user)
Enumerator
EditorBound 

Hidden when switching editors (default)

Persistent 

Always visible once shown.

CrossEditor 

User can pin to persist across editors.

Definition at line 21 of file editor_panel.h.

◆ PanelContextScope

enum class yaze::editor::PanelContextScope : uint8_t
strong

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

This does not change panel IDs by itself. PanelManager 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 37 of file editor_panel.h.

◆ PanelScope

enum class yaze::editor::PanelScope
strong

Defines whether a panel 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 50 of file editor_panel.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 21 of file popup_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.

◆ ToastType

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

Definition at line 21 of file toast_manager.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 26 of file ui_coordinator.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:

◆ GetDungeonOverlayControlSpecs()

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

◆ GetDungeonOverlayControlEnabled()

◆ SetDungeonOverlayControlEnabled()

◆ EditorTypeIndex()

◆ RequireRomLoaded()

absl::Status yaze::editor::RequireRomLoaded ( const Rom * rom,
const std::string & operation )
inline

Definition at line 12 of file editor_safeguards.h.

References yaze::Rom::is_loaded().

Here is the call graph for this function:

◆ CheckRomState()

absl::Status yaze::editor::CheckRomState ( const Rom * rom,
const std::string & message )
inline

Definition at line 21 of file editor_safeguards.h.

References yaze::Rom::is_loaded().

Here is the call graph for this function:

◆ GetRomStatusMessage()

std::string yaze::editor::GetRomStatusMessage ( const Rom * rom)
inline

Definition at line 29 of file editor_safeguards.h.

References yaze::Rom::is_loaded(), and yaze::Rom::title().

Here is the call graph for this function:

◆ IsRomReadyForEditing()

bool yaze::editor::IsRomReadyForEditing ( const Rom * rom)
inline

Definition at line 38 of file editor_safeguards.h.

References yaze::Rom::is_loaded(), and yaze::Rom::title().

Here is the call graph for this function:

◆ GetPanelTypeName()

◆ GetPanelTypeIcon()

◆ GetExpandedTextDataStart()

◆ GetExpandedTextDataEnd()

◆ FindMatchingCharacter()

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

◆ FindDictionaryEntry()

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

Definition at line 48 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 75 of file message_data.cc.

References DICTIONARYTOKEN, DICTOFF, 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)

◆ ReplaceAllDictionaryWords()

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

◆ FindRealDictionaryEntry()

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

Definition at line 334 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 624 of file message_data.cc.

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

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

Here is the call graph for this function:

◆ SerializeMessagesToJson()

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

Definition at line 642 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 654 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 671 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 )

Definition at line 708 of file message_data.cc.

References SerializeMessageBundle().

Referenced by yaze::editor::MessageEditor::DrawMessageList(), and yaze::cli::handlers::MessageExportBundleCommandHandler::Execute().

Here is the call graph for this function:

◆ ParseMessageBundleJson()

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

Definition at line 786 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 915 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 944 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()

◆ WriteExpandedTextData() [1/2]

◆ WriteExpandedTextData() [2/2]

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

Definition at line 1087 of file message_data.cc.

References kMessageTerminator, and ParseMessageToData().

Here is the call graph for this function:

◆ WriteAllTextData()

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

◆ ResolveMessageDisplayId()

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

◆ REGISTER_PANEL() [1/17]

yaze::editor::REGISTER_PANEL ( AnnotationOverlayPanel )

◆ REGISTER_PANEL() [2/17]

yaze::editor::REGISTER_PANEL ( OracleMenuInspectorPanel )

◆ REGISTER_PANEL() [3/17]

yaze::editor::REGISTER_PANEL ( OracleValidationPanel )

◆ REGISTER_PANEL() [4/17]

yaze::editor::REGISTER_PANEL ( ProgressionDashboardPanel )

◆ REGISTER_PANEL() [5/17]

yaze::editor::REGISTER_PANEL ( StoryEventGraphPanel )

◆ 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 44 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 62 of file entity.cc.

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

Referenced by yaze::editor::OverworldCanvasRenderer::DrawOverworldCanvas().

Here is the call graph for this function:

◆ DrawEntranceInserterPopup()

bool yaze::editor::DrawEntranceInserterPopup ( )

Definition at line 83 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 159 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 353 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 470 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
Todo
Open file dialog and export

Definition at line 561 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.

◆ 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 9 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::OverworldEditor::ProcessPendingEntityInsertion().

◆ 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 77 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::OverworldEditor::ProcessPendingEntityInsertion().

◆ 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 130 of file entity_operations.cc.

References ClampToOverworldBounds(), GetParentMapId(), yaze::zelda3::Overworld::is_loaded(), LOG_DEBUG, yaze::zelda3::Overworld::mutable_sprites(), yaze::zelda3::Overworld::overworld_map(), SnapToEntityGrid(), yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

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

◆ 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 185 of file entity_operations.cc.

References ClampToOverworldBounds(), yaze::zelda3::OverworldItem::game_x_, yaze::zelda3::OverworldItem::game_y_, GetParentMapId(), yaze::zelda3::Overworld::is_loaded(), LOG_DEBUG, yaze::zelda3::Overworld::mutable_all_items(), yaze::zelda3::Overworld::overworld_map(), SnapToEntityGrid(), yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

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

◆ 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 110 of file entity_operations.h.

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

Referenced by InsertEntrance(), InsertExit(), InsertItem(), and InsertSprite().

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 119 of file entity_operations.h.

Referenced by InsertEntrance(), InsertExit(), InsertItem(), and InsertSprite().

◆ ClampToOverworldBounds()

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

Clamp position to valid overworld bounds.

Definition at line 127 of file entity_operations.h.

Referenced by InsertEntrance(), InsertExit(), InsertItem(), and InsertSprite().

◆ 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

◆ REGISTER_PANEL() [6/17]

yaze::editor::REGISTER_PANEL ( AreaGraphicsPanel )

◆ REGISTER_PANEL() [7/17]

yaze::editor::REGISTER_PANEL ( DebugWindowPanel )

◆ REGISTER_PANEL() [8/17]

yaze::editor::REGISTER_PANEL ( GfxGroupsPanel )

◆ REGISTER_PANEL() [9/17]

yaze::editor::REGISTER_PANEL ( MapPropertiesPanel )

◆ REGISTER_PANEL() [10/17]

yaze::editor::REGISTER_PANEL ( OverworldCanvasPanel )

◆ REGISTER_PANEL() [11/17]

yaze::editor::REGISTER_PANEL ( ScratchSpacePanel )

◆ REGISTER_PANEL() [12/17]

yaze::editor::REGISTER_PANEL ( Tile16EditorPanel )

◆ REGISTER_PANEL() [13/17]

yaze::editor::REGISTER_PANEL ( Tile16SelectorPanel )

◆ REGISTER_PANEL() [14/17]

yaze::editor::REGISTER_PANEL ( Tile8SelectorPanel )

◆ REGISTER_PANEL() [15/17]

yaze::editor::REGISTER_PANEL ( UsageStatisticsPanel )

◆ REGISTER_PANEL() [16/17]

yaze::editor::REGISTER_PANEL ( V3SettingsPanel )

◆ 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(), 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 110 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:

◆ RegisterDefaultEditorFactories()

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

◆ ConfigureEditorShortcuts()

◆ ConfigureMenuShortcuts()

◆ ConfigurePanelShortcuts()

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

Register configurable panel shortcuts from user settings.

Parameters
depsShortcut dependencies
shortcut_managerThe shortcut manager to register with

This function reads panel shortcuts from UserSettings and registers them with the shortcut manager. It falls back to PanelDescriptor.shortcut_hint if no custom shortcut is defined for a panel.

Definition at line 865 of file shortcut_configurator.cc.

References ConfigurePanelShortcuts(), yaze::editor::SessionCoordinator::GetActiveSessionIndex(), yaze::editor::ShortcutDependencies::panel_manager, ParseShortcut(), yaze::editor::ShortcutDependencies::session_coordinator, and yaze::editor::ShortcutDependencies::user_settings.

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

Here is the call graph for this function:

◆ PrintShortcut()

◆ ParseShortcut()

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

◆ ExecuteShortcuts()

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

Definition at line 180 of file shortcut_manager.cc.

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

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

Here is the call graph for this function:

◆ REGISTER_PANEL() [17/17]

yaze::editor::REGISTER_PANEL ( AboutPanel )

◆ GetSelectionTypeName()

◆ GetStaggeredEntryProgress()

Variable Documentation

◆ kTrackDirNorth

◆ kTrackDirEast

◆ kTrackDirSouth

◆ kTrackDirWest

◆ kEditorNames

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

Definition at line 217 of file editor.h.

Referenced by yaze::editor::EditorManager::GenerateUniqueEditorTitle(), yaze::editor::anonymous_namespace{editor_manager.cc}::GetEditorName(), getEditorState(), yaze::Controller::OnLoad(), yaze::editor::EditorManager::SwitchToEditor(), and yaze::editor::SessionCoordinator::UpdateSessions().

◆ kEditorTypeCount

constexpr size_t yaze::editor::kEditorTypeCount
constexpr
Initial value:
=
static_cast<size_t>(EditorType::kSettings) + 1

Definition at line 223 of file editor.h.

◆ 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 28 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 36 of file graphics_editor.h.

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

◆ kBankToken

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

Definition at line 99 of file message_data.h.

Referenced by ReadAllTextData().

◆ DICTIONARYTOKEN

◆ kMessageTerminator

◆ DICTOFF

◆ kWidthArraySize

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

◆ kBankSwitchCommand

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

Definition at line 104 of file message_data.h.

Referenced by WriteAllTextData().

◆ kTextData

◆ kTextDataEnd

◆ kNumDictionaryEntries

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

Definition at line 201 of file message_data.h.

Referenced by BuildDictionaryEntries().

◆ kPointersDictionaries

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

Definition at line 202 of file message_data.h.

Referenced by BuildDictionaryEntries(), and ReadAllTextData().

◆ 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

constexpr int yaze::editor::kMessageBundleVersion = 1
constexpr

Definition at line 309 of file message_data.h.

Referenced by ParseMessageBundleJson(), and SerializeMessageBundle().

◆ kTextData2

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

◆ kTextData2End

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

◆ kMaxLineWidth

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

Definition at line 524 of file message_data.h.

Referenced by ValidateMessageLineWidths().

◆ kExpandedTextDataDefault

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

Definition at line 558 of file message_data.h.

Referenced by GetExpandedTextDataStart().

◆ kExpandedTextDataEndDefault

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

Definition at line 560 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 63 of file message_editor.cc.

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

◆ kGfxFont

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

Definition at line 24 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 26 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 28 of file message_editor.h.

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

◆ kFontGfx16Size

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

Definition at line 30 of file message_editor.h.

◆ kBlockTerminator

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

Definition at line 32 of file message_editor.h.

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

◆ kMessageBankChangeId

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

Definition at line 33 of file message_editor.h.

◆ kCurrentMessageWidth

◆ kCurrentMessageHeight

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

◆ 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

◆ k4BPP

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

Definition at line 85 of file overworld_editor.h.

◆ kByteSize

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

Definition at line 86 of file overworld_editor.h.

◆ kMessageIdSize

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

Definition at line 87 of file overworld_editor.h.

◆ kNumSheetsToLoad

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

Definition at line 88 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 95 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 99 of file overworld_editor.h.

◆ kGamePartComboString

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

Definition at line 102 of file overworld_editor.h.

◆ kOWMapTable

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

Definition at line 104 of file overworld_editor.h.

◆ kTile8DisplayScale

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

◆ kTile16Size

◆ kTile8Size

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

◆ kTilesheetEditorWidth

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

Definition at line 41 of file tile16_editor.h.

◆ kTilesheetEditorHeight

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

Definition at line 42 of file tile16_editor.h.

◆ kTile16CanvasSize

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

Definition at line 43 of file tile16_editor.h.

◆ kTile8CanvasHeight

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

Definition at line 44 of file tile16_editor.h.

◆ kNumScratchSlots

◆ kNumPalettes

constexpr int yaze::editor::kNumPalettes = 8
constexpr

Definition at line 46 of file tile16_editor.h.

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

◆ kTile8PixelCount

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

Definition at line 47 of file tile16_editor.h.

Referenced by yaze::editor::Tile16Editor::UpdateTile16Edit().

◆ kTile16PixelCount

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

◆ kGameStateNames

◆ 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(), yaze::editor::MapPropertiesSystem::DrawCanvasToolbar(), and yaze::editor::OverworldSidebar::DrawMapSelection().

◆ kAreaSizeNames

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

◆ kHexByteInputWidth

◆ kHexWordInputWidth

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

◆ 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

◆ 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

◆ kTableColumnMap

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

◆ kTableColumnAreaSize

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

◆ kTableColumnLock

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

◆ 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

◆ kComboAreaSizeWidth

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

◆ kComboGameStateWidth

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

◆ 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

◆ kOverworldMinZoom

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

◆ kOverworldMaxZoom

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

◆ kOverworldZoomStep

◆ kPaletteTableFlags

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

Definition at line 51 of file palette_editor.cc.

◆ kPalNoAlpha

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

Definition at line 55 of file palette_editor.cc.

◆ kPalButtonFlags

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

Definition at line 57 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 61 of file palette_editor.cc.

Referenced by 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 22 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 25 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 30 of file sprite_editor.h.