Contains a complete set of editors for a single ROM instance. More...
#include <session_types.h>

Public Attributes | |
| std::vector< Editor * > | active_editors_ |
Private Types | |
| using | EditorFactory = std::function<std::unique_ptr<Editor>()> |
Private Member Functions | |
| Editor * | FindEditor (EditorType type) const |
| Editor * | EnsureEditorCreated (EditorType type) const |
| bool | ShouldTrackAsActiveEditor (EditorType type) const |
| void | TrackActiveEditor (Editor *editor) |
Private Attributes | |
| size_t | session_id_ = 0 |
| Rom * | rom_ = nullptr |
| zelda3::GameData * | game_data_ = nullptr |
| UserSettings * | user_settings_ = nullptr |
| EditorRegistry * | editor_registry_ = nullptr |
| std::optional< EditorDependencies > | dependencies_ |
| std::unordered_map< EditorType, std::unique_ptr< Editor > > | editors_ |
| std::unordered_map< EditorType, EditorFactory > | editor_factories_ |
| bool | session_teardown_prepared_ = false |
| std::unique_ptr< GfxGroupWorkspaceState > | gfx_group_workspace_ |
Contains a complete set of editors for a single ROM instance.
Definition at line 58 of file session_types.h.
|
private |
Definition at line 153 of file session_types.h.
|
explicit |
Definition at line 31 of file session_types.cc.
References yaze::editor::EditorRegistry::CreateEditor(), editor_factories_, editor_registry_, yaze::editor::kAssembly, yaze::editor::kDungeon, yaze::editor::kGraphics, yaze::editor::kHex, yaze::editor::kMessage, yaze::editor::kMusic, yaze::editor::kOverworld, yaze::editor::kPalette, yaze::editor::kPlanning, yaze::editor::kScreen, yaze::editor::kSettings, yaze::editor::kSprite, and rom_.

|
default |
| void yaze::editor::EditorSet::set_user_settings | ( | UserSettings * | settings | ) |
Definition at line 84 of file session_types.cc.
References GetSettingsPanel(), and user_settings_.
Referenced by yaze::editor::EditorManager::ConfigureSession().

| void yaze::editor::EditorSet::SetGameData | ( | zelda3::GameData * | game_data | ) |
Definition at line 91 of file session_types.cc.
References editors_, and game_data_.
| void yaze::editor::EditorSet::ApplyDependencies | ( | const EditorDependencies & | dependencies | ) |
Definition at line 99 of file session_types.cc.
References dependencies_, and editors_.
Referenced by yaze::editor::EditorManager::ConfigureEditorDependencies().
| void yaze::editor::EditorSet::PrepareForSessionTeardown | ( | ) |
Definition at line 106 of file session_types.cc.
References editors_, and session_teardown_prepared_.
|
inline |
Definition at line 75 of file session_types.h.
References session_id_.
Referenced by yaze::editor::EditorManager::ConfigureSession(), and yaze::editor::RomSession::session_id().
| Editor * yaze::editor::EditorSet::GetEditor | ( | EditorType | type | ) | const |
Definition at line 117 of file session_types.cc.
References EnsureEditorCreated().
Referenced by GetEditorAs(), and yaze::editor::EditorManager::GetEditorByType().

|
inline |
Definition at line 80 of file session_types.h.
References FindEditor().
Referenced by EnsureEditorCreated().

|
inline |
Definition at line 83 of file session_types.h.
References GetEditor().
Referenced by yaze::editor::EditorManager::ConfigureEditorDependencies().

| void yaze::editor::EditorSet::OpenAssemblyFolder | ( | const std::string & | folder_path | ) | const |
Definition at line 266 of file session_types.cc.
References GetAssemblyEditor().

| void yaze::editor::EditorSet::ChangeActiveAssemblyFile | ( | std::string_view | path | ) | const |
Definition at line 272 of file session_types.cc.
References GetAssemblyEditor().

| core::AsarWrapper * yaze::editor::EditorSet::GetAsarWrapper | ( | ) | const |
Definition at line 278 of file session_types.cc.
References FindEditor(), and yaze::editor::kAssembly.

| const std::map< std::string, core::AsarSymbol > & yaze::editor::EditorSet::GetAssemblySymbols | ( | ) | const |
Definition at line 286 of file session_types.cc.
References FindEditor(), and yaze::editor::kAssembly.

| int yaze::editor::EditorSet::LoadedDungeonRoomCount | ( | ) | const |
Definition at line 296 of file session_types.cc.
References FindEditor(), and yaze::editor::kDungeon.

| int yaze::editor::EditorSet::TotalDungeonRoomCount | ( | ) | const |
Definition at line 304 of file session_types.cc.
References FindEditor(), and yaze::editor::kDungeon.

