mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-07-16 10:02:59 -07:00
Freestanding Rupees/Hearts Shuffle (#4686)
* Enable freestanding items other than heart pieces and keys * Add option to disable freestanding rupee & heart shuffle * Add items to pool * Actually add shuffle setting * Define overworld locations * Add logic for overworld freestanding checks * Add freestanding items for child dungeons. * Add checks for Ice Cavern and Bottom of the Well * Add checks for Forest Temple and Gerudo Training Grounds * Add checks for Fire Temple and Water Temple * Add Shadow Temple checks This does not include the spinning pots rupees, even though they're included with freestanding rupees in the N64 randomizer as they would require dedicated overrides for the code for the pots in question. * Define Spirit Temple and Ganon's Castle hearts * Add remaining checks to dungeon definitions * Fix missing logic * Add freestanding checks to Save Flags Editor * Fix flags for Zora Fountain underwater rupees * Add option to enable freestanding shuffle for either dungeons or overworld * Add missing MQ checks and fix mac & windows compile error * Improve description and add hint text * Update logic for Bombchu fixes * Add missing Spirit Temple MQ hearts * Add missing settings entries * Actually add Forest Temple trick to the tricks menu. * Re-add Ice Cavern lobby rupee * go over MQ logic * review logic on non-MQ checks * convert all freestandings to location based * add option enum and fix jabu exit logic * fix mislocated freestandings * fix mislocted freestandings * Fix some mislocationed checks --------- Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
This commit is contained in:
parent
ff24581281
commit
9ea9100787
34 changed files with 1545 additions and 156 deletions
|
@ -48,6 +48,8 @@ bool showMajorScrubs;
|
|||
bool showMerchants;
|
||||
bool showBeehives;
|
||||
bool showCows;
|
||||
bool showOverworldFreestanding;
|
||||
bool showDungeonFreestanding;
|
||||
bool showAdultTrade;
|
||||
bool showKokiriSword;
|
||||
bool showMasterSword;
|
||||
|
@ -1251,6 +1253,30 @@ void LoadSettings() {
|
|||
fishsanityMode = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY);
|
||||
fishsanityPondCount = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_POND_COUNT);
|
||||
fishsanityAgeSplit = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_FISHSANITY_AGE_SPLIT);
|
||||
|
||||
if (IS_RANDO) {
|
||||
switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_FREESTANDING)) {
|
||||
case RO_FREESTANDING_ALL:
|
||||
showOverworldFreestanding = true;
|
||||
showDungeonFreestanding = true;
|
||||
break;
|
||||
case RO_FREESTANDING_OVERWORLD:
|
||||
showOverworldFreestanding = true;
|
||||
showDungeonFreestanding = false;
|
||||
break;
|
||||
case RO_FREESTANDING_DUNGEONS:
|
||||
showOverworldFreestanding = false;
|
||||
showDungeonFreestanding = true;
|
||||
break;
|
||||
default:
|
||||
showOverworldFreestanding = false;
|
||||
showDungeonFreestanding = false;
|
||||
break;
|
||||
}
|
||||
} else { // Vanilla
|
||||
showOverworldFreestanding = false;
|
||||
showDungeonFreestanding = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool IsCheckShuffled(RandomizerCheck rc) {
|
||||
|
@ -1292,6 +1318,10 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
|||
(showDungeonPots && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
|
||||
(loc->GetRCType() != RCTYPE_COW || showCows) &&
|
||||
(loc->GetRCType() != RCTYPE_FISH || OTRGlobals::Instance->gRandoContext->GetFishsanity()->GetFishLocationIncluded(loc)) &&
|
||||
(loc->GetRCType() != RCTYPE_FREESTANDING ||
|
||||
(showOverworldFreestanding && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
|
||||
(showDungeonFreestanding && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))
|
||||
) &&
|
||||
(loc->GetRCType() != RCTYPE_ADULT_TRADE ||
|
||||
showAdultTrade ||
|
||||
rc == RC_KAK_ANJU_AS_ADULT || // adult trade checks that are always shuffled
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue