#ifndef TOOLS_DATAPACKER_CONTAINER_H_ #define TOOLS_DATAPACKER_CONTAINER_H_ #include #include #include #include #include "proto/data.pb.h" namespace com::fourisland::lingo2_archipelago { class Container { public: uint64_t FindOrAddMap(std::string map_name); uint64_t FindOrAddRoom(std::optional map_name, std::string room_name, std::optional map_fallback); uint64_t FindOrAddPainting(std::optional map_name, std::optional room_name, std::string painting_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddPort(std::optional map_name, std::optional room_name, std::string port_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddPanel(std::optional map_name, std::optional room_name, std::string panel_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddLetter(std::string key, bool level2); uint64_t FindLetterByName(std::string letter_name); uint64_t FindOrAddEnding(std::string ending_name); uint64_t FindOrAddMastery(std::optional map_name, std::optional room_name, std::string mastery_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddKeyholder(std::optional map_name, std::optional room_name, std::string keyholder_name, std::optional map_fallback, std::optional room_fallback); uint64_t FindOrAddDoor(std::optional map_name, std::string door_name, std::optional map_fallback); void AddConnection(const Connection& connection); uint64_t FindOrAddProgressive(std::string prog_name); uint64_t FindOrAddDoorGroup(std::string group_name); AllObjects& all_objects() { return all_objects_; } private: AllObjects all_objects_; std::map map_id_by_name_; std::map> room_id_by_map_room_names_; std::map>> painting_id_by_map_room_painting_names_; std::map>> port_id_by_map_room_port_names_; std::map>> panel_id_by_map_room_panel_names_; std::map letter_id_by_name_; std::map>> mastery_id_by_map_room_mastery_names_; std::map>> keyholder_id_by_map_room_keyholder_names_; std::map> door_id_by_map_door_names_; std::map ending_id_by_name_; std::map progressive_id_by_name_; std::map door_group_id_by_name_; }; } // namespace com::fourisland::lingo2_archipelago #endif /* TOOLS_DATAPACKER_CONTAINER_H_ */ 19'>19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171