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 8feb78b..4fd241a 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;
@@ -134,6 +135,7 @@ struct APState {
134 player_pos = std::nullopt; 135 player_pos = std::nullopt;
135 victory_data_storage_key.clear(); 136 victory_data_storage_key.clear();
136 door_shuffle_mode = kNO_DOORS; 137 door_shuffle_mode = kNO_DOORS;
138 group_doors = false;
137 color_shuffle = false; 139 color_shuffle = false;
138 painting_shuffle = false; 140 painting_shuffle = false;
139 painting_mapping.clear(); 141 painting_mapping.clear();
@@ -224,6 +226,17 @@ struct APState {
224 data_storage_prefix = 226 data_storage_prefix =
225 "Lingo_" + std::to_string(apclient->get_player_number()) + "_"; 227 "Lingo_" + std::to_string(apclient->get_player_number()) + "_";
226 door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>(); 228 door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>();
229 if (slot_data.contains("group_doors")) {
230 group_doors = slot_data.contains("group_doors") &&
231 slot_data["group_doors"].get<int>() == 1;
232 } else {
233 // If group_doors doesn't exist yet, that means kPANELS_MODE is actually
234 // kSIMPLE_DOORS.
235 if (door_shuffle_mode == kPANELS_MODE) {
236 door_shuffle_mode = kDOORS_MODE;
237 group_doors = true;
238 }
239 }
227 color_shuffle = slot_data["shuffle_colors"].get<int>() == 1; 240 color_shuffle = slot_data["shuffle_colors"].get<int>() == 1;
228 painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1; 241 painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1;
229 mastery_requirement = slot_data["mastery_achievements"].get<int>(); 242 mastery_requirement = slot_data["mastery_achievements"].get<int>();
@@ -463,6 +476,8 @@ bool AP_HasItem(int item_id, int quantity) {
463 476
464DoorShuffleMode AP_GetDoorShuffleMode() { return GetState().door_shuffle_mode; } 477DoorShuffleMode AP_GetDoorShuffleMode() { return GetState().door_shuffle_mode; }
465 478
479bool AP_AreDoorsGrouped() { return GetState().group_doors; }
480
466bool AP_IsColorShuffle() { return GetState().color_shuffle; } 481bool AP_IsColorShuffle() { return GetState().color_shuffle; }
467 482
468bool AP_IsPaintingShuffle() { return GetState().painting_shuffle; } 483bool AP_IsPaintingShuffle() { return GetState().painting_shuffle; }