From f4945731a958371d206ccfa4a34486b263be5b21 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 11 Mar 2025 23:18:33 -0400 Subject: Added color indicators to subway map --- src/game_data.cpp | 58 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'src/game_data.cpp') diff --git a/src/game_data.cpp b/src/game_data.cpp index a4a441d..7c221e9 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp @@ -12,32 +12,6 @@ namespace { -LingoColor GetColorForString(const std::string &str) { - if (str == "black") { - return LingoColor::kBlack; - } else if (str == "red") { - return LingoColor::kRed; - } else if (str == "blue") { - return LingoColor::kBlue; - } else if (str == "yellow") { - return LingoColor::kYellow; - } else if (str == "orange") { - return LingoColor::kOrange; - } else if (str == "green") { - return LingoColor::kGreen; - } else if (str == "gray") { - return LingoColor::kGray; - } else if (str == "brown") { - return LingoColor::kBrown; - } else if (str == "purple") { - return LingoColor::kPurple; - } else { - TrackerLog(fmt::format("Invalid color: {}", str)); - - return LingoColor::kNone; - } -} - struct GameData { std::vector rooms_; std::vector doors_; @@ -84,7 +58,7 @@ struct GameData { ids_config["special_items"][color_name]) { std::string input_name = color_name; input_name[0] = std::tolower(input_name[0]); - ap_id_by_color_[GetColorForString(input_name)] = + ap_id_by_color_[GetLingoColorForString(input_name)] = ids_config["special_items"][color_name].as(); } else { TrackerLog(fmt::format("Missing AP item ID for color {}", color_name)); @@ -181,12 +155,12 @@ struct GameData { if (panel_it.second["colors"]) { if (panel_it.second["colors"].IsScalar()) { - panels_[panel_id].colors.push_back(GetColorForString( + panels_[panel_id].colors.push_back(GetLingoColorForString( panel_it.second["colors"].as())); } else { for (const auto &color_node : panel_it.second["colors"]) { panels_[panel_id].colors.push_back( - GetColorForString(color_node.as())); + GetLingoColorForString(color_node.as())); } } } @@ -1010,3 +984,29 @@ std::optional GD_GetSubwayItemForPainting(const std::string &painting_id) { int GD_GetSubwayItemForSunwarp(const SubwaySunwarp &sunwarp) { return GetState().subway_item_by_sunwarp_.at(sunwarp); } + +LingoColor GetLingoColorForString(const std::string &str) { + if (str == "black") { + return LingoColor::kBlack; + } else if (str == "red") { + return LingoColor::kRed; + } else if (str == "blue") { + return LingoColor::kBlue; + } else if (str == "yellow") { + return LingoColor::kYellow; + } else if (str == "orange") { + return LingoColor::kOrange; + } else if (str == "green") { + return LingoColor::kGreen; + } else if (str == "gray") { + return LingoColor::kGray; + } else if (str == "brown") { + return LingoColor::kBrown; + } else if (str == "purple") { + return LingoColor::kPurple; + } else { + TrackerLog(fmt::format("Invalid color: {}", str)); + + return LingoColor::kNone; + } +} -- cgit 1.4.1