diff --git a/graphics/field_effects/palettes/pokeball_glow.pal b/graphics/field_effects/palettes/pokeball_glow.pal index 2dddefa5fb..5e2face1d4 100644 --- a/graphics/field_effects/palettes/pokeball_glow.pal +++ b/graphics/field_effects/palettes/pokeball_glow.pal @@ -10,10 +10,10 @@ JASC-PAL 255 0 0 255 123 123 255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +82 82 106 +123 123 123 +255 255 255 +189 230 255 +164 197 230 +156 189 213 +90 131 180 diff --git a/graphics/field_effects/pics/pokecenter_monitor/frlg.png b/graphics/field_effects/pics/pokecenter_monitor/frlg.png new file mode 100644 index 0000000000..54117cf6b8 Binary files /dev/null and b/graphics/field_effects/pics/pokecenter_monitor/frlg.png differ diff --git a/src/field_effect.c b/src/field_effect.c index b3f9de0ca6..75d3e689be 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -276,6 +276,7 @@ static const u32 sPokeballGlow_Gfx[] = INCBIN_U32("graphics/field_effects/pics/p static const u16 sPokeballGlow_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/pokeball_glow.gbapal"); static const u32 sPokecenterMonitor0_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokecenter_monitor/0.4bpp"); static const u32 sPokecenterMonitor1_Gfx[] = INCBIN_U32("graphics/field_effects/pics/pokecenter_monitor/1.4bpp"); +static const u16 sPokecenterMonitor_Gfx_Frlg[] = INCBIN_U16("graphics/field_effects/pics/pokecenter_monitor/frlg.4bpp"); static const u32 sHofMonitorBig_Gfx[] = INCBIN_U32("graphics/field_effects/pics/hof_monitor_big.4bpp"); static const u8 sHofMonitorSmall_Gfx[] = INCBIN_U8("graphics/field_effects/pics/hof_monitor_small.4bpp"); static const u16 sHofMonitor_Pal[16] = INCBIN_U16("graphics/field_effects/palettes/hof_monitor.gbapal"); @@ -427,6 +428,13 @@ static const struct SpriteFrameImage sPicTable_PokecenterMonitor[] = obj_frame_tiles(sPokecenterMonitor1_Gfx) }; +static const struct SpriteFrameImage sPicTable_PokecenterMonitor_Frlg[] = { + {sPokecenterMonitor_Gfx_Frlg + 0x000, 0x100}, + {sPokecenterMonitor_Gfx_Frlg + 0x080, 0x100}, + {sPokecenterMonitor_Gfx_Frlg + 0x100, 0x100}, + {sPokecenterMonitor_Gfx_Frlg + 0x180, 0x100} +}; + static const struct SpriteFrameImage sPicTable_HofMonitorBig[] = { obj_frame_tiles(sHofMonitorBig_Gfx) @@ -598,6 +606,15 @@ static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor = .callback = SpriteCB_PokecenterMonitor }; +static const struct SpriteTemplate sSpriteTemplate_PokecenterMonitor_FrLg = { + .tileTag = TAG_NONE, + .paletteTag = FLDEFF_PAL_TAG_POKEBALL_GLOW, + .oam = &sOam_32x16, + .anims = sAnims_Flicker, + .images = sPicTable_PokecenterMonitor_Frlg, + .callback = SpriteCB_PokecenterMonitor +}; + static const struct SpriteTemplate sSpriteTemplate_HofMonitorBig = { .tileTag = TAG_NONE, @@ -1127,7 +1144,7 @@ static void PokecenterHealEffect_WaitForBallPlacement(struct Task *task) { if (gSprites[task->tBallSpriteId].sState > 1) { - gSprites[task->tMonitorSpriteId].sState++; + gSprites[task->tMonitorSpriteId].data[0]++; task->tState++; } } @@ -1359,11 +1376,18 @@ static u8 CreatePokecenterMonitorSprite(s16 x, s16 y) { u8 spriteId; struct Sprite *sprite; - spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokecenterMonitor, x, y, 0); + if (IS_FRLG) + { + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokecenterMonitor_FrLg, x + 4, y, 0); + } + else + { + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_PokecenterMonitor, x, y, 0); + SetSubspriteTables(&gSprites[spriteId], &sSubspriteTable_PokecenterMonitor); + } sprite = &gSprites[spriteId]; sprite->oam.priority = 2; sprite->invisible = TRUE; - SetSubspriteTables(sprite, &sSubspriteTable_PokecenterMonitor); return spriteId; }