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

Main UI class for editing overworld maps in A Link to the Past. More...

#include <overworld_editor.h>

Inheritance diagram for yaze::editor::OverworldEditor:

Classes

struct  OverworldUndoPoint
 
struct  ScratchSpace
 

Public Member Functions

 OverworldEditor (Rom *rom)
 
 OverworldEditor (Rom *rom, const EditorDependencies &deps)
 
void SetGameData (zelda3::GameData *game_data) override
 
void Initialize () override
 
absl::Status Load () override
 
absl::Status Update () final
 
absl::Status Undo () override
 
absl::Status Redo () override
 
absl::Status Cut () override
 
absl::Status Copy () override
 
absl::Status Paste () override
 
absl::Status Find () override
 
absl::Status Save () override
 
absl::Status Clear () override
 
zelda3::Overworldoverworld ()
 Access the underlying Overworld data.
 
absl::Status ApplyZSCustomOverworldASM (int target_version)
 Apply ZSCustomOverworld ASM patch to upgrade ROM version.
 
absl::Status UpdateROMVersionMarkers (int target_version)
 Update ROM version markers and feature flags after ASM patching.
 
int jump_to_tab ()
 
bool IsRomLoaded () const override
 
std::string GetRomStatus () const override
 
Romrom () const
 
void set_current_map (int map_id)
 Set the current map for editing (also updates world)
 
absl::Status LoadGraphics ()
 Load the Bitmap objects for each OverworldMap.
 
void HandleEntityInsertion (const std::string &entity_type)
 Handle entity insertion from context menu.
 
void ProcessPendingEntityInsertion ()
 Process any pending entity insertion request Called from Update() - needed because ImGui::OpenPopup() doesn't work correctly when called from within another popup's callback.
 
void HandleTile16Edit ()
 Handle tile16 editing from context menu (MOUSE mode) Gets the tile16 under the cursor and opens the Tile16Editor focused on it.
 
void ToggleBrushTool ()
 
void ActivateFillTool ()
 
void CycleTileSelection (int delta)
 
void HandleKeyboardShortcuts ()
 Handle keyboard shortcuts for the Overworld Editor Shortcuts: 1-2 (modes), 3-8 (entities), F11 (fullscreen), Ctrl+L (map lock), Ctrl+T (Tile16 editor), Ctrl+Z/Y (undo/redo)
 
absl::Status DrawAreaGraphics ()
 
absl::Status DrawTile16Selector ()
 
void DrawMapProperties ()
 
void InvalidateGraphicsCache (int map_id=-1)
 Invalidate cached graphics for a specific map or all maps.
 
absl::Status DrawScratchSpace ()
 
void DrawTile8Selector ()
 
absl::Status UpdateGfxGroupEditor ()
 
void DrawV3Settings ()
 
UsageStatisticsCardusage_stats_card ()
 Access usage statistics card for panel.
 
DebugWindowCarddebug_window_card ()
 Access debug window card for panel.
 
Tile16Editortile16_editor ()
 Access the Tile16 Editor for panel integration.
 
void DrawOverworldCanvas ()
 Draw the main overworld canvas.
 
- Public Member Functions inherited from yaze::editor::Editor
 Editor ()=default
 
virtual ~Editor ()=default
 
void SetDependencies (const EditorDependencies &deps)
 
EditorType type () const
 
bool * active ()
 
void set_active (bool active)
 
void toggle_active ()
 
Romrom () const
 
zelda3::GameDatagame_data () const
 
EditorContext context () const
 
bool HasContext () const
 

Public Attributes

int jump_to_tab_ = -1
 

Private Types

enum  OverworldProperty {
  LW_AREA_GFX , DW_AREA_GFX , LW_AREA_PAL , DW_AREA_PAL ,
  LW_SPR_GFX_PART1 , LW_SPR_GFX_PART2 , DW_SPR_GFX_PART1 , DW_SPR_GFX_PART2 ,
  LW_SPR_PAL_PART1 , LW_SPR_PAL_PART2 , DW_SPR_PAL_PART1 , DW_SPR_PAL_PART2
}
 

Private Member Functions

void DrawFullscreenCanvas ()
 
void DrawOverworldMaps ()
 
void DrawOverworldEdits ()
 
void DrawOverworldProperties ()
 
void HandleEntityEditingShortcuts ()
 
void HandleUndoRedoShortcuts ()
 
void HandleEntityInteraction ()
 Handle entity interaction in MOUSE mode Includes: right-click context menus, double-click navigation, popups.
 
void HandleEntityContextMenus (zelda3::GameEntity *hovered_entity)
 Handle right-click context menus for entities.
 
void HandleEntityDoubleClick (zelda3::GameEntity *hovered_entity)
 Handle double-click actions on entities (e.g., jump to room)
 
void DrawEntityEditorPopups ()
 Draw entity editor popups and update entity data.
 
void RefreshChildMap (int map_index)
 
void RefreshOverworldMap ()
 
void RefreshOverworldMapOnDemand (int map_index)
 On-demand map refresh that only updates what's actually needed.
 
void RefreshChildMapOnDemand (int map_index)
 On-demand child map refresh with selective updates.
 
void RefreshMultiAreaMapsSafely (int map_index, zelda3::OverworldMap *map)
 Safely refresh multi-area maps without recursion.
 
absl::Status RefreshMapPalette ()
 
void RefreshMapProperties ()
 
absl::Status RefreshTile16Blockset ()
 
void UpdateBlocksetWithPendingTileChanges ()
 
void ForceRefreshGraphics (int map_index)
 
void RefreshSiblingMapGraphics (int map_index, bool include_self=false)
 
void RenderUpdatedMapBitmap (const ImVec2 &click_position, const std::vector< uint8_t > &tile_data)
 
void CheckForOverworldEdits ()
 Check for tile edits - handles painting and selection.
 
void CheckForSelectRectangle ()
 Draw and create the tile16 IDs that are currently selected.
 
absl::Status CheckForCurrentMap ()
 Check for map changes and refresh if needed.
 
void CheckForMousePan ()
 
void UpdateBlocksetSelectorState ()
 
void HandleMapInteraction ()
 
void ScrollBlocksetCanvasToCurrentTile ()
 Scroll the blockset canvas to show the current selected tile16.
 
absl::Status LoadSpriteGraphics ()
 
