mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-21 23:01:26 -04:00
Shuffle Treasure Chest Game (#7020)
This commit is contained in:
@@ -109,6 +109,7 @@ bool showGanonBossKey;
|
||||
bool showOcarinas;
|
||||
bool show100SkullReward;
|
||||
bool showLinksPocket;
|
||||
bool showChestMinigame;
|
||||
bool fortressFast;
|
||||
bool fortressNormal;
|
||||
|
||||
@@ -1588,96 +1589,71 @@ void LoadSettings() {
|
||||
// If in vanilla, _try_ to show items that at least are needed for 100%
|
||||
|
||||
showShops =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHOPSANITY) != RO_SHOPSANITY_OFF : false;
|
||||
showBeans = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) ==
|
||||
RO_SHUFFLE_MERCHANTS_BEANS_ONLY ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) ==
|
||||
RO_SHUFFLE_MERCHANTS_ALL
|
||||
: true;
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHOPSANITY) != RO_SHOPSANITY_OFF;
|
||||
showBeans =
|
||||
!IS_RANDO ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) ==
|
||||
RO_SHUFFLE_MERCHANTS_BEANS_ONLY ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) == RO_SHUFFLE_MERCHANTS_ALL;
|
||||
showScrubs =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) == RO_SCRUBS_ALL : false;
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) == RO_SCRUBS_ALL;
|
||||
showMajorScrubs =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) != RO_SCRUBS_OFF : false;
|
||||
showMerchants = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) ==
|
||||
RO_SHUFFLE_MERCHANTS_ALL_BUT_BEANS ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) ==
|
||||
RO_SHUFFLE_MERCHANTS_ALL
|
||||
: true;
|
||||
showSongs = IS_RANDO
|
||||
? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SONGS) != RO_SONG_SHUFFLE_OFF
|
||||
: false;
|
||||
showBeehives = IS_RANDO
|
||||
? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BEEHIVES) == RO_GENERIC_YES
|
||||
: false;
|
||||
showCows =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_COWS) == RO_GENERIC_YES : false;
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) != RO_SCRUBS_OFF;
|
||||
showMerchants =
|
||||
!IS_RANDO ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) ==
|
||||
RO_SHUFFLE_MERCHANTS_ALL_BUT_BEANS ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MERCHANTS) == RO_SHUFFLE_MERCHANTS_ALL;
|
||||
showSongs =
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SONGS) != RO_SONG_SHUFFLE_OFF;
|
||||
showBeehives =
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BEEHIVES) == RO_GENERIC_YES;
|
||||
showCows = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_COWS) == RO_GENERIC_YES;
|
||||
showAdultTrade =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_ADULT_TRADE) == RO_GENERIC_YES
|
||||
: true;
|
||||
showKokiriSword =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_KOKIRI_SWORD) == RO_GENERIC_YES
|
||||
: true;
|
||||
showMasterSword =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MASTER_SWORD) == RO_GENERIC_YES
|
||||
: true;
|
||||
showHyruleLoach =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY) == RO_FISHSANITY_HYRULE_LOACH
|
||||
: false;
|
||||
showWeirdEgg = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_WEIRD_EGG) ==
|
||||
RO_WEIRD_EGG_SHUFFLED
|
||||
: true;
|
||||
showZeldasLetter =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_ZELDAS_LETTER) == RO_GENERIC_YES
|
||||
: true;
|
||||
showGerudoCard = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) == RO_GENERIC_YES
|
||||
: true;
|
||||
showFrogSongRupees =
|
||||
IS_RANDO
|
||||
? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_FROG_SONG_RUPEES) == RO_GENERIC_YES
|
||||
: false;
|
||||
showFountainFairies =
|
||||
IS_RANDO
|
||||
? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_FOUNTAIN_FAIRIES) == RO_GENERIC_YES
|
||||
: false;
|
||||
showStoneFairies =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_STONE_FAIRIES) == RO_GENERIC_YES
|
||||
: false;
|
||||
!IS_RANDO || OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_ADULT_TRADE) == RO_GENERIC_YES;
|
||||
showKokiriSword = !IS_RANDO || OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_KOKIRI_SWORD) ==
|
||||
RO_GENERIC_YES;
|
||||
showMasterSword = !IS_RANDO || OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_MASTER_SWORD) ==
|
||||
RO_GENERIC_YES;
|
||||
showHyruleLoach = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY) ==
|
||||
RO_FISHSANITY_HYRULE_LOACH;
|
||||
showWeirdEgg = !IS_RANDO || OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_WEIRD_EGG) ==
|
||||
RO_WEIRD_EGG_SHUFFLED;
|
||||
showZeldasLetter = !IS_RANDO || OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_ZELDAS_LETTER) == RO_GENERIC_YES;
|
||||
showGerudoCard = !IS_RANDO || OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD) == RO_GENERIC_YES;
|
||||
showFrogSongRupees = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_FROG_SONG_RUPEES) == RO_GENERIC_YES;
|
||||
showFountainFairies = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_FOUNTAIN_FAIRIES) == RO_GENERIC_YES;
|
||||
showStoneFairies = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_STONE_FAIRIES) ==
|
||||
RO_GENERIC_YES;
|
||||
showBeanFairies =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BEAN_FAIRIES) == RO_GENERIC_YES
|
||||
: false;
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BEAN_FAIRIES) == RO_GENERIC_YES;
|
||||
showSongFairies =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SONG_FAIRIES) == RO_GENERIC_YES
|
||||
: false;
|
||||
showButterflyFairies =
|
||||
IS_RANDO
|
||||
? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BUTTERFLY_FAIRIES) == RO_GENERIC_YES
|
||||
: false;
|
||||
showStartingMapsCompasses = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_MAPANDCOMPASS) != RO_DUNGEON_ITEM_LOC_VANILLA
|
||||
: false;
|
||||
showKeysanity =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_KEYSANITY) != RO_DUNGEON_ITEM_LOC_VANILLA
|
||||
: false;
|
||||
showBossKeysanity = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_BOSS_KEYSANITY) !=
|
||||
RO_DUNGEON_ITEM_LOC_VANILLA
|
||||
: false;
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_SONG_FAIRIES) == RO_GENERIC_YES;
|
||||
showButterflyFairies = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_BUTTERFLY_FAIRIES) == RO_GENERIC_YES;
|
||||
showStartingMapsCompasses = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_MAPANDCOMPASS) != RO_DUNGEON_ITEM_LOC_VANILLA;
|
||||
showKeysanity = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_KEYSANITY) !=
|
||||
RO_DUNGEON_ITEM_LOC_VANILLA;
|
||||
showBossKeysanity = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_BOSS_KEYSANITY) !=
|
||||
RO_DUNGEON_ITEM_LOC_VANILLA;
|
||||
showGerudoFortressKeys =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GERUDO_KEYS) != RO_GERUDO_KEYS_VANILLA
|
||||
: false;
|
||||
showGanonBossKey = IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GANONS_BOSS_KEY) !=
|
||||
RO_GANON_BOSS_KEY_VANILLA
|
||||
: false;
|
||||
showOcarinas = IS_RANDO
|
||||
? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_OCARINA) == RO_GENERIC_YES
|
||||
: false;
|
||||
show100SkullReward =
|
||||
IS_RANDO ? OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_100_GS_REWARD) == RO_GENERIC_YES
|
||||
: false;
|
||||
showLinksPocket =
|
||||
IS_RANDO ? // don't show Link's Pocket if not randomizer, or if rando and pocket is disabled
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_LINKS_POCKET) != RO_LINKS_POCKET_NOTHING
|
||||
: false;
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GERUDO_KEYS) != RO_GERUDO_KEYS_VANILLA;
|
||||
showGanonBossKey = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GANONS_BOSS_KEY) !=
|
||||
RO_GANON_BOSS_KEY_VANILLA;
|
||||
showOcarinas =
|
||||
IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_OCARINA) == RO_GENERIC_YES;
|
||||
show100SkullReward = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_100_GS_REWARD) == RO_GENERIC_YES;
|
||||
// don't show Link's Pocket if not randomizer, or if rando and pocket is disabled
|
||||
showLinksPocket = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_LINKS_POCKET) !=
|
||||
RO_LINKS_POCKET_NOTHING;
|
||||
showChestMinigame = IS_RANDO && OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(
|
||||
RSK_SHUFFLE_CHEST_MINIGAME) != RO_GENERIC_OFF;
|
||||
|
||||
if (IS_RANDO) {
|
||||
switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_TOKENS)) {
|
||||
@@ -1918,8 +1894,7 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
||||
return (loc->GetArea() != RCAREA_INVALID) && // don't show Invalid locations
|
||||
(loc->GetRCType() != RCTYPE_GOSSIP_STONE) && // TODO: Don't show hints until tracker supports them
|
||||
(loc->GetRCType() != RCTYPE_STATIC_HINT) && // TODO: Don't show hints until tracker supports them
|
||||
(loc->GetRCType() != RCTYPE_CHEST_GAME) && // don't show non final reward chest game checks until we
|
||||
// support shuffling them
|
||||
(loc->GetRCType() != RCTYPE_CHEST_GAME || showChestMinigame) &&
|
||||
(rc != RC_HC_ZELDAS_LETTER || showZeldasLetter) && (rc != RC_LINKS_POCKET || showLinksPocket) &&
|
||||
OTRGlobals::Instance->gRandoContext->IsQuestOfLocationActive(rc) &&
|
||||
(loc->GetRCType() != RCTYPE_SHOP ||
|
||||
|
||||
Reference in New Issue
Block a user