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

DungeonEditorV2 - Simplified dungeon editor using component delegation. More...

#include <dungeon_editor_v2.h>

Inheritance diagram for yaze::editor::DungeonEditorV2:

Classes

struct  PendingCollisionUndo
 
struct  PendingEntityUndo
 
struct  PendingSelectionUndo
 
struct  PendingStandaloneToolWindow
 
struct  PendingSwap
 
struct  PendingUndo
 
struct  PendingWaterFillUndo
 
struct  PendingWorkflowMode
 
struct  SaveTransactionSnapshot
 

Public Member Functions

 DungeonEditorV2 (Rom *rom=nullptr)
 
 ~DungeonEditorV2 () override
 
void VisitGraphicsUsageRooms (const std::function< void(int, zelda3::Room &, const std::string &, bool, int)> &visitor)
 
void PrepareForSessionTeardown () override
 
void SetGameData (zelda3::GameData *game_data) override
 
void SetDependencies (const EditorDependencies &deps) override
 
void Initialize () override
 
absl::Status Load () override
 
absl::Status Update () override
 
absl::Status Undo () override
 
absl::Status Redo () override
 
absl::Status Cut () override
 
absl::Status Copy () override
 
absl::Status Paste () override
 
absl::Status Find () override
 
bool CanUndo () const override
 
absl::Status Save () override
 
absl::Status ValidateSaveScope (int only_room=-1, bool room_data_only=false) const
 
absl::Status BeginSaveTransaction () override
 
void RollbackSaveTransaction () override
 
void CommitSaveTransaction () override
 
void ContributeStatus (StatusBar *status_bar) override
 
EditorContextSnapshot BuildContextSnapshot () const override
 
absl::Status SaveRoom (int room_id)
 
absl::StatusOr< DungeonConnectionPlan > PreviewDoorConnection (const DungeonConnectionRequest &request)
 
absl::Status ApplyDoorConnection (const DungeonConnectionPlan &plan)
 
absl::StatusOr< std::string > ExportRoomDocument (int room_id)
 
absl::StatusOr< DungeonRoomTransferPlan > PreviewRoomTransfer (int target_room_id, int source_room_id, const std::string &json, const DungeonRoomTransferOptions &options)
 
absl::Status ApplyRoomTransfer (const DungeonRoomTransferPlan &plan)
 
absl::Status EditRoomMetadata (int room_id, const RoomMetadataEdit &edit)
 
absl::Status EditRoomGraphicsSheet (int room_id, int slot, int sheet_id)
 
void SetRoomGraphicsOverworldProvider (std::function< const zelda3::Overworld *()> provider)
 
absl::StatusOr< zelda3::RoomsetUsageReport > GetRoomGraphicsUsage (int roomset) const
 
absl::Status EditRoomMetadataBatch (const std::vector< RoomMetadataRequest > &requests)
 
absl::Status EditChest (int room_id, size_t index, uint8_t item_id, bool big_chest)
 
absl::Status DeleteChest (int room_id, size_t index)
 
int LoadedRoomCount () const
 
int PendingRoomCount () const
 
bool HasPendingRoomChanges () const
 
bool HasPendingDungeonChanges () const
 
bool HasUnpublishedMinecartTrackChanges () const
 
bool HasPendingProjectDraftChanges () const
 
absl::Status PrepareProjectSave ()
 
bool CurrentRoomHasPendingChanges () const
 
int TotalRoomCount () const
 
std::vector< std::pair< uint32_t, uint32_t > > CollectWriteRanges () const
 
void SetRom (Rom *rom)
 
absl::Status RefreshRomBackedState ()
 
Rom * rom () const
 
void add_room (int room_id)
 
void FocusRoom (int room_id)
 
void SelectObject (int obj_id)
 
void SetAgentMode (bool enabled)
 
bool CanHandleDungeonNavigationShortcut () const
 
bool NavigateToAdjacentRoom (DungeonRoomNavigationDirection direction)
 
bool CycleRoomSelection (int direction)
 
bool CycleObjectSelection (int direction)
 
bool IsRomLoaded () const override
 
std::string GetRomStatus () const override
 
void OpenWindow (const std::string &window_id)
 
absl::Status EnsureMinecartTrackEditorPanel ()
 
void SetWorkbenchWorkflowMode (bool enabled, bool show_toast=true)
 
void QueueWorkbenchWorkflowMode (bool enabled, bool show_toast=true)
 
void ToggleWorkbenchWorkflowMode (bool show_toast=true)
 
bool IsWorkbenchWorkflowEnabled () const
 
void QueueRoomCanvasDeleteShortcut ()
 
int current_room_id () const
 
int * mutable_current_room_id ()
 
const ImVector< int > & active_rooms () const
 
DungeonRoomStore & rooms ()
 
const DungeonRoomStore & rooms () const
 
gfx::IRenderer * renderer () const
 
ObjectSelectorContent * object_selector_panel () const
 
ObjectSelectorContent * object_editor_panel () const
 
DoorEditorContent * door_editor_panel () const
 
const std::deque< int > & GetRecentRooms () const
 Get the list of recently visited room IDs.
 
- Public Member Functions inherited from yaze::editor::Editor
 Editor ()=default
 
virtual ~Editor ()=default
 
virtual std::string GetUndoDescription () const
 
virtual std::string GetRedoDescription () const
 
const UndoManager & undo_manager () const
 
virtual absl::Status Clear ()
 
virtual bool CanRedo () const
 
virtual bool CanCut () const
 
virtual bool CanCopy () const
 
virtual bool CanPaste () const
 
virtual bool CanFind () const
 
EditorType type () const
 
bool * active ()
 
void set_active (bool active)
 
void toggle_active ()
 
Rom * rom () const
 
zelda3::GameData * game_data () const
 
project::YazeProject * project () const
 
core::VersionManager * version_manager () const
 
EditorContext context () const
 
bool HasContext () const
 

Static Public Attributes

static constexpr const char * kRoomSelectorId = "dungeon.room_selector"
 
static constexpr const char * kEntranceListId = "dungeon.entrance_list"
 
static constexpr const char * kRoomMatrixId = "dungeon.room_matrix"
 
static constexpr const char * kRoomGraphicsId = "dungeon.room_graphics"
 
static constexpr const char * kObjectSelectorId = "dungeon.object_selector"
 
static constexpr const char * kObjectToolsId = kObjectSelectorId
 
static constexpr const char * kDoorEditorId = "dungeon.door_editor"
 
static constexpr const char * kPaletteEditorId = "dungeon.palette_editor"
 
static constexpr const char * kMinecartTrackEditorId
 

Private Member Functions

void DrawRoomPanels ()
 
void DrawRoomTab (int room_id)
 
void ProcessDeferredTextures ()
 
void ReloadWaterFillZones ()
 
void OnRoomSelected (int room_id, bool request_focus=true)
 
void OnRoomSelected (int room_id, RoomSelectionIntent intent)
 
void NavigateToPlacedObject (int room_id, size_t object_index, int object_id)
 
std::unique_ptr< ObjectCoveragePanel > CreateObjectCoveragePanel ()
 
void FocusObjectCoverage (int room_id, const zelda3::RoomObject &object)
 
void OnEntranceSelected (int entrance_id)
 
void SetGraphicsPreviewEntrance (int entrance_id)
 
int ResolveEntranceRoomId (int entrance_id) const
 
void SyncPanelsToRoom (int room_id)
 
void HandleDungeonPaletteChanged (gui::DungeonPaletteChange change)
 
void HandleArenaPaletteChanged (const std::string &group_name, int palette_index)
 
void RegisterPaletteListener ()
 
void InvalidateDungeonPaletteUsers (gui::DungeonPaletteChange change)
 
DungeonRenderContext ResolveDungeonRenderContextForRoom (int room_id) const
 
uint8_t ResolveSelectedEntranceBlocksetForRoom (int room_id) const
 
std::vector< DungeonRenderEntranceCandidate > BuildDungeonRenderEntranceCandidates () const
 
const zelda3::RoomCensus * GetDungeonRenderContextCensus () const
 
void InvalidateDungeonRenderContextCensus ()
 
void ApplyEntranceRenderContext (int room_id)
 
void ConfigureViewerRenderContext (DungeonCanvasViewer *viewer, int room_id)
 
std::optional< DungeonEntranceCameraState > GetEntranceCameraState (int slot_index) const
 
absl::Status RepairEntranceCamera (int slot_index)
 
absl::Status RestoreEntranceCameraState (int slot_index, const DungeonEntranceCameraState &state)
 
void RefreshEntranceCameraOverlays ()
 
void ConfigureEntrancePropertyEditCallbacks (DungeonEntrancesPanel *panel)
 
void RecordEntrancePropertyEdit (int slot_index, const zelda3::RoomEntrance &before, const zelda3::RoomEntrance &after, std::shared_ptr< const int > gesture)
 
void RecordSpawnPropertyEdit (int slot_index, const zelda3::DungeonSpawnPoint &before, const zelda3::DungeonSpawnPoint &after, std::shared_ptr< const int > gesture)
 
absl::Status RestoreEntranceProperties (int slot_index, const zelda3::RoomEntrance &entrance)
 
absl::Status RestoreSpawnProperties (int slot_index, const zelda3::DungeonSpawnPoint &spawn)
 
void RefreshEntranceDirtyState (int slot_index)
 
void WireViewerPanelCallbacks (DungeonCanvasViewer *viewer)
 
void ConfigureMinecartProjectCallbacks ()
 
absl::Status ApplyMinecartTrackEdit (const MinecartTrack &before, const MinecartTrack &after, bool move_cart)
 
void SynchronizeCustomObjectAssets ()
 
void ShowRoomPanel (int room_id)
 
void SaveAllRooms ()
 
void HandleObjectPlaced (const zelda3::RoomObject &obj)
 
void OpenGraphicsEditorForObject (int room_id, const zelda3::RoomObject &object)
 
absl::Status OpenObjectTileEditorForObject (int room_id, const zelda3::RoomObject &object)
 
DungeonCanvasViewer * GetViewerForRoom (int room_id)
 
DungeonCanvasViewer * GetStandaloneViewerForRoom (int room_id)
 
DungeonCanvasViewer * GetWorkbenchViewer ()
 
DungeonCanvasViewer * GetWorkbenchCompareViewer (int room_id)
 
void RefreshViewerRuntimeContext (DungeonCanvasViewer *viewer, int room_id, bool rebind_project=false)
 
void ConfigureEditableViewer (DungeonCanvasViewer *viewer)
 
bool ConsumeRoomCanvasDeleteShortcut (DungeonCanvasViewer &viewer)
 
void ExpireStaleRoomCanvasDeleteShortcut ()
 
void TouchViewerLru (int room_id)
 
void RemoveViewerFromLru (int room_id)
 
absl::Status SaveRoomData (int room_id)
 
absl::Status SaveRoomImpl (int room_id, bool room_data_only)
 
absl::Status RunWithSaveTransaction (const std::function< absl::Status()> &operation)
 
bool HasPendingUndoSnapshot () const
 
void BeginUndoSnapshot (int room_id)
 
void FinalizeUndoAction (int room_id)
 
absl::Status RestoreRoomObjects (int room_id, const std::vector< zelda3::RoomObject > &objects, const std::vector< size_t > &selected_indices, const std::vector< chest_data > &chests)
 
absl::Status PreflightObjectMutation (int room_id, const std::vector< zelda3::RoomObject > &objects, const std::vector< chest_data > &chests, bool check_streams=true)
 
absl::Status PreflightStreamMutation (int room_id, const DungeonSelectionEditState &candidate, uint8_t domains)
 
absl::Status PreflightSpriteMutation (int room_id, const std::vector< zelda3::Sprite > &sprites)
 
absl::Status PreflightPotItemPlacement (int room_id, const std::vector< zelda3::PotItem > &items)
 
absl::StatusOr< std::vector< std::pair< uint32_t, uint32_t > > > PlanPendingRoomStreamRanges (const std::vector< DungeonSelectionEditPlan > &candidates) const
 
absl::Status PreflightDoorMutation (int room_id, const std::vector< zelda3::Room::Door > &doors)
 
absl::Status ApplyChestObjectEdit (int room_id, const std::vector< zelda3::RoomObject > &objects, const std::vector< chest_data > &chests, const std::vector< size_t > &selection)
 
absl::Status CommitSelectionEdit (const DungeonSelectionEditPlan &plan, bool continuous)
 
void FinalizeSelectionUndoAction ()
 
absl::Status RestoreSelectionEditBatch (const std::vector< DungeonSelectionEditPlan > &plans, bool after)
 
absl::Status EnsureConnectionRoomLoaded (int room_id)
 
absl::Status EnsureRoomTransferLoaded (int room_id)
 