void ProcessDeferredTextures ()
 Create textures for deferred map bitmaps on demand.
 
void EnsureMapTexture (int map_index)
 Ensure a specific map has its texture created.
 
void HandleOverworldPan ()
 
void HandleOverworldZoom ()
 
void ZoomIn ()
 
void ZoomOut ()
 
void ClampOverworldScroll ()
 
void ResetOverworldView ()
 
void CenterOverworldView ()
 
void SetupCanvasAutomation ()
 
gui::CanvasGetOverworldCanvas ()
 
bool AutomationSetTile (int x, int y, int tile_id)
 
int AutomationGetTile (int x, int y)
 
absl::Status SaveCurrentSelectionToScratch ()
 
absl::Status LoadScratchToSelection ()
 
absl::Status ClearScratchSpace ()
 
void DrawScratchSpaceEdits ()
 
void DrawScratchSpacePattern ()
 
void DrawScratchSpaceSelection ()
 
void UpdateScratchBitmapTile (int tile_x, int tile_y, int tile_id)
 
void QueueAdjacentMapsForPreload (int center_map)
 Queue adjacent maps for background pre-loading.
 
void ProcessPreloadQueue ()
 Process one map from the preload queue (called each frame)
 
void CreateUndoPoint (int map_id, int world, int x, int y, int old_tile_id)
 
void FinalizePaintOperation ()
 
void ApplyUndoPoint (const OverworldUndoPoint &point)
 
auto & GetWorldTiles (int world)
 

Private Attributes

EditingMode current_mode = EditingMode::DRAW_TILE
 
EditingMode previous_mode = EditingMode::DRAW_TILE
 
EntityEditMode entity_edit_mode_ = EntityEditMode::NONE
 
int current_world_ = 0
 
int current_map_ = 0
 
int current_parent_ = 0
 
int current_entrance_id_ = 0
 
int current_exit_id_ = 0
 
int current_item_id_ = 0
 
int current_sprite_id_ = 0
 
int current_blockset_ = 0
 
int game_state_ = 1
 
int current_tile16_ = 0
 
int selected_entrance_ = 0
 
int selected_usage_map_ = 0xFFFF
 
std::vector< int > selected_tile16_ids_
 
bool all_gfx_loaded_ = false
 
bool map_blockset_loaded_ = false
 
bool overworld_canvas_fullscreen_ = false
 
bool is_dragging_entity_ = false
 
bool dragged_entity_free_movement_ = false
 
bool current_map_lock_ = false
 
bool show_custom_bg_color_editor_ = false
 
bool show_overlay_editor_ = false
 
bool show_map_properties_panel_ = false
 
bool show_overlay_preview_ = false
 
int last_hovered_map_ = -1
 
float hover_time_ = 0.0f
 
std::vector< int > preload_queue_
 
std::unique_ptr< MapPropertiesSystemmap_properties_system_
 
std::unique_ptr< OverworldSidebarsidebar_
 
std::unique_ptr< OverworldEntityRendererentity_renderer_
 
std::unique_ptr< OverworldToolbartoolbar_
 
ScratchSpace scratch_space_
 
gfx::Tilemap tile16_blockset_
 
Romrom_
 
zelda3::GameDatagame_data_ = nullptr
 
gfx::IRendererrenderer_
 
Tile16Editor tile16_editor_ {rom_, &tile16_blockset_}
 
GfxGroupEditor gfx_group_editor_
 
PaletteEditor palette_editor_
 
gfx::SnesPalette palette_
 
gfx::Bitmap selected_tile_bmp_
 
gfx::Bitmap tile16_blockset_bmp_
 
gfx::Bitmap current_gfx_bmp_
 
gfx::Bitmap all_gfx_bmp
 
std::array< gfx::Bitmap, zelda3::kNumOverworldMapsmaps_bmp_
 
gfx::BitmapTable current_graphics_set_
 
std::vector< gfx::Bitmapsprite_previews_
 
zelda3::Overworld overworld_ {rom_}
 
zelda3::OverworldBlockset refresh_blockset_
 
zelda3::Sprite current_sprite_
 
zelda3::OverworldEntrance current_entrance_
 
zelda3::OverworldExit current_exit_
 
zelda3::OverworldItem current_item_
 
zelda3::OverworldEntranceTileTypes entrance_tiletypes_ = {}
 
zelda3::GameEntitycurrent_entity_ = nullptr
 
zelda3::GameEntitydragged_entity_ = nullptr
 
std::string pending_entity_insert_type_
 
ImVec2 pending_entity_insert_pos_
 
std::string entity_insert_error_message_
 
gui::Canvas ow_map_canvas_
 
gui::Canvas current_gfx_canvas_
 
gui::Canvas blockset_canvas_
 
std::unique_ptr< gui::TileSelectorWidgetblockset_selector_
 
gui::Canvas graphics_bin_canvas_
 
gui::Canvas properties_canvas_
 
gui::Canvas scratch_canvas_
 
std::unique_ptr< UsageStatisticsCardusage_stats_card_
 
std::unique_ptr< DebugWindowCarddebug_window_card_
 
absl::Status status_
 
std::vector< OverworldUndoPointundo_stack_
 
std::vector< OverworldUndoPointredo_stack_
 
std::optional< OverworldUndoPointcurrent_paint_operation_
 
std::chrono::steady_clock::time_point last_paint_time_
 
int palette_listener_id_ = -1
 

Static Private Attributes

static constexpr float kHoverBuildDelay = 0.15f
 
static constexpr float kPreloadStartDelay = 0.3f
 
static constexpr size_t kMaxUndoHistory = 50
 
static constexpr auto kPaintBatchTimeout = std::chrono::milliseconds(500)
 

Additional Inherited Members

- Protected Member Functions inherited from yaze::editor::Editor
std::string MakePanelTitle (const std::string &base_title) const
 
std::string MakePanelId (const std::string &base_id) const
 
template<typename T >
absl::StatusOr< T > SafeRomAccess (std::function< T()> accessor, const std::string &operation="") const
 
- Protected Attributes inherited from yaze::editor::Editor
bool active_ = false
 
EditorType type_
 
EditorDependencies dependencies_
 
- Static Protected Attributes inherited from yaze::gfx::GfxContext
static std::unordered_map< uint8_t, gfx::Palettesetpalettesets_
 

Detailed Description

