From 30c366eec32135d3debaf9cc52d60a417b1b424d Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Sun, 24 Apr 2022 02:14:27 -0400 Subject: [PATCH] Added support for setting overworld species via GFX script vars. Fixed minor graphical bug in LoadWhiteFlashPalette. --- src/event_object_movement.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 6235c1577c..9a4318adad 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -34,6 +34,7 @@ #include "constants/items.h" #include "constants/map_types.h" #include "constants/mauville_old_man.h" +#include "constants/rgb.h" #include "constants/species.h" #include "constants/trainer_types.h" #include "constants/union_room.h" @@ -1484,7 +1485,13 @@ TrySpawnObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, shiny = gObjectEvents[objectEventId].extra.mon.shiny; FollowerSetGraphics(&gObjectEvents[objectEventId], species, form, shiny); } - + // Set runtime species based on VAR_TEMP_4, if template has a dynamic graphics ID + } else if (objectEventTemplate->graphicsId >= OBJ_EVENT_GFX_VARS && VarGetObjectEventGraphicsId(objectEventTemplate->graphicsId - OBJ_EVENT_GFX_VARS) == OBJ_EVENT_GFX_OW_MON) { + gObjectEvents[objectEventId].extra.asU16 = VarGet(VAR_TEMP_4); + FollowerSetGraphics(&gObjectEvents[objectEventId], + gObjectEvents[objectEventId].extra.mon.species, + gObjectEvents[objectEventId].extra.mon.form, + gObjectEvents[objectEventId].extra.mon.form); } return objectEventId; @@ -6336,7 +6343,7 @@ bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent, static u8 LoadWhiteFlashPalette(struct ObjectEvent *objectEvent, 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(0xFFFF, &paletteData[1], 30); + CpuFill16(RGB_WHITE, paletteData, 32); return UpdateSpritePalette(&dynamicPalette, sprite); }