| std::vector< std::pair< uint32_t, uint32_t > > yaze::editor::EditorSet::CollectDungeonWriteRanges | ( | ) | const |
Definition at line 313 of file session_types.cc.
References FindEditor(), and yaze::editor::kDungeon.

| bool yaze::editor::EditorSet::HasPendingGraphicsChanges | ( | ) | const |
Definition at line 329 of file session_types.cc.
References FindEditor(), and yaze::editor::kGraphics.

| bool yaze::editor::EditorSet::HasPendingSpriteChanges | ( | ) | const |
Definition at line 337 of file session_types.cc.
References FindEditor(), and yaze::editor::kSprite.
Referenced by HasPendingBuildProjectDraftChanges().

| bool yaze::editor::EditorSet::HasPendingScreenChanges | ( | ) | const |
Definition at line 344 of file session_types.cc.
References FindEditor(), and yaze::editor::kScreen.

| void yaze::editor::EditorSet::InvalidateScreenRomBackedState | ( | ) |
Definition at line 352 of file session_types.cc.
References FindEditor(), and yaze::editor::kScreen.

| bool yaze::editor::EditorSet::HasPendingProjectDraftChanges | ( | ) | const |
Definition at line 359 of file session_types.cc.
References HasPendingBuildProjectDraftChanges(), and HasPendingPlanningProjectDraftChanges().

| bool yaze::editor::EditorSet::HasPendingBuildProjectDraftChanges | ( | ) | const |
Definition at line 364 of file session_types.cc.
References FindEditor(), HasPendingSpriteChanges(), yaze::editor::kDungeon, and yaze::editor::kOverworld.
Referenced by HasPendingProjectDraftChanges(), and yaze::editor::EditorManager::IsPlanningOnlyProjectSave().

| bool yaze::editor::EditorSet::HasPendingPlanningProjectDraftChanges | ( | ) | const |
Definition at line 379 of file session_types.cc.
References FindEditor(), yaze::editor::PlanningEditor::HasPendingProjectDraftChanges(), and yaze::editor::kPlanning.
Referenced by HasPendingProjectDraftChanges(), and yaze::editor::EditorManager::IsPlanningOnlyProjectSave().

| absl::Status yaze::editor::EditorSet::SavePlanningProjectDraft | ( | ) |
Definition at line 385 of file session_types.cc.
References FindEditor(), yaze::editor::kPlanning, and yaze::editor::PlanningEditor::Save().

| absl::Status yaze::editor::EditorSet::PrepareProjectSave | ( | bool | publish_lyra = true | ) |
Definition at line 391 of file session_types.cc.
References FindEditor(), yaze::editor::kDungeon, yaze::editor::kOverworld, yaze::editor::kPlanning, yaze::editor::kSprite, and RETURN_IF_ERROR.

| void yaze::editor::EditorSet::ProjectSaveCommitted | ( | ) |
Definition at line 412 of file session_types.cc.
References FindEditor(), yaze::editor::kOverworld, and yaze::editor::kSprite.

| void yaze::editor::EditorSet::DiscardPlanningProjectDraft | ( | ) |
Definition at line 422 of file session_types.cc.
References FindEditor(), and yaze::editor::kPlanning.

| zelda3::Overworld * yaze::editor::EditorSet::GetOverworldData | ( | ) | const |
Definition at line 429 of file session_types.cc.
References FindEditor(), and yaze::editor::kOverworld.
Referenced by EnsureEditorCreated().

