Merge branch 'followers' into lighting

This commit is contained in:
Ariel A 2023-06-08 21:11:56 -04:00
commit 7631ceddf9

View File

@ -487,6 +487,8 @@ const u8 gInitialMovementTypeFacingDirections[] = {
#define OBJ_EVENT_PAL_TAG_LIGHT_2 0x8002
#define OBJ_EVENT_PAL_TAG_EMOTES 0x8003
#define OBJ_EVENT_PAL_TAG_NEON_LIGHT 0x8004
// Not a real OW palette tag; used for the white flash applied to followers
#define OBJ_EVENT_PAL_TAG_WHITE (OBJ_EVENT_PAL_TAG_NONE - 1)
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
#include "data/object_events/object_event_graphics_info_pointers.h"
@ -6805,11 +6807,11 @@ bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent,
return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite);
}
// Copy and load objectEvent's palette, but set all opaque colors to white
static u8 LoadWhiteFlashPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite) {
// Update sprite with a palette filled with a solid color
static u8 LoadFillColorPalette(u16 color, u16 paletteTag, struct Sprite *sprite) {
u16 paletteData[16];
struct SpritePalette dynamicPalette = {.tag = OBJ_EVENT_PAL_TAG_NONE-1, .data = paletteData}; // TODO: Use a proper palette tag here
CpuFill16(RGB_WHITE, paletteData, 32);
struct SpritePalette dynamicPalette = {.tag = paletteTag, .data = paletteData};
CpuFill16(color, paletteData, PLTT_SIZE_4BPP);
return UpdateSpritePalette(&dynamicPalette, sprite);
}
@ -6888,7 +6890,7 @@ bool8 MovementAction_ExitPokeball_Step1(struct ObjectEvent *objectEvent, struct
// Set graphics, palette, and affine animation
} else if ((duration == 0 && sprite->data[3] == 3) || (duration == 1 && sprite->data[3] == 7)) {
FollowerSetGraphics(objectEvent, objectEvent->extra.mon.species, objectEvent->extra.mon.form, objectEvent->extra.mon.shiny, FALSE);
LoadWhiteFlashPalette(objectEvent, sprite);
LoadFillColorPalette(RGB_WHITE, OBJ_EVENT_PAL_TAG_WHITE, sprite);
// Initialize affine animation
sprite->affineAnims = sAffineAnims_PokeballFollower;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
@ -6920,7 +6922,7 @@ bool8 MovementAction_EnterPokeball_Step1(struct ObjectEvent *objectEvent, struct
sprite->data[2] = 2;
return FALSE;
} else if (sprite->data[3] == 11) { // Set palette to white & start affine
LoadWhiteFlashPalette(objectEvent, sprite);
LoadFillColorPalette(RGB_WHITE, OBJ_EVENT_PAL_TAG_WHITE, sprite);
sprite->affineAnims = sAffineAnims_PokeballFollower;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(sprite);