summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-03-18 18:06:29 -0700
committerGitHub <noreply@github.com>2018-03-18 18:06:29 -0700
commit7fcee65ee4dce2b968eba0c6d38151f720dbcdf0 (patch)
treef60287f706417eaa80684d20b5058848e94a5275
parentd51855dfadf9e1357ef8e33e90b5156f8561405c (diff)
parent3c9552befdbd295b94a06fca31a4c03c667465b3 (diff)
Merge pull request #583 from huderlem/animdocs
Document some more battle anims
-rw-r--r--asm/battle_anim_812C144.s14
-rw-r--r--asm/battle_anim_813F0F4.s4
-rw-r--r--asm/current.s4
-rw-r--r--asm/flying.s2
-rw-r--r--asm/ghost.s4
-rw-r--r--asm/ground.s10
-rw-r--r--asm/ice.s2
-rw-r--r--asm/normal.s4
-rw-r--r--asm/water.s4
-rw-r--r--data/battle_anim_80CA710.s70
-rw-r--r--data/battle_anim_scripts.s394
-rw-r--r--include/rom_8077ABC.h14
-rw-r--r--src/battle/anim/bubble.c2
-rw-r--r--src/battle/anim/bug.c37
-rw-r--r--src/battle/anim/cutter.c2
-rw-r--r--src/battle/anim/dark.c2
-rw-r--r--src/battle/anim/drum.c2
-rw-r--r--src/battle/anim/fight.c51
-rw-r--r--src/battle/anim/fire_2.c67
-rw-r--r--src/battle/anim/flying_hearts.c2
-rw-r--r--src/battle/anim/flying_path.c14
-rw-r--r--src/battle/anim/homing.c2
-rw-r--r--src/battle/anim/money.c2
-rw-r--r--src/battle/anim/orbit_fast.c17
-rw-r--r--src/battle/anim/orbit_scatter.c14
-rw-r--r--src/battle/anim/orbs.c2
-rw-r--r--src/battle/anim/poison.c18
-rw-r--r--src/battle/anim/psychic.c2
-rw-r--r--src/battle/anim/rock.c2
-rw-r--r--src/battle/anim/scan.c8
-rw-r--r--src/battle/anim/seed.c27
-rw-r--r--src/battle/anim/slash.c2
-rw-r--r--src/battle/anim/slice.c20
-rw-r--r--src/battle/anim/sonic.c34
-rw-r--r--src/battle/anim/unused_8.c2
-rw-r--r--src/battle/battle_anim_80A7E7C.c45
-rw-r--r--src/battle/pokeball.c6
-rw-r--r--src/rom_8077ABC.c63
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
diff --git a/asm/ice.s b/asm/ice.s
index 02729a0c0..51140d998 100644
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -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;