absl::Status PreflightRoomTransfer (const DungeonRoomTransferPlan &plan)
 
absl::Status RestoreRoomTransfer (int room_id, const DungeonRoomDocument &document)
 
void RefreshSelectionEditViews (int room_id, const DungeonSelectionEditState *selection)
 
void PushSelectionUndoAction (DungeonSelectionEditPlan plan)
 
void PushSelectionUndoBatch (std::vector< DungeonSelectionEditPlan > plans, std::string description)
 
void ConfigureViewerUndoHooks (DungeonCanvasViewer *viewer)
 
void FinalizePendingUndoActions ()
 
absl::Status RestoreRoomMetadataBatch (const std::vector< std::pair< int, zelda3::Room::MetadataSnapshot > > &states)
 
absl::Status RestoreChest (int room_id, size_t index, chest_data chest)
 
void RefreshRoomMetadataViews (int room_id)
 
DungeonEntitySnapshot CaptureRoomEntities (int room_id, MutationDomain domain)
 
void BeginEntityUndoSnapshot (int room_id, MutationDomain domain)
 
void FinalizeEntityUndoAction (int room_id, MutationDomain domain)
 
void FinalizePendingEntityUndoActions ()
 
absl::Status RestoreRoomEntities (int room_id, MutationDomain domain, const DungeonEntitySnapshot &snapshot)
 
void BeginCollisionUndoSnapshot (int room_id)
 
void FinalizeCollisionUndoAction (int room_id)
 
void RestoreRoomCustomCollision (int room_id, const zelda3::CustomCollisionMap &map)
 
absl::Status ApplyMinecartCollisionStamp (int room_id, const zelda3::CustomCollisionMap &expected, const MinecartCollisionStamp &stamp)
 
absl::Status ApplyMinecartCollisionBatch (const std::vector< zelda3::TrackCollisionResult > &preview, const zelda3::GeneratorOptions &options)
 
absl::Status RestoreRoomCustomCollisionBatch (const std::vector< DungeonCustomCollisionSnapshot > &snapshots)
 
void BeginWaterFillUndoSnapshot (int room_id)
 
void FinalizeWaterFillUndoAction (int room_id)
 
void RestoreRoomWaterFill (int room_id, const WaterFillSnapshot &snap)
 
void SwapRoomInPanel (int old_room_id, int new_room_id)
 
void ProcessPendingSwap ()
 
void ProcessPendingWorkflowMode ()
 
void ProcessPendingStandaloneToolWindow ()
 
int GetOrCreateRoomPanelSlotId (int room_id)
 
void ReleaseRoomPanelSlotId (int room_id)
 

Static Private Member Functions

static bool IsValidRoomId (int room_id)
 

Private Attributes

gfx::IRenderer * renderer_ = nullptr
 
Rom * rom_
 
zelda3::GameData * game_data_ = nullptr
 
DungeonRoomStore rooms_
 
std::array< zelda3::RoomEntrance, zelda3::kNumDungeonEntranceSlots > entrances_
 
std::array< zelda3::DungeonSpawnPoint, zelda3::kNumDungeonSpawnPoints > spawn_points_
 
std::optional< zelda3::RoomCensus > dungeon_render_context_census_
 
std::future< absl::StatusOr< zelda3::RoomCensus > > dungeon_render_context_census_pending_
 
util::StopSource dungeon_render_context_census_stop_
 
bool dungeon_render_context_census_shutdown_ = false
 
bool dungeon_render_context_census_attempted_ = false
 
uint64_t dungeon_render_context_census_generation_ = 0
 
uint64_t dungeon_render_context_pending_generation_ = 0
 
std::string dungeon_render_context_census_error_
 
std::optional< SaveTransactionSnapshot > save_transaction_snapshot_
 
uint64_t entrance_property_save_generation_ = 0
 
std::optional< int > room_canvas_delete_shortcut_frame_
 
int current_entrance_id_ = zelda3::kNumDungeonSpawnPoints
 
bool automatic_entrance_preview_ = true
 
ImVector< int > active_rooms_
 
int current_room_id_ = 0
 
std::deque< int > recent_rooms_
 
std::vector< int > pinned_rooms_
 
class DungeonWorkbenchContent * workbench_panel_ = nullptr
 
RoomMatrixContent * room_matrix_panel_ = nullptr
 
DungeonEntrancesPanel * entrance_navigator_panel_ = nullptr
 
gfx::SnesPalette current_palette_
 
gfx::PaletteGroup current_palette_group_
 
uint64_t current_palette_id_ = 0
 
uint64_t current_palette_group_id_ = 0
 
int palette_listener_id_ = -1
 
DungeonRoomLoader room_loader_
 
DungeonRoomSelector room_selector_
 
DungeonSelectionClipboard selection_clipboard_
 
util::LruCache< int, std::unique_ptr< DungeonCanvasViewer > > room_viewers_
 
std::unique_ptr< DungeonCanvasViewer > workbench_viewer_
 
std::unique_ptr< DungeonCanvasViewer > workbench_compare_viewer_
 
gui::PaletteEditorWidget palette_editor_
 
ObjectSelectorContent * object_selector_panel_ = nullptr
 
DoorEditorContent * door_editor_panel_ = nullptr
 
RoomGraphicsContent * room_graphics_panel_ = nullptr
 
std::function< const zelda3::Overworld *()> room_graphics_overworld_provider_
 
PaletteEditorContent * palette_editor_panel_ = nullptr
 
class SpriteEditorPanel * sprite_editor_panel_ = nullptr
 
class ItemEditorPanel * item_editor_panel_ = nullptr
 
class MinecartTrackEditorPanel * minecart_track_editor_panel_ = nullptr
 
class RoomTagEditorPanel * room_tag_editor_panel_ = nullptr
 
class ObjectCoveragePanel * object_coverage_panel_ = nullptr
 
class CustomCollisionPanel * custom_collision_panel_ = nullptr
 
class WaterFillPanel * water_fill_panel_ = nullptr
 
ObjectTileEditorPanel * object_tile_editor_panel_ = nullptr
 
OverlayManagerPanel * overlay_manager_panel_ = nullptr
 
std::unique_ptr< ObjectSelectorContent > owned_object_selector_panel_
 
std::unique_ptr< DoorEditorContent > owned_door_editor_panel_
 
std::unique_ptr< RoomTagEditorPanel > owned_room_tag_editor_panel_
 
std::unique_ptr< ObjectCoveragePanel > owned_object_coverage_panel_
 
std::unique_ptr< CustomCollisionPanel > owned_custom_collision_panel_
 
std::unique_ptr< WaterFillPanel > owned_water_fill_panel_
 
std::unique_ptr< MinecartTrackEditorPanel > owned_minecart_track_editor_panel_
 
std::unique_ptr< zelda3::DungeonEditorSystem > dungeon_editor_system_
 
std::unique_ptr< emu::render::EmulatorRenderService > render_service_
 
bool is_loaded_ = false
 
uint64_t observed_custom_object_generation_ = 0
 
bool observed_custom_objects_enabled_ = false
 
ImGuiWindowClass room_window_class_
 
ImGuiID room_dock_id_ = 0
 
std::unordered_map< int, std::shared_ptr< gui::PanelWindow > > room_cards_
 
int next_room_panel_slot_id_ = 1
 
std::unordered_map< int, int > room_panel_slot_ids_
 
PendingUndo pending_undo_
 
bool has_pending_undo_ = false
 
bool undo_restore_triggered_ping_ = false
 
PendingSelectionUndo pending_selection_undo_
 
std::array< PendingEntityUndo, 3 > pending_entity_undo_
 
PendingCollisionUndo pending_collision_undo_
 
PendingWaterFillUndo pending_water_fill_undo_
 
PendingSwap pending_swap_
 
PendingWorkflowMode pending_workflow_mode_
 
PendingStandaloneToolWindow pending_standalone_tool_window_
 
std::vector< std::string > workbench_suspended_navigation_window_ids_
 

Static Private Attributes

static constexpr size_t kMaxRecentRooms = 10
 
static constexpr int kMaxCachedViewers = 20
 

Friends

class DungeonCanvasViewerTestPeer
 
class DungeonEditorPaletteRefreshTestPeer
 
class DungeonEditorEntityUndoTestPeer
 
class DungeonRoomEditsTestPeer
 
class DungeonSelectionEditsTestPeer
 
class DungeonPotPlacementTestPeer
 
class DungeonConnectionEditsTestPeer
 
class DungeonRoomTransferTestPeer
 
class DungeonEditorV2MinecartTrackTestPeer
 
class DungeonEditorV2ObjectTileEditorTestPeer
 
class DungeonEditorV2EntranceCameraTestPeer
 
class DungeonEditorEntrancePropertiesTestPeer
 
class DungeonEditorV2RegularEntranceTestPeer
 
class DungeonEditorV2ReloadTestPeer
 
class AuthoringSaveWorkflowTestPeer
 
class DungeonPaletteSourceTestPeer
 
class DungeonEditorV2ShortcutTestPeer
 
class DungeonEditorV2SpawnPointTestPeer
 
class DungeonEditorV2SpawnRejectionTestPeer
 
class DungeonEditorV2RomSafetyTest_UndoSnapshotLeakDetection_Test
 
class DungeonEditorV2RomSafetyTest_ObjectStreamUndoRedoRestoresSelectionIdentity_Test
 
class DungeonEditorV2RomSafetyTest_ViewerCacheLRUEviction_Test
 
class DungeonEditorV2RomSafetyTest_ViewerCacheNeverEvictsActiveRooms_Test
 
class DungeonEditorV2RomSafetyTest_ViewerCacheLRUAccessOrderUpdate_Test
 
class DungeonEditorV2RomSafetyTest_SaveAllRoomsRollsBackEarlierWritesOnLateFailure_Test
 
class DungeonEditorV2RomSafetyTest_LateCoordinatorRollbackRestoresEntranceDirtyState_Test
 
class DungeonEditorPaletteRefreshTest_SharedHudEditRefreshesRoomUsingDifferentDungeonPalette_Test
 
class DungeonEditorPaletteRefreshTest_DungeonMainEditRefreshesResolvedAliasesOnly_Test
 
class DungeonEditorPaletteRefreshTest_CachedRoomRefreshesThroughViewerCompositePreparation_Test
 
class DungeonEditorPaletteRefreshTest_CompareViewerScopesEntranceContextToRequestedRoom_Test
 

Additional Inherited Members

- Protected Member Functions inherited from yaze::editor::Editor
std::string MakePanelTitle (const std::string &base_title) const
 
