From c78736c94f8879b1cddf43f998ab4d3ae3f4590e Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Tue, 15 Mar 2022 18:53:06 -0400 Subject: [PATCH] Fixed bug where decor icons cleared dynamic palettes in the Frontier Exchange Corner shop. --- include/field_effect.h | 1 + src/field_specials.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/field_effect.h b/include/field_effect.h index 073fc3b4cc..9bd76e06fc 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -25,6 +25,7 @@ void FieldEffectScript_LoadTiles(u8 **script); void FieldEffectScript_LoadFadedPalette(u8 **script); void FieldEffectScript_LoadPalette(u8 **script); void FieldEffectScript_CallNative(u8 **script, u32 *val); +void FieldEffectFreeGraphicsResources(struct Sprite *sprite); void FieldEffectFreeTilesIfUnused(u16 tileStart); void FieldEffectFreePaletteIfUnused(u8 paletteNum); bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val); diff --git a/src/field_specials.c b/src/field_specials.c index 96eb949e55..da17065005 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3118,7 +3118,8 @@ static void HideFrontierExchangeCornerItemIcon(u16 menu, u16 unused) case SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2: case SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR: case SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR: - DestroySpriteAndFreeResources(&gSprites[sScrollableMultichoice_ItemSpriteId]); + // This makes sure deleting the icon will not clear palettes in use by object events + FieldEffectFreeGraphicsResources(&gSprites[sScrollableMultichoice_ItemSpriteId]); break; } sScrollableMultichoice_ItemSpriteId = MAX_SPRITES;