1#ifndef YAZE_APP_ZELDA3_DUNGEON_DUNGEON_EDITOR_SYSTEM_H
2#define YAZE_APP_ZELDA3_DUNGEON_DUNGEON_EDITOR_SYSTEM_H
8#include <unordered_map>
11#include "absl/status/status.h"
12#include "absl/status/statusor.h"
57 absl::StatusOr<Room>
GetRoom(
int room_id);
94 std::unordered_map<int, Room>
rooms_;
102 std::unordered_map<int, Room>
rooms;
134 bool apply_properties =
false);
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)
absl::Status ApplyRoomLayoutTemplate(Room &room, const std::string &json_str, bool apply_properties)
Apply a previously exported layout template to a room.
absl::StatusOr< std::string > ExportRoomLayoutTemplate(const Room &room)
Export a room's layout as a JSON template string.
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