From e1b403a31b1dde6ae190a2a8352d1f0fd69073dd Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Sun, 21 Aug 2022 15:14:50 -0400 Subject: [PATCH 1/4] Removes unused `Randomizer_GetItemIdFromGetItemId`. --- .../Enhancements/randomizer/randomizer.cpp | 50 ------------------- soh/soh/OTRGlobals.cpp | 4 -- soh/soh/OTRGlobals.h | 1 - soh/src/code/z_sram.c | 2 +- 4 files changed, 1 insertion(+), 56 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 80bdf1c8d..1fc95a04f 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -808,48 +808,6 @@ std::unordered_map SpoilerfileCheckNameToEnum = { { "ZR Open Grotto Gossip Stone", RC_ZR_OPEN_GROTTO_GOSSIP_STONE } }; -std::unordered_map getItemIdToItemId = { - { GI_BOW, ITEM_BOW }, - { GI_ARROW_FIRE, ITEM_ARROW_FIRE }, - { GI_DINS_FIRE, ITEM_DINS_FIRE }, - { GI_SLINGSHOT, ITEM_SLINGSHOT }, - { GI_OCARINA_FAIRY, ITEM_OCARINA_FAIRY }, - { GI_OCARINA_OOT, ITEM_OCARINA_TIME }, - { GI_HOOKSHOT, ITEM_HOOKSHOT }, - { GI_LONGSHOT, ITEM_LONGSHOT }, - { GI_ARROW_ICE, ITEM_ARROW_ICE }, - { GI_FARORES_WIND, ITEM_FARORES_WIND }, - { GI_BOOMERANG, ITEM_BOOMERANG }, - { GI_LENS, ITEM_LENS }, - { GI_HAMMER, ITEM_HAMMER }, - { GI_ARROW_LIGHT, ITEM_ARROW_LIGHT }, - { GI_NAYRUS_LOVE, ITEM_NAYRUS_LOVE }, - { GI_BOTTLE, ITEM_BOTTLE }, - { GI_POTION_RED, ITEM_POTION_RED }, - { GI_POTION_GREEN, ITEM_POTION_GREEN }, - { GI_POTION_BLUE, ITEM_POTION_BLUE }, - { GI_FAIRY, ITEM_FAIRY }, - { GI_FISH, ITEM_FISH }, - { GI_MILK_BOTTLE, ITEM_MILK_BOTTLE }, - { GI_LETTER_RUTO, ITEM_LETTER_RUTO }, - { GI_BLUE_FIRE, ITEM_BLUE_FIRE }, - { GI_BUGS, ITEM_BUG }, - { GI_BIG_POE, ITEM_BIG_POE }, - { GI_POE, ITEM_POE }, - { GI_WEIRD_EGG, ITEM_WEIRD_EGG }, - { GI_LETTER_ZELDA, ITEM_LETTER_ZELDA }, - { GI_POCKET_EGG, ITEM_POCKET_EGG }, - { GI_COJIRO, ITEM_COJIRO }, - { GI_ODD_MUSHROOM, ITEM_ODD_MUSHROOM }, - { GI_ODD_POTION, ITEM_ODD_POTION }, - { GI_SAW, ITEM_SAW }, - { GI_SWORD_BROKEN, ITEM_SWORD_BROKEN }, - { GI_PRESCRIPTION, ITEM_PRESCRIPTION }, - { GI_FROG, ITEM_FROG }, - { GI_EYEDROPS, ITEM_EYEDROPS }, - { GI_CLAIM_CHECK, ITEM_CLAIM_CHECK } -}; - std::unordered_map SpoilerfileGetNameToEnum = { { "No Item", RG_NONE }, { "Rien", RG_NONE }, @@ -1266,14 +1224,6 @@ std::unordered_map SpoilerfileSettingNameToEn { "Timesaver Settings:Skip Tower Escape", RSK_SKIP_TOWER_ESCAPE } }; -s32 Randomizer::GetItemIDFromGetItemID(s32 getItemId) { - if (getItemIdToItemId.count(getItemId) == 0) { - return -1; - } - - return getItemIdToItemId[getItemId]; -} - std::string sanitize(std::string stringValue) { // Add backslashes. for (auto i = stringValue.begin();;) { diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index ebfc15d79..3b24bafb3 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -1544,10 +1544,6 @@ extern "C" void* getN64WeirdFrame(s32 i) { return &weirdFrameBytes[i + sizeof(n64WeirdFrames)]; } -extern "C" s32 Randomizer_GetItemIDFromGetItemID(s32 getItemId) { - return OTRGlobals::Instance->gRandomizer->GetItemIDFromGetItemID(getItemId); -} - extern "C" void Randomizer_LoadSettings(const char* spoilerFileName) { OTRGlobals::Instance->gRandomizer->LoadRandomizerSettings(spoilerFileName); } diff --git a/soh/soh/OTRGlobals.h b/soh/soh/OTRGlobals.h index 5be94cb40..069707cd9 100644 --- a/soh/soh/OTRGlobals.h +++ b/soh/soh/OTRGlobals.h @@ -98,7 +98,6 @@ u8 Randomizer_GetSettingValue(RandomizerSettingKey randoSettingKey); RandomizerCheck Randomizer_GetCheckFromActor(s16 actorId, s16 actorParams, s16 sceneNum); void Randomizer_LoadHintLocations(const char* spoilerFileName); void Randomizer_LoadItemLocations(const char* spoilerFileName, bool silent); -s32 Randomizer_GetItemIDFromGetItemID(s32 getItemId); // TODO: Remove me GetItemEntry Randomizer_GetRandomizedItem(GetItemID ogId, s16 actorId, s16 actorParams, s16 sceneNum); GetItemEntry Randomizer_GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId); bool Randomizer_ObtainedFreestandingIceTrap(RandomizerCheck randomizerCheck, GetItemID ogId, Actor* actor); diff --git a/soh/src/code/z_sram.c b/soh/src/code/z_sram.c index 6e58af4d0..6ab65e3cb 100644 --- a/soh/src/code/z_sram.c +++ b/soh/src/code/z_sram.c @@ -757,7 +757,7 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx) { } else if (giid == GI_NUT_UPGRADE_30 || giid == GI_NUT_UPGRADE_40) { GiveLinkDekuNutUpgrade(giid); } else { - s32 iid = Randomizer_GetItemIDFromGetItemID(giid); + s32 iid = getItem.itemId; if (iid != -1) INV_CONTENT(iid) = iid; } } else if (getItem.modIndex == MOD_RANDOMIZER) { From e5bca727ac2bd799e6354b1052e188a29451f365 Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Sun, 21 Aug 2022 15:22:18 -0400 Subject: [PATCH 2/4] Cleans up an if statement for item00. --- soh/src/code/z_en_item00.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/soh/src/code/z_en_item00.c b/soh/src/code/z_en_item00.c index e61037328..3300a7172 100644 --- a/soh/src/code/z_en_item00.c +++ b/soh/src/code/z_en_item00.c @@ -509,12 +509,11 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { break; } - if ((gSaveContext.n64ddFlag || getItemId != GI_NONE) && !Actor_HasParent(&this->actor, globalCtx)) { - getItem = Randomizer_GetRandomizedItem(getItemId, this->actor.id, this->ogParams, globalCtx->sceneNum); - getItemId = getItem.getItemId; - if (!gSaveContext.n64ddFlag) { + if (!Actor_HasParent(&this->actor, globalCtx)) { + if (!gSaveContext.n64ddFlag && getItemId != GI_NONE) { func_8002F554(&this->actor, globalCtx, getItemId); } else { + getItem = Randomizer_GetRandomizedItem(getItemId, this->actor.id, this->ogParams, globalCtx->sceneNum); GiveItemEntryFromActorWithFixedRange(&this->actor, globalCtx, getItem); } } From 2bbd618599d9bd96250798daffbb7fbb1677db60 Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Sun, 21 Aug 2022 15:35:10 -0400 Subject: [PATCH 3/4] Cleans up another if statement in item00 --- soh/src/code/z_en_item00.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/soh/src/code/z_en_item00.c b/soh/src/code/z_en_item00.c index 3300a7172..be40d80f4 100644 --- a/soh/src/code/z_en_item00.c +++ b/soh/src/code/z_en_item00.c @@ -671,13 +671,13 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) { void func_8001E5C8(EnItem00* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); - GetItemEntry getItemEntry = Randomizer_GetRandomizedItem(this->getItemId, this->actor.id, this->ogParams, globalCtx->sceneNum); - if (this->getItemId != GI_NONE) { if (!Actor_HasParent(&this->actor, globalCtx)) { - if (!gSaveContext.n64ddFlag || getItemEntry.getItemId == GI_NONE) { - func_8002F434(&this->actor, globalCtx, getItemEntry.getItemId, 50.0f, 80.0f); + if (!gSaveContext.n64ddFlag) { + func_8002F434(&this->actor, globalCtx, this->getItemId, 50.0f, 80.0f); } else { + GetItemEntry getItemEntry = + Randomizer_GetRandomizedItem(this->getItemId, this->actor.id, this->ogParams, globalCtx->sceneNum); GiveItemEntryFromActor(&this->actor, globalCtx, getItemEntry, 50.0f, 80.0f); } this->unk_15A++; From 91cb6f2360c572b0c15c945f16e0cf92ab23fc2b Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Sun, 21 Aug 2022 16:40:16 -0400 Subject: [PATCH 4/4] This should fix a bug with the Gerudo Archery minigame. I wasn't able to get the bug to happen after making this change. --- soh/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/soh/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/soh/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index 1c57922b1..407c43100 100644 --- a/soh/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/soh/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -546,7 +546,7 @@ void EnGe1_WaitTillItemGiven_Archery(EnGe1* this, GlobalContext* globalCtx) { } } - if (!gSaveContext.n64ddFlag || getItemEntry.getItemId != GI_NONE) { + if (!gSaveContext.n64ddFlag || getItemEntry.getItemId == GI_NONE) { func_8002F434(&this->actor, globalCtx, getItemId, 10000.0f, 50.0f); } else { GiveItemEntryFromActor(&this->actor, globalCtx, getItemEntry, 10000.0f, 50.0f); @@ -587,7 +587,7 @@ void EnGe1_BeginGiveItem_Archery(EnGe1* this, GlobalContext* globalCtx) { } } - if (!gSaveContext.n64ddFlag || getItemEntry.getItemId != GI_NONE) { + if (!gSaveContext.n64ddFlag || getItemEntry.getItemId == GI_NONE) { func_8002F434(&this->actor, globalCtx, getItemId, 10000.0f, 50.0f); } else { GiveItemEntryFromActor(&this->actor, globalCtx, getItemEntry, 10000.0f, 50.0f);