Main UI class for editing overworld maps in A Link to the Past.

The OverworldEditor orchestrates tile editing, entity management, and map property configuration. It coordinates between the data layer (zelda3::Overworld) and the UI components (canvas, panels, popups).

Key subsystems:

  • Tile16Editor: Individual tile editing with pending changes workflow
  • MapPropertiesSystem: Toolbar, context menus, property panels
  • Entity system: Entrances, exits, items, sprites
  • Canvas system: Main map display and tile selection
See also
README.md in this directory for architecture documentation
zelda3/overworld/overworld.h for the data layer
tile16_editor.h for tile editing details

Definition at line 125 of file overworld_editor.h.

Member Enumeration Documentation

◆ OverworldProperty

Enumerator
LW_AREA_GFX 
DW_AREA_GFX 
LW_AREA_PAL 
DW_AREA_PAL 
LW_SPR_GFX_PART1 
LW_SPR_GFX_PART2 
DW_SPR_GFX_PART1 
DW_SPR_GFX_PART2 
LW_SPR_PAL_PART1 
LW_SPR_PAL_PART2 
DW_SPR_PAL_PART1 
DW_SPR_PAL_PART2 

Definition at line 446 of file overworld_editor.h.

Constructor & Destructor Documentation

◆ OverworldEditor() [1/2]

yaze::editor::OverworldEditor::OverworldEditor ( Rom * rom)
inlineexplicit

Definition at line 131 of file overworld_editor.h.

References gfx_group_editor_, yaze::editor::kOverworld, rom(), yaze::editor::GfxGroupEditor::SetRom(), and yaze::editor::Editor::type_.

Here is the call graph for this function:

◆ OverworldEditor() [2/2]

yaze::editor::OverworldEditor::OverworldEditor ( Rom * rom,
const EditorDependencies & deps )
inlineexplicit

Definition at line 138 of file overworld_editor.h.

References yaze::editor::Editor::dependencies_.

Member Function Documentation

◆ SetGameData()

void yaze::editor::OverworldEditor::SetGameData ( zelda3::GameData * game_data)
inlineoverridevirtual

◆ Initialize()

◆ Load()

◆ Update()

◆ Undo()

◆ Redo()

◆ Cut()

absl::Status yaze::editor::OverworldEditor::Cut ( )
inlineoverridevirtual

Implements yaze::editor::Editor.

Definition at line 159 of file overworld_editor.h.

◆ Copy()

◆ Paste()

◆ Find()

absl::Status yaze::editor::OverworldEditor::Find ( )
inlineoverridevirtual

Implements yaze::editor::Editor.

Definition at line 162 of file overworld_editor.h.

◆ Save()

◆ Clear()

absl::Status yaze::editor::OverworldEditor::Clear ( )
overridevirtual

◆ overworld()

zelda3::Overworld & yaze::editor::OverworldEditor::overworld ( )
inline

Access the underlying Overworld data.

Definition at line 167 of file overworld_editor.h.

References overworld_.

Referenced by LoadGraphics(), and Save().

◆ ApplyZSCustomOverworldASM()

absl::Status yaze::editor::OverworldEditor::ApplyZSCustomOverworldASM ( int target_version)

Apply ZSCustomOverworld ASM patch to upgrade ROM version.

Parameters
target_versionTarget version (2 for v2, 3 for v3)

Definition at line 3040 of file overworld_editor.cc.

References yaze::util::GetResourcePath(), yaze::zelda3::Overworld::Load(), yaze::Rom::LoadFromData(), LOG_DEBUG, LOG_ERROR, overworld_, yaze::zelda3::OverworldCustomASMHasBeenApplied, RETURN_IF_ERROR, rom_, UpdateROMVersionMarkers(), and yaze::Rom::vector().

Referenced by Update().

◆ UpdateROMVersionMarkers()

◆ jump_to_tab()

int yaze::editor::OverworldEditor::jump_to_tab ( )
inline

Definition at line 182 of file overworld_editor.h.

References jump_to_tab_.

◆ IsRomLoaded()

bool yaze::editor::OverworldEditor::IsRomLoaded ( ) const
inlineoverridevirtual

Reimplemented from yaze::editor::Editor.

Definition at line 189 of file overworld_editor.h.

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

Here is the call graph for this function:

◆ GetRomStatus()

std::string yaze::editor::OverworldEditor::GetRomStatus ( ) const
inlineoverridevirtual

Reimplemented from yaze::editor::Editor.

Definition at line 190 of file overworld_editor.h.

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

Here is the call graph for this function:

◆ rom()

Rom * yaze::editor::OverworldEditor::rom ( ) const
inline

Definition at line 198 of file overworld_editor.h.

References rom_.

Referenced by OverworldEditor().

◆ set_current_map()

void yaze::editor::OverworldEditor::set_current_map ( int map_id)
inline

Set the current map for editing (also updates world)

Definition at line 201 of file overworld_editor.h.

References current_map_, current_world_, FinalizePaintOperation(), yaze::zelda3::kNumOverworldMaps, overworld_, yaze::zelda3::Overworld::set_current_map(), and yaze::zelda3::Overworld::set_current_world().

Here is the call graph for this function:

◆ LoadGraphics()

◆ HandleEntityInsertion()

void yaze::editor::OverworldEditor::HandleEntityInsertion ( const std::string & entity_type)

Handle entity insertion from context menu.

Parameters
entity_typeType: "entrance", "hole", "exit", "item", "sprite"

Definition at line 75 of file automation.cc.

References yaze::gui::Canvas::hover_mouse_pos(), LOG_DEBUG, ow_map_canvas_, pending_entity_insert_pos_, and pending_entity_insert_type_.

Referenced by Load().

Here is the call graph for this function:

◆ ProcessPendingEntityInsertion()

◆ HandleTile16Edit()

void yaze::editor::OverworldEditor::HandleTile16Edit ( )

Handle tile16 editing from context menu (MOUSE mode) Gets the tile16 under the cursor and opens the Tile16Editor focused on it.

Definition at line 215 of file automation.cc.

References yaze::editor::Editor::dependencies_, yaze::zelda3::Overworld::is_loaded(), yaze::editor::OverworldPanelIds::kTile16Editor, LOG_ERROR, map_blockset_loaded_, overworld_, yaze::editor::EditorDependencies::panel_manager, and yaze::editor::PanelManager::ShowPanel().

