diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-28 11:40:26 -0500 | 
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-28 11:40:26 -0500 | 
| commit | 2c2d9e9f39ea780b5a04159f9c62fd5540471b86 (patch) | |
| tree | ee77e44a683cdc656196f4a04a643fed72de7ad5 /src/game_data.cpp | |
| parent | b2b60f8ade218920dc3eb5304e7abb7dfa9f3a8d (diff) | |
| download | lingo-ap-tracker-2c2d9e9f39ea780b5a04159f9c62fd5540471b86.tar.gz lingo-ap-tracker-2c2d9e9f39ea780b5a04159f9c62fd5540471b86.tar.bz2 lingo-ap-tracker-2c2d9e9f39ea780b5a04159f9c62fd5540471b86.zip | |
Fix pilgrimage detection for vanilla doors
Also add new pilgrimage options.
Diffstat (limited to 'src/game_data.cpp')
| -rw-r--r-- | src/game_data.cpp | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/src/game_data.cpp b/src/game_data.cpp index 28ca598..75c5b7e 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp | |||
| @@ -58,6 +58,8 @@ struct GameData { | |||
| 58 | 58 | ||
| 59 | std::map<LingoColor, int> ap_id_by_color_; | 59 | std::map<LingoColor, int> ap_id_by_color_; | 
| 60 | 60 | ||
| 61 | std::vector<int> sunwarp_doors_; | ||
| 62 | |||
| 61 | bool loaded_area_data_ = false; | 63 | bool loaded_area_data_ = false; | 
| 62 | std::set<std::string> malconfigured_areas_; | 64 | std::set<std::string> malconfigured_areas_; | 
| 63 | 65 | ||
| @@ -125,6 +127,11 @@ struct GameData { | |||
| 125 | exit_obj.type = EntranceType::kWarp; | 127 | exit_obj.type = EntranceType::kWarp; | 
| 126 | } | 128 | } | 
| 127 | 129 | ||
| 130 | if (rooms_[from_room_id].name == "Crossroads" && | ||
| 131 | rooms_[room_id].name == "Roof") { | ||
| 132 | exit_obj.type == EntranceType::kCrossroadsRoofAccess; | ||
| 133 | } | ||
| 134 | |||
| 128 | rooms_[from_room_id].exits.push_back(exit_obj); | 135 | rooms_[from_room_id].exits.push_back(exit_obj); | 
| 129 | }; | 136 | }; | 
| 130 | 137 | ||
| @@ -401,6 +408,14 @@ struct GameData { | |||
| 401 | doors_[door_id].exclude_reduce = | 408 | doors_[door_id].exclude_reduce = | 
| 402 | !door_it.second["include_reduce"].as<bool>(); | 409 | !door_it.second["include_reduce"].as<bool>(); | 
| 403 | } | 410 | } | 
| 411 | |||
| 412 | if (doors_[door_id].name.ends_with(" Sunwarp")) { | ||
| 413 | sunwarp_doors_.push_back(door_id); | ||
| 414 | doors_[door_id].type = DoorType::kSunwarp; | ||
| 415 | } else if (doors_[door_id].item_name == | ||
| 416 | "Pilgrim Room - Sun Painting") { | ||
| 417 | doors_[door_id].type = DoorType::kSunPainting; | ||
| 418 | } | ||
| 404 | } | 419 | } | 
| 405 | } | 420 | } | 
| 406 | 421 | ||
| @@ -667,3 +682,7 @@ const std::vector<int> &GD_GetAchievementPanels() { | |||
| 667 | int GD_GetItemIdForColor(LingoColor color) { | 682 | int GD_GetItemIdForColor(LingoColor color) { | 
| 668 | return GetState().ap_id_by_color_.at(color); | 683 | return GetState().ap_id_by_color_.at(color); | 
| 669 | } | 684 | } | 
| 685 | |||
| 686 | const std::vector<int> &GD_GetSunwarpDoors() { | ||
| 687 | return GetState().sunwarp_doors_; | ||
| 688 | } | ||
