From 9bf6a50624284ab7422f56375b3e57c894200faf Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 25 Aug 2023 22:14:51 -0400 Subject: Panelsanity support --- src/ap_state.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/ap_state.cpp') 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 { bool painting_shuffle = false; int mastery_requirement = 21; int level_2_requirement = 223; - bool reduce_checks = false; + LocationChecks location_checks = kNORMAL_LOCATIONS; VictoryCondition victory_condition = kTHE_END; std::map painting_mapping; @@ -122,7 +122,7 @@ struct APState { painting_mapping.clear(); mastery_requirement = 21; level_2_requirement = 223; - reduce_checks = false; + location_checks = kNORMAL_LOCATIONS; victory_condition = kTHE_END; connected = false; @@ -209,12 +209,11 @@ struct APState { data_storage_prefix = "Lingo_" + std::to_string(apclient->get_player_number()) + "_"; door_shuffle_mode = slot_data["shuffle_doors"].get(); - color_shuffle = slot_data["shuffle_colors"].get(); - painting_shuffle = slot_data["shuffle_paintings"].get(); + color_shuffle = slot_data["shuffle_colors"].get() == 1; + painting_shuffle = slot_data["shuffle_paintings"].get() == 1; mastery_requirement = slot_data["mastery_achievements"].get(); level_2_requirement = slot_data["level_2_requirement"].get(); - reduce_checks = (door_shuffle_mode == kNO_DOORS) && - slot_data["reduce_checks"].get(); + location_checks = slot_data["location_checks"].get(); victory_condition = slot_data["victory_condition"].get(); @@ -444,7 +443,16 @@ int AP_GetMasteryRequirement() { return GetState().mastery_requirement; } int AP_GetLevel2Requirement() { return GetState().level_2_requirement; } -bool AP_IsReduceChecks() { return GetState().reduce_checks; } +bool AP_IsLocationVisible(int classification) { + switch (GetState().location_checks) { + case kNORMAL_LOCATIONS: + return classification & kLOCATION_NORMAL; + case kREDUCED_LOCATIONS: + return classification & kLOCATION_REDUCED; + case kPANELSANITY: + return classification & kLOCATION_INSANITY; + } +} VictoryCondition AP_GetVictoryCondition() { return GetState().victory_condition; -- cgit 1.4.1