1#ifndef YAZE_APP_EDITOR_EDITOR_MANAGER_H
2#define YAZE_APP_EDITOR_EDITOR_MANAGER_H
4#define IMGUI_DEFINE_MATH_OPERATORS
9#include "imgui/imgui.h"
14#include "absl/status/status.h"
43#include "yaze_config.h"
48class AgentControlServer;
119 const std::string& cards_str);
144 return &
sessions_[current_index].feature_flags;
151 ImGui::GetIO().FontGlobalScale = scale;
197 void RenameSession(
size_t index,
const std::string& new_name);
211 absl::Status
SaveRomAs(
const std::string& filename);
216 const std::string& template_name =
"Basic ROM Hack");
262 AutomationBridge harness_telemetry_bridge_;
282 std::unique_ptr<yaze::agent::AgentControlServer> agent_control_server_;
The Rom class is used to load, save, and modify Rom data.
Comprehensive AI Agent Platform & Bot Creator.
Text editor for modifying assembly code.
DungeonEditorV2 - Simplified dungeon editor using component delegation.
The EditorManager controls the main editor window and manages the various editor classes.
absl::Status SaveProjectAs()
std::deque< RomSession > sessions_
bool show_resource_label_manager
void SaveWorkspacePreset(const std::string &name)
bool show_command_palette_
void InitializeTestSuites()
bool show_save_workspace_preset_
bool show_proposal_drawer_
void ShowEditorSelection()
absl::Status SaveRomAs(const std::string &filename)
void DrawContextSensitiveCardControl()
bool show_test_dashboard_
MenuBuilder menu_builder_
void JumpToDungeonRoom(int room_id)
void SwitchToSession(size_t index)
bool show_palette_editor_
void DrawSessionSwitcher()
size_t GetActiveSessionCount() const
absl::Status OpenProject()
void CloseCurrentSession()
gfx::IRenderer * renderer_
bool HasDuplicateSession(const std::string &filepath)
void SwitchToEditor(EditorType editor_type)
absl::Status RepairCurrentProject()
EditorSelectionDialog editor_selection_dialog_
bool show_load_workspace_preset_
bool welcome_screen_manually_closed_
EditorSet * current_editor_set_
void LoadWorkspacePreset(const std::string &name)
std::string GenerateUniqueEditorTitle(EditorType type, size_t session_index) const
auto GetCurrentRom() -> Rom *
void RenameSession(size_t index, const std::string &new_name)
void ShowSessionSwitcher()
void LoadWorkspaceLayout()
bool show_workspace_layout
MenuBuilder & menu_builder()
void ShowDisplaySettings()
void DuplicateCurrentSession()
void Initialize(gfx::IRenderer *renderer, const std::string &filename="")
AgentChatHistoryPopup agent_chat_history_popup_
bool show_layout_presets_
void ResetWorkspaceLayout()
absl::Status CreateNewProject(const std::string &template_name="Basic ROM Hack")
void DrawSessionRenameDialog()
EditorSet blank_editor_set_
ToastManager toast_manager_
bool show_session_manager_
bool show_editor_selection_
void RefreshWorkspacePresets()
void SetFontGlobalScale(float scale)
ProjectFileEditor project_file_editor_
size_t session_to_rename_
void CloseAllFloatingWindows()
void MaximizeCurrentWindow()
absl::Status SaveProject()
void LoadDesignerLayout()
void DrawSessionManager()
void SaveWorkspaceLayout()
void OpenEditorAndCardsFromFlags(const std::string &editor_name, const std::string &cards_str)
void JumpToOverworldMap(int map_id)
bool show_chat_history_popup_
auto GetCurrentEditorSet() -> EditorSet *
size_t GetCurrentSessionIndex() const
absl::Status ImportProject(const std::string &project_path)
bool show_welcome_screen_
void LoadDeveloperLayout()
core::YazeProject current_project_
auto emulator() -> emu::Emulator &
bool show_session_rename_dialog_
UserSettings user_settings_
core::FeatureFlags::Flags * GetCurrentFeatureFlags()
WorkspaceManager workspace_manager_
bool show_session_switcher_
ProposalDrawer proposal_drawer_
absl::Status DrawRomSelector()
WelcomeScreen welcome_screen_
absl::Status LoadAssets()
absl::Status OpenRomOrProject(const std::string &filename)
void RemoveSession(size_t index)
std::unique_ptr< PopupManager > popup_manager_
auto overworld() -> yaze::zelda3::Overworld *
bool show_performance_dashboard_
absl::Status SetCurrentRom(Rom *rom)
char session_rename_buffer_[256]
Beautiful grid-based editor selection dialog.
Contains a complete set of editors for a single ROM instance.
SettingsEditor settings_editor_
MusicEditor music_editor_
ScreenEditor screen_editor_
DungeonEditorV2 dungeon_editor_
MemoryEditorWithDiffChecker memory_editor_
GraphicsEditor graphics_editor_
EditorSet(Rom *rom=nullptr, UserSettings *user_settings=nullptr)
void set_user_settings(UserSettings *settings)
AssemblyEditor assembly_editor_
SpriteEditor sprite_editor_
OverworldEditor overworld_editor_
MessageEditor message_editor_
std::vector< Editor * > active_editors_
PaletteEditor palette_editor_
Interface for editor classes.
Allows the user to edit graphics sheets from the game or view prototype graphics.
A class for editing music data in a Rom.
Manipulates the Overworld and OverworldMap data in a Rom.
zelda3::Overworld & overworld()
Allows the user to view and edit in game palettes.
Editor for .yaze project files with syntax highlighting and validation.
ImGui drawer for displaying and managing agent proposals.
The ScreenEditor class allows the user to edit a variety of screens in the game or create a custom me...
void set_user_settings(UserSettings *settings)
Allows the user to edit sprites.
Manages user preferences and settings persistence.
Modern welcome screen with project grid and quick actions.
Manages workspace layouts, sessions, and presets.
void SaveWorkspacePreset(const std::string &name)
void LoadWorkspacePreset(const std::string &name)
A class for emulating and debugging SNES games.
Defines an abstract interface for all rendering operations.
Represents the full Overworld data, light and dark world.
Main namespace for the application.
Modern project structure with comprehensive settings consolidation.
core::FeatureFlags::Flags feature_flags
std::string GetDisplayName() const
RomSession(Rom &&r, UserSettings *user_settings=nullptr)