Referenced by Load().

Here is the call graph for this function:

◆ ToggleBrushTool()

void yaze::editor::OverworldEditor::ToggleBrushTool ( )

Definition at line 3213 of file overworld_editor.cc.

◆ ActivateFillTool()

void yaze::editor::OverworldEditor::ActivateFillTool ( )

Definition at line 3217 of file overworld_editor.cc.

◆ CycleTileSelection()

void yaze::editor::OverworldEditor::CycleTileSelection ( int delta)

Definition at line 3221 of file overworld_editor.cc.

References current_tile16_.

◆ HandleKeyboardShortcuts()

void yaze::editor::OverworldEditor::HandleKeyboardShortcuts ( )

◆ DrawAreaGraphics()

◆ DrawTile16Selector()

◆ DrawMapProperties()

void yaze::editor::OverworldEditor::DrawMapProperties ( )

◆ InvalidateGraphicsCache()

void yaze::editor::OverworldEditor::InvalidateGraphicsCache ( int map_id = -1)

Invalidate cached graphics for a specific map or all maps.

Parameters
map_idThe map to invalidate (-1 to invalidate all maps) Call this when palette or graphics settings change.

Definition at line 1607 of file overworld_editor.cc.

References yaze::zelda3::Overworld::ClearGraphicsConfigCache(), current_graphics_set_, yaze::zelda3::Overworld::InvalidateSiblingMapCaches(), and overworld_.

Referenced by Initialize().

Here is the call graph for this function:

◆ DrawScratchSpace()

absl::Status yaze::editor::OverworldEditor::DrawScratchSpace ( )

◆ DrawTile8Selector()

◆ UpdateGfxGroupEditor()

absl::Status yaze::editor::OverworldEditor::UpdateGfxGroupEditor ( )

Definition at line 1665 of file overworld_editor.cc.

References yaze::gui::CenterText(), gfx_group_editor_, yaze::Rom::is_loaded(), rom_, and yaze::editor::GfxGroupEditor::Update().

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

Here is the call graph for this function:

◆ DrawV3Settings()

void yaze::editor::OverworldEditor::DrawV3Settings ( )
Todo
Implement v3 settings UI

Definition at line 1675 of file overworld_editor.cc.

References yaze::gui::CenterText(), yaze::Rom::is_loaded(), and rom_.

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

Here is the call graph for this function:

◆ usage_stats_card()

UsageStatisticsCard * yaze::editor::OverworldEditor::usage_stats_card ( )
inline

Access usage statistics card for panel.

Definition at line 278 of file overworld_editor.h.

References usage_stats_card_.

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

◆ debug_window_card()

DebugWindowCard * yaze::editor::OverworldEditor::debug_window_card ( )
inline

Access debug window card for panel.

Definition at line 281 of file overworld_editor.h.

References debug_window_card_.

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

◆ tile16_editor()

Tile16Editor & yaze::editor::OverworldEditor::tile16_editor ( )
inline

Access the Tile16 Editor for panel integration.

Definition at line 284 of file overworld_editor.h.

References tile16_editor_.

◆ DrawOverworldCanvas()

void yaze::editor::OverworldEditor::DrawOverworldCanvas ( )

Draw the main overworld canvas.

Definition at line 1380 of file overworld_editor.cc.

References yaze::gui::BeginCanvas(), yaze::gui::BeginChildBothScrollbars(), yaze::gui::BeginNoPadding(), yaze::gui::CanvasFrameOptions::canvas_size, CheckForCurrentMap(), CheckForOverworldEdits(), yaze::gui::Canvas::ClearContextMenuItems(), current_map_, current_map_lock_, current_mode, current_world_, yaze::editor::Editor::dependencies_, dragged_entity_, dragged_entity_free_movement_, yaze::gui::CanvasFrameOptions::draw_context_menu, yaze::gui::CanvasFrameOptions::draw_grid, yaze::gui::CanvasFrameOptions::draw_overlay, yaze::editor::DRAW_TILE, DrawOverworldMaps(), yaze::gui::EndCanvas(), yaze::gui::EndNoPadding(), entity_edit_mode_, entity_renderer_, yaze::zelda3::GameEntity::entity_type_, game_state_, yaze::gui::CanvasFrameOptions::grid_step, HandleMapInteraction(), HandleOverworldPan(), HandleOverworldZoom(), yaze::editor::OverworldEditor::ScratchSpace::in_use, is_dragging_entity_, yaze::Rom::is_loaded(), yaze::zelda3::Overworld::is_loaded(), yaze::zelda3::GameEntity::kExit, yaze::editor::kOverworldCanvasSize(), yaze::zelda3::GameEntity::map_id_, map_properties_system_, yaze::editor::MOUSE, yaze::editor::MoveEntityOnGrid(), overworld_, ow_map_canvas_, yaze::editor::EditorDependencies::panel_manager, yaze::gui::CanvasFrameOptions::render_popups, rom_, scratch_space_, yaze::gui::Canvas::select_rect_active(), yaze::gui::Canvas::selected_tiles(), yaze::Rom::set_dirty(), yaze::gui::Canvas::set_scrolling(), show_custom_bg_color_editor_, show_map_properties_panel_, show_overlay_editor_, show_overlay_preview_, status_, toolbar_, yaze::zelda3::GameEntity::UpdateMapProperties(), yaze::gui::CanvasFrameOptions::use_child_window, yaze::zelda3::GameEntity::x_, and yaze::zelda3::GameEntity::y_.

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

◆ DrawFullscreenCanvas()

void yaze::editor::OverworldEditor::DrawFullscreenCanvas ( )
private

◆ DrawOverworldMaps()

◆ DrawOverworldEdits()

◆ DrawOverworldProperties()

◆ HandleEntityEditingShortcuts()

void yaze::editor::OverworldEditor::HandleEntityEditingShortcuts ( )
private

◆ HandleUndoRedoShortcuts()

void yaze::editor::OverworldEditor::HandleUndoRedoShortcuts ( )
private

Definition at line 491 of file overworld_editor.cc.

References Redo(), status_, and Undo().

Referenced by HandleKeyboardShortcuts().

Here is the call graph for this function:

◆ HandleEntityInteraction()

void yaze::editor::OverworldEditor::HandleEntityInteraction ( )
private

