yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
session_types.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_SESSION_TYPES_H_
2#define YAZE_APP_EDITOR_SESSION_TYPES_H_
3
4#include <string>
5#include <vector>
6
18#include "rom/rom.h"
19#include "zelda3/game_data.h"
20#include "core/features.h"
21
22namespace yaze::editor {
23
24class EditorDependencies;
25
30class EditorSet {
31 public:
32 explicit EditorSet(Rom* rom = nullptr, zelda3::GameData* game_data = nullptr, UserSettings* user_settings = nullptr,
33 size_t session_id = 0);
35
36 void set_user_settings(UserSettings* settings);
37
38 void ApplyDependencies(const EditorDependencies& dependencies);
39
40 size_t session_id() const { return session_id_; }
41
42 // Accessors
46 MusicEditor* GetMusicEditor() const { return music_editor_.get(); }
49 ScreenEditor* GetScreenEditor() const { return screen_editor_.get(); }
50 SpriteEditor* GetSpriteEditor() const { return sprite_editor_.get(); }
53 MemoryEditor* GetMemoryEditor() const { return memory_editor_.get(); }
54
55 std::vector<Editor*> active_editors_;
56
57 private:
58 size_t session_id_ = 0;
60
61 std::unique_ptr<AssemblyEditor> assembly_editor_;
62 std::unique_ptr<DungeonEditorV2> dungeon_editor_;
63 std::unique_ptr<GraphicsEditor> graphics_editor_;
64 std::unique_ptr<MusicEditor> music_editor_;
65 std::unique_ptr<OverworldEditor> overworld_editor_;
66 std::unique_ptr<PaletteEditor> palette_editor_;
67 std::unique_ptr<ScreenEditor> screen_editor_;
68 std::unique_ptr<SpriteEditor> sprite_editor_;
69 std::unique_ptr<SettingsPanel> settings_panel_;
70 std::unique_ptr<MessageEditor> message_editor_;
71 std::unique_ptr<MemoryEditor> memory_editor_;
72};
73
79struct RomSession {
83 std::string custom_name; // User-defined session name
84 std::string filepath; // ROM filepath for duplicate detection
85 core::FeatureFlags::Flags feature_flags; // Per-session feature flags
86
87 RomSession() = default;
88 explicit RomSession(Rom&& r, UserSettings* user_settings = nullptr,
89 size_t session_id = 0);
90
91 // Get display name (custom name or ROM title)
92 std::string GetDisplayName() const;
93};
94
95} // namespace yaze::editor
96
97#endif // YAZE_APP_EDITOR_SESSION_TYPES_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:24
Text editor for modifying assembly code.
DungeonEditorV2 - Simplified dungeon editor using component delegation.
Contains a complete set of editors for a single ROM instance.
MemoryEditor * GetMemoryEditor() const
std::unique_ptr< MessageEditor > message_editor_
std::unique_ptr< AssemblyEditor > assembly_editor_
DungeonEditorV2 * GetDungeonEditor() const
MusicEditor * GetMusicEditor() const
ScreenEditor * GetScreenEditor() const
std::unique_ptr< ScreenEditor > screen_editor_
std::unique_ptr< DungeonEditorV2 > dungeon_editor_
std::unique_ptr< MemoryEditor > memory_editor_
std::unique_ptr< PaletteEditor > palette_editor_
size_t session_id() const
void ApplyDependencies(const EditorDependencies &dependencies)
SpriteEditor * GetSpriteEditor() const
std::unique_ptr< OverworldEditor > overworld_editor_
std::unique_ptr< SpriteEditor > sprite_editor_
GraphicsEditor * GetGraphicsEditor() const
EditorSet(Rom *rom=nullptr, zelda3::GameData *game_data=nullptr, UserSettings *user_settings=nullptr, size_t session_id=0)
PaletteEditor * GetPaletteEditor() const
std::unique_ptr< MusicEditor > music_editor_
void set_user_settings(UserSettings *settings)
MessageEditor * GetMessageEditor() const
SettingsPanel * GetSettingsPanel() const
std::unique_ptr< SettingsPanel > settings_panel_
std::unique_ptr< GraphicsEditor > graphics_editor_
std::vector< Editor * > active_editors_
zelda3::GameData * game_data_
OverworldEditor * GetOverworldEditor() const
AssemblyEditor * GetAssemblyEditor() const
Allows the user to edit graphics sheets from the game or view prototype graphics.
A class for editing music data in a Rom.
Main UI class for editing overworld maps in A Link to the Past.
Allows the user to view and edit in game palettes.
The ScreenEditor class allows the user to edit a variety of screens in the game or create a custom me...
Manages the settings UI displayed in the right sidebar.
Allows the user to edit sprites.
Manages user preferences and settings persistence.
Editors are the view controllers for the application.
Definition agent_chat.cc:23
Unified dependency container for all editor types.
Definition editor.h:111
Represents a single session, containing a ROM and its associated editors.
core::FeatureFlags::Flags feature_flags
zelda3::GameData game_data
std::string GetDisplayName() const