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.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/ap_state.cpp b/src/ap_state.cpp index 58670e6..62c9f3f 100644 --- a/src/ap_state.cpp +++ b/src/ap_state.cpp
@@ -57,6 +57,7 @@ struct APState {
57 std::optional<std::tuple<int, int>> player_pos; 57 std::optional<std::tuple<int, int>> player_pos;
58 58
59 DoorShuffleMode door_shuffle_mode = kNO_DOORS; 59 DoorShuffleMode door_shuffle_mode = kNO_DOORS;
60 bool group_doors = false;
60 bool color_shuffle = false; 61 bool color_shuffle = false;
61 bool painting_shuffle = false; 62 bool painting_shuffle = false;
62 int mastery_requirement = 21; 63 int mastery_requirement = 21;
@@ -128,6 +129,7 @@ struct APState {
128 player_pos = std::nullopt; 129 player_pos = std::nullopt;
129 victory_data_storage_key.clear(); 130 victory_data_storage_key.clear();
130 door_shuffle_mode = kNO_DOORS; 131 door_shuffle_mode = kNO_DOORS;
132 group_doors = false;
131 color_shuffle = false; 133 color_shuffle = false;
132 painting_shuffle = false; 134 painting_shuffle = false;
133 painting_mapping.clear(); 135 painting_mapping.clear();
@@ -212,6 +214,17 @@ struct APState {
212 data_storage_prefix = 214 data_storage_prefix =
213 "Lingo_" + std::to_string(apclient->get_player_number()) + "_"; 215 "Lingo_" + std::to_string(apclient->get_player_number()) + "_";
214 door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>(); 216 door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>();
217 if (slot_data.contains("group_doors")) {
218 group_doors = slot_data.contains("group_doors") &&
219 slot_data["group_doors"].get<int>() == 1;
220 } else {
221 // If group_doors doesn't exist yet, that means kPANELS_MODE is actually
222 // kSIMPLE_DOORS.
223 if (door_shuffle_mode == kPANELS_MODE) {
224 door_shuffle_mode = kDOORS_MODE;
225 group_doors = true;
226 }
227 }
215 color_shuffle = slot_data["shuffle_colors"].get<int>() == 1; 228 color_shuffle = slot_data["shuffle_colors"].get<int>() == 1;
216 painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1; 229 painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1;
217 mastery_requirement = slot_data["mastery_achievements"].get<int>(); 230 mastery_requirement = slot_data["mastery_achievements"].get<int>();
@@ -346,7 +359,7 @@ struct APState {
346 } else { 359 } else {
347 data_storage.erase(key); 360 data_storage.erase(key);
348 } 361 }
349 362
350 TrackerLog("Data storage " + key + " retrieved as null"); 363 TrackerLog("Data storage " + key + " retrieved as null");
351 } 364 }
352 } 365 }
@@ -426,6 +439,8 @@ bool AP_HasItem(int item_id, int quantity) {
426 439
427DoorShuffleMode AP_GetDoorShuffleMode() { return GetState().door_shuffle_mode; } 440DoorShuffleMode AP_GetDoorShuffleMode() { return GetState().door_shuffle_mode; }
428 441
442bool AP_AreDoorsGrouped() { return GetState().group_doors; }
443
429bool AP_IsColorShuffle() { return GetState().color_shuffle; } 444bool AP_IsColorShuffle() { return GetState().color_shuffle; }
430 445
431bool AP_IsPaintingShuffle() { return GetState().painting_shuffle; } 446bool AP_IsPaintingShuffle() { return GetState().painting_shuffle; }