Handle entity interaction in MOUSE mode Includes: right-click context menus, double-click navigation, popups.

Definition at line 516 of file overworld_editor.cc.

References current_mode, DrawEntityEditorPopups(), entity_renderer_, HandleEntityContextMenus(), HandleEntityDoubleClick(), yaze::editor::MOUSE, and ProcessPendingEntityInsertion().

Referenced by Update().

Here is the call graph for this function:

◆ HandleEntityContextMenus()

void yaze::editor::OverworldEditor::HandleEntityContextMenus ( zelda3::GameEntity * hovered_entity)
private

◆ HandleEntityDoubleClick()

void yaze::editor::OverworldEditor::HandleEntityDoubleClick ( zelda3::GameEntity * hovered_entity)
private

Handle double-click actions on entities (e.g., jump to room)

Definition at line 576 of file overworld_editor.cc.

References yaze::zelda3::GameEntity::entity_type_, jump_to_tab_, yaze::zelda3::GameEntity::kEntrance, and yaze::zelda3::GameEntity::kExit.

Referenced by HandleEntityInteraction().

◆ DrawEntityEditorPopups()

◆ RefreshChildMap()

void yaze::editor::OverworldEditor::RefreshChildMap ( int map_index)
private

◆ RefreshOverworldMap()

void yaze::editor::OverworldEditor::RefreshOverworldMap ( )
private

Definition at line 2244 of file overworld_editor.cc.

References current_map_, and RefreshOverworldMapOnDemand().

Referenced by ApplyUndoPoint(), CheckForCurrentMap(), CheckForOverworldEdits(), Initialize(), Load(), Paste(), Redo(), and Undo().

Here is the call graph for this function:

◆ RefreshOverworldMapOnDemand()

void yaze::editor::OverworldEditor::RefreshOverworldMapOnDemand ( int map_index)
private

On-demand map refresh that only updates what's actually needed.

This method intelligently determines what needs to be refreshed based on the type of change and only updates the necessary components, avoiding expensive full rebuilds when possible.

Definition at line 2256 of file overworld_editor.cc.

References current_map_, current_world_, yaze::zelda3::kNumOverworldMaps, maps_bmp_, and RefreshChildMapOnDemand().

Referenced by ProcessDeferredTextures(), and RefreshOverworldMap().

Here is the call graph for this function:

◆ RefreshChildMapOnDemand()

◆ RefreshMultiAreaMapsSafely()

void yaze::editor::OverworldEditor::RefreshMultiAreaMapsSafely ( int map_index,
zelda3::OverworldMap * map )
private

Safely refresh multi-area maps without recursion.

This function handles the coordination of large, wide, and tall area maps by using a non-recursive approach with explicit map list processing. It always works from the parent perspective to ensure consistent behavior whether the trigger map is the parent or a child.

Key improvements:

  • Uses parameter-based recursion guard instead of static set
  • Always works from parent perspective for consistent sibling coordination
  • Respects ZScream area size logic for v3+ ROMs
  • Falls back to large_map flag for vanilla/v2 ROMs

Definition at line 2369 of file overworld_editor.cc.

References yaze::zelda3::OverworldMap::area_size(), current_map_, current_world_, EnsureMapTexture(), yaze::gfx::Arena::Get(), yaze::zelda3::Overworld::GetMapTiles(), yaze::zelda3::kNumOverworldMaps, LOG_DEBUG, LOG_ERROR, LOG_WARN, maps_bmp_, yaze::zelda3::Overworld::mutable_overworld_map(), yaze::zelda3::Overworld::mutable_tiles16(), overworld_, yaze::zelda3::OverworldMap::parent(), yaze::gfx::Arena::QueueTextureCommand(), yaze::zelda3::Overworld::tiles16(), and yaze::gfx::Arena::UPDATE.

Referenced by RefreshChildMapOnDemand().

◆ RefreshMapPalette()

◆ RefreshMapProperties()

void yaze::editor::OverworldEditor::RefreshMapProperties ( )
private

◆ RefreshTile16Blockset()

◆ UpdateBlocksetWithPendingTileChanges()

◆ ForceRefreshGraphics()

void yaze::editor::OverworldEditor::ForceRefreshGraphics ( int map_index)
private

Definition at line 2598 of file overworld_editor.cc.

References current_blockset_, yaze::zelda3::Overworld::InvalidateSiblingMapCaches(), LOG_DEBUG, maps_bmp_, and overworld_.

Referenced by Initialize().

Here is the call graph for this function:

◆ RefreshSiblingMapGraphics()

void yaze::editor::OverworldEditor::RefreshSiblingMapGraphics ( int map_index,
bool include_self = false )
private

◆ RenderUpdatedMapBitmap()

◆ CheckForOverworldEdits()

◆ CheckForSelectRectangle()

◆ CheckForCurrentMap()

◆ CheckForMousePan()

void yaze::editor::OverworldEditor::CheckForMousePan ( )
private

Definition at line 1375 of file overworld_editor.cc.

References HandleOverworldPan().

Here is the call graph for this function:

◆ UpdateBlocksetSelectorState()

void yaze::editor::OverworldEditor::UpdateBlocksetSelectorState ( )
private

◆ HandleMapInteraction()

void yaze::editor::OverworldEditor::HandleMapInteraction ( )
private

◆ ScrollBlocksetCanvasToCurrentTile()

void yaze::editor::OverworldEditor::ScrollBlocksetCanvasToCurrentTile ( )
private

Scroll the blockset canvas to show the current selected tile16.

Definition at line 2901 of file overworld_editor.cc.

References blockset_selector_, and current_tile16_.

Referenced by CheckForSelectRectangle().

◆ LoadSpriteGraphics()

absl::Status yaze::editor::OverworldEditor::LoadSpriteGraphics ( )
private

◆ ProcessDeferredTextures()

void yaze::editor::OverworldEditor::ProcessDeferredTextures ( )
private

Create textures for deferred map bitmaps on demand.

Definition at line 2101 of file overworld_editor.cc.

References current_map_, current_world_, yaze::gfx::Arena::Get(), yaze::zelda3::kNumOverworldMaps, maps_bmp_, yaze::gfx::Arena::ProcessTextureQueue(), RefreshOverworldMapOnDemand(), and renderer_.

Referenced by Update().

Here is the call graph for this function:

◆ EnsureMapTexture()

◆ HandleOverworldPan()

