yaze
0.3.2
Link to the Past ROM Editor
Loading...
Searching...
No Matches
dungeon_room_loader.h
Go to the documentation of this file.
1
#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_LOADER_H
2
#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_LOADER_H
3
4
#include <unordered_map>
5
#include <vector>
6
7
#include "absl/status/status.h"
8
#include "
app/editor/dungeon/dungeon_room_store.h
"
9
#include "
app/editor/editor.h
"
10
#include "
rom/rom.h
"
11
#include "
zelda3/dungeon/room.h
"
12
#include "
zelda3/dungeon/room_entrance.h
"
13
#include "
zelda3/game_data.h
"
14
15
namespace
yaze
{
16
namespace
editor {
17
24
class
DungeonRoomLoader
{
25
public
:
26
explicit
DungeonRoomLoader
(
Rom
*
rom
) :
rom_
(
rom
) {}
27
28
// Unified context setter (preferred)
29
void
SetContext
(
EditorContext
ctx) {
30
rom_
= ctx.
rom
;
31
game_data_
= ctx.
game_data
;
32
}
33
EditorContext
context
()
const
{
return
{
rom_
,
game_data_
}; }
34
35
// Individual setters for compatibility
36
void
SetRom
(
Rom
*
rom
) {
rom_
=
rom
; }
37
Rom
*
rom
()
const
{
return
rom_
; }
38
void
SetGameData
(
zelda3::GameData
*
game_data
) {
game_data_
=
game_data
; }
39
zelda3::GameData
*
game_data
()
const
{
return
game_data_
; }
40
41
// Room loading
42
absl::Status
LoadRoom
(
int
room_id,
zelda3::Room
& room);
43
absl::Status
LoadAllRooms
(
DungeonRoomStore
& rooms);
44
absl::Status
LoadRoomEntrances
(
45
std::array<zelda3::RoomEntrance, 0x8C>& entrances);
46
47
// Room size management
48
void
LoadDungeonRoomSize
();
49
uint64_t
GetTotalRoomSize
()
const
{
return
total_room_size_
; }
50
51
// Room graphics
52
absl::Status
LoadAndRenderRoomGraphics
(
zelda3::Room
& room);
53
absl::Status
ReloadAllRoomGraphics
(
DungeonRoomStore
& rooms);
54
55
// Data access
56
const
std::vector<int64_t>&
GetRoomSizePointers
()
const
{
57
return
room_size_pointers_
;
58
}
59
const
std::vector<int64_t>&
GetRoomSizes
()
const
{
return
room_sizes_
; }
60
const
std::unordered_map<int, int>&
GetRoomSizeAddresses
()
const
{
61
return
room_size_addresses_
;
62
}
63
const
std::unordered_map<int, ImVec4>&
GetRoomPalette
()
const
{
64
return
room_palette_
;
65
}
66
67
private
:
68
Rom
*
rom_
;
69
zelda3::GameData
*
game_data_
=
nullptr
;
70
71
std::vector<int64_t>
room_size_pointers_
;
72
std::vector<int64_t>
room_sizes_
;
73
std::unordered_map<int, int>
room_size_addresses_
;
74
std::unordered_map<int, ImVec4>
room_palette_
;
75
uint64_t
total_room_size_
= 0;
76
};
77
78
}
// namespace editor
79
}
// namespace yaze
80
81
#endif
// YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_LOADER_H
yaze::Rom
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition
rom.h:28
yaze::editor::DungeonRoomLoader
Manages loading and saving of dungeon room data.
Definition
dungeon_room_loader.h:24
yaze::editor::DungeonRoomLoader::SetRom
void SetRom(Rom *rom)
Definition
dungeon_room_loader.h:36
yaze::editor::DungeonRoomLoader::GetRoomPalette
const std::unordered_map< int, ImVec4 > & GetRoomPalette() const
Definition
dungeon_room_loader.h:63
yaze::editor::DungeonRoomLoader::GetRoomSizes
const std::vector< int64_t > & GetRoomSizes() const
Definition
dungeon_room_loader.h:59
yaze::editor::DungeonRoomLoader::ReloadAllRoomGraphics
absl::Status ReloadAllRoomGraphics(DungeonRoomStore &rooms)
Definition
dungeon_room_loader.cc:255
yaze::editor::DungeonRoomLoader::LoadRoomEntrances
absl::Status LoadRoomEntrances(std::array< zelda3::RoomEntrance, 0x8C > &entrances)
Definition
dungeon_room_loader.cc:191
yaze::editor::DungeonRoomLoader::LoadRoom
absl::Status LoadRoom(int room_id, zelda3::Room &room)
Definition
dungeon_room_loader.cc:20
yaze::editor::DungeonRoomLoader::room_size_addresses_
std::unordered_map< int, int > room_size_addresses_
Definition
dungeon_room_loader.h:73
yaze::editor::DungeonRoomLoader::room_size_pointers_
std::vector< int64_t > room_size_pointers_
Definition
dungeon_room_loader.h:71
yaze::editor::DungeonRoomLoader::game_data_
zelda3::GameData * game_data_
Definition
dungeon_room_loader.h:69
yaze::editor::DungeonRoomLoader::rom
Rom * rom() const
Definition
dungeon_room_loader.h:37
yaze::editor::DungeonRoomLoader::context
EditorContext context() const
Definition
dungeon_room_loader.h:33
yaze::editor::DungeonRoomLoader::LoadAllRooms
absl::Status LoadAllRooms(DungeonRoomStore &rooms)
Definition
dungeon_room_loader.cc:34
yaze::editor::DungeonRoomLoader::game_data
zelda3::GameData * game_data() const
Definition
dungeon_room_loader.h:39
yaze::editor::DungeonRoomLoader::LoadDungeonRoomSize
void LoadDungeonRoomSize()
Definition
dungeon_room_loader.cc:209
yaze::editor::DungeonRoomLoader::GetRoomSizePointers
const std::vector< int64_t > & GetRoomSizePointers() const
Definition
dungeon_room_loader.h:56
yaze::editor::DungeonRoomLoader::room_sizes_
std::vector< int64_t > room_sizes_
Definition
dungeon_room_loader.h:72
yaze::editor::DungeonRoomLoader::rom_
Rom * rom_
Definition
dungeon_room_loader.h:68
yaze::editor::DungeonRoomLoader::DungeonRoomLoader
DungeonRoomLoader(Rom *rom)
Definition
dungeon_room_loader.h:26
yaze::editor::DungeonRoomLoader::room_palette_
std::unordered_map< int, ImVec4 > room_palette_
Definition
dungeon_room_loader.h:74
yaze::editor::DungeonRoomLoader::GetTotalRoomSize
uint64_t GetTotalRoomSize() const
Definition
dungeon_room_loader.h:49
yaze::editor::DungeonRoomLoader::GetRoomSizeAddresses
const std::unordered_map< int, int > & GetRoomSizeAddresses() const
Definition
dungeon_room_loader.h:60
yaze::editor::DungeonRoomLoader::SetGameData
void SetGameData(zelda3::GameData *game_data)
Definition
dungeon_room_loader.h:38
yaze::editor::DungeonRoomLoader::SetContext
void SetContext(EditorContext ctx)
Definition
dungeon_room_loader.h:29
yaze::editor::DungeonRoomLoader::LoadAndRenderRoomGraphics
absl::Status LoadAndRenderRoomGraphics(zelda3::Room &room)
Definition
dungeon_room_loader.cc:245
yaze::editor::DungeonRoomLoader::total_room_size_
uint64_t total_room_size_
Definition
dungeon_room_loader.h:75
yaze::editor::DungeonRoomStore
Definition
dungeon_room_store.h:14
yaze::zelda3::Room
Definition
room.h:194
dungeon_room_store.h
editor.h
game_data.h
yaze
Definition
patch_export_usage.cc:8
rom.h
room.h
room_entrance.h
yaze::editor::EditorContext
Lightweight view into the essential runtime context (Rom + GameData)
Definition
editor.h:71
yaze::editor::EditorContext::rom
Rom * rom
Definition
editor.h:72
yaze::editor::EditorContext::game_data
zelda3::GameData * game_data
Definition
editor.h:73
yaze::zelda3::GameData
Definition
game_data.h:69
src
app
editor
dungeon
dungeon_room_loader.h
Generated by
1.10.0