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 <vector>
5#include <unordered_map>
6
7#include "absl/status/status.h"
8#include "app/rom.h"
11
12namespace yaze {
13namespace editor {
14
22 public:
23 explicit DungeonRoomLoader(Rom* rom) : rom_(rom) {}
24
25 // Room loading
26 absl::Status LoadRoom(int room_id, zelda3::Room& room);
27 absl::Status LoadAllRooms(std::array<zelda3::Room, 0x128>& rooms);
28 absl::Status LoadRoomEntrances(std::array<zelda3::RoomEntrance, 0x8C>& entrances);
29
30 // Room size management
32 uint64_t GetTotalRoomSize() const { return total_room_size_; }
33
34 // Room graphics
35 absl::Status LoadAndRenderRoomGraphics(zelda3::Room& room);
36 absl::Status ReloadAllRoomGraphics(std::array<zelda3::Room, 0x128>& rooms);
37
38 // Data access
39 const std::vector<int64_t>& GetRoomSizePointers() const { return room_size_pointers_; }
40 const std::vector<int64_t>& GetRoomSizes() const { return room_sizes_; }
41 const std::unordered_map<int, int>& GetRoomSizeAddresses() const { return room_size_addresses_; }
42 const std::unordered_map<int, ImVec4>& GetRoomPalette() const { return room_palette_; }
43
44 private:
46
47 std::vector<int64_t> room_size_pointers_;
48 std::vector<int64_t> room_sizes_;
49 std::unordered_map<int, int> room_size_addresses_;
50 std::unordered_map<int, ImVec4> room_palette_;
51 uint64_t total_room_size_ = 0;
52};
53
54} // namespace editor
55} // namespace yaze
56
57#endif // YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_LOADER_H
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:71
Manages loading and saving of dungeon room data.
const std::unordered_map< int, ImVec4 > & GetRoomPalette() const
const std::vector< int64_t > & GetRoomSizes() const
absl::Status LoadRoomEntrances(std::array< zelda3::RoomEntrance, 0x8C > &entrances)
absl::Status LoadAllRooms(std::array< zelda3::Room, 0x128 > &rooms)
absl::Status LoadRoom(int room_id, zelda3::Room &room)
std::unordered_map< int, int > room_size_addresses_
std::vector< int64_t > room_size_pointers_
absl::Status ReloadAllRoomGraphics(std::array< zelda3::Room, 0x128 > &rooms)
const std::vector< int64_t > & GetRoomSizePointers() const
std::unordered_map< int, ImVec4 > room_palette_
const std::unordered_map< int, int > & GetRoomSizeAddresses() const
absl::Status LoadAndRenderRoomGraphics(zelda3::Room &room)
Main namespace for the application.