From c704591c8c769373f58736361c6f85f5e7b18c6a Mon Sep 17 00:00:00 2001 From: Ariel A <24759293+aarant@users.noreply.github.com> Date: Mon, 29 Aug 2022 01:04:26 -0400 Subject: [PATCH] Fixed field move mon palette at night. --- include/constants/field_effects.h | 1 + src/field_effect.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h index 05d8d777db..25edea1af9 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -127,6 +127,7 @@ #define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F #define FLDEFF_PAL_TAG_HOF_MONITOR 0x1010 #define FLDEFF_PAL_TAG_UNKNOWN 0x1011 +#define FLDEFF_PAL_TAG_FIELD_MOVE_MON 0x8400 // tile tags, for field effects that may have many copies on screen at once #define FLDEFF_TILE_TAG_SHADOW_SMALL 0x1400 diff --git a/src/field_effect.c b/src/field_effect.c index cbf1be0bbc..6165d515ee 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -914,8 +914,10 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) u8 CreateMonSprite_FieldMove(u16 species, u32 otId, u32 personality, s16 x, s16 y, u8 subpriority) { const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); - u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, 1, x, y, 0, spritePalette->tag); - PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); + // force load unique tag here to avoid collision with follower pokemon + u8 paletteSlot = AllocSpritePalette(FLDEFF_PAL_TAG_FIELD_MOVE_MON); + u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, otId, personality, 1, x, y, paletteSlot, TAG_NONE); + PreservePaletteInWeather(IndexOfSpritePaletteTag(FLDEFF_PAL_TAG_FIELD_MOVE_MON) + 0x10); if (spriteId == 0xFFFF) return MAX_SPRITES; else