Add proper check tracker entry exclusion

This commit is contained in:
aMannus 2024-01-06 20:06:31 +01:00
parent 1865669b19
commit 039ddff5a7

View File

@ -64,7 +64,8 @@ bool showKokiriSword;
bool showMasterSword; bool showMasterSword;
bool showWeirdEgg; bool showWeirdEgg;
bool showGerudoCard; bool showGerudoCard;
bool showPots; bool showOverworldPots;
bool showDungeonPots;
bool showFrogSongRupees; bool showFrogSongRupees;
bool showStartingMapsCompasses; bool showStartingMapsCompasses;
bool showKeysanity; bool showKeysanity;
@ -1095,9 +1096,6 @@ void LoadSettings() {
showGerudoCard = IS_RANDO ? showGerudoCard = IS_RANDO ?
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) == RO_GENERIC_YES OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) == RO_GENERIC_YES
: true; : true;
showPots = IS_RANDO ?
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_POTS) != RO_SHUFFLE_POTS_OFF
: false;
showFrogSongRupees = IS_RANDO ? showFrogSongRupees = IS_RANDO ?
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_FROG_SONG_RUPEES) == RO_GENERIC_YES OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_FROG_SONG_RUPEES) == RO_GENERIC_YES
: false; : false;
@ -1147,9 +1145,30 @@ void LoadSettings() {
showDungeonTokens = false; showDungeonTokens = false;
break; 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 } else { // Vanilla
showOverworldTokens = true; showOverworldTokens = true;
showDungeonTokens = true; showDungeonTokens = true;
showOverworldPots = false;
showDungeonPots = false;
} }
fortressFast = false; fortressFast = false;
@ -1198,8 +1217,10 @@ bool IsVisibleInCheckTracker(RandomizerCheck rc) {
(showOverworldTokens && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) || (showOverworldTokens && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
(showDungeonTokens && RandomizerCheckObjects::AreaIsDungeon(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_COW || showCows) &&
(loc->GetRCType() != RCTYPE_POT || showPots) &&
(loc->GetRCType() != RCTYPE_ADULT_TRADE || (loc->GetRCType() != RCTYPE_ADULT_TRADE ||
showAdultTrade || showAdultTrade ||
rc == RC_KAK_ANJU_AS_ADULT || // adult trade checks that are always shuffled rc == RC_KAK_ANJU_AS_ADULT || // adult trade checks that are always shuffled