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