about summary refs log tree commit diff stats
path: root/src/game_data.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game_data.cpp')
-rw-r--r--src/game_data.cpp63
1 files changed, 31 insertions, 32 deletions
diff --git a/src/game_data.cpp b/src/game_data.cpp index 85f7f51..77e435a 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp
@@ -1,11 +1,6 @@
1#include "game_data.h" 1#include "game_data.h"
2 2
3#include <wx/wxprec.h> 3#include <fmt/core.h>
4
5#ifndef WX_PRECOMP
6#include <wx/wx.h>
7#endif
8
9#include <hkutil/string.h> 4#include <hkutil/string.h>
10#include <yaml-cpp/yaml.h> 5#include <yaml-cpp/yaml.h>
11 6
@@ -13,6 +8,7 @@
13#include <sstream> 8#include <sstream>
14 9
15#include "global.h" 10#include "global.h"
11#include "logger.h"
16 12
17namespace { 13namespace {
18 14
@@ -36,7 +32,7 @@ LingoColor GetColorForString(const std::string &str) {
36 } else if (str == "purple") { 32 } else if (str == "purple") {
37 return LingoColor::kPurple; 33 return LingoColor::kPurple;
38 } else { 34 } else {
39 wxLogError("Invalid color: %s", str); 35 TrackerLog(fmt::format("Invalid color: {}", str));
40 36
41 return LingoColor::kNone; 37 return LingoColor::kNone;
42 } 38 }
@@ -88,7 +84,7 @@ struct GameData {
88 ap_id_by_color_[GetColorForString(input_name)] = 84 ap_id_by_color_[GetColorForString(input_name)] =
89 ids_config["special_items"][color_name].as<int>(); 85 ids_config["special_items"][color_name].as<int>();
90 } else { 86 } else {
91 wxLogError("Missing AP item ID for color %s", color_name); 87 TrackerLog(fmt::format("Missing AP item ID for color {}", color_name));
92 } 88 }
93 }; 89 };
94 90
@@ -165,7 +161,8 @@ struct GameData {
165 // This shouldn't happen. 161 // This shouldn't happen.
166 std::ostringstream formatted; 162 std::ostringstream formatted;
167 formatted << entrance_it; 163 formatted << entrance_it;
168 wxLogError("Error reading game data: %s", formatted.str()); 164 TrackerLog(
165 fmt::format("Error reading game data: {}", formatted.str()));
169 break; 166 break;
170 } 167 }
171 } 168 }
@@ -290,8 +287,9 @@ struct GameData {
290 [panels_[panel_id].name] 287 [panels_[panel_id].name]
291 .as<int>(); 288 .as<int>();
292 } else { 289 } else {
293 wxLogError("Missing AP location ID for panel %s - %s", 290 TrackerLog(fmt::format("Missing AP location ID for panel {} - {}",
294 rooms_[room_id].name, panels_[panel_id].name); 291 rooms_[room_id].name,
292 panels_[panel_id].name));
295 } 293 }
296 } 294 }
297 } 295 }
@@ -354,8 +352,9 @@ struct GameData {
354 [doors_[door_id].name]["item"] 352 [doors_[door_id].name]["item"]
355 .as<int>(); 353 .as<int>();
356 } else { 354 } else {
357 wxLogError("Missing AP item ID for door %s - %s", 355 TrackerLog(fmt::format("Missing AP item ID for door {} - {}",
358 rooms_[room_id].name, doors_[door_id].name); 356 rooms_[room_id].name,
357 doors_[door_id].name));
359 } 358 }
360 } 359 }
361 360
@@ -369,8 +368,8 @@ struct GameData {
369 ids_config["door_groups"][doors_[door_id].group_name] 368 ids_config["door_groups"][doors_[door_id].group_name]
370 .as<int>(); 369 .as<int>();
371 } else { 370 } else {
372 wxLogError("Missing AP item ID for door group %s", 371 TrackerLog(fmt::format("Missing AP item ID for door group {}",
373 doors_[door_id].group_name); 372 doors_[door_id].group_name));
374 } 373 }
375 } 374 }
376 375
@@ -380,11 +379,11 @@ struct GameData {
380 } else if (!door_it.second["skip_location"] && 379 } else if (!door_it.second["skip_location"] &&
381 !door_it.second["event"]) { 380 !door_it.second["event"]) {
382 if (has_external_panels) { 381 if (has_external_panels) {
383 wxLogError( 382 TrackerLog(fmt::format(
384 "%s - %s has panels from other rooms but does not have an " 383 "{} - {} has panels from other rooms but does not have an "
385 "explicit location name and is not marked skip_location or " 384 "explicit location name and is not marked skip_location or "
386 "event", 385 "event",
387 rooms_[room_id].name, doors_[door_id].name); 386 rooms_[room_id].name, doors_[door_id].name));
388 } 387 }
389 388
390 doors_[door_id].location_name = 389 doors_[door_id].location_name =
@@ -404,8 +403,9 @@ struct GameData {
404 [doors_[door_id].name]["location"] 403 [doors_[door_id].name]["location"]
405 .as<int>(); 404 .as<int>();
406 } else { 405 } else {
407 wxLogError("Missing AP location ID for door %s - %s", 406 TrackerLog(fmt::format("Missing AP location ID for door {} - {}",
408 rooms_[room_id].name, doors_[door_id].name); 407 rooms_[room_id].name,
408 doors_[door_id].name));
409 } 409 }
410 } 410 }
411 411
@@ -473,8 +473,8 @@ struct GameData {
473 progressive_item_id = 473 progressive_item_id =
474 ids_config["progression"][progressive_item_name].as<int>(); 474 ids_config["progression"][progressive_item_name].as<int>();
475 } else { 475 } else {
476 wxLogError("Missing AP item ID for progressive item %s", 476 TrackerLog(fmt::format("Missing AP item ID for progressive item {}",
477 progressive_item_name); 477 progressive_item_name));
478 } 478 }
479 479
480 int index = 1; 480 int index = 1;
@@ -553,14 +553,13 @@ struct GameData {
553 int area_id = AddOrGetArea(area_name); 553 int area_id = AddOrGetArea(area_name);
554 MapArea &map_area = map_areas_[area_id]; 554 MapArea &map_area = map_areas_[area_id];
555 // room field should be the original room ID 555 // room field should be the original room ID
556 map_area.locations.push_back( 556 map_area.locations.push_back({.name = section_name,
557 {.name = section_name, 557 .ap_location_name = location_name,
558 .ap_location_name = location_name, 558 .ap_location_id = panel.ap_location_id,
559 .ap_location_id = panel.ap_location_id, 559 .room = panel.room,
560 .room = panel.room, 560 .panels = {panel.id},
561 .panels = {panel.id}, 561 .classification = classification,
562 .classification = classification, 562 .hunt = panel.hunt});
563 .hunt = panel.hunt});
564 locations_by_name[location_name] = {area_id, 563 locations_by_name[location_name] = {area_id,
565 map_area.locations.size() - 1}; 564 map_area.locations.size() - 1};
566 } 565 }
@@ -638,7 +637,7 @@ struct GameData {
638 637
639 // Report errors. 638 // Report errors.
640 for (const std::string &area : malconfigured_areas_) { 639 for (const std::string &area : malconfigured_areas_) {
641 wxLogError("Area data not found for: %s", area); 640 TrackerLog(fmt::format("Area data not found for: {}", area));
642 } 641 }
643 642
644 // Read in subway items. 643 // Read in subway items.
@@ -709,7 +708,7 @@ struct GameData {
709 708
710 for (const auto &[tag, items] : subway_tags) { 709 for (const auto &[tag, items] : subway_tags) {
711 if (items.size() == 1) { 710 if (items.size() == 1) {
712 wxLogWarning("Singleton subway item tag: %s", tag); 711 TrackerLog(fmt::format("Singleton subway item tag: {}", tag));
713 } 712 }
714 } 713 }
715 } 714 }