void yaze::editor::OverworldEditor::HandleOverworldPan ( )
private

◆ HandleOverworldZoom()

void yaze::editor::OverworldEditor::HandleOverworldZoom ( )
private

Definition at line 48 of file overworld_navigation.cc.

Referenced by DrawOverworldCanvas().

◆ ZoomIn()

void yaze::editor::OverworldEditor::ZoomIn ( )
private

◆ ZoomOut()

void yaze::editor::OverworldEditor::ZoomOut ( )
private

◆ ClampOverworldScroll()

void yaze::editor::OverworldEditor::ClampOverworldScroll ( )
private

Definition at line 67 of file overworld_navigation.cc.

◆ ResetOverworldView()

void yaze::editor::OverworldEditor::ResetOverworldView ( )
private

Definition at line 72 of file overworld_navigation.cc.

References ow_map_canvas_, and yaze::gui::Canvas::set_global_scale().

Here is the call graph for this function:

◆ CenterOverworldView()

void yaze::editor::OverworldEditor::CenterOverworldView ( )
private

Definition at line 79 of file overworld_navigation.cc.

References current_map_, yaze::gui::Canvas::global_scale(), yaze::editor::kOverworldMapSize, and ow_map_canvas_.

Here is the call graph for this function:

◆ SetupCanvasAutomation()

void yaze::editor::OverworldEditor::SetupCanvasAutomation ( )
private

Definition at line 16 of file automation.cc.

References AutomationGetTile(), AutomationSetTile(), yaze::gui::Canvas::GetAutomationAPI(), ow_map_canvas_, and yaze::gui::CanvasAutomationAPI::SetTilePaintCallback().

Referenced by Initialize().

Here is the call graph for this function:

◆ GetOverworldCanvas()

gui::Canvas * yaze::editor::OverworldEditor::GetOverworldCanvas ( )
inlineprivate

Definition at line 391 of file overworld_editor.h.

References ow_map_canvas_.

◆ AutomationSetTile()

◆ AutomationGetTile()

int yaze::editor::OverworldEditor::AutomationGetTile ( int x,
int y )
private

◆ SaveCurrentSelectionToScratch()

◆ LoadScratchToSelection()

absl::Status yaze::editor::OverworldEditor::LoadScratchToSelection ( )
private

Definition at line 300 of file scratch_space.cc.

References yaze::editor::OverworldEditor::ScratchSpace::in_use, yaze::util::logf(), yaze::editor::OverworldEditor::ScratchSpace::name, and scratch_space_.

Referenced by Initialize().

Here is the call graph for this function:

◆ ClearScratchSpace()

◆ DrawScratchSpaceEdits()

◆ DrawScratchSpacePattern()

◆ DrawScratchSpaceSelection()

void yaze::editor::OverworldEditor::DrawScratchSpaceSelection ( )
private

◆ UpdateScratchBitmapTile()

◆ QueueAdjacentMapsForPreload()

void yaze::editor::OverworldEditor::QueueAdjacentMapsForPreload ( int center_map)
private

Queue adjacent maps for background pre-loading.

Definition at line 2164 of file overworld_editor.cc.

References yaze::zelda3::kNumOverworldMaps, yaze::zelda3::kSpecialWorldMapIdStart, overworld_, yaze::zelda3::Overworld::overworld_map(), and preload_queue_.

Referenced by CheckForCurrentMap().

Here is the call graph for this function:

◆ ProcessPreloadQueue()

void yaze::editor::OverworldEditor::ProcessPreloadQueue ( )
private

Process one map from the preload queue (called each frame)

Definition at line 2205 of file overworld_editor.cc.

References yaze::zelda3::Overworld::EnsureMapBuilt(), LOG_DEBUG, overworld_, and preload_queue_.

Referenced by CheckForCurrentMap().

Here is the call graph for this function:

◆ CreateUndoPoint()

void yaze::editor::OverworldEditor::CreateUndoPoint ( int map_id,
int world,
int x,
int y,
int old_tile_id )
private

◆ FinalizePaintOperation()

void yaze::editor::OverworldEditor::FinalizePaintOperation ( )
private

◆ ApplyUndoPoint()

void yaze::editor::OverworldEditor::ApplyUndoPoint ( const OverworldUndoPoint & point)
private

◆ GetWorldTiles()

auto & yaze::editor::OverworldEditor::GetWorldTiles ( int world)
private

Definition at line 1762 of file overworld_editor.cc.

References yaze::zelda3::Overworld::mutable_map_tiles(), and overworld_.

Referenced by ApplyUndoPoint(), Redo(), and Undo().

Here is the call graph for this function:

Member Data Documentation

◆ jump_to_tab_

int yaze::editor::OverworldEditor::jump_to_tab_ = -1

◆ current_mode

◆ previous_mode

EditingMode yaze::editor::OverworldEditor::previous_mode = EditingMode::DRAW_TILE
private

Definition at line 443 of file overworld_editor.h.

◆ entity_edit_mode_

EntityEditMode yaze::editor::OverworldEditor::entity_edit_mode_ = EntityEditMode::NONE
private

Definition at line 444 of file overworld_editor.h.

Referenced by DrawOverworldCanvas(), and HandleEntityEditingShortcuts().

◆ current_world_

◆ current_map_

◆ current_parent_

int yaze::editor::OverworldEditor::current_parent_ = 0
private

Definition at line 458 of file overworld_editor.h.

Referenced by CheckForCurrentMap().

◆ current_entrance_id_

int yaze::editor::OverworldEditor::current_entrance_id_ = 0
private

Definition at line 459 of file overworld_editor.h.

◆ current_exit_id_

int yaze::editor::OverworldEditor::current_exit_id_ = 0
private

Definition at line 460 of file overworld_editor.h.

◆ current_item_id_

int yaze::editor::OverworldEditor::current_item_id_ = 0
private

Definition at line 461 of file overworld_editor.h.

◆ current_sprite_id_

int yaze::editor::OverworldEditor::current_sprite_id_ = 0
private

Definition at line 462 of file overworld_editor.h.

◆ current_blockset_

int yaze::editor::OverworldEditor::current_blockset_ = 0
private

Definition at line 463 of file overworld_editor.h.

Referenced by ForceRefreshGraphics(), and RefreshTile16Blockset().

◆ game_state_