std::string MakeWindowId (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_
 
UndoManager undo_manager_
 

Detailed Description

DungeonEditorV2 - Simplified dungeon editor using component delegation.

This is a drop-in replacement for DungeonEditor that properly delegates to the component system instead of implementing everything inline.

Architecture:

The editor acts as a coordinator, not an implementer.

Ownership Model

OWNED by DungeonEditorV2 (use unique_ptr or direct member):

  • rooms_ (std::array) - full ownership
  • entrances_ (std::array) - full ownership
  • spawn_points_ (std::array) - full ownership
  • room_viewers_ (map of unique_ptr) - owns canvas viewers per room
  • dungeon_editor_system_ (unique_ptr) - owns editor system
  • render_service_ (unique_ptr) - owns emulator render service
  • room_loader_, room_selector_, palette_editor_ - direct members

EXTERNALLY OWNED (raw pointers, lifetime managed elsewhere):

OWNED BY WorkspaceWindowManager (registered EditorPanels):

  • object_editor_panel_ - registered via RegisterWindowContent()
  • room_graphics_panel_ - registered via RegisterWindowContent()
  • sprite_editor_panel_ - registered via RegisterWindowContent()
  • item_editor_panel_ - registered via RegisterWindowContent()

Panel pointers are stored for convenience access but should NOT be deleted by this class. WorkspaceWindowManager owns them.

Definition at line 121 of file dungeon_editor_v2.h.

Constructor & Destructor Documentation

◆ DungeonEditorV2()

yaze::editor::DungeonEditorV2::DungeonEditorV2 ( Rom * rom = nullptr)
explicit

Definition at line 352 of file dungeon_editor_v2.cc.

References yaze::zelda3::CreateDungeonEditorSystem(), dungeon_editor_system_, yaze::editor::kDungeon, rom(), and yaze::editor::Editor::type_.

Here is the call graph for this function:

◆ ~DungeonEditorV2()

yaze::editor::DungeonEditorV2::~DungeonEditorV2 ( )
override

Definition at line 360 of file dungeon_editor_v2.cc.

References yaze::gfx::Arena::Get(), palette_listener_id_, PrepareForSessionTeardown(), and yaze::gfx::Arena::UnregisterPaletteListener().

Here is the call graph for this function:

Member Function Documentation

◆ VisitGraphicsUsageRooms()

◆ PrepareForSessionTeardown()

◆ SetGameData()

◆ SetDependencies()

void yaze::editor::DungeonEditorV2::SetDependencies ( const EditorDependencies & deps)
overridevirtual

◆ Initialize()

void yaze::editor::DungeonEditorV2::Initialize ( )
overridevirtual

Implements yaze::editor::Editor.

Definition at line 690 of file dungeon_editor_v2.cc.

References active_rooms_, ApplyEntranceRenderContext(), automatic_entrance_preview_, yaze::editor::UndoManager::CanRedo(), yaze::editor::UndoManager::CanUndo(), ConfigureEntrancePropertyEditCallbacks(), ConsumeRoomCanvasDeleteShortcut(), yaze::editor::WindowPresentationPolicy::CoreWorkspace(), yaze::zelda3::CreateDungeonEditorSystem(), current_entrance_id_, current_room_id_, yaze::editor::Editor::dependencies_, dungeon_editor_system_, entrance_navigator_panel_, entrances_, game_data_, yaze::core::FeatureFlags::get(), yaze::editor::ShortcutManager::GetDisplayString(), yaze::editor::UndoManager::GetRedoDescription(), yaze::editor::UndoManager::GetUndoDescription(), GetWorkbenchCompareViewer(), GetWorkbenchViewer(), yaze::project::YazeProject::hack_manifest, ICON_MD_CATEGORY, ICON_MD_DOOR_FRONT, ICON_MD_GRID_VIEW, ICON_MD_IMAGE, ICON_MD_LIST, ICON_MD_PALETTE, ICON_MD_WORKSPACES, yaze::Rom::is_loaded(), kDoorEditorId, yaze::editor::WindowDescriptor::kEditor, kEntranceListId, yaze::editor::kError, kObjectSelectorId, yaze::editor::kOptionalPopOut, kPaletteEditorId, kRoomGraphicsId, kRoomMatrixId, kRoomSelectorId, yaze::editor::kSuccess, yaze::editor::kWorkspace, LOG_ERROR, OnEntranceSelected(), OnRoomSelected(), yaze::editor::WindowPresentationPolicy::OptionalPopOut(), yaze::editor::DungeonEditorV2::PendingStandaloneToolWindow::pending, pending_standalone_tool_window_, yaze::zelda3::GameData::pit_damage_table, yaze::editor::PrintShortcut(), yaze::editor::EditorDependencies::project, QueueWorkbenchWorkflowMode(), recent_rooms_, Redo(), yaze::editor::EditorDependencies::renderer, renderer_, ResolveDungeonRenderContextForRoom(), yaze::editor::EditorDependencies::rom, rom_, room_matrix_panel_, room_selector_, room_window_class_, rooms_, yaze::editor::UserSettings::Save(), SaveAllRooms(), SaveRoom(), yaze::editor::DungeonEditorV2::PendingStandaloneToolWindow::session_id, yaze::editor::UserSettings::SetDungeonInspectorSide(), SetGraphicsPreviewEntrance(), yaze::editor::DungeonWorkbenchContent::SetNavigationPanels(), yaze::editor::DungeonWorkbenchContent::SetOnInspectorSideChanged(), yaze::editor::DungeonWorkbenchContent::SetOpenKeyboardShortcutsCallback(), yaze::editor::DungeonWorkbenchContent::SetPitDamageTableProvider(), yaze::editor::DungeonWorkbenchContent::SetPrimaryCanvasDrawnCallback(), yaze::editor::DungeonRoomSelector::SetProject(), yaze::editor::RoomMatrixContent::SetRenderContextCallback(), SetRom(), yaze::editor::DungeonWorkbenchContent::SetRoomRenderContextCallback(), yaze::editor::DungeonRoomSelector::SetRoomSelectedWithIntentCallback(), yaze::editor::DungeonWorkbenchContent::SetStandaloneToolCallbacks(), yaze::editor::DungeonWorkbenchContent::SetUndoRedoProvider(), SetWorkbenchWorkflowMode(), yaze::editor::EditorDependencies::shortcut_manager, yaze::editor::ToastManager::Show(), spawn_points_, SwapRoomInPanel(), yaze::editor::EditorDependencies::toast_manager, Undo(), yaze::editor::Editor::undo_manager_, yaze::editor::UndoManager::UndoStackSize(), yaze::editor::EditorDependencies::user_settings, yaze::editor::DungeonEditorV2::PendingStandaloneToolWindow::window_id, yaze::editor::EditorDependencies::window_manager, and workbench_panel_.

Referenced by yaze::test::DungeonEditorTestSuite::RunObjectManipulationTest(), and yaze::test::DungeonEditorTestSuite::RunRoomSaveTest().

◆ Load()

absl::Status yaze::editor::DungeonEditorV2::Load ( )
overridevirtual

Implements yaze::editor::Editor.

Definition at line 1010 of file dungeon_editor_v2.cc.

References active_rooms_, yaze::zelda3::BuildDungeonRenderPaletteGroupFromGameData(), CreateObjectCoveragePanel(), current_entrance_id_, current_palette_, current_palette_group_, current_palette_group_id_, current_room_id_, custom_collision_panel_, yaze::editor::Editor::dependencies_, yaze::editor::WindowPresentationPolicy::Diagnostic(), door_editor_panel_, dungeon_editor_system_, yaze::gfx::PaletteGroupMap::dungeon_main, EditRoomGraphicsSheet(), EditRoomMetadata(), EnsureMinecartTrackEditorPanel(), entrances_, yaze::editor::DungeonWorkbenchContent::FocusSelectionInspector(), yaze::editor::Editor::game_data(), yaze::gfx::PaletteManager::Get(), yaze::zelda3::ObjectDimensionTable::Get(), yaze::editor::MinecartTrackEditorPanel::GetId(), yaze::editor::ObjectTileEditorPanel::GetId(), GetRoomGraphicsUsage(), GetViewerForRoom(), yaze::project::YazeProject::hack_manifest, HandleDungeonPaletteChanged(), yaze::gfx::PaletteManager::Initialize(), yaze::gui::PaletteEditorWidget::Initialize(), InvalidateDungeonRenderContextCensus(), yaze::editor::DungeonObjectSelector::InvalidatePreviewCache(), yaze::Rom::is_loaded(), is_loaded_, item_editor_panel_, yaze::editor::DungeonRoomLoader::LoadDungeonSpawnPoints(), yaze::core::HackManifest::loaded(), yaze::editor::DungeonRoomLoader::LoadRoomEntrances(), minecart_track_editor_panel_, object_coverage_panel_, yaze::editor::ObjectSelectorContent::object_selector(), object_selector_panel_, object_tile_editor_panel_, OnEntranceSelected(), OnRoomSelected(), OpenObjectTileEditorForObject(), OpenWindow(), yaze::editor::WorkspaceWindowManager::OpenWindow(), overlay_manager_panel_, owned_custom_collision_panel_, owned_door_editor_panel_, owned_object_coverage_panel_, owned_object_selector_panel_, owned_room_tag_editor_panel_, owned_water_fill_panel_, palette_editor_, palette_editor_panel_, yaze::zelda3::GameData::palette_groups, yaze::editor::EditorDependencies::project, RegisterPaletteListener(), yaze::editor::WorkspaceWindowManager::RegisterWindowContent(), ReloadWaterFillZones(), renderer_, RETURN_IF_ERROR, rom_, yaze::project::YazeProject::rom_metadata, room_graphics_panel_, room_loader_, room_selector_, room_tag_editor_panel_, rooms_, yaze::editor::DungeonRoomSelector::set_active_rooms(), yaze::editor::DungeonRoomSelector::set_current_entrance_id(), yaze::editor::DungeonRoomSelector::set_entrances(), yaze::editor::DungeonRoomSelector::set_rooms(), yaze::editor::DungeonRoomSelector::set_spawn_points(), yaze::gui::PaletteEditorWidget::SetDungeonRenderPaletteMode(), yaze::editor::DungeonObjectSelector::SetEditObjectTilesCallback(), yaze::editor::DungeonWorkbenchContent::SetEmbeddedEditorPanels(), yaze::editor::DungeonWorkbenchContent::SetEmbeddedToolPanels(), yaze::editor::DungeonRoomSelector::SetEntranceSelectedCallback(), yaze::editor::ObjectSelectorContent::SetGameData(), yaze::editor::DungeonWorkbenchContent::SetObjectCoverageContent(), yaze::gui::PaletteEditorWidget::SetOnDungeonPaletteChanged(), yaze::editor::DungeonObjectSelector::SetOpenMinecartEditorWindowCallback(), yaze::editor::DungeonObjectSelector::SetOpenTileEditorWindowCallback(), yaze::editor::DungeonRoomSelector::SetRoomSelectedCallback(), yaze::editor::DungeonRoomSelector::SetRoomSelectedWithIntentCallback(), yaze::editor::DungeonObjectSelector::SetTileEditorPanel(), yaze::editor::DungeonRoomStore::size(), spawn_points_, sprite_editor_panel_, yaze::editor::EditorDependencies::toast_manager, yaze::editor::ValidateHackManifestSaveConflicts(), water_fill_panel_, yaze::editor::EditorDependencies::window_manager, yaze::editor::WindowPresentationPolicy::WithHost(), workbench_panel_, and yaze::project::RomMetadata::write_policy.

◆ Update()

◆ Undo()

◆ Redo()

◆ Cut()

absl::Status yaze::editor::DungeonEditorV2::Cut ( )
overridevirtual

Implements yaze::editor::Editor.

Definition at line 230 of file dungeon_editor_v2_undo.cc.

References current_room_id_, GetViewerForRoom(), and RETURN_IF_ERROR.

Here is the call graph for this function:

◆ Copy()

absl::Status yaze::editor::DungeonEditorV2::Copy ( )
overridevirtual

Implements yaze::editor::Editor.

Definition at line 238 of file dungeon_editor_v2_undo.cc.

References current_room_id_, and GetViewerForRoom().

Here is the call graph for this function:

◆ Paste()

absl::Status yaze::editor::DungeonEditorV2::Paste ( )
overridevirtual

Implements yaze::editor::Editor.

Definition at line 245 of file dungeon_editor_v2_undo.cc.

References current_room_id_, and GetViewerForRoom().

Here is the call graph for this function:

◆ Find()

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

Implements yaze::editor::Editor.

Definition at line 168 of file dungeon_editor_v2.h.

◆ CanUndo()

bool yaze::editor::DungeonEditorV2::CanUndo ( ) const
inlineoverridevirtual

Reimplemented from yaze::editor::Editor.

Definition at line 171 of file dungeon_editor_v2.h.

References yaze::editor::UndoManager::CanUndo(), HasPendingUndoSnapshot(), and yaze::editor::Editor::undo_manager_.

Here is the call graph for this function:

◆ Save()

absl::Status yaze::editor::DungeonEditorV2::Save ( )
overridevirtual

◆ ValidateSaveScope()

◆ BeginSaveTransaction()

◆ RollbackSaveTransaction()

◆ CommitSaveTransaction()

void yaze::editor::DungeonEditorV2::CommitSaveTransaction ( )
overridevirtual

◆ ContributeStatus()

◆ BuildContextSnapshot()

EditorContextSnapshot yaze::editor::DungeonEditorV2::BuildContextSnapshot ( ) const
overridevirtual

Reimplemented from yaze::editor::Editor.

Definition at line 91 of file dungeon_editor_v2_context.cc.

References yaze::editor::EditorContextSnapshot::actions, yaze::editor::AppendResolvedGraphicsContext(), yaze::zelda3::Room::blockset(), yaze::editor::EditorContextSnapshot::capabilities, yaze::editor::EditorContextSnapshot::category, yaze::editor::EditorContextSnapshot::counts, current_entrance_id_, current_room_id_, yaze::editor::DungeonRenderContext::default_entrance, yaze::editor::Editor::dependencies_, yaze::zelda3::DescribeDungeonGraphicsContext(), yaze::editor::EditorContextSnapshot::diagnostics, dungeon_render_context_census_error_, yaze::editor::DungeonEntrancePreviewLabel(), yaze::editor::DungeonRenderContextSourceName(), yaze::editor::DungeonRenderContext::effective_blockset(), yaze::editor::DungeonRenderContext::entrance_slot, yaze::zelda3::Room::GetChests(), yaze::zelda3::Room::GetDoors(), GetEntranceCameraState(), yaze::editor::DungeonRoomStore::GetIfMaterialized(), yaze::zelda3::Room::GetPotItems(), yaze::editor::dungeon_project_labels::GetRoomLabel(), yaze::zelda3::Room::GetSprites(), yaze::zelda3::Room::GetStairs(), yaze::zelda3::Room::GetTileObjectCount(), yaze::project::YazeProject::hack_manifest, yaze::editor::EditorContextSnapshot::has_pending_changes, yaze::editor::EditorContextSnapshot::HasCapability(), yaze::zelda3::Room::HasUnsavedChanges(), IsValidRoomId(), IsWorkbenchWorkflowEnabled(), yaze::editor::kAmbiguous, yaze::editor::kError, yaze::editor::kInfo, kMinecartTrackEditorId, yaze::zelda3::kNumDungeonSpawnPoints, yaze::editor::workflow_mode_names::kStandalone, yaze::editor::kWarning, yaze::editor::workflow_mode_names::kWorkbench, yaze::core::HackManifest::loaded(), yaze::editor::EditorContextSnapshot::metadata, yaze::core::HackManifest::minecart_track_layout(), yaze::project::YazeProject::name, yaze::editor::DungeonRenderContext::owner_name, yaze::zelda3::Room::palette(), yaze::editor::EditorContextSnapshot::pending_label, yaze::editor::EditorDependencies::project, yaze::zelda3::GraphicsContextIdentity::project_name, ResolveDungeonRenderContextForRoom(), rooms_, yaze::editor::EditorContextSnapshot::semantic_owner, yaze::editor::DungeonRenderContext::source, yaze::core::MinecartTrackLayout::source, yaze::zelda3::Room::spriteset(), yaze::editor::EditorContextSnapshot::subtitle, yaze::editor::EditorContextSnapshot::title, yaze::editor::DungeonRenderContext::uses_entrance(), and yaze::editor::ValidateDungeonEntranceCamera().

◆ SaveRoom()

absl::Status yaze::editor::DungeonEditorV2::SaveRoom ( int room_id)

◆ PreviewDoorConnection()

◆ ApplyDoorConnection()

◆ ExportRoomDocument()

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

◆ PreviewRoomTransfer()

◆ ApplyRoomTransfer()

◆ EditRoomMetadata()

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

Definition at line 53 of file dungeon_editor_v2_room_edits.cc.

References EditRoomMetadataBatch().

Referenced by ConfigureViewerUndoHooks(), and Load().

Here is the call graph for this function:

◆ EditRoomGraphicsSheet()

◆ SetRoomGraphicsOverworldProvider()

void yaze::editor::DungeonEditorV2::SetRoomGraphicsOverworldProvider ( std::function< const zelda3::Overworld *()> provider)
inline

Definition at line 199 of file dungeon_editor_v2.h.

References room_graphics_overworld_provider_.

◆ GetRoomGraphicsUsage()

◆ EditRoomMetadataBatch()

◆ EditChest()

◆ DeleteChest()

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

◆ LoadedRoomCount()

int yaze::editor::DungeonEditorV2::LoadedRoomCount ( ) const

Definition at line 1641 of file dungeon_editor_v2.cc.

References yaze::editor::DungeonRoomStore::LoadedCount(), and rooms_.

Referenced by ContributeStatus().

Here is the call graph for this function:

◆ PendingRoomCount()

int yaze::editor::DungeonEditorV2::PendingRoomCount ( ) const

Definition at line 1645 of file dungeon_editor_v2.cc.

References yaze::editor::DungeonRoomStore::ForEachMaterialized(), yaze::zelda3::Room::HasUnsavedChanges(), and rooms_.

Referenced by HasPendingRoomChanges().

Here is the call graph for this function:

◆ HasPendingRoomChanges()

bool yaze::editor::DungeonEditorV2::HasPendingRoomChanges ( ) const

Definition at line 1655 of file dungeon_editor_v2.cc.

References PendingRoomCount().

Referenced by HasPendingDungeonChanges().

Here is the call graph for this function:

◆ HasPendingDungeonChanges()

◆ HasUnpublishedMinecartTrackChanges()

bool yaze::editor::DungeonEditorV2::HasUnpublishedMinecartTrackChanges ( ) const

Definition at line 1659 of file dungeon_editor_v2.cc.

References yaze::editor::MinecartTrackEditorPanel::HasUnpublishedChanges(), and minecart_track_editor_panel_.

Referenced by HasPendingDungeonChanges().

Here is the call graph for this function:

◆ HasPendingProjectDraftChanges()

bool yaze::editor::DungeonEditorV2::HasPendingProjectDraftChanges ( ) const

Definition at line 1690 of file dungeon_editor_v2.cc.

References yaze::editor::MinecartTrackEditorPanel::HasPendingProjectDraftChanges(), and minecart_track_editor_panel_.

Here is the call graph for this function:

◆ PrepareProjectSave()

absl::Status yaze::editor::DungeonEditorV2::PrepareProjectSave ( )

Definition at line 1695 of file dungeon_editor_v2.cc.

References minecart_track_editor_panel_, and yaze::editor::MinecartTrackEditorPanel::PrepareProjectSave().

Here is the call graph for this function:

◆ CurrentRoomHasPendingChanges()

bool yaze::editor::DungeonEditorV2::CurrentRoomHasPendingChanges ( ) const

Definition at line 1701 of file dungeon_editor_v2.cc.

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

Referenced by ContributeStatus().

Here is the call graph for this function:

◆ TotalRoomCount()

int yaze::editor::DungeonEditorV2::TotalRoomCount ( ) const
inline

Definition at line 221 of file dungeon_editor_v2.h.

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

Referenced by ContributeStatus().

Here is the call graph for this function:

◆ CollectWriteRanges()

◆ SetRom()

◆ RefreshRomBackedState()

absl::Status yaze::editor::DungeonEditorV2::RefreshRomBackedState ( )

Definition at line 420 of file dungeon_editor_v2.cc.

References ApplyEntranceRenderContext(), yaze::zelda3::BuildDungeonRenderPaletteGroupFromGameData(), yaze::editor::ObjectSelectorContent::CancelPlacement(), yaze::editor::UndoManager::Clear(), yaze::gfx::SnesPalette::clear(), yaze::editor::ObjectTileEditorPanel::Close(), current_entrance_id_, current_palette_, current_palette_group_, current_palette_group_id_, current_palette_id_, current_room_id_, yaze::editor::Editor::dependencies_, dungeon_editor_system_, yaze::gfx::PaletteGroupMap::dungeon_main, yaze::gfx::PaletteGroup::empty(), entrances_, yaze::editor::DungeonRoomStore::ForEachMaterialized(), game_data_, yaze::editor::DungeonRoomStore::GetIfMaterialized(), has_pending_undo_, yaze::gui::PaletteEditorWidget::Initialize(), InvalidateDungeonRenderContextCensus(), yaze::editor::DungeonObjectSelector::InvalidatePreviewCache(), yaze::Rom::is_loaded(), is_loaded_, yaze::zelda3::Room::IsLoaded(), IsValidRoomId(), IsWorkbenchWorkflowEnabled(), yaze::editor::DungeonRoomLoader::LoadDungeonSpawnPoints(), yaze::editor::DungeonRoomLoader::LoadRoom(), yaze::editor::DungeonRoomLoader::LoadRoomEntrances(), yaze::zelda3::LoadRoomHeaderFromRom(), minecart_track_editor_panel_, object_coverage_panel_, yaze::editor::ObjectSelectorContent::object_selector(), object_selector_panel_, object_tile_editor_panel_, palette_editor_, yaze::zelda3::GameData::palette_groups, pending_collision_undo_, pending_entity_undo_, pending_selection_undo_, pending_standalone_tool_window_, pending_swap_, pending_undo_, pending_water_fill_undo_, pending_workflow_mode_, yaze::editor::EditorDependencies::project, yaze::editor::DungeonCanvasViewer::RefreshRomBackedState(), RefreshViewerRuntimeContext(), ReloadWaterFillZones(), RETURN_IF_ERROR, rom_, room_graphics_panel_, room_loader_, room_selector_, room_tag_editor_panel_, room_viewers_, rooms_, save_transaction_snapshot_, selection_clipboard_, yaze::editor::DungeonRoomSelector::set_current_entrance_id(), yaze::editor::DungeonRoomSelector::set_entrances(), yaze::editor::DungeonRoomSelector::set_rooms(), yaze::editor::DungeonRoomSelector::set_spawn_points(), yaze::editor::ObjectSelectorContent::SetContext(), yaze::editor::ObjectSelectorContent::SetCurrentPaletteGroup(), yaze::editor::ObjectTileEditorPanel::SetCurrentPaletteGroup(), yaze::editor::RoomGraphicsContent::SetCurrentPaletteGroup(), yaze::gui::PaletteEditorWidget::SetCurrentPaletteId(), yaze::editor::ObjectSelectorContent::SetCurrentRoom(), yaze::gui::PaletteEditorWidget::SetDungeonRenderPaletteMode(), yaze::zelda3::Room::SetGameData(), yaze::editor::DungeonRoomLoader::SetGameData(), yaze::editor::DungeonRoomStore::SetGameData(), yaze::editor::ObjectCoveragePanel::SetProject(), yaze::editor::DungeonRoomLoader::SetRom(), yaze::editor::DungeonRoomSelector::SetRom(), yaze::editor::DungeonRoomStore::SetRom(), yaze::editor::DungeonWorkbenchContent::SetRom(), yaze::editor::ObjectSelectorContent::SetRooms(), yaze::editor::MinecartTrackEditorPanel::SetRooms(), yaze::editor::ObjectCoveragePanel::SetRooms(), yaze::editor::RoomTagEditorPanel::SetRooms(), yaze::gfx::PaletteGroup::size(), spawn_points_, SyncPanelsToRoom(), yaze::editor::Editor::undo_manager_, undo_restore_triggered_ping_, workbench_compare_viewer_, workbench_panel_, and workbench_viewer_.

◆ rom()

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

Definition at line 254 of file dungeon_editor_v2.h.

References rom_.

Referenced by ApplyRoomTransfer(), DungeonEditorV2(), and SetRom().

◆ add_room()

void yaze::editor::DungeonEditorV2::add_room ( int room_id)

Definition at line 2290 of file dungeon_editor_v2.cc.

References OnRoomSelected().

Referenced by yaze::test::DungeonEditorTestSuite::RunObjectManipulationTest(), and yaze::test::DungeonEditorTestSuite::RunRoomSaveTest().

Here is the call graph for this function:

◆ FocusRoom()

void yaze::editor::DungeonEditorV2::FocusRoom ( int room_id)

Definition at line 2294 of file dungeon_editor_v2.cc.

References room_cards_.

Referenced by OnRoomSelected().

◆ SelectObject()

void yaze::editor::DungeonEditorV2::SelectObject ( int obj_id)

◆ SetAgentMode()

◆ CanHandleDungeonNavigationShortcut()

bool yaze::editor::DungeonEditorV2::CanHandleDungeonNavigationShortcut ( ) const

◆ NavigateToAdjacentRoom()

bool yaze::editor::DungeonEditorV2::NavigateToAdjacentRoom ( DungeonRoomNavigationDirection direction)

◆ CycleRoomSelection()

bool yaze::editor::DungeonEditorV2::CycleRoomSelection ( int direction)

Definition at line 1567 of file dungeon_editor_v2.cc.

References active_rooms_, current_room_id_, IsWorkbenchWorkflowEnabled(), OnRoomSelected(), and recent_rooms_.

Here is the call graph for this function:

◆ CycleObjectSelection()

bool yaze::editor::DungeonEditorV2::CycleObjectSelection ( int direction)

◆ IsRomLoaded()

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

Reimplemented from yaze::editor::Editor.

Definition at line 270 of file dungeon_editor_v2.h.

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

Here is the call graph for this function:

◆ GetRomStatus()

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

Reimplemented from yaze::editor::Editor.

Definition at line 271 of file dungeon_editor_v2.h.

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

Here is the call graph for this function:

◆ OpenWindow()

void yaze::editor::DungeonEditorV2::OpenWindow ( const std::string & window_id)
inline

◆ EnsureMinecartTrackEditorPanel()

◆ SetWorkbenchWorkflowMode()

◆ QueueWorkbenchWorkflowMode()

◆ ToggleWorkbenchWorkflowMode()

void yaze::editor::DungeonEditorV2::ToggleWorkbenchWorkflowMode ( bool show_toast = true)

Definition at line 1791 of file dungeon_editor_v2.cc.

References IsWorkbenchWorkflowEnabled(), and QueueWorkbenchWorkflowMode().

Referenced by ContributeStatus().

Here is the call graph for this function:

◆ IsWorkbenchWorkflowEnabled()

◆ QueueRoomCanvasDeleteShortcut()

void yaze::editor::DungeonEditorV2::QueueRoomCanvasDeleteShortcut ( )

Definition at line 2021 of file dungeon_editor_v2.cc.

References room_canvas_delete_shortcut_frame_.

◆ current_room_id()

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

Definition at line 316 of file dungeon_editor_v2.h.

References yaze::editor::DungeonRoomSelector::current_room_id(), and room_selector_.

Referenced by ContributeStatus(), and FinalizeEntityUndoAction().

Here is the call graph for this function:

◆ mutable_current_room_id()

int * yaze::editor::DungeonEditorV2::mutable_current_room_id ( )
inline

Definition at line 317 of file dungeon_editor_v2.h.

References current_room_id_.

◆ active_rooms()

const ImVector< int > & yaze::editor::DungeonEditorV2::active_rooms ( ) const
inline

Definition at line 318 of file dungeon_editor_v2.h.

References yaze::editor::DungeonRoomSelector::active_rooms(), and room_selector_.

Here is the call graph for this function:

◆ rooms() [1/2]

DungeonRoomStore & yaze::editor::DungeonEditorV2::rooms ( )
inline

◆ rooms() [2/2]

const DungeonRoomStore & yaze::editor::DungeonEditorV2::rooms ( ) const
inline

Definition at line 322 of file dungeon_editor_v2.h.

References rooms_.

◆ renderer()

gfx::IRenderer * yaze::editor::DungeonEditorV2::renderer ( ) const
inline

Definition at line 323 of file dungeon_editor_v2.h.

References renderer_.

◆ object_selector_panel()

ObjectSelectorContent * yaze::editor::DungeonEditorV2::object_selector_panel ( ) const
inline

Definition at line 324 of file dungeon_editor_v2.h.

References object_selector_panel_.

◆ object_editor_panel()

ObjectSelectorContent * yaze::editor::DungeonEditorV2::object_editor_panel ( ) const
inline

Definition at line 327 of file dungeon_editor_v2.h.

References object_selector_panel_.

◆ door_editor_panel()

DoorEditorContent * yaze::editor::DungeonEditorV2::door_editor_panel ( ) const
inline

Definition at line 330 of file dungeon_editor_v2.h.

References door_editor_panel_.

◆ GetRecentRooms()

const std::deque< int > & yaze::editor::DungeonEditorV2::GetRecentRooms ( ) const
inline

Get the list of recently visited room IDs.

Returns
Deque of room IDs, most recent first (max 10 entries)

Definition at line 336 of file dungeon_editor_v2.h.

References recent_rooms_.

◆ DrawRoomPanels()

◆ DrawRoomTab()

◆ ProcessDeferredTextures()

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

Definition at line 2331 of file dungeon_editor_v2.cc.

References yaze::gfx::Arena::Get(), yaze::gfx::Arena::ProcessTextureQueue(), and renderer_.

Here is the call graph for this function:

◆ ReloadWaterFillZones()

◆ OnRoomSelected() [1/2]

void yaze::editor::DungeonEditorV2::OnRoomSelected ( int room_id,
bool request_focus = true )
private

Definition at line 2078 of file dungeon_editor_v2.cc.

References active_rooms_, ApplyEntranceRenderContext(), automatic_entrance_preview_, yaze::zelda3::BuildDungeonRenderPaletteGroupFromGameData(), ConfigureViewerRenderContext(), yaze::editor::Editor::context(), current_entrance_id_, current_palette_, current_palette_group_, current_palette_group_id_, current_palette_id_, current_room_id_, yaze::editor::Editor::dependencies_, dungeon_editor_system_, yaze::gfx::PaletteGroupMap::dungeon_main, FocusRoom(), yaze::editor::Editor::game_data(), yaze::zelda3::GetRoomLabel(), GetViewerForRoom(), ICON_MD_GRID_ON, yaze::editor::WorkspaceWindowManager::IsWindowOpen(), IsWorkbenchWorkflowEnabled(), kMaxRecentRooms, yaze::editor::DungeonRoomLoader::LoadRoom(), LOG_WARN, yaze::editor::DungeonWorkbenchContent::NotifyRoomChanged(), object_selector_panel_, object_tile_editor_panel_, yaze::editor::WorkspaceWindowManager::OpenWindow(), yaze::editor::WindowPresentationPolicy::OptionalPopOut(), palette_editor_, yaze::zelda3::GameData::palette_groups, recent_rooms_, yaze::editor::WorkspaceWindowManager::RegisterWindow(), ResolveDungeonRenderContextForRoom(), room_graphics_panel_, room_loader_, room_selector_, rooms_, yaze::editor::DungeonRoomSelector::set_active_rooms(), yaze::editor::DungeonRoomSelector::set_current_entrance_id(), yaze::editor::DungeonRoomSelector::set_current_room_id(), yaze::editor::ObjectSelectorContent::SetCurrentPaletteGroup(), yaze::editor::RoomGraphicsContent::SetCurrentPaletteGroup(), yaze::editor::ObjectTileEditorPanel::SetCurrentPaletteGroupForRoom(), yaze::gui::PaletteEditorWidget::SetCurrentPaletteId(), yaze::editor::DungeonRoomStore::size(), SyncPanelsToRoom(), yaze::editor::EditorDependencies::window_manager, and workbench_panel_.

Referenced by add_room(), ConfigureViewerUndoHooks(), CycleRoomSelection(), DrawRoomPanels(), EnsureMinecartTrackEditorPanel(), Initialize(), Load(), NavigateToAdjacentRoom(), NavigateToPlacedObject(), OnEntranceSelected(), OnRoomSelected(), OpenGraphicsEditorForObject(), ProcessPendingSwap(), and SetGraphicsPreviewEntrance().

◆ OnRoomSelected() [2/2]

◆ NavigateToPlacedObject()

void yaze::editor::DungeonEditorV2::NavigateToPlacedObject ( int room_id,
size_t object_index,
int object_id )
private

◆ CreateObjectCoveragePanel()

std::unique_ptr< ObjectCoveragePanel > yaze::editor::DungeonEditorV2::CreateObjectCoveragePanel ( )
private

Definition at line 14 of file dungeon_editor_v2_object_coverage.cc.

References yaze::editor::Editor::dependencies_, NavigateToPlacedObject(), yaze::editor::EditorDependencies::project, and rooms_.

Referenced by Load().

Here is the call graph for this function:

◆ FocusObjectCoverage()

void yaze::editor::DungeonEditorV2::FocusObjectCoverage ( int room_id,
const zelda3::RoomObject & object )
private

◆ OnEntranceSelected()

◆ SetGraphicsPreviewEntrance()

void yaze::editor::DungeonEditorV2::SetGraphicsPreviewEntrance ( int entrance_id)
private

Definition at line 2230 of file dungeon_editor_v2.cc.

References automatic_entrance_preview_, current_entrance_id_, current_room_id_, entrances_, OnRoomSelected(), and RefreshEntranceCameraOverlays().

Referenced by Initialize().

Here is the call graph for this function:

◆ ResolveEntranceRoomId()

int yaze::editor::DungeonEditorV2::ResolveEntranceRoomId ( int entrance_id) const
private

◆ SyncPanelsToRoom()

◆ HandleDungeonPaletteChanged()

void yaze::editor::DungeonEditorV2::HandleDungeonPaletteChanged ( gui::DungeonPaletteChange change)
private

◆ HandleArenaPaletteChanged()

void yaze::editor::DungeonEditorV2::HandleArenaPaletteChanged ( const std::string & group_name,
int palette_index )
private

◆ RegisterPaletteListener()

void yaze::editor::DungeonEditorV2::RegisterPaletteListener ( )
private

Definition at line 1301 of file dungeon_editor_v2.cc.

References yaze::gfx::Arena::Get(), HandleArenaPaletteChanged(), palette_listener_id_, and yaze::gfx::Arena::RegisterPaletteListener().

Referenced by Load().

Here is the call graph for this function:

◆ InvalidateDungeonPaletteUsers()

◆ ResolveDungeonRenderContextForRoom()

◆ ResolveSelectedEntranceBlocksetForRoom()

uint8_t yaze::editor::DungeonEditorV2::ResolveSelectedEntranceBlocksetForRoom ( int room_id) const
private

Definition at line 2251 of file dungeon_editor_v2.cc.

References yaze::editor::Editor::context(), and ResolveDungeonRenderContextForRoom().

Referenced by ApplyEntranceRenderContext(), and ConfigureViewerRenderContext().

Here is the call graph for this function:

◆ BuildDungeonRenderEntranceCandidates()

std::vector< DungeonRenderEntranceCandidate > yaze::editor::DungeonEditorV2::BuildDungeonRenderEntranceCandidates ( ) const
private

◆ GetDungeonRenderContextCensus()

◆ InvalidateDungeonRenderContextCensus()

◆ ApplyEntranceRenderContext()

void yaze::editor::DungeonEditorV2::ApplyEntranceRenderContext ( int room_id)
private

◆ ConfigureViewerRenderContext()

◆ GetEntranceCameraState()

◆ RepairEntranceCamera()

◆ RestoreEntranceCameraState()

◆ RefreshEntranceCameraOverlays()

void yaze::editor::DungeonEditorV2::RefreshEntranceCameraOverlays ( )
private

◆ ConfigureEntrancePropertyEditCallbacks()

◆ RecordEntrancePropertyEdit()

void yaze::editor::DungeonEditorV2::RecordEntrancePropertyEdit ( int slot_index,
const zelda3::RoomEntrance & before,
const zelda3::RoomEntrance & after,
std::shared_ptr< const int > gesture )
private

◆ RecordSpawnPropertyEdit()

void yaze::editor::DungeonEditorV2::RecordSpawnPropertyEdit ( int slot_index,
const zelda3::DungeonSpawnPoint & before,
const zelda3::DungeonSpawnPoint & after,
std::shared_ptr< const int > gesture )
private

◆ RestoreEntranceProperties()

absl::Status yaze::editor::DungeonEditorV2::RestoreEntranceProperties ( int slot_index,
const zelda3::RoomEntrance & entrance )
private

◆ RestoreSpawnProperties()

absl::Status yaze::editor::DungeonEditorV2::RestoreSpawnProperties ( int slot_index,
const zelda3::DungeonSpawnPoint & spawn )
private

◆ RefreshEntranceDirtyState()

◆ WireViewerPanelCallbacks()

void yaze::editor::DungeonEditorV2::WireViewerPanelCallbacks ( DungeonCanvasViewer * viewer)
private

Definition at line 2755 of file dungeon_editor_v2.cc.

References yaze::editor::Editor::dependencies_, yaze::editor::DungeonWorkbenchContent::FocusEntranceBrowser(), FocusObjectCoverage(), yaze::editor::DungeonWorkbenchContent::FocusRoomInspector(), yaze::editor::DungeonWorkbenchContent::FocusRoomMatrix(), IsWorkbenchWorkflowEnabled(), yaze::editor::kError, kObjectSelectorId, kRoomGraphicsId, kRoomMatrixId, kRoomSelectorId, yaze::editor::kSuccess, LOG_ERROR, yaze::editor::DungeonWorkbenchContent::OpenDoorTool(), OpenGraphicsEditorForObject(), yaze::editor::DungeonWorkbenchContent::OpenItemTool(), yaze::editor::DungeonWorkbenchContent::OpenObjectSelectorTool(), OpenObjectTileEditorForObject(), yaze::editor::DungeonWorkbenchContent::OpenRoomGraphicsTool(), yaze::editor::DungeonWorkbenchContent::OpenSpriteTool(), OpenWindow(), SaveRoom(), yaze::editor::DungeonCanvasViewer::SetCheckObjectCoverageCallback(), yaze::editor::DungeonCanvasViewer::SetEditGraphicsCallback(), yaze::editor::DungeonCanvasViewer::SetEditObjectTilesCallback(), yaze::editor::DungeonCanvasViewer::SetSaveRoomCallback(), yaze::editor::DungeonCanvasViewer::SetShowDoorEditorCallback(), yaze::editor::DungeonCanvasViewer::SetShowDungeonSettingsCallback(), yaze::editor::DungeonCanvasViewer::SetShowEntranceListCallback(), yaze::editor::DungeonCanvasViewer::SetShowItemPanelCallback(), yaze::editor::DungeonCanvasViewer::SetShowObjectPanelCallback(), yaze::editor::DungeonCanvasViewer::SetShowRoomGraphicsCallback(), yaze::editor::DungeonCanvasViewer::SetShowRoomListCallback(), yaze::editor::DungeonCanvasViewer::SetShowRoomMatrixCallback(), yaze::editor::DungeonCanvasViewer::SetShowSpritePanelCallback(), yaze::editor::ToastManager::Show(), yaze::editor::EditorDependencies::toast_manager, and workbench_panel_.

◆ ConfigureMinecartProjectCallbacks()

◆ ApplyMinecartTrackEdit()

◆ SynchronizeCustomObjectAssets()

◆ ShowRoomPanel()

void yaze::editor::DungeonEditorV2::ShowRoomPanel ( int room_id)
private

Definition at line 3104 of file dungeon_editor_v2.cc.

References yaze::zelda3::GetRoomLabel(), ICON_MD_GRID_ON, and yaze::gui::MakePanelTitle().

Referenced by DrawRoomPanels(), OnRoomSelected(), and SetWorkbenchWorkflowMode().

Here is the call graph for this function:

◆ SaveAllRooms()

void yaze::editor::DungeonEditorV2::SaveAllRooms ( )
private

Definition at line 1289 of file dungeon_editor_v2_persistence.cc.

References LOG_ERROR.

Referenced by Initialize().

◆ HandleObjectPlaced()

◆ OpenGraphicsEditorForObject()

◆ OpenObjectTileEditorForObject()

◆ GetViewerForRoom()

◆ GetStandaloneViewerForRoom()

DungeonCanvasViewer * yaze::editor::DungeonEditorV2::GetStandaloneViewerForRoom ( int room_id)
private

◆ GetWorkbenchViewer()

DungeonCanvasViewer * yaze::editor::DungeonEditorV2::GetWorkbenchViewer ( )
private

Definition at line 2987 of file dungeon_editor_v2.cc.

Referenced by GetViewerForRoom(), and Initialize().

◆ GetWorkbenchCompareViewer()

DungeonCanvasViewer * yaze::editor::DungeonEditorV2::GetWorkbenchCompareViewer ( int room_id)
private

Definition at line 3012 of file dungeon_editor_v2.cc.

Referenced by Initialize().

◆ RefreshViewerRuntimeContext()

◆ ConfigureEditableViewer()

void yaze::editor::DungeonEditorV2::ConfigureEditableViewer ( DungeonCanvasViewer * viewer)
private

◆ ConsumeRoomCanvasDeleteShortcut()

bool yaze::editor::DungeonEditorV2::ConsumeRoomCanvasDeleteShortcut ( DungeonCanvasViewer & viewer)
private

◆ ExpireStaleRoomCanvasDeleteShortcut()

void yaze::editor::DungeonEditorV2::ExpireStaleRoomCanvasDeleteShortcut ( )
private

Definition at line 2029 of file dungeon_editor_v2.cc.

References room_canvas_delete_shortcut_frame_.

Referenced by ConsumeRoomCanvasDeleteShortcut(), and Update().

◆ TouchViewerLru()

void yaze::editor::DungeonEditorV2::TouchViewerLru ( int room_id)
private

Definition at line 2746 of file dungeon_editor_v2.cc.

References room_viewers_.

◆ RemoveViewerFromLru()

void yaze::editor::DungeonEditorV2::RemoveViewerFromLru ( int room_id)
private

Definition at line 2750 of file dungeon_editor_v2.cc.

◆ SaveRoomData()

◆ SaveRoomImpl()

◆ RunWithSaveTransaction()

absl::Status yaze::editor::DungeonEditorV2::RunWithSaveTransaction ( const std::function< absl::Status()> & operation)
private

◆ HasPendingUndoSnapshot()

◆ BeginUndoSnapshot()

◆ FinalizeUndoAction()

◆ RestoreRoomObjects()

absl::Status yaze::editor::DungeonEditorV2::RestoreRoomObjects ( int room_id,
const std::vector< zelda3::RoomObject > & objects,
const std::vector< size_t > & selected_indices,
const std::vector< chest_data > & chests )
private

◆ PreflightObjectMutation()

◆ PreflightStreamMutation()

◆ PreflightSpriteMutation()

absl::Status yaze::editor::DungeonEditorV2::PreflightSpriteMutation ( int room_id,
const std::vector< zelda3::Sprite > & sprites )
private

◆ PreflightPotItemPlacement()

◆ PlanPendingRoomStreamRanges()

absl::StatusOr< std::vector< std::pair< uint32_t, uint32_t > > > yaze::editor::DungeonEditorV2::PlanPendingRoomStreamRanges ( const std::vector< DungeonSelectionEditPlan > & candidates) const
private

Definition at line 126 of file dungeon_editor_v2_selection_edits.cc.

References yaze::editor::ApplyDungeonSelectionEditState(), ASSIGN_OR_RETURN, yaze::editor::CaptureDungeonSelectionEditState(), yaze::zelda3::Room::CaptureMetadataSnapshot(), yaze::zelda3::Room::CaptureSaveDirtySnapshot(), yaze::editor::Editor::dependencies_, yaze::core::FeatureFlags::Flags::dungeon, yaze::editor::DungeonRoomStore::ForEachLoaded(), yaze::core::FeatureFlags::get(), yaze::core::HackManifest::GetDungeonStreamLayout(), yaze::editor::DungeonRoomStore::GetIfLoaded(), yaze::zelda3::Room::GetObjectSaveWriteRanges(), yaze::zelda3::Room::GetObjectStreamHeaderSaveWriteRanges(), yaze::zelda3::Room::GetSpriteSaveWriteRanges(), yaze::project::YazeProject::hack_manifest, yaze::Rom::is_loaded(), yaze::core::kCopyOnWrite, yaze::core::kObjects, yaze::core::FeatureFlags::Flags::Dungeon::kSaveObjects, yaze::editor::kSelectionDoors, yaze::editor::kSelectionObjects, yaze::editor::kSelectionSprites, yaze::core::kSprites, yaze::core::HackManifest::loaded(), yaze::zelda3::Room::object_stream_dirty(), yaze::zelda3::Room::object_stream_header_dirty(), yaze::editor::EditorDependencies::project, yaze::editor::Editor::project(), yaze::zelda3::Room::RestoreMetadataSnapshot(), yaze::zelda3::Room::RestoreSaveDirtySnapshot(), RETURN_IF_ERROR, rom_, rooms_, yaze::zelda3::Room::SaveObjects(), yaze::zelda3::Room::SaveObjectStreamHeader(), yaze::zelda3::Room::SaveSprites(), yaze::zelda3::Room::sprites_dirty(), yaze::core::ToDungeonStreamAllocatorLayout(), and yaze::editor::Editor::type().

Referenced by ApplyDoorConnection(), CollectWriteRanges(), PreflightStreamMutation(), and Save().

◆ PreflightDoorMutation()

absl::Status yaze::editor::DungeonEditorV2::PreflightDoorMutation ( int room_id,
const std::vector< zelda3::Room::Door > & doors )
private

◆ ApplyChestObjectEdit()

absl::Status yaze::editor::DungeonEditorV2::ApplyChestObjectEdit ( int room_id,
const std::vector< zelda3::RoomObject > & objects,
const std::vector< chest_data > & chests,
const std::vector< size_t > & selection )
private

◆ CommitSelectionEdit()

absl::Status yaze::editor::DungeonEditorV2::CommitSelectionEdit ( const DungeonSelectionEditPlan & plan,
bool continuous )
private

◆ FinalizeSelectionUndoAction()

void yaze::editor::DungeonEditorV2::FinalizeSelectionUndoAction ( )
private

◆ RestoreSelectionEditBatch()

absl::Status yaze::editor::DungeonEditorV2::RestoreSelectionEditBatch ( const std::vector< DungeonSelectionEditPlan > & plans,
bool after )
private

◆ EnsureConnectionRoomLoaded()

absl::Status yaze::editor::DungeonEditorV2::EnsureConnectionRoomLoaded ( int room_id)
private

◆ EnsureRoomTransferLoaded()

◆ PreflightRoomTransfer()

◆ RestoreRoomTransfer()

◆ RefreshSelectionEditViews()

◆ PushSelectionUndoAction()

◆ PushSelectionUndoBatch()

void yaze::editor::DungeonEditorV2::PushSelectionUndoBatch ( std::vector< DungeonSelectionEditPlan > plans,
std::string description )
private

◆ ConfigureViewerUndoHooks()

void yaze::editor::DungeonEditorV2::ConfigureViewerUndoHooks ( DungeonCanvasViewer * viewer)
private

Definition at line 298 of file dungeon_editor_v2_undo.cc.

References ApplyDoorConnection(), ApplyRoomTransfer(), BeginCollisionUndoSnapshot(), BeginEntityUndoSnapshot(), BeginUndoSnapshot(), BeginWaterFillUndoSnapshot(), CommitSelectionEdit(), yaze::editor::BaseEntityHandler::context(), yaze::editor::InteractionContext::current_room_id, DeleteChest(), yaze::editor::Editor::dependencies_, yaze::editor::InteractionCoordinator::door_handler(), yaze::editor::DraggingObjects, EditChest(), EditRoomMetadata(), EditRoomMetadataBatch(), yaze::editor::DungeonObjectInteraction::entity_coordinator(), ExportRoomDocument(), FinalizeCollisionUndoAction(), FinalizeEntityUndoAction(), FinalizePendingUndoActions(), FinalizeSelectionUndoAction(), FinalizeUndoAction(), FinalizeWaterFillUndoAction(), yaze::zelda3::Room::GetDoors(), yaze::editor::DungeonRoomStore::GetIfLoaded(), GetViewerForRoom(), yaze::Rom::is_loaded(), IsValidRoomId(), yaze::editor::InteractionCoordinator::item_handler(), yaze::editor::kCustomCollision, yaze::editor::kTileObjects, yaze::editor::kWarning, yaze::editor::kWaterFill, yaze::editor::DungeonObjectInteraction::last_invalidation_domain(), yaze::editor::DungeonCanvasViewer::object_interaction(), OnRoomSelected(), yaze::editor::PaintCollision, yaze::editor::PaintWaterFill, PreflightDoorMutation(), PreflightObjectMutation(), PreflightPotItemPlacement(), PreflightSpriteMutation(), PreviewDoorConnection(), PreviewRoomTransfer(), rom_, rooms_, selection_clipboard_, yaze::editor::TileObjectHandler::SetBeforeObjectCommandCallback(), yaze::editor::DungeonObjectInteraction::SetCacheInvalidationCallback(), yaze::editor::DungeonCanvasViewer::SetChestDeleteCallback(), yaze::editor::DungeonCanvasViewer::SetChestEditCallback(), yaze::editor::DungeonCanvasViewer::SetDoorConnectionCallbacks(), yaze::editor::DungeonCanvasViewer::SetDoorConnectionNavigationCallback(), yaze::editor::DoorInteractionHandler::SetDoorMutationPreflight(), yaze::editor::ItemInteractionHandler::SetItemPlacementPreflight(), yaze::editor::DungeonCanvasViewer::SetMetadataBatchEditCallback(), yaze::editor::DungeonCanvasViewer::SetMetadataEditCallback(), yaze::editor::DungeonObjectInteraction::SetMutationCallback(), yaze::editor::TileObjectHandler::SetMutationErrorCallback(), yaze::editor::TileObjectHandler::SetObjectMutationPreflight(), yaze::editor::DungeonCanvasViewer::SetRoomTransferCallbacks(), yaze::editor::DungeonObjectInteraction::SetSelectionEditCallbacks(), yaze::editor::DungeonObjectInteraction::SetSharedSelectionClipboard(), yaze::editor::SpriteInteractionHandler::SetSpriteMutationPreflight(), yaze::editor::ToastManager::Show(), yaze::Rom::size(), yaze::editor::InteractionCoordinator::sprite_handler(), yaze::editor::InteractionCoordinator::tile_handler(), and yaze::editor::EditorDependencies::toast_manager.

◆ FinalizePendingUndoActions()

◆ RestoreRoomMetadataBatch()

absl::Status yaze::editor::DungeonEditorV2::RestoreRoomMetadataBatch ( const std::vector< std::pair< int, zelda3::Room::MetadataSnapshot > > & states)
private

◆ RestoreChest()

absl::Status yaze::editor::DungeonEditorV2::RestoreChest ( int room_id,
size_t index,
chest_data chest )
private

Definition at line 274 of file dungeon_editor_v2_chest_edits.cc.

References yaze::editor::DungeonRoomStore::GetIfLoaded(), rom_, rooms_, yaze::Rom::size(), and undo_restore_triggered_ping_.

Referenced by EditChest().

Here is the call graph for this function:

◆ RefreshRoomMetadataViews()

void yaze::editor::DungeonEditorV2::RefreshRoomMetadataViews ( int room_id)
private

◆ CaptureRoomEntities()

◆ BeginEntityUndoSnapshot()

void yaze::editor::DungeonEditorV2::BeginEntityUndoSnapshot ( int room_id,
MutationDomain domain )
private

Definition at line 524 of file dungeon_editor_v2_undo.cc.

References CaptureRoomEntities(), FinalizeEntityUndoAction(), IsValidRoomId(), and pending_entity_undo_.

Referenced by ConfigureViewerUndoHooks().

Here is the call graph for this function:

◆ FinalizeEntityUndoAction()

◆ FinalizePendingEntityUndoActions()

void yaze::editor::DungeonEditorV2::FinalizePendingEntityUndoActions ( )
private

◆ RestoreRoomEntities()

◆ BeginCollisionUndoSnapshot()

void yaze::editor::DungeonEditorV2::BeginCollisionUndoSnapshot ( int room_id)
private

◆ FinalizeCollisionUndoAction()

◆ RestoreRoomCustomCollision()

void yaze::editor::DungeonEditorV2::RestoreRoomCustomCollision ( int room_id,
const zelda3::CustomCollisionMap & map )
private

◆ ApplyMinecartCollisionStamp()

◆ ApplyMinecartCollisionBatch()

◆ RestoreRoomCustomCollisionBatch()

◆ BeginWaterFillUndoSnapshot()

void yaze::editor::DungeonEditorV2::BeginWaterFillUndoSnapshot ( int room_id)
private

◆ FinalizeWaterFillUndoAction()

◆ RestoreRoomWaterFill()

void yaze::editor::DungeonEditorV2::RestoreRoomWaterFill ( int room_id,
const WaterFillSnapshot & snap )
private

◆ SwapRoomInPanel()

void yaze::editor::DungeonEditorV2::SwapRoomInPanel ( int old_room_id,
int new_room_id )
private

◆ ProcessPendingSwap()

◆ ProcessPendingWorkflowMode()

void yaze::editor::DungeonEditorV2::ProcessPendingWorkflowMode ( )
private

◆ ProcessPendingStandaloneToolWindow()

◆ GetOrCreateRoomPanelSlotId()

int yaze::editor::DungeonEditorV2::GetOrCreateRoomPanelSlotId ( int room_id)
private

Definition at line 1862 of file dungeon_editor_v2.cc.

References next_room_panel_slot_id_, and room_panel_slot_ids_.

◆ ReleaseRoomPanelSlotId()

void yaze::editor::DungeonEditorV2::ReleaseRoomPanelSlotId ( int room_id)
private

Definition at line 1872 of file dungeon_editor_v2.cc.

References room_panel_slot_ids_.

Referenced by DrawRoomPanels().

◆ IsValidRoomId()

Friends And Related Symbol Documentation

◆ DungeonCanvasViewerTestPeer

friend class DungeonCanvasViewerTestPeer
friend

Definition at line 339 of file dungeon_editor_v2.h.

◆ DungeonEditorPaletteRefreshTestPeer

friend class DungeonEditorPaletteRefreshTestPeer
friend

Definition at line 340 of file dungeon_editor_v2.h.

◆ DungeonEditorEntityUndoTestPeer

friend class DungeonEditorEntityUndoTestPeer
friend

Definition at line 341 of file dungeon_editor_v2.h.

◆ DungeonRoomEditsTestPeer

friend class DungeonRoomEditsTestPeer
friend

Definition at line 342 of file dungeon_editor_v2.h.

◆ DungeonSelectionEditsTestPeer

friend class DungeonSelectionEditsTestPeer
friend

Definition at line 343 of file dungeon_editor_v2.h.

◆ DungeonPotPlacementTestPeer

friend class DungeonPotPlacementTestPeer
friend

Definition at line 344 of file dungeon_editor_v2.h.

◆ DungeonConnectionEditsTestPeer

friend class DungeonConnectionEditsTestPeer
friend

Definition at line 345 of file dungeon_editor_v2.h.

◆ DungeonRoomTransferTestPeer

friend class DungeonRoomTransferTestPeer
friend

Definition at line 346 of file dungeon_editor_v2.h.

◆ DungeonEditorV2MinecartTrackTestPeer

friend class DungeonEditorV2MinecartTrackTestPeer
friend

Definition at line 347 of file dungeon_editor_v2.h.

◆ DungeonEditorV2ObjectTileEditorTestPeer

friend class DungeonEditorV2ObjectTileEditorTestPeer
friend

Definition at line 348 of file dungeon_editor_v2.h.

◆ DungeonEditorV2EntranceCameraTestPeer

friend class DungeonEditorV2EntranceCameraTestPeer
friend

Definition at line 349 of file dungeon_editor_v2.h.

◆ DungeonEditorEntrancePropertiesTestPeer

friend class DungeonEditorEntrancePropertiesTestPeer
friend

Definition at line 350 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RegularEntranceTestPeer

friend class DungeonEditorV2RegularEntranceTestPeer
friend

Definition at line 351 of file dungeon_editor_v2.h.

◆ DungeonEditorV2ReloadTestPeer

friend class DungeonEditorV2ReloadTestPeer
friend

Definition at line 352 of file dungeon_editor_v2.h.

◆ AuthoringSaveWorkflowTestPeer

friend class AuthoringSaveWorkflowTestPeer
friend

Definition at line 353 of file dungeon_editor_v2.h.

◆ DungeonPaletteSourceTestPeer

friend class DungeonPaletteSourceTestPeer
friend

Definition at line 354 of file dungeon_editor_v2.h.

◆ DungeonEditorV2ShortcutTestPeer

friend class DungeonEditorV2ShortcutTestPeer
friend

Definition at line 355 of file dungeon_editor_v2.h.

◆ DungeonEditorV2SpawnPointTestPeer

friend class DungeonEditorV2SpawnPointTestPeer
friend

Definition at line 356 of file dungeon_editor_v2.h.

◆ DungeonEditorV2SpawnRejectionTestPeer

friend class DungeonEditorV2SpawnRejectionTestPeer
friend

Definition at line 357 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_UndoSnapshotLeakDetection_Test

friend class DungeonEditorV2RomSafetyTest_UndoSnapshotLeakDetection_Test
friend

Definition at line 358 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_ObjectStreamUndoRedoRestoresSelectionIdentity_Test

friend class DungeonEditorV2RomSafetyTest_ObjectStreamUndoRedoRestoresSelectionIdentity_Test
friend

Definition at line 360 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_ViewerCacheLRUEviction_Test

friend class DungeonEditorV2RomSafetyTest_ViewerCacheLRUEviction_Test
friend

Definition at line 361 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_ViewerCacheNeverEvictsActiveRooms_Test

friend class DungeonEditorV2RomSafetyTest_ViewerCacheNeverEvictsActiveRooms_Test
friend

Definition at line 363 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_ViewerCacheLRUAccessOrderUpdate_Test

friend class DungeonEditorV2RomSafetyTest_ViewerCacheLRUAccessOrderUpdate_Test
friend

Definition at line 365 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_SaveAllRoomsRollsBackEarlierWritesOnLateFailure_Test

friend class DungeonEditorV2RomSafetyTest_SaveAllRoomsRollsBackEarlierWritesOnLateFailure_Test
friend

Definition at line 367 of file dungeon_editor_v2.h.

◆ DungeonEditorV2RomSafetyTest_LateCoordinatorRollbackRestoresEntranceDirtyState_Test

friend class DungeonEditorV2RomSafetyTest_LateCoordinatorRollbackRestoresEntranceDirtyState_Test
friend

Definition at line 369 of file dungeon_editor_v2.h.

◆ DungeonEditorPaletteRefreshTest_SharedHudEditRefreshesRoomUsingDifferentDungeonPalette_Test

friend class DungeonEditorPaletteRefreshTest_SharedHudEditRefreshesRoomUsingDifferentDungeonPalette_Test
friend

Definition at line 371 of file dungeon_editor_v2.h.

◆ DungeonEditorPaletteRefreshTest_DungeonMainEditRefreshesResolvedAliasesOnly_Test

friend class DungeonEditorPaletteRefreshTest_DungeonMainEditRefreshesResolvedAliasesOnly_Test
friend

Definition at line 373 of file dungeon_editor_v2.h.

◆ DungeonEditorPaletteRefreshTest_CachedRoomRefreshesThroughViewerCompositePreparation_Test

friend class DungeonEditorPaletteRefreshTest_CachedRoomRefreshesThroughViewerCompositePreparation_Test
friend

Definition at line 375 of file dungeon_editor_v2.h.

◆ DungeonEditorPaletteRefreshTest_CompareViewerScopesEntranceContextToRequestedRoom_Test

friend class DungeonEditorPaletteRefreshTest_CompareViewerScopesEntranceContextToRequestedRoom_Test
friend

Definition at line 377 of file dungeon_editor_v2.h.

Member Data Documentation

◆ kRoomSelectorId

constexpr const char* yaze::editor::DungeonEditorV2::kRoomSelectorId = "dungeon.room_selector"
staticconstexpr

◆ kEntranceListId

constexpr const char* yaze::editor::DungeonEditorV2::kEntranceListId = "dungeon.entrance_list"
staticconstexpr

Definition at line 305 of file dungeon_editor_v2.h.

Referenced by Initialize().

◆ kRoomMatrixId

constexpr const char* yaze::editor::DungeonEditorV2::kRoomMatrixId = "dungeon.room_matrix"
staticconstexpr

◆ kRoomGraphicsId

constexpr const char* yaze::editor::DungeonEditorV2::kRoomGraphicsId = "dungeon.room_graphics"
staticconstexpr

Definition at line 307 of file dungeon_editor_v2.h.

Referenced by Initialize(), SetAgentMode(), and WireViewerPanelCallbacks().

◆ kObjectSelectorId

constexpr const char* yaze::editor::DungeonEditorV2::kObjectSelectorId = "dungeon.object_selector"
staticconstexpr

◆ kObjectToolsId

constexpr const char* yaze::editor::DungeonEditorV2::kObjectToolsId = kObjectSelectorId
staticconstexpr

Definition at line 309 of file dungeon_editor_v2.h.

◆ kDoorEditorId

constexpr const char* yaze::editor::DungeonEditorV2::kDoorEditorId = "dungeon.door_editor"
staticconstexpr

Definition at line 310 of file dungeon_editor_v2.h.

Referenced by Initialize().

◆ kPaletteEditorId

constexpr const char* yaze::editor::DungeonEditorV2::kPaletteEditorId = "dungeon.palette_editor"
staticconstexpr

Definition at line 311 of file dungeon_editor_v2.h.

Referenced by Initialize().

◆ kMinecartTrackEditorId

constexpr const char* yaze::editor::DungeonEditorV2::kMinecartTrackEditorId
staticconstexpr
Initial value:
=
"dungeon.minecart_tracks"

Definition at line 312 of file dungeon_editor_v2.h.

Referenced by BuildContextSnapshot(), and yaze::editor::EditorManager::ConfigureEditorDependencies().

◆ renderer_

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

Definition at line 379 of file dungeon_editor_v2.h.

Referenced by Initialize(), Load(), ProcessDeferredTextures(), and renderer().

◆ rom_

◆ game_data_

◆ rooms_

DungeonRoomStore yaze::editor::DungeonEditorV2::rooms_
private

Definition at line 481 of file dungeon_editor_v2.h.

Referenced by ApplyEntranceRenderContext(), ApplyMinecartCollisionBatch(), ApplyMinecartCollisionStamp(), ApplyMinecartTrackEdit(), ApplyRoomTransfer(), BeginCollisionUndoSnapshot(), BeginSaveTransaction(), BeginUndoSnapshot(), BeginWaterFillUndoSnapshot(), BuildContextSnapshot(), CaptureRoomEntities(), CollectWriteRanges(), CommitSelectionEdit(), ConfigureViewerUndoHooks(), CreateObjectCoveragePanel(), CurrentRoomHasPendingChanges(), CycleObjectSelection(), DeleteChest(), DrawRoomTab(), EditChest(), EditRoomGraphicsSheet(), EditRoomMetadataBatch(), EnsureConnectionRoomLoaded(), EnsureMinecartTrackEditorPanel(), EnsureRoomTransferLoaded(), ExportRoomDocument(), FinalizeCollisionUndoAction(), FinalizeSelectionUndoAction(), FinalizeUndoAction(), FinalizeWaterFillUndoAction(), GetRoomGraphicsUsage(), HandleDungeonPaletteChanged(), HandleObjectPlaced(), Initialize(), InvalidateDungeonPaletteUsers(), Load(), LoadedRoomCount(), NavigateToPlacedObject(), OnEntranceSelected(), OnRoomSelected(), OnRoomSelected(), OpenGraphicsEditorForObject(), OpenObjectTileEditorForObject(), PendingRoomCount(), PlanPendingRoomStreamRanges(), PreflightDoorMutation(), PreflightObjectMutation(), PreflightPotItemPlacement(), PreflightRoomTransfer(), PreflightSpriteMutation(), PreflightStreamMutation(), PreviewDoorConnection(), PreviewRoomTransfer(), RefreshRomBackedState(), RefreshRoomMetadataViews(), RefreshSelectionEditViews(), ReloadWaterFillZones(), ResolveDungeonRenderContextForRoom(), RestoreChest(), RestoreRoomCustomCollision(), RestoreRoomCustomCollisionBatch(), RestoreRoomEntities(), RestoreRoomMetadataBatch(), RestoreRoomObjects(), RestoreRoomTransfer(), RestoreRoomWaterFill(), RestoreSelectionEditBatch(), RollbackSaveTransaction(), rooms(), rooms(), Save(), SetGameData(), SetRom(), SwapRoomInPanel(), SynchronizeCustomObjectAssets(), TotalRoomCount(), ValidateSaveScope(), and VisitGraphicsUsageRooms().

◆ entrances_

◆ spawn_points_

◆ dungeon_render_context_census_

std::optional<zelda3::RoomCensus> yaze::editor::DungeonEditorV2::dungeon_render_context_census_
mutableprivate

◆ dungeon_render_context_census_pending_

std::future<absl::StatusOr<zelda3::RoomCensus> > yaze::editor::DungeonEditorV2::dungeon_render_context_census_pending_
mutableprivate

Definition at line 487 of file dungeon_editor_v2.h.

Referenced by GetDungeonRenderContextCensus().

◆ dungeon_render_context_census_stop_

util::StopSource yaze::editor::DungeonEditorV2::dungeon_render_context_census_stop_
mutableprivate
Initial value:
{
constexpr NoStopStateTag kNoStopState
Definition stop_token.h:11

Definition at line 488 of file dungeon_editor_v2.h.

Referenced by GetDungeonRenderContextCensus(), and InvalidateDungeonRenderContextCensus().

◆ dungeon_render_context_census_shutdown_

bool yaze::editor::DungeonEditorV2::dungeon_render_context_census_shutdown_ = false
private

◆ dungeon_render_context_census_attempted_

bool yaze::editor::DungeonEditorV2::dungeon_render_context_census_attempted_ = false
mutableprivate

◆ dungeon_render_context_census_generation_

uint64_t yaze::editor::DungeonEditorV2::dungeon_render_context_census_generation_ = 0
mutableprivate

◆ dungeon_render_context_pending_generation_

uint64_t yaze::editor::DungeonEditorV2::dungeon_render_context_pending_generation_ = 0
mutableprivate

Definition at line 493 of file dungeon_editor_v2.h.

Referenced by GetDungeonRenderContextCensus().

◆ dungeon_render_context_census_error_

std::string yaze::editor::DungeonEditorV2::dungeon_render_context_census_error_
mutableprivate

◆ save_transaction_snapshot_

std::optional<SaveTransactionSnapshot> yaze::editor::DungeonEditorV2::save_transaction_snapshot_
private

◆ entrance_property_save_generation_

uint64_t yaze::editor::DungeonEditorV2::entrance_property_save_generation_ = 0
private

◆ room_canvas_delete_shortcut_frame_

std::optional<int> yaze::editor::DungeonEditorV2::room_canvas_delete_shortcut_frame_
private

◆ current_entrance_id_

◆ automatic_entrance_preview_

bool yaze::editor::DungeonEditorV2::automatic_entrance_preview_ = true
private

◆ active_rooms_

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

◆ current_room_id_

◆ kMaxRecentRooms

constexpr size_t yaze::editor::DungeonEditorV2::kMaxRecentRooms = 10
staticconstexprprivate

Definition at line 519 of file dungeon_editor_v2.h.

Referenced by OnRoomSelected().

◆ recent_rooms_

std::deque<int> yaze::editor::DungeonEditorV2::recent_rooms_
private

◆ pinned_rooms_

std::vector<int> yaze::editor::DungeonEditorV2::pinned_rooms_
private

Definition at line 521 of file dungeon_editor_v2.h.

◆ workbench_panel_

◆ room_matrix_panel_

RoomMatrixContent* yaze::editor::DungeonEditorV2::room_matrix_panel_ = nullptr
private

◆ entrance_navigator_panel_

DungeonEntrancesPanel* yaze::editor::DungeonEditorV2::entrance_navigator_panel_ = nullptr
private

Definition at line 526 of file dungeon_editor_v2.h.

Referenced by CanHandleDungeonNavigationShortcut(), and Initialize().

◆ current_palette_

gfx::SnesPalette yaze::editor::DungeonEditorV2::current_palette_
private

◆ current_palette_group_

gfx::PaletteGroup yaze::editor::DungeonEditorV2::current_palette_group_
private

◆ current_palette_id_

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

◆ current_palette_group_id_

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

◆ palette_listener_id_

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

Definition at line 533 of file dungeon_editor_v2.h.

Referenced by RegisterPaletteListener(), and ~DungeonEditorV2().

◆ room_loader_

DungeonRoomLoader yaze::editor::DungeonEditorV2::room_loader_
private

◆ room_selector_

DungeonRoomSelector yaze::editor::DungeonEditorV2::room_selector_
private

◆ kMaxCachedViewers

constexpr int yaze::editor::DungeonEditorV2::kMaxCachedViewers = 20
staticconstexprprivate

Definition at line 538 of file dungeon_editor_v2.h.

◆ selection_clipboard_

DungeonSelectionClipboard yaze::editor::DungeonEditorV2::selection_clipboard_
private

Definition at line 540 of file dungeon_editor_v2.h.

Referenced by ConfigureViewerUndoHooks(), RefreshRomBackedState(), and SetRom().

◆ room_viewers_

◆ workbench_viewer_

◆ workbench_compare_viewer_

◆ palette_editor_

gui::PaletteEditorWidget yaze::editor::DungeonEditorV2::palette_editor_
private

◆ object_selector_panel_

◆ door_editor_panel_

DoorEditorContent* yaze::editor::DungeonEditorV2::door_editor_panel_ = nullptr
private

Definition at line 553 of file dungeon_editor_v2.h.

Referenced by door_editor_panel(), Load(), and PrepareForSessionTeardown().

◆ room_graphics_panel_

RoomGraphicsContent* yaze::editor::DungeonEditorV2::room_graphics_panel_ = nullptr
private

◆ room_graphics_overworld_provider_

std::function<const zelda3::Overworld*()> yaze::editor::DungeonEditorV2::room_graphics_overworld_provider_
private

Definition at line 555 of file dungeon_editor_v2.h.

Referenced by GetRoomGraphicsUsage(), and SetRoomGraphicsOverworldProvider().

◆ palette_editor_panel_

PaletteEditorContent* yaze::editor::DungeonEditorV2::palette_editor_panel_ = nullptr
private

Definition at line 556 of file dungeon_editor_v2.h.

Referenced by Load().

◆ sprite_editor_panel_

class SpriteEditorPanel* yaze::editor::DungeonEditorV2::sprite_editor_panel_ = nullptr
private

Definition at line 557 of file dungeon_editor_v2.h.

Referenced by Load(), and PrepareForSessionTeardown().

◆ item_editor_panel_

class ItemEditorPanel* yaze::editor::DungeonEditorV2::item_editor_panel_ = nullptr
private

Definition at line 558 of file dungeon_editor_v2.h.

Referenced by Load(), and PrepareForSessionTeardown().

◆ minecart_track_editor_panel_

◆ room_tag_editor_panel_

class RoomTagEditorPanel* yaze::editor::DungeonEditorV2::room_tag_editor_panel_ = nullptr
private

◆ object_coverage_panel_

class ObjectCoveragePanel* yaze::editor::DungeonEditorV2::object_coverage_panel_ = nullptr
private

◆ custom_collision_panel_

class CustomCollisionPanel* yaze::editor::DungeonEditorV2::custom_collision_panel_ = nullptr
private

◆ water_fill_panel_

class WaterFillPanel* yaze::editor::DungeonEditorV2::water_fill_panel_ = nullptr
private

◆ object_tile_editor_panel_

◆ overlay_manager_panel_

OverlayManagerPanel* yaze::editor::DungeonEditorV2::overlay_manager_panel_ = nullptr
private

Definition at line 565 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_object_selector_panel_

std::unique_ptr<ObjectSelectorContent> yaze::editor::DungeonEditorV2::owned_object_selector_panel_
private

Definition at line 568 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_door_editor_panel_

std::unique_ptr<DoorEditorContent> yaze::editor::DungeonEditorV2::owned_door_editor_panel_
private

Definition at line 569 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_room_tag_editor_panel_

std::unique_ptr<RoomTagEditorPanel> yaze::editor::DungeonEditorV2::owned_room_tag_editor_panel_
private

Definition at line 570 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_object_coverage_panel_

std::unique_ptr<ObjectCoveragePanel> yaze::editor::DungeonEditorV2::owned_object_coverage_panel_
private

Definition at line 571 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_custom_collision_panel_

std::unique_ptr<CustomCollisionPanel> yaze::editor::DungeonEditorV2::owned_custom_collision_panel_
private

Definition at line 572 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_water_fill_panel_

std::unique_ptr<WaterFillPanel> yaze::editor::DungeonEditorV2::owned_water_fill_panel_
private

Definition at line 573 of file dungeon_editor_v2.h.

Referenced by Load().

◆ owned_minecart_track_editor_panel_

std::unique_ptr<MinecartTrackEditorPanel> yaze::editor::DungeonEditorV2::owned_minecart_track_editor_panel_
private

Definition at line 574 of file dungeon_editor_v2.h.

Referenced by EnsureMinecartTrackEditorPanel().

◆ dungeon_editor_system_

std::unique_ptr<zelda3::DungeonEditorSystem> yaze::editor::DungeonEditorV2::dungeon_editor_system_
private

◆ render_service_

std::unique_ptr<emu::render::EmulatorRenderService> yaze::editor::DungeonEditorV2::render_service_
private

Definition at line 576 of file dungeon_editor_v2.h.

◆ is_loaded_

bool yaze::editor::DungeonEditorV2::is_loaded_ = false
private

Definition at line 578 of file dungeon_editor_v2.h.

Referenced by Load(), RefreshRomBackedState(), SetWorkbenchWorkflowMode(), and Update().

◆ observed_custom_object_generation_

uint64_t yaze::editor::DungeonEditorV2::observed_custom_object_generation_ = 0
private

Definition at line 579 of file dungeon_editor_v2.h.

Referenced by SynchronizeCustomObjectAssets().

◆ observed_custom_objects_enabled_

bool yaze::editor::DungeonEditorV2::observed_custom_objects_enabled_ = false
private

Definition at line 580 of file dungeon_editor_v2.h.

Referenced by SynchronizeCustomObjectAssets().

◆ room_window_class_

ImGuiWindowClass yaze::editor::DungeonEditorV2::room_window_class_
private

Definition at line 583 of file dungeon_editor_v2.h.

Referenced by DrawRoomPanels(), Initialize(), and Update().

◆ room_dock_id_

ImGuiID yaze::editor::DungeonEditorV2::room_dock_id_ = 0
private

Definition at line 586 of file dungeon_editor_v2.h.

Referenced by DrawRoomPanels().

◆ room_cards_

std::unordered_map<int, std::shared_ptr<gui::PanelWindow> > yaze::editor::DungeonEditorV2::room_cards_
private

Definition at line 589 of file dungeon_editor_v2.h.

Referenced by DrawRoomPanels(), FocusRoom(), and ProcessPendingSwap().

◆ next_room_panel_slot_id_

int yaze::editor::DungeonEditorV2::next_room_panel_slot_id_ = 1
private

Definition at line 594 of file dungeon_editor_v2.h.

Referenced by GetOrCreateRoomPanelSlotId(), and ProcessPendingSwap().

◆ room_panel_slot_ids_

std::unordered_map<int, int> yaze::editor::DungeonEditorV2::room_panel_slot_ids_
private

◆ pending_undo_

◆ has_pending_undo_

bool yaze::editor::DungeonEditorV2::has_pending_undo_ = false
private

◆ undo_restore_triggered_ping_

bool yaze::editor::DungeonEditorV2::undo_restore_triggered_ping_ = false
private

◆ pending_selection_undo_

PendingSelectionUndo yaze::editor::DungeonEditorV2::pending_selection_undo_
private

◆ pending_entity_undo_

std::array<PendingEntityUndo, 3> yaze::editor::DungeonEditorV2::pending_entity_undo_
private

◆ pending_collision_undo_

◆ pending_water_fill_undo_

◆ pending_swap_

PendingSwap yaze::editor::DungeonEditorV2::pending_swap_
private

Definition at line 657 of file dungeon_editor_v2.h.

Referenced by ProcessPendingSwap(), RefreshRomBackedState(), and SwapRoomInPanel().

◆ pending_workflow_mode_

PendingWorkflowMode yaze::editor::DungeonEditorV2::pending_workflow_mode_
private

◆ pending_standalone_tool_window_

PendingStandaloneToolWindow yaze::editor::DungeonEditorV2::pending_standalone_tool_window_
private

◆ workbench_suspended_navigation_window_ids_

std::vector<std::string> yaze::editor::DungeonEditorV2::workbench_suspended_navigation_window_ids_
private

Definition at line 680 of file dungeon_editor_v2.h.

Referenced by SetWorkbenchWorkflowMode().


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