From 1b158015e66e4fbf095bd8ea2b6f8b4480a95790 Mon Sep 17 00:00:00 2001 From: Malkierian Date: Tue, 14 Mar 2023 02:46:33 -0700 Subject: [PATCH] Fixes bug introduced by 73052617eda789f957040f98d9368d9cf453a123 where keys, among others, would corrupt inventory slots. (#2626) --- soh/src/code/z_parameter.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index 2a9fd13eb..6dd479cff 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -2325,7 +2325,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { gSaveContext.isMagicAcquired = true; gSaveContext.magicFillTarget = 0x30; Magic_Fill(play); - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } else if (item == RG_MAGIC_DOUBLE) { if (!gSaveContext.isMagicAcquired) { gSaveContext.isMagicAcquired = true; @@ -2334,7 +2334,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { gSaveContext.magicFillTarget = 0x60; gSaveContext.magicLevel = 0; Magic_Fill(play); - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } if (item == RG_MAGIC_BEAN_PACK) { @@ -2342,14 +2342,14 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { INV_CONTENT(ITEM_BEAN) = ITEM_BEAN; AMMO(ITEM_BEAN) = 10; } - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } if (item == RG_DOUBLE_DEFENSE) { gSaveContext.isDoubleDefenseAcquired = true; gSaveContext.inventory.defenseHearts = 20; gSaveContext.healthAccumulator = 0x140; - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } if (item >= RG_BOTTLE_WITH_RED_POTION && item <= RG_BOTTLE_WITH_BIG_POE) { @@ -2387,7 +2387,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { } gSaveContext.inventory.items[temp + i] = item; - Return_Item(item, giEntry.modIndex, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } } } else if ((item >= RG_FOREST_TEMPLE_SMALL_KEY && item <= RG_GANONS_CASTLE_SMALL_KEY) || @@ -2488,11 +2488,11 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { } else { gSaveContext.inventory.dungeonKeys[mapIndex]++; } - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } else if ((item >= RG_FOREST_TEMPLE_KEY_RING) && (item <= RG_GANONS_CASTLE_KEY_RING)) { gSaveContext.sohStats.dungeonKeys[mapIndex] = numOfKeysOnKeyring; gSaveContext.inventory.dungeonKeys[mapIndex] = numOfKeysOnKeyring; - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } else { int bitmask; if ((item >= RG_DEKU_TREE_MAP) && (item <= RG_ICE_CAVERN_MAP)) { @@ -2504,7 +2504,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { } gSaveContext.inventory.dungeonItems[mapIndex] |= bitmask; - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } } @@ -2513,14 +2513,14 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) { if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_FULL_WALLETS)) { Rupees_ChangeBy(999); } - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } if (item == RG_GREG_RUPEE) { Rupees_ChangeBy(1); Flags_SetRandomizerInf(RAND_INF_GREG_FOUND); gSaveContext.sohStats.timestamp[TIMESTAMP_FOUND_GREG] = GAMEPLAYSTAT_TOTAL_TIME; - Return_Item_Entry(giEntry, RG_NONE); + return Return_Item_Entry(giEntry, RG_NONE); } temp = gSaveContext.inventory.items[slot];