int yaze::editor::OverworldEditor::game_state_ = 1
private

◆ current_tile16_

◆ selected_entrance_

int yaze::editor::OverworldEditor::selected_entrance_ = 0
private

Definition at line 466 of file overworld_editor.h.

◆ selected_usage_map_

int yaze::editor::OverworldEditor::selected_usage_map_ = 0xFFFF
private

Definition at line 467 of file overworld_editor.h.

◆ selected_tile16_ids_

std::vector<int> yaze::editor::OverworldEditor::selected_tile16_ids_
private

Definition at line 470 of file overworld_editor.h.

Referenced by CheckForOverworldEdits(), and CheckForSelectRectangle().

◆ all_gfx_loaded_

bool yaze::editor::OverworldEditor::all_gfx_loaded_ = false
private

◆ map_blockset_loaded_

bool yaze::editor::OverworldEditor::map_blockset_loaded_ = false
private

◆ overworld_canvas_fullscreen_

bool yaze::editor::OverworldEditor::overworld_canvas_fullscreen_ = false
private

Definition at line 483 of file overworld_editor.h.

Referenced by HandleKeyboardShortcuts(), and Update().

◆ is_dragging_entity_

bool yaze::editor::OverworldEditor::is_dragging_entity_ = false
private

Definition at line 484 of file overworld_editor.h.

Referenced by DrawOverworldCanvas(), and HandleOverworldPan().

◆ dragged_entity_free_movement_

bool yaze::editor::OverworldEditor::dragged_entity_free_movement_ = false
private

Definition at line 485 of file overworld_editor.h.

Referenced by DrawOverworldCanvas().

◆ current_map_lock_

bool yaze::editor::OverworldEditor::current_map_lock_ = false
private

◆ show_custom_bg_color_editor_

bool yaze::editor::OverworldEditor::show_custom_bg_color_editor_ = false
private

Definition at line 492 of file overworld_editor.h.

Referenced by DrawOverworldCanvas(), and Update().

◆ show_overlay_editor_

bool yaze::editor::OverworldEditor::show_overlay_editor_ = false
private

Definition at line 493 of file overworld_editor.h.

Referenced by DrawOverworldCanvas(), and Update().

◆ show_map_properties_panel_

bool yaze::editor::OverworldEditor::show_map_properties_panel_ = false
private

Definition at line 494 of file overworld_editor.h.

Referenced by DrawOverworldCanvas(), and HandleMapInteraction().

◆ show_overlay_preview_

bool yaze::editor::OverworldEditor::show_overlay_preview_ = false
private

Definition at line 495 of file overworld_editor.h.

Referenced by DrawOverworldCanvas().

◆ last_hovered_map_

int yaze::editor::OverworldEditor::last_hovered_map_ = -1
private

Definition at line 502 of file overworld_editor.h.

Referenced by CheckForCurrentMap().

◆ hover_time_

float yaze::editor::OverworldEditor::hover_time_ = 0.0f
private

Definition at line 503 of file overworld_editor.h.

Referenced by CheckForCurrentMap().

◆ kHoverBuildDelay

constexpr float yaze::editor::OverworldEditor::kHoverBuildDelay = 0.15f
staticconstexprprivate

Definition at line 504 of file overworld_editor.h.

Referenced by CheckForCurrentMap().

◆ preload_queue_

std::vector<int> yaze::editor::OverworldEditor::preload_queue_
private

◆ kPreloadStartDelay

constexpr float yaze::editor::OverworldEditor::kPreloadStartDelay = 0.3f
staticconstexprprivate

Definition at line 508 of file overworld_editor.h.

Referenced by CheckForCurrentMap().

◆ map_properties_system_

std::unique_ptr<MapPropertiesSystem> yaze::editor::OverworldEditor::map_properties_system_
private

Definition at line 514 of file overworld_editor.h.

Referenced by DrawMapProperties(), DrawOverworldCanvas(), Initialize(), Load(), and Update().

◆ sidebar_

std::unique_ptr<OverworldSidebar> yaze::editor::OverworldEditor::sidebar_
private

Definition at line 515 of file overworld_editor.h.

Referenced by DrawMapProperties(), and Initialize().

◆ entity_renderer_

std::unique_ptr<OverworldEntityRenderer> yaze::editor::OverworldEditor::entity_renderer_
private

◆ toolbar_

std::unique_ptr<OverworldToolbar> yaze::editor::OverworldEditor::toolbar_
private

Definition at line 517 of file overworld_editor.h.

Referenced by DrawOverworldCanvas(), and Initialize().

◆ scratch_space_

◆ tile16_blockset_

◆ rom_

◆ game_data_

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

Definition at line 543 of file overworld_editor.h.

Referenced by SetGameData().

◆ renderer_

gfx::IRenderer* yaze::editor::OverworldEditor::renderer_
private

◆ tile16_editor_

◆ gfx_group_editor_

GfxGroupEditor yaze::editor::OverworldEditor::gfx_group_editor_
private

◆ palette_editor_

PaletteEditor yaze::editor::OverworldEditor::palette_editor_
private

Definition at line 549 of file overworld_editor.h.

◆ palette_

◆ selected_tile_bmp_

gfx::Bitmap yaze::editor::OverworldEditor::selected_tile_bmp_
private

Definition at line 556 of file overworld_editor.h.

◆ tile16_blockset_bmp_

gfx::Bitmap yaze::editor::OverworldEditor::tile16_blockset_bmp_
private

Definition at line 557 of file overworld_editor.h.

Referenced by Load(), and LoadGraphics().

◆ current_gfx_bmp_

gfx::Bitmap yaze::editor::OverworldEditor::current_gfx_bmp_
private

Definition at line 558 of file overworld_editor.h.

Referenced by Load(), LoadGraphics(), RefreshMapPalette(), and RefreshTile16Blockset().

◆ all_gfx_bmp

gfx::Bitmap yaze::editor::OverworldEditor::all_gfx_bmp
private

Definition at line 559 of file overworld_editor.h.

◆ maps_bmp_

◆ current_graphics_set_

gfx::BitmapTable yaze::editor::OverworldEditor::current_graphics_set_
private

Definition at line 561 of file overworld_editor.h.

Referenced by Clear(), DrawAreaGraphics(), and InvalidateGraphicsCache().

◆ sprite_previews_

