Merge branch 'followers' into lighting
This commit is contained in:
commit
7631ceddf9
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user