summary refs log tree commit diff stats
path: root/tools/assign_ids
diff options
context:
space:
mode:
Diffstat (limited to 'tools/assign_ids')
-rw-r--r--tools/assign_ids/CMakeLists.txt4
-rw-r--r--tools/assign_ids/main.cpp30
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)
6set_property(TARGET assign_ids PROPERTY CXX_STANDARD 20) 6set_property(TARGET assign_ids PROPERTY CXX_STANDARD 20)
7set_property(TARGET assign_ids PROPERTY CXX_STANDARD_REQUIRED ON) 7set_property(TARGET assign_ids PROPERTY CXX_STANDARD_REQUIRED ON)
8target_include_directories(assign_ids PUBLIC ${CMAKE_BINARY_DIR}) 8target_include_directories(assign_ids PUBLIC ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/tools)
9target_link_libraries(assign_ids PUBLIC protos protobuf::libprotobuf) 9target_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
13namespace com::fourisland::lingo2_archipelago { 14namespace com::fourisland::lingo2_archipelago {
14namespace { 15namespace {
@@ -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: