yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
editor_manager.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_EDITOR_MANAGER_H
2#define YAZE_APP_EDITOR_EDITOR_MANAGER_H
3
4#define IMGUI_DEFINE_MATH_OPERATORS
5
6#include "absl/status/status.h"
7#include "app/core/project.h"
19#include "app/emu/emulator.h"
20#include "app/gui/input.h"
21#include "app/rom.h"
22#include "yaze_config.h"
23
24namespace yaze {
25namespace editor {
26
38class EditorManager : public SharedRom {
39 public:
50 std::stringstream ss;
51 ss << YAZE_VERSION_MAJOR << "." << YAZE_VERSION_MINOR << "."
52 << YAZE_VERSION_PATCH;
53 ss >> version_;
54 }
55
56 void Initialize(std::string filename = "");
57 absl::Status Update();
58
59 auto emulator() -> emu::Emulator & { return emulator_; }
60 auto quit() const { return quit_; }
61
62 private:
65
66 void DrawPopups();
67 void DrawHomepage();
68
69 void DrawMenuBar();
70 void DrawMenuContent();
71 void DrawRomMenu();
72
73 void LoadRom();
74 void SaveRom();
75
76 void OpenRomOrProject(const std::string &filename);
77 absl::Status OpenProject();
78
79 bool quit_ = false;
80 bool about_ = false;
81 bool rom_info_ = false;
82 bool backup_rom_ = false;
83 bool save_new_auto_ = true;
84 bool show_status_ = false;
85 bool rom_assets_loaded_ = false;
86
87 std::string version_ = "";
88
89 absl::Status status_;
91 std::vector<Editor *> active_editors_;
92 std::vector<std::unique_ptr<Rom>> roms_;
93 Rom* current_rom_ = nullptr;
94
97
110};
111
112} // namespace editor
113} // namespace yaze
114
115#endif // YAZE_APP_EDITOR_EDITOR_MANAGER_H
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:59
auto rom()
Definition rom.h:383
SharedRom()=default
Text editor for modifying assembly code.
DungeonEditor class for editing dungeons.
void OpenRomOrProject(const std::string &filename)
OverworldEditor overworld_editor_
std::vector< std::unique_ptr< Rom > > roms_
void Initialize(std::string filename="")
MemoryEditorWithDiffChecker memory_editor_
std::vector< Editor * > active_editors_
auto emulator() -> emu::Emulator &
Interface for editor classes.
Definition editor.h:49
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.
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...
Allows the user to edit sprites.
A class for emulating and debugging SNES games.
Definition emulator.h:39
Main namespace for the application.
Definition controller.cc:18
Represents a project in the application.
Definition project.h:26