diff options
38 files changed, 533 insertions, 438 deletions
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s index dd0e9bac1..d748a78f1 100644 --- a/asm/battle_anim_812C144.s +++ b/asm/battle_anim_812C144.s @@ -128,7 +128,7 @@ sub_812C220: @ 812C220 adds r4, r0, 0 movs r0, 0x5A strh r0, [r4, 0x2E] - ldr r0, _0812C258 @ =sub_80782D8 + ldr r0, _0812C258 @ =WaitAnimForDuration str r0, [r4, 0x1C] movs r0, 0x7 strh r0, [r4, 0x30] @@ -151,7 +151,7 @@ sub_812C220: @ 812C220 pop {r0} bx r0 .align 2, 0 -_0812C258: .4byte sub_80782D8 +_0812C258: .4byte WaitAnimForDuration _0812C25C: .4byte sub_812C268 _0812C260: .4byte REG_BLDCNT _0812C264: .4byte REG_BLDALPHA @@ -234,7 +234,7 @@ sub_812C2BC: @ 812C2BC subs r1, r6 lsls r1, 16 asrs r1, 16 - bl sub_80790F0 + bl ArcTan2Neg lsls r0, 16 movs r1, 0xC0 lsls r1, 23 @@ -830,7 +830,7 @@ _0812C754: ldr r0, _0812C790 @ =0x0000ffce strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _0812C794 @ =sub_812C798 str r0, [r4, 0x1C] add sp, 0x4 @@ -857,7 +857,7 @@ sub_812C798: @ 812C798 movs r0, 0x1E strh r0, [r4, 0x2E] strh r1, [r4, 0x30] - ldr r0, _0812C7C0 @ =sub_80782D8 + ldr r0, _0812C7C0 @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _0812C7C4 @ =sub_812C7C8 adds r0, r4, 0 @@ -867,7 +867,7 @@ _0812C7BA: pop {r0} bx r0 .align 2, 0 -_0812C7C0: .4byte sub_80782D8 +_0812C7C0: .4byte WaitAnimForDuration _0812C7C4: .4byte sub_812C7C8 thumb_func_end sub_812C798 @@ -8939,7 +8939,7 @@ _081305C6: adds r0, r1 lsls r0, 2 adds r0, r4 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration mov r1, r10 ldrb r0, [r1] bl GetBankSide diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index d7172bde6..a2e942ec9 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -1572,7 +1572,7 @@ sub_813FD90: @ 813FD90 ldr r0, _0813FDB8 @ =0x0000ffd8 strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _0813FDBC @ =sub_813FDC0 str r0, [r4, 0x1C] pop {r4} @@ -5508,7 +5508,7 @@ sub_8141C30: @ 8141C30 ldr r0, _08141CA8 @ =0x0000ffe0 strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r1, _08141CAC @ =gBankSpriteIds ldr r0, _08141CB0 @ =gAnimBankAttacker ldrb r0, [r0] diff --git a/asm/current.s b/asm/current.s index 69927ea23..fa3fec58a 100644 --- a/asm/current.s +++ b/asm/current.s @@ -442,7 +442,7 @@ _080D67F6: ldr r0, _080D6810 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] - ldr r0, _080D6814 @ =sub_80782D8 + ldr r0, _080D6814 @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _080D6818 @ =DestroyAnimSprite adds r0, r4, 0 @@ -452,7 +452,7 @@ _080D67F6: bx r0 .align 2, 0 _080D6810: .4byte gBattleAnimArgs -_080D6814: .4byte sub_80782D8 +_080D6814: .4byte WaitAnimForDuration _080D6818: .4byte DestroyAnimSprite thumb_func_end sub_80D679C diff --git a/asm/flying.s b/asm/flying.s index a9872c903..1862e3218 100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -2934,7 +2934,7 @@ sub_80DB5E4: @ 80DB5E4 asrs r5, 16 adds r0, r4, 0 adds r1, r5, 0 - bl sub_80790F0 + bl ArcTan2Neg lsls r0, 16 movs r1, 0xC0 lsls r1, 24 diff --git a/asm/ghost.s b/asm/ghost.s index df20a7b20..b5620910b 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -2627,7 +2627,7 @@ _080DEFAA: bne _080DF00C movs r0, 0x1E strh r0, [r3, 0x2E] - ldr r0, _080DF004 @ =sub_80782D8 + ldr r0, _080DF004 @ =WaitAnimForDuration str r0, [r3, 0x1C] ldr r1, _080DF008 @ =sub_80DF018 adds r0, r3, 0 @@ -2636,7 +2636,7 @@ _080DEFAA: .align 2, 0 _080DEFFC: .4byte 0x000003ff _080DF000: .4byte 0xfffffc00 -_080DF004: .4byte sub_80782D8 +_080DF004: .4byte WaitAnimForDuration _080DF008: .4byte sub_80DF018 _080DF00C: movs r0, 0x28 diff --git a/asm/ground.s b/asm/ground.s index 607065061..ac3f909b5 100644 --- a/asm/ground.s +++ b/asm/ground.s @@ -42,7 +42,7 @@ sub_80E0F1C: @ 80E0F1C ldr r0, _080E0F7C @ =0x0000ffd8 strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080E0F80 @ =sub_80E0F84 str r0, [r4, 0x1C] pop {r4,r5} @@ -92,7 +92,7 @@ sub_80E0F84: @ 80E0F84 movs r0, 0x28 strh r0, [r5, 0x38] adds r0, r5, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080E0FE4 @ =sub_80E0FE8 str r0, [r5, 0x1C] _080E0FD8: @@ -1105,7 +1105,7 @@ _080E1762: ldrh r0, [r7, 0x8] strh r0, [r5, 0x38] adds r0, r5, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080E17AC @ =sub_80E17B0 str r0, [r5, 0x1C] pop {r4-r7} @@ -1188,7 +1188,7 @@ _080E17EA: bl StoreSpriteCallbackInData ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] - ldr r0, _080E1860 @ =sub_80782D8 + ldr r0, _080E1860 @ =WaitAnimForDuration str r0, [r6, 0x1C] pop {r4-r6} pop {r0} @@ -1200,7 +1200,7 @@ _080E1850: .4byte gBattleAnimArgs _080E1854: .4byte 0x000003ff _080E1858: .4byte 0xfffffc00 _080E185C: .4byte DestroyAnimSprite -_080E1860: .4byte sub_80782D8 +_080E1860: .4byte WaitAnimForDuration thumb_func_end sub_80E17CC thumb_func_start sub_80E1864 @@ -3060,7 +3060,7 @@ _080D8E92: ldrh r0, [r6, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080D8EDC @ =sub_80D8EE0 str r0, [r5, 0x1C] pop {r4-r6} diff --git a/asm/normal.s b/asm/normal.s index c92b4563c..732c049ab 100644 --- a/asm/normal.s +++ b/asm/normal.s @@ -1709,7 +1709,7 @@ _080E299C: ldr r1, _080E29B8 @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData - ldr r0, _080E29BC @ =sub_80782D8 + ldr r0, _080E29BC @ =WaitAnimForDuration str r0, [r4, 0x1C] pop {r4} pop {r0} @@ -1717,7 +1717,7 @@ _080E299C: .align 2, 0 _080E29B4: .4byte gBattleAnimArgs _080E29B8: .4byte DestroyAnimSprite -_080E29BC: .4byte sub_80782D8 +_080E29BC: .4byte WaitAnimForDuration thumb_func_end sub_80E2978 thumb_func_start sub_80E29C0 diff --git a/asm/water.s b/asm/water.s index 0bbddd2ca..2f0ebb8f8 100644 --- a/asm/water.s +++ b/asm/water.s @@ -2053,7 +2053,7 @@ sub_80D4AD0: @ 80D4AD0 strh r1, [r0, 0x36] ldrh r1, [r6, 0x1A] strh r1, [r0, 0x38] - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration adds r5, 0x1C adds r4, r5 ldr r0, _080D4B38 @ =sub_80D4B3C @@ -2110,7 +2110,7 @@ sub_80D4B3C: @ 80D4B3C mvns r1, r1 strh r1, [r6, 0x38] adds r0, r6, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080D4BA0 @ =sub_80D4BA4 str r0, [r6, 0x1C] _080D4B96: diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s index e1a1511c0..b5ca446cf 100644 --- a/data/battle_anim_80CA710.s +++ b/data/battle_anim_80CA710.s @@ -163,8 +163,8 @@ gSpriteAnimTable_83D63C0:: @ 83D63C0 .4byte gSpriteAnim_83D63B4 .align 2 -gBattleAnimSpriteTemplate_83D63C8:: @ 83D63C8 - spr_template 10006, 10006, gOamData_837DF2C, gSpriteAnimTable_83D63C0, NULL, gDummySpriteAffineAnimTable, sub_80CAB18 +gLeechSeedSpriteTemplate:: @ 83D63C8 + spr_template 10006, 10006, gOamData_837DF2C, gSpriteAnimTable_83D63C0, NULL, gDummySpriteAffineAnimTable, AnimLeechSeed .align 2 gSpriteAnim_83D63E0:: @ 83D63E0 @@ -737,8 +737,8 @@ gSpriteAnimTable_83D6B24:: @ 83D6B24 .4byte gSpriteAnim_83D6B10 .align 2 -gBattleAnimSpriteTemplate_83D6B28:: @ 83D6B28 - spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D6B24, NULL, gDummySpriteAffineAnimTable, sub_80CC914 +gCuttingSliceSpriteTemplate:: @ 83D6B28 + spr_template 10138, 10138, gOamData_837E054, gSpriteAnimTable_83D6B24, NULL, gDummySpriteAffineAnimTable, AnimCuttingSlice .align 2 gBattleAnimSpriteTemplate_83D6B40:: @ 83D6B40 @@ -1457,8 +1457,8 @@ gBattleAnimSpriteTemplate_83D748C:: @ 83D748C spr_template 10005, 10005, gOamData_837E0FC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7488, sub_80CF690 .align 2 -gBattleAnimSpriteTemplate_83D74A4:: @ 83D74A4 - spr_template 10003, 10003, gOamData_837E134, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80CF6DC +gSonicBoomSpriteTemplate:: @ 83D74A4 + spr_template 10003, 10003, gOamData_837E134, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimSonicBoomProjectile .align 2 gSpriteTemplate_83D74BC:: @ 83D74BC @@ -1887,12 +1887,12 @@ gSpriteAffineAnimTable_83D7B10:: @ 83D7B10 .4byte gSpriteAffineAnim_83D7AF8 .align 2 -gBattleAnimSpriteTemplate_83D7B14:: @ 83D7B14 - spr_template 10217, 10217, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, sub_80D26A4 +gHiddenPowerOrbSpriteTemplate:: @ 83D7B14 + spr_template 10217, 10217, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, AnimOrbitFast .align 2 -gBattleAnimSpriteTemplate_83D7B2C:: @ 83D7B2C - spr_template 10217, 10217, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, sub_80D27E0 +gHiddenPowerOrbScatterSpriteTemplate:: @ 83D7B2C + spr_template 10217, 10217, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D7B10, AnimOrbitScatter .align 2 gSpriteAffineAnim_83D7B44:: @ 83D7B44 @@ -2448,20 +2448,20 @@ gSpriteAnimTable_83D95E0:: @ 83D95E0 .4byte gSpriteAnim_83D95C8 .align 2 -gBattleAnimSpriteTemplate_83D95E4:: @ 83D95E4 +gEmberSpriteTemplate:: @ 83D95E4 spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation .align 2 -gBattleAnimSpriteTemplate_83D95FC:: @ 83D95FC - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D51A8 +gEmberFlareSpriteTemplate:: @ 83D95FC + spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, AnimEmberFlare .align 2 gBattleAnimSpriteTemplate_83D9614:: @ 83D9614 spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D5210 .align 2 -gBattleAnimSpriteTemplate_83D962C:: @ 83D962C - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D522C +gFireRingSpriteTemplate:: @ 83D962C + spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, AnimFireRing .align 2 gSpriteAnim_83D9644:: @ 83D9644 @@ -2489,8 +2489,8 @@ gSpriteAffineAnimTable_83D9674:: @ 83D9674 .4byte gSpriteAffineAnim_83D9664 .align 2 -gBattleAnimSpriteTemplate_83D967C:: @ 83D967C - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9650, NULL, gDummySpriteAffineAnimTable, sub_80D5374 +gFireCrossSpriteTemplate:: @ 83D967C + spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9650, NULL, gDummySpriteAffineAnimTable, AnimFireCross .align 2 gBattleAnimSpriteTemplate_83D9694:: @ 83D9694 @@ -2677,7 +2677,7 @@ gBattleAnimSpriteTemplate_83D9908:: @ 83D9908 spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D6658 .align 2 -gBattleAnimSpriteTemplate_83D9920:: @ 83D9920 +gElectricitySpriteTemplate:: @ 83D9920 spr_template 10011, 10011, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D679C .align 2 @@ -3187,8 +3187,8 @@ gBattleAnimSpriteTemplate_83D9F90:: @ 83D9F90 spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9078 .align 2 -gBattleAnimSpriteTemplate_83D9FA8:: @ 83D9FA8 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D90A4 +gFistFootSpriteTemplate:: @ 83D9FA8 + spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, AnimBasicFistOrFoot .align 2 gBattleAnimSpriteTemplate_83D9FC0:: @ 83D9FC0 @@ -3214,7 +3214,7 @@ gSpriteAffineAnimTable_83DA020:: @ 83DA020 .align 2 gBattleAnimSpriteTemplate_83DA024:: @ 83DA024 - spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA020, sub_80D943C + spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA020, AnimSpinningKickOrPunch .align 2 gSpriteAffineAnim_83DA03C:: @ 83DA03C @@ -3227,12 +3227,12 @@ gSpriteAffineAnimTable_83DA054:: @ 83DA054 .4byte gSpriteAffineAnim_83DA03C .align 2 -gBattleAnimSpriteTemplate_83DA058:: @ 83DA058 - spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA054, sub_80D943C +gMegaPunchKickSpriteTemplate:: @ 83DA058 + spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA054, AnimSpinningKickOrPunch .align 2 -gBattleAnimSpriteTemplate_83DA070:: @ 83DA070 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, sub_80D94A8 +gStompFootSpriteTemplate:: @ 83DA070 + spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, AnimStompFoot .align 2 gBattleAnimSpriteTemplate_83DA088:: @ 83DA088 @@ -3447,12 +3447,12 @@ gSpriteAffineAnimTable_83DA34C:: @ 83DA34C .4byte gSpriteAffineAnim_83DA334 .align 2 -gBattleAnimSpriteTemplate_83DA350:: @ 83DA350 - spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA34C, sub_80D9F88 +gPoisonBubbleSpriteTemplate:: @ 83DA350 + spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA34C, AnimBubbleEffect .align 2 -gBattleAnimSpriteTemplate_83DA368:: @ 83DA368 - spr_template 10155, 10155, gOamData_837E0AC, gSpriteAnimTable_83D9310, NULL, gSpriteAffineAnimTable_83DA34C, sub_80D9F88 +gWaterBubbleSpriteTemplate:: @ 83DA368 + spr_template 10155, 10155, gOamData_837E0AC, gSpriteAnimTable_83D9310, NULL, gSpriteAffineAnimTable_83DA34C, AnimBubbleEffect .align 2 gBattleAnimSpriteTemplate_83DA380:: @ 83DA380 @@ -3970,16 +3970,16 @@ gBattleAnimSpriteTemplate_83DAB74:: @ 83DAB74 spr_template 10181, 10181, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB70, sub_80DCB38 .align 2 -gBattleAnimSpriteTemplate_83DAB8C:: @ 83DAB8C - spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCBCC +gLinearStingerSpriteTemplate:: @ 83DAB8C + spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimTranslateStinger .align 2 -gBattleAnimSpriteTemplate_83DABA4:: @ 83DABA4 - spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCCFC +gPinMissileSpriteTemplate:: @ 83DABA4 + spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimMissileArc .align 2 -gBattleAnimSpriteTemplate_83DABBC:: @ 83DABBC - spr_template 10262, 10262, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCCFC +gIcicleSpearSpriteTemplate:: @ 83DABBC + spr_template 10262, 10262, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimMissileArc .align 2 gSpriteAffineAnim_83DABD4:: @ 83DABD4 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 48af05ca4..540d6d531 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -682,7 +682,7 @@ Move_FLAME_WHEEL: @ 81C7E62 createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 6 delay 4 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 8, 1 - createvisualtask sub_8079790, 3, 1, 31, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_BANK_TARGET, 31, 12, 1, 1 playsewithpan SE_W172B, 63 call _81D11A2 delay 7 @@ -703,15 +703,15 @@ Move_PIN_MISSILE: @ 81C7F5C monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W026, 192 - createsprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, -8, -8, 20, -32 + createsprite gPinMissileSpriteTemplate, 2, 20, -8, -8, -8, 20, -32 delay 15 - createsprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, 8, 8, 20, -40 + createsprite gPinMissileSpriteTemplate, 2, 20, -8, 8, 8, 20, -40 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, -8, -8, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 delay 9 - createsprite gBattleAnimSpriteTemplate_83DABA4, 2, 20, -8, 0, 0, 20, -32 + createsprite gPinMissileSpriteTemplate, 2, 20, -8, 0, 0, 20, -32 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 8, 8, 1, 2 @@ -732,15 +732,15 @@ Move_ICICLE_SPEAR: @ 81C8021 monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W196, 192 - createsprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, -8, -8, 20, -32 + createsprite gIcicleSpearSpriteTemplate, 2, 20, -8, -8, -8, 20, -32 delay 15 - createsprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, 8, 8, 20, -40 + createsprite gIcicleSpearSpriteTemplate, 2, 20, -8, 8, 8, 20, -40 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, -8, -8, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 2, 1 delay 9 - createsprite gBattleAnimSpriteTemplate_83DABBC, 2, 20, -8, 0, 0, 20, -32 + createsprite gIcicleSpearSpriteTemplate, 2, 20, -8, 0, 0, 20, -32 delay 4 playsewithpan SE_W030, 63 createsprite gBasicHitSplatSpriteTemplate, 3, 8, 8, 1, 2 @@ -759,7 +759,7 @@ Move_TAKE_DOWN: @ 81C80E6 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W036, 192 - createvisualtask sub_80A8920, 5, 0, -24, 8, 23, 10, 40, 10 + createvisualtask AnimTask_WindUpLunge, 5, ANIM_BANK_ATTACKER, -24, 8, 23, 10, 40, 10 delay 35 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 0, 10, 0, 0 createsprite gBasicHitSplatSpriteTemplate, 4, -10, 0, 1, 0 @@ -819,13 +819,13 @@ Move_POISON_STING: @ 81C828D monbgprio_28 1 setalpha 12, 8 playsewithpan SE_W013B, 192 - createsprite gBattleAnimSpriteTemplate_83DAB8C, 130, 20, 0, -8, 0, 20 + createsprite gLinearStingerSpriteTemplate, 130, 20, 0, -8, 0, 20 waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 5, 1 playsewithpan SE_W030, 63 waitforvisualfinish - call Unknown_81D5F87 + call PoisonBubblesAnim waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -838,8 +838,8 @@ Move_TWINEEDLE: @ 81C82E2 monbgprio_28 1 setalpha 12, 8 loopsewithpan SE_W013B, 192, 6, 2 - createsprite gBattleAnimSpriteTemplate_83DAB8C, 130, 10, -4, 0, -4, 20 - createsprite gBattleAnimSpriteTemplate_83DAB8C, 130, 20, 12, 10, 12, 20 + createsprite gLinearStingerSpriteTemplate, 130, 10, -4, 0, -4, 20 + createsprite gLinearStingerSpriteTemplate, 130, 20, 12, 10, 12, 20 delay 20 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 5, 1 createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, 0, -4, 1, 3 @@ -854,61 +854,61 @@ Move_TWINEEDLE: @ 81C82E2 Move_FIRE_BLAST: @ 81C8355 loadspritegfx 10029 createsoundtask sub_812AF30, 144, 145 - call _81C83E9 - call _81C83E9 - call _81C83E9 + call Move_FIRE_BLAST_CreateFireRing + call Move_FIRE_BLAST_CreateFireRing + call Move_FIRE_BLAST_CreateFireRing delay 24 createvisualtask sub_80E2A38, 10, 1, 3, 0, 8, 0 waitforvisualfinish delay 19 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 20, 1 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross delay 3 - call _81C842D + call Move_FIRE_BLAST_CreateFireCross waitforvisualfinish createvisualtask sub_80E2A38, 10, 1, 2, 8, 0, 0 waitforvisualfinish end -_81C83E9: - createsprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 0 - createsprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 51 - createsprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 102 - createsprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 153 - createsprite gBattleAnimSpriteTemplate_83D962C, 130, 0, 0, 204 +Move_FIRE_BLAST_CreateFireRing: + createsprite gFireRingSpriteTemplate, 130, 0, 0, 0 + createsprite gFireRingSpriteTemplate, 130, 0, 0, 51 + createsprite gFireRingSpriteTemplate, 130, 0, 0, 102 + createsprite gFireRingSpriteTemplate, 130, 0, 0, 153 + createsprite gFireRingSpriteTemplate, 130, 0, 0, 204 delay 5 return -_81C842D: - createsprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 10, 0, -2 - createsprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 13, -2, 0 - createsprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 13, 2, 0 - createsprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 15, -2, 2 - createsprite gBattleAnimSpriteTemplate_83D967C, 130, 0, 0, 15, 2, 2 +Move_FIRE_BLAST_CreateFireCross: + createsprite gFireCrossSpriteTemplate, 130, 0, 0, 10, 0, -2 + createsprite gFireCrossSpriteTemplate, 130, 0, 0, 13, -2, 0 + createsprite gFireCrossSpriteTemplate, 130, 0, 0, 13, 2, 0 + createsprite gFireCrossSpriteTemplate, 130, 0, 0, 15, -2, 2 + createsprite gFireCrossSpriteTemplate, 130, 0, 0, 15, 2, 2 return Move_LEECH_SEED: @ 81C8483 loadspritegfx 10006 playsewithpan SE_W077, 192 - createsprite gBattleAnimSpriteTemplate_83D63C8, 130, 15, 0, 0, 24, 35, -32 + createsprite gLeechSeedSpriteTemplate, 130, 15, 0, 0, 24, 35, -32 delay 8 playsewithpan SE_W077, 192 - createsprite gBattleAnimSpriteTemplate_83D63C8, 130, 15, 0, -16, 24, 35, -40 + createsprite gLeechSeedSpriteTemplate, 130, 15, 0, -16, 24, 35, -40 delay 8 playsewithpan SE_W077, 192 - createsprite gBattleAnimSpriteTemplate_83D63C8, 130, 15, 0, 16, 24, 35, -37 + createsprite gLeechSeedSpriteTemplate, 130, 15, 0, 16, 24, 35, -37 delay 12 loopsewithpan SE_W039, 63, 10, 8 waitforvisualfinish @@ -917,19 +917,19 @@ Move_LEECH_SEED: @ 81C8483 Move_EMBER: @ 81C84D9 loadspritegfx 10029 loopsewithpan SE_W052, 192, 5, 2 - createsprite gBattleAnimSpriteTemplate_83D95E4, 130, 20, 0, -16, 24, 20, 1 + createsprite gEmberSpriteTemplate, 130, 20, 0, -16, 24, 20, 1 delay 4 - createsprite gBattleAnimSpriteTemplate_83D95E4, 130, 20, 0, 0, 24, 20, 1 + createsprite gEmberSpriteTemplate, 130, 20, 0, 0, 24, 20, 1 delay 4 - createsprite gBattleAnimSpriteTemplate_83D95E4, 130, 20, 0, 16, 24, 20, 1 + createsprite gEmberSpriteTemplate, 130, 20, 0, 16, 24, 20, 1 delay 16 playsewithpan SE_W172, 63 - call _81C8535 - call _81C8535 - call _81C8535 + call Move_EMBER_CreateFlare + call Move_EMBER_CreateFlare + call Move_EMBER_CreateFlare end -_81C8535: - createsprite gBattleAnimSpriteTemplate_83D95FC, 130, -24, 24, 24, 24, 20, 1, 1 +Move_EMBER_CreateFlare: + createsprite gEmberFlareSpriteTemplate, 130, -24, 24, 24, 24, 20, 1, 1 delay 4 return @@ -941,7 +941,7 @@ Move_MEGA_PUNCH: @ 81C854D createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 16, 0 setalpha 12, 8 playsewithpan SE_W025, 63 - createsprite gBattleAnimSpriteTemplate_83DA058, 3, 0, 0, 0, 50 + createsprite gMegaPunchKickSpriteTemplate, 3, 0, 0, 0, 50 createvisualtask sub_80E2A38, 10, 4, 2, 0, 7, 32767 delay 50 call _81C85E9 @@ -984,7 +984,7 @@ Move_MEGA_KICK: @ 81C8627 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 16, 0 setalpha 12, 8 playsewithpan SE_W025, 63 - createsprite gBattleAnimSpriteTemplate_83DA058, 3, 0, 0, 1, 50 + createsprite gMegaPunchKickSpriteTemplate, 3, 0, 0, 1, 50 createvisualtask sub_80E2A38, 10, 4, 2, 0, 7, 32767 delay 50 playsewithpan SE_W025B, 63 @@ -1006,22 +1006,22 @@ Move_COMET_PUNCH: @ 81C86C3 loadspritegfx 10143 monbg ANIM_BANK_TARGET setalpha 12, 8 - choosetwoturnanim _81C86F1, _81C8716 -_81C86D7: + choosetwoturnanim Move_COMET_PUNCH_Even, Move_COMET_PUNCH_Odd +Move_COMET_PUNCH_End: createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 playsewithpan SE_W004, 63 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff end -_81C86F1: +Move_COMET_PUNCH_Even: createsprite gBasicHitSplatSpriteTemplate, 2, -8, -8, 1, 2 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, -8, 0, 8, 1, 0 - goto _81C86D7 -_81C8716: + createsprite gFistFootSpriteTemplate, 3, -8, 0, 8, 1, 0 + goto Move_COMET_PUNCH_End +Move_COMET_PUNCH_Odd: createsprite gBasicHitSplatSpriteTemplate, 2, 8, -8, 1, 2 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, 8, 0, 8, 1, 0 - goto _81C86D7 + createsprite gFistFootSpriteTemplate, 3, 8, 0, 8, 1, 0 + goto Move_COMET_PUNCH_End Move_SONIC_BOOM: @ 81C873B loadspritegfx 10003 @@ -1029,21 +1029,21 @@ Move_SONIC_BOOM: @ 81C873B monbg ANIM_BANK_DEF_PARTNER monbgprio_28 1 setalpha 12, 8 - call _81C8772 - call _81C8772 - call _81C8772 + call Move_SONIC_BOOM_CreateBlast + call Move_SONIC_BOOM_CreateBlast + call Move_SONIC_BOOM_CreateBlast createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 10, 1 - call _81C878A + call Move_SONIC_BOOM_CreateHitSplat waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff end -_81C8772: +Move_SONIC_BOOM_CreateBlast: playsewithpan SE_W013B, 192 - createsprite gBattleAnimSpriteTemplate_83D74A4, 130, 16, 0, 0, 0, 15 + createsprite gSonicBoomSpriteTemplate, 130, 16, 0, 0, 0, 15 delay 4 return -_81C878A: +Move_SONIC_BOOM_CreateHitSplat: createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 2 delay 4 return @@ -1062,7 +1062,7 @@ Move_THUNDER_SHOCK: @ 81C879C createvisualtask sub_80E2A38, 10, 4, 0, 13, 0, 0 waitforvisualfinish delay 20 - call Unknown_81D6100 + call ElectricityEffect waitforvisualfinish delay 20 createvisualtask sub_80E2A38, 10, 1, 0, 6, 0, 0 @@ -1111,7 +1111,7 @@ Move_THUNDERBOLT: @ 81C880A waitforvisualfinish delay 20 waitplaysewithpan SE_W085B, 63, 19 - call Unknown_81D6100 + call ElectricityEffect waitforvisualfinish delay 20 createvisualtask sub_80E2A38, 10, 1, 0, 6, 0, 0 @@ -1144,34 +1144,34 @@ Move_BEAT_UP: @ 81C8A2F loadspritegfx 10143 monbg ANIM_BANK_TARGET setalpha 12, 8 - choosetwoturnanim _81C8A48, _81C8AB9 -_81C8A43: + choosetwoturnanim Move_BEAT_UP_Even, Move_BEAT_UP_Odd +Move_BEAT_UP_End: waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff end -_81C8A48: +Move_BEAT_UP_Even: createsprite gBasicHitSplatSpriteTemplate, 130, -20, -20, 1, 2 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 131, -20, -12, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 131, -20, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 playsewithpan SE_W233B, 63 delay 8 createsprite gBasicHitSplatSpriteTemplate, 130, 8, 0, 1, 2 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 131, 8, 8, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 131, 8, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 playsewithpan SE_W233B, 63 - goto _81C8A43 -_81C8AB9: + goto Move_BEAT_UP_End +Move_BEAT_UP_Odd: createsprite gBasicHitSplatSpriteTemplate, 130, 12, -20, 1, 2 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 131, 12, -12, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 131, 12, -12, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 playsewithpan SE_W233B, 63 delay 8 createsprite gBasicHitSplatSpriteTemplate, 130, -12, 0, 1, 2 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 131, -12, 8, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 131, -12, 8, 8, 1, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 playsewithpan SE_W233B, 63 - goto _81C8A43 + goto Move_BEAT_UP_End Move_STOMP: @ 81C8B2A loadspritegfx 10143 @@ -1179,7 +1179,7 @@ Move_STOMP: @ 81C8B2A monbg ANIM_BANK_TARGET setalpha 12, 8 playsewithpan SE_W104, 63 - createsprite gBattleAnimSpriteTemplate_83DA070, 3, 0, -32, 15 + createsprite gStompFootSpriteTemplate, 3, 0, -32, 15 delay 19 createsprite gBasicHitSplatSpriteTemplate, 2, 0, -8, 1, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 0, 4, 9, 1 @@ -1200,7 +1200,7 @@ Move_CUT: @ 81C8B8A monbg ANIM_BANK_TARGET setalpha 12, 8 playsewithpan SE_W015, 63 - createsprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0 + createsprite gCuttingSliceSpriteTemplate, 2, 40, -32, 0 delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 0, 3, 10, 1 waitforvisualfinish @@ -1212,31 +1212,31 @@ Move_CUT: @ 81C8B8A Move_HIDDEN_POWER: @ 81C8BBC loadspritegfx 10217 playsewithpan SE_W036, 192 - createvisualtask sub_80A8D34, 5, -7, -7, 11, 0, 0 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_BANK_ATTACKER, 0 waitforvisualfinish delay 30 - createvisualtask sub_8079790, 5, 0, 20479, 12, 5, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_ATTACKER, 20479, 12, 5, 1 delay 4 - createvisualtask sub_80A8D34, 5, -7, -7, 11, 0, 0 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_BANK_ATTACKER, 0 playsewithpan SE_W179, 192 - createsprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 0 - createsprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 42 - createsprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 84 - createsprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 126 - createsprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 168 - createsprite gBattleAnimSpriteTemplate_83D7B14, 2, 26, 210 + createsprite gHiddenPowerOrbSpriteTemplate, 2, 26, 0 + createsprite gHiddenPowerOrbSpriteTemplate, 2, 26, 42 + createsprite gHiddenPowerOrbSpriteTemplate, 2, 26, 84 + createsprite gHiddenPowerOrbSpriteTemplate, 2, 26, 126 + createsprite gHiddenPowerOrbSpriteTemplate, 2, 26, 168 + createsprite gHiddenPowerOrbSpriteTemplate, 2, 26, 210 delay 52 setarg 7, -1 playsewithpan SE_W115, 192 - createvisualtask sub_80A8D34, 5, -7, -7, 11, 0, 0 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 0 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 32 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 64 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 96 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 128 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 160 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 192 - createsprite gBattleAnimSpriteTemplate_83D7B2C, 130, 224 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_BANK_ATTACKER, 0 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 0 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 32 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 64 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 96 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 128 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 160 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 192 + createsprite gHiddenPowerOrbScatterSpriteTemplate, 130, 224 end Move_REVERSAL: @ 81C8CA5 @@ -1262,7 +1262,7 @@ Move_REVERSAL: @ 81C8CA5 delay 8 playsewithpan SE_W233B, 63 createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32767, 8, 0, 0 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 132, 0, 0, 10, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 createvisualtask sub_80A9058, 5, 0, 1, 8, 1, 0 end @@ -1300,13 +1300,13 @@ Move_SPIKE_CANNON: @ 81C8DF1 monbg ANIM_BANK_TARGET monbgprio_28 1 setalpha 12, 8 - createvisualtask sub_80A8920, 5, 0, -4, 0, 4, 6, 8, 4 + createvisualtask AnimTask_WindUpLunge, 5, ANIM_BANK_ATTACKER, -4, 0, 4, 6, 8, 4 waitforvisualfinish loopsewithpan SE_W013B, 192, 5, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 - createsprite gBattleAnimSpriteTemplate_83DAB8C, 2, 10, -8, -8, -8, 20 - createsprite gBattleAnimSpriteTemplate_83DAB8C, 2, 18, 0, 0, 0, 20 - createsprite gBattleAnimSpriteTemplate_83DAB8C, 2, 26, 8, 8, 8, 20 + createsprite gLinearStingerSpriteTemplate, 2, 10, -8, -8, -8, 20 + createsprite gLinearStingerSpriteTemplate, 2, 18, 0, 0, 0, 20 + createsprite gLinearStingerSpriteTemplate, 2, 26, 8, 8, 8, 20 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, -8, -8, 1, 2 createsprite gBattleAnimSpriteTemplate_83DB4C0, 3, 0, 0, 1, 2 @@ -1344,7 +1344,7 @@ Move_PSYCH_UP: @ 81C8EEA delay 127 delay 4 playsewithpan SE_W060, 192 - createvisualtask sub_80A8D34, 5, -5, -5, 10, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_BANK_ATTACKER, 1 createvisualtask sub_80E2A38, 9, 2, 2, 10, 0, 1023 delay 30 clearmonbg ANIM_BANK_ATK_PARTNER @@ -1359,7 +1359,7 @@ Move_DIZZY_PUNCH: @ 81C8F5C monbg ANIM_BANK_TARGET setalpha 12, 8 call _81C9077 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 133, 16, 8, 20, 1, 0 + createsprite gFistFootSpriteTemplate, 133, 16, 8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 132, 16, 0, 1, 1 playsewithpan SE_W004, 63 createsprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, 160, -32 @@ -1370,7 +1370,7 @@ Move_DIZZY_PUNCH: @ 81C8F5C createsprite gBattleAnimSpriteTemplate_83DA088, 131, 16, 8, -384, -31 delay 10 call _81C9077 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 133, -16, -8, 20, 1, 0 + createsprite gFistFootSpriteTemplate, 133, -16, -8, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 132, -16, -16, 1, 1 playsewithpan SE_W233B, 63 createsprite gBattleAnimSpriteTemplate_83DA088, 131, -16, -8, 160, -32 @@ -1436,10 +1436,10 @@ _81C918E: waitforvisualfinish end _81C91A7: - createsprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0 + createsprite gCuttingSliceSpriteTemplate, 2, 40, -32, 0 goto _81C916A _81C91B9: - createsprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 1 + createsprite gCuttingSliceSpriteTemplate, 2, 40, -32, 1 goto _81C916A _81C91CB: createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 10505, 4, 0, 0 @@ -1979,7 +1979,7 @@ Move_SPARK: @ 81C9EA3 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 waitforvisualfinish createvisualtask sub_80E1F8C, 2, 4, -31, 2, 0, 6, 23551 - call Unknown_81D6100 + call ElectricityEffect waitforvisualfinish end @@ -2021,7 +2021,7 @@ Move_GROWTH: @ 81CA1B3 _81CA1C0: createvisualtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 32767 playsewithpan SE_W036, 192 - createvisualtask sub_80A8D34, 5, -3, -3, 16, 0, 0 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_BANK_ATTACKER, 0 return Move_WHIRLWIND: @ 81CA1E9 @@ -2193,7 +2193,7 @@ Move_BUBBLE_BEAM: @ 81CA573 call _81CA5AD call _81CA5AD waitforvisualfinish - call Unknown_81D5FF8 + call WaterBubbleEffect waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -2739,7 +2739,7 @@ Move_RAGE: @ 81CB27C loadspritegfx 10087 monbg ANIM_BANK_TARGET setalpha 12, 8 - createvisualtask sub_8079790, 3, 0, 31, 10, 0, 2 + createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_BANK_ATTACKER, 31, 10, 0, 2 createsprite gBattleAnimSpriteTemplate_83D7798, 2, 0, -20, -28 playsewithpan SE_W207B, 192 delay 20 @@ -3006,7 +3006,7 @@ Move_SUPER_FANG: @ 81CB75A playsewithpan SE_W082, 192 waitforvisualfinish createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 3, 0, 48, 1 - createvisualtask sub_8079790, 2, 0, 1247, 12, 4, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_BANK_ATTACKER, 1247, 12, 4, 1 waitforvisualfinish delay 20 createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4 @@ -3074,7 +3074,7 @@ Move_NIGHTMARE: @ 81CB8A3 waitbgfadein end _81CB8CF: - createvisualtask sub_8079790, 2, 0, 32767, 10, 2, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_BANK_ATTACKER, 32767, 10, 2, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_ATTACKER, 3, 0, 32, 1 playsewithpan SE_W171, 63 waitforvisualfinish @@ -3128,7 +3128,7 @@ _81CB97E: playsewithpan SE_W026, 192 delay 6 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 132, 0, 0, 8, 1, 0 playsewithpan SE_W004, 63 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -3155,7 +3155,7 @@ Move_FORESIGHT: @ 81CB9ED delay 24 playsewithpan SE_W166, 63 delay 10 - createvisualtask sub_8079790, 5, 1, 32767, 12, 2, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_TARGET, 32767, 12, 2, 1 playsewithpan SE_W197, 63 waitforvisualfinish blendoff @@ -3485,7 +3485,7 @@ Move_TORMENT: @ 81CC0AE loadspritegfx 10209 createvisualtask sub_812D008, 2 waitforvisualfinish - createvisualtask sub_8079790, 2, 1, 31, 10, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_BANK_TARGET, 31, 10, 1, 1 createsprite gBattleAnimSpriteTemplate_83D7798, 130, 1, -20, -28 playsewithpan SE_W207B, 63 delay 20 @@ -3618,7 +3618,7 @@ Move_HELPING_HAND: @ 81CC2BF delay 20 playsewithpan SE_W227, 0 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATK_PARTNER, 3, 0, 10, 1 - createvisualtask sub_8079790, 2, 2, 1023, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_BANK_ATK_PARTNER, 1023, 12, 1, 1 end Move_ASSIST: @ 81CC332 @@ -3680,7 +3680,7 @@ Move_RECYCLE: @ 81CC45E createsprite gBattleAnimSpriteTemplate_8402B10, 2 loopsewithpan SE_W036, 192, 24, 3 waitforvisualfinish - createvisualtask sub_8079790, 5, 0, 32767, 12, 2, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_ATTACKER, 32767, 12, 2, 1 playsewithpan SE_W036, 192 waitforvisualfinish blendoff @@ -3701,20 +3701,20 @@ _81CC4A7: delay 4 delay 1 createsprite gBasicHitSplatSpriteTemplate, 3, -18, -18, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 2, -18, -18, 10, 1, 0 playsewithpan SE_W233, 63 delay 20 createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, 3, 18, 18, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 2, 18, 18, 10, 1, 0 playsewithpan SE_W233, 63 delay 20 - createvisualtask sub_80A8920, 2, 0, -24, 0, 24, 10, 24, 3 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_BANK_ATTACKER, -24, 0, 24, 10, 24, 3 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 6, 0 delay 37 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 0, 0, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 2, 0, 0, 10, 1, 0 playsewithpan SE_W233B, 63 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 6, 0, 0 @@ -3729,20 +3729,20 @@ _81CC576: createsprite gBattleAnimSpriteTemplate_83DA0A0, 3, 1, 0, 0, 90, 10 delay 1 createsprite gBasicHitSplatSpriteTemplate, 3, -18, -18, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 2, -18, -18, 10, 1, 0 playsewithpan SE_W233, 63 delay 20 createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8 delay 5 createsprite gBasicHitSplatSpriteTemplate, 3, 18, 18, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 2, 18, 18, 10, 1, 0 playsewithpan SE_W233, 63 delay 20 - createvisualtask sub_80A8920, 2, 0, -24, 0, 24, 10, 24, 3 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_BANK_ATTACKER, -24, 0, 24, 10, 24, 3 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 6, 0 delay 37 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 0, 0, 10, 1, 0 + createsprite gFistFootSpriteTemplate, 2, 0, 0, 10, 1, 0 playsewithpan SE_W233B, 63 waitforvisualfinish createsprite gBattleAnimSpriteTemplate_83DA0B8, 2, 1, 0, -8, -12 @@ -3777,7 +3777,7 @@ Move_ENDEAVOR: @ 81CC6DA loadspritegfx 10135 createvisualtask sub_812FD7C, 2, 0, 2 loopsewithpan SE_W039, 192, 24, 2 - createvisualtask sub_8079790, 5, 0, 703, 12, 1, 2 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_ATTACKER, 703, 12, 1, 2 delay 6 createvisualtask sub_80A9058, 5, 0, 1, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 130, 12, -12, 1, 2 @@ -3817,11 +3817,11 @@ Move_SKILL_SWAP: @ 81CC81C loadspritegfx 10251 call Unknown_81D61E7 createvisualtask sub_80DC0B0, 3, 1 - createvisualtask sub_8079790, 5, 1, 32767, 12, 3, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_TARGET, 32767, 12, 3, 1 loopsewithpan SE_W179, 192, 24, 3 delay 16 createvisualtask sub_80DC0B0, 3, 0 - createvisualtask sub_8079790, 5, 0, 32767, 12, 3, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_ATTACKER, 32767, 12, 3, 1 waitforvisualfinish call Unknown_81D61F3 end @@ -4078,7 +4078,7 @@ Move_NEEDLE_ARM: @ 81CCD73 waitforvisualfinish createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 18, 1 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 132, 0, 0, 8, 1, 0 playsewithpan SE_W233B, 63 createsprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 0, -24, 10 createsprite gBattleAnimSpriteTemplate_83D6994, 130, 1, 1, 17, -17, 10 @@ -4303,7 +4303,7 @@ Move_SHADOW_PUNCH: @ 81CD3D6 playsewithpan SE_W026, 192 delay 6 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 132, 0, 0, 8, 1, 0 playsewithpan SE_W004, 63 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1 waitforvisualfinish @@ -4317,11 +4317,11 @@ Move_EXTRASENSORY: @ 81CD431 call Unknown_81D61E7 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 - createvisualtask sub_8079790, 5, 0, 891, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_ATTACKER, 891, 12, 1, 1 createvisualtask sub_80DC2D4, 5, 0 playsewithpan SE_W020, 63 waitforvisualfinish - createvisualtask sub_8079790, 5, 0, 891, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_BANK_ATTACKER, 891, 12, 1, 1 createvisualtask sub_80DC2D4, 5, 1 playsewithpan SE_W020, 63 waitforvisualfinish @@ -4340,7 +4340,7 @@ Move_AERIAL_ACE: @ 81CD499 setalpha 12, 8 createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 24, 6, 1, 5 createvisualtask sub_80E2DD8, 2, 0, 4, 7, 3 - createsprite gBattleAnimSpriteTemplate_83D6B28, 2, 40, -32, 0 + createsprite gCuttingSliceSpriteTemplate, 2, 40, -32, 0 playsewithpan SE_W013B, 192 delay 5 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 0, 3, 10, 1 @@ -4669,7 +4669,7 @@ Move_ICE_PUNCH: @ 81CDB3E createsprite gBattleAnimSpriteTemplate_83D9BE0, 2, 160 createsprite gBattleAnimSpriteTemplate_83D9BE0, 2, 224 delay 17 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 4, 0, -10, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 4, 0, -10, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 3, 0, -10, 1, 1 playsewithpan SE_W004, 63 delay 2 @@ -4706,7 +4706,7 @@ Move_CONFUSION: @ 81CDC69 waitforvisualfinish playsewithpan SE_W048, 63 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 15, 1 - createvisualtask sub_80A8D34, 5, -4, -4, 15, 1, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_BANK_TARGET, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -4723,7 +4723,7 @@ Move_PSYCHIC: @ 81CDCCA waitforvisualfinish loopsewithpan SE_W048, 63, 10, 3 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 15, 1 - createvisualtask sub_80A8D34, 5, -6, -6, 15, 1, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_BANK_TARGET, 1 waitforvisualfinish clearmonbg ANIM_BANK_DEF_PARTNER blendoff @@ -4745,7 +4745,7 @@ _81CDD3B: setalpha 8, 8 playsewithpan SE_W048, 192 createvisualtask sub_80E1F8C, 2, 2, 0, 2, 0, 8, 32767 - createvisualtask sub_80A8D34, 5, -4, -4, 15, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_BANK_ATTACKER, 1 waitforvisualfinish clearmonbg ANIM_BANK_ATK_PARTNER blendoff @@ -4759,7 +4759,7 @@ Unknown_81CDD7A: @ 81CDD7A playsewithpan SE_W048, 63 waitplaysewithpan SE_W048, 63, 8 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 4, 0, 15, 1 - createvisualtask sub_80A8D34, 5, -5, -5, 15, 1, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_BANK_TARGET, 1 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 4, 0, 24, 1 waitforvisualfinish @@ -4834,7 +4834,7 @@ Move_THUNDER_PUNCH: @ 81CDF28 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 0, 16, 0 waitforvisualfinish playsewithpan SE_W004, 63 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 132, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 1 delay 1 createvisualtask sub_80E2324, 2, 257, 257, 257 @@ -4968,7 +4968,7 @@ Move_ROAR: @ 81CE31E monbgprio_28 0 setalpha 8, 8 createvisualtask sub_812B18C, 2, 0, 2 - createvisualtask sub_80A8D34, 5, -5, -5, 10, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_BANK_ATTACKER, 1 call _81CE35E delay 20 createvisualtask sub_80A8A80, 5, 1, 2 @@ -5012,7 +5012,7 @@ Move_SNORE: @ 81CE3EA end _81CE403: playsewithpan SE_W173, 192 - createvisualtask sub_80A8D34, 5, -7, -7, 7, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_BANK_ATTACKER, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 7, 1 createsprite gBattleAnimSpriteTemplate_83DB428, 2, 6, 1, 14, 0, 0 createsprite gBattleAnimSpriteTemplate_83D77F8, 2, 0, 0, -42, -38, 24, 0, 0 @@ -5116,7 +5116,7 @@ Move_BUBBLE: @ 81CE59C playsewithpan SE_W145, 192 waitplaysewithpan SE_W145B, 63, 100 waitforvisualfinish - call Unknown_81D6069 + call WaterBubbleEffect2 waitforvisualfinish clearmonbg ANIM_BANK_TARGET blendoff @@ -5921,7 +5921,7 @@ Move_TOXIC: @ 81CF983 call _81CF99D waitforvisualfinish delay 15 - call Unknown_81D5F87 + call PoisonBubblesAnim waitforvisualfinish end _81CF99D: @@ -5946,7 +5946,7 @@ Move_SLUDGE: @ 81CF9F2 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 createvisualtask sub_80E1F8C, 2, 4, 1, 2, 0, 12, 31774 - call Unknown_81D5F87 + call PoisonBubblesAnim waitforvisualfinish end @@ -5984,7 +5984,7 @@ Move_SLUDGE_BOMB: @ 81CFA34 delay 0 waitsound waitforvisualfinish - call Unknown_81D5F87 + call PoisonBubblesAnim waitforvisualfinish end _81CFB44: @@ -6541,17 +6541,17 @@ _81D073D: blendoff end _81D0742: - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, -16, -8, 20, 1, 1 + createsprite gFistFootSpriteTemplate, 132, -16, -8, 20, 1, 1 createsprite gBasicHitSplatSpriteTemplate, 131, -16, -16, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 goto _81D073D _81D0778: - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 8, 8, 20, 1, 1 + createsprite gFistFootSpriteTemplate, 132, 8, 8, 20, 1, 1 createsprite gBasicHitSplatSpriteTemplate, 131, 8, 0, 1, 2 createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 goto _81D073D _81D07AE: - createsprite gBattleAnimSpriteTemplate_83D9FA8, 132, 0, 0, 20, 1, 1 + createsprite gFistFootSpriteTemplate, 132, 0, 0, 20, 1, 1 createsprite gBasicHitSplatSpriteTemplate, 131, 0, -8, 1, 1 createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 goto _81D073D @@ -6565,7 +6565,7 @@ Move_DYNAMIC_PUNCH: @ 81D07E4 monbg ANIM_BANK_DEF_PARTNER setalpha 12, 8 playsewithpan SE_W233B, 63 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 131, 0, 0, 20, 1, 0 + createsprite gFistFootSpriteTemplate, 131, 0, 0, 20, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 0 createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 7, 1 delay 1 @@ -6604,17 +6604,17 @@ Move_COUNTER: @ 81D08AC playsewithpan SE_W233B, 63 delay 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 25, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, -15, 18, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 3, -15, 18, 8, 1, 0 delay 3 createsprite gBasicHitSplatSpriteTemplate, 2, 0, -4, 1, 0 playsewithpan SE_W233B, 63 delay 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, 0, -4, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 3, 0, -4, 8, 1, 0 delay 3 createsprite gBasicHitSplatSpriteTemplate, 2, 15, 9, 1, 0 playsewithpan SE_W233B, 63 delay 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, 15, 9, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 3, 15, 9, 8, 1, 0 delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5 waitforvisualfinish @@ -6653,7 +6653,7 @@ Move_ROCK_SMASH: @ 81D09F6 setalpha 12, 8 delay 1 createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1 - createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 0, 0, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 2, 0, 0, 8, 1, 0 playsewithpan SE_W233B, 63 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 5, 1 waitforvisualfinish @@ -6943,7 +6943,7 @@ Move_FIRE_PUNCH: @ 81D1107 createsprite gBattleAnimSpriteTemplate_83D9478, 129, 196 playsewithpan SE_W172, 63 waitforvisualfinish - createsprite gBattleAnimSpriteTemplate_83D9FA8, 131, 0, 0, 8, 1, 0 + createsprite gFistFootSpriteTemplate, 131, 0, 0, 8, 1, 0 createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 0, 3, 15, 1 call _81D11A2 @@ -6972,7 +6972,7 @@ Move_LEER: @ 81D121A setalpha 8, 8 playsewithpan SE_W043, 192 createsprite gBattleAnimSpriteTemplate_84022B0, 2, 24, -12 - createvisualtask sub_80A8D34, 5, -5, -5, 10, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_BANK_ATTACKER, 1 waitforvisualfinish delay 10 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 9, 1 @@ -6994,7 +6994,7 @@ Move_DREAM_EATER: @ 81D1271 setalpha 8, 8 playsewithpan SE_W107, 63 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 15, 1 - createvisualtask sub_80A8D34, 5, -6, -6, 15, 1, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_BANK_TARGET, 1 waitforvisualfinish setalpha 12, 8 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 0, 2, 25, 1 @@ -7095,7 +7095,7 @@ _81D1568: waitforvisualfinish end _81D1578: - createvisualtask sub_80A8D34, 5, 10, -5, 5, 1, 0 + createvisualtask AnimTask_ScaleMonAndRestore, 5, 10, -5, 5, ANIM_BANK_TARGET, 0 delay 16 return @@ -7189,7 +7189,7 @@ Move_ZAP_CANNON: @ 81D1722 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 5, 1 delay 15 waitplaysewithpan SE_W085B, 63, 19 - call Unknown_81D6100 + call ElectricityEffect waitforvisualfinish end @@ -7256,7 +7256,7 @@ Move_POISON_TAIL: @ 81D1914 createvisualtask sub_80E0E24, 5, 0, 1 clearmonbg ANIM_BANK_TARGET blendoff - call Unknown_81D5F87 + call PoisonBubblesAnim waitforvisualfinish end @@ -8473,7 +8473,7 @@ Move_HYPER_VOICE: @ 81D3550 _81D3562: createvisualtask sub_812B2B8, 5 createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 31, 3, 8, 0, 1023 - createvisualtask sub_80A8D34, 5, -5, -5, 5, 0, 0 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, ANIM_BANK_ATTACKER, 0 createsprite gBattleAnimSpriteTemplate_83D798C, 0, 45, 0, 0, 0, 0, 0, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 1, 0, 6, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_DEF_PARTNER, 1, 0, 6, 1 @@ -8740,7 +8740,7 @@ Move_POISON_FANG: @ 81D3C30 createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1 waitforvisualfinish createvisualtask sub_80E1F8C, 2, 4, 0, 4, 0, 12, 26650 - call Unknown_81D5F87 + call PoisonBubblesAnim waitforvisualfinish end @@ -9175,7 +9175,7 @@ _81D4974: Move_SNATCH: @ 81D498B playsewithpan SE_W036, 192 - createvisualtask sub_80A8920, 5, 0, -12, 4, 10, 10, 12, 6 + createvisualtask AnimTask_WindUpLunge, 5, ANIM_BANK_ATTACKER, -12, 4, 10, 10, 12, 6 end Move_DIVE: @ 81D49A5 @@ -9538,7 +9538,7 @@ Move_DOOM_DESIRE: @ 81D52CB waitforvisualfinish setalpha 8, 8 playsewithpan SE_W060, 192 - createvisualtask sub_80A8D34, 5, -4, -4, 15, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_BANK_ATTACKER, 1 waitforvisualfinish delay 20 createvisualtask sub_80E0E24, 5, 1, 1 @@ -10053,89 +10053,89 @@ Unknown_81D5F3E: @ 81D5F3E delay 7 return -Unknown_81D5F87: @ 81D5F87 - createsprite gBattleAnimSpriteTemplate_83DA350, 130, 10, 10, 0 +PoisonBubblesAnim: @ 81D5F87 + createsprite gPoisonBubbleSpriteTemplate, 130, 10, 10, 0 playsewithpan SE_W092, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA350, 130, 20, -20, 0 + createsprite gPoisonBubbleSpriteTemplate, 130, 20, -20, 0 playsewithpan SE_W092, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA350, 130, -20, 15, 0 + createsprite gPoisonBubbleSpriteTemplate, 130, -20, 15, 0 playsewithpan SE_W092, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA350, 130, 0, 0, 0 + createsprite gPoisonBubbleSpriteTemplate, 130, 0, 0, 0 playsewithpan SE_W092, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA350, 130, -20, -20, 0 + createsprite gPoisonBubbleSpriteTemplate, 130, -20, -20, 0 playsewithpan SE_W092, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA350, 130, 16, -8, 0 + createsprite gPoisonBubbleSpriteTemplate, 130, 16, -8, 0 playsewithpan SE_W092, 63 return -Unknown_81D5FF8: @ 81D5FF8 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 10, 10, 0 +WaterBubbleEffect: @ 81D5FF8 + createsprite gWaterBubbleSpriteTemplate, 2, 10, 10, 0 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 20, -20, 0 + createsprite gWaterBubbleSpriteTemplate, 2, 20, -20, 0 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, -20, 15, 0 + createsprite gWaterBubbleSpriteTemplate, 2, -20, 15, 0 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 0, 0, 0 + createsprite gWaterBubbleSpriteTemplate, 2, 0, 0, 0 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, -20, -20, 0 + createsprite gWaterBubbleSpriteTemplate, 2, -20, -20, 0 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 16, -8, 0 + createsprite gWaterBubbleSpriteTemplate, 2, 16, -8, 0 playsewithpan SE_W145C, 63 return -Unknown_81D6069: @ 81D6069 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 10, 10, 1 +WaterBubbleEffect2: @ 81D6069 + createsprite gWaterBubbleSpriteTemplate, 2, 10, 10, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, -28, -10, 1 + createsprite gWaterBubbleSpriteTemplate, 2, -28, -10, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 20, -20, 1 + createsprite gWaterBubbleSpriteTemplate, 2, 20, -20, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, -20, 15, 1 + createsprite gWaterBubbleSpriteTemplate, 2, -20, 15, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 0, 0, 1 + createsprite gWaterBubbleSpriteTemplate, 2, 0, 0, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 27, 8, 1 + createsprite gWaterBubbleSpriteTemplate, 2, 27, 8, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, -20, -20, 1 + createsprite gWaterBubbleSpriteTemplate, 2, -20, -20, 1 playsewithpan SE_W145C, 63 delay 6 - createsprite gBattleAnimSpriteTemplate_83DA368, 2, 16, -8, 1 + createsprite gWaterBubbleSpriteTemplate, 2, 16, -8, 1 playsewithpan SE_W145C, 63 return -Unknown_81D6100: @ 81D6100 +ElectricityEffect: @ 81D6100 playsewithpan SE_W085B, 63 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, 5, 0, 5, 0 + createsprite gElectricitySpriteTemplate, 130, 5, 0, 5, 0 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, -5, 10, 5, 1 + createsprite gElectricitySpriteTemplate, 130, -5, 10, 5, 1 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, 15, 20, 5, 2 + createsprite gElectricitySpriteTemplate, 130, 15, 20, 5, 2 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, -15, -10, 5, 0 + createsprite gElectricitySpriteTemplate, 130, -15, -10, 5, 0 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, 25, 0, 5, 1 + createsprite gElectricitySpriteTemplate, 130, 25, 0, 5, 1 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, -8, 8, 5, 2 + createsprite gElectricitySpriteTemplate, 130, -8, 8, 5, 2 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, 2, -8, 5, 0 + createsprite gElectricitySpriteTemplate, 130, 2, -8, 5, 0 delay 2 - createsprite gBattleAnimSpriteTemplate_83D9920, 130, -20, 15, 5, 1 + createsprite gElectricitySpriteTemplate, 130, -20, 15, 5, 1 return Unknown_81D618B: @ 81D618B @@ -10257,7 +10257,7 @@ StatusCondition_Sleep: @ 81D6309 StatusCondition_Paralysis: @ 81D6335 loadspritegfx 10011 createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 10, 1 - call Unknown_81D6100 + call ElectricityEffect end StatusCondition_Ice: @ 81D634F @@ -10573,7 +10573,7 @@ General_FutureSightHit: @ 81D68D5 playsewithpan SE_W048, 63 waitplaysewithpan SE_W048, 63, 8 createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 4, 0, 15, 1 - createvisualtask sub_80A8D34, 5, -5, -5, 15, 1, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_BANK_TARGET, 1 waitforvisualfinish createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 4, 0, 24, 1 waitforvisualfinish diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index ed42871a6..1910b7cb2 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -12,10 +12,10 @@ struct Struct_sub_8078914 { u8 GetBankPosition(u8, u8); u8 sub_8077E44(u8 slot, u16 species, u8 a3); -u8 GetAnimBankSpriteId(u8 side); +u8 GetAnimBankSpriteId(u8 bank); void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); void sub_8078314(struct Sprite *sprite); -void sub_8078364(struct Sprite *sprite); +void TranslateSpriteOverDuration(struct Sprite *sprite); void TranslateMonBGUntil(struct Sprite *sprite); void TranslateMonBGSubPixelUntil(struct Sprite *sprite); u8 GetBankSide(u8); @@ -47,8 +47,8 @@ void sub_8078F9C(u8 sprite); void sub_8079518(struct Sprite *sprite); void sub_8079534(struct Sprite *sprite); void sub_80796F8(u8 task); -void sub_80797EC(struct Task *task); -void sub_8079814(u8 taskId); +void AnimTask_BlendMonInAndOutSetup(struct Task *task); +void AnimTask_BlendMonInAndOutStep(u8 taskId); void sub_8079A64(u8 sprite); u16 sub_8079B10(u8 sprite); void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr); @@ -68,8 +68,8 @@ void InitAnimSpritePos(struct Sprite *sprite, u8); void sub_8078764(struct Sprite *sprite, u8); void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); -void sub_80786EC(struct Sprite *sprite); -void sub_80782D8(struct Sprite *sprite); +void InitAnimSpriteTranslationOverDuration(struct Sprite *sprite); +void WaitAnimForDuration(struct Sprite *sprite); void sub_8078CC0(struct Sprite *sprite); void sub_8078600(struct Sprite *sprite); void sub_8078504(struct Sprite *sprite); @@ -85,7 +85,7 @@ void sub_80793C4(struct Sprite *sprite); void SetAverageBattlerPositions(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); s16 sub_807A100(u8 slot, u8 a2); -u16 sub_80790F0(s16 a, s16 b); +u16 ArcTan2Neg(s16 a, s16 b); void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); void sub_807867C(struct Sprite *sprite, s16 a2); u8 sub_8077EE4(u8 slot, u8 a2); diff --git a/src/battle/anim/bubble.c b/src/battle/anim/bubble.c index 1252c1315..d6ec06be9 100644 --- a/src/battle/anim/bubble.c +++ b/src/battle/anim/bubble.c @@ -97,6 +97,6 @@ static void sub_80D3370(struct Sprite *sprite) static void sub_80D3398(struct Sprite *sprite) { sprite->data[0] = 10; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, move_anim_8074EE0); } diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c index e12f55a8b..d57a1046e 100644 --- a/src/battle/anim/bug.c +++ b/src/battle/anim/bug.c @@ -13,7 +13,7 @@ static void sub_80DCA38(struct Sprite *sprite); static void sub_80DCAEC(struct Sprite *sprite); static void sub_80DCB5C(struct Sprite *sprite); static void sub_80DCBB4(struct Sprite *sprite); -void sub_80DCD78(struct Sprite *sprite); +static void AnimMissileArcStep(struct Sprite *sprite); // used in Move_MEGAHORN void sub_80DC824(struct Sprite *sprite) @@ -174,9 +174,15 @@ static void sub_80DCBB4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -// used in 3 moves: -// Move_POISON_STING, Move_TWINEEDLE, Move_SPIKE_CANNON -void sub_80DCBCC(struct Sprite *sprite) +// Translates a stinger sprite linearly to a destination location. The sprite is +// initially rotated so that it appears to be traveling in a straight line. +// Used by Move_POISON_STING, Move_TWINEEDLE, Move_SPIKE_CANNON +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +void AnimTranslateStinger(struct Sprite *sprite) { s16 lVarX, lVarY; u16 rot; @@ -216,7 +222,7 @@ void sub_80DCBCC(struct Sprite *sprite) lVarX = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; lVarY = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - rot = sub_80790F0(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); + rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); rot += 0xC000; sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot); @@ -230,7 +236,14 @@ void sub_80DCBCC(struct Sprite *sprite) // used in 2 moves: // Move_PIN_MISSILE, Move_ICICLE_SPEAR -void sub_80DCCFC(struct Sprite *sprite) +// Rotates sprite and moves it in an arc, so that it appears like a missle or arrow traveling. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: wave amplitude +void AnimMissileArc(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); @@ -241,13 +254,13 @@ void sub_80DCCFC(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); - sprite->callback = sub_80DCD78; + sprite->callback = AnimMissileArcStep; sprite->invisible = TRUE; } -void sub_80DCD78(struct Sprite *sprite) +static void AnimMissileArcStep(struct Sprite *sprite) { sprite->invisible = FALSE; @@ -273,10 +286,10 @@ void sub_80DCD78(struct Sprite *sprite) if (!TranslateAnimSpriteLinearAndSine(sprite)) { - u16 rot = sub_80790F0(sprite->pos1.x + sprite->pos2.x - x2, + u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, sprite->pos1.y + sprite->pos2.y - y2); - rot += 0xC000; - sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot); + rotation += 0xC000; + sub_8078FDC(sprite, FALSE, 0x100, 0x100, rotation); for (i = 0; i < 8; i++) data[i] = tempData[i]; diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c index 0f23fed82..fed3598fc 100644 --- a/src/battle/anim/cutter.c +++ b/src/battle/anim/cutter.c @@ -43,7 +43,7 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) } sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) { sprite->data[0] = 1; diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index aaf8507c6..055cf5802 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -238,7 +238,7 @@ void sub_80DFFD0(struct Sprite *sprite) sprite->data[4] = sprite->pos1.y + 12; sprite->data[5] = -12; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80E00D0; } diff --git a/src/battle/anim/drum.c b/src/battle/anim/drum.c index 6306778ae..7937d040a 100644 --- a/src/battle/anim/drum.c +++ b/src/battle/anim/drum.c @@ -27,6 +27,6 @@ void sub_80CEDF0(struct Sprite* sprite) sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + a; sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + 8; sprite->data[0] = 8; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index a7c25de49..0f46187f2 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -29,9 +29,9 @@ extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; static void sub_80D927C(struct Sprite *sprite); static void sub_80D9328(struct Sprite *sprite); static void sub_80D9404(struct Sprite *sprite); -static void sub_80D9474(struct Sprite *sprite); -static void sub_80D94CC(struct Sprite *sprite); -static void sub_80D9524(struct Sprite *sprite); +static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite); +static void AnimStompFootStep(struct Sprite *sprite); +static void AnimStompFootEnd(struct Sprite *sprite); static void sub_80D9640(struct Sprite *sprite); static void sub_80D97A0(struct Sprite *sprite); static void sub_80D986C(struct Sprite *sprite); @@ -44,7 +44,7 @@ void sub_080B08A0(struct Sprite *sprite) sub_807867C(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; sprite->data[0] = 15; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -72,7 +72,14 @@ void sub_80D9078(struct Sprite *sprite) sub_80D902C(sprite); } -void sub_80D90A4(struct Sprite *sprite) +// Displays a basic fist or foot sprite for a given duration. +// Used by many fighting moves (and elemental "punch" moves). +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: duration +// arg 3: ? (todo: related to initial pixel offsets) +// arg 4: anim num +void AnimBasicFistOrFoot(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -82,7 +89,7 @@ void sub_80D90A4(struct Sprite *sprite) sub_8078764(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -225,35 +232,45 @@ static void sub_80D9404(struct Sprite *sprite) } } -void sub_80D943C(struct Sprite *sprite) +// Animates the spinning, shrinking kick or punch, which then +// reappears at full size. Used by moves such as MOVE_MEGA_PUNCH and MOVE_MEGA_KICK. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: anim num +// arg 3: spin duration +void AnimSpinningKickOrPunch(struct Sprite *sprite) { sub_8078764(sprite, 1); StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[0] = gBattleAnimArgs[3]; - sprite->callback = sub_80782D8; - StoreSpriteCallbackInData(sprite, sub_80D9474); + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData(sprite, AnimSpinningKickOrPunchFinish); } -static void sub_80D9474(struct Sprite *sprite) +static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 0); sprite->affineAnimPaused = 1; sprite->data[0] = 20; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -void sub_80D94A8(struct Sprite *sprite) +// Animates MOVE_STOMP's foot that slides downward. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: initial wait duration +void AnimStompFoot(struct Sprite *sprite) { sub_8078764(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = sub_80D94CC; + sprite->callback = AnimStompFootStep; } -static void sub_80D94CC(struct Sprite *sprite) +static void AnimStompFootStep(struct Sprite *sprite) { if (--sprite->data[0] == -1) { @@ -262,15 +279,15 @@ static void sub_80D94CC(struct Sprite *sprite) sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(sprite, sub_80D9524); + StoreSpriteCallbackInData(sprite, AnimStompFootEnd); } } -static void sub_80D9524(struct Sprite *sprite) +static void AnimStompFootEnd(struct Sprite *sprite) { sprite->data[0] = 15; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index fe63fcff1..f9c9b6d3b 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle.h" #include "battle_anim.h" #include "heated_rock.h" #include "rom_8077ABC.h" @@ -11,24 +12,34 @@ extern u8 gAnimBankTarget; extern struct SpriteTemplate gSpriteTemplate_83D96C4; extern s16 gHeatedRockCoords[7][2]; -void sub_80D5254(struct Sprite *); -void sub_80D5348(struct Sprite *); -void sub_80D52AC(struct Sprite *); -void sub_80D5324(struct Sprite *); +static void AnimFireRingStep1(struct Sprite *); +static void UpdateFireRingCircleOffset(struct Sprite *); +static void AnimFireRingStep2(struct Sprite *); +static void AnimFireRingStep3(struct Sprite *); void sub_80D53F4(struct Sprite *); void sub_80D541C(struct Sprite *); void sub_80D54E0(u8 taskId); void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); -void sub_80D51A8(struct Sprite *sprite) + +// Animates the secondary effect of MOVE_EMBER, where the flames grow and slide +// horizontally a bit. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: ? (todo: something related to which mon the pixel offsets are based on) +// arg 6: ? (todo: something related to which mon the pixel offsets are based on) +void AnimEmberFlare(struct Sprite *sprite) { if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget) - && (gAnimBankAttacker == GetBankByIdentity(2) - || gAnimBankAttacker == GetBankByIdentity(3))) + && (gAnimBankAttacker == GetBankByIdentity(IDENTITY_PLAYER_MON2) + || gAnimBankAttacker == GetBankByIdentity(IDENTITY_OPPONENT_MON2))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->callback = sub_8079534; - sub_8079534(sprite); + sprite->callback(sprite); } struct Sprite *sub_80D5210(struct Sprite *sprite) @@ -40,19 +51,26 @@ struct Sprite *sub_80D5210(struct Sprite *sprite) return sprite; } -void sub_80D522C(struct Sprite *sprite) +// Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST +// animation. The fire sprite first moves in a circle around the mon, +// and then it is translated towards the target mon, while still rotating. +// Lastly, it moves in a circle around the target mon. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: initial wave offset +void AnimFireRing(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); sprite->data[7] = gBattleAnimArgs[2]; sprite->data[0] = 0; - sprite->callback = sub_80D5254; + sprite->callback = AnimFireRingStep1; } -void sub_80D5254(struct Sprite *sprite) +static void AnimFireRingStep1(struct Sprite *sprite) { - sub_80D5348(sprite); + UpdateFireRingCircleOffset(sprite); if (++sprite->data[0] == 0x12) { @@ -64,11 +82,11 @@ void sub_80D5254(struct Sprite *sprite) InitAnimSpriteTranslationDeltas(sprite); - sprite->callback = sub_80D52AC; + sprite->callback = AnimFireRingStep2; } } -void sub_80D52AC(struct Sprite *sprite) +static void AnimFireRingStep2(struct Sprite *sprite) { if (TranslateAnimSpriteByDeltas(sprite)) { @@ -79,8 +97,8 @@ void sub_80D52AC(struct Sprite *sprite) sprite->pos2.y = 0; sprite->pos2.x = 0; - sprite->callback = sub_80D5324; - sub_80D5324(sprite); + sprite->callback = AnimFireRingStep3; + sprite->callback(sprite); } else { @@ -91,15 +109,15 @@ void sub_80D52AC(struct Sprite *sprite) } } -void sub_80D5324(struct Sprite *sprite) +static void AnimFireRingStep3(struct Sprite *sprite) { - sub_80D5348(sprite); + UpdateFireRingCircleOffset(sprite); if (++sprite->data[0] == 0x1F) DestroyAnimSprite(sprite); } -void sub_80D5348(struct Sprite *sprite) +static void UpdateFireRingCircleOffset(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[7], 28); sprite->pos2.y = Cos(sprite->data[7], 28); @@ -107,7 +125,12 @@ void sub_80D5348(struct Sprite *sprite) sprite->data[7] = (sprite->data[7] + 20) & 0xFF; } -void sub_80D5374(struct Sprite *sprite) +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: duration +// arg 3: x delta +// arg 4: y delta +void AnimFireCross(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -118,7 +141,7 @@ void sub_80D5374(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, DestroyAnimSprite); - sprite->callback = sub_8078364; + sprite->callback = TranslateSpriteOverDuration; } void sub_80D53B4(struct Sprite *sprite) @@ -129,7 +152,7 @@ void sub_80D53B4(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->invisible = TRUE; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80D53F4); } diff --git a/src/battle/anim/flying_hearts.c b/src/battle/anim/flying_hearts.c index d2d22602a..f20416535 100644 --- a/src/battle/anim/flying_hearts.c +++ b/src/battle/anim/flying_hearts.c @@ -19,7 +19,7 @@ void sub_80D2064(struct Sprite* sprite) sprite->pos1.y = 0xA0; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80D2094); } diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c index 559f617c6..70c418afc 100644 --- a/src/battle/anim/flying_path.c +++ b/src/battle/anim/flying_path.c @@ -40,7 +40,7 @@ void sub_80CBDF4(u8 taskId) gSprites[task->data[2]].data[3] = task->data[9]; gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[5] = sub_80CC338(&gSprites[task->data[2]]); - sub_80786EC(&gSprites[task->data[2]]); + InitAnimSpriteTranslationOverDuration(&gSprites[task->data[2]]); task->func = sub_80CBF5C; } @@ -98,7 +98,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = a; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 2: @@ -123,7 +123,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 2; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 5: @@ -141,7 +141,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 3; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 6: @@ -167,7 +167,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 4; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 9: @@ -184,7 +184,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 5; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 10: @@ -215,7 +215,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 6; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; } diff --git a/src/battle/anim/homing.c b/src/battle/anim/homing.c index 6fb4a76d8..208d3b831 100644 --- a/src/battle/anim/homing.c +++ b/src/battle/anim/homing.c @@ -60,7 +60,7 @@ void sub_80CC6CC(struct Sprite* sprite) sprite->data[2] = y * 16; sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4]; sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4]; - c = sub_80790F0(sprite->data[5] - x, sprite->data[6] - y); + c = ArcTan2Neg(sprite->data[5] - x, sprite->data[6] - y); if (IsContest()) c -= 0x8000; diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c index 0ee381e13..c3d130750 100644 --- a/src/battle/anim/money.c +++ b/src/battle/anim/money.c @@ -26,7 +26,7 @@ void sub_80CFE9C(struct Sprite* sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; r6 += gBattleAnimArgs[2]; - var = sub_80790F0(r6 - sprite->pos1.x, r7 - sprite->pos1.y); + var = ArcTan2Neg(r6 - sprite->pos1.x, r7 - sprite->pos1.y); var += 0xC000; sub_8078FDC(sprite, 0, 0x100, 0x100, var); sprite->data[0] = gBattleAnimArgs[4]; diff --git a/src/battle/anim/orbit_fast.c b/src/battle/anim/orbit_fast.c index 92b67672b..71303b03c 100644 --- a/src/battle/anim/orbit_fast.c +++ b/src/battle/anim/orbit_fast.c @@ -8,12 +8,13 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80D2704(struct Sprite* sprite); +static void AnimOrbitFastStep(struct Sprite* sprite); -// orbit_fast (a quickly moving fast circular motion of a sprite around an object.) -// Used by Hidden Power. - -void sub_80D26A4(struct Sprite* sprite) +// Orbits a sphere in an ellipse around the mon. +// Used by MOVE_HIDDEN_POWER +// arg 0: duration +// arg 1: initial wave offset +void AnimOrbitFast(struct Sprite* sprite) { sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); @@ -21,11 +22,11 @@ void sub_80D26A4(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[7] = sub_8079E90(gAnimBankAttacker); - sprite->callback = sub_80D2704; - sub_80D2704(sprite); + sprite->callback = AnimOrbitFastStep; + sprite->callback(sprite); } -void sub_80D2704(struct Sprite* sprite) +static void AnimOrbitFastStep(struct Sprite* sprite) { if ((u16)(sprite->data[1] - 0x40) <= 0x7F) sprite->subpriority = sprite->data[7] + 1; diff --git a/src/battle/anim/orbit_scatter.c b/src/battle/anim/orbit_scatter.c index 54c157839..cda09a729 100644 --- a/src/battle/anim/orbit_scatter.c +++ b/src/battle/anim/orbit_scatter.c @@ -8,21 +8,21 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80D2834(struct Sprite* sprite); +static void AnimOrbitScatterStep(struct Sprite* sprite); -// orbit_scatter (scatters the objects associated with the fast orbit from the last file.) -// Used in Hidden Power. - -void sub_80D27E0(struct Sprite* sprite) +// Moves orbs away from the mon, based on where they are in their orbit. +// Used in MOVE_HIDDEN_POWER. +// arg 0: initial wave offset +void AnimOrbitScatter(struct Sprite* sprite) { sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); - sprite->callback = sub_80D2834; + sprite->callback = AnimOrbitScatterStep; } -void sub_80D2834(struct Sprite* sprite) +static void AnimOrbitScatterStep(struct Sprite* sprite) { sprite->pos2.x += sprite->data[0]; sprite->pos2.y += sprite->data[1]; diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c index b965cacb8..6f1bba9c3 100644 --- a/src/battle/anim/orbs.c +++ b/src/battle/anim/orbs.c @@ -99,7 +99,7 @@ void sub_80CA9A8(struct Sprite* sprite) sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); sprite->data[5] = gBattleAnimArgs[2]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80CA9F8; } diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c index 272d99e84..3a7477a57 100644 --- a/src/battle/anim/poison.c +++ b/src/battle/anim/poison.c @@ -10,7 +10,7 @@ extern u8 gAnimBankTarget; void sub_80D9DD4(struct Sprite *sprite); void sub_80D9E78(struct Sprite *sprite); void sub_80D9EE8(struct Sprite *sprite); -void sub_80D9FF0(struct Sprite *sprite); +static void AnimBubbleEffectStep(struct Sprite *sprite); void sub_80D9D70(struct Sprite *sprite) { @@ -24,7 +24,7 @@ void sub_80D9D70(struct Sprite *sprite) sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); sprite->data[5] = -30; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80D9DD4; } @@ -52,7 +52,7 @@ void sub_80D9DF0(struct Sprite *sprite) sprite->data[4] = l2 + gBattleAnimArgs[5]; sprite->data[5] = -30; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80D9E78; } @@ -108,7 +108,13 @@ void sub_80D9F14(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -void sub_80D9F88(struct Sprite *sprite) +// Animates a bubble by rising upward, swaying side to side, and +// enlarging the sprite. This is used as an after-effect by poison-type +// moves, along with MOVE_BUBBLE, and MOVE_BUBBLEBEAM. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: 0 = single-target, 1 = multi-target +void AnimBubbleEffect(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -125,10 +131,10 @@ void sub_80D9F88(struct Sprite *sprite) sprite->pos1.y += gBattleAnimArgs[1]; } - sprite->callback = sub_80D9FF0; + sprite->callback = AnimBubbleEffectStep; } -void sub_80D9FF0(struct Sprite *sprite) +static void AnimBubbleEffectStep(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF; sprite->pos2.x = Sin(sprite->data[0], 4); diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index b108c496a..42f396870 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -522,7 +522,7 @@ static void sub_80DC1FC(u8 taskId) gSprites[spriteId].data[4] = task->data[14]; gSprites[spriteId].data[5] = task->data[10]; - sub_80786EC(&gSprites[spriteId]); + InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], task->data[2] & 3); } diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c index 1d1772b1b..6fbe065b8 100644 --- a/src/battle/anim/rock.c +++ b/src/battle/anim/rock.c @@ -446,7 +446,7 @@ static void sub_80DD774(struct Task *task) gSprites[spriteId].data[5] = -16 - (task->data[1] * 2); gSprites[spriteId].oam.tileNum += var0; - sub_80786EC(&gSprites[spriteId]); + InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); task->data[11]++; } diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c index e6b85dd5f..403894cc8 100644 --- a/src/battle/anim/scan.c +++ b/src/battle/anim/scan.c @@ -26,7 +26,7 @@ void sub_80CD3E0(struct Sprite* sprite) sprite->pos1.x -= 32; sprite->pos1.y -= 32; sprite->data[0] = 20; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD408); } @@ -36,7 +36,7 @@ void sub_80CD408(struct Sprite* sprite) { case 0: sprite->data[0] = 1; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD408); break; case 1: @@ -62,7 +62,7 @@ void sub_80CD4B8(struct Sprite* sprite) if ((sprite->data[5] >> 8) == 4) { sprite->data[0] = 10; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD4EC); } else @@ -80,7 +80,7 @@ void sub_80CD4EC(struct Sprite* sprite) sprite->data[0] = 3; sprite->data[1] = 0; sprite->data[2] = 0; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD5A8); } else diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c index e3d4bd3fb..7f8154504 100644 --- a/src/battle/anim/seed.c +++ b/src/battle/anim/seed.c @@ -7,13 +7,18 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80CAB88(struct Sprite* sprite); -static void sub_80CABC0(struct Sprite* sprite); +static void AnimLeechSeedStep(struct Sprite* sprite); +static void AnimLeechSeedSprouts(struct Sprite* sprite); // seed (sprouts a sapling from a seed.) // Used by Leech Seed. - -void sub_80CAB18(struct Sprite* sprite) +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: wave amplitude +void AnimLeechSeed(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); if (GetBankSide(gAnimBankAttacker)) @@ -25,26 +30,26 @@ void sub_80CAB18(struct Sprite* sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); - sprite->callback = sub_80CAB88; + InitAnimSpriteTranslationOverDuration(sprite); + sprite->callback = AnimLeechSeedStep; } -void sub_80CAB88(struct Sprite* sprite) +static void AnimLeechSeedStep(struct Sprite* sprite) { if (TranslateAnimSpriteLinearAndSine(sprite)) { sprite->invisible = 1; sprite->data[0] = 10; - sprite->callback = sub_80782D8; - StoreSpriteCallbackInData(sprite, sub_80CABC0); + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData(sprite, AnimLeechSeedSprouts); } } -void sub_80CABC0(struct Sprite* sprite) +static void AnimLeechSeedSprouts(struct Sprite* sprite) { sprite->invisible = 0; StartSpriteAnim(sprite, 1); sprite->data[0] = 60; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/slash.c b/src/battle/anim/slash.c index 6adcaf098..306968111 100644 --- a/src/battle/anim/slash.c +++ b/src/battle/anim/slash.c @@ -60,7 +60,7 @@ void sub_80CDE78(struct Sprite* sprite) sprite->data[1] = 8; sprite->data[2] = 0; StoreSpriteCallbackInData(sprite, sub_80CDEB0); - sprite->callback = sub_8078364; + sprite->callback = TranslateSpriteOverDuration; } } diff --git a/src/battle/anim/slice.c b/src/battle/anim/slice.c index fe8745483..80c58dddf 100644 --- a/src/battle/anim/slice.c +++ b/src/battle/anim/slice.c @@ -8,19 +8,21 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80CCB00(struct Sprite* sprite); +static void AnimSliceStep(struct Sprite* sprite); -// slice (the cutting animation showing as a yellow line drawn diagonally) -// Used in Cut, Fury Cutter, Aerial Ace, and Air Cutter. - -void sub_80CC914(struct Sprite* sprite) +// Moves the sprite in a diagonally slashing motion across the target mon. +// Used by moves such as MOVE_CUT and MOVE_AERIAL_ACE. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: slice direction; 0 = right-to-left, 1 = left-to-right +void AnimCuttingSlice(struct Sprite* sprite) { sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); if (GetBankSide(gAnimBankTarget) == 0) sprite->pos1.y += 8; - sprite->callback = sub_80CCB00; + sprite->callback = AnimSliceStep; if (gBattleAnimArgs[2] == 0) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -70,7 +72,7 @@ void sub_80CC9BC(struct Sprite* sprite) if (GetBankSide(gAnimBankTarget) == 0) sprite->pos1.y += 8; - sprite->callback = sub_80CCB00; + sprite->callback = AnimSliceStep; if (gBattleAnimArgs[2] == 0) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -89,7 +91,7 @@ void sub_80CC9BC(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -void sub_80CCB00(struct Sprite* sprite) +static void AnimSliceStep(struct Sprite* sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -106,6 +108,6 @@ void sub_80CCB00(struct Sprite* sprite) { StoreSpriteCallbackInData(sprite, DestroyAnimSprite); sprite->data[0] = 3; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; } } diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 2808c86c2..1501f51f1 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -9,14 +9,18 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -// sonic (shoots a projectile towards the target.) -// Used in Sonic Boom and Air Cutter. - -void sub_80CF6DC(struct Sprite* sprite) +// Moves a projectile towards the target mon. The sprite is rotated to be pointing +// in the same direction it's moving. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +void AnimSonicBoomProjectile(struct Sprite* sprite) { - s16 a; - s16 b; - u16 c; + s16 targetXPos; + s16 targetYPos; + u16 rotation; if (IsContest()) { @@ -30,17 +34,17 @@ void sub_80CF6DC(struct Sprite* sprite) } InitAnimSpritePos(sprite, 1); - a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y); - c += 0xF000; + targetXPos = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + targetYPos = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); + rotation += 0xF000; if (IsContest()) - c -= 0x6000; + rotation -= 0x6000; - sub_8078FDC(sprite, 0, 0x100, 0x100, c); + sub_8078FDC(sprite, 0, 0x100, 0x100, rotation); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = a; - sprite->data[4] = b; + sprite->data[2] = targetXPos; + sprite->data[4] = targetYPos; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c index b5e150dd8..c67ec2754 100644 --- a/src/battle/anim/unused_8.c +++ b/src/battle/anim/unused_8.c @@ -19,7 +19,7 @@ void sub_80CF458(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CF490); } diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c index f339a1206..a8b0ec329 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle/battle_anim_80A7E7C.c @@ -30,10 +30,10 @@ static void SlideMonToOriginalPosStep(struct Sprite *sprite); static void SlideMonToOffset(struct Sprite *sprite); static void sub_80A8818(struct Sprite *sprite); static void sub_80A88F0(struct Sprite *sprite); -static void sub_80A89B4(u8 taskId); -static void sub_80A8A18(u8 taskId); +static void AnimTask_WindUpLungePart1(u8 taskId); +static void AnimTask_WindUpLungePart2(u8 taskId); static void AnimTask_SwayMonStep(u8 taskId); -static void sub_80A8D8C(u8 taskId); +static void AnimTask_ScaleMonAndRestoreStep(u8 taskId); static void sub_80A8FD8(u8 taskId); static void sub_80A913C(u8 taskId); @@ -646,11 +646,20 @@ static void sub_80A88F0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80A8920(u8 taskId) +// Task to facilitate a two-part translation animation, in which the sprite +// is first translated in an arc to one position. Then, it "lunges" to a target +// x offset. Used in TAKE_DOWN, for example. +// arg 0: anim bank +// arg 1: horizontal speed (subpixel) +// arg 2: wave amplitude +// arg 3: first duration +// arg 4: delay before starting lunge +// arg 5: target x offset for lunge +// arg 6: lunge duration +void AnimTask_WindUpLunge(u8 taskId) { - s16 r7; - r7 = 0x8000 / gBattleAnimArgs[3]; - if (GetBankSide(gAnimBankAttacker)) + s16 wavePeriod = 0x8000 / gBattleAnimArgs[3]; + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[5] = -gBattleAnimArgs[5]; @@ -662,11 +671,11 @@ void sub_80A8920(u8 taskId) TASK.data[4] = gBattleAnimArgs[4]; TASK.data[5] = (gBattleAnimArgs[5] << 8) / gBattleAnimArgs[6]; TASK.data[6] = gBattleAnimArgs[6]; - TASK.data[7] = r7; - TASK.func = sub_80A89B4; + TASK.data[7] = wavePeriod; + TASK.func = AnimTask_WindUpLungePart1; } -static void sub_80A89B4(u8 taskId) +static void AnimTask_WindUpLungePart1(u8 taskId) { u8 spriteId; spriteId = TASK.data[0]; @@ -676,11 +685,11 @@ static void sub_80A89B4(u8 taskId) TASK.data[10] += TASK.data[7]; if (--TASK.data[3] == 0) { - TASK.func = sub_80A8A18; + TASK.func = AnimTask_WindUpLungePart2; } } -static void sub_80A8A18(u8 taskId) +static void AnimTask_WindUpLungePart2(u8 taskId) { u8 spriteId; if (TASK.data[4] > 0) @@ -828,7 +837,13 @@ static void AnimTask_SwayMonStep(u8 taskId) } } -void sub_80A8D34(u8 taskId) +// Scales a mon's sprite, and then scales back to its original dimensions. +// arg 0: x scale delta +// arg 1: y scale delta +// arg 2: duration +// arg 3: anim bank +// arg 4: sprite object mode +void AnimTask_ScaleMonAndRestore(u8 taskId) { u8 spriteId; spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]); @@ -840,10 +855,10 @@ void sub_80A8D34(u8 taskId) TASK.data[4] = spriteId; TASK.data[10] = 0x100; TASK.data[11] = 0x100; - TASK.func = sub_80A8D8C; + TASK.func = AnimTask_ScaleMonAndRestoreStep; } -static void sub_80A8D8C(u8 taskId) +static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) { u8 spriteId; TASK.data[10] += TASK.data[0]; diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index 3a47e0204..20c6d8676 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -297,7 +297,7 @@ const struct SpriteTemplate gBallSpriteTemplates[] = }; extern u32 ball_number_to_ball_processing_index(u16); // not sure of return type -extern void sub_80786EC(); +extern void InitAnimSpriteTranslationOverDuration(); extern bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *); extern u8 sub_814086C(u8, u8, int, int, u8); extern u8 sub_8141314(u8, u8, int, u8); @@ -397,7 +397,7 @@ static void sub_8046464(u8 taskId) gSprites[spriteId].data[2] = GetBankPosition(gBankTarget, 0); gSprites[spriteId].data[4] = GetBankPosition(gBankTarget, 1) - 16; gSprites[spriteId].data[5] = -40; - sub_80786EC(&gSprites[spriteId]); + InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); gSprites[spriteId].oam.affineParam = taskId; gTasks[taskId].data[4] = gBankTarget; gTasks[taskId].func = TaskDummy; @@ -834,7 +834,7 @@ static void sub_8047074(struct Sprite *sprite) sprite->data[4] = GetBankPosition(sprite->data[6], 3) + 24; sprite->data[5] = -30; sprite->oam.affineParam = sprite->data[6]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80470C4; } diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 395736d03..9d864fec3 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -551,7 +551,10 @@ void sub_8078278(struct Sprite *sprite) } } -void sub_80782D8(struct Sprite *sprite) +// Simply waits until the sprite's data[0] hits zero. +// This is used to let sprite anims or affine anims to run for a designated +// duration. +void WaitAnimForDuration(struct Sprite *sprite) { if (sprite->data[0] > 0) sprite->data[0]--; @@ -562,7 +565,7 @@ void sub_80782D8(struct Sprite *sprite) void sub_80782F8(struct Sprite *sprite) { sub_8078314(sprite); - sprite->callback = sub_8078364; + sprite->callback = TranslateSpriteOverDuration; sprite->callback(sprite); } @@ -580,7 +583,7 @@ void sub_8078314(struct Sprite *sprite) sprite->data[1] = old; } -void sub_8078364(struct Sprite *sprite) +void TranslateSpriteOverDuration(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -764,7 +767,7 @@ void sub_807867C(struct Sprite *sprite, s16 a2) } } -void sub_80786EC(struct Sprite *sprite) +void InitAnimSpriteTranslationOverDuration(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; @@ -1163,13 +1166,13 @@ bool8 sub_8078E38() return FALSE; } -void sub_8078E70(u8 sprite, u8 a2) +void sub_8078E70(u8 sprite, u8 objMode) { u8 r7 = gSprites[sprite].data[0]; if (IsContest() || IsAnimBankSpriteVisible(r7)) gSprites[sprite].invisible = FALSE; - gSprites[sprite].oam.objMode = a2; + gSprites[sprite].oam.objMode = objMode; gSprites[sprite].affineAnimPaused = TRUE; if (!IsContest() && !gSprites[sprite].oam.affineMode) gSprites[sprite].oam.matrixNum = ewram17810[r7].unk6; @@ -1234,7 +1237,7 @@ static u16 ArcTan2_(s16 a, s16 b) return ArcTan2(a, b); } -u16 sub_80790F0(s16 a, s16 b) +u16 ArcTan2Neg(s16 a, s16 b) { u16 var = ArcTan2_(a, b); return -var; @@ -1437,7 +1440,7 @@ void sub_80794A8(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_8079518; } @@ -1561,20 +1564,26 @@ void sub_80796F8(u8 taskId) } } -void sub_8079790(u8 task) +// Linearly blends a mon's sprite colors with a target color with increasing +// strength, and then blends out to the original color. +// arg 0: anim bank +// arg 1: blend color +// arg 2: target blend coefficient +// arg 3: initial delay +// arg 4: number of times to blend in and out +void AnimTask_BlendMonInAndOut(u8 task) { - u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); - - if (sprite == 0xff) + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) { DestroyAnimVisualTask(task); return; } - gTasks[task].data[0] = (gSprites[sprite].oam.paletteNum * 0x10) + 0x101; - sub_80797EC(&gTasks[task]); + gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101; + AnimTask_BlendMonInAndOutSetup(&gTasks[task]); } -void sub_80797EC(struct Task *task) +void AnimTask_BlendMonInAndOutSetup(struct Task *task) { task->data[1] = gBattleAnimArgs[1]; task->data[2] = 0; @@ -1583,10 +1592,10 @@ void sub_80797EC(struct Task *task) task->data[5] = gBattleAnimArgs[3]; task->data[6] = 0; task->data[7] = gBattleAnimArgs[4]; - task->func = sub_8079814; + task->func = AnimTask_BlendMonInAndOutStep; } -void sub_8079814(u8 taskId) +void AnimTask_BlendMonInAndOutStep(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1596,14 +1605,14 @@ void sub_8079814(u8 taskId) if (!task->data[6]) { task->data[2]++; - BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]); + BlendPalette(task->data[0], 15, task->data[2], task->data[1]); if (task->data[2] == task->data[3]) task->data[6] = 1; } else { task->data[2]--; - BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]); + BlendPalette(task->data[0], 15, task->data[2], task->data[1]); if (!task->data[2]) { if (--task->data[7]) @@ -1631,7 +1640,7 @@ void sub_80798AC(u8 task) return; } gTasks[task].data[0] = (palette * 0x10) + 0x101; - sub_80797EC(&gTasks[task]); + AnimTask_BlendMonInAndOutSetup(&gTasks[task]); } void sub_80798F4(struct Task *task, u8 a2, const void *a3) @@ -1873,26 +1882,26 @@ void sub_8079E24() } } -u8 sub_8079E90(u8 slot) +u8 sub_8079E90(u8 bank) { - u8 status; + u8 identity; u8 ret; if (IsContest()) { - if (slot == 2) + if (bank == ANIM_BANK_ATK_PARTNER) return 30; else return 40; } else { - status = GetBankIdentity(slot); - if (status == 0) + identity = GetBankIdentity(bank); + if (identity == IDENTITY_PLAYER_MON1) ret = 30; - else if (status == 2) + else if (identity == IDENTITY_PLAYER_MON2) ret = 20; - else if (status == 1) + else if (identity == IDENTITY_OPPONENT_MON1) ret = 40; else ret = 50; |