diff options
Diffstat (limited to 'src/ap_state.cpp')
-rw-r--r-- | src/ap_state.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/ap_state.cpp b/src/ap_state.cpp index 02f1f5a..ced4f83 100644 --- a/src/ap_state.cpp +++ b/src/ap_state.cpp | |||
@@ -62,7 +62,7 @@ struct APState { | |||
62 | bool painting_shuffle = false; | 62 | bool painting_shuffle = false; |
63 | int mastery_requirement = 21; | 63 | int mastery_requirement = 21; |
64 | int level_2_requirement = 223; | 64 | int level_2_requirement = 223; |
65 | bool reduce_checks = false; | 65 | LocationChecks location_checks = kNORMAL_LOCATIONS; |
66 | VictoryCondition victory_condition = kTHE_END; | 66 | VictoryCondition victory_condition = kTHE_END; |
67 | 67 | ||
68 | std::map<std::string, std::string> painting_mapping; | 68 | std::map<std::string, std::string> painting_mapping; |
@@ -122,7 +122,7 @@ struct APState { | |||
122 | painting_mapping.clear(); | 122 | painting_mapping.clear(); |
123 | mastery_requirement = 21; | 123 | mastery_requirement = 21; |
124 | level_2_requirement = 223; | 124 | level_2_requirement = 223; |
125 | reduce_checks = false; | 125 | location_checks = kNORMAL_LOCATIONS; |
126 | victory_condition = kTHE_END; | 126 | victory_condition = kTHE_END; |
127 | 127 | ||
128 | connected = false; | 128 | connected = false; |
@@ -209,12 +209,11 @@ struct APState { | |||
209 | data_storage_prefix = | 209 | data_storage_prefix = |
210 | "Lingo_" + std::to_string(apclient->get_player_number()) + "_"; | 210 | "Lingo_" + std::to_string(apclient->get_player_number()) + "_"; |
211 | door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>(); | 211 | door_shuffle_mode = slot_data["shuffle_doors"].get<DoorShuffleMode>(); |
212 | color_shuffle = slot_data["shuffle_colors"].get<bool>(); | 212 | color_shuffle = slot_data["shuffle_colors"].get<int>() == 1; |
213 | painting_shuffle = slot_data["shuffle_paintings"].get<bool>(); | 213 | painting_shuffle = slot_data["shuffle_paintings"].get<int>() == 1; |
214 | mastery_requirement = slot_data["mastery_achievements"].get<int>(); | 214 | mastery_requirement = slot_data["mastery_achievements"].get<int>(); |
215 | level_2_requirement = slot_data["level_2_requirement"].get<int>(); | 215 | level_2_requirement = slot_data["level_2_requirement"].get<int>(); |
216 | reduce_checks = (door_shuffle_mode == kNO_DOORS) && | 216 | location_checks = slot_data["location_checks"].get<LocationChecks>(); |
217 | slot_data["reduce_checks"].get<bool>(); | ||
218 | victory_condition = | 217 | victory_condition = |
219 | slot_data["victory_condition"].get<VictoryCondition>(); | 218 | slot_data["victory_condition"].get<VictoryCondition>(); |
220 | 219 | ||
@@ -444,7 +443,16 @@ int AP_GetMasteryRequirement() { return GetState().mastery_requirement; } | |||
444 | 443 | ||
445 | int AP_GetLevel2Requirement() { return GetState().level_2_requirement; } | 444 | int AP_GetLevel2Requirement() { return GetState().level_2_requirement; } |
446 | 445 | ||
447 | bool AP_IsReduceChecks() { return GetState().reduce_checks; } | 446 | bool AP_IsLocationVisible(int classification) { |
447 | switch (GetState().location_checks) { | ||
448 | case kNORMAL_LOCATIONS: | ||
449 | return classification & kLOCATION_NORMAL; | ||
450 | case kREDUCED_LOCATIONS: | ||
451 | return classification & kLOCATION_REDUCED; | ||
452 | case kPANELSANITY: | ||
453 | return classification & kLOCATION_INSANITY; | ||
454 | } | ||
455 | } | ||
448 | 456 | ||
449 | VictoryCondition AP_GetVictoryCondition() { | 457 | VictoryCondition AP_GetVictoryCondition() { |
450 | return GetState().victory_condition; | 458 | return GetState().victory_condition; |