diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-04-21 14:36:15 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-04-21 14:36:15 -0400 |
commit | da8f3caeee5b01c38db30ebb146b76dc41f9ca74 (patch) | |
tree | 476bad744465ffe4421e8915f81574cf481f8051 /src | |
parent | 85b4303b60bde56c16ca0c23f9ca2407e3f8b50c (diff) | |
download | lingo-ap-tracker-da8f3caeee5b01c38db30ebb146b76dc41f9ca74.tar.gz lingo-ap-tracker-da8f3caeee5b01c38db30ebb146b76dc41f9ca74.tar.bz2 lingo-ap-tracker-da8f3caeee5b01c38db30ebb146b76dc41f9ca74.zip |
Expand sphere 1 in door shuffle + no ECH
Diffstat (limited to 'src')
-rw-r--r-- | src/ap_state.cpp | 17 | ||||
-rw-r--r-- | src/game_data.cpp | 4 | ||||
-rw-r--r-- | src/game_data.h | 1 |
3 files changed, 19 insertions, 3 deletions
diff --git a/src/ap_state.cpp b/src/ap_state.cpp index aeed914..9aceef6 100644 --- a/src/ap_state.cpp +++ b/src/ap_state.cpp | |||
@@ -473,16 +473,27 @@ int AP_GetMasteryRequirement() { return GetState().mastery_requirement; } | |||
473 | int AP_GetLevel2Requirement() { return GetState().level_2_requirement; } | 473 | int AP_GetLevel2Requirement() { return GetState().level_2_requirement; } |
474 | 474 | ||
475 | bool AP_IsLocationVisible(int classification) { | 475 | bool AP_IsLocationVisible(int classification) { |
476 | int world_state = 0; | ||
477 | |||
476 | switch (GetState().location_checks) { | 478 | switch (GetState().location_checks) { |
477 | case kNORMAL_LOCATIONS: | 479 | case kNORMAL_LOCATIONS: |
478 | return classification & kLOCATION_NORMAL; | 480 | world_state = kLOCATION_NORMAL; |
481 | break; | ||
479 | case kREDUCED_LOCATIONS: | 482 | case kREDUCED_LOCATIONS: |
480 | return classification & kLOCATION_REDUCED; | 483 | world_state = kLOCATION_REDUCED; |
484 | break; | ||
481 | case kPANELSANITY: | 485 | case kPANELSANITY: |
482 | return classification & kLOCATION_INSANITY; | 486 | world_state = kLOCATION_INSANITY; |
487 | break; | ||
483 | default: | 488 | default: |
484 | return false; | 489 | return false; |
485 | } | 490 | } |
491 | |||
492 | if (GetState().door_shuffle_mode && !GetState().early_color_hallways) { | ||
493 | world_state |= kLOCATION_SMALL_SPHERE_ONE; | ||
494 | } | ||
495 | |||
496 | return (world_state & classification); | ||
486 | } | 497 | } |
487 | 498 | ||
488 | VictoryCondition AP_GetVictoryCondition() { | 499 | VictoryCondition AP_GetVictoryCondition() { |
diff --git a/src/game_data.cpp b/src/game_data.cpp index c98f532..dbc269a 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp | |||
@@ -534,6 +534,10 @@ struct GameData { | |||
534 | } | 534 | } |
535 | } | 535 | } |
536 | 536 | ||
537 | if (room_name == "Starting Room") { | ||
538 | classification |= kLOCATION_SMALL_SPHERE_ONE; | ||
539 | } | ||
540 | |||
537 | int area_id = AddOrGetArea(area_name); | 541 | int area_id = AddOrGetArea(area_name); |
538 | MapArea &map_area = map_areas_[area_id]; | 542 | MapArea &map_area = map_areas_[area_id]; |
539 | // room field should be the original room ID | 543 | // room field should be the original room ID |
diff --git a/src/game_data.h b/src/game_data.h index cd09627..88f8a13 100644 --- a/src/game_data.h +++ b/src/game_data.h | |||
@@ -22,6 +22,7 @@ enum class LingoColor { | |||
22 | constexpr int kLOCATION_NORMAL = 1; | 22 | constexpr int kLOCATION_NORMAL = 1; |
23 | constexpr int kLOCATION_REDUCED = 2; | 23 | constexpr int kLOCATION_REDUCED = 2; |
24 | constexpr int kLOCATION_INSANITY = 4; | 24 | constexpr int kLOCATION_INSANITY = 4; |
25 | constexpr int kLOCATION_SMALL_SPHERE_ONE = 8; | ||
25 | 26 | ||
26 | enum class EntranceType { | 27 | enum class EntranceType { |
27 | kNormal, | 28 | kNormal, |