std::vector<gfx::Bitmap> yaze::editor::OverworldEditor::sprite_previews_
private

Definition at line 562 of file overworld_editor.h.

Referenced by Initialize(), and LoadSpriteGraphics().

◆ overworld_

◆ refresh_blockset_

zelda3::OverworldBlockset yaze::editor::OverworldEditor::refresh_blockset_
private

Definition at line 569 of file overworld_editor.h.

◆ current_sprite_

zelda3::Sprite yaze::editor::OverworldEditor::current_sprite_
private

◆ current_entrance_

zelda3::OverworldEntrance yaze::editor::OverworldEditor::current_entrance_
private

◆ current_exit_

zelda3::OverworldExit yaze::editor::OverworldEditor::current_exit_
private

◆ current_item_

zelda3::OverworldItem yaze::editor::OverworldEditor::current_item_
private

◆ entrance_tiletypes_

zelda3::OverworldEntranceTileTypes yaze::editor::OverworldEditor::entrance_tiletypes_ = {}
private

Definition at line 579 of file overworld_editor.h.

Referenced by Load().

◆ current_entity_

zelda3::GameEntity* yaze::editor::OverworldEditor::current_entity_ = nullptr
private

◆ dragged_entity_

zelda3::GameEntity* yaze::editor::OverworldEditor::dragged_entity_ = nullptr
private

Definition at line 582 of file overworld_editor.h.

Referenced by DrawOverworldCanvas().

◆ pending_entity_insert_type_

std::string yaze::editor::OverworldEditor::pending_entity_insert_type_
private

Definition at line 585 of file overworld_editor.h.

Referenced by HandleEntityInsertion(), and ProcessPendingEntityInsertion().

◆ pending_entity_insert_pos_

ImVec2 yaze::editor::OverworldEditor::pending_entity_insert_pos_
private

Definition at line 586 of file overworld_editor.h.

Referenced by HandleEntityInsertion(), and ProcessPendingEntityInsertion().

◆ entity_insert_error_message_

std::string yaze::editor::OverworldEditor::entity_insert_error_message_
private

Definition at line 587 of file overworld_editor.h.

Referenced by ProcessPendingEntityInsertion(), and Update().

◆ ow_map_canvas_

◆ current_gfx_canvas_

gui::Canvas yaze::editor::OverworldEditor::current_gfx_canvas_
private
Initial value:
{"CurrentGfx", kCurrentGfxCanvasSize,
constexpr ImVec2 kCurrentGfxCanvasSize(0x100+1, 0x10 *0x40+1)

Definition at line 595 of file overworld_editor.h.

Referenced by DrawAreaGraphics().

◆ blockset_canvas_

gui::Canvas yaze::editor::OverworldEditor::blockset_canvas_
private
Initial value:
{"OwBlockset", kBlocksetCanvasSize,
constexpr ImVec2 kBlocksetCanvasSize(0x100+1, 0x4000+1)

Definition at line 597 of file overworld_editor.h.

Referenced by DrawTile16Selector().

◆ blockset_selector_

std::unique_ptr<gui::TileSelectorWidget> yaze::editor::OverworldEditor::blockset_selector_
private

◆ graphics_bin_canvas_

gui::Canvas yaze::editor::OverworldEditor::graphics_bin_canvas_
private
Initial value:
{"GraphicsBin", kGraphicsBinCanvasSize,
constexpr ImVec2 kGraphicsBinCanvasSize(0x100+1, kNumSheetsToLoad *0x40+1)

Definition at line 600 of file overworld_editor.h.

Referenced by DrawTile8Selector().

◆ properties_canvas_

gui::Canvas yaze::editor::OverworldEditor::properties_canvas_
private

Definition at line 602 of file overworld_editor.h.

Referenced by DrawOverworldProperties().

◆ scratch_canvas_

gui::Canvas yaze::editor::OverworldEditor::scratch_canvas_
private
Initial value:
{"ScratchSpace", ImVec2(320, 480),

Definition at line 603 of file overworld_editor.h.

Referenced by DrawScratchSpace(), DrawScratchSpaceEdits(), and DrawScratchSpacePattern().

◆ usage_stats_card_

std::unique_ptr<UsageStatisticsCard> yaze::editor::OverworldEditor::usage_stats_card_
private

Definition at line 610 of file overworld_editor.h.

Referenced by Initialize(), and usage_stats_card().

◆ debug_window_card_

std::unique_ptr<DebugWindowCard> yaze::editor::OverworldEditor::debug_window_card_
private

Definition at line 611 of file overworld_editor.h.

Referenced by debug_window_card(), and Initialize().

◆ status_

absl::Status yaze::editor::OverworldEditor::status_
private

◆ undo_stack_

std::vector<OverworldUndoPoint> yaze::editor::OverworldEditor::undo_stack_
private

Definition at line 619 of file overworld_editor.h.

Referenced by FinalizePaintOperation(), Load(), Redo(), and Undo().

◆ redo_stack_

std::vector<OverworldUndoPoint> yaze::editor::OverworldEditor::redo_stack_
private

Definition at line 620 of file overworld_editor.h.

Referenced by FinalizePaintOperation(), Load(), Redo(), and Undo().

◆ current_paint_operation_

std::optional<OverworldUndoPoint> yaze::editor::OverworldEditor::current_paint_operation_
private

Definition at line 621 of file overworld_editor.h.

Referenced by CreateUndoPoint(), FinalizePaintOperation(), and Load().

◆ last_paint_time_

std::chrono::steady_clock::time_point yaze::editor::OverworldEditor::last_paint_time_
private

Definition at line 622 of file overworld_editor.h.

Referenced by CreateUndoPoint().

◆ kMaxUndoHistory

constexpr size_t yaze::editor::OverworldEditor::kMaxUndoHistory = 50
staticconstexprprivate

Definition at line 623 of file overworld_editor.h.

Referenced by FinalizePaintOperation().

◆ kPaintBatchTimeout

constexpr auto yaze::editor::OverworldEditor::kPaintBatchTimeout = std::chrono::milliseconds(500)
staticconstexprprivate

Definition at line 624 of file overworld_editor.h.

Referenced by CreateUndoPoint().

◆ palette_listener_id_

int yaze::editor::OverworldEditor::palette_listener_id_ = -1
private

Definition at line 630 of file overworld_editor.h.

Referenced by Clear(), and Load().


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