diff 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 | } | ||
