summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-02-11 12:43:48 -0800
committerMarcus Huderle <huderlem@gmail.com>2018-02-11 13:29:15 -0800
commitc775680d716299ae74cbcfb7eeb41c8982010021 (patch)
tree16123943bc4974766ff04c0c1bc36c72e52f61f8
parent4fe6a8bd80ff947661aea391060207a53895338e (diff)
Document battle anim things related to STRENGTH, TACKLE, BODY_SLAM, and SUPERSONIC
-rw-r--r--asm/battle_anim_812C144.s8
-rw-r--r--asm/flying.s8
-rw-r--r--asm/ground.s8
-rw-r--r--asm/ice.s8
-rw-r--r--data/battle_anim_80CA710.s16
-rw-r--r--data/battle_anim_scripts.s366
-rw-r--r--include/rom_8077ABC.h13
-rw-r--r--src/battle/anim/bug.c6
-rw-r--r--src/battle/anim/bullet.c2
-rw-r--r--src/battle/anim/dark.c2
-rw-r--r--src/battle/anim/dragon.c2
-rw-r--r--src/battle/anim/energy_wave.c2
-rw-r--r--src/battle/anim/fight.c10
-rw-r--r--src/battle/anim/grip.c2
-rw-r--r--src/battle/anim/guard.c2
-rw-r--r--src/battle/anim/lunge_1.c4
-rw-r--r--src/battle/anim/note_rain.c2
-rw-r--r--src/battle/anim/orbs.c4
-rw-r--r--src/battle/anim/poison.c4
-rw-r--r--src/battle/anim/rock.c6
-rw-r--r--src/battle/anim/scan.c4
-rw-r--r--src/battle/anim/sonic.c2
-rw-r--r--src/battle/anim/sunlight.c2
-rw-r--r--src/battle/anim/sword.c2
-rw-r--r--src/battle/anim/tile_out.c2
-rw-r--r--src/battle/anim/unused_8.c2
-rw-r--r--src/battle/anim/water.c2
-rw-r--r--src/battle/battle_anim_80A7E7C.c294
-rw-r--r--src/battle/battle_controller_linkopponent.c6
-rw-r--r--src/battle/battle_controller_linkpartner.c6
-rw-r--r--src/battle/battle_controller_opponent.c6
-rw-r--r--src/battle/battle_controller_player.c6
-rw-r--r--src/battle/battle_controller_wally.c4
-rw-r--r--src/rom_8077ABC.c37
34 files changed, 450 insertions, 400 deletions
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index 007d9f32b..dd0e9bac1 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -262,7 +262,7 @@ _0812C31A:
strh r0, [r5, 0x2E]
strh r7, [r5, 0x32]
strh r6, [r5, 0x36]
- ldr r0, _0812C350 @ =sub_8078B34
+ ldr r0, _0812C350 @ =StartTranslateAnimSpriteByDeltas
str r0, [r5, 0x1C]
ldr r1, _0812C354 @ =DestroyAnimSprite
adds r0, r5, 0
@@ -274,7 +274,7 @@ _0812C31A:
.align 2, 0
_0812C348: .4byte gAnimBankTarget
_0812C34C: .4byte gBattleAnimArgs
-_0812C350: .4byte sub_8078B34
+_0812C350: .4byte StartTranslateAnimSpriteByDeltas
_0812C354: .4byte DestroyAnimSprite
thumb_func_end sub_812C2BC
@@ -2376,7 +2376,7 @@ _0812D2F0:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, _0812D34C @ =sub_8078B34
+ ldr r0, _0812D34C @ =StartTranslateAnimSpriteByDeltas
str r0, [r5, 0x1C]
_0812D33C:
pop {r4,r5}
@@ -2385,7 +2385,7 @@ _0812D33C:
.align 2, 0
_0812D344: .4byte DestroyAnimSprite
_0812D348: .4byte gAnimBankTarget
-_0812D34C: .4byte sub_8078B34
+_0812D34C: .4byte StartTranslateAnimSpriteByDeltas
thumb_func_end sub_812D294
thumb_func_start sub_812D350
diff --git a/asm/flying.s b/asm/flying.s
index a99c5444c..a9872c903 100644
--- a/asm/flying.s
+++ b/asm/flying.s
@@ -342,7 +342,7 @@ _080DA2C2:
ldrh r3, [r5, 0x36]
adds r0, r3
strh r0, [r5, 0x36]
- ldr r0, _080DA2F8 @ =sub_8078B34
+ ldr r0, _080DA2F8 @ =StartTranslateAnimSpriteByDeltas
str r0, [r5, 0x1C]
ldr r1, _080DA2FC @ =DestroyAnimSprite
adds r0, r5, 0
@@ -356,7 +356,7 @@ _080DA2C2:
.align 2, 0
_080DA2F0: .4byte gAnimBankTarget
_080DA2F4: .4byte gBattleAnimArgs
-_080DA2F8: .4byte sub_8078B34
+_080DA2F8: .4byte StartTranslateAnimSpriteByDeltas
_080DA2FC: .4byte DestroyAnimSprite
thumb_func_end sub_80DA208
@@ -1743,7 +1743,7 @@ sub_80DAD30: @ 80DAD30
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r0, _080DAD80 @ =sub_807941C
+ ldr r0, _080DAD80 @ =TranslateAnimSpriteToTargetMonLocation
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -1751,7 +1751,7 @@ sub_80DAD30: @ 80DAD30
.align 2, 0
_080DAD78: .4byte gAnimBankTarget
_080DAD7C: .4byte gAnimBankAttacker
-_080DAD80: .4byte sub_807941C
+_080DAD80: .4byte TranslateAnimSpriteToTargetMonLocation
thumb_func_end sub_80DAD30
thumb_func_start sub_80DAD84
diff --git a/asm/ground.s b/asm/ground.s
index 9b55fea39..607065061 100644
--- a/asm/ground.s
+++ b/asm/ground.s
@@ -157,7 +157,7 @@ _080E1024:
ldrh r4, [r4, 0x6]
adds r0, r4
strh r0, [r6, 0x36]
- ldr r0, _080E1070 @ =sub_8078B34
+ ldr r0, _080E1070 @ =StartTranslateAnimSpriteByDeltas
str r0, [r6, 0x1C]
ldr r1, _080E1074 @ =DestroyAnimSprite
adds r0, r6, 0
@@ -169,7 +169,7 @@ _080E1024:
_080E1064: .4byte gAnimBankAttacker
_080E1068: .4byte gBattleAnimArgs
_080E106C: .4byte gAnimBankTarget
-_080E1070: .4byte sub_8078B34
+_080E1070: .4byte StartTranslateAnimSpriteByDeltas
_080E1074: .4byte DestroyAnimSprite
thumb_func_end sub_80E1004
@@ -224,7 +224,7 @@ _080E10D0:
strh r0, [r6, 0x32]
adds r0, r7, r4
strh r0, [r6, 0x36]
- ldr r0, _080E1100 @ =sub_8078B34
+ ldr r0, _080E1100 @ =StartTranslateAnimSpriteByDeltas
str r0, [r6, 0x1C]
ldr r1, _080E1104 @ =move_anim_8074EE0
adds r0, r6, 0
@@ -237,7 +237,7 @@ _080E10D0:
.align 2, 0
_080E10F8: .4byte gAnimBankTarget
_080E10FC: .4byte gBattleAnimArgs
-_080E1100: .4byte sub_8078B34
+_080E1100: .4byte StartTranslateAnimSpriteByDeltas
_080E1104: .4byte move_anim_8074EE0
thumb_func_end sub_80E1078
diff --git a/asm/ice.s b/asm/ice.s
index ad6aafb18..02729a0c0 100644
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -371,7 +371,7 @@ _080D7976:
ldr r1, _080D79AC @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData
- ldr r0, _080D79B0 @ =sub_8078B34
+ ldr r0, _080D79B0 @ =StartTranslateAnimSpriteByDeltas
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
@@ -380,7 +380,7 @@ _080D7976:
_080D79A4: .4byte gBattleAnimArgs
_080D79A8: .4byte gAnimBankTarget
_080D79AC: .4byte DestroyAnimSprite
-_080D79B0: .4byte sub_8078B34
+_080D79B0: .4byte StartTranslateAnimSpriteByDeltas
thumb_func_end sub_80D792C
thumb_func_start sub_80D79B4
@@ -1696,14 +1696,14 @@ sub_80D83E0: @ 80D83E0
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r0, _080D8410 @ =sub_807941C
+ ldr r0, _080D8410 @ =TranslateAnimSpriteToTargetMonLocation
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080D840C: .4byte gAnimBankAttacker
-_080D8410: .4byte sub_807941C
+_080D8410: .4byte TranslateAnimSpriteToTargetMonLocation
thumb_func_end sub_80D83E0
thumb_func_start sub_80D8414
diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s
index 765d801f4..3ffefdb45 100644
--- a/data/battle_anim_80CA710.s
+++ b/data/battle_anim_80CA710.s
@@ -1031,7 +1031,7 @@ gBattleAnimSpriteTemplate_83D6EF0:: @ 83D6EF0
.align 2
gBattleAnimSpriteTemplate_83D6F08:: @ 83D6F08
- spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+ spr_template 10017, 10017, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation
.align 2
gSpriteAnim_83D6F20:: @ 83D6F20
@@ -1490,16 +1490,16 @@ gSpriteAffineAnimTable_83D7530:: @ 83D7530
.4byte gSpriteAffineAnim_83D74EC
.align 2
-gBattleAnimSpriteTemplate_83D7534:: @ 83D7534
- spr_template 10163, 10163, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
+gSupersonicWaveSpriteTemplate:: @ 83D7534
+ spr_template 10163, 10163, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, TranslateAnimSpriteToTargetMonLocation
.align 2
gBattleAnimSpriteTemplate_83D754C:: @ 83D754C
- spr_template 10164, 10164, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
+ spr_template 10164, 10164, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, TranslateAnimSpriteToTargetMonLocation
.align 2
gBattleAnimSpriteTemplate_83D7564:: @ 83D7564
- spr_template 10260, 10260, gOamData_837E03C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_807941C
+ spr_template 10260, 10260, gOamData_837E03C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, TranslateAnimSpriteToTargetMonLocation
.align 2
gBattleAnimSpriteTemplate_83D757C:: @ 83D757C
@@ -2449,7 +2449,7 @@ gSpriteAnimTable_83D95E0:: @ 83D95E0
.align 2
gBattleAnimSpriteTemplate_83D95E4:: @ 83D95E4
- spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+ spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation
.align 2
gBattleAnimSpriteTemplate_83D95FC:: @ 83D95FC
@@ -2631,7 +2631,7 @@ gBattleAnimSpriteTemplate_83D985C:: @ 83D985C
.align 2
gBattleAnimSpriteTemplate_83D9874:: @ 83D9874
- spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+ spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation
.align 2
gSpriteAffineAnim_83D988C:: @ 83D988C
@@ -3713,7 +3713,7 @@ gBattleAnimSpriteTemplate_83DA76C:: @ 83DA76C
.align 2
gBattleAnimSpriteTemplate_83DA784:: @ 83DA784
- spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807941C
+ spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation
.align 2
gSpriteAnim_83DA79C:: @ 83DA79C
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index be90e7fff..dadcf9f0e 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -556,11 +556,11 @@ Move_STRENGTH: @ 81C7C5E
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
playsewithpan SE_W036, 192
- createvisualtask sub_80A8314, 5, 0, 2, 0, 96, 30
+ createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_BANK_ATTACKER, 2, 0, 96, 30
waitforvisualfinish
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 4
- createvisualtask sub_80A8500, 2, 1, 18, 6, 2, 4
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_TARGET, 18, 6, 2, 4
delay 4
playsewithpan SE_W025B, 63
createsprite gBasicHitSplatSpriteTemplate, 3, 16, 12, 1, 1
@@ -581,7 +581,7 @@ Move_TACKLE: @ 81C7CF2
loadspritegfx 10135
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 6
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1
@@ -596,22 +596,22 @@ Move_BODY_SLAM: @ 81C7D30
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
playsewithpan SE_W036, 192
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
waitforvisualfinish
delay 11
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 26, 0, 0, 5
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 26, 0, 0, 5
delay 6
createsprite gBasicHitSplatSpriteTemplate, 4, -10, 0, 1, 0
loopsewithpan SE_W025B, 63, 10, 2
delay 1
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -28, 0, 0, 3
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -28, 0, 0, 3
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 1, 4, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 12, 1
waitforvisualfinish
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 6
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -620,22 +620,22 @@ Move_BODY_SLAM: @ 81C7D30
Move_SUPERSONIC: @ 81C7DBD
loadspritegfx 10163
monbg ANIM_BANK_ATK_PARTNER
- monbgprio_2A 0
+ monbgprio_2A ANIM_BANK_ATTACKER
setalpha 12, 8
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 2, 0, 8, 1
- call _81C7DFB
- call _81C7DFB
- call _81C7DFB
- call _81C7DFB
- call _81C7DFB
- call _81C7DFB
+ call Move_SUPERSONIC_CreateWaveSprite
+ call Move_SUPERSONIC_CreateWaveSprite
+ call Move_SUPERSONIC_CreateWaveSprite
+ call Move_SUPERSONIC_CreateWaveSprite
+ call Move_SUPERSONIC_CreateWaveSprite
+ call Move_SUPERSONIC_CreateWaveSprite
waitforvisualfinish
clearmonbg ANIM_BANK_ATK_PARTNER
blendoff
end
-_81C7DFB:
+Move_SUPERSONIC_CreateWaveSprite:
playsewithpan SE_W048, 192
- createsprite gBattleAnimSpriteTemplate_83D7534, 130, 16, 0, 0, 0, 30, 0
+ createsprite gSupersonicWaveSpriteTemplate, 130, 16, 0, 0, 0, 30, 0
delay 2
return
@@ -657,7 +657,7 @@ _81C7E48:
Move_FLAME_WHEEL: @ 81C7E62
loadspritegfx 10029
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
createsprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 0
playsewithpan SE_W172, 192
delay 2
@@ -679,14 +679,14 @@ Move_FLAME_WHEEL: @ 81C7E62
createsprite gBattleAnimSpriteTemplate_83D9694, 3, 0, 0, 56, 24
playsewithpan SE_W172, 192
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 6
+ 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
playsewithpan SE_W172B, 63
call _81D11A2
delay 7
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 9
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 9
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
end
@@ -765,14 +765,14 @@ Move_TAKE_DOWN: @ 81C80E6
createsprite gBasicHitSplatSpriteTemplate, 4, -10, 0, 1, 0
playsewithpan SE_W025B, 63
delay 1
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -16, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -16, 0, 0, 4
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 1, 4, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 12, 1
waitforvisualfinish
delay 2
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5
delay 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 7
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -786,28 +786,28 @@ Move_DOUBLE_EDGE: @ 81C817A
delay 10
playsewithpan SE_W207, 192
waitplaysewithpan SE_W207, 192, 8
- createvisualtask sub_80A8500, 2, 0, 18, 6, 2, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 2, 4
waitforvisualfinish
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 16, 16, 32767
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4
delay 3
waitforvisualfinish
playsewithpan SE_W025B, 63
createsprite gBasicHitSplatSpriteTemplate, 132, -10, 0, 1, 0
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -32, 0, 0, 3
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -32, 0, 0, 3
waitforvisualfinish
createvisualtask sub_80A8E04, 2, 8, -256, 0, 0
createvisualtask sub_80A8E04, 2, 8, -256, 1, 0
- createvisualtask sub_80A8154, 2, 0, 4, 0, 12, 1
- createvisualtask sub_80A8154, 2, 1, 4, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 4, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 12, 1
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 2, 16, 0, 32767
waitforvisualfinish
createvisualtask sub_80A8E04, 2, 8, -256, 0, 1
createvisualtask sub_80A8E04, 2, 8, -256, 1, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5
delay 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 7
waitforvisualfinish
end
@@ -1191,7 +1191,7 @@ Move_STOMP: @ 81C8B2A
Move_TAIL_WHIP: @ 81C8B71
loopsewithpan SE_W039, 192, 24, 3
- createvisualtask sub_80A8500, 2, 0, 12, 4, 2, 3
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 4, 2, 3
waitforvisualfinish
end
@@ -1258,7 +1258,7 @@ Move_REVERSAL: @ 81C8CA5
createsprite gBattleAnimSpriteTemplate_8402738, 2, 26, 210
waitforvisualfinish
delay 20
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 8
playsewithpan SE_W233B, 63
createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32767, 8, 0, 0
@@ -1303,7 +1303,7 @@ Move_SPIKE_CANNON: @ 81C8DF1
createvisualtask sub_80A8920, 5, 0, -4, 0, 4, 6, 8, 4
waitforvisualfinish
loopsewithpan SE_W013B, 192, 5, 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ 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
@@ -1323,7 +1323,7 @@ Move_SWORDS_DANCE: @ 81C8EA4
monbg ANIM_BANK_ATTACKER
setalpha 12, 8
playsewithpan SE_W014, 192
- createvisualtask sub_80A8500, 2, 0, 16, 6, 1, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 16, 6, 1, 4
createsprite gBattleAnimSpriteTemplate_83D748C, 2, 0, 0
delay 22
createvisualtask sub_80E21A8, 2, 10005, 2, 2, 32754, 16, 0, 0
@@ -1384,7 +1384,7 @@ Move_DIZZY_PUNCH: @ 81C8F5C
blendoff
end
_81C9077:
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 6
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 7, 1
return
@@ -1488,19 +1488,19 @@ Move_SLAM: @ 81C9309
monbg ANIM_BANK_TARGET
setalpha 12, 8
playsewithpan SE_W004, 192
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 3, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 3, 0, 4
delay 1
createsprite gBattleAnimSpriteTemplate_83D69DC, 2, 0, 0
delay 3
playsewithpan SE_W025B, 63
createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -12, 10, 0, 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -12, 10, 0, 3
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5
delay 3
- createvisualtask sub_80A8154, 2, 1, 0, 3, 6, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 0, 3, 6, 1
waitforvisualfinish
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6
waitforvisualfinish
clearmonbg ANIM_BANK_TARGET
blendoff
@@ -1509,7 +1509,7 @@ Move_SLAM: @ 81C9309
Move_VINE_WHIP: @ 81C9391
loadspritegfx 10287
playsewithpan SE_W026, 192
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6
delay 6
playsewithpan SE_W010, 63
createsprite gBattleAnimSpriteTemplate_83D69F4, 130, 0, 0
@@ -1532,7 +1532,7 @@ Move_DRILL_PECK: @ 81C93C8
waitforvisualfinish
createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 6
waitforvisualfinish
end
@@ -1569,7 +1569,7 @@ Move_WATERFALL: @ 81C9421
createsprite gBattleAnimSpriteTemplate_83D9348, 2, 12, 0, 25, 0
waitforvisualfinish
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 5
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 5
delay 6
call _81C9502
waitforvisualfinish
@@ -1768,13 +1768,13 @@ _81C9A37:
createsprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
waitforvisualfinish
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 6
playsewithpan SE_W004, 63
createsprite gBasicHitSplatSpriteTemplate, 2, 10, 4, 1, 1
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 6, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 6
playsewithpan SE_W004, 63
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -4, 1, 2
@@ -1784,7 +1784,7 @@ _81C9AB3:
createsprite gBattleAnimSpriteTemplate_8402630, 2, 20, -28
waitforvisualfinish
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 10, 2
+ createsprite gHorizontalLungeSpriteTemplate, 2, 10, 2
delay 12
playsewithpan SE_W004, 63
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2
@@ -1896,7 +1896,7 @@ Move_OUTRAGE: @ 81C9D08
loadspritegfx 10029
loopsewithpan SE_W082, 192, 8, 3
createvisualtask sub_80E1F8C, 2, 7, 2, 5, 3, 8, 430
- createvisualtask sub_80A8500, 2, 0, 12, 6, 5, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 6, 5, 4
delay 0
createsprite gBattleAnimSpriteTemplate_83DAFCC, 130, 0, 0, 30, 1280, 0, 3
delay 0
@@ -1972,7 +1972,7 @@ Move_SPARK: @ 81C9EA3
delay 4
waitforvisualfinish
createvisualtask sub_80E1F8C, 2, 3, -31, 1, 0, 0, 23551
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 4
playsewithpan SE_W063, 63
createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 2
@@ -2036,7 +2036,7 @@ Move_WHIRLWIND: @ 81CA1E9
loopsewithpan SE_W104, 63, 10, 4
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 15, 1
delay 29
- createvisualtask sub_80A8500, 2, 1, 12, 6, 1, 5
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_TARGET, 12, 6, 1, 5
delay 7
playsewithpan SE_W081, 63
createvisualtask sub_80A8A80, 5, 1, 8
@@ -2168,7 +2168,7 @@ Move_THIEF: @ 81CA52C
fadetobg 1
waitbgfadein
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 6
playsewithpan SE_W233, 63
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2
@@ -2334,7 +2334,7 @@ Move_CONVERSION: @ 81CA809
Move_CONVERSION_2: @ 81CA91E
loadspritegfx 10018
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
setalpha 0, 16
delay 0
playsewithpan SE_W112, 63
@@ -2381,19 +2381,19 @@ Move_ROLLING_KICK: @ 81CAA3A
loadspritegfx 10135
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createvisualtask sub_80A8500, 2, 0, 18, 6, 1, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 1, 4
playsewithpan SE_W104, 192
delay 6
playsewithpan SE_W104, 192
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4
createsprite gBattleAnimSpriteTemplate_83D9FF0, 2, -24, 0, 48, 10, 160, 0
delay 5
playsewithpan SE_W233B, 63
createsprite gBasicHitSplatSpriteTemplate, 2, -8, 0, 1, 2
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 6, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 1, 8
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 1, 8
clearmonbg ANIM_BANK_TARGET
blendoff
end
@@ -2406,7 +2406,7 @@ Move_HEADBUTT: @ 81CAABD
delay 2
createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 0, 2, 0, 4, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 4, 1
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 6, 1
createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
createsprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1
@@ -2424,7 +2424,7 @@ Move_HORN_ATTACK: @ 81CAB1A
createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 1
createsprite gBattleAnimSpriteTemplate_83D7050, 132, 0, 0, 10
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 0, 2, 0, 4, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 4, 1
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 5, 0, 6, 1
createsprite gBattleAnimSpriteTemplate_83D6DE4, 2, 2
createsprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 1
@@ -2472,8 +2472,8 @@ _81CAC21:
createsprite gBattleAnimSpriteTemplate_83D7050, 132, 0, 0, 12
waitforvisualfinish
playse SE_BAN
- createvisualtask sub_80A8154, 2, 0, 2, 0, 40, 1
- createvisualtask sub_80A8154, 2, 1, 10, 0, 40, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 40, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 40, 1
createsprite gBattleAnimSpriteTemplate_83DB538, 131, 0, 0, 1, 3
playsewithpan SE_W030, 63
delay 4
@@ -2526,15 +2526,15 @@ Move_THRASH: @ 81CAD81
createvisualtask sub_80D0A4C, 2
createvisualtask sub_80D0AB8, 2
createsprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 0
- createvisualtask sub_80A8154, 2, 1, 4, 0, 7, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 7, 1
playsewithpan SE_W004, 63
delay 28
createsprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 1
- createvisualtask sub_80A8154, 2, 1, 4, 0, 7, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 4, 0, 7, 1
playsewithpan SE_W233B, 63
delay 28
createsprite gBattleAnimSpriteTemplate_83D9FC0, 131, 1, 10, 3
- createvisualtask sub_80A8154, 2, 1, 8, 0, 16, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 8, 0, 16, 1
playsewithpan SE_W025B, 63
end
@@ -2577,14 +2577,14 @@ Move_SING: @ 81CAE00
Move_LOW_KICK: @ 81CAED4
loadspritegfx 10143
loadspritegfx 10135
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4
createsprite gBattleAnimSpriteTemplate_83D9FF0, 130, -24, 28, 40, 8, 160, 0
delay 4
createsprite gBasicHitSplatSpriteTemplate, 130, -8, 8, 1, 2
createvisualtask sub_80A8E04, 2, 6, 384, 1, 2
playsewithpan SE_W233B, 63
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 1, 4
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 1, 4
end
Move_EARTHQUAKE: @ 81CAF31
@@ -2699,7 +2699,7 @@ Move_MEDITATE: @ 81CB1BD
Move_AGILITY: @ 81CB1DA
monbg ANIM_BANK_ATK_PARTNER
setalpha 12, 8
- createvisualtask sub_80A8500, 2, 0, 24, 6, 4, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 24, 6, 4, 4
createvisualtask sub_80E2DD8, 2, 0, 4, 7, 10
playsewithpan SE_W104, 192
delay 12
@@ -2721,7 +2721,7 @@ Move_QUICK_ATTACK: @ 81CB224
loadspritegfx 10135
monbg ANIM_BANK_ATK_PARTNER
setalpha 12, 8
- createvisualtask sub_80A8500, 2, 0, 24, 6, 1, 5
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 24, 6, 1, 5
createvisualtask sub_80E2DD8, 2, 0, 4, 7, 3
playsewithpan SE_W026, 192
delay 4
@@ -2746,7 +2746,7 @@ Move_RAGE: @ 81CB27C
createsprite gBattleAnimSpriteTemplate_83D7798, 2, 0, 20, -28
playsewithpan SE_W207B, 192
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6
delay 4
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2
createvisualtask sub_80A9058, 2, 1, 1, 10, 1, 0
@@ -2836,8 +2836,8 @@ _81CB3E6:
waitforvisualfinish
playse SE_BAN
createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 1, 3, 1, 0, 14, 32767, 14
- createvisualtask sub_80A8154, 2, 0, 2, 0, 40, 1
- createvisualtask sub_80A8154, 2, 1, 10, 0, 40, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 40, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 40, 1
createsprite gBattleAnimSpriteTemplate_83DB538, 132, 0, 0, 1, 0
loopsewithpan SE_W025B, 63, 8, 3
waitforvisualfinish
@@ -3002,14 +3002,14 @@ Move_SHARPEN: @ 81CB74E
Move_SUPER_FANG: @ 81CB75A
loadspritegfx 10192
- createvisualtask sub_80A8154, 2, 0, 1, 0, 20, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 1, 0, 20, 1
playsewithpan SE_W082, 192
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 0, 3, 0, 48, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 3, 0, 48, 1
createvisualtask sub_8079790, 2, 0, 1247, 12, 4, 1
waitforvisualfinish
delay 20
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 4
createsprite gBattleAnimSpriteTemplate_83D7080, 130
playsewithpan SE_W044, 63
@@ -3036,13 +3036,13 @@ Move_STRUGGLE: @ 81CB815
loadspritegfx 10215
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createvisualtask sub_80A8154, 2, 0, 3, 0, 12, 4
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 3, 0, 12, 4
createsprite gBattleAnimSpriteTemplate_83D7C90, 2, 0, 0, 2
createsprite gBattleAnimSpriteTemplate_83D7C90, 2, 0, 1, 2
loopsewithpan SE_W029, 192, 12, 4
waitforvisualfinish
createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2
- createvisualtask sub_80A8154, 2, 1, 3, 0, 6, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 3, 0, 6, 1
playsewithpan SE_W025B, 63
waitforvisualfinish
clearmonbg ANIM_BANK_TARGET
@@ -3170,7 +3170,7 @@ Move_DESTINY_BOND: @ 81CBA2C
createvisualtask sub_80DE918, 5, 0, 48
playsewithpan SE_W109, 192
delay 48
- createvisualtask sub_80A8154, 2, 0, 2, 0, 24, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 24, 1
createvisualtask sub_80E2A7C, 2, 6, 1, 0, 12, 30653
delay 24
createvisualtask sub_80E2A7C, 2, 6, 1, 12, 0, 30653
@@ -3697,14 +3697,14 @@ Move_BRICK_BREAK: @ 81CC492
_81CC4A7:
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
+ createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8
delay 4
delay 1
createsprite gBasicHitSplatSpriteTemplate, 3, -18, -18, 1, 1
createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0
playsewithpan SE_W233, 63
delay 20
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
+ createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8
delay 5
createsprite gBasicHitSplatSpriteTemplate, 3, 18, 18, 1, 1
createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0
@@ -3724,7 +3724,7 @@ _81CC4A7:
_81CC576:
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
+ createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8
delay 4
createsprite gBattleAnimSpriteTemplate_83DA0A0, 3, 1, 0, 0, 90, 10
delay 1
@@ -3732,7 +3732,7 @@ _81CC576:
createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, -18, -18, 10, 1, 0
playsewithpan SE_W233, 63
delay 20
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 8
+ createsprite gHorizontalLungeSpriteTemplate, 2, 3, 8
delay 5
createsprite gBasicHitSplatSpriteTemplate, 3, 18, 18, 1, 1
createsprite gBattleAnimSpriteTemplate_83D9FA8, 2, 18, 18, 10, 1, 0
@@ -4105,7 +4105,7 @@ Move_CRUSH_CLAW: @ 81CCF3B
loadspritegfx 10208
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 4
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 2, 0, 18, 1
createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0
@@ -4208,10 +4208,10 @@ Move_ODOR_SLEUTH: @ 81CD1FF
monbg ANIM_BANK_TARGET
createvisualtask sub_81316F8, 5
delay 24
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 3, 4
playsewithpan SE_W207, 192
delay 6
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 3, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 3, 4
playsewithpan SE_W207, 192
waitforvisualfinish
clearmonbg ANIM_BANK_TARGET
@@ -4338,7 +4338,7 @@ Move_AERIAL_ACE: @ 81CD499
loadspritegfx 10138
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createvisualtask sub_80A8500, 2, 0, 24, 6, 1, 5
+ 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
playsewithpan SE_W013B, 192
@@ -5156,7 +5156,7 @@ Move_FAINT_ATTACK: @ 81CE6ED
waitbgfadein
delay 0
playsewithpan SE_W185, 192
- createvisualtask sub_80A8500, 2, 0, 18, 6, 1, 3
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 1, 3
createvisualtask sub_80DFC24, 2, 1
waitforvisualfinish
clearmonbg ANIM_BANK_ATTACKER
@@ -5191,9 +5191,9 @@ Move_SAND_ATTACK: @ 81CE774
monbgprio_28 0
setalpha 12, 8
playsewithpan SE_W028, 192
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -10, 0, 0, 3
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, -10, 0, 0, 3
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 2
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 2
call _81CE7C4
call _81CE7C4
call _81CE7C4
@@ -5216,9 +5216,9 @@ _81CE7C4:
Move_MUD_SLAP: @ 81CE81C
loadspritegfx 10074
playsewithpan SE_W028, 192
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -10, 0, 0, 3
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, -10, 0, 0, 3
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 2
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 2
call _81CE862
call _81CE862
call _81CE862
@@ -5242,7 +5242,7 @@ Move_DRAGON_RAGE: @ 81CE8BA
playsewithpan SE_W082, 192
createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 130, 0, 15, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 130, 0, 15, 0, 0, 4
waitforvisualfinish
createsprite gBattleAnimSpriteTemplate_83DB0D0, 130, 30, 15, 0, 10, 10
waitforvisualfinish
@@ -5264,7 +5264,7 @@ Move_DRAGON_RAGE: @ 81CE8BA
delay 1
createsprite gBattleAnimSpriteTemplate_83DB078, 194, 1, 0, 8
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 194, 0, 0, 4
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 194, 0, 0, 4
waitforvisualfinish
end
@@ -5698,7 +5698,7 @@ Move_ABSORB: @ 81CF427
loadspritegfx 10031
loadspritegfx 10135
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
setalpha 12, 8
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 4, 13293
waitforvisualfinish
@@ -5750,7 +5750,7 @@ Move_MEGA_DRAIN: @ 81CF53F
loadspritegfx 10031
loadspritegfx 10135
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
setalpha 12, 8
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 8, 13293
waitforvisualfinish
@@ -5810,7 +5810,7 @@ Move_GIGA_DRAIN: @ 81CF6CF
loadspritegfx 10031
loadspritegfx 10135
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
setalpha 12, 8
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 1, 0, 12, 13293
waitforvisualfinish
@@ -5880,7 +5880,7 @@ Move_LEECH_LIFE: @ 81CF8D7
loadspritegfx 10031
loadspritegfx 10135
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
setalpha 12, 8
delay 1
createsprite gBattleAnimSpriteTemplate_83DAB10, 2, -20, 15, 12
@@ -6040,7 +6040,7 @@ Move_BONEMERANG: @ 81CFC54
createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 5, 1
delay 17
playsewithpan SE_W233, 192
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, -4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, -4
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6112,20 +6112,20 @@ _81CFDCF:
createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1
waitforvisualfinish
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 6
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 6
delay 3
createsprite gBattleAnimSpriteTemplate_83DAABC, 3, -42, 25, 0, 0, 6
delay 4
playsewithpan SE_W011, 63
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 0
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -16, 4, 1, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -16, 4, 1, 4
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 1, -4, 1, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, -4, 1, 12, 1
createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 7, 5, 1, 32767, 10, 0, 0
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 11
delay 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 7
waitforvisualfinish
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
@@ -6166,18 +6166,18 @@ Move_WING_ATTACK: @ 81CFEEB
monbgprio_28 1
setalpha 12, 8
loopsewithpan SE_W017, 192, 20, 2
- createvisualtask sub_80A8408, 2, 0, 12, 4, 1, 4
+ createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_ATTACKER, 12, 4, 1, 4
createvisualtask sub_80DA09C, 5, 1, 70
createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, -25, 0, 0, 0, 20
createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, 25, 0, 0, 0, 20
delay 24
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 9
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 9
delay 17
createsprite gBasicHitSplatSpriteTemplate, 2, 16, 0, 1, 1
createsprite gBasicHitSplatSpriteTemplate, 2, -16, 0, 1, 1
loopsewithpan SE_W003, 63, 5, 2
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 11
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6265,11 +6265,11 @@ Move_CRABHAMMER: @ 81D0159
playsewithpan SE_W233B, 63
delay 1
createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 3, 1, 32429, 10, 0, 0
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -24, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -24, 0, 0, 4
waitforvisualfinish
delay 8
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 4
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 4
waitforvisualfinish
loopsewithpan SE_W152, 63, 20, 3
createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 8, 1
@@ -6473,7 +6473,7 @@ Move_JUMP_KICK: @ 81D05F7
loadspritegfx 10135
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 3
createsprite gBattleAnimSpriteTemplate_83D9F90, 2, -16, 8, 0, 0, 10, 1, 1, 1
playsewithpan SE_W026, 63
@@ -6491,22 +6491,22 @@ Move_HI_JUMP_KICK: @ 81D0654
loadspritegfx 10135
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, -24, 0, 0, 8
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, -24, 0, 0, 8
waitforvisualfinish
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 3
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 3
delay 2
createsprite gBattleAnimSpriteTemplate_83D9F90, 2, -16, 8, 0, 0, 10, 1, 1, 1
playsewithpan SE_W026, 63
waitforvisualfinish
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 1
playsewithpan SE_W233B, 63
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -28, 0, 0, 3
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -28, 0, 0, 3
delay 3
- createvisualtask sub_80A8154, 2, 1, 3, 0, 11, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 3, 0, 11, 1
waitforvisualfinish
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6595,10 +6595,10 @@ Move_COUNTER: @ 81D08AC
loadspritegfx 10143
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
- createvisualtask sub_80A8500, 2, 0, 18, 6, 1, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 18, 6, 1, 4
playsewithpan SE_W233, 192
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4
delay 4
createsprite gBasicHitSplatSpriteTemplate, 2, -15, 18, 1, 0
playsewithpan SE_W233B, 63
@@ -6616,7 +6616,7 @@ Move_COUNTER: @ 81D08AC
delay 1
createsprite gBattleAnimSpriteTemplate_83D9FA8, 3, 15, 9, 8, 1, 0
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6627,19 +6627,19 @@ Move_VITAL_THROW: @ 81D097B
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
playsewithpan SE_W233, 192
- createvisualtask sub_80A8500, 2, 0, 12, 4, 1, 2
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 4, 1, 2
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 20, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 20, 0, 0, 4
delay 2
createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1
playsewithpan SE_W233B, 63
delay 1
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -24, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -24, 0, 0, 4
waitforvisualfinish
delay 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7
delay 11
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 10
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 10
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6686,8 +6686,8 @@ Move_SUBMISSION: @ 81D0AEE
waitplaysewithpan SE_W004, 63, 70
waitplaysewithpan SE_W104, 192, 80
waitplaysewithpan SE_W004, 63, 90
- createvisualtask sub_80A8408, 2, 0, -18, 6, 6, 4
- createvisualtask sub_80A8408, 2, 1, 18, 6, 6, 4
+ createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_ATTACKER, -18, 6, 6, 4
+ createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_TARGET, 18, 6, 6, 4
call _81D0B5D
call _81D0B5D
call _81D0B5D
@@ -6775,7 +6775,7 @@ Move_PETAL_DANCE: @ 81D0CA6
monbg ANIM_BANK_DEF_PARTNER
setalpha 12, 8
playsewithpan SE_W080, 192
- createvisualtask sub_80A8500, 2, 0, 12, 6, 6, 3
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 12, 6, 6, 3
createsprite gBattleAnimSpriteTemplate_83D6428, 2, 0, -24, 8, 140
createsprite gBattleAnimSpriteTemplate_83D6440, 2, 16, -24, 8, 100
createsprite gBattleAnimSpriteTemplate_83D6440, 2, -16, -24, 8, 100
@@ -6794,14 +6794,14 @@ Move_PETAL_DANCE: @ 81D0CA6
createsprite gBattleAnimSpriteTemplate_83D6440, 2, 20, -16, 14, 80
createsprite gBattleAnimSpriteTemplate_83D6440, 2, -20, -14, 16, 80
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 5
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 5
delay 3
playsewithpan SE_W025B, 63
createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 0
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 6, 0, 8, 1
waitforvisualfinish
delay 8
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6868,13 +6868,13 @@ Move_ANCIENT_POWER: @ 81D0EE5
createsprite gBattleAnimSpriteTemplate_83DAD60, 2, 0, 32, -42, 25, 5
createsprite gBattleAnimSpriteTemplate_83DAD60, 2, -25, 32, -48, 30, 4
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 16, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 16, 0, 0, 4
delay 3
playsewithpan SE_W120, 63
createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 1
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 6, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -6988,7 +6988,7 @@ Move_DREAM_EATER: @ 81D1271
loadspritegfx 10147
loadspritegfx 10031
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
playsewithpan SE_W060, 192
call Unknown_81D61E7
setalpha 8, 8
@@ -7100,7 +7100,7 @@ _81D1578:
return
Move_WRAP: @ 81D158C
- createvisualtask sub_80A8500, 2, 0, 6, 4, 2, 4
+ createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_BANK_ATTACKER, 6, 4, 2, 4
goto _81D1568
Move_PSYBEAM: @ 81D15A2
@@ -7203,18 +7203,18 @@ Move_STEEL_WING: @ 81D1807
monbgprio_28 1
setalpha 12, 8
loopsewithpan SE_W017, 192, 20, 2
- createvisualtask sub_80A8408, 2, 0, 12, 4, 1, 4
+ createvisualtask AnimTask_TranslateMonElliptical, 2, ANIM_BANK_ATTACKER, 12, 4, 1, 4
createvisualtask sub_80DA09C, 5, 1, 70
createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, -25, 0, 0, 0, 20
createsprite gBattleAnimSpriteTemplate_83DA3B4, 2, 25, 0, 0, 0, 20
delay 24
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 9
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 9
delay 17
createsprite gBasicHitSplatSpriteTemplate, 2, 16, 0, 1, 1
createsprite gBasicHitSplatSpriteTemplate, 2, -16, 0, 1, 1
playsewithpan SE_W013, 63
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 11
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 11
waitforvisualfinish
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
@@ -7227,7 +7227,7 @@ Move_IRON_TAIL: @ 81D18B6
waitforvisualfinish
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 6
createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 2
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1
@@ -7247,7 +7247,7 @@ Move_POISON_TAIL: @ 81D1914
waitforvisualfinish
monbg ANIM_BANK_TARGET
setalpha 12, 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 4
delay 6
createsprite gBasicHitSplatSpriteTemplate, 130, 0, 0, 1, 2
createvisualtask AnimTask_ShakeMon, 2, ANIM_BANK_TARGET, 3, 0, 6, 1
@@ -7265,14 +7265,14 @@ Move_METAL_CLAW: @ 81D197A
loopsewithpan SE_W231, 192, 28, 2
createvisualtask sub_80E0A4C, 5, 0, 0, 0
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 2
playsewithpan SE_W013, 63
createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, -10, 0
createsprite gBattleAnimSpriteTemplate_83DB288, 130, -10, 10, 0
createsprite gBattleAnimSpriteTemplate_83DB428, 2, -4, 1, 10, 3, 1
delay 8
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 2
playsewithpan SE_W013, 63
createsprite gBattleAnimSpriteTemplate_83DB288, 130, 10, -10, 1
@@ -7379,9 +7379,9 @@ _81D1BCF:
createvisualtask sub_80E2A38, 10, 2, 2, 0, 11, 31
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 1, 0, 32, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 24, 0, 0, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 24, 0, 0, 4
waitforvisualfinish
- createvisualtask sub_80A8154, 2, 0, 2, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_ATTACKER, 2, 0, 12, 1
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 16, 1
playsewithpan SE_W004, 63
createsprite gBasicHitSplatSpriteTemplate, 1, 18, -8, 1, 1
@@ -7393,7 +7393,7 @@ _81D1BCF:
createsprite gBasicHitSplatSpriteTemplate, 1, -8, -5, 1, 1
waitforvisualfinish
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 7
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 7
waitforvisualfinish
createvisualtask sub_80E2A38, 10, 2, 2, 11, 0, 31
waitforvisualfinish
@@ -7780,13 +7780,13 @@ Move_LOVELY_KISS: @ 81D24AF
Move_FURY_SWIPES: @ 81D24F6
loadspritegfx 10222
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 5, 5
+ createsprite gHorizontalLungeSpriteTemplate, 2, 5, 5
delay 4
playsewithpan SE_W010, 63
createsprite gBattleAnimSpriteTemplate_83D7C48, 130, 16, 0, 1
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 3, 0, 5, 1
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 130, 5, 5
+ createsprite gHorizontalLungeSpriteTemplate, 130, 5, 5
delay 4
playsewithpan SE_W010, 63
createsprite gBattleAnimSpriteTemplate_83D7C48, 130, -16, 0, 0
@@ -8035,7 +8035,7 @@ Move_WILL_O_WISP: @ 81D2B83
loadspritegfx 10232
loadspritegfx 10231
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
playsewithpan SE_W052, 192
waitplaysewithpan SE_W052, 192, 10
createvisualtask sub_812B374, 2, -64, -64, 1, 0
@@ -8376,9 +8376,9 @@ Move_FLATTER: @ 81D332C
waitforvisualfinish
createsprite gBattleAnimSpriteTemplate_8402720, 130, 0, -8, 80
delay 0
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 5, 2, 1
+ createsprite gVerticalDipSpriteTemplate, 2, 5, 2, ANIM_BANK_TARGET
delay 10
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 5, 2, 1
+ createsprite gVerticalDipSpriteTemplate, 2, 5, 2, ANIM_BANK_TARGET
delay 0
createvisualtask sub_812B30C, 5, 229, -64
call _81D3415
@@ -8532,7 +8532,7 @@ Move_ARM_THRUST: @ 81D36CF
setalpha 12, 8
createvisualtask sub_80A8E04, 5, 8, 5, 0, 0
delay 6
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 3
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 3
delay 4
playsewithpan SE_W207, 63
createsprite gBattleAnimSpriteTemplate_83DA144, 130, 10, -8, 14, 3
@@ -8591,7 +8591,7 @@ Move_DRAGON_CLAW: @ 81D380C
createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 15, 1
call _81D39E9
call _81D39E9
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
createsprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 528, 30, 13, 50, 0
delay 2
createvisualtask sub_812B30C, 5, 136, 63
@@ -8604,7 +8604,7 @@ Move_DRAGON_CLAW: @ 81D380C
delay 2
createsprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 31, 400, 25, 11, -42, 0
delay 2
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
createsprite gBattleAnimSpriteTemplate_83DACD0, 2, 0, 28, 512, 25, 16, 46, 0
delay 2
createvisualtask sub_812B30C, 5, 136, 63
@@ -8713,7 +8713,7 @@ Move_REVENGE: @ 81D3B99
waitforvisualfinish
unloadspritegfx 10245
loadspritegfx 10246
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 6, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 6, 4
delay 4
playsewithpan SE_W207, 63
createsprite gBattleAnimSpriteTemplate_83DA1E0, 130, 10, -10
@@ -8812,7 +8812,7 @@ Move_FRENZY_PLANT: @ 81D3C7B
Move_METAL_SOUND: @ 81D3E1F
loadspritegfx 10260
monbg ANIM_BANK_DEF_PARTNER
- monbgprio_2A 1
+ monbgprio_2A ANIM_BANK_TARGET
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_ATTACKER, 2, 0, 8, 1
call _81D3E52
call _81D3E52
@@ -8893,39 +8893,39 @@ _81D3F67:
blendoff
end
_81D3F6C:
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 16, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 16, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
delay 5
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2
createvisualtask sub_812B30C, 5, 139, 63
goto _81D3F67
_81D3FBE:
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
delay 11
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 5, 4
+ createsprite gHorizontalLungeSpriteTemplate, 2, 5, 4
delay 6
createsprite gBasicHitSplatSpriteTemplate, 3, 0, 0, 1, 2
createvisualtask sub_812B30C, 5, 141, 63
goto _81D3F67
_81D401E:
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 6, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 6, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
waitforvisualfinish
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2
@@ -8947,13 +8947,13 @@ _81D401E:
_81D4139:
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 0, 6, 0
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 16, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 16, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
delay 8
createsprite gBasicHitSplatSpriteTemplate, 2, 3, -5, 1, 2
createvisualtask sub_812B30C, 5, 123, 63
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 12, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 12, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
delay 5
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2
@@ -8961,7 +8961,7 @@ _81D4139:
createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1
waitforvisualfinish
delay 4
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 8, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 8, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
delay 5
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2
@@ -8970,14 +8970,14 @@ _81D4139:
waitforvisualfinish
delay 2
createvisualtask sub_80E2DD8, 2, 0, 4, 5, 1
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 4, 1, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2
createvisualtask sub_812B30C, 5, 123, 63
createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1
createvisualtask sub_80E2DD8, 2, 0, 4, 5, 1
waitforvisualfinish
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 2, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 4, 2, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
delay 5
createsprite gBasicHitSplatSpriteTemplate, 2, -10, -8, 1, 2
@@ -9005,7 +9005,7 @@ _81D4139:
createsprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 0, 6, 0, 0
goto _81D3F67
_81D4371:
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 4, 3, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 4, 3, ANIM_BANK_ATTACKER
createvisualtask sub_812B340, 5, 167, -64
createsprite gBasicHitSplatSpriteTemplate, 2, 0, 0, 1, 2
createvisualtask sub_812B30C, 5, 123, 63
@@ -9226,7 +9226,7 @@ _81D4A48:
Move_ROCK_BLAST: @ 81D4A5F
loadspritegfx 10058
loadspritegfx 10135
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6
delay 3
playsewithpan SE_W207, 192
createsprite gBattleAnimSpriteTemplate_83DADE8, 130, 16, 0, 0, 0, 25, 257
@@ -9363,7 +9363,7 @@ _81D4EA8:
Move_ASTONISH: @ 81D4F10
loadspritegfx 10273
playsewithpan SE_W227, 192
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6
delay 25
createsprite gBattleAnimSpriteTemplate_83DA62C, 133, 0, 1
playsewithpan SE_W166, 63
@@ -9511,7 +9511,7 @@ Move_PSYCHO_BOOST: @ 81D51C7
Move_KNOCK_OFF: @ 81D523B
loadspritegfx 10277
loadspritegfx 10135
- createsprite gBattleAnimSpriteTemplate_83C1FB0, 2, 4, 6
+ createsprite gHorizontalLungeSpriteTemplate, 2, 4, 6
delay 4
playsewithpan SE_W233, 63
createsprite gBattleAnimSpriteTemplate_8402AE4, 130, -16, -16
@@ -9519,12 +9519,12 @@ Move_KNOCK_OFF: @ 81D523B
createsprite gBattleAnimSpriteTemplate_83DB3DC, 2, 31, 5, 1, 32767, 10, 0, 0
createsprite gBasicHitSplatSpriteTemplate, 131, 0, 0, 1, 2
playsewithpan SE_W004, 63
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -12, 10, 0, 3
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 5
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -12, 10, 0, 3
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 5
delay 3
- createvisualtask sub_80A8154, 2, 1, 0, 3, 6, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 0, 3, 6, 1
delay 5
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6
delay 10
waitforvisualfinish
end
@@ -9561,7 +9561,7 @@ Unknown_81D532F: @ 81D532F
delay 10
playsewithpan SE_W109, 63
delay 23
- createvisualtask sub_80A8154, 2, 1, 10, 0, 20, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 20, 1
playsewithpan SE_W120, 63
createsprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1
delay 6
@@ -9592,7 +9592,7 @@ Move_SKY_UPPERCUT: @ 81D53ED
waitbgfadein
setalpha 12, 8
delay 38
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 0, 28, 0, 0, 5
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 0, 28, 0, 0, 5
delay 4
createvisualtask AnimTask_ShakeMon2, 2, ANIM_BANK_TARGET, 4, 0, 6, 1
playsewithpan SE_W233B, 63
@@ -9610,13 +9610,13 @@ Move_SKY_UPPERCUT: @ 81D53ED
delay 1
playsewithpan SE_W233B, 63
createsprite gBasicHitSplatSpriteTemplate, 131, 5, -52, 1, 1
- createsprite gBattleAnimSpriteTemplate_83C1FF8, 2, 1, -26, 16, 1, 4
+ createsprite gSlideMonToOffsetSpriteTemplate, 2, 1, -26, 16, 1, 4
delay 4
- createvisualtask sub_80A8154, 2, 1, 0, 3, 6, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 0, 3, 6, 1
delay 30
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 0, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 0, 0, 6
delay 4
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 2, 1, 0, 6
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 2, 1, 0, 6
clearmonbg ANIM_BANK_DEF_PARTNER
blendoff
restorebg
@@ -9668,8 +9668,8 @@ Move_TWISTER: @ 81D553A
waitforvisualfinish
createsprite gBasicHitSplatSpriteTemplate, 131, -32, -16, 1, 3
playsewithpan SE_W004, 63
- createvisualtask sub_80A8154, 2, 1, 3, 0, 12, 1
- createvisualtask sub_80A8154, 2, 3, 3, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 3, 0, 12, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_DEF_PARTNER, 3, 0, 12, 1
delay 4
createsprite gBattleAnimSpriteTemplate_83DB4F0, 131, 1, 3
playsewithpan SE_W004, 63
@@ -9820,7 +9820,7 @@ _81D597D:
Move_WEATHER_BALL: @ 81D5989
loadspritegfx 10283
- createsprite gBattleAnimSpriteTemplate_83C1FC8, 2, 8, 1, 0
+ createsprite gVerticalDipSpriteTemplate, 2, 8, 1, ANIM_BANK_ATTACKER
delay 8
playsewithpan SE_W207, 192
createsprite gBattleAnimSpriteTemplate_83930A8, 2
@@ -10491,7 +10491,7 @@ General_HangedOn: @ 81D676E
createsprite gBattleAnimSpriteTemplate_83DB3C4, 0, 2, 4, 9, 0, 31
waitforvisualfinish
delay 6
- createsprite gBattleAnimSpriteTemplate_83C1FE0, 0, 0, 0, 15
+ createsprite gSlideMonToOriginalPosSpriteTemplate, 0, 0, 0, 15
end
General_Rain: @ 81D67BB
@@ -10598,7 +10598,7 @@ General_DoomDesireHit: @ 81D6934
delay 9
playsewithpan SE_W109, 63
delay 25
- createvisualtask sub_80A8154, 2, 1, 10, 0, 20, 1
+ createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_BANK_TARGET, 10, 0, 20, 1
playsewithpan SE_W120, 63
createsprite gBattleAnimSpriteTemplate_83D7828, 3, 0, 0, 1, 1
delay 6
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index 97e001635..ed42871a6 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -16,8 +16,8 @@ u8 GetAnimBankSpriteId(u8 side);
void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *));
void sub_8078314(struct Sprite *sprite);
void sub_8078364(struct Sprite *sprite);
-void sub_8078458(struct Sprite *sprite);
-void sub_80784A8(struct Sprite *sprite);
+void TranslateMonBGUntil(struct Sprite *sprite);
+void TranslateMonBGSubPixelUntil(struct Sprite *sprite);
u8 GetBankSide(u8);
u8 GetBankSide(u8);
u8 GetBankSide(u8 side);
@@ -34,11 +34,10 @@ u8 IsDoubleBattle(void);
bool8 IsDoubleBattle(void);
void sub_8078914();
u8 sub_80789BC();
-void sub_8078A5C(struct Sprite *sprite);
-void sub_8078A5C(struct Sprite *sprite);
+void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void InitAnimSpriteTranslationDeltas(struct Sprite *sprite);
bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite);
-void sub_8078BB8(struct Sprite *sprite);
+void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite);
void sub_8078D44(struct Sprite *sprite);
void obj_id_set_rotscale(u8 sprite, s16, s16, u16);
bool8 sub_8078E38();
@@ -67,7 +66,7 @@ void sub_807A960(struct Sprite *sprite);
void sub_8078A34(struct Sprite *sprite);
void InitAnimSpritePos(struct Sprite *sprite, u8);
void sub_8078764(struct Sprite *sprite, u8);
-void sub_8078B34(struct Sprite *sprite);
+void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite);
void sub_8078D60(struct Sprite *sprite);
void sub_80786EC(struct Sprite *sprite);
void sub_80782D8(struct Sprite *sprite);
@@ -103,7 +102,7 @@ bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite);
bool8 sub_8078CE8(struct Sprite *sprite);
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
void sub_8078BD4(struct Sprite *sprite);
-void sub_807941C(struct Sprite *sprite);
+void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
void sub_80789D4(bool8 a1);
void sub_8079AB8(u8 sprite, u8 sprite2);
u8 sub_807A4A0(int bank, u8 sprite, int species);
diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c
index b2726d8dd..e12f55a8b 100644
--- a/src/battle/anim/bug.c
+++ b/src/battle/anim/bug.c
@@ -40,7 +40,7 @@ void sub_80DC824(struct Sprite *sprite)
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
@@ -65,7 +65,7 @@ void sub_80DC8F4(struct Sprite *sprite)
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
@@ -224,7 +224,7 @@ void sub_80DCBCC(struct Sprite *sprite)
sprite->data[2] = lVarX;
sprite->data[4] = lVarY;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/bullet.c b/src/battle/anim/bullet.c
index 8fc581d47..1dca0b886 100644
--- a/src/battle/anim/bullet.c
+++ b/src/battle/anim/bullet.c
@@ -21,7 +21,7 @@ void sub_80CFFD8(struct Sprite* sprite)
sprite->data[0] = 20;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
sprite->affineAnimPaused = 1;
StoreSpriteCallbackInData(sprite, sub_80D0030);
}
diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c
index 83a375495..aaf8507c6 100644
--- a/src/battle/anim/dark.c
+++ b/src/battle/anim/dark.c
@@ -128,7 +128,7 @@ void sub_80DFE14(struct Sprite *sprite)
sprite->data[3] = GetBankPosition(gAnimBankTarget, 3);
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3);
sprite->data[0] = 0x7E;
- sub_8078A5C(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = -sprite->data[1];
sprite->data[4] = -sprite->data[2];
sprite->data[6] = 0xFFD8;
diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c
index 4f25cf1a5..dc2c0bc50 100644
--- a/src/battle/anim/dragon.c
+++ b/src/battle/anim/dragon.c
@@ -68,7 +68,7 @@ void sub_80DF63C(struct Sprite *sprite)
StartSpriteAnim(sprite, 1);
}
sprite->data[0] = gBattleAnimArgs[4];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
}
diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c
index acab7bf80..8111f70a3 100644
--- a/src/battle/anim/energy_wave.c
+++ b/src/battle/anim/energy_wave.c
@@ -157,6 +157,6 @@ void sub_80D3728(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, var2) + gBattleAnimArgs[3];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c
index f589622bd..a7c25de49 100644
--- a/src/battle/anim/fight.c
+++ b/src/battle/anim/fight.c
@@ -166,7 +166,7 @@ void sub_80D92D0(struct Sprite *sprite)
}
sprite->data[4] = sprite->pos1.y - 20;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, sub_80D9328);
}
@@ -182,7 +182,7 @@ static void sub_80D9328(struct Sprite *sprite)
sprite->pos2.y = 0;
sprite->pos2.x = 0;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
}
@@ -261,7 +261,7 @@ static void sub_80D94CC(struct Sprite *sprite)
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, sub_80D9524);
}
}
@@ -437,7 +437,7 @@ static void sub_80D986C(struct Sprite *sprite)
InitAnimSpriteTranslationDeltas(sprite);
StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
- sprite->callback = sub_8078BB8;
+ sprite->callback = TranslateAnimSpriteByDeltasUntil;
}
}
@@ -532,7 +532,7 @@ void sub_80D9A38(struct Sprite *sprite)
InitAnimSpriteTranslationDeltas(sprite);
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
- sprite->callback = sub_8078BB8;
+ sprite->callback = TranslateAnimSpriteByDeltasUntil;
}
static void sub_80D9B24(struct Sprite *sprite)
diff --git a/src/battle/anim/grip.c b/src/battle/anim/grip.c
index c4d7b1cef..dbf7a1562 100644
--- a/src/battle/anim/grip.c
+++ b/src/battle/anim/grip.c
@@ -33,7 +33,7 @@ void sub_80D0178(struct Sprite* sprite)
sprite->data[0] = 6;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r8;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + r6;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, sub_80D020C);
}
diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c
index 9dcfa9f5d..211e0e841 100644
--- a/src/battle/anim/guard.c
+++ b/src/battle/anim/guard.c
@@ -30,6 +30,6 @@ void sub_80D3014(struct Sprite *sprite)
sprite->data[2] = sprite->pos1.x;
sprite->data[4] = sprite->pos1.y - 72;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/lunge_1.c b/src/battle/anim/lunge_1.c
index a2adfba13..a3b5f19c5 100644
--- a/src/battle/anim/lunge_1.c
+++ b/src/battle/anim/lunge_1.c
@@ -48,7 +48,7 @@ void sub_80CD7CC(struct Sprite* sprite)
sprite->data[2] = 0;
sprite->data[3] = gBankSpriteIds[gAnimBankAttacker];
StoreSpriteCallbackInData(sprite, sub_80CD81C);
- sprite->callback = sub_8078458;
+ sprite->callback = TranslateMonBGUntil;
}
void sub_80CD81C(struct Sprite* sprite)
@@ -78,7 +78,7 @@ void sub_80CD8A8(struct Sprite* sprite)
sprite->data[2] = 0;
sprite->data[3] = gBankSpriteIds[gAnimBankAttacker];
StoreSpriteCallbackInData(sprite, sub_80CD9B8);
- sprite->callback = sub_8078458;
+ sprite->callback = TranslateMonBGUntil;
}
void sub_80CD8F8(struct Sprite* sprite)
diff --git a/src/battle/anim/note_rain.c b/src/battle/anim/note_rain.c
index 552329a57..44817b0a0 100644
--- a/src/battle/anim/note_rain.c
+++ b/src/battle/anim/note_rain.c
@@ -31,7 +31,7 @@ void sub_80D1C08(struct Sprite* sprite)
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[3];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
sub_80D1BA8(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]);
}
diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c
index eede55695..b965cacb8 100644
--- a/src/battle/anim/orbs.c
+++ b/src/battle/anim/orbs.c
@@ -23,7 +23,7 @@ void sub_80CA7B0(struct Sprite* sprite)
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2);
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3);
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
}
@@ -34,7 +34,7 @@ void sub_80CA800(struct Sprite* sprite)
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c
index 656e923bc..272d99e84 100644
--- a/src/battle/anim/poison.c
+++ b/src/battle/anim/poison.c
@@ -71,7 +71,7 @@ void sub_80D9E94(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[1];
- sub_8078A5C(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[5] = sprite->data[1] / gBattleAnimArgs[2];
sprite->data[6] = sprite->data[2] / gBattleAnimArgs[2];
@@ -104,7 +104,7 @@ void sub_80D9F14(struct Sprite *sprite)
sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
sprite->data[4] = sprite->pos1.y + sprite->data[0];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c
index 2df7e6642..1d1772b1b 100644
--- a/src/battle/anim/rock.c
+++ b/src/battle/anim/rock.c
@@ -91,7 +91,7 @@ void sub_80DCF60(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3];
- sub_8078A5C(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = 0;
sprite->data[4] = 0;
@@ -281,7 +281,7 @@ void sub_80DD490(struct Sprite *sprite)
sprite->data[2] = sprite->pos1.x;
sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[2];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
@@ -517,7 +517,7 @@ void sub_80DD978(struct Sprite *sprite)
if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT)
StartSpriteAffineAnim(sprite, 1);
- sub_807941C(sprite);
+ TranslateAnimSpriteToTargetMonLocation(sprite);
}
void sub_80DD9A4(struct Sprite *sprite)
diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c
index 22bb26973..e6b85dd5f 100644
--- a/src/battle/anim/scan.c
+++ b/src/battle/anim/scan.c
@@ -47,7 +47,7 @@ void sub_80CD408(struct Sprite* sprite)
sprite->data[0] = 8;
sprite->data[2] = sprite->pos1.x + gUnknown_083D6DDC[sprite->data[5] >> 8][0];
sprite->data[4] = sprite->pos1.y + gUnknown_083D6DDC[sprite->data[5] >> 8][1];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, sub_80CD4B8);
sprite->data[5] += 0x100;
PlaySE12WithPanning(0xD2, BattleAnimAdjustPanning(0x3F));
@@ -112,7 +112,7 @@ void sub_80CD4EC(struct Sprite* sprite)
sprite->data[0] = 6;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + a;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + b;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, sub_80CD654);
}
}
diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c
index 280943a67..2808c86c2 100644
--- a/src/battle/anim/sonic.c
+++ b/src/battle/anim/sonic.c
@@ -41,7 +41,7 @@ void sub_80CF6DC(struct Sprite* sprite)
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = a;
sprite->data[4] = b;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/sunlight.c b/src/battle/anim/sunlight.c
index e6fd49a11..88112c74a 100644
--- a/src/battle/anim/sunlight.c
+++ b/src/battle/anim/sunlight.c
@@ -12,6 +12,6 @@ void sub_80D517C(struct Sprite *sprite)
sprite->data[0] = 60;
sprite->data[2] = 140;
sprite->data[4] = 80;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/sword.c b/src/battle/anim/sword.c
index ca74980ea..3367cca07 100644
--- a/src/battle/anim/sword.c
+++ b/src/battle/anim/sword.c
@@ -25,6 +25,6 @@ void sub_80CF6B4(struct Sprite* sprite)
sprite->data[0] = 6;
sprite->data[2] = sprite->pos1.x;
sprite->data[4] = sprite->pos1.y - 32;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/anim/tile_out.c b/src/battle/anim/tile_out.c
index 50468a440..39d4ff01f 100644
--- a/src/battle/anim/tile_out.c
+++ b/src/battle/anim/tile_out.c
@@ -37,7 +37,7 @@ void sub_80CE1AC(struct Sprite* sprite)
sprite->data[0] = 30;
sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2);
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3);
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
}
diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c
index 0a06d3ac8..b5e150dd8 100644
--- a/src/battle/anim/unused_8.c
+++ b/src/battle/anim/unused_8.c
@@ -28,7 +28,7 @@ void sub_80CF490(struct Sprite* sprite)
sprite->data[0] = sprite->data[1];
sprite->data[2] = sprite->pos1.x;
sprite->data[4] = sprite->pos1.y + 15;
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, sub_80CF4B8);
}
diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c
index d1ed05747..e6945f9b2 100644
--- a/src/battle/anim/water.c
+++ b/src/battle/anim/water.c
@@ -18,7 +18,7 @@ void sub_80D37FC(struct Sprite *sprite)
sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index aadeb71b0..73e606b79 100644
--- a/src/battle/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "battle.h"
#include "battle_anim.h"
#include "rom_8077ABC.h"
#include "sprite.h"
@@ -17,16 +18,16 @@ extern u8 gAnimBankTarget;
static void AnimTask_ShakeMonStep(u8 taskId);
static void AnimTask_ShakeMon2Step(u8 taskId);
-static void sub_80A81D8(u8 taskId);
-static void sub_80A8374(u8 taskId);
+static void AnimTask_ShakeMonInPlaceStep(u8 taskId);
+static void AnimTask_ShakeAndSinkMonStep(u8 taskId);
static void sub_80A8488(u8 taskId);
-static void sub_80A8530(struct Sprite *sprite);
-static void sub_80A85A4(struct Sprite *sprite);
-static void sub_80A85C8(struct Sprite *sprite);
-static void sub_80A8614(struct Sprite* sprite);
-static void sub_80A8638(struct Sprite *sprite);
-static void sub_80A86F4(struct Sprite *sprite);
-static void sub_80A8764(struct Sprite *sprite);
+static void DoHorizontalLunge(struct Sprite *sprite);
+static void ReverseHorizontalLungeDirection(struct Sprite *sprite);
+static void DoVerticalDip(struct Sprite *sprite);
+static void ReverseVerticalDipDirection(struct Sprite* sprite);
+static void SlideMonToOriginalPos(struct Sprite *sprite);
+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);
@@ -36,7 +37,7 @@ static void sub_80A8D8C(u8 taskId);
static void sub_80A8FD8(u8 taskId);
static void sub_80A913C(u8 taskId);
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FB0 =
+const struct SpriteTemplate gHorizontalLungeSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -44,10 +45,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FB0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8530,
+ .callback = DoHorizontalLunge,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FC8 =
+const struct SpriteTemplate gVerticalDipSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -55,10 +56,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FC8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A85C8,
+ .callback = DoVerticalDip,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FE0 =
+const struct SpriteTemplate gSlideMonToOriginalPosSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -66,10 +67,10 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FE0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8638,
+ .callback = SlideMonToOriginalPos,
};
-const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FF8 =
+const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -77,7 +78,7 @@ const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FF8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80A8764,
+ .callback = SlideMonToOffset,
};
const struct SpriteTemplate gBattleAnimSpriteTemplate_83C2010 =
@@ -252,29 +253,37 @@ static void AnimTask_ShakeMon2Step(u8 taskId)
}
}
-void sub_80A8154(u8 taskId)
+// Task to facilitate simple shaking of a pokemon's picture in battle.
+// The shaking alternates between the positive and negative versions of the specified pixel offsets
+// with respect to the current location of the mon's picture.
+// arg 0: battler
+// arg 1: x offset
+// arg 2: y offset
+// arg 3: num shakes
+// arg 4: delay
+void AnimTask_ShakeMonInPlace(u8 taskId)
{
- u8 sprite;
- sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
- if (sprite == 0xff)
+ u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
+ if (spriteId == 0xff)
{
DestroyAnimVisualTask(taskId);
return;
}
- gSprites[sprite].pos2.x += gBattleAnimArgs[1];
- gSprites[sprite].pos2.y += gBattleAnimArgs[2];
- TASK.data[0] = sprite;
+
+ gSprites[spriteId].pos2.x += gBattleAnimArgs[1];
+ gSprites[spriteId].pos2.y += gBattleAnimArgs[2];
+ TASK.data[0] = spriteId;
TASK.data[1] = 0;
TASK.data[2] = gBattleAnimArgs[3];
TASK.data[3] = 0;
TASK.data[4] = gBattleAnimArgs[4];
TASK.data[5] = gBattleAnimArgs[1] * 2;
TASK.data[6] = gBattleAnimArgs[2] * 2;
- TASK.func = sub_80A81D8;
- sub_80A81D8(taskId);
+ TASK.func = AnimTask_ShakeMonInPlaceStep;
+ TASK.func(taskId);
}
-static void sub_80A81D8(u8 taskId)
+static void AnimTask_ShakeMonInPlaceStep(u8 taskId)
{
if (TASK.data[3] == 0)
{
@@ -311,7 +320,13 @@ static void sub_80A81D8(u8 taskId)
}
}
-void sub_80A8314(u8 taskId)
+// Shakes a mon bg horizontally and moves it downward linearly.
+// arg 0: battler
+// arg 1: x offset
+// arg 2: frame delay between each movement
+// arg 3: downward speed (subpixel)
+// arg 4: duration
+void AnimTask_ShakeAndSinkMon(u8 taskId)
{
u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
gSprites[sprite].pos2.x = gBattleAnimArgs[1];
@@ -320,11 +335,11 @@ void sub_80A8314(u8 taskId)
TASK.data[2] = gBattleAnimArgs[2];
TASK.data[3] = gBattleAnimArgs[3];
TASK.data[4] = gBattleAnimArgs[4];
- TASK.func = sub_80A8374;
- sub_80A8374(taskId);
+ TASK.func = AnimTask_ShakeAndSinkMonStep;
+ TASK.func(taskId);
}
-static void sub_80A8374(u8 taskId)
+static void AnimTask_ShakeAndSinkMonStep(u8 taskId)
{
s16 x;
u8 sprite;
@@ -334,11 +349,11 @@ static void sub_80A8374(u8 taskId)
{
TASK.data[8] = 0;
if (gSprites[sprite].pos2.x == x)
- {
x = -x;
- }
+
gSprites[sprite].pos2.x += x;
}
+
TASK.data[1] = x;
TASK.data[9] += TASK.data[3];
gSprites[sprite].pos2.y = TASK.data[9] >> 8;
@@ -349,89 +364,109 @@ static void sub_80A8374(u8 taskId)
}
}
-void sub_80A8408(u8 taskId)
+// Moves a mon bg picture along an elliptical path that begins
+// and ends at the mon's origin location.
+// arg 0: battler
+// arg 1: ellipse width
+// arg 2: ellipse height
+// arg 3: num loops
+// arg 4: speed (valid values are 0-5)
+void AnimTask_TranslateMonElliptical(u8 taskId)
{
u8 i;
- u8 sprite;
- u8 v1;
- v1 = 1;
- sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
+ u8 spriteId;
+ u8 wavePeriod;
+
+ wavePeriod = 1;
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (gBattleAnimArgs[4] > 5)
- {
gBattleAnimArgs[4] = 5;
- }
+
for (i = 0; i < gBattleAnimArgs[4]; i++)
{
- v1 <<= 1;
+ wavePeriod <<= 1;
}
- TASK.data[0] = sprite;
+
+ TASK.data[0] = spriteId;
TASK.data[1] = gBattleAnimArgs[1];
TASK.data[2] = gBattleAnimArgs[2];
TASK.data[3] = gBattleAnimArgs[3];
- TASK.data[4] = v1;
+ TASK.data[4] = wavePeriod;
TASK.func = sub_80A8488;
- sub_80A8488(taskId);
+ TASK.func(taskId);
}
static void sub_80A8488(u8 taskId)
{
- u8 sprite;
- sprite = TASK.data[0];
- gSprites[sprite].pos2.x = Sin(TASK.data[5], TASK.data[1]);
- gSprites[sprite].pos2.y = -Cos(TASK.data[5], TASK.data[2]);
- gSprites[sprite].pos2.y += TASK.data[2];
+ u8 spriteId = TASK.data[0];
+ gSprites[spriteId].pos2.x = Sin(TASK.data[5], TASK.data[1]);
+ gSprites[spriteId].pos2.y = -Cos(TASK.data[5], TASK.data[2]);
+ gSprites[spriteId].pos2.y += TASK.data[2];
TASK.data[5] += TASK.data[4];
TASK.data[5] &= 0xff;
+
if (TASK.data[5] == 0)
- {
TASK.data[3]--;
- }
+
if (TASK.data[3] == 0)
{
- gSprites[sprite].pos2.x = 0;
- gSprites[sprite].pos2.y = 0;
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
DestroyAnimVisualTask(taskId);
return;
}
}
-void sub_80A8500(u8 taskId)
+// Moves a mon bg picture along an elliptical path that begins
+// and ends at the mon's origin location. Reverses the direction
+// of the path if it's not on the player's side of the battle.
+// arg 0: battler
+// arg 1: ellipse width
+// arg 2: ellipse height
+// arg 3: num loops
+// arg 4: speed (valid values are 0-5)
+void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId)
{
- if (GetBankSide(gAnimBankAttacker))
- {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
- }
- sub_80A8408(taskId);
+
+ AnimTask_TranslateMonElliptical(taskId);
}
-static void sub_80A8530(struct Sprite *sprite)
+// Performs a simple horizontal lunge, where the mon moves
+// horizontally, and then moves back in the opposite direction.
+// arg 0: duration of single lunge direction
+// arg 1: x pixel delta that is applied each frame
+static void DoHorizontalLunge(struct Sprite *sprite)
{
sprite->invisible = TRUE;
- if (GetBankSide(gAnimBankAttacker))
- {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
sprite->data[1] = -gBattleAnimArgs[1];
- }
else
- {
sprite->data[1] = gBattleAnimArgs[1];
- }
+
sprite->data[0] = gBattleAnimArgs[0];
sprite->data[2] = 0;
sprite->data[3] = gBankSpriteIds[gAnimBankAttacker];
sprite->data[4] = gBattleAnimArgs[0];
- StoreSpriteCallbackInData(sprite, sub_80A85A4);
- sprite->callback = sub_8078458;
+ StoreSpriteCallbackInData(sprite, ReverseHorizontalLungeDirection);
+ sprite->callback = TranslateMonBGUntil;
}
-static void sub_80A85A4(struct Sprite *sprite)
+static void ReverseHorizontalLungeDirection(struct Sprite *sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[1] = -sprite->data[1];
- sprite->callback = sub_8078458;
+ sprite->callback = TranslateMonBGUntil;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-static void sub_80A85C8(struct Sprite *sprite)
+// Performs a simple vertical dipping motion, where moves vertically, and then
+// moves back in the opposite direction.
+// arg 0: duration of single dip direction
+// arg 1: y pixel delta that is applied each frame
+// arg 2: battler
+static void DoVerticalDip(struct Sprite *sprite)
{
u8 spriteId;
sprite->invisible = TRUE;
@@ -441,73 +476,72 @@ static void sub_80A85C8(struct Sprite *sprite)
sprite->data[2] = gBattleAnimArgs[1];
sprite->data[3] = spriteId;
sprite->data[4] = gBattleAnimArgs[0];
- StoreSpriteCallbackInData(sprite, sub_80A8614);
- sprite->callback = sub_8078458;
+ StoreSpriteCallbackInData(sprite, ReverseVerticalDipDirection);
+ sprite->callback = TranslateMonBGUntil;
}
-static void sub_80A8614(struct Sprite *sprite)
+static void ReverseVerticalDipDirection(struct Sprite *sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[2] = -sprite->data[2];
- sprite->callback = sub_8078458;
+ sprite->callback = TranslateMonBGUntil;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-static void sub_80A8638(struct Sprite *sprite)
+// Linearly slides a mon's bg picture back to its original sprite position.
+// The sprite parameter is a dummy sprite used for facilitating the movement with its callback.
+// arg 0: 1 = target or 0 = attacker
+// arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only)
+// arg 2: duration
+static void SlideMonToOriginalPos(struct Sprite *sprite)
{
int something;
- int spriteId;
+ int monSpriteId;
if (!gBattleAnimArgs[0])
- {
- spriteId = gBankSpriteIds[gAnimBankAttacker];
- }
+ monSpriteId = gBankSpriteIds[gAnimBankAttacker];
else
- {
- spriteId = gBankSpriteIds[gAnimBankTarget];
- }
+ monSpriteId = gBankSpriteIds[gAnimBankTarget];
+
sprite->data[0] = gBattleAnimArgs[2];
- sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
- sprite->data[2] = gSprites[spriteId].pos1.x;
- sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
- sprite->data[4] = gSprites[spriteId].pos1.y;
+ sprite->data[1] = gSprites[monSpriteId].pos1.x + gSprites[monSpriteId].pos2.x;
+ sprite->data[2] = gSprites[monSpriteId].pos1.x;
+ sprite->data[3] = gSprites[monSpriteId].pos1.y + gSprites[monSpriteId].pos2.y;
+ sprite->data[4] = gSprites[monSpriteId].pos1.y;
something = 0;
- sub_8078A5C(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = something;
sprite->data[4] = something;
- sprite->data[5] = gSprites[spriteId].pos2.x;
- sprite->data[6] = gSprites[spriteId].pos2.y;
+ sprite->data[5] = gSprites[monSpriteId].pos2.x;
+ sprite->data[6] = gSprites[monSpriteId].pos2.y;
sprite->invisible = TRUE;
+
if (gBattleAnimArgs[1] == 1)
- {
sprite->data[2] = something;
- }
else if (gBattleAnimArgs[1] == 2)
- {
sprite->data[1] = something;
- }
+
sprite->data[7] = gBattleAnimArgs[1];
- sprite->data[7] |= spriteId << 8;
- sprite->callback = sub_80A86F4;
+ sprite->data[7] |= monSpriteId << 8;
+ sprite->callback = SlideMonToOriginalPosStep;
}
-static void sub_80A86F4(struct Sprite *sprite)
+static void SlideMonToOriginalPosStep(struct Sprite *sprite)
{
- s8 spriteId;
+ s8 monSpriteId;
u8 lo;
- struct Sprite *sprite2;
+ struct Sprite *monSprite;
+
lo = sprite->data[7] & 0xff;
- spriteId = sprite->data[7] >> 8;
- sprite2 = &gSprites[spriteId];
+ monSpriteId = sprite->data[7] >> 8;
+ monSprite = &gSprites[monSpriteId];
if (sprite->data[0] == 0)
{
if (lo < 2)
- {
- sprite2->pos2.x = 0;
- }
+ monSprite->pos2.x = 0;
+
if (lo == 2 || lo == 0)
- {
- sprite2->pos2.y = 0;
- }
+ monSprite->pos2.y = 0;
+
DestroyAnimSprite(sprite);
}
else
@@ -515,25 +549,30 @@ static void sub_80A86F4(struct Sprite *sprite)
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
- sprite2->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5];
- sprite2->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6];
+ monSprite->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5];
+ monSprite->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6];
}
}
-static void sub_80A8764(struct Sprite *sprite)
+// Linearly translates a mon to a target offset. The horizontal offset
+// is mirrored for the opponent's pokemon, and the vertical offset
+// is only mirrored if arg 3 is set to 1.
+// arg 0: 0 = attacker, 1 = target
+// arg 1: target x pixel offset
+// arg 2: target y pixel offset
+// arg 3: mirror vertical translation for opposite battle side
+// arg 4: duration
+static void SlideMonToOffset(struct Sprite *sprite)
{
- u8 v1;
- u8 spriteId;
+ u8 battler;
+ u8 monSpriteId;
if (!gBattleAnimArgs[0])
- {
- v1 = gAnimBankAttacker;
- }
+ battler = gAnimBankAttacker;
else
- {
- v1 = gAnimBankTarget;
- }
- spriteId = gBankSpriteIds[v1];
- if (GetBankSide(v1))
+ battler = gAnimBankTarget;
+
+ monSpriteId = gBankSpriteIds[battler];
+ if (GetBankSide(battler) != SIDE_PLAYER)
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
if (gBattleAnimArgs[3] == 1)
@@ -541,18 +580,19 @@ static void sub_80A8764(struct Sprite *sprite)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
}
+
sprite->data[0] = gBattleAnimArgs[4];
- sprite->data[1] = gSprites[spriteId].pos1.x;
- sprite->data[2] = gSprites[spriteId].pos1.x + gBattleAnimArgs[1];
- sprite->data[3] = gSprites[spriteId].pos1.y;
- sprite->data[4] = gSprites[spriteId].pos1.y + gBattleAnimArgs[2];
- sub_8078A5C(sprite);
+ sprite->data[1] = gSprites[monSpriteId].pos1.x;
+ sprite->data[2] = gSprites[monSpriteId].pos1.x + gBattleAnimArgs[1];
+ sprite->data[3] = gSprites[monSpriteId].pos1.y;
+ sprite->data[4] = gSprites[monSpriteId].pos1.y + gBattleAnimArgs[2];
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = 0;
sprite->data[4] = 0;
- sprite->data[5] = spriteId;
+ sprite->data[5] = monSpriteId;
sprite->invisible = TRUE;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
- sprite->callback = sub_80784A8;
+ sprite->callback = TranslateMonBGSubPixelUntil;
}
static void sub_80A8818(struct Sprite *sprite)
@@ -582,7 +622,7 @@ static void sub_80A8818(struct Sprite *sprite)
sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1];
sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2];
- sub_8078A5C(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = gSprites[spriteId].pos2.x << 8;
sprite->data[4] = gSprites[spriteId].pos2.y << 8;
sprite->data[5] = spriteId;
@@ -595,7 +635,7 @@ static void sub_80A8818(struct Sprite *sprite)
{
StoreSpriteCallbackInData(sprite, sub_80A88F0);
}
- sprite->callback = sub_80784A8;
+ sprite->callback = TranslateMonBGSubPixelUntil;
}
diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 604c21e6d..21ac62401 100644
--- a/src/battle/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -73,7 +73,7 @@ extern void sub_80313A0(struct Sprite *);
extern void sub_803757C(void);
extern void oamt_add_pos2_onto_pos1();
extern void StoreSpriteCallbackInData();
-extern void sub_8078B34(struct Sprite *);
+extern void StartTranslateAnimSpriteByDeltas(struct Sprite *);
extern void sub_80375B4(void);
extern void sub_8010384(struct Sprite *);
extern void sub_8037B78(void);
@@ -1282,7 +1282,7 @@ void LinkOpponentHandleTrainerSlideBack(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_80375B4;
}
@@ -1633,7 +1633,7 @@ void LinkOpponentHandleTrainerBallThrow(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_803A3A8);
taskId = CreateTask(sub_803A2C4, 5);
gTasks[taskId].data[0] = gActiveBank;
diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index e1f93ba08..1d42f56c3 100644
--- a/src/battle/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -76,7 +76,7 @@ extern u8 sub_8031720();
extern u8 mplay_80342A4();
extern void oamt_add_pos2_onto_pos1();
extern void StoreSpriteCallbackInData();
-extern void sub_8078B34(struct Sprite *);
+extern void StartTranslateAnimSpriteByDeltas(struct Sprite *);
extern void sub_80105EC(struct Sprite *);
extern s32 sub_803FC34(u16);
extern void LoadPlayerTrainerBankSprite();
@@ -1227,7 +1227,7 @@ void LinkPartnerHandleTrainerSlideBack(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_811DB1C;
}
@@ -1579,7 +1579,7 @@ void LinkPartnerHandleTrainerBallThrow(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 5fb642e0c..8e8743dbc 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -84,7 +84,7 @@ extern void sub_80313A0(struct Sprite *);
extern void sub_8032B4C(void);
extern void sub_8031A6C(u16, u8);
extern void sub_8032B84(void);
-extern void sub_8078B34(struct Sprite *);
+extern void StartTranslateAnimSpriteByDeltas(struct Sprite *);
extern void sub_8032BBC(void);
extern void oamt_add_pos2_onto_pos1();
extern void StoreSpriteCallbackInData();
@@ -1286,7 +1286,7 @@ void OpponentHandleTrainerSlideBack(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_8032BBC;
}
@@ -2225,7 +2225,7 @@ void OpponentHandleTrainerBallThrow(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8035C10);
taskId = CreateTask(sub_8035C44, 5);
gTasks[taskId].data[0] = gActiveBank;
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 33a29c064..e28c058a3 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -102,7 +102,7 @@ extern void sub_8047858();
extern u8 GetBankSide(u8);
extern void StartBattleIntroAnim();
extern void oamt_add_pos2_onto_pos1();
-extern void sub_8078B34(struct Sprite *);
+extern void StartTranslateAnimSpriteByDeltas(struct Sprite *);
extern void StoreSpriteCallbackInData();
extern void BattleLoadPlayerMonSprite();
extern bool8 IsDoubleBattle(void);
@@ -3145,7 +3145,7 @@ void PlayerHandleTrainerSlideBack(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
gBattleBankFunc[gActiveBank] = sub_802D274;
@@ -3600,7 +3600,7 @@ void PlayerHandleTrainerBallThrow(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index 3eacaa085..c590b487c 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -87,7 +87,7 @@ extern void sub_80304A8(void);
extern void sub_8047858();
extern void StartBattleIntroAnim();
extern void oamt_add_pos2_onto_pos1();
-extern void sub_8078B34(struct Sprite *);
+extern void StartTranslateAnimSpriteByDeltas(struct Sprite *);
extern void sub_8030E38(struct Sprite *);
extern void StoreSpriteCallbackInData();
extern u8 sub_8046400();
@@ -1484,7 +1484,7 @@ void WallyHandleTrainerBallThrow(void)
gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8078B34;
+ gSprites[gBankSpriteIds[gActiveBank]].callback = StartTranslateAnimSpriteByDeltas;
gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 9119c74ef..395736d03 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -636,7 +636,7 @@ void unref_sub_8078414(struct Sprite *sprite)
sprite->callback = sub_80782F8;
}
-void sub_8078458(struct Sprite *sprite)
+void TranslateMonBGUntil(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
@@ -650,7 +650,9 @@ void sub_8078458(struct Sprite *sprite)
}
}
-void sub_80784A8(struct Sprite *sprite)
+// Same as TranslateMonBGUntil, but it operates on sub-pixel values
+// to handle slower translations.
+void TranslateMonBGSubPixelUntil(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
@@ -938,12 +940,12 @@ void sub_8078A34(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
- sub_8078A5C(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->callback = sub_80783D0;
sprite->callback(sprite);
}
-void sub_8078A5C(struct Sprite *sprite)
+void InitSpriteDataForLinearTranslation(struct Sprite *sprite)
{
s16 x = (sprite->data[2] - sprite->data[1]) << 8;
s16 y = (sprite->data[4] - sprite->data[3]) << 8;
@@ -981,12 +983,12 @@ void InitAnimSpriteTranslationDeltas(struct Sprite *sprite)
sprite->data[3] = 0;
}
-void sub_8078B34(struct Sprite *sprite)
+void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
InitAnimSpriteTranslationDeltas(sprite);
- sprite->callback = sub_8078BB8;
+ sprite->callback = TranslateAnimSpriteByDeltasUntil;
sprite->callback(sprite);
}
@@ -1020,7 +1022,7 @@ bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite)
return FALSE;
}
-void sub_8078BB8(struct Sprite *sprite)
+void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite)
{
if (TranslateAnimSpriteByDeltas(sprite))
SetCallbackToStoredInData(sprite);
@@ -1038,7 +1040,7 @@ void sub_8078C00(struct Sprite *sprite)
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078BD4(sprite);
- sprite->callback = sub_8078BB8;
+ sprite->callback = TranslateAnimSpriteByDeltasUntil;
sprite->callback(sprite);
}
@@ -1392,7 +1394,15 @@ void sub_80793C4(struct Sprite *sprite)
}
}
-void sub_807941C(struct Sprite *sprite)
+// Linearly translates a sprite to a target position on the
+// other mon's sprite.
+// arg 0: initial x offset
+// arg 1: initial y offset
+// arg 2: target x offset
+// arg 3: target y offset
+// arg 4: duration
+// arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target
+void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
{
bool8 v1;
u8 v2;
@@ -1408,12 +1418,13 @@ void sub_807941C(struct Sprite *sprite)
v2 = 1;
InitAnimSpritePos(sprite, v1);
- if (GetBankSide(gAnimBankAttacker))
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, v2) + gBattleAnimArgs[3];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
@@ -1466,7 +1477,7 @@ void sub_8079534(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(slot, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(slot, r7) + gBattleAnimArgs[3];
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
@@ -2338,6 +2349,6 @@ void sub_807A9BC(struct Sprite *sprite)
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 80;
}
- sprite->callback = sub_8078B34;
+ sprite->callback = StartTranslateAnimSpriteByDeltas;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}