yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
rom_settings.h
Go to the documentation of this file.
1#ifndef YAZE_CORE_ROM_SETTINGS_H
2#define YAZE_CORE_ROM_SETTINGS_H
3
4#include <optional>
5#include <string>
6#include <unordered_map>
7
8namespace yaze::core {
9
10namespace RomAddressKey {
11constexpr char kExpandedMessageStart[] = "expanded_message_start";
12constexpr char kExpandedMessageEnd[] = "expanded_message_end";
13constexpr char kExpandedMusicHook[] = "expanded_music_hook";
14constexpr char kExpandedMusicMain[] = "expanded_music_main";
15constexpr char kExpandedMusicAux[] = "expanded_music_aux";
16constexpr char kOverworldMessagesExpanded[] = "overworld_messages_expanded";
17constexpr char kOverworldMapParentExpanded[] = "overworld_map_parent_expanded";
19 "overworld_transition_pos_x_expanded";
21 "overworld_transition_pos_y_expanded";
23 "overworld_screen_change_1_expanded";
25 "overworld_screen_change_2_expanded";
27 "overworld_screen_change_3_expanded";
29 "overworld_screen_change_4_expanded";
30constexpr char kOverworldMap16Expanded[] = "overworld_map16_expanded";
31constexpr char kOverworldMap32TrExpanded[] = "overworld_map32_tr_expanded";
32constexpr char kOverworldMap32BlExpanded[] = "overworld_map32_bl_expanded";
33constexpr char kOverworldMap32BrExpanded[] = "overworld_map32_br_expanded";
35 "overworld_entrance_map_expanded";
37 "overworld_entrance_pos_expanded";
39 "overworld_entrance_id_expanded";
41 "overworld_entrance_flag_expanded";
42constexpr char kOverworldExpandedPtrMarker[] = "overworld_ptr_marker_expanded";
43constexpr char kOverworldExpandedPtrHigh[] = "overworld_ptr_high_expanded";
44constexpr char kOverworldExpandedPtrLow[] = "overworld_ptr_low_expanded";
45constexpr char kOverworldExpandedPtrMagic[] = "overworld_ptr_magic_expanded";
46constexpr char kDungeonMapTile16Expanded[] = "dungeon_map_tile16_expanded";
47constexpr char kOverworldGfxPtr1[] = "overworld_gfx_ptr1";
48constexpr char kOverworldGfxPtr2[] = "overworld_gfx_ptr2";
49constexpr char kOverworldGfxPtr3[] = "overworld_gfx_ptr3";
50} // namespace RomAddressKey
51
53 std::unordered_map<std::string, uint32_t> addresses;
54
55 bool empty() const { return addresses.empty(); }
56
57 std::optional<uint32_t> GetAddress(const std::string& key) const {
58 auto it = addresses.find(key);
59 if (it == addresses.end()) {
60 return std::nullopt;
61 }
62 return it->second;
63 }
64};
65
67 public:
68 static RomSettings& Get() {
69 static RomSettings instance;
70 return instance;
71 }
72
74 overrides_ = overrides;
75 }
76
78
80
81 uint32_t GetAddressOr(const std::string& key, uint32_t default_value) const {
82 auto value = overrides_.GetAddress(key);
83 return value ? *value : default_value;
84 }
85
86 private:
88};
89
90} // namespace yaze::core
91
92#endif // YAZE_CORE_ROM_SETTINGS_H
const RomAddressOverrides & address_overrides() const
static RomSettings & Get()
uint32_t GetAddressOr(const std::string &key, uint32_t default_value) const
RomAddressOverrides overrides_
void SetAddressOverrides(const RomAddressOverrides &overrides)
constexpr char kOverworldExpandedPtrHigh[]
constexpr char kOverworldEntrancePosExpanded[]
constexpr char kExpandedMusicHook[]
constexpr char kExpandedMusicMain[]
constexpr char kOverworldMap16Expanded[]
constexpr char kOverworldExpandedPtrMagic[]
constexpr char kOverworldGfxPtr3[]
constexpr char kOverworldTransitionPosYExpanded[]
constexpr char kExpandedMessageEnd[]
constexpr char kOverworldMap32BlExpanded[]
constexpr char kOverworldScreenChange4Expanded[]
constexpr char kOverworldExpandedPtrMarker[]
constexpr char kOverworldEntranceMapExpanded[]
constexpr char kOverworldEntranceFlagExpanded[]
constexpr char kExpandedMessageStart[]
constexpr char kOverworldMapParentExpanded[]
constexpr char kOverworldEntranceIdExpanded[]
constexpr char kOverworldScreenChange1Expanded[]
constexpr char kOverworldMap32TrExpanded[]
constexpr char kOverworldExpandedPtrLow[]
constexpr char kOverworldMap32BrExpanded[]
constexpr char kOverworldGfxPtr1[]
constexpr char kOverworldMessagesExpanded[]
constexpr char kExpandedMusicAux[]
constexpr char kOverworldScreenChange2Expanded[]
constexpr char kOverworldGfxPtr2[]
constexpr char kOverworldScreenChange3Expanded[]
constexpr char kDungeonMapTile16Expanded[]
constexpr char kOverworldTransitionPosXExpanded[]
std::unordered_map< std::string, uint32_t > addresses
std::optional< uint32_t > GetAddress(const std::string &key) const