diff options
Diffstat (limited to 'tools/assign_ids')
-rw-r--r-- | tools/assign_ids/CMakeLists.txt | 4 | ||||
-rw-r--r-- | tools/assign_ids/main.cpp | 30 |
2 files changed, 32 insertions, 2 deletions
diff --git a/tools/assign_ids/CMakeLists.txt b/tools/assign_ids/CMakeLists.txt index 0a9f62d..bc89347 100644 --- a/tools/assign_ids/CMakeLists.txt +++ b/tools/assign_ids/CMakeLists.txt | |||
@@ -5,5 +5,5 @@ add_executable(assign_ids | |||
5 | ) | 5 | ) |
6 | set_property(TARGET assign_ids PROPERTY CXX_STANDARD 20) | 6 | set_property(TARGET assign_ids PROPERTY CXX_STANDARD 20) |
7 | set_property(TARGET assign_ids PROPERTY CXX_STANDARD_REQUIRED ON) | 7 | set_property(TARGET assign_ids PROPERTY CXX_STANDARD_REQUIRED ON) |
8 | target_include_directories(assign_ids PUBLIC ${CMAKE_BINARY_DIR}) | 8 | target_include_directories(assign_ids PUBLIC ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/tools) |
9 | target_link_libraries(assign_ids PUBLIC protos protobuf::libprotobuf) | 9 | target_link_libraries(assign_ids PUBLIC protos protobuf::libprotobuf util) |
diff --git a/tools/assign_ids/main.cpp b/tools/assign_ids/main.cpp index f10a21c..eba4fd6 100644 --- a/tools/assign_ids/main.cpp +++ b/tools/assign_ids/main.cpp | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <string> | 9 | #include <string> |
10 | 10 | ||
11 | #include "proto/human.pb.h" | 11 | #include "proto/human.pb.h" |
12 | #include "util/naming.h" | ||
12 | 13 | ||
13 | namespace com::fourisland::lingo2_archipelago { | 14 | namespace com::fourisland::lingo2_archipelago { |
14 | namespace { | 15 | namespace { |
@@ -155,6 +156,35 @@ class AssignIds { | |||
155 | panels[h_panel.name()] = next_id_++; | 156 | panels[h_panel.name()] = next_id_++; |
156 | } | 157 | } |
157 | } | 158 | } |
159 | |||
160 | for (const HumanLetter& h_letter : h_room.letters()) { | ||
161 | std::string lettername = | ||
162 | GetLetterName(h_letter.key(), h_letter.double_()); | ||
163 | |||
164 | if (!id_mappings_.letters().contains(lettername)) { | ||
165 | auto& letters = *id_mappings_.mutable_letters(); | ||
166 | letters[lettername] = next_id_++; | ||
167 | } | ||
168 | } | ||
169 | |||
170 | for (const HumanMastery& h_mastery : h_room.masteries()) { | ||
171 | if (!id_mappings_.maps().contains(current_map_name) || | ||
172 | !id_mappings_.maps() | ||
173 | .at(current_map_name) | ||
174 | .rooms() | ||
175 | .contains(h_room.name()) || | ||
176 | !id_mappings_.maps() | ||
177 | .at(current_map_name) | ||
178 | .rooms() | ||
179 | .at(h_room.name()) | ||
180 | .masteries() | ||
181 | .contains(h_mastery.name())) { | ||
182 | auto& maps = *id_mappings_.mutable_maps(); | ||
183 | auto& rooms = *maps[current_map_name].mutable_rooms(); | ||
184 | auto& masteries = *rooms[h_room.name()].mutable_masteries(); | ||
185 | masteries[h_mastery.name()] = next_id_++; | ||
186 | } | ||
187 | } | ||
158 | } | 188 | } |
159 | 189 | ||
160 | private: | 190 | private: |