Updated follower color fill palette logic.
This commit is contained in:
parent
d12efe8cd7
commit
8b0457197a
1 changed files with 8 additions and 6 deletions
|
@ -484,6 +484,8 @@ const u8 gInitialMovementTypeFacingDirections[] = {
|
|||
#define OBJ_EVENT_PAL_TAG_CASTFORM_RAINY 0x1126
|
||||
#define OBJ_EVENT_PAL_TAG_CASTFORM_SNOWY 0x1127
|
||||
#define OBJ_EVENT_PAL_TAG_EMOTES 0x8002
|
||||
// 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"
|
||||
|
@ -6646,11 +6648,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);
|
||||
}
|
||||
|
||||
|
@ -6729,7 +6731,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);
|
||||
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;
|
||||
|
@ -6761,7 +6763,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);
|
||||
|
|
Loading…
Reference in a new issue