diff options
Diffstat (limited to 'tools/datapacker/container.cpp')
-rw-r--r-- | tools/datapacker/container.cpp | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/tools/datapacker/container.cpp b/tools/datapacker/container.cpp index 0d3417e..4a656b3 100644 --- a/tools/datapacker/container.cpp +++ b/tools/datapacker/container.cpp | |||
@@ -79,7 +79,7 @@ uint64_t Container::FindOrAddPainting( | |||
79 | auto it = room_container.find(painting_name); | 79 | auto it = room_container.find(painting_name); |
80 | if (it == room_container.end()) { | 80 | if (it == room_container.end()) { |
81 | uint64_t new_id = all_objects_.paintings_size(); | 81 | uint64_t new_id = all_objects_.paintings_size(); |
82 | Painting* painting = all_objects_.add_paintings(); | 82 | PaintingData* painting = all_objects_.add_paintings(); |
83 | painting->set_id(new_id); | 83 | painting->set_id(new_id); |
84 | painting->set_room_id(FindOrAddRoom(map_name, *room_name, std::nullopt)); | 84 | painting->set_room_id(FindOrAddRoom(map_name, *room_name, std::nullopt)); |
85 | painting->set_name(painting_name); | 85 | painting->set_name(painting_name); |
@@ -289,7 +289,7 @@ uint64_t Container::FindOrAddKeyholder( | |||
289 | auto it = room_container.find(keyholder_name); | 289 | auto it = room_container.find(keyholder_name); |
290 | if (it == room_container.end()) { | 290 | if (it == room_container.end()) { |
291 | uint64_t new_id = all_objects_.keyholders_size(); | 291 | uint64_t new_id = all_objects_.keyholders_size(); |
292 | Keyholder* keyholder = all_objects_.add_keyholders(); | 292 | KeyholderData* keyholder = all_objects_.add_keyholders(); |
293 | keyholder->set_id(new_id); | 293 | keyholder->set_id(new_id); |
294 | keyholder->set_room_id(FindOrAddRoom(map_name, *room_name, std::nullopt)); | 294 | keyholder->set_room_id(FindOrAddRoom(map_name, *room_name, std::nullopt)); |
295 | keyholder->set_name(keyholder_name); | 295 | keyholder->set_name(keyholder_name); |
@@ -331,6 +331,40 @@ uint64_t Container::FindOrAddDoor(std::optional<std::string> map_name, | |||
331 | } | 331 | } |
332 | } | 332 | } |
333 | 333 | ||
334 | uint64_t Container::FindOrAddProgressive(std::string prog_name) { | ||
335 | auto it = progressive_id_by_name_.find(prog_name); | ||
336 | |||
337 | if (it == progressive_id_by_name_.end()) { | ||
338 | uint64_t new_id = all_objects_.progressives_size(); | ||
339 | Progressive* progressive = all_objects_.add_progressives(); | ||
340 | progressive->set_id(new_id); | ||
341 | progressive->set_name(prog_name); | ||
342 | |||
343 | progressive_id_by_name_[prog_name] = new_id; | ||
344 | |||
345 | return new_id; | ||
346 | } else { | ||
347 | return it->second; | ||
348 | } | ||
349 | } | ||
350 | |||
351 | uint64_t Container::FindOrAddDoorGroup(std::string group_name) { | ||
352 | auto it = door_group_id_by_name_.find(group_name); | ||
353 | |||
354 | if (it == door_group_id_by_name_.end()) { | ||
355 | uint64_t new_id = all_objects_.door_groups_size(); | ||
356 | DoorGroup* door_group = all_objects_.add_door_groups(); | ||
357 | door_group->set_id(new_id); | ||
358 | door_group->set_name(group_name); | ||
359 | |||
360 | door_group_id_by_name_[group_name] = new_id; | ||
361 | |||
362 | return new_id; | ||
363 | } else { | ||
364 | return it->second; | ||
365 | } | ||
366 | } | ||
367 | |||
334 | void Container::AddConnection(const Connection& connection) { | 368 | void Container::AddConnection(const Connection& connection) { |
335 | *all_objects_.add_connections() = connection; | 369 | *all_objects_.add_connections() = connection; |
336 | } | 370 | } |