From 70d95eed695541520c9a79478f49ffe86e806035 Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Thu, 27 Oct 2022 23:42:33 -0400 Subject: [PATCH] Fixed Mirage Tower falling fossil palette. --- src/mirage_tower.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 37096619d3..6f6a8e8c15 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -4,6 +4,7 @@ #include "event_data.h" #include "event_object_movement.h" #include "field_camera.h" +#include "field_effect.h" #include "fieldmap.h" #include "gpu_regs.h" #include "menu.h" @@ -150,10 +151,13 @@ static const union AnimCmd *const sAnims_FallingFossil[] = sAnim_FallingFossil, }; +// Duplicate of event_object_movement +#define OBJ_EVENT_PAL_TAG_NPC_1 0x1103 + static const struct SpriteTemplate sSpriteTemplate_FallingFossil = { .tileTag = TAG_NONE, - .paletteTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_1, .oam = &sOamData_FallingFossil, .anims = sAnims_FallingFossil, .images = NULL, @@ -689,6 +693,7 @@ static void Task_FossilFallAndSink(u8 taskId) { struct SpriteTemplate fossilTemplate = sSpriteTemplate_FallingFossil; fossilTemplate.images = sFallingFossil->frameImage; + LoadObjectEventPalette(sSpriteTemplate_FallingFossil.paletteTag); sFallingFossil->spriteId = CreateSprite(&fossilTemplate, 128, -16, 1); gSprites[sFallingFossil->spriteId].centerToCornerVecX = 0; gSprites[sFallingFossil->spriteId].data[0] = gSprites[sFallingFossil->spriteId].x; @@ -714,6 +719,9 @@ static void Task_FossilFallAndSink(u8 taskId) // Wait for fossil to finish falling / disintegrating if (gSprites[sFallingFossil->spriteId].callback != SpriteCallbackDummy) return; + gSprites[sFallingFossil->spriteId].inUse = FALSE; + FieldEffectFreePaletteIfUnused(gSprites[sFallingFossil->spriteId].oam.paletteNum); + gSprites[sFallingFossil->spriteId].inUse = TRUE; DestroySprite(&gSprites[sFallingFossil->spriteId]); FREE_AND_SET_NULL(sFallingFossil->disintegrateRand);; FREE_AND_SET_NULL(sFallingFossil->frameImage);