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.cpp19
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() {
667int GD_GetItemIdForColor(LingoColor color) { 682int 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
686const std::vector<int> &GD_GetSunwarpDoors() {
687 return GetState().sunwarp_doors_;
688}