| AssemblyEditor * yaze::editor::EditorSet::GetAssemblyEditor | ( | ) | const |
Definition at line 438 of file session_types.cc.
References yaze::editor::kAssembly.
Referenced by ChangeActiveAssemblyFile(), and OpenAssemblyFolder().
| DungeonEditorV2 * yaze::editor::EditorSet::GetDungeonEditor | ( | ) | const |
Definition at line 441 of file session_types.cc.
References yaze::editor::kDungeon.
| GraphicsEditor * yaze::editor::EditorSet::GetGraphicsEditor | ( | ) | const |
Definition at line 444 of file session_types.cc.
References yaze::editor::kGraphics.
| MusicEditor * yaze::editor::EditorSet::GetMusicEditor | ( | ) | const |
Definition at line 447 of file session_types.cc.
References yaze::editor::kMusic.
| OverworldEditor * yaze::editor::EditorSet::GetOverworldEditor | ( | ) | const |
Definition at line 450 of file session_types.cc.
References yaze::editor::kOverworld.
| PaletteEditor * yaze::editor::EditorSet::GetPaletteEditor | ( | ) | const |
Definition at line 453 of file session_types.cc.
References yaze::editor::kPalette.
| ScreenEditor * yaze::editor::EditorSet::GetScreenEditor | ( | ) | const |
Definition at line 456 of file session_types.cc.
References yaze::editor::kScreen.
| SpriteEditor * yaze::editor::EditorSet::GetSpriteEditor | ( | ) | const |
Definition at line 459 of file session_types.cc.
References yaze::editor::kSprite.
| SettingsPanel * yaze::editor::EditorSet::GetSettingsPanel | ( | ) | const |
Definition at line 462 of file session_types.cc.
References yaze::editor::kSettings.
Referenced by yaze::editor::EditorManager::ConfigureEditorDependencies(), yaze::editor::EditorManager::HandleSessionSwitched(), and set_user_settings().
| MessageEditor * yaze::editor::EditorSet::GetMessageEditor | ( | ) | const |
Definition at line 465 of file session_types.cc.
References yaze::editor::kMessage.
| MemoryEditor * yaze::editor::EditorSet::GetMemoryEditor | ( | ) | const |
Definition at line 468 of file session_types.cc.
References yaze::editor::kHex.
|
inline |
Shared Gfx Groups UI state for this ROM session (Graphics + Overworld).
Definition at line 143 of file session_types.h.
References gfx_group_workspace_.
Referenced by yaze::editor::EditorManager::ConfigureEditorDependencies().
|
inline |
Definition at line 146 of file session_types.h.
References gfx_group_workspace_.
|
private |
Definition at line 121 of file session_types.cc.
References editors_, and yaze::editor::kUnknown.
Referenced by CollectDungeonWriteRanges(), DiscardPlanningProjectDraft(), EnsureEditorCreated(), GetAsarWrapper(), GetAssemblySymbols(), GetExistingEditor(), GetOverworldData(), HasPendingBuildProjectDraftChanges(), HasPendingGraphicsChanges(), HasPendingPlanningProjectDraftChanges(), HasPendingScreenChanges(), HasPendingSpriteChanges(), InvalidateScreenRomBackedState(), LoadedDungeonRoomCount(), PrepareProjectSave(), ProjectSaveCommitted(), SavePlanningProjectDraft(), and TotalDungeonRoomCount().
|
private |
Definition at line 132 of file session_types.cc.
References yaze::zelda3::Room::blockset(), yaze::zelda3::CollectRoomGfx(), dependencies_, yaze::zelda3::DescribeMainGroupUsage(), yaze::zelda3::DescribeRoomsetUsage(), editor_factories_, editors_, FindEditor(), game_data_, GetExistingEditor(), GetOverworldData(), yaze::editor::kDungeon, yaze::editor::kSettings, yaze::editor::kUnknown, yaze::zelda3::Room::render_entrance_blockset(), rom_, session_teardown_prepared_, yaze::editor::Editor::SetDependencies(), ShouldTrackAsActiveEditor(), yaze::zelda3::Room::spriteset(), TrackActiveEditor(), and user_settings_.
Referenced by GetEditor().
|
private |
Definition at line 238 of file session_types.cc.
References yaze::editor::kAssembly, yaze::editor::kDungeon, yaze::editor::kGraphics, yaze::editor::kMessage, yaze::editor::kMusic, yaze::editor::kOverworld, yaze::editor::kPalette, yaze::editor::kPlanning, yaze::editor::kScreen, and yaze::editor::kSprite.
Referenced by EnsureEditorCreated().
|
private |
Definition at line 256 of file session_types.cc.
References active_editors_.
Referenced by EnsureEditorCreated().
| std::vector<Editor*> yaze::editor::EditorSet::active_editors_ |
Definition at line 150 of file session_types.h.
Referenced by yaze::editor::EditorManager::CollectEditorsToPreload(), yaze::editor::EditorActivator::DeactivatePanelBasedEditor(), and TrackActiveEditor().
|
private |
Definition at line 160 of file session_types.h.
Referenced by session_id().
|
private |
Definition at line 161 of file session_types.h.
Referenced by EditorSet(), and EnsureEditorCreated().
|
private |
Definition at line 162 of file session_types.h.
Referenced by EnsureEditorCreated(), and SetGameData().
|
private |
Definition at line 163 of file session_types.h.
Referenced by EnsureEditorCreated(), and set_user_settings().
|
private |
Definition at line 164 of file session_types.h.
Referenced by EditorSet().
|
private |
Definition at line 166 of file session_types.h.
Referenced by ApplyDependencies(), and EnsureEditorCreated().
|
mutableprivate |
Definition at line 167 of file session_types.h.
Referenced by ApplyDependencies(), EnsureEditorCreated(), FindEditor(), PrepareForSessionTeardown(), and SetGameData().
|
private |
Definition at line 168 of file session_types.h.
Referenced by EditorSet(), and EnsureEditorCreated().
|
private |
Definition at line 169 of file session_types.h.
Referenced by EnsureEditorCreated(), and PrepareForSessionTeardown().
|
private |
Definition at line 171 of file session_types.h.
Referenced by gfx_group_workspace(), and gfx_group_workspace().