9 : rom_(rom), game_data_(game_data) {}
12 if (
rom_ ==
nullptr) {
13 return absl::InvalidArgumentError(
"ROM is null");
20 return absl::OkStatus();
27 return absl::OkStatus();
31 if (!
rom_)
return absl::InvalidArgumentError(
"ROM is null");
43 return absl::OkStatus();
56 return absl::InvalidArgumentError(
"Invalid room ID");
60 return absl::OkStatus();
69 return absl::InvalidArgumentError(
"Invalid room ID");
88 return absl::FailedPreconditionError(
"Nothing to undo");
91 return absl::OkStatus();
100 return absl::FailedPreconditionError(
"Nothing to redo");
103 return absl::OkStatus();
148 if (!
rom_)
return absl::InvalidArgumentError(
"ROM is null");
152 return absl::OkStatus();
156 if (!
rom_)
return absl::InvalidArgumentError(
"ROM is null");
166 return absl::OkStatus();
171 return std::make_unique<DungeonEditorSystem>(rom, game_data);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
int GetCurrentRoom() const
absl::Status SaveRoom(int room_id)
absl::Status InitializeObjectEditor()
void SetExternalRoom(Room *room)
RoomChangedCallback room_changed_callback_
absl::Status SaveDungeon()
void SetRoomChangedCallback(RoomChangedCallback callback)
absl::Status SaveRoomData(int room_id)
std::shared_ptr< DungeonObjectEditor > object_editor_
DungeonEditorSystem(Rom *rom, GameData *game_data=nullptr)
std::shared_ptr< DungeonObjectEditor > GetObjectEditor()
absl::Status SetCurrentRoom(int room_id)
EditorState editor_state_
std::vector< UndoPoint > redo_history_
absl::Status Initialize()
absl::Status LoadRoomData(int room_id)
absl::Status ReloadRoom(int room_id)
std::vector< UndoPoint > undo_history_
absl::Status LoadDungeon(int dungeon_id)
std::function< void(int room_id)> RoomChangedCallback
EditorState GetEditorState() const
absl::StatusOr< Room > GetRoom(int room_id)
absl::Status SaveObjects()
constexpr int NumberOfRooms
std::unique_ptr< DungeonEditorSystem > CreateDungeonEditorSystem(Rom *rom, GameData *game_data)
Factory function to create dungeon editor system.
#define RETURN_IF_ERROR(expr)
std::chrono::steady_clock::time_point last_save_time