From 0b0481a2b3830ce5e2a2f85c8a10a3eb50ed0896 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 2 Jul 2026 21:35:02 -0400 Subject: [PATCH] Documented AnimSparkElectricityFlashing --- asm/macros/battle_anim_script.inc | 16 ++++++++++------ data/battle_anim_scripts.s | 32 +++++++++++++++---------------- src/battle_anim_electric.c | 22 +++++++++++---------- 3 files changed, 38 insertions(+), 32 deletions(-) diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index fbe037ddcc..b86b2c90f9 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -529,12 +529,20 @@ createsprite gElectricPuffSpriteTemplate, \anim_battler, \subpriority_offset, \relative_to, \x, \y .endm + .macro create_lightning_sprite anim_battler:req, subpriority_offset:req, x:req, y:req + createsprite gLightningSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y + .endm + .macro create_spark_electricity_sprite anim_battler:req, subpriority_offset:req, sine1:req, multiplier=24, sine2:req, duration:req, target:req, useAltCoords=TRUE, priority:req createsprite gSparkElectricitySpriteTemplate, \anim_battler, \subpriority_offset, \sine1, \multiplier, \sine2, \duration, \target, \useAltCoords, \priority .endm - .macro create_lightning_sprite anim_battler:req, subpriority_offset:req, x:req, y:req - createsprite gLightningSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y + .macro create_spark_electricity_flashing_sprite anim_battler:req, subpriority_offset:req, x:req, y:req, unk2:req, unk3:req, unk4:req, unk5:req, unk6:req, unk7:req + createsprite gSparkElectricityFlashingSpriteTemplate, \anim_battler, \subpriority_offset, \x, \y, \unk2, \unk3, \unk4, \unk5, \unk6, \unk7 + .endm + + .macro create_thunderbolt_orb_sprite anim_battler:req, subpriority_offset:req, unk0:req, x:req, y:req, unk3:req + createsprite gThunderboltOrbSpriteTemplate, \anim_battler, \subpriority_offset, \unk0, \x, \y, \unk3 .endm @.macro create_zap_cannon_ball_sprite anim_battler:req, subpriority_offset:req @@ -545,10 +553,6 @@ createsprite gZapCannonSparkSpriteTemplate, \anim_battler, \subpriority_offset, \unk0, \unk1, \unk2, \unk3, \unk4, \unk5, \unk6 .endm - .macro create_thunderbolt_orb_sprite anim_battler:req, subpriority_offset:req, unk0:req, x:req, y:req, unk3:req - createsprite gThunderboltOrbSpriteTemplate, \anim_battler, \subpriority_offset, \unk0, \x, \y, \unk3 - .endm - @.macro create_sprite anim_battler:req, subpriority_offset:req @createsprite gSpriteTemplate, \anim_battler, \subpriority_offset @.endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 0ceb125d7f..95fabb4f1a 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1094,14 +1094,14 @@ Move_THUNDERBOLT: waitforvisualfinish delay 20 create_thunderbolt_orb_sprite ANIM_TARGET, 3, unk0=44, x=0, y=0, unk3=3 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 0, 40, 0, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 64, 40, 1, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 128, 40, 0, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 32, 44, 192, 40, 2, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 32, 40, 0, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=32, unk3=44, unk4=0, unk5=40, unk6=0, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=32, unk3=44, unk4=64, unk5=40, unk6=1, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=32, unk3=44, unk4=128, unk5=40, unk6=0, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=32, unk3=44, unk4=192, unk5=40, unk6=2, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=16, unk3=44, unk4=32, unk5=40, unk6=0, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=16, unk3=44, unk4=96, unk5=40, unk6=1, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=16, unk3=44, unk4=160, unk5=40, unk6=0, unk7=-32765 + create_spark_electricity_flashing_sprite ANIM_TARGET, 4, x=0, y=0, unk2=16, unk3=44, unk4=224, unk5=40, unk6=2, unk7=-32765 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 0 createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 2, 2, RGB_BLACK @@ -1966,14 +1966,14 @@ Move_SPARK: delay 20 blend_color_cycle priority=2, selector=F_PAL_BG | F_PAL_ATTACKER, delay=-31, num_blends=1, initial_blend_y=7, target_blend_y=7, color=RGB(31, 31, 22) playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 192, 20, 2, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 32, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 96, 20, 1, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 160, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=32, unk3=12, unk4=0, unk5=20, unk6=0, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=32, unk3=12, unk4=64, unk5=20, unk6=1, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=32, unk3=12, unk4=128, unk5=20, unk6=0, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=32, unk3=12, unk4=192, unk5=20, unk6=2, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=16, unk3=12, unk4=32, unk5=20, unk6=0, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=16, unk3=12, unk4=96, unk5=20, unk6=1, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=16, unk3=12, unk4=160, unk5=20, unk6=0, unk7=0 + create_spark_electricity_flashing_sprite ANIM_ATTACKER, 4, x=0, y=0, unk2=16, unk3=12, unk4=224, unk5=20, unk6=2, unk7=0 delay 4 waitforvisualfinish blend_color_cycle priority=2, selector=F_PAL_BG | F_PAL_ATTACKER, delay=-31, num_blends=1, initial_blend_y=0, target_blend_y=0, color=RGB(31, 31, 22) diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index bc2f8ce5f0..5c869e0c7a 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -641,26 +641,28 @@ static void AnimThunderboltOrb(struct Sprite *sprite) static void AnimSparkElectricityFlashing(struct Sprite *sprite) { + CMD_ARGS(x, y, unk2, unk3, unk4, unk5, unk6, unk7); + u8 battler; - sprite->data[0] = gBattleAnimArgs[3]; - if (gBattleAnimArgs[7] & 0x8000) + sprite->data[0] = cmd->unk3; + if (cmd->unk7 & 0x8000) battler = gBattleAnimTarget; else battler = gBattleAnimAttacker; if (IsContest() || GetBattlerSide(battler) == B_SIDE_PLAYER) - gBattleAnimArgs[0] = -gBattleAnimArgs[0]; + cmd->x = -cmd->x; - sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + cmd->x; + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + cmd->y; - sprite->data[4] = gBattleAnimArgs[7] & 0x7FFF; - sprite->data[5] = gBattleAnimArgs[2]; - sprite->data[6] = gBattleAnimArgs[5]; - sprite->data[7] = gBattleAnimArgs[4]; + sprite->data[4] = cmd->unk7 & 0x7FFF; + sprite->data[5] = cmd->unk2; + sprite->data[6] = cmd->unk5; + sprite->data[7] = cmd->unk4; - sprite->oam.tileNum += gBattleAnimArgs[6] * 4; + sprite->oam.tileNum += cmd->unk6 * 4; sprite->callback = AnimSparkElectricityFlashing_Step; sprite->callback(sprite); }