1#ifndef YAZE_APP_ZELDA3_DUNGEON_DUNGEON_EDITOR_SYSTEM_H
2#define YAZE_APP_ZELDA3_DUNGEON_DUNGEON_EDITOR_SYSTEM_H
7#include <unordered_map>
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
56 absl::StatusOr<Room>
GetRoom(
int room_id);
93 std::unordered_map<int, Room>
rooms_;
101 std::unordered_map<int, Room>
rooms;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Core dungeon editing system.
void SetGameData(GameData *game_data)
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)
std::unordered_map< int, Room > rooms_
EditorState editor_state_
std::vector< UndoPoint > redo_history_
absl::Status Initialize()
~DungeonEditorSystem()=default
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
static constexpr size_t kMaxUndoHistory
absl::StatusOr< Room > GetRoom(int room_id)
std::unique_ptr< DungeonEditorSystem > CreateDungeonEditorSystem(Rom *rom, GameData *game_data)
Factory function to create dungeon editor system.
std::chrono::steady_clock::time_point last_save_time
std::unordered_map< int, Room > rooms
std::chrono::steady_clock::time_point timestamp