diff options
| author | Christopher Leggett <chris@leggett.dev> | 2023-05-20 09:24:02 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-20 09:24:02 -0400 |
| commit | 4d02d89e03727c8e4d71541ff8eb9a5cdf260e8f (patch) | |
| tree | 8f6ece49d46f58a4aa7f8453f00220f2871306fb /soh/src/code | |
| parent | 30cc61abce6def547994f64d6563e096d3de320d (diff) | |
Fixes buying songs crash on Switch (#2899)
Diffstat (limited to 'soh/src/code')
| -rw-r--r-- | soh/src/code/z_parameter.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index 954ce1190..42bdbd77a 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -15,6 +15,7 @@ #endif #include "soh/Enhancements/game-interactor/GameInteractor.h" +#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #define DO_ACTION_TEX_WIDTH() 48 @@ -1706,7 +1707,7 @@ u8 Return_Item_Entry(GetItemEntry itemEntry, ItemID returnItem ) { // Processes Item_Give returns u8 Return_Item(u8 itemID, ModIndex modId, ItemID returnItem) { - uint32_t get = GetGIID(itemID); + int32_t get = GetGIID(itemID); if (get == -1) { modId = MOD_RANDOMIZER; get = itemID; @@ -6158,8 +6159,13 @@ void Interface_Update(PlayState* play) { u16 tempSaleMod = gSaveContext.pendingSaleMod; gSaveContext.pendingSale = ITEM_NONE; gSaveContext.pendingSaleMod = MOD_NONE; - if (tempSaleMod == 0) { - tempSaleItem = GetGIID(tempSaleItem); + if (tempSaleMod == MOD_NONE) { + s16 giid = GetGIID(tempSaleItem); + if (giid == -1) { + tempSaleMod = MOD_RANDOMIZER; + } else { + tempSaleItem = giid; + } } GameInteractor_ExecuteOnSaleEndHooks(ItemTable_RetrieveEntry(tempSaleMod, tempSaleItem)); } |
