Fixed Mirage Tower falling fossil palette.

This commit is contained in:
Ariel A 2022-10-27 23:42:33 -04:00
parent 5d9e9d3e0e
commit 70d95eed69

View File

@ -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);