about summary refs log tree commit diff stats
path: root/src/ap_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ap_state.cpp')
-rw-r--r--src/ap_state.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ap_state.cpp b/src/ap_state.cpp index f8d4ee0..fbd8d12 100644 --- a/src/ap_state.cpp +++ b/src/ap_state.cpp
@@ -60,6 +60,7 @@ struct APState {
60 std::optional<std::tuple<int, int>> player_pos; 60 std::optional<std::tuple<int, int>> player_pos;
61 61
62 DoorShuffleMode door_shuffle_mode = kNO_DOORS; 62 DoorShuffleMode door_shuffle_mode = kNO_DOORS;
63 bool group_doors = false;
63 bool color_shuffle = false; 64 bool color_shuffle = false;
64 bool painting_shuffle = false; 65 bool painting_shuffle = false;
65 int mastery_requirement = 21; 66 int mastery_requirement = 21;
@@ -140,6 +141,7 @@ struct APState {
140 player_pos = std::nullopt; 141 player_pos = std::nullopt;
141 victory_data_storage_key.clear(); 142 victory_data_storage_key.clear();
142 door_shuffle_mode = kNO_DOORS; 143 door_shuffle_mode = kNO_DOORS;
144 group_doors = false;
143 color_shuffle = false; 145 color_shuffle = false;
144 painting_shuffle = false; 146 painting_shuffle = false;
145 painting_mapping.clear(); 147 painting_mapping.clear();
@@ -236,6 +238,17 @@ struct APState {
236 data_storage_prefix = 238 data_storage_prefix =
237 fmt::format("Lingo_{}_", apclient->get_player_number()); 239 fmt::format("Lingo_{}_", apclient->get_player_number());
238 door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>(); 240 door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>();
241 if (slot_data.contains("group_doors")) {
242 group_doors = slot_data.contains("group_doors") &&
243 slot_data["group_doors"].get<int>() == 1;
244 } else {
245 // If group_doors doesn't exist yet, that means kPANELS_MODE is actually
246 // kSIMPLE_DOORS.
247 if (door_shuffle_mode == kPANELS_MODE) {
248 door_shuffle_mode = kDOORS_MODE;
249 group_doors = true;
250 }
251 }
239 color_shuffle = slot_data["shuffle_colors"].get<int>() == 1; 252 color_shuffle = slot_data["shuffle_colors"].get<int>() == 1;
240 painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1; 253 painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1;
241 mastery_requirement = slot_data["mastery_achievements"].get<int>(); 254 mastery_requirement = slot_data["mastery_achievements"].get<int>();
@@ -534,6 +547,8 @@ std::string AP_GetItemName(int item_id) {
534 547
535DoorShuffleMode AP_GetDoorShuffleMode() { return GetState().door_shuffle_mode; } 548DoorShuffleMode AP_GetDoorShuffleMode() { return GetState().door_shuffle_mode; }
536 549
550bool AP_AreDoorsGrouped() { return GetState().group_doors; }
551
537bool AP_IsColorShuffle() { return GetState().color_shuffle; } 552bool AP_IsColorShuffle() { return GetState().color_shuffle; }
538 553
539bool AP_IsPaintingShuffle() { return GetState().painting_shuffle; } 554bool AP_IsPaintingShuffle() { return GetState().painting_shuffle; }