Skip to content

Commit

Permalink
Add proper check tracker entry exclusion
Browse files Browse the repository at this point in the history
  • Loading branch information
aMannus committed Jan 6, 2024
1 parent 1865669 commit 039ddff
Showing 1 changed file with 26 additions and 5 deletions.
31 changes: 26 additions & 5 deletions soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ bool showKokiriSword;
bool showMasterSword;
bool showWeirdEgg;
bool showGerudoCard;
bool showPots;
bool showOverworldPots;
bool showDungeonPots;
bool showFrogSongRupees;
bool showStartingMapsCompasses;
bool showKeysanity;
Expand Down Expand Up @@ -1095,9 +1096,6 @@ void LoadSettings() {
showGerudoCard = IS_RANDO ?
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) == RO_GENERIC_YES
: true;
showPots = IS_RANDO ?
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_POTS) != RO_SHUFFLE_POTS_OFF
: false;
showFrogSongRupees = IS_RANDO ?
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_FROG_SONG_RUPEES) == RO_GENERIC_YES
: false;
Expand Down Expand Up @@ -1147,9 +1145,30 @@ void LoadSettings() {
showDungeonTokens = false;
break;
}

switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_POTS)) {
case RO_SHUFFLE_POTS_ALL:
showOverworldPots = true;
showDungeonPots = true;
break;
case RO_SHUFFLE_POTS_OVERWORLD:
showOverworldPots = true;
showDungeonPots = false;
break;
case RO_SHUFFLE_POTS_DUNGEONS:
showOverworldPots = false;
showDungeonPots = true;
break;
default:
showOverworldPots = false;
showDungeonPots = false;
break;
}
} else { // Vanilla
showOverworldTokens = true;
showDungeonTokens = true;
showOverworldPots = false;
showDungeonPots = false;
}

fortressFast = false;
Expand Down Expand Up @@ -1198,8 +1217,10 @@ bool IsVisibleInCheckTracker(RandomizerCheck rc) {
(showOverworldTokens && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
(showDungeonTokens && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))
) &&
(loc->GetRCType() != RCTYPE_POT ||
(showOverworldPots && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
(showDungeonPots && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
(loc->GetRCType() != RCTYPE_COW || showCows) &&
(loc->GetRCType() != RCTYPE_POT || showPots) &&
(loc->GetRCType() != RCTYPE_ADULT_TRADE ||
showAdultTrade ||
rc == RC_KAK_ANJU_AS_ADULT || // adult trade checks that are always shuffled
Expand Down

0 comments on commit 039ddff

Please sign in to comment.