From 541d1d35a45fb1a1193cdb5b76833eccb2733ac6 Mon Sep 17 00:00:00 2001 From: briaguya <70942617+briaguya-ai@users.noreply.github.com> Date: Tue, 6 Dec 2022 01:00:12 -0500 Subject: [PATCH] use enum for shuffle scrubs (#2089) Co-authored-by: briaguya --- soh/soh/Enhancements/presets.h | 2 +- soh/soh/Enhancements/randomizer/randomizer.cpp | 4 ++-- soh/soh/SaveManager.cpp | 2 +- soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c | 4 +++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/soh/soh/Enhancements/presets.h b/soh/soh/Enhancements/presets.h index a561226df..11bd4bb7f 100644 --- a/soh/soh/Enhancements/presets.h +++ b/soh/soh/Enhancements/presets.h @@ -613,7 +613,7 @@ const std::vector hellModePresetEntries = { PRESET_ENTRY_S32("gRandomizeShuffleKeyRings", 1), PRESET_ENTRY_S32("gRandomizeShuffleKokiriSword", 1), PRESET_ENTRY_S32("gRandomizeShuffleOcarinas", 1), - PRESET_ENTRY_S32("gRandomizeShuffleScrubs", 3), + PRESET_ENTRY_S32("gRandomizeShuffleScrubs", RO_SCRUBS_RANDOM), PRESET_ENTRY_S32("gRandomizeShuffleSongs", RO_SONG_SHUFFLE_ANYWHERE), PRESET_ENTRY_S32("gRandomizeShuffleTokens", RO_TOKENSANITY_ALL), PRESET_ENTRY_S32("gRandomizeShuffleWeirdEgg", 1), diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 70fb6b371..01e3d6083 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -2440,7 +2440,7 @@ ScrubIdentity Randomizer::IdentifyScrub(s32 sceneNum, s32 actorParams, s32 respa scrubIdentity.randomizerInf = rcToRandomizerInf[rcObject.rc]; scrubIdentity.randomizerCheck = rcObject.rc; scrubIdentity.getItemId = rcObject.ogItemId; - scrubIdentity.isShuffled = GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) > 0; + scrubIdentity.isShuffled = GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) != RO_SCRUBS_OFF; if (rcObject.rc == RC_HF_DEKU_SCRUB_GROTTO || rcObject.rc == RC_LW_DEKU_SCRUB_GROTTO_FRONT || rcObject.rc == RC_LW_DEKU_SCRUB_NEAR_BRIDGE) { scrubIdentity.isShuffled = true; @@ -2594,7 +2594,7 @@ void GenerateRandomizerImgui() { cvarSettings[RSK_SHUFFLE_SONGS] = CVar_GetS32("gRandomizeShuffleSongs", RO_SONG_SHUFFLE_SONG_LOCATIONS); cvarSettings[RSK_SHUFFLE_TOKENS] = CVar_GetS32("gRandomizeShuffleTokens", RO_TOKENSANITY_OFF); cvarSettings[RSK_SHOPSANITY] = CVar_GetS32("gRandomizeShopsanity", RO_SHOPSANITY_OFF); - cvarSettings[RSK_SHUFFLE_SCRUBS] = CVar_GetS32("gRandomizeShuffleScrubs", 0); + cvarSettings[RSK_SHUFFLE_SCRUBS] = CVar_GetS32("gRandomizeShuffleScrubs", RO_SCRUBS_OFF); cvarSettings[RSK_SHUFFLE_COWS] = CVar_GetS32("gRandomizeShuffleCows", 0); cvarSettings[RSK_SHUFFLE_ADULT_TRADE] = CVar_GetS32("gRandomizeShuffleAdultTrade", 0); cvarSettings[RSK_SHUFFLE_MAGIC_BEANS] = CVar_GetS32("gRandomizeShuffleBeans", 0); diff --git a/soh/soh/SaveManager.cpp b/soh/soh/SaveManager.cpp index e05b1efee..2aa364007 100644 --- a/soh/soh/SaveManager.cpp +++ b/soh/soh/SaveManager.cpp @@ -105,7 +105,7 @@ void SaveManager::LoadRandomizerVersion1() { randomizer->LoadRandomizerSettings(""); size_t merchantPricesSize = 0; - if (randomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) > 0) { + if (randomizer->GetRandoSettingValue(RSK_SHUFFLE_SCRUBS) != RO_SCRUBS_OFF) { merchantPricesSize += NUM_SCRUBS; } if (randomizer->GetRandoSettingValue(RSK_SHOPSANITY) != RO_SHOPSANITY_OFF) { diff --git a/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 8a877ad9d..fb028d2f6 100644 --- a/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -172,7 +172,9 @@ void EnDns_Init(Actor* thisx, PlayState* play) { s16 respawnData = gSaveContext.respawn[RESPAWN_MODE_RETURN].data & ((1 << 8) - 1); this->scrubIdentity = Randomizer_IdentifyScrub(play->sceneNum, this->actor.params, respawnData); - if ((Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == 1 || Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == 3) && this->scrubIdentity.itemPrice != -1) { + if ((Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == RO_SCRUBS_AFFORDABLE || + Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == RO_SCRUBS_RANDOM) && + this->scrubIdentity.itemPrice != -1) { this->dnsItemEntry->itemPrice = this->scrubIdentity.itemPrice; }