Fixes bug introduced by 73052617ed where keys, among others, would corrupt inventory slots. (#2626)

This commit is contained in:
Malkierian 2023-03-14 02:46:33 -07:00 committed by GitHub
parent 356d959b70
commit 1b158015e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 10 deletions

View File

@ -2325,7 +2325,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
gSaveContext.isMagicAcquired = true; gSaveContext.isMagicAcquired = true;
gSaveContext.magicFillTarget = 0x30; gSaveContext.magicFillTarget = 0x30;
Magic_Fill(play); Magic_Fill(play);
Return_Item_Entry(giEntry, RG_NONE); return Return_Item_Entry(giEntry, RG_NONE);
} else if (item == RG_MAGIC_DOUBLE) { } else if (item == RG_MAGIC_DOUBLE) {
if (!gSaveContext.isMagicAcquired) { if (!gSaveContext.isMagicAcquired) {
gSaveContext.isMagicAcquired = true; gSaveContext.isMagicAcquired = true;
@ -2334,7 +2334,7 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
gSaveContext.magicFillTarget = 0x60; gSaveContext.magicFillTarget = 0x60;
gSaveContext.magicLevel = 0; gSaveContext.magicLevel = 0;
Magic_Fill(play); Magic_Fill(play);
Return_Item_Entry(giEntry, RG_NONE); return Return_Item_Entry(giEntry, RG_NONE);
} }
if (item == RG_MAGIC_BEAN_PACK) { if (item == RG_MAGIC_BEAN_PACK) {
@ -2342,14 +2342,14 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
INV_CONTENT(ITEM_BEAN) = ITEM_BEAN; INV_CONTENT(ITEM_BEAN) = ITEM_BEAN;
AMMO(ITEM_BEAN) = 10; AMMO(ITEM_BEAN) = 10;
} }
Return_Item_Entry(giEntry, RG_NONE); return Return_Item_Entry(giEntry, RG_NONE);
} }
if (item == RG_DOUBLE_DEFENSE) { if (item == RG_DOUBLE_DEFENSE) {
gSaveContext.isDoubleDefenseAcquired = true; gSaveContext.isDoubleDefenseAcquired = true;
gSaveContext.inventory.defenseHearts = 20; gSaveContext.inventory.defenseHearts = 20;
gSaveContext.healthAccumulator = 0x140; 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) { 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; 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) || } 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 { } else {
gSaveContext.inventory.dungeonKeys[mapIndex]++; 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)) { } else if ((item >= RG_FOREST_TEMPLE_KEY_RING) && (item <= RG_GANONS_CASTLE_KEY_RING)) {
gSaveContext.sohStats.dungeonKeys[mapIndex] = numOfKeysOnKeyring; gSaveContext.sohStats.dungeonKeys[mapIndex] = numOfKeysOnKeyring;
gSaveContext.inventory.dungeonKeys[mapIndex] = numOfKeysOnKeyring; gSaveContext.inventory.dungeonKeys[mapIndex] = numOfKeysOnKeyring;
Return_Item_Entry(giEntry, RG_NONE); return Return_Item_Entry(giEntry, RG_NONE);
} else { } else {
int bitmask; int bitmask;
if ((item >= RG_DEKU_TREE_MAP) && (item <= RG_ICE_CAVERN_MAP)) { 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; 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)) { if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_FULL_WALLETS)) {
Rupees_ChangeBy(999); Rupees_ChangeBy(999);
} }
Return_Item_Entry(giEntry, RG_NONE); return Return_Item_Entry(giEntry, RG_NONE);
} }
if (item == RG_GREG_RUPEE) { if (item == RG_GREG_RUPEE) {
Rupees_ChangeBy(1); Rupees_ChangeBy(1);
Flags_SetRandomizerInf(RAND_INF_GREG_FOUND); Flags_SetRandomizerInf(RAND_INF_GREG_FOUND);
gSaveContext.sohStats.timestamp[TIMESTAMP_FOUND_GREG] = GAMEPLAYSTAT_TOTAL_TIME; 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]; temp = gSaveContext.inventory.items[slot];