summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-10-05 03:06:45 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-10-08 02:38:47 +0800
commite9cdb63903143b98cb443007755222bdfbc2efec (patch)
tree717eea7d9e4b646f742310c1826ff26fb8d2b368
parenteef286808aad14f206d8899e8fe19295fa8e7a9f (diff)
battle_anim_mons
-rw-r--r--asm/battle_2.s16
-rw-r--r--asm/battle_anim.s8
-rw-r--r--asm/battle_anim_effects_1.s290
-rw-r--r--asm/battle_anim_effects_2.s166
-rw-r--r--asm/battle_anim_effects_3.s182
-rw-r--r--asm/battle_anim_mons.s6343
-rw-r--r--asm/battle_anim_special.s26
-rw-r--r--asm/bug.s42
-rw-r--r--asm/dark.s52
-rw-r--r--asm/dragon.s32
-rw-r--r--asm/electric.s48
-rw-r--r--asm/fighting.s72
-rw-r--r--asm/fire.s46
-rw-r--r--asm/flying.s54
-rw-r--r--asm/ghost.s46
-rw-r--r--asm/ground.s42
-rw-r--r--asm/ice.s96
-rw-r--r--asm/normal.s56
-rw-r--r--asm/poison.s22
-rw-r--r--asm/pokeball.s16
-rw-r--r--asm/pokemon_jump_2.s4
-rw-r--r--asm/pokemon_summary_screen.s2
-rw-r--r--asm/psychic.s76
-rw-r--r--asm/rock.s36
-rw-r--r--asm/trade.s16
-rw-r--r--asm/water.s54
-rw-r--r--data/battle_anim.s18
-rw-r--r--data/data.s4
-rw-r--r--include/battle.h3
-rw-r--r--include/battle_anim.h128
-rw-r--r--include/battle_main.h2
-rw-r--r--include/data.h2
-rw-r--r--include/global.h24
-rw-r--r--include/overworld.h5
-rw-r--r--include/pokemon_icon.h1
-rw-r--r--include/rom6.h17
-rw-r--r--include/sprite.h1
-rw-r--r--ld_script.txt3
-rw-r--r--src/battle_anim_mon_movement.c2
-rw-r--r--src/battle_anim_mons.c2253
-rw-r--r--src/battle_anim_utility_funcs.c8
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/daycare.c4
-rw-r--r--sym_ewram.txt5
44 files changed, 3147 insertions, 7178 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 4648c7e33..775cb1033 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -4145,16 +4145,16 @@ _08011F3C:
lsls r0, 16
lsrs r0, 16
_08011F46:
- ldr r1, _08011F4C @ =gUnknown_82349CC
+ ldr r1, _08011F4C @ =gMonFrontPicCoords
lsls r0, 2
b _08011F88
.align 2, 0
-_08011F4C: .4byte gUnknown_82349CC
+_08011F4C: .4byte gMonFrontPicCoords
_08011F50:
ldr r0, _08011F68 @ =0x00000181
cmp r4, r0
bne _08011F74
- ldr r0, _08011F6C @ =gUnknown_83AE03C
+ ldr r0, _08011F6C @ =gCastformFrontSpriteCoords
ldr r1, _08011F70 @ =gBattleMonForms
adds r1, r6, r1
ldrb r1, [r1]
@@ -4164,19 +4164,19 @@ _08011F50:
b _08011F8C
.align 2, 0
_08011F68: .4byte 0x00000181
-_08011F6C: .4byte gUnknown_83AE03C
+_08011F6C: .4byte gCastformFrontSpriteCoords
_08011F70: .4byte gBattleMonForms
_08011F74:
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
bls _08011F84
- ldr r0, _08011F80 @ =gUnknown_82349CC
+ ldr r0, _08011F80 @ =gMonFrontPicCoords
b _08011F8A
.align 2, 0
-_08011F80: .4byte gUnknown_82349CC
+_08011F80: .4byte gMonFrontPicCoords
_08011F84:
- ldr r1, _08011FAC @ =gUnknown_82349CC
+ ldr r1, _08011FAC @ =gMonFrontPicCoords
lsls r0, r4, 2
_08011F88:
adds r0, r1
@@ -4199,7 +4199,7 @@ _08011F8C:
pop {r0}
bx r0
.align 2, 0
-_08011FAC: .4byte gUnknown_82349CC
+_08011FAC: .4byte gMonFrontPicCoords
_08011FB0: .4byte sub_8011FB4
thumb_func_end SpriteCB_FaintOpponentMon
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index b6f26338a..2adbf9487 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -3960,7 +3960,7 @@ sub_8074320: @ 8074320
cmp r7, 0
bne _08074370
ldrb r0, [r6]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
@@ -3971,7 +3971,7 @@ _08074368: .4byte gBattleAnimAttacker
_0807436C: .4byte gBattleAnimTarget
_08074370:
ldrb r0, [r5]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
@@ -4042,7 +4042,7 @@ sub_80743C8: @ 80743C8
cmp r7, 0
bne _08074418
ldrb r0, [r6]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
@@ -4053,7 +4053,7 @@ _08074410: .4byte gBattleAnimAttacker
_08074414: .4byte gBattleAnimTarget
_08074418:
ldrb r0, [r5]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
index 19f2c4480..b71600380 100644
--- a/asm/battle_anim_effects_1.s
+++ b/asm/battle_anim_effects_1.s
@@ -96,7 +96,7 @@ sub_80A2388: @ 80A2388
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080A23C8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
@@ -115,7 +115,7 @@ sub_80A2388: @ 80A2388
strh r0, [r4, 0x36]
ldr r0, _080A23D0 @ =StartAnimLinearTranslation
str r0, [r4, 0x1C]
- ldr r1, _080A23D4 @ =move_anim_8074EE0
+ ldr r1, _080A23D4 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -125,7 +125,7 @@ sub_80A2388: @ 80A2388
_080A23C8: .4byte gBattleAnimArgs
_080A23CC: .4byte gBattleAnimAttacker
_080A23D0: .4byte StartAnimLinearTranslation
-_080A23D4: .4byte move_anim_8074EE0
+_080A23D4: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80A2388
thumb_func_start sub_80A23D8
@@ -133,7 +133,7 @@ sub_80A23D8: @ 80A23D8
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r5, _080A2420 @ =gBattleAnimArgs
ldrb r1, [r5, 0x6]
adds r0, r4, 0
@@ -173,7 +173,7 @@ sub_80A2430: @ 80A2430
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r6, _080A2480 @ =gBattleAnimArgs
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x2E]
@@ -195,7 +195,7 @@ sub_80A2430: @ 80A2430
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x38]
ldr r1, _080A2488 @ =sub_80A248C
@@ -215,7 +215,7 @@ _080A2488: .4byte sub_80A248C
sub_80A248C: @ 80A248C
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080A24A2
@@ -338,7 +338,7 @@ sub_80A2580: @ 80A2580
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r6, _080A25C4 @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
@@ -358,7 +358,7 @@ sub_80A2580: @ 80A2580
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080A25CC @ =sub_80A25D0
str r0, [r4, 0x1C]
pop {r4-r6}
@@ -374,7 +374,7 @@ _080A25CC: .4byte sub_80A25D0
sub_80A25D0: @ 80A25D0
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080A25E4
@@ -451,7 +451,7 @@ _080A263C:
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl sub_8075804
+ bl InitAnimFastLinearTranslationWithSpeed
bl Random
movs r1, 0xFF
ands r1, r0
@@ -476,7 +476,7 @@ _080A26A0: .4byte sub_80A26A4
sub_80A26A4: @ 80A26A4
push {r4,lr}
adds r4, r0, 0
- bl sub_807578C
+ bl AnimFastTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080A26BA
@@ -520,7 +520,7 @@ sub_80A26F0: @ 80A26F0
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080A2750 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -555,7 +555,7 @@ _080A2710:
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
adds r0, r6, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080A275C @ =sub_80A2760
str r0, [r6, 0x1C]
pop {r4-r6}
@@ -572,7 +572,7 @@ _080A275C: .4byte sub_80A2760
sub_80A2760: @ 80A2760
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080A278A
@@ -584,7 +584,7 @@ sub_80A2760: @ 80A2760
strb r0, [r2]
movs r0, 0xA
strh r0, [r4, 0x2E]
- ldr r0, _080A2790 @ =sub_8074C44
+ ldr r0, _080A2790 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080A2794 @ =sub_80A2798
adds r0, r4, 0
@@ -594,7 +594,7 @@ _080A278A:
pop {r0}
bx r0
.align 2, 0
-_080A2790: .4byte sub_8074C44
+_080A2790: .4byte WaitAnimForDuration
_080A2794: .4byte sub_80A2798
thumb_func_end sub_80A2760
@@ -614,7 +614,7 @@ sub_80A2798: @ 80A2798
bl StartSpriteAnim
movs r0, 0x3C
strh r0, [r4, 0x2E]
- ldr r0, _080A27C8 @ =sub_8074C44
+ ldr r0, _080A27C8 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080A27CC @ =DestroyAnimSprite
adds r0, r4, 0
@@ -623,7 +623,7 @@ sub_80A2798: @ 80A2798
pop {r0}
bx r0
.align 2, 0
-_080A27C8: .4byte sub_8074C44
+_080A27C8: .4byte WaitAnimForDuration
_080A27CC: .4byte DestroyAnimSprite
thumb_func_end sub_80A2798
@@ -632,7 +632,7 @@ sub_80A27D0: @ 80A27D0
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r5, _080A2814 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
adds r0, r4, 0
@@ -694,7 +694,7 @@ sub_80A281C: @ 80A281C
bhi _080A2870
ldr r0, _080A286C @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -709,7 +709,7 @@ _080A286C: .4byte gBattleAnimTarget
_080A2870:
ldr r0, _080A28C0 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
adds r0, 0x1
lsls r0, 24
lsrs r2, r0, 24
@@ -771,7 +771,7 @@ _080A28DE:
_080A28E6:
ldr r0, _080A2904 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -802,7 +802,7 @@ sub_80A2920: @ 80A2920
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r5, _080A2968 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
@@ -821,7 +821,7 @@ sub_80A2920: @ 80A2920
adds r0, r5
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
movs r0, 0x40
strh r0, [r4, 0x38]
ldr r1, _080A2970 @ =sub_80A2974
@@ -841,7 +841,7 @@ _080A2970: .4byte sub_80A2974
sub_80A2974: @ 80A2974
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080A29E0
@@ -904,7 +904,7 @@ sub_80A29EC: @ 80A29EC
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r5, _080A2A34 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
@@ -923,7 +923,7 @@ sub_80A29EC: @ 80A29EC
adds r0, r5
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
movs r0, 0x40
strh r0, [r4, 0x38]
ldr r1, _080A2A3C @ =sub_80A2A40
@@ -943,7 +943,7 @@ _080A2A3C: .4byte sub_80A2A40
sub_80A2A40: @ 80A2A40
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080A2A98
@@ -1132,7 +1132,7 @@ sub_80A2B9C: @ 80A2B9C
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080A2BF0 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -1180,7 +1180,7 @@ _080A2BFC:
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldrh r0, [r6, 0x4]
ldrh r1, [r5, 0x32]
adds r0, r1
@@ -1194,7 +1194,7 @@ _080A2C1C:
ldrh r0, [r0, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080A2C50 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -1235,7 +1235,7 @@ sub_80A2C68: @ 80A2C68
movs r0, 0x1
strh r0, [r6, 0x2E]
adds r0, r6, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
ldrh r0, [r6, 0x3C]
strh r5, [r6, 0x2E]
lsls r4, 16
@@ -1336,7 +1336,7 @@ sub_80A2D10: @ 80A2D10
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
_080A2D3C:
ldrh r0, [r4, 0x22]
adds r0, 0x20
@@ -1419,7 +1419,7 @@ _080A2DAC:
bgt _080A2DEC
ldr r0, _080A2DE8 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
@@ -1429,7 +1429,7 @@ _080A2DE8: .4byte gBattleAnimTarget
_080A2DEC:
ldr r0, _080A2E24 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -1464,7 +1464,7 @@ sub_80A2E28: @ 80A2E28
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
@@ -1682,7 +1682,7 @@ _080A2FBE:
movs r3, 0
bl SetSpriteRotScale
adds r0, r6, 0
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
ldrh r0, [r4, 0xA]
subs r0, 0x1
strh r0, [r4, 0xA]
@@ -1866,7 +1866,7 @@ _080A3104:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, _080A3160 @ =sub_8075764
+ ldr r0, _080A3160 @ =InitAndRunAnimFastLinearTranslation
str r0, [r5, 0x1C]
ldr r1, _080A3164 @ =DestroyAnimSprite
adds r0, r5, 0
@@ -1877,7 +1877,7 @@ _080A3156:
bx r0
.align 2, 0
_080A315C: .4byte gBattleAnimAttacker
-_080A3160: .4byte sub_8075764
+_080A3160: .4byte InitAndRunAnimFastLinearTranslation
_080A3164: .4byte DestroyAnimSprite
thumb_func_end sub_80A3098
@@ -2370,7 +2370,7 @@ sub_80A3518: @ 80A3518
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r4, _080A3560 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
@@ -2546,7 +2546,7 @@ sub_80A3670: @ 80A3670
bne _080A368A
adds r0, r4, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r0, _080A36B0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x30]
@@ -2579,7 +2579,7 @@ sub_80A36B4: @ 80A36B4
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r4, _080A36FC @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
@@ -3014,11 +3014,11 @@ sub_80A39C0: @ 80A39C0
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
strh r0, [r5, 0x1C]
ldrb r0, [r4]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
strh r0, [r5, 0x1E]
ldrb r0, [r4]
bl GetBattlerSide
@@ -3139,7 +3139,7 @@ _080A3A60:
adds r0, r1
lsls r0, 2
adds r0, r4
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080A3B24 @ =sub_80A3B28
str r0, [r5]
pop {r4-r6}
@@ -3207,7 +3207,7 @@ _080A3B80:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
bne _080A3B96
@@ -3236,7 +3236,7 @@ _080A3BB4:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
bne _080A3BCA
@@ -3265,7 +3265,7 @@ _080A3BE6:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
bne _080A3BFC
@@ -3309,7 +3309,7 @@ _080A3C04:
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _080A3EFA
@@ -3318,7 +3318,7 @@ _080A3C54:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
bne _080A3C6A
@@ -3381,7 +3381,7 @@ _080A3C72:
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _080A3EFA
@@ -3440,7 +3440,7 @@ _080A3CE8:
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _080A3EFA
@@ -3449,7 +3449,7 @@ _080A3D62:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
bne _080A3D78
@@ -3494,7 +3494,7 @@ _080A3D80:
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _080A3EFA
@@ -3551,7 +3551,7 @@ _080A3DD2:
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _080A3EFA
@@ -3560,7 +3560,7 @@ _080A3E48:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080A3EFC
@@ -3603,7 +3603,7 @@ _080A3E64:
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r6, 0x8]
adds r0, 0x1
b _080A3EFA
@@ -3612,7 +3612,7 @@ _080A3EB6:
adds r1, r2, 0
bl sub_80A3F24
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080A3EFC
@@ -3902,7 +3902,7 @@ _080A40D4:
_080A40E4:
strh r0, [r4, 0x22]
adds r0, r6, 0
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -3927,7 +3927,7 @@ _080A4100:
bl GetAnimBattlerSpriteId
_080A411A:
adds r0, r6, 0
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -4008,7 +4008,7 @@ _080A41A4:
bgt _080A41BC
_080A41B6:
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080A41BC:
pop {r4,r5}
pop {r0}
@@ -4221,7 +4221,7 @@ _080A4318:
subs r1, r5
lsls r1, 16
asrs r1, 16
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
lsrs r4, r0, 16
bl IsContest
@@ -4239,7 +4239,7 @@ _080A437A:
adds r0, r6, 0
movs r1, 0
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldr r0, _080A439C @ =sub_80A43A0
str r0, [r6, 0x1C]
_080A438E:
@@ -4280,7 +4280,7 @@ sub_80A43A0: @ 80A43A0
b _080A43D6
_080A43D0:
adds r0, r2, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080A43D6:
pop {r4}
pop {r0}
@@ -4335,7 +4335,7 @@ _080A442C:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080A4448 @ =sub_8074F6C
+ ldr r0, _080A4448 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080A444C @ =DestroyAnimSprite
adds r0, r4, 0
@@ -4345,7 +4345,7 @@ _080A442C:
bx r0
.align 2, 0
_080A4444: .4byte gBattleAnimArgs
-_080A4448: .4byte sub_8074F6C
+_080A4448: .4byte RunStoredCallbackWhenAnimEnds
_080A444C: .4byte DestroyAnimSprite
thumb_func_end sub_80A43F8
@@ -4369,7 +4369,7 @@ _080A446A:
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
@@ -4407,18 +4407,18 @@ sub_80A4494: @ 80A4494
ldrb r1, [r1, 0xC]
adds r0, r4, 0
bl StartSpriteAffineAnim
- ldr r1, _080A44D8 @ =move_anim_8074EE0
+ ldr r1, _080A44D8 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A44DC @ =sub_8074E70
+ ldr r0, _080A44DC @ =TranslateSpriteLinearAndFlicker
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A44D4: .4byte gBattleAnimArgs
-_080A44D8: .4byte move_anim_8074EE0
-_080A44DC: .4byte sub_8074E70
+_080A44D8: .4byte DestroySpriteAndMatrix
+_080A44DC: .4byte TranslateSpriteLinearAndFlicker
thumb_func_end sub_80A4494
thumb_func_start sub_80A44E0
@@ -4717,7 +4717,7 @@ _080A46F2:
bl StoreSpriteCallbackInData6
movs r0, 0x3
strh r0, [r4, 0x2E]
- ldr r0, _080A4734 @ =sub_8074C44
+ ldr r0, _080A4734 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
_080A4728:
pop {r4}
@@ -4725,7 +4725,7 @@ _080A4728:
bx r0
.align 2, 0
_080A4730: .4byte DestroyAnimSprite
-_080A4734: .4byte sub_8074C44
+_080A4734: .4byte WaitAnimForDuration
thumb_func_end sub_80A46CC
thumb_func_start sub_80A4738
@@ -4971,7 +4971,7 @@ _080A4906:
ldr r6, _080A4968 @ =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
ldr r4, _080A4964 @ =gBattleAnimArgs
lsrs r0, 24
@@ -4980,7 +4980,7 @@ _080A4906:
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x1
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
@@ -4997,7 +4997,7 @@ _080A4906:
beq _080A496C
_080A4944:
ldrb r0, [r6]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -5016,7 +5016,7 @@ _080A4964: .4byte gBattleAnimArgs
_080A4968: .4byte gBattleAnimAttacker
_080A496C:
ldrb r0, [r6]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -5185,14 +5185,14 @@ _080A4A80:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _080A4AC8 @ =sub_8074F88
+ ldr r0, _080A4AC8 @ =DestroyAnimSpriteAndDisableBlend
str r0, [r4, 0x1C]
_080A4AC2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080A4AC8: .4byte sub_8074F88
+_080A4AC8: .4byte DestroyAnimSpriteAndDisableBlend
thumb_func_end sub_80A49D4
thumb_func_start sub_80A4ACC
@@ -5503,12 +5503,12 @@ sub_80A4D0C: @ 80A4D0C
cmp r0, 0
bne _080A4D20
adds r0, r4, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
_080A4D20:
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
@@ -5522,7 +5522,7 @@ _080A4D20:
ldr r1, _080A4D54 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A4D58 @ =sub_8074D00
+ ldr r0, _080A4D58 @ =TranslateSpriteLinearFixedPoint
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -5530,7 +5530,7 @@ _080A4D20:
.align 2, 0
_080A4D50: .4byte gBattleAnimArgs
_080A4D54: .4byte DestroyAnimSprite
-_080A4D58: .4byte sub_8074D00
+_080A4D58: .4byte TranslateSpriteLinearFixedPoint
thumb_func_end sub_80A4D0C
thumb_func_start sub_80A4D5C
@@ -5569,11 +5569,11 @@ _080A4D7A:
adds r3, r5, 0
adds r3, 0x22
adds r0, r6, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
movs r2, 0
ldrsh r1, [r4, r2]
adds r0, r5, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r4, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
@@ -5619,7 +5619,7 @@ _080A4DFA:
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r5, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
_080A4E14:
ldr r1, _080A4E34 @ =gBattleAnimArgs
ldrh r0, [r1, 0xA]
@@ -5631,7 +5631,7 @@ _080A4E14:
ldr r1, _080A4E38 @ =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A4E3C @ =sub_8074D00
+ ldr r0, _080A4E3C @ =TranslateSpriteLinearFixedPoint
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
@@ -5639,14 +5639,14 @@ _080A4E14:
.align 2, 0
_080A4E34: .4byte gBattleAnimArgs
_080A4E38: .4byte DestroyAnimSprite
-_080A4E3C: .4byte sub_8074D00
+_080A4E3C: .4byte TranslateSpriteLinearFixedPoint
thumb_func_end sub_80A4D5C
thumb_func_start sub_80A4E40
sub_80A4E40: @ 80A4E40
push {r4,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r0, _080A4E6C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -5738,7 +5738,7 @@ _080A4EEC:
sub_80A4EF4: @ 80A4EF4
push {r4,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r0, _080A4F24 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -5819,7 +5819,7 @@ sub_80A4F60: @ 80A4F60
cmp r0, 0x3C
ble _080A4FA4
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080A4FA4:
pop {r4}
pop {r0}
@@ -5837,14 +5837,14 @@ sub_80A4FAC: @ 80A4FAC
strh r1, [r0, 0x22]
movs r1, 0x14
strh r1, [r0, 0x2E]
- ldr r1, _080A4FCC @ =sub_8074C44
+ ldr r1, _080A4FCC @ =WaitAnimForDuration
str r1, [r0, 0x1C]
ldr r1, _080A4FD0 @ =sub_80A4FD4
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
-_080A4FCC: .4byte sub_8074C44
+_080A4FCC: .4byte WaitAnimForDuration
_080A4FD0: .4byte sub_80A4FD4
thumb_func_end sub_80A4FAC
@@ -5863,14 +5863,14 @@ sub_80A4FD4: @ 80A4FD4
b _080A506A
_080A4FEA:
strh r1, [r5, 0x2E]
- ldr r0, _080A4FFC @ =sub_8074C44
+ ldr r0, _080A4FFC @ =WaitAnimForDuration
str r0, [r5, 0x1C]
ldr r1, _080A5000 @ =sub_80A4FD4
adds r0, r5, 0
bl StoreSpriteCallbackInData6
b _080A506A
.align 2, 0
-_080A4FFC: .4byte sub_8074C44
+_080A4FFC: .4byte WaitAnimForDuration
_080A5000: .4byte sub_80A4FD4
_080A5004:
ldrh r3, [r5, 0x24]
@@ -5946,14 +5946,14 @@ sub_80A5084: @ 80A5084
bne _080A50AC
movs r0, 0xA
strh r0, [r2, 0x2E]
- ldr r0, _080A50A4 @ =sub_8074C44
+ ldr r0, _080A50A4 @ =WaitAnimForDuration
str r0, [r2, 0x1C]
ldr r1, _080A50A8 @ =sub_80A50B8
adds r0, r2, 0
bl StoreSpriteCallbackInData6
b _080A50B0
.align 2, 0
-_080A50A4: .4byte sub_8074C44
+_080A50A4: .4byte WaitAnimForDuration
_080A50A8: .4byte sub_80A50B8
_080A50AC:
ldr r0, _080A50B4 @ =sub_80A4FD4
@@ -5976,14 +5976,14 @@ sub_80A50B8: @ 80A50B8
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
strh r1, [r5, 0x32]
- ldr r0, _080A50D8 @ =sub_8074C44
+ ldr r0, _080A50D8 @ =WaitAnimForDuration
str r0, [r5, 0x1C]
ldr r1, _080A50DC @ =sub_80A5174
adds r0, r5, 0
bl StoreSpriteCallbackInData6
b _080A5160
.align 2, 0
-_080A50D8: .4byte sub_8074C44
+_080A50D8: .4byte WaitAnimForDuration
_080A50DC: .4byte sub_80A5174
_080A50E0:
ldrh r0, [r5, 0x6]
@@ -6447,7 +6447,7 @@ _080A5424:
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
@@ -6589,7 +6589,7 @@ _080A5538:
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
@@ -6694,7 +6694,7 @@ _080A55FA:
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
@@ -6732,7 +6732,7 @@ _080A564C:
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
@@ -6906,7 +6906,7 @@ _080A579E:
adds r1, r2, 0
bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
b _080A58D4
_080A57C4:
movs r0, 0x8
@@ -7097,7 +7097,7 @@ sub_80A58EC: @ 80A58EC
adds r1, r2, 0
bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r4, 0xE]
subs r0, 0x1
strh r0, [r4, 0xE]
@@ -7154,7 +7154,7 @@ _080A595E:
ldr r1, _080A59A0 @ =sub_80A5A8C
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A59A4 @ =sub_8074F6C
+ ldr r0, _080A59A4 @ =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
@@ -7162,7 +7162,7 @@ _080A595E:
.align 2, 0
_080A599C: .4byte gBattleAnimTarget
_080A59A0: .4byte sub_80A5A8C
-_080A59A4: .4byte sub_8074F6C
+_080A59A4: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80A5940
thumb_func_start sub_80A59A8
@@ -7187,7 +7187,7 @@ sub_80A59A8: @ 80A59A8
ldr r1, _080A59E8 @ =sub_80A5A44
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A59EC @ =sub_8074F6C
+ ldr r0, _080A59EC @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -7196,7 +7196,7 @@ sub_80A59A8: @ 80A59A8
_080A59E0: .4byte gBattleAnimTarget
_080A59E4: .4byte 0x0000ffd0
_080A59E8: .4byte sub_80A5A44
-_080A59EC: .4byte sub_8074F6C
+_080A59EC: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80A59A8
thumb_func_start sub_80A59F0
@@ -7259,7 +7259,7 @@ sub_80A5A44: @ 80A5A44
ldr r1, _080A5A74 @ =sub_80A5A7C
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A5A78 @ =sub_8074CD0
+ ldr r0, _080A5A78 @ =TranslateSpriteLinear
str r0, [r4, 0x1C]
_080A5A6E:
pop {r4}
@@ -7267,7 +7267,7 @@ _080A5A6E:
bx r0
.align 2, 0
_080A5A74: .4byte sub_80A5A7C
-_080A5A78: .4byte sub_8074CD0
+_080A5A78: .4byte TranslateSpriteLinear
thumb_func_end sub_80A5A44
thumb_func_start sub_80A5A7C
@@ -7656,7 +7656,7 @@ sub_80A5D4C: @ 80A5D4C
push {r4,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
@@ -8042,7 +8042,7 @@ sub_80A5FC0: @ 80A5FC0
adds r5, 0x1E
adds r1, r5, 0
mov r2, r8
- bl sub_80765C0
+ bl StorePointerInVars
ldr r0, _080A6098 @ =0x000027d2
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -8273,7 +8273,7 @@ _080A61EC:
ldrsh r0, [r4, r1]
movs r2, 0x26
ldrsh r1, [r4, r2]
- bl sub_80765C8
+ bl LoadPointerFromVars
ldr r1, _080A621C @ =0x00007fbb
str r1, [sp]
movs r1, 0
@@ -8608,7 +8608,7 @@ _080A649A:
str r0, [r6]
ldr r0, _080A64C4 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8652,7 +8652,7 @@ sub_80A64E0: @ 80A64E0
bne _080A6532
ldr r0, _080A6518 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8764,14 +8764,14 @@ sub_80A65CC: @ 80A65CC
adds r4, r0, 0
ldr r1, _080A65E0 @ =DestroyAnimSprite
bl StoreSpriteCallbackInData6
- ldr r0, _080A65E4 @ =sub_8074F6C
+ ldr r0, _080A65E4 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A65E0: .4byte DestroyAnimSprite
-_080A65E4: .4byte sub_8074F6C
+_080A65E4: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80A65CC
thumb_func_start sub_80A65E8
@@ -8903,7 +8903,7 @@ sub_80A66D4: @ 80A66D4
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r4, _080A672C @ =gBattleAnimArgs
ldrb r1, [r4]
adds r0, r5, 0
@@ -9091,7 +9091,7 @@ _080A6800:
ble _080A6856
_080A684E:
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
b _080A68A6
_080A6856:
movs r0, 0x34
@@ -9267,7 +9267,7 @@ _080A699E:
cmp r0, 0x30
bne _080A69B2
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080A69B2:
pop {r4}
pop {r0}
@@ -9314,7 +9314,7 @@ _080A69DE:
strh r0, [r5, 0x22]
movs r0, 0x8
strh r0, [r5, 0x2E]
- ldr r0, _080A6A20 @ =sub_8074C44
+ ldr r0, _080A6A20 @ =WaitAnimForDuration
str r0, [r5, 0x1C]
ldr r1, _080A6A24 @ =DestroyAnimSprite
adds r0, r5, 0
@@ -9325,7 +9325,7 @@ _080A69DE:
.align 2, 0
_080A6A18: .4byte 0x0000fff0
_080A6A1C: .4byte gBattleAnimAttacker
-_080A6A20: .4byte sub_8074C44
+_080A6A20: .4byte WaitAnimForDuration
_080A6A24: .4byte DestroyAnimSprite
thumb_func_end sub_80A69B8
@@ -9333,7 +9333,7 @@ _080A6A24: .4byte DestroyAnimSprite
sub_80A6A28: @ 80A6A28
push {r4,r5,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldrh r0, [r4, 0x22]
adds r0, 0x8
strh r0, [r4, 0x22]
@@ -9381,7 +9381,7 @@ _080A6A74:
subs r0, 0x28
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x38]
ldr r0, _080A6AAC @ =sub_80A6AB0
@@ -9400,7 +9400,7 @@ _080A6AAC: .4byte sub_80A6AB0
sub_80A6AB0: @ 80A6AB0
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080A6B00
@@ -9458,13 +9458,13 @@ sub_80A6B0C: @ 80A6B0C
bne _080A6B2C
adds r0, r5, 0
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
b _080A6B36
_080A6B2C:
adds r0, r5, 0
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
_080A6B36:
strh r0, [r6, 0x20]
@@ -9474,7 +9474,7 @@ _080A6B36:
adds r4, r0, 0
adds r0, r5, 0
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r4, 24
lsrs r4, 24
lsls r0, 16
@@ -9529,7 +9529,7 @@ _080A6B82:
ldr r1, _080A6BC8 @ =sub_80A6BD0
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A6BCC @ =sub_8074F6C
+ ldr r0, _080A6BCC @ =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
@@ -9538,7 +9538,7 @@ _080A6B82:
_080A6BC0: .4byte gBattleAnimTarget
_080A6BC4: .4byte gBattleAnimArgs
_080A6BC8: .4byte sub_80A6BD0
-_080A6BCC: .4byte sub_8074F6C
+_080A6BCC: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80A6B64
thumb_func_start sub_80A6BD0
@@ -9559,7 +9559,7 @@ sub_80A6BD0: @ 80A6BD0
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
- ldr r0, _080A6C04 @ =sub_8074F6C
+ ldr r0, _080A6C04 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
_080A6BF8:
pop {r4}
@@ -9567,7 +9567,7 @@ _080A6BF8:
bx r0
.align 2, 0
_080A6C00: .4byte DestroyAnimSprite
-_080A6C04: .4byte sub_8074F6C
+_080A6C04: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80A6BD0
thumb_func_start sub_80A6C08
@@ -9595,7 +9595,7 @@ _080A6C26:
ldr r1, _080A6C48 @ =sub_80A6C50
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A6C4C @ =sub_8074F50
+ ldr r0, _080A6C4C @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
@@ -9603,7 +9603,7 @@ _080A6C26:
.align 2, 0
_080A6C44: .4byte gBattleAnimTarget
_080A6C48: .4byte sub_80A6C50
-_080A6C4C: .4byte sub_8074F50
+_080A6C4C: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80A6C08
thumb_func_start sub_80A6C50
@@ -9620,18 +9620,18 @@ sub_80A6C50: @ 80A6C50
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r1, _080A6C7C @ =move_anim_8074EE0
+ ldr r1, _080A6C7C @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A6C80 @ =sub_8074F50
+ ldr r0, _080A6C80 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
_080A6C76:
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080A6C7C: .4byte move_anim_8074EE0
-_080A6C80: .4byte sub_8074F50
+_080A6C7C: .4byte DestroySpriteAndMatrix
+_080A6C80: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80A6C50
thumb_func_start sub_80A6C84
@@ -9661,7 +9661,7 @@ _080A6CA2:
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
strh r0, [r4, 0x22]
lsls r0, 16
asrs r0, 16
@@ -9684,7 +9684,7 @@ _080A6CCA:
ldr r1, _080A6CF8 @ =sub_80A6D00
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A6CFC @ =sub_8074F50
+ ldr r0, _080A6CFC @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
@@ -9692,7 +9692,7 @@ _080A6CCA:
.align 2, 0
_080A6CF4: .4byte gBattleAnimTarget
_080A6CF8: .4byte sub_80A6D00
-_080A6CFC: .4byte sub_8074F50
+_080A6CFC: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80A6C84
thumb_func_start sub_80A6D00
@@ -9850,7 +9850,7 @@ sub_80A6DF0: @ 80A6DF0
ldr r1, _080A6E24 @ =sub_80A6E2C
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A6E28 @ =sub_8074F6C
+ ldr r0, _080A6E28 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
_080A6E1E:
pop {r4}
@@ -9858,7 +9858,7 @@ _080A6E1E:
bx r0
.align 2, 0
_080A6E24: .4byte sub_80A6E2C
-_080A6E28: .4byte sub_8074F6C
+_080A6E28: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80A6DF0
thumb_func_start sub_80A6E2C
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
index 34989dc0d..67ac6a13e 100644
--- a/asm/battle_anim_effects_2.s
+++ b/asm/battle_anim_effects_2.s
@@ -9,12 +9,12 @@
sub_80A6E48: @ 80A6E48
push {r4,r5,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r5, _080A6E8C @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
@@ -27,10 +27,10 @@ sub_80A6E48: @ 80A6E48
strh r0, [r4, 0x34]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x36]
- ldr r1, _080A6E90 @ =move_anim_8074EE0
+ ldr r1, _080A6E90 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r1, _080A6E94 @ =sub_8074BE4
+ ldr r1, _080A6E94 @ =TranslateSpriteInEllipseOverDuration
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -39,8 +39,8 @@ sub_80A6E48: @ 80A6E48
bx r0
.align 2, 0
_080A6E8C: .4byte gBattleAnimArgs
-_080A6E90: .4byte move_anim_8074EE0
-_080A6E94: .4byte sub_8074BE4
+_080A6E90: .4byte DestroySpriteAndMatrix
+_080A6E94: .4byte TranslateSpriteInEllipseOverDuration
thumb_func_end sub_80A6E48
thumb_func_start sub_80A6E98
@@ -166,7 +166,7 @@ sub_80A6F3C: @ 80A6F3C
adds r0, r3
strh r2, [r0, 0x24]
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080A6F7A:
ldrh r0, [r4, 0x2E]
subs r0, 0x1
@@ -254,7 +254,7 @@ sub_80A7020: @ 80A7020
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r1, _080A704C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
@@ -262,7 +262,7 @@ sub_80A7020: @ 80A7020
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x38]
- ldr r0, _080A7050 @ =sub_8074C44
+ ldr r0, _080A7050 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080A7054 @ =sub_80A7058
adds r0, r4, 0
@@ -272,7 +272,7 @@ sub_80A7020: @ 80A7020
bx r0
.align 2, 0
_080A704C: .4byte gBattleAnimArgs
-_080A7050: .4byte sub_8074C44
+_080A7050: .4byte WaitAnimForDuration
_080A7054: .4byte sub_80A7058
thumb_func_end sub_80A7020
@@ -438,7 +438,7 @@ _080A7176:
_080A718A:
strh r1, [r0, 0x26]
adds r0, r4, 0
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldr r0, _080A71C8 @ =gTasks
adds r1, r6, r5
lsls r1, 3
@@ -479,7 +479,7 @@ _080A71D0:
sub_80A71D8: @ 80A71D8
push {r4,r5,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r0, _080A71FC @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -544,7 +544,7 @@ _080A724C:
orrs r0, r1
strb r0, [r2]
_080A7260:
- ldr r0, _080A7274 @ =sub_8074F6C
+ ldr r0, _080A7274 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080A7278 @ =DestroyAnimSprite
adds r0, r4, 0
@@ -553,7 +553,7 @@ _080A7260:
pop {r0}
bx r0
.align 2, 0
-_080A7274: .4byte sub_8074F6C
+_080A7274: .4byte RunStoredCallbackWhenAnimEnds
_080A7278: .4byte DestroyAnimSprite
thumb_func_end sub_80A71D8
@@ -562,8 +562,8 @@ sub_80A727C: @ 80A727C
push {r4,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075160
- ldr r0, _080A7298 @ =sub_8074F50
+ bl InitSpritePosToAnimAttacker
+ ldr r0, _080A7298 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080A729C @ =sub_80A72A0
adds r0, r4, 0
@@ -572,7 +572,7 @@ sub_80A727C: @ 80A727C
pop {r0}
bx r0
.align 2, 0
-_080A7298: .4byte sub_8074F50
+_080A7298: .4byte RunStoredCallbackWhenAffineAnimEnds
_080A729C: .4byte sub_80A72A0
thumb_func_end sub_80A727C
@@ -635,7 +635,7 @@ _080A72EC:
_080A730E:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r4, _080A73BC @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
@@ -671,7 +671,7 @@ _080A730E:
subs r1, r2
lsls r1, 16
asrs r1, 16
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
movs r1, 0xF0
lsls r1, 24
@@ -692,7 +692,7 @@ _080A7380:
adds r0, r5, 0
movs r1, 0
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
mov r0, r8
@@ -1276,7 +1276,7 @@ _080A77B6:
movs r1, 0
mov r2, sp
mov r3, r10
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
b _080A7842
.align 2, 0
_080A7810: .4byte gBattleAnimAttacker
@@ -1506,7 +1506,7 @@ sub_80A79E8: @ 80A79E8
push {r4,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080A7A10 @ =gUnknown_83E3D18
ldrh r0, [r0, 0x2]
bl IndexOfSpritePaletteTag
@@ -1592,7 +1592,7 @@ sub_80A7A88: @ 80A7A88
sub sp, 0x4
adds r5, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r4, _080A7B28 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
@@ -1636,7 +1636,7 @@ _080A7ACC:
subs r1, r2
lsls r1, 16
asrs r1, 16
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
@@ -1648,7 +1648,7 @@ _080A7ACC:
adds r0, r5, 0
movs r1, 0
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
strh r6, [r5, 0x32]
@@ -1748,7 +1748,7 @@ sub_80A7BC4: @ 80A7BC4
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
movs r0, 0x14
strh r0, [r4, 0x2E]
ldr r5, _080A7C10 @ =gBattleAnimTarget
@@ -1907,7 +1907,7 @@ sub_80A7D04: @ 80A7D04
push {r4,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080A7D54 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -1929,7 +1929,7 @@ _080A7D22:
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x36]
- ldr r0, _080A7D5C @ =sub_8074A80
+ ldr r0, _080A7D5C @ =TranslateSpriteInCircleOverDuration
str r0, [r4, 0x1C]
ldr r1, _080A7D60 @ =DestroyAnimSprite
adds r0, r4, 0
@@ -1943,7 +1943,7 @@ _080A7D22:
.align 2, 0
_080A7D54: .4byte gBattleAnimAttacker
_080A7D58: .4byte gBattleAnimArgs
-_080A7D5C: .4byte sub_8074A80
+_080A7D5C: .4byte TranslateSpriteInCircleOverDuration
_080A7D60: .4byte DestroyAnimSprite
thumb_func_end sub_80A7D04
@@ -2094,7 +2094,7 @@ _080A7E48:
adds r0, r6
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldrh r0, [r7]
strh r0, [r5, 0x38]
ldrh r0, [r5, 0x2E]
@@ -2119,7 +2119,7 @@ _080A7EB8: .4byte sub_80A7EBC
sub_80A7EBC: @ 80A7EBC
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080A7F20
@@ -2233,7 +2233,7 @@ _080A7F90: .4byte sub_80A7F94
sub_80A7F94: @ 80A7F94
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080A7FA8
@@ -2273,7 +2273,7 @@ sub_80A7FB0: @ 80A7FB0
lsrs r0, 4
adds r0, 0x10
movs r1, 0
- bl sub_8075B48
+ bl SetGreyscaleOrOriginalPalette
ldr r1, _080A800C @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -2327,7 +2327,7 @@ sub_80A8014: @ 80A8014
lsrs r0, 4
adds r0, 0x10
movs r1, 0x1
- bl sub_8075B48
+ bl SetGreyscaleOrOriginalPalette
adds r0, r5, 0
bl DestroyAnimVisualTask
_080A8064:
@@ -2441,7 +2441,7 @@ _080A8128:
movs r3, 0
bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0x20
@@ -2473,7 +2473,7 @@ _080A816E:
movs r3, 0
bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
movs r0, 0x2
strh r0, [r4, 0xA]
b _080A81F6
@@ -2504,7 +2504,7 @@ _080A81A4:
movs r3, 0
bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0x20
@@ -2733,7 +2733,7 @@ _080A8364:
strh r2, [r4, 0x10]
ldr r2, _080A8390 @ =gUnknown_83E3E60
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080A8394 @ =sub_80A8398
str r0, [r4]
_080A838A:
@@ -2774,7 +2774,7 @@ _080A83C0:
b _080A84A8
_080A83CA:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
ldrh r2, [r4, 0x10]
adds r2, 0x3
strh r2, [r4, 0x10]
@@ -2801,7 +2801,7 @@ _080A83CA:
_080A83FC: .4byte gSprites
_080A8400:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
ldr r2, _080A8430 @ =gSprites
movs r0, 0x8
ldrsh r1, [r4, r0]
@@ -2853,7 +2853,7 @@ _080A845C:
b _080A84A8
_080A8464:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -2881,7 +2881,7 @@ _080A849C:
ldrb r1, [r4, 0x8]
ldr r2, _080A84B0 @ =gUnknown_83E3E60
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
strh r5, [r4, 0xA]
_080A84A8:
pop {r4-r6}
@@ -2908,7 +2908,7 @@ sub_80A84B4: @ 80A84B4
lsrs r1, 24
ldr r2, _080A84E8 @ =gUnknown_83E3E80
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080A84EC @ =sub_80A84F0
str r0, [r4]
pop {r4}
@@ -2930,7 +2930,7 @@ sub_80A84F0: @ 80A84F0
lsls r0, 3
ldr r1, _080A8518 @ =gTasks
adds r0, r1
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080A8510
@@ -2998,7 +2998,7 @@ _080A856A:
ldr r1, _080A85A4 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A85A8 @ =sub_8074D00
+ ldr r0, _080A85A8 @ =TranslateSpriteLinearFixedPoint
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -3007,7 +3007,7 @@ _080A856A:
_080A859C: .4byte 0x0000ffc0
_080A85A0: .4byte gBattleAnimAttacker
_080A85A4: .4byte DestroyAnimSprite
-_080A85A8: .4byte sub_8074D00
+_080A85A8: .4byte TranslateSpriteLinearFixedPoint
thumb_func_end sub_80A851C
thumb_func_start sub_80A85AC
@@ -3064,10 +3064,10 @@ _080A85E4:
movs r0, 0x8
strh r0, [r6, 0x22]
_080A8616:
- ldr r1, _080A8630 @ =move_anim_8074EE0
+ ldr r1, _080A8630 @ =DestroySpriteAndMatrix
adds r0, r6, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A8634 @ =sub_8074F50
+ ldr r0, _080A8634 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
@@ -3075,8 +3075,8 @@ _080A8616:
.align 2, 0
_080A8628: .4byte gBattleAnimTarget
_080A862C: .4byte gBattleAnimArgs
-_080A8630: .4byte move_anim_8074EE0
-_080A8634: .4byte sub_8074F50
+_080A8630: .4byte DestroySpriteAndMatrix
+_080A8634: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80A85AC
thumb_func_start sub_80A8638
@@ -3099,7 +3099,7 @@ sub_80A8638: @ 80A8638
strh r0, [r4, 0xA]
ldr r2, _080A8670 @ =gUnknown_83E3F1C
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080A8674 @ =sub_80A8678
str r0, [r4]
pop {r4}
@@ -3121,7 +3121,7 @@ sub_80A8678: @ 80A8678
lsls r0, 3
ldr r1, _080A86A0 @ =gTasks
adds r0, r1
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080A8698
@@ -3389,7 +3389,7 @@ sub_80A8874: @ 80A8874
adds r5, r1, r0
ldr r4, _080A88C8 @ =gBattleAnimTarget
ldrb r0, [r4]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -3402,10 +3402,10 @@ sub_80A8874: @ 80A8874
strh r1, [r5, 0x10]
strh r1, [r5, 0x12]
ldrb r0, [r4]
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3609,7 +3609,7 @@ sub_80A8A1C: @ 80A8A1C
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
@@ -3622,7 +3622,7 @@ sub_80A8A1C: @ 80A8A1C
strh r5, [r4, 0x36]
ldrb r0, [r6]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x2
strh r0, [r4, 0x38]
movs r0, 0x3F
@@ -3864,7 +3864,7 @@ _080A8BF2:
adds r1, r4, 0
mov r2, sp
adds r3, r7, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
cmp r4, 0
bne _080A8C30
adds r0, r5, 0
@@ -3919,7 +3919,7 @@ _080A8C80: .4byte sub_8075D9C
sub_80A8C84: @ 80A8C84
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080A8C9E
@@ -4128,7 +4128,7 @@ _080A8DFA:
mov r2, sp
mov r3, sp
adds r3, 0x2
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
b _080A8E6C
.align 2, 0
_080A8E40: .4byte gSprites
@@ -4192,7 +4192,7 @@ _080A8E9E:
ldrh r0, [r2]
strh r0, [r5, 0x2E]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r1, _080A8EE4 @ =sub_80A8C84
str r1, [r5, 0x1C]
adds r0, r5, 0
@@ -4252,7 +4252,7 @@ sub_80A8F38: @ 80A8F38
push {r4,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080A8F6C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -4572,7 +4572,7 @@ sub_80A917C: @ 80A917C
strh r1, [r4, 0x8]
ldr r2, _080A91B0 @ =gUnknown_83E4128
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080A91B4 @ =sub_80A91B8
str r0, [r4]
pop {r4}
@@ -4595,7 +4595,7 @@ sub_80A91B8: @ 80A91B8
ldr r1, _080A9208 @ =gTasks
adds r4, r0, r1
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
@@ -5411,7 +5411,7 @@ sub_80A97E8: @ 80A97E8
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r6, _080A9850 @ =gBattleAnimAttacker
ldrb r0, [r6]
bl GetBattlerSide
@@ -5474,7 +5474,7 @@ sub_80A9860: @ 80A9860
bne _080A987A
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
_080A987A:
movs r1, 0x30
ldrsh r0, [r4, r1]
@@ -5708,7 +5708,7 @@ sub_80A9A20: @ 80A9A20
lsrs r1, 24
ldr r2, _080A9A74 @ =gUnknown_83E4200
adds r0, r5, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r1, _080A9A78 @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -5731,7 +5731,7 @@ _080A9A7C:
negs r0, r0
strh r0, [r4, 0x24]
adds r0, r5, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -5777,7 +5777,7 @@ sub_80A9AB0: @ 80A9AB0
lsrs r1, 24
ldr r2, _080A9B04 @ =gUnknown_83E4200
adds r0, r5, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r1, _080A9B08 @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -5800,7 +5800,7 @@ _080A9B0C:
negs r0, r0
strh r0, [r4, 0x24]
adds r0, r5, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -5822,7 +5822,7 @@ sub_80A9B40: @ 80A9B40
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
movs r0, 0x5F
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -5843,7 +5843,7 @@ sub_80A9B40: @ 80A9B40
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, _080A9B88 @ =sub_80A9B8C
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -5858,7 +5858,7 @@ _080A9B88: .4byte sub_80A9B8C
sub_80A9B8C: @ 80A9B8C
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080A9BB6
@@ -5967,7 +5967,7 @@ sub_80A9C4C: @ 80A9C4C
strh r1, [r0, 0x2E]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0x30]
- ldr r1, _080A9C74 @ =sub_8074C44
+ ldr r1, _080A9C74 @ =WaitAnimForDuration
str r1, [r0, 0x1C]
ldr r1, _080A9C78 @ =sub_80A9C7C
bl StoreSpriteCallbackInData6
@@ -5975,7 +5975,7 @@ sub_80A9C4C: @ 80A9C4C
bx r0
.align 2, 0
_080A9C70: .4byte gBattleAnimArgs
-_080A9C74: .4byte sub_8074C44
+_080A9C74: .4byte WaitAnimForDuration
_080A9C78: .4byte sub_80A9C7C
thumb_func_end sub_80A9C4C
@@ -6082,7 +6082,7 @@ _080A9D2A:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
@@ -6360,7 +6360,7 @@ _080A9F98:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
b _080A9FC6
.align 2, 0
_080A9FB4: .4byte gBattleAnimTarget
@@ -6369,7 +6369,7 @@ _080A9FBC:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
_080A9FC6:
mov r0, sp
ldrb r0, [r0, 0x9]
@@ -6907,7 +6907,7 @@ sub_80AA3F0: @ 80AA3F0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080AA404 @ =sub_80AA3D4
str r0, [r4, 0x1C]
pop {r4}
@@ -7439,7 +7439,7 @@ sub_80AA7C8: @ 80AA7C8
adds r4, r0
ldr r2, _080AA804 @ =gUnknown_83E4410
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080AA808 @ =sub_80AA80C
str r0, [r4]
pop {r4,r5}
@@ -7462,7 +7462,7 @@ sub_80AA80C: @ 80AA80C
lsls r0, 3
ldr r1, _080AA834 @ =gTasks
adds r0, r1
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080AA82C
@@ -7640,7 +7640,7 @@ _080AA95A:
lsrs r0, 4
adds r0, 0x10
movs r1, 0
- bl sub_8075B48
+ bl SetGreyscaleOrOriginalPalette
_080AA978:
movs r0, 0x2E
ldrsh r1, [r4, r0]
@@ -7857,7 +7857,7 @@ sub_80AAAE4: @ 80AAAE4
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldrh r0, [r5, 0x22]
adds r0, 0x28
strh r0, [r5, 0x22]
diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s
index 17a770d64..004ad8786 100644
--- a/asm/battle_anim_effects_3.s
+++ b/asm/battle_anim_effects_3.s
@@ -128,7 +128,7 @@ sub_80DE39C: @ 80DE39C
adds r4, r0, 0
movs r0, 0x5A
strh r0, [r4, 0x2E]
- ldr r0, _080DE3D8 @ =sub_8074C44
+ ldr r0, _080DE3D8 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
movs r0, 0x7
strh r0, [r4, 0x30]
@@ -152,7 +152,7 @@ sub_80DE39C: @ 80DE39C
pop {r0}
bx r0
.align 2, 0
-_080DE3D8: .4byte sub_8074C44
+_080DE3D8: .4byte WaitAnimForDuration
_080DE3DC: .4byte sub_80DE3E0
thumb_func_end sub_80DE39C
@@ -228,7 +228,7 @@ sub_80DE440: @ 80DE440
adds r6, r0, 0
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldrh r0, [r5, 0x20]
subs r0, r7
lsls r0, 16
@@ -237,7 +237,7 @@ sub_80DE440: @ 80DE440
subs r1, r6
lsls r1, 16
asrs r1, 16
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
movs r1, 0xC0
lsls r1, 23
@@ -259,7 +259,7 @@ _080DE49E:
adds r0, r5, 0
movs r1, 0
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldr r0, _080DE4D0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
@@ -799,7 +799,7 @@ sub_80DE8B0: @ 80DE8B0
sub sp, 0x4
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080DE914 @ =gBattleAnimTarget
ldrb r0, [r0]
mov r5, sp
@@ -807,7 +807,7 @@ sub_80DE8B0: @ 80DE8B0
movs r1, 0
mov r2, sp
adds r3, r5, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080DE918 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -834,7 +834,7 @@ _080DE8E4:
ldr r0, _080DE920 @ =0x0000ffce
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080DE924 @ =sub_80DE928
str r0, [r4, 0x1C]
add sp, 0x4
@@ -853,7 +853,7 @@ _080DE924: .4byte sub_80DE928
sub_80DE928: @ 80DE928
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080DE94A
@@ -861,7 +861,7 @@ sub_80DE928: @ 80DE928
movs r0, 0x1E
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
- ldr r0, _080DE950 @ =sub_8074C44
+ ldr r0, _080DE950 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080DE954 @ =sub_80DE958
adds r0, r4, 0
@@ -871,7 +871,7 @@ _080DE94A:
pop {r0}
bx r0
.align 2, 0
-_080DE950: .4byte sub_8074C44
+_080DE950: .4byte WaitAnimForDuration
_080DE954: .4byte sub_80DE958
thumb_func_end sub_80DE928
@@ -918,17 +918,17 @@ _080DE998:
sub_80DE99C: @ 80DE99C
push {r4,r5,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r5, _080DE9CC @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080DE9D0 @ =sub_8074F6C
+ ldr r0, _080DE9D0 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080DE9D4 @ =DestroyAnimSprite
adds r0, r4, 0
@@ -938,7 +938,7 @@ sub_80DE99C: @ 80DE99C
bx r0
.align 2, 0
_080DE9CC: .4byte gBattleAnimArgs
-_080DE9D0: .4byte sub_8074F6C
+_080DE9D0: .4byte RunStoredCallbackWhenAnimEnds
_080DE9D4: .4byte DestroyAnimSprite
thumb_func_end sub_80DE99C
@@ -951,12 +951,12 @@ sub_80DE9D8: @ 80DE9D8
cmp r0, 0
bne _080DEA38
adds r0, r4, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r5, _080DEA14 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r5, r2]
adds r0, r4, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -1140,7 +1140,7 @@ sub_80DEB20: @ 80DEB20
bl SetGpuReg
adds r0, r5, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldrb r1, [r5, 0x1]
movs r0, 0xD
negs r0, r0
@@ -1712,11 +1712,11 @@ _080DEFC8:
ldr r4, _080DF010 @ =gBattleAnimTarget
_080DEFCA:
ldrb r0, [r4]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r7, r0, 24
adds r0, r6, 0
@@ -2155,7 +2155,7 @@ _080DF324:
lsrs r1, 24
ldr r2, _080DF348 @ =gUnknown_83FF080
adds r0, r6, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldrh r0, [r6, 0xA]
adds r0, 0x1
strh r0, [r6, 0xA]
@@ -2168,7 +2168,7 @@ _080DF344: .4byte SpriteCallbackDummy
_080DF348: .4byte gUnknown_83FF080
_080DF34C:
adds r0, r6, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -2329,7 +2329,7 @@ sub_80DF468: @ 80DF468
bne _080DF47C
adds r0, r5, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
_080DF47C:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
@@ -2443,7 +2443,7 @@ _080DF548:
lsrs r1, 24
ldr r2, _080DF564 @ =gUnknown_83FF130
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -2452,7 +2452,7 @@ _080DF548:
_080DF564: .4byte gUnknown_83FF130
_080DF568:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080DF57A
@@ -2863,7 +2863,7 @@ sub_80DF848: @ 80DF848
lsrs r1, 24
ldr r2, _080DF884 @ =gUnknown_83FF198
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -2873,7 +2873,7 @@ _080DF880: .4byte gTasks
_080DF884: .4byte gUnknown_83FF198
_080DF888:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080DF89A
@@ -2907,7 +2907,7 @@ sub_80DF8A0: @ 80DF8A0
lsrs r1, 24
ldr r2, _080DF8DC @ =gUnknown_83FF1C0
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -2917,7 +2917,7 @@ _080DF8D8: .4byte gTasks
_080DF8DC: .4byte gUnknown_83FF1C0
_080DF8E0:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080DF8F2
@@ -2943,7 +2943,7 @@ sub_80DF8F8: @ 80DF8F8
_080DF90A:
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
@@ -3008,7 +3008,7 @@ sub_80DF964: @ 80DF964
lsrs r1, 24
ldr r2, _080DF9A0 @ =gUnknown_83FF210
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -3018,7 +3018,7 @@ _080DF99C: .4byte gTasks
_080DF9A0: .4byte gUnknown_83FF210
_080DF9A4:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080DF9B6
@@ -3069,7 +3069,7 @@ _080DFA00:
bl SetGpuReg
ldr r0, _080DFA24 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3234,7 +3234,7 @@ _080DFB58:
bl SetGpuReg
ldr r0, _080DFB7C @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3411,7 +3411,7 @@ _080DFCCE:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080DFD1C @ =gFile_graphics_battle_anims_masks_morning_sun_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080DFD20 @ =gFile_graphics_battle_anims_masks_morning_sun_sheet
@@ -4053,7 +4053,7 @@ _080E01FC:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080E0250 @ =gFile_graphics_battle_anims_masks_morning_sun_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080E0254 @ =gFile_graphics_battle_anims_masks_morning_sun_sheet
@@ -4377,7 +4377,7 @@ sub_80E0488: @ 80E0488
lsrs r1, 24
ldr r2, _080E04C4 @ =gUnknown_83FF290
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -4387,7 +4387,7 @@ _080E04C0: .4byte gTasks
_080E04C4: .4byte gUnknown_83FF290
_080E04C8:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080E04DA
@@ -4410,7 +4410,7 @@ sub_80E04E0: @ 80E04E0
bne _080E04FE
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
@@ -4625,7 +4625,7 @@ _080E065C:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
@@ -4666,7 +4666,7 @@ _080E06B0:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r1, [r4, 0xA]
adds r1, 0x1
strh r1, [r4, 0xA]
@@ -4710,7 +4710,7 @@ _080E0708:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
@@ -5044,7 +5044,7 @@ _080E09BA:
ldrh r0, [r7, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_80759DC
+ bl SetBattlerSpriteYOffsetFromRotation
ldr r2, _080E0A28 @ =gSprites
movs r0, 0x26
ldrsh r1, [r7, r0]
@@ -5276,7 +5276,7 @@ _080E0B88:
movs r3, 0
bl SetSpriteRotScale
adds r0, r5, 0
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
lsls r2, r5, 4
b _080E0BE8
_080E0BA0:
@@ -5295,7 +5295,7 @@ _080E0BB2:
movs r1, 0xD0
bl SetSpriteRotScale
adds r0, r5, 0
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -5551,7 +5551,7 @@ sub_80E0D74: @ 80E0D74
strh r0, [r5, 0x2E]
adds r0, r5, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldrb r1, [r5, 0x1]
movs r0, 0xD
negs r0, r0
@@ -5979,7 +5979,7 @@ _080E110E:
_080E1112:
ldr r0, _080E1200 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r7, r0, 24
ldr r5, _080E1200 @ =gBattleAnimAttacker
@@ -6186,7 +6186,7 @@ sub_80E1274: @ 80E1274
str r4, [sp]
adds r0, r6, 0
movs r1, 0x1
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldrh r0, [r5, 0x20]
adds r0, 0x1
strh r0, [r5, 0x20]
@@ -6197,8 +6197,8 @@ sub_80E1274: @ 80E1274
adds r0, r6, 0
bl sub_8075AD8
adds r0, r6, 0
- bl sub_8076B20
- ldr r0, _080E12F4 @ =sub_8074FA8
+ bl DestroySpriteAndFreeResources_
+ ldr r0, _080E12F4 @ =DestroyAnimVisualTaskAndDisableBlend
str r0, [r5]
_080E12E2:
add sp, 0x4
@@ -6208,7 +6208,7 @@ _080E12E2:
.align 2, 0
_080E12EC: .4byte gTasks
_080E12F0: .4byte gSprites
-_080E12F4: .4byte sub_8074FA8
+_080E12F4: .4byte DestroyAnimVisualTaskAndDisableBlend
thumb_func_end sub_80E1274
thumb_func_start sub_80E12F8
@@ -6262,7 +6262,7 @@ _080E1326:
strh r0, [r4, 0x18]
_080E1358:
adds r0, r5, 0
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
subs r0, 0x22
@@ -6281,7 +6281,7 @@ _080E136C:
lsrs r0, 24
strh r0, [r4, 0x26]
adds r0, r5, 0
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6389,7 +6389,7 @@ sub_80E1450: @ 80E1450
ldr r1, _080E1484 @ =gTasks
adds r6, r0, r1
ldrb r0, [r6, 0x12]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6750,7 +6750,7 @@ sub_80E1704: @ 80E1704
strh r1, [r4, 0x26]
ldr r2, _080E1744 @ =gUnknown_83FF3D0
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080E1748 @ =sub_80E174C
str r0, [r4]
pop {r4}
@@ -6826,7 +6826,7 @@ _080E17C0:
adds r0, r4
lsls r0, 3
adds r0, r6
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080E17D8
@@ -6920,7 +6920,7 @@ sub_80E186C: @ 80E186C
adds r4, r0, 0
ldrh r6, [r4, 0x20]
ldrh r5, [r4, 0x22]
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r0, _080E18B4 @ =gBattleAnimArgs
ldrb r1, [r0]
adds r0, r4, 0
@@ -7001,7 +7001,7 @@ sub_80E18BC: @ 80E18BC
cmp r0, 0x3
ble _080E1922
adds r0, r5, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080E1922:
pop {r4,r5}
pop {r0}
@@ -7626,7 +7626,7 @@ _080E1DA2:
strh r1, [r5, 0x26]
ldr r2, _080E1DF8 @ =gUnknown_83FF52C
adds r0, r5, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080E1DFC @ =sub_80E1E00
str r0, [r5]
pop {r4,r5}
@@ -7679,7 +7679,7 @@ _080E1E3A:
bl sub_80E1E98
_080E1E4A:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -7701,7 +7701,7 @@ _080E1E6C:
lsrs r1, 24
ldr r2, _080E1E80 @ =gUnknown_83FF52C
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
b _080E1E92
.align 2, 0
_080E1E80: .4byte gUnknown_83FF52C
@@ -8168,7 +8168,7 @@ sub_80E21CC: @ 80E21CC
adds r4, r0, 0
ldrb r0, [r5]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r4, 24
lsrs r4, 24
lsls r0, 16
@@ -8190,7 +8190,7 @@ _080E2224:
adds r4, r0, 0
ldrb r0, [r5]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r4, 24
lsrs r4, 24
lsls r0, 16
@@ -8210,7 +8210,7 @@ _080E2248:
adds r4, r0, 0
ldrb r0, [r5]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r4, 24
lsrs r4, 24
lsls r0, 16
@@ -8565,7 +8565,7 @@ sub_80E24E0: @ 80E24E0
ldr r1, _080E2510 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080E2514 @ =sub_8075764
+ ldr r0, _080E2514 @ =InitAndRunAnimFastLinearTranslation
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
@@ -8573,7 +8573,7 @@ sub_80E24E0: @ 80E24E0
.align 2, 0
_080E250C: .4byte gBattleAnimArgs
_080E2510: .4byte DestroyAnimSprite
-_080E2514: .4byte sub_8075764
+_080E2514: .4byte InitAndRunAnimFastLinearTranslation
thumb_func_end sub_80E24E0
thumb_func_start sub_80E2518
@@ -8622,7 +8622,7 @@ sub_80E2518: @ 80E2518
mov r1, r8
ldrb r0, [r1]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r4, 24
lsrs r4, 24
lsls r0, 16
@@ -8694,7 +8694,7 @@ _080E258A:
adds r0, r1
lsls r0, 2
adds r0, r4
- bl sub_8075068
+ bl InitAnimArcTranslation
mov r1, r10
ldrb r0, [r1]
bl GetBattlerSide
@@ -8778,7 +8778,7 @@ _080E269A:
lsls r0, 2
ldr r1, _080E26CC @ =gSprites
adds r0, r1
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -8797,7 +8797,7 @@ _080E26D0:
lsls r0, 2
ldr r1, _080E26F0 @ =gSprites
adds r0, r1
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080E276E
@@ -8938,7 +8938,7 @@ _080E27C0:
strb r0, [r4, 0x3]
adds r0, r5, 0
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
b _080E280E
.align 2, 0
@@ -8948,7 +8948,7 @@ _080E2800: .4byte 0xfffffc00
_080E2804:
adds r0, r5, 0
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
_080E280E:
strh r0, [r4, 0x20]
@@ -9098,7 +9098,7 @@ _080E28F8:
strh r1, [r4, 0x26]
ldr r2, _080E292C @ =gUnknown_83FF65C
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080E2930 @ =sub_80E2934
str r0, [r4]
_080E2920:
@@ -9160,7 +9160,7 @@ _080E298C:
strh r1, [r0, 0x24]
_080E298E:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -9188,7 +9188,7 @@ _080E298E:
lsls r1, 24
lsrs r1, 24
ldr r2, _080E29E0 @ =gUnknown_83FF65C
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
strh r5, [r4, 0xA]
strh r5, [r4, 0xC]
b _080E29EA
@@ -9231,7 +9231,7 @@ _080E2A0E:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
strh r0, [r5, 0x22]
movs r1, 0x22
ldrsh r0, [r5, r1]
@@ -9902,7 +9902,7 @@ sub_80E2F14: @ 80E2F14
bne _080E2F38
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080E2F34 @ =gBattleAnimAttacker
b _080E2F3A
.align 2, 0
@@ -9932,7 +9932,7 @@ _080E2F5E:
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r2, 0x3
ands r2, r0
lsls r2, 2
@@ -10010,7 +10010,7 @@ _080E2FFC:
lsls r0, 24
lsrs r0, 24
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x4
lsls r0, 16
lsrs r5, r0, 16
@@ -10024,7 +10024,7 @@ _080E3018:
lsls r0, 24
lsrs r0, 24
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x4
lsls r0, 16
lsrs r5, r0, 16
@@ -10032,7 +10032,7 @@ _080E3018:
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x4
b _080E3076
_080E303A:
@@ -10040,7 +10040,7 @@ _080E303A:
lsls r0, 24
lsrs r0, 24
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x4
lsls r0, 16
lsrs r5, r0, 16
@@ -10054,7 +10054,7 @@ _080E3056:
lsls r0, 24
lsrs r0, 24
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x4
lsls r0, 16
lsrs r5, r0, 16
@@ -10063,7 +10063,7 @@ _080E3056:
lsrs r0, 24
movs r1, 0x2
_080E3070:
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x4
_080E3076:
lsls r0, 16
@@ -10107,11 +10107,11 @@ _080E30B2:
strh r0, [r4, 0x34]
strh r1, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
b _080E3188
_080E30C8:
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080E3196
@@ -11699,7 +11699,7 @@ _080E3D0C:
lsls r0, 2
ldr r5, _080E3D5C @ =gSprites
adds r0, r5
- bl sub_8076B20
+ bl DestroySpriteAndFreeResources_
ldr r0, _080E3D60 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -12532,7 +12532,7 @@ sub_80E43A4: @ 80E43A4
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
strh r0, [r5, 0x22]
lsls r0, 16
asrs r0, 16
@@ -12688,7 +12688,7 @@ _080E44D6:
b _080E44E4
_080E44DE:
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080E44E4:
pop {r4}
pop {r0}
@@ -12764,7 +12764,7 @@ sub_80E4540: @ 80E4540
strh r1, [r4, 0x26]
ldr r2, _080E4580 @ =gUnknown_83FF7A8
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080E4584 @ =sub_80E4588
str r0, [r4]
pop {r4}
@@ -12840,7 +12840,7 @@ _080E45FC:
adds r0, r4
lsls r0, 3
adds r0, r6
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080E4614
diff --git a/asm/battle_anim_mons.s b/asm/battle_anim_mons.s
deleted file mode 100644
index 0af94400b..000000000
--- a/asm/battle_anim_mons.s
+++ /dev/null
@@ -1,6343 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetBattlerSpriteCoord
-GetBattlerSpriteCoord: @ 8074480
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r4, 0x4
- bhi _08074500
- lsls r0, r4, 2
- ldr r1, _08074498 @ =_0807449C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08074498: .4byte _0807449C
- .align 2, 0
-_0807449C:
- .4byte _080744B0
- .4byte _080744D8
- .4byte _080744B0
- .4byte _08074500
- .4byte _08074500
-_080744B0:
- ldr r4, _080744D0 @ =gUnknown_83AE01C
- adds r0, r5, 0
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _080744D4 @ =gBattleTypeFlags
- ldr r1, [r1]
- movs r2, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- b _08074588
- .align 2, 0
-_080744D0: .4byte gUnknown_83AE01C
-_080744D4: .4byte gBattleTypeFlags
-_080744D8:
- ldr r4, _080744F8 @ =gUnknown_83AE01C
- adds r0, r5, 0
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _080744FC @ =gBattleTypeFlags
- ldr r1, [r1]
- movs r2, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1]
- b _08074588
- .align 2, 0
-_080744F8: .4byte gUnknown_83AE01C
-_080744FC: .4byte gBattleTypeFlags
-_08074500:
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08074538
- ldr r0, _0807452C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08074570
- ldr r1, _08074530 @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08074534 @ =gEnemyParty
- b _08074556
- .align 2, 0
-_0807452C: .4byte gBattleSpritesDataPtr
-_08074530: .4byte gBattlerPartyIndexes
-_08074534: .4byte gEnemyParty
-_08074538:
- ldr r0, _08074564 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08074570
- ldr r1, _08074568 @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807456C @ =gPlayerParty
-_08074556:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _08074572
- .align 2, 0
-_08074564: .4byte gBattleSpritesDataPtr
-_08074568: .4byte gBattlerPartyIndexes
-_0807456C: .4byte gPlayerParty
-_08074570:
- ldrh r1, [r1, 0x2]
-_08074572:
- cmp r4, 0x3
- bne _0807457C
- adds r0, r5, 0
- movs r2, 0x1
- b _08074580
-_0807457C:
- adds r0, r5, 0
- movs r2, 0
-_08074580:
- bl sub_80747AC
- lsls r0, 24
- lsrs r0, 24
-_08074588:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetBattlerSpriteCoord
-
- thumb_func_start sub_8074590
-sub_8074590: @ 8074590
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r7, r4, 0
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08074674
- cmp r4, 0xC9
- bne _08074638
- ldr r0, _080745D8 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- bne _080745E4
- ldr r1, _080745DC @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080745E0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _080745EA
- .align 2, 0
-_080745D8: .4byte gBattleSpritesDataPtr
-_080745DC: .4byte gBattlerPartyIndexes
-_080745E0: .4byte gPlayerParty
-_080745E4:
- ldr r0, _08074620 @ =gTransformedPersonalities
- adds r0, r1, r0
- ldr r2, [r0]
-_080745EA:
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08074624
- adds r0, r7, 0
- b _0807462E
- .align 2, 0
-_08074620: .4byte gTransformedPersonalities
-_08074624:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0807462E:
- ldr r1, _08074634 @ =gUnknown_8235E6C
- lsls r0, 2
- b _0807473C
- .align 2, 0
-_08074634: .4byte gUnknown_8235E6C
-_08074638:
- ldr r0, _0807464C @ =0x00000181
- cmp r4, r0
- bne _08074658
- ldr r0, _08074650 @ =gUnknown_83AE050
- ldr r1, _08074654 @ =gBattleMonForms
- adds r1, r5, r1
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- b _08074740
- .align 2, 0
-_0807464C: .4byte 0x00000181
-_08074650: .4byte gUnknown_83AE050
-_08074654: .4byte gBattleMonForms
-_08074658:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08074668
- ldr r0, _08074664 @ =gUnknown_8235E6C
- b _0807473E
- .align 2, 0
-_08074664: .4byte gUnknown_8235E6C
-_08074668:
- ldr r1, _08074670 @ =gUnknown_8235E6C
- lsls r0, r4, 2
- b _0807473C
- .align 2, 0
-_08074670: .4byte gUnknown_8235E6C
-_08074674:
- cmp r4, 0xC9
- bne _08074704
- ldr r0, _080746A4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- bne _080746B0
- ldr r1, _080746A8 @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080746AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _080746B6
- .align 2, 0
-_080746A4: .4byte gBattleSpritesDataPtr
-_080746A8: .4byte gBattlerPartyIndexes
-_080746AC: .4byte gEnemyParty
-_080746B0:
- ldr r0, _080746EC @ =gTransformedPersonalities
- adds r0, r1, r0
- ldr r2, [r0]
-_080746B6:
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _080746F0
- adds r0, r7, 0
- b _080746FA
- .align 2, 0
-_080746EC: .4byte gTransformedPersonalities
-_080746F0:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_080746FA:
- ldr r1, _08074700 @ =gUnknown_82349CC
- lsls r0, 2
- b _0807473C
- .align 2, 0
-_08074700: .4byte gUnknown_82349CC
-_08074704:
- ldr r0, _0807471C @ =0x00000181
- cmp r4, r0
- bne _08074728
- ldr r0, _08074720 @ =gUnknown_83AE03C
- ldr r1, _08074724 @ =gBattleMonForms
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _08074740
- .align 2, 0
-_0807471C: .4byte 0x00000181
-_08074720: .4byte gUnknown_83AE03C
-_08074724: .4byte gBattleMonForms
-_08074728:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08074738
- ldr r0, _08074734 @ =gUnknown_82349CC
- b _0807473E
- .align 2, 0
-_08074734: .4byte gUnknown_82349CC
-_08074738:
- ldr r1, _08074748 @ =gUnknown_82349CC
- lsls r0, r7, 2
-_0807473C:
- adds r0, r1
-_0807473E:
- ldrb r0, [r0, 0x1]
-_08074740:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08074748: .4byte gUnknown_82349CC
- thumb_func_end sub_8074590
-
- thumb_func_start sub_807474C
-sub_807474C: @ 807474C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- adds r7, r4, 0
- movs r5, 0
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807479E
- ldr r0, _0807477C @ =0x00000181
- cmp r4, r0
- bne _08074788
- ldr r0, _08074780 @ =gUnknown_83AE04C
- ldr r1, _08074784 @ =gBattleMonForms
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- b _0807479E
- .align 2, 0
-_0807477C: .4byte 0x00000181
-_08074780: .4byte gUnknown_83AE04C
-_08074784: .4byte gBattleMonForms
-_08074788:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08074798
- ldr r0, _08074794 @ =gEnemyMonElevation
- b _0807479C
- .align 2, 0
-_08074794: .4byte gEnemyMonElevation
-_08074798:
- ldr r0, _080747A8 @ =gEnemyMonElevation
- adds r0, r7, r0
-_0807479C:
- ldrb r5, [r0]
-_0807479E:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080747A8: .4byte gEnemyMonElevation
- thumb_func_end sub_807474C
-
- thumb_func_start sub_80747AC
-sub_80747AC: @ 80747AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080747D4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8074590
- lsls r0, 24
- lsrs r5, r0, 24
- b _080747F2
-_080747D4:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8074590
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_807474C
- lsls r0, 24
- lsrs r0, 24
- subs r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
-_080747F2:
- adds r0, r6, 0
- bl GetBattlerPosition
- ldr r3, _0807483C @ =gUnknown_83AE01C
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _08074840 @ =gBattleTypeFlags
- ldr r1, [r1]
- movs r2, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0, 0x1]
- adds r0, r5
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, 0
- beq _08074832
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0807482C
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_0807482C:
- cmp r4, 0x68
- bls _08074832
- movs r4, 0x68
-_08074832:
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807483C: .4byte gUnknown_83AE01C
-_08074840: .4byte gBattleTypeFlags
- thumb_func_end sub_80747AC
-
- thumb_func_start sub_8074844
-sub_8074844: @ 8074844
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r0, 0xFD
- lsls r0, 24
- adds r1, r0
- lsrs r1, 24
- cmp r1, 0x1
- bhi _08074896
- ldr r0, _08074874 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0807487C
- ldr r1, _08074878 @ =gAnimBattlerSpecies
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0807487E
- .align 2, 0
-_08074874: .4byte gBattleSpritesDataPtr
-_08074878: .4byte gAnimBattlerSpecies
-_0807487C:
- ldrh r1, [r1, 0x2]
-_0807487E:
- cmp r3, 0x3
- bne _0807488C
- adds r0, r2, 0
- movs r2, 0x1
- bl sub_80747AC
- b _0807489E
-_0807488C:
- adds r0, r2, 0
- movs r2, 0
- bl sub_80747AC
- b _0807489E
-_08074896:
- adds r0, r2, 0
- adds r1, r3, 0
- bl GetBattlerSpriteCoord
-_0807489E:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8074844
-
- thumb_func_start GetBattlerSpriteDefault_Y
-GetBattlerSpriteDefault_Y: @ 80748A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetBattlerSpriteDefault_Y
-
- thumb_func_start GetSubstituteSpriteDefault_Y
-GetSubstituteSpriteDefault_Y: @ 80748BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080748E0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x80
- lsls r1, 13
- b _080748F0
-_080748E0:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x88
- lsls r1, 13
-_080748F0:
- adds r0, r1
- lsrs r0, 16
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetSubstituteSpriteDefault_Y
-
- thumb_func_start GetGhostSpriteDefault_Y
-GetGhostSpriteDefault_Y: @ 8074900
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807491A
- adds r0, r4, 0
- movs r1, 0x1
- b _0807491E
-_0807491A:
- adds r0, r4, 0
- movs r1, 0x4
-_0807491E:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetGhostSpriteDefault_Y
-
- thumb_func_start sub_807492C
-sub_807492C: @ 807492C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08074978
- ldr r0, _0807496C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080749B0
- ldr r1, _08074970 @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08074974 @ =gEnemyParty
- b _08074996
- .align 2, 0
-_0807496C: .4byte gBattleSpritesDataPtr
-_08074970: .4byte gBattlerPartyIndexes
-_08074974: .4byte gEnemyParty
-_08074978:
- ldr r0, _080749A4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080749B0
- ldr r1, _080749A8 @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080749AC @ =gPlayerParty
-_08074996:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- b _080749B2
- .align 2, 0
-_080749A4: .4byte gBattleSpritesDataPtr
-_080749A8: .4byte gBattlerPartyIndexes
-_080749AC: .4byte gPlayerParty
-_080749B0:
- ldrh r4, [r1, 0x2]
-_080749B2:
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080749CC
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_807474C
- subs r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
-_080749CC:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807492C
-
- thumb_func_start GetAnimBattlerSpriteId
-GetAnimBattlerSpriteId: @ 80749D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- bne _080749FC
- ldr r4, _080749F4 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- bl IsBattlerSpritePresent
- lsls r0, 24
- cmp r0, 0
- beq _08074A4A
- ldr r1, _080749F8 @ =gBattlerSpriteIds
- ldrb r0, [r4]
- b _08074A5A
- .align 2, 0
-_080749F4: .4byte gBattleAnimAttacker
-_080749F8: .4byte gBattlerSpriteIds
-_080749FC:
- cmp r0, 0x1
- bne _08074A1C
- ldr r4, _08074A14 @ =gBattleAnimTarget
- ldrb r0, [r4]
- bl IsBattlerSpritePresent
- lsls r0, 24
- cmp r0, 0
- beq _08074A4A
- ldr r1, _08074A18 @ =gBattlerSpriteIds
- ldrb r0, [r4]
- b _08074A5A
- .align 2, 0
-_08074A14: .4byte gBattleAnimTarget
-_08074A18: .4byte gBattlerSpriteIds
-_08074A1C:
- cmp r1, 0x2
- bne _08074A38
- ldr r5, _08074A34 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08074A4A
- b _08074A54
- .align 2, 0
-_08074A34: .4byte gBattleAnimAttacker
-_08074A38:
- ldr r5, _08074A50 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _08074A54
-_08074A4A:
- movs r0, 0xFF
- b _08074A5E
- .align 2, 0
-_08074A50: .4byte gBattleAnimTarget
-_08074A54:
- ldr r1, _08074A64 @ =gBattlerSpriteIds
- ldrb r0, [r5]
- eors r0, r4
-_08074A5A:
- adds r0, r1
- ldrb r0, [r0]
-_08074A5E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08074A64: .4byte gBattlerSpriteIds
- thumb_func_end GetAnimBattlerSpriteId
-
- thumb_func_start StoreSpriteCallbackInData6
-StoreSpriteCallbackInData6: @ 8074A68
- strh r1, [r0, 0x3A]
- lsrs r1, 16
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end StoreSpriteCallbackInData6
-
- thumb_func_start SetCallbackToStoredInData
-SetCallbackToStoredInData: @ 8074A70
- ldrh r2, [r0, 0x3A]
- movs r3, 0x3C
- ldrsh r1, [r0, r3]
- lsls r1, 16
- orrs r2, r1
- str r2, [r0, 0x1C]
- bx lr
- thumb_func_end SetCallbackToStoredInData
-
- thumb_func_start sub_8074A80
-sub_8074A80: @ 8074A80
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08074AD4
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08074AC0
- ldr r2, _08074ABC @ =0xffffff00
- b _08074AC8
- .align 2, 0
-_08074ABC: .4byte 0xffffff00
-_08074AC0:
- cmp r0, 0
- bge _08074ACC
- movs r2, 0x80
- lsls r2, 1
-_08074AC8:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08074ACC:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _08074ADA
-_08074AD4:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074ADA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074A80
-
- thumb_func_start sub_8074AE0
-sub_8074AE0: @ 8074AE0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08074B50
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08074B3C
- ldr r2, _08074B38 @ =0xffffff00
- b _08074B44
- .align 2, 0
-_08074B38: .4byte 0xffffff00
-_08074B3C:
- cmp r0, 0
- bge _08074B48
- movs r2, 0x80
- lsls r2, 1
-_08074B44:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08074B48:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _08074B56
-_08074B50:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074B56:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074AE0
-
- thumb_func_start sub_8074B5C
-sub_8074B5C: @ 8074B5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08074BD8
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08074BA4
- ldr r2, _08074BA0 @ =0xffffff00
- b _08074BAC
- .align 2, 0
-_08074BA0: .4byte 0xffffff00
-_08074BA4:
- cmp r0, 0
- bge _08074BB0
- movs r2, 0x80
- lsls r2, 1
-_08074BAC:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08074BB0:
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- ble _08074BC4
- ldr r2, _08074BC0 @ =0xffffff00
- b _08074BCC
- .align 2, 0
-_08074BC0: .4byte 0xffffff00
-_08074BC4:
- cmp r0, 0
- bge _08074BD0
- movs r2, 0x80
- lsls r2, 1
-_08074BCC:
- adds r0, r1, r2
- strh r0, [r4, 0x36]
-_08074BD0:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _08074BDE
-_08074BD8:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074BDE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074B5C
-
- thumb_func_start sub_8074BE4
-sub_8074BE4: @ 8074BE4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08074C38
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08074C24
- ldr r2, _08074C20 @ =0xffffff00
- b _08074C2C
- .align 2, 0
-_08074C20: .4byte 0xffffff00
-_08074C24:
- cmp r0, 0
- bge _08074C30
- movs r2, 0x80
- lsls r2, 1
-_08074C2C:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08074C30:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _08074C3E
-_08074C38:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074C3E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074BE4
-
- thumb_func_start sub_8074C44
-sub_8074C44: @ 8074C44
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08074C58
- subs r0, r2, 0x1
- strh r0, [r1, 0x2E]
- b _08074C5E
-_08074C58:
- adds r0, r1, 0
- bl SetCallbackToStoredInData
-_08074C5E:
- pop {r0}
- bx r0
- thumb_func_end sub_8074C44
-
- thumb_func_start sub_8074C64
-sub_8074C64: @ 8074C64
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074C80
- ldr r1, _08074C7C @ =sub_8074CD0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08074C7C: .4byte sub_8074CD0
- thumb_func_end sub_8074C64
-
- thumb_func_start sub_8074C80
-sub_8074C80: @ 8074C80
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08074C96
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
-_08074C96:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- ldrh r5, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- cmp r0, 0
- bge _08074CB0
- negs r0, r0
-_08074CB0:
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x30]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8074C80
-
- thumb_func_start sub_8074CD0
-sub_8074CD0: @ 8074CD0
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08074CF4
- subs r0, r2, 0x1
- strh r0, [r1, 0x2E]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- ldrh r3, [r1, 0x26]
- adds r0, r3
- strh r0, [r1, 0x26]
- b _08074CFA
-_08074CF4:
- adds r0, r1, 0
- bl SetCallbackToStoredInData
-_08074CFA:
- pop {r0}
- bx r0
- thumb_func_end sub_8074CD0
-
- thumb_func_start sub_8074D00
-sub_8074D00: @ 8074D00
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _08074D30
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r0, r1
- strh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- b _08074D36
-_08074D30:
- adds r0, r2, 0
- bl SetCallbackToStoredInData
-_08074D36:
- pop {r0}
- bx r0
- thumb_func_end sub_8074D00
-
- thumb_func_start sub_8074D3C
-sub_8074D3C: @ 8074D3C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08074D6C
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- b _08074D72
-_08074D6C:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074D72:
- adds r0, r4, 0
- bl UpdateMonIconFrame
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074D3C
-
- thumb_func_start sub_8074D80
-sub_8074D80: @ 8074D80
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldr r5, _08074DBC @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _08074DC0 @ =sub_8074C64
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08074DBC: .4byte gBattleAnimTarget
-_08074DC0: .4byte sub_8074C64
- thumb_func_end sub_8074D80
-
- thumb_func_start TranslateMonSpriteLinear
-TranslateMonSpriteLinear: @ 8074DC4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _08074E08
- subs r0, r1, 0x1
- strh r0, [r3, 0x2E]
- ldr r2, _08074E04 @ =gSprites
- movs r4, 0x34
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x30]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x34
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x32]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- b _08074E0E
- .align 2, 0
-_08074E04: .4byte gSprites
-_08074E08:
- adds r0, r3, 0
- bl SetCallbackToStoredInData
-_08074E0E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end TranslateMonSpriteLinear
-
- thumb_func_start TranslateMonSpriteLinearFixedPoint
-TranslateMonSpriteLinearFixedPoint: @ 8074E14
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08074E64
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r1, r0
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldr r3, _08074E60 @ =gSprites
- movs r0, 0x38
- ldrsh r2, [r4, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- lsls r1, 16
- asrs r1, 24
- strh r1, [r0, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
- b _08074E6A
- .align 2, 0
-_08074E60: .4byte gSprites
-_08074E64:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074E6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end TranslateMonSpriteLinearFixedPoint
-
- thumb_func_start sub_8074E70
-sub_8074E70: @ 8074E70
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08074ED2
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08074ED8
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08074ED8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08074ED8
-_08074ED2:
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08074ED8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074E70
-
- thumb_func_start move_anim_8074EE0
-move_anim_8074EE0: @ 8074EE0
- push {r4,lr}
- adds r4, r0, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end move_anim_8074EE0
-
- thumb_func_start sub_8074EF4
-sub_8074EF4: @ 8074EF4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldr r5, _08074F30 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _08074F34 @ =sub_8074C64
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08074F30: .4byte gBattleAnimAttacker
-_08074F34: .4byte sub_8074C64
- thumb_func_end sub_8074EF4
-
- thumb_func_start sub_8074F38
-sub_8074F38: @ 8074F38
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- bl ResetPaletteStructByUid
- adds r0, r4, 0
- bl move_anim_8074EE0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074F38
-
- thumb_func_start sub_8074F50
-sub_8074F50: @ 8074F50
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08074F66
- adds r0, r2, 0
- bl SetCallbackToStoredInData
-_08074F66:
- pop {r0}
- bx r0
- thumb_func_end sub_8074F50
-
- thumb_func_start sub_8074F6C
-sub_8074F6C: @ 8074F6C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08074F82
- adds r0, r2, 0
- bl SetCallbackToStoredInData
-_08074F82:
- pop {r0}
- bx r0
- thumb_func_end sub_8074F6C
-
- thumb_func_start sub_8074F88
-sub_8074F88: @ 8074F88
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074F88
-
- thumb_func_start sub_8074FA8
-sub_8074FA8: @ 8074FA8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8074FA8
-
- thumb_func_start sub_8074FCC
-sub_8074FCC: @ 8074FCC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08074FF4 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08074FF4: .4byte gBattleAnimAttacker
- thumb_func_end sub_8074FCC
-
- thumb_func_start sub_8074FF8
-sub_8074FF8: @ 8074FF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- mov r8, r5
- ldr r7, _08075030 @ =gBattleAnimAttacker
- ldrb r0, [r7]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08075034 @ =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bhi _08075044
- cmp r6, r0
- bcs _08075038
- lsls r0, r5, 16
- b _08075054
- .align 2, 0
-_08075030: .4byte gBattleAnimAttacker
-_08075034: .4byte gBattleAnimTarget
-_08075038:
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08075050
-_08075044:
- ldrh r1, [r4, 0x20]
- lsls r0, r5, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r4, 0x20]
- b _0807505C
-_08075050:
- mov r1, r8
- lsls r0, r1, 16
-_08075054:
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_0807505C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8074FF8
-
- thumb_func_start sub_8075068
-sub_8075068: @ 8075068
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- movs r5, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- strh r0, [r4, 0x3A]
- strh r5, [r4, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8075068
-
- thumb_func_start AnimateBallThrow
-AnimateBallThrow: @ 8075094
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080750C0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0
- b _080750C2
-_080750C0:
- movs r0, 0x1
-_080750C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end AnimateBallThrow
-
- thumb_func_start sub_80750C8
-sub_80750C8: @ 80750C8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- bne _080750F4
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0
- b _080750F6
-_080750F4:
- movs r0, 0x1
-_080750F6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80750C8
-
- thumb_func_start SetSpritePrimaryCoordsFromSecondaryCoords
-SetSpritePrimaryCoordsFromSecondaryCoords: @ 80750FC
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x26]
- ldrh r3, [r0, 0x22]
- adds r1, r3
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
- bx lr
- thumb_func_end SetSpritePrimaryCoordsFromSecondaryCoords
-
- thumb_func_start sub_8075114
-sub_8075114: @ 8075114
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- bne _0807513C
- ldr r4, _08075158 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0807513C:
- ldr r4, _0807515C @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08075158: .4byte gBattleAnimTarget
-_0807515C: .4byte gBattleAnimArgs
- thumb_func_end sub_8075114
-
- thumb_func_start sub_8075160
-sub_8075160: @ 8075160
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- bne _08075184
- ldr r4, _08075180 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- b _08075198
- .align 2, 0
-_08075180: .4byte gBattleAnimAttacker
-_08075184:
- ldr r4, _080751BC @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
-_08075198:
- bl sub_8074844
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080751C0 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_8074FF8
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080751BC: .4byte gBattleAnimAttacker
-_080751C0: .4byte gBattleAnimArgs
- thumb_func_end sub_8075160
-
- thumb_func_start GetBattlerSide
-GetBattlerSide: @ 80751C4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080751D4 @ =gBattlerPositions
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_080751D4: .4byte gBattlerPositions
- thumb_func_end GetBattlerSide
-
- thumb_func_start GetBattlerPosition
-GetBattlerPosition: @ 80751D8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080751E4 @ =gBattlerPositions
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080751E4: .4byte gBattlerPositions
- thumb_func_end GetBattlerPosition
-
- thumb_func_start GetBattlerAtPosition
-GetBattlerAtPosition: @ 80751E8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r1, 0
- ldr r0, _0807521C @ =gBattlersCount
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08075212
- ldr r4, _08075220 @ =gBattlerPositions
- ldrb r0, [r4]
- cmp r0, r3
- beq _08075212
-_08075200:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- bcs _08075212
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _08075200
-_08075212:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807521C: .4byte gBattlersCount
-_08075220: .4byte gBattlerPositions
- thumb_func_end GetBattlerAtPosition
-
- thumb_func_start IsBattlerSpritePresent
-IsBattlerSpritePresent: @ 8075224
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08075254 @ =gBattlerPositions
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08075288
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08075260
- ldr r1, _08075258 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807525C @ =gEnemyParty
- b _0807526E
- .align 2, 0
-_08075254: .4byte gBattlerPositions
-_08075258: .4byte gBattlerPartyIndexes
-_0807525C: .4byte gEnemyParty
-_08075260:
- ldr r1, _08075280 @ =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08075284 @ =gPlayerParty
-_0807526E:
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08075288
- movs r0, 0x1
- b _0807528A
- .align 2, 0
-_08075280: .4byte gBattlerPartyIndexes
-_08075284: .4byte gPlayerParty
-_08075288:
- movs r0, 0
-_0807528A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsBattlerSpritePresent
-
- thumb_func_start IsDoubleBattle
-IsDoubleBattle: @ 8075290
- ldr r0, _0807529C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0807529C: .4byte gBattleTypeFlags
- thumb_func_end IsDoubleBattle
-
- thumb_func_start sub_80752A0
-sub_80752A0: @ 80752A0
- ldr r1, _080752C0 @ =gUnknown_2022BB8
- ldr r1, [r1]
- str r1, [r0]
- ldr r1, _080752C4 @ =gUnknown_2022BBC
- ldr r1, [r1]
- str r1, [r0, 0x4]
- movs r2, 0
- movs r1, 0x8
- strb r1, [r0, 0x8]
- movs r1, 0x1
- strb r1, [r0, 0x9]
- movs r1, 0x80
- lsls r1, 2
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- bx lr
- .align 2, 0
-_080752C0: .4byte gUnknown_2022BB8
-_080752C4: .4byte gUnknown_2022BBC
- thumb_func_end sub_80752A0
-
- thumb_func_start sub_80752C8
-sub_80752C8: @ 80752C8
- push {lr}
- adds r2, r0, 0
- cmp r1, 0x1
- bne _080752D6
- bl sub_80752A0
- b _080752F4
-_080752D6:
- ldr r0, _080752F8 @ =gUnknown_2022BB8
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, _080752FC @ =gUnknown_2022BBC
- ldr r0, [r0]
- str r0, [r2, 0x4]
- movs r1, 0
- movs r0, 0x9
- strb r0, [r2, 0x8]
- movs r0, 0x2
- strb r0, [r2, 0x9]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r2, 0xA]
- strh r1, [r2, 0xC]
-_080752F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080752F8: .4byte gUnknown_2022BB8
-_080752FC: .4byte gUnknown_2022BBC
- thumb_func_end sub_80752C8
-
- thumb_func_start sub_8075300
-sub_8075300: @ 8075300
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08075334 @ =gUnknown_2022BB8
- ldr r0, [r0]
- str r0, [r4]
- ldr r0, _08075338 @ =gUnknown_2022BBC
- ldr r0, [r0]
- str r0, [r4, 0x4]
- ldr r0, _0807533C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80768B0
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bne _08075340
- movs r0, 0
- movs r1, 0x8
- strb r1, [r4, 0x8]
- strb r2, [r4, 0x9]
- movs r1, 0x80
- lsls r1, 2
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08075352
- .align 2, 0
-_08075334: .4byte gUnknown_2022BB8
-_08075338: .4byte gUnknown_2022BBC
-_0807533C: .4byte gBattleAnimAttacker
-_08075340:
- movs r1, 0
- movs r0, 0x9
- strb r0, [r4, 0x8]
- movs r0, 0x2
- strb r0, [r4, 0x9]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r4, 0xA]
- strh r1, [r4, 0xC]
-_08075352:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075300
-
- thumb_func_start sub_8075358
-sub_8075358: @ 8075358
- push {r4,lr}
- sub sp, 0x20
- adds r4, r0, 0
- add r0, sp, 0xC
- adds r1, r4, 0
- bl sub_80752C8
- movs r0, 0
- str r0, [sp, 0x1C]
- add r0, sp, 0x1C
- ldr r1, [sp, 0xC]
- ldr r2, _080753B0 @ =0x05000800
- bl CpuSet
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [sp, 0xC]
- movs r2, 0x80
- lsls r2, 6
- add r0, sp, 0xC
- ldrh r3, [r0, 0xA]
- adds r0, r4, 0
- bl LoadBgTiles
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- adds r0, r4, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080753B0: .4byte 0x05000800
- thumb_func_end sub_8075358
-
- thumb_func_start AnimLoadCompressedBgGfx
-AnimLoadCompressedBgGfx: @ 80753B4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r5, r0, 0
- mov r8, r1
- adds r6, r2, 0
- movs r0, 0
- str r0, [sp]
- ldr r4, _080753FC @ =gUnknown_2022BB8
- ldr r1, [r4]
- ldr r2, _08075400 @ =0x05000800
- mov r0, sp
- bl CpuSet
- ldr r1, [r4]
- mov r0, r8
- bl LZDecompressWram
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 6
- lsls r6, 16
- lsrs r6, 16
- adds r0, r5, 0
- adds r3, r6, 0
- bl LoadBgTiles
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080753FC: .4byte gUnknown_2022BB8
-_08075400: .4byte 0x05000800
- thumb_func_end AnimLoadCompressedBgGfx
-
- thumb_func_start sub_8075404
-sub_8075404: @ 8075404
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8075404
-
- thumb_func_start sub_807543C
-sub_807543C: @ 807543C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8075404
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl CopyBgTilemapBufferToVram
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807543C
-
- thumb_func_start sub_8075454
-sub_8075454: @ 8075454
- movs r0, 0x2
- bx lr
- thumb_func_end sub_8075454
-
- thumb_func_start sub_8075458
-sub_8075458: @ 8075458
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _08075476
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1
- bl SetAnimBgAttribute
- b _0807548A
-_08075476:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0
- bl SetAnimBgAttribute
-_0807548A:
- pop {r0}
- bx r0
- thumb_func_end sub_8075458
-
- thumb_func_start sub_8075490
-sub_8075490: @ 8075490
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl InitSpriteDataForLinearTranslation
- ldr r1, _080754B4 @ =sub_8074D3C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080754B4: .4byte sub_8074D3C
- thumb_func_end sub_8075490
-
- thumb_func_start InitSpriteDataForLinearTranslation
-InitSpriteDataForLinearTranslation: @ 80754B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r0, r1
- ldrh r4, [r5, 0x36]
- ldrh r1, [r5, 0x34]
- subs r4, r1
- lsls r4, 24
- lsrs r4, 16
- lsls r0, 24
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- bl __divsi3
- movs r6, 0
- strh r0, [r5, 0x30]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r5, 0x32]
- strh r6, [r5, 0x36]
- strh r6, [r5, 0x34]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end InitSpriteDataForLinearTranslation
-
- thumb_func_start obj_translate_based_on_private_1_2_3_4
-obj_translate_based_on_private_1_2_3_4: @ 80754F8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- movs r0, 0x32
- ldrsh r1, [r7, r0]
- movs r2, 0x30
- ldrsh r0, [r7, r2]
- subs r1, r0
- movs r3, 0x36
- ldrsh r2, [r7, r3]
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- subs r2, r0
- lsrs r0, r1, 31
- mov r8, r0
- lsrs r3, r2, 31
- mov r9, r3
- cmp r1, 0
- bge _08075524
- negs r1, r1
-_08075524:
- lsls r0, r1, 24
- lsrs r6, r0, 16
- adds r0, r2, 0
- cmp r0, 0
- bge _08075530
- negs r0, r0
-_08075530:
- lsls r0, 24
- lsrs r5, r0, 16
- movs r0, 0x2E
- ldrsh r4, [r7, r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r8
- cmp r2, 0
- beq _0807555C
- movs r0, 0x1
- orrs r6, r0
- b _08075560
-_0807555C:
- ldr r0, _0807556C @ =0x0000fffe
- ands r6, r0
-_08075560:
- mov r3, r9
- cmp r3, 0
- beq _08075570
- movs r0, 0x1
- orrs r5, r0
- b _08075574
- .align 2, 0
-_0807556C: .4byte 0x0000fffe
-_08075570:
- ldr r0, _0807558C @ =0x0000fffe
- ands r5, r0
-_08075574:
- movs r0, 0
- strh r6, [r7, 0x30]
- strh r5, [r7, 0x32]
- strh r0, [r7, 0x36]
- strh r0, [r7, 0x34]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807558C: .4byte 0x0000fffe
- thumb_func_end obj_translate_based_on_private_1_2_3_4
-
- thumb_func_start StartAnimLinearTranslation
-StartAnimLinearTranslation: @ 8075590
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080755B4 @ =sub_807563C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080755B4: .4byte sub_807563C
- thumb_func_end StartAnimLinearTranslation
-
- thumb_func_start sub_80755B8
-sub_80755B8: @ 80755B8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080755DC @ =sub_8075658
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080755DC: .4byte sub_8075658
- thumb_func_end sub_80755B8
-
- thumb_func_start sub_80755E0
-sub_80755E0: @ 80755E0
- push {r4-r6,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080755F0
- movs r0, 0x1
- b _08075634
-_080755F0:
- ldrh r1, [r2, 0x30]
- ldrh r4, [r2, 0x32]
- ldrh r6, [r2, 0x34]
- ldrh r5, [r2, 0x36]
- adds r0, r6, r1
- lsls r3, r0, 16
- lsrs r6, r3, 16
- adds r0, r5, r4
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08075612
- lsrs r0, r3, 24
- negs r0, r0
- b _08075614
-_08075612:
- lsrs r0, r3, 24
-_08075614:
- strh r0, [r2, 0x24]
- movs r0, 0x1
- ands r4, r0
- cmp r4, 0
- beq _08075624
- lsrs r0, r5, 8
- negs r0, r0
- b _08075626
-_08075624:
- lsrs r0, r5, 8
-_08075626:
- strh r0, [r2, 0x26]
- strh r6, [r2, 0x34]
- strh r5, [r2, 0x36]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0
-_08075634:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80755E0
-
- thumb_func_start sub_807563C
-sub_807563C: @ 807563C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _08075650
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08075650:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807563C
-
- thumb_func_start sub_8075658
-sub_8075658: @ 8075658
- push {r4,lr}
- adds r4, r0, 0
- bl sub_801236C
- adds r0, r4, 0
- bl sub_80755E0
- lsls r0, 24
- cmp r0, 0
- beq _08075672
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_08075672:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075658
-
- thumb_func_start sub_8075678
-sub_8075678: @ 8075678
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
- cmp r0, 0
- bge _0807568C
- negs r0, r0
-_0807568C:
- lsls r0, 8
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075678
-
- thumb_func_start sub_80756A4
-sub_80756A4: @ 80756A4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8075678
- ldr r1, _080756C8 @ =sub_807563C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080756C8: .4byte sub_807563C
- thumb_func_end sub_80756A4
-
- thumb_func_start sub_80756CC
-sub_80756CC: @ 80756CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- movs r0, 0x32
- ldrsh r1, [r7, r0]
- movs r2, 0x30
- ldrsh r0, [r7, r2]
- subs r1, r0
- movs r3, 0x36
- ldrsh r2, [r7, r3]
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- subs r2, r0
- lsrs r0, r1, 31
- mov r8, r0
- lsrs r3, r2, 31
- mov r9, r3
- cmp r1, 0
- bge _080756F8
- negs r1, r1
-_080756F8:
- lsls r0, r1, 20
- lsrs r6, r0, 16
- adds r0, r2, 0
- cmp r0, 0
- bge _08075704
- negs r0, r0
-_08075704:
- lsls r0, 20
- lsrs r5, r0, 16
- movs r0, 0x2E
- ldrsh r4, [r7, r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r8
- cmp r2, 0
- beq _08075730
- movs r0, 0x1
- orrs r6, r0
- b _08075734
-_08075730:
- ldr r0, _08075740 @ =0x0000fffe
- ands r6, r0
-_08075734:
- mov r3, r9
- cmp r3, 0
- beq _08075744
- movs r0, 0x1
- orrs r5, r0
- b _08075748
- .align 2, 0
-_08075740: .4byte 0x0000fffe
-_08075744:
- ldr r0, _08075760 @ =0x0000fffe
- ands r5, r0
-_08075748:
- movs r0, 0
- strh r6, [r7, 0x30]
- strh r5, [r7, 0x32]
- strh r0, [r7, 0x36]
- strh r0, [r7, 0x34]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075760: .4byte 0x0000fffe
- thumb_func_end sub_80756CC
-
- thumb_func_start sub_8075764
-sub_8075764: @ 8075764
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_80756CC
- ldr r1, _08075788 @ =sub_80757E8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075788: .4byte sub_80757E8
- thumb_func_end sub_8075764
-
- thumb_func_start sub_807578C
-sub_807578C: @ 807578C
- push {r4-r6,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0807579C
- movs r0, 0x1
- b _080757E0
-_0807579C:
- ldrh r1, [r2, 0x30]
- ldrh r4, [r2, 0x32]
- ldrh r6, [r2, 0x34]
- ldrh r5, [r2, 0x36]
- adds r0, r6, r1
- lsls r3, r0, 16
- lsrs r6, r3, 16
- adds r0, r5, r4
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080757BE
- lsrs r0, r3, 20
- negs r0, r0
- b _080757C0
-_080757BE:
- lsrs r0, r3, 20
-_080757C0:
- strh r0, [r2, 0x24]
- movs r0, 0x1
- ands r4, r0
- cmp r4, 0
- beq _080757D0
- lsrs r0, r5, 4
- negs r0, r0
- b _080757D2
-_080757D0:
- lsrs r0, r5, 4
-_080757D2:
- strh r0, [r2, 0x26]
- strh r6, [r2, 0x34]
- strh r5, [r2, 0x36]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0
-_080757E0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807578C
-
- thumb_func_start sub_80757E8
-sub_80757E8: @ 80757E8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807578C
- lsls r0, 24
- cmp r0, 0
- beq _080757FC
- adds r0, r4, 0
- bl SetCallbackToStoredInData
-_080757FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80757E8
-
- thumb_func_start sub_8075804
-sub_8075804: @ 8075804
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
- cmp r0, 0
- bge _08075818
- negs r0, r0
-_08075818:
- lsls r0, 4
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80756CC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075804
-
- thumb_func_start sub_8075830
-sub_8075830: @ 8075830
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8075804
- ldr r1, _08075854 @ =sub_80757E8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075854: .4byte sub_80757E8
- thumb_func_end sub_8075830
-
- thumb_func_start SetSpriteRotScale
-SetSpriteRotScale: @ 8075858
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r5, _080758D0 @ =0xffff0000
- lsls r2, 16
- lsrs r1, 16
- orrs r1, r2
- str r1, [sp]
- ldr r0, [sp, 0x4]
- ands r0, r5
- orrs r0, r3
- str r0, [sp, 0x4]
- bl sub_80758DC
- lsls r0, 24
- cmp r0, 0
- beq _08075894
- mov r0, sp
- ldrh r0, [r0]
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- ands r1, r5
- orrs r1, r0
- str r1, [sp]
-_08075894:
- ldr r1, _080758D4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x3]
- lsls r4, 26
- lsrs r4, 27
- add r5, sp, 0x8
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- ldr r0, _080758D8 @ =gOamMatrices
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r5]
- strh r0, [r4]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x6]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080758D0: .4byte 0xffff0000
-_080758D4: .4byte gSprites
-_080758D8: .4byte gOamMatrices
- thumb_func_end SetSpriteRotScale
-
- thumb_func_start sub_80758DC
-sub_80758DC: @ 80758DC
- movs r0, 0
- bx lr
- thumb_func_end sub_80758DC
-
- thumb_func_start PrepareBattlerSpriteForRotScale
-PrepareBattlerSpriteForRotScale: @ 80758E0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r2, _08075978 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075914
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08075914:
- movs r7, 0x3
- ands r5, r7
- lsls r2, r5, 2
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- cmp r0, 0
- bne _0807595C
- ldr r0, _0807597C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_0807595C:
- ldrb r3, [r4, 0x1]
- orrs r3, r7
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075978: .4byte gSprites
-_0807597C: .4byte gBattleSpritesDataPtr
- thumb_func_end PrepareBattlerSpriteForRotScale
-
- thumb_func_start ResetSpriteRotScale
-ResetSpriteRotScale: @ 8075980
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldr r1, _080759D8 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- movs r2, 0xD
- negs r2, r2
- ands r1, r2
- strb r1, [r0, 0x1]
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r3]
- ldrb r3, [r0, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- bl CalcCenterToCornerVec
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080759D8: .4byte gSprites
- thumb_func_end ResetSpriteRotScale
-
- thumb_func_start sub_80759DC
-sub_80759DC: @ 80759DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08075A14 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _08075A18 @ =gOamMatrices
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x4]
- movs r3, 0x4
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bge _08075A08
- negs r0, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_08075A08:
- lsls r0, r1, 16
- asrs r0, 19
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_08075A14: .4byte gSprites
-_08075A18: .4byte gOamMatrices
- thumb_func_end sub_80759DC
-
- thumb_func_start sub_8075A1C
-sub_8075A1C: @ 8075A1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08075AC2
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- cmp r6, 0
- beq _08075A6A
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_08075A6A:
- ldr r6, _08075AD0 @ =0xffff0000
- lsls r0, r7, 16
- orrs r5, r0
- str r5, [sp]
- ldr r0, [sp, 0x4]
- ands r0, r6
- mov r1, r8
- orrs r0, r1
- str r0, [sp, 0x4]
- bl sub_80758DC
- lsls r0, 24
- cmp r0, 0
- beq _08075A98
- mov r0, sp
- ldrh r0, [r0]
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- ands r1, r6
- orrs r1, r0
- str r1, [sp]
-_08075A98:
- ldrb r4, [r4, 0x3]
- lsls r4, 26
- lsrs r4, 27
- add r5, sp, 0x8
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- ldr r0, _08075AD4 @ =gOamMatrices
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r5]
- strh r0, [r4]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x6]
-_08075AC2:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075AD0: .4byte 0xffff0000
-_08075AD4: .4byte gOamMatrices
- thumb_func_end sub_8075A1C
-
- thumb_func_start sub_8075AD8
-sub_8075AD8: @ 8075AD8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_8075A1C
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075AD8
-
- thumb_func_start ArcTan2_
-ArcTan2_: @ 8075B18
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end ArcTan2_
-
- thumb_func_start sub_8075B30
-sub_8075B30: @ 8075B30
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2_
- lsls r0, 16
- negs r0, r0
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8075B30
-
- thumb_func_start sub_8075B48
-sub_8075B48: @ 8075B48
- push {r4-r7,lr}
- lsls r1, 24
- lsls r0, 20
- lsrs r0, 16
- cmp r1, 0
- bne _08075BC4
- ldr r2, _08075BB8 @ =gPlttBufferUnfaded
- ldr r1, _08075BBC @ =gPlttBufferFaded
- lsls r0, 1
- adds r4, r0, r1
- adds r5, r0, r2
- movs r6, 0xF
-_08075B60:
- ldr r0, [r5]
- lsls r2, r0, 27
- lsrs r2, 27
- lsls r1, r0, 22
- lsrs r1, 27
- adds r2, r1
- lsls r0, 17
- lsrs r0, 27
- adds r0, r2
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- ldrb r1, [r4]
- movs r3, 0x20
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4]
- lsls r3, r0, 5
- ldrh r1, [r4]
- ldr r7, _08075BC0 @ =0xfffffc1f
- adds r2, r7, 0
- ands r1, r2
- orrs r1, r3
- strh r1, [r4]
- lsls r0, 2
- ldrb r1, [r4, 0x1]
- movs r3, 0x7D
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x1]
- adds r4, 0x2
- adds r5, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _08075B60
- b _08075BD4
- .align 2, 0
-_08075BB8: .4byte gPlttBufferUnfaded
-_08075BBC: .4byte gPlttBufferFaded
-_08075BC0: .4byte 0xfffffc1f
-_08075BC4:
- lsls r1, r0, 1
- ldr r0, _08075BDC @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _08075BE0 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _08075BE4 @ =0x04000008
- bl CpuSet
-_08075BD4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075BDC: .4byte gPlttBufferUnfaded
-_08075BE0: .4byte gPlttBufferFaded
-_08075BE4: .4byte 0x04000008
- thumb_func_end sub_8075B48
-
- thumb_func_start sub_8075BE8
-sub_8075BE8: @ 8075BE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- ldr r6, [sp, 0x24]
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- lsls r6, 24
- lsrs r6, 24
- mov r9, r6
- movs r4, 0
- cmp r0, 0
- beq _08075C1C
- movs r4, 0xE
-_08075C1C:
- cmp r1, 0
- beq _08075C2E
- ldr r0, _08075CB0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075C2E:
- cmp r2, 0
- beq _08075C40
- ldr r0, _08075CB4 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075C40:
- cmp r3, 0
- beq _08075C64
- ldr r6, _08075CB0 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075C64
- ldrb r0, [r6]
- eors r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075C64:
- cmp r7, 0
- beq _08075C88
- ldr r6, _08075CB4 @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075C88
- ldrb r0, [r6]
- eors r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075C88:
- mov r0, r8
- cmp r0, 0
- beq _08075C94
- movs r0, 0x80
- lsls r0, 1
- orrs r4, r0
-_08075C94:
- mov r0, r9
- cmp r0, 0
- beq _08075CA0
- movs r0, 0x80
- lsls r0, 2
- orrs r4, r0
-_08075CA0:
- adds r0, r4, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08075CB0: .4byte gBattleAnimAttacker
-_08075CB4: .4byte gBattleAnimTarget
- thumb_func_end sub_8075BE8
-
- thumb_func_start sub_8075CB8
-sub_8075CB8: @ 8075CB8
- push {r4-r7,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- movs r4, 0
- cmp r0, 0
- beq _08075CF2
- movs r0, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075CF2
- movs r0, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r4, 0x1
- lsls r4, r0
-_08075CF2:
- cmp r5, 0
- beq _08075D1E
- movs r0, 0x2
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075D1E
- movs r0, 0x2
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075D1E:
- cmp r6, 0
- beq _08075D4A
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075D4A
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075D4A:
- cmp r7, 0
- beq _08075D76
- movs r0, 0x3
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08075D76
- movs r0, 0x3
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08075D76:
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8075CB8
-
- thumb_func_start sub_8075D80
-sub_8075D80: @ 8075D80
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_8075D80
-
- thumb_func_start sub_8075D88
-sub_8075D88: @ 8075D88
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8075D88
-
- thumb_func_start sub_8075D9C
-sub_8075D9C: @ 8075D9C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08075DDA
- ldr r2, _08075DC8 @ =gBattleAnimArgs
- movs r3, 0x6
- ldrsh r0, [r2, r3]
- movs r1, 0
- cmp r0, 0
- bne _08075DB6
- movs r1, 0x1
-_08075DB6:
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _08075DCC
- adds r0, r4, 0
- bl sub_8075160
- b _08075DD2
- .align 2, 0
-_08075DC8: .4byte gBattleAnimArgs
-_08075DCC:
- adds r0, r4, 0
- bl sub_8075114
-_08075DD2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08075DEE
-_08075DDA:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _08075DEE
- adds r0, r4, 0
- bl move_anim_8074EE0
-_08075DEE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075D9C
-
- thumb_func_start sub_8075DF4
-sub_8075DF4: @ 8075DF4
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _08075E6C @ =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _08075E0C
- movs r1, 0x1
-_08075E0C:
- ldrb r0, [r6, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _08075E16
- movs r7, 0x3
-_08075E16:
- adds r0, r5, 0
- bl sub_8075160
- ldr r0, _08075E70 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08075E30
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_08075E30:
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r4, _08075E74 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _08075E78 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _08075E7C @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075E6C: .4byte gBattleAnimArgs
-_08075E70: .4byte gBattleAnimAttacker
-_08075E74: .4byte gBattleAnimTarget
-_08075E78: .4byte StartAnimLinearTranslation
-_08075E7C: .4byte DestroyAnimSprite
- thumb_func_end sub_8075DF4
-
- thumb_func_start sub_8075E80
-sub_8075E80: @ 8075E80
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8075160
- ldr r0, _08075EE0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08075EA0
- ldr r1, _08075EE4 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_08075EA0:
- ldr r4, _08075EE4 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _08075EE8 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_8075068
- ldr r0, _08075EEC @ =sub_8075EF0
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075EE0: .4byte gBattleAnimAttacker
-_08075EE4: .4byte gBattleAnimArgs
-_08075EE8: .4byte gBattleAnimTarget
-_08075EEC: .4byte sub_8075EF0
- thumb_func_end sub_8075E80
-
- thumb_func_start sub_8075EF0
-sub_8075EF0: @ 8075EF0
- push {r4,lr}
- adds r4, r0, 0
- bl AnimateBallThrow
- lsls r0, 24
- cmp r0, 0
- beq _08075F04
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08075F04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075EF0
-
- thumb_func_start sub_8075F0C
-sub_8075F0C: @ 8075F0C
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _08075F20 @ =gBattleAnimArgs
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- cmp r1, 0
- bne _08075F24
- movs r4, 0x1
- movs r7, 0x3
- b _08075F28
- .align 2, 0
-_08075F20: .4byte gBattleAnimArgs
-_08075F24:
- movs r4, 0
- movs r7, 0x1
-_08075F28:
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08075F40
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8075160
- ldr r0, _08075F3C @ =gBattleAnimAttacker
- b _08075F4A
- .align 2, 0
-_08075F3C: .4byte gBattleAnimAttacker
-_08075F40:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8075114
- ldr r0, _08075FA8 @ =gBattleAnimTarget
-_08075F4A:
- ldrb r6, [r0]
- ldr r0, _08075FAC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08075F62
- ldr r1, _08075FB0 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_08075F62:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8075114
- ldr r4, _08075FB0 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r5, 0x32]
- adds r0, r6, 0
- adds r1, r7, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r5, 0x36]
- ldr r0, _08075FB4 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _08075FB8 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075FA8: .4byte gBattleAnimTarget
-_08075FAC: .4byte gBattleAnimAttacker
-_08075FB0: .4byte gBattleAnimArgs
-_08075FB4: .4byte StartAnimLinearTranslation
-_08075FB8: .4byte DestroyAnimSprite
- thumb_func_end sub_8075F0C
-
- thumb_func_start CloneBattlerSpriteWithBlend
-CloneBattlerSpriteWithBlend: @ 8075FBC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _08076026
- movs r6, 0
- ldr r2, _08076018 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r1, r0, 2
-_08075FD8:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r0, [r5]
- lsls r0, 31
- cmp r0, 0
- bne _0807601C
- adds r0, r4, 0
- adds r1, r2
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r4, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldrb r0, [r5]
- adds r2, 0x8
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r5]
- lsls r0, r6, 16
- asrs r0, 16
- b _0807602A
- .align 2, 0
-_08076018: .4byte gSprites
-_0807601C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3F
- bls _08075FD8
-_08076026:
- movs r0, 0x1
- negs r0, r0
-_0807602A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CloneBattlerSpriteWithBlend
-
- thumb_func_start obj_delete_but_dont_free_vram
-obj_delete_but_dont_free_vram: @ 8076030
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- bl DestroySprite
- pop {r0}
- bx r0
- thumb_func_end obj_delete_but_dont_free_vram
-
- thumb_func_start sub_8076048
-sub_8076048: @ 8076048
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- movs r3, 0
- ldr r2, _080760C0 @ =gBattleAnimArgs
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r1, r0
- ble _08076062
- movs r3, 0x1
-_08076062:
- cmp r1, r0
- bge _08076068
- ldr r3, _080760C4 @ =0x0000ffff
-_08076068:
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r4, 0x2
- ldrsh r0, [r2, r4]
- cmp r1, r0
- ble _08076076
- movs r6, 0x1
-_08076076:
- cmp r1, r0
- bge _0807607C
- ldr r6, _080760C4 @ =0x0000ffff
-_0807607C:
- ldr r0, _080760C8 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r1, 0
- strh r1, [r4, 0x8]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0xA]
- strh r1, [r4, 0xC]
- ldrh r0, [r2]
- strh r0, [r4, 0xE]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x10]
- strh r3, [r4, 0x12]
- strh r6, [r4, 0x14]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x16]
- ldrh r0, [r2, 0x6]
- strh r0, [r4, 0x18]
- ldrh r1, [r2, 0x2]
- lsls r1, 8
- ldrh r0, [r2]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080760CC @ =sub_80760D0
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080760C0: .4byte gBattleAnimArgs
-_080760C4: .4byte 0x0000ffff
-_080760C8: .4byte gTasks
-_080760CC: .4byte sub_80760D0
- thumb_func_end sub_8076048
-
- thumb_func_start sub_80760D0
-sub_80760D0: @ 80760D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807611C @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _08076164
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08076120
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- movs r3, 0x16
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _08076134
- ldrh r0, [r4, 0x12]
- adds r0, r2, r0
- strh r0, [r4, 0xE]
- b _08076134
- .align 2, 0
-_0807611C: .4byte gTasks
-_08076120:
- ldrh r2, [r4, 0x10]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r3, 0x18
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _08076134
- ldrh r0, [r4, 0x14]
- adds r0, r2, r0
- strh r0, [r4, 0x10]
-_08076134:
- ldrh r1, [r4, 0x10]
- lsls r1, 8
- ldrh r0, [r4, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08076164
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08076164
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08076164:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80760D0
-
- thumb_func_start sub_807616C
-sub_807616C: @ 807616C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807618C @ =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _08076190
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080761B6
- .align 2, 0
-_0807618C: .4byte gBattleAnimArgs
-_08076190:
- ldr r1, _080761BC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080761C0 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- lsls r1, 4
- ldr r3, _080761C4 @ =0x00000101
- adds r2, r3, 0
- adds r1, r2
- strh r1, [r0, 0x8]
- bl sub_80761C8
-_080761B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080761BC: .4byte gTasks
-_080761C0: .4byte gSprites
-_080761C4: .4byte 0x00000101
- thumb_func_end sub_807616C
-
- thumb_func_start sub_80761C8
-sub_80761C8: @ 80761C8
- ldr r3, _080761E8 @ =gBattleAnimArgs
- ldrh r1, [r3, 0x2]
- movs r2, 0
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldrh r1, [r3, 0x8]
- strh r1, [r0, 0x16]
- ldr r1, _080761EC @ =sub_80761F0
- str r1, [r0]
- bx lr
- .align 2, 0
-_080761E8: .4byte gBattleAnimArgs
-_080761EC: .4byte sub_80761F0
- thumb_func_end sub_80761C8
-
- thumb_func_start sub_80761F0
-sub_80761F0: @ 80761F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08076248 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _08076280
- movs r0, 0
- strh r0, [r4, 0x10]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0807624C
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- lsls r2, 24
- lsrs r2, 24
- ldrh r3, [r4, 0xA]
- movs r1, 0xF
- bl BlendPalette
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08076280
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _08076280
- .align 2, 0
-_08076248: .4byte gTasks
-_0807624C:
- ldrh r2, [r4, 0xC]
- subs r2, 0x1
- strh r2, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- lsls r2, 24
- lsrs r2, 24
- ldrh r3, [r4, 0xA]
- movs r1, 0xF
- bl BlendPalette
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _08076280
- ldrh r0, [r4, 0x16]
- subs r0, 0x1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- beq _0807627A
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x14]
- b _08076280
-_0807627A:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08076280:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80761F0
-
- thumb_func_start sub_8076288
-sub_8076288: @ 8076288
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080762A8 @ =gBattleAnimArgs
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080762AC
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080762C2
- .align 2, 0
-_080762A8: .4byte gBattleAnimArgs
-_080762AC:
- ldr r1, _080762C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- lsls r1, r2, 4
- ldr r2, _080762CC @ =0x00000101
- adds r1, r2
- strh r1, [r0, 0x8]
- bl sub_80761C8
-_080762C2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080762C8: .4byte gTasks
-_080762CC: .4byte 0x00000101
- thumb_func_end sub_8076288
-
- thumb_func_start sub_80762D0
-sub_80762D0: @ 80762D0
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- strh r1, [r3, 0x16]
- strh r1, [r3, 0x18]
- strh r1, [r3, 0x1A]
- strh r4, [r3, 0x26]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x1C]
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- adds r0, r3, 0
- adds r0, 0x22
- adds r3, 0x24
- adds r1, r3, 0
- bl sub_80765C0
- adds r0, r4, 0
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80762D0
-
- thumb_func_start sub_8076308
-sub_8076308: @ 8076308
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080763A8 @ =gUnknown_2037F28
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- bl sub_80765C8
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r1, r0, r1
- str r1, [r5]
- movs r6, 0
- ldrsh r2, [r1, r6]
- ldr r0, _080763AC @ =0x00007ffe
- cmp r2, r0
- beq _080763B0
- cmp r2, r0
- bgt _08076410
- subs r0, 0x1
- cmp r2, r0
- beq _080763B6
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- bne _08076356
- ldrh r0, [r1]
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x1E]
- ldrb r0, [r1, 0x4]
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- adds r0, r1, 0
- adds r0, 0x8
- str r0, [r5]
-_08076356:
- ldr r1, [r5]
- ldrh r0, [r1]
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r4, 0x1E]
- adds r0, r3
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x20]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1C
- ldrsh r1, [r4, r6]
- movs r3, 0x1E
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- bl SetSpriteRotScale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076440
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- ldr r1, [r5]
- ldrb r1, [r1, 0x5]
- cmp r0, r1
- blt _08076436
- movs r0, 0
- strh r0, [r4, 0x18]
- b _08076408
- .align 2, 0
-_080763A8: .4byte gUnknown_2037F28
-_080763AC: .4byte 0x00007ffe
-_080763B0:
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x16]
- b _08076436
-_080763B6:
- ldrh r2, [r1, 0x2]
- movs r6, 0x2
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08076408
- ldrh r1, [r4, 0x1A]
- movs r3, 0x1A
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080763D6
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- cmp r0, 0
- bne _080763D8
- b _08076408
-_080763D6:
- strh r2, [r4, 0x1A]
-_080763D8:
- movs r6, 0x16
- ldrsh r0, [r4, r6]
- cmp r0, 0
- beq _08076436
- ldr r3, _08076400 @ =gUnknown_2037F28
- ldr r5, _08076404 @ =0x00007ffd
-_080763E4:
- ldrh r2, [r4, 0x16]
- subs r1, r2, 0x1
- strh r1, [r4, 0x16]
- ldr r0, [r3]
- subs r0, 0x8
- str r0, [r3]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r0, r5
- beq _08076434
- lsls r0, r1, 16
- cmp r0, 0
- bne _080763E4
- b _08076436
- .align 2, 0
-_08076400: .4byte gUnknown_2037F28
-_08076404: .4byte 0x00007ffd
-_08076408:
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- b _08076436
-_08076410:
- ldr r2, _08076430 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl ResetSpriteRotScale
- movs r0, 0
- b _08076438
- .align 2, 0
-_08076430: .4byte gSprites
-_08076434:
- strh r2, [r4, 0x16]
-_08076436:
- movs r0, 0x1
-_08076438:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8076308
-
- thumb_func_start sub_8076440
-sub_8076440: @ 8076440
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80764EC
- lsls r0, 16
- lsrs r0, 15
- movs r1, 0x40
- subs r5, r1, r0
- ldr r1, _0807648C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x3]
- lsls r1, 26
- lsrs r1, 27
- lsls r0, r5, 8
- ldr r2, _08076490 @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- cmp r0, 0x80
- ble _0807647C
- movs r0, 0x80
-_0807647C:
- subs r0, r5, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807648C: .4byte gSprites
-_08076490: .4byte gOamMatrices
- thumb_func_end sub_8076440
-
- thumb_func_start sub_8076494
-sub_8076494: @ 8076494
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r0, 24
- bl sub_80764EC
- lsls r0, 16
- lsrs r0, 15
- movs r1, 0x40
- subs r5, r1, r0
- ldr r1, _080764E4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x3]
- lsls r1, 26
- lsrs r1, 27
- lsls r0, r5, 8
- ldr r2, _080764E8 @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- cmp r0, 0x80
- ble _080764D4
- movs r0, 0x80
-_080764D4:
- subs r0, r5, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080764E4: .4byte gSprites
-_080764E8: .4byte gOamMatrices
- thumb_func_end sub_8076494
-
- thumb_func_start sub_80764EC
-sub_80764EC: @ 80764EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08076548 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r1, _0807654C @ =gBattlerSpriteIds
- ldr r6, _08076550 @ =gBattlerPartyIndexes
-_08076508:
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, r2
- bne _080765AC
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08076568
- ldr r0, _08076554 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0807655C
- lsls r0, r4, 1
- adds r0, r6
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08076558 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _0807655E
- .align 2, 0
-_08076548: .4byte gSprites
-_0807654C: .4byte gBattlerSpriteIds
-_08076550: .4byte gBattlerPartyIndexes
-_08076554: .4byte gBattleSpritesDataPtr
-_08076558: .4byte gPlayerParty
-_0807655C:
- ldrh r1, [r1, 0x2]
-_0807655E:
- ldr r0, _08076564 @ =gUnknown_8235E6C
- b _080765A0
- .align 2, 0
-_08076564: .4byte gUnknown_8235E6C
-_08076568:
- ldr r0, _08076594 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0807659C
- lsls r0, r4, 1
- adds r0, r6
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08076598 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _0807659E
- .align 2, 0
-_08076594: .4byte gBattleSpritesDataPtr
-_08076598: .4byte gEnemyParty
-_0807659C:
- ldrh r1, [r1, 0x2]
-_0807659E:
- ldr r0, _080765A8 @ =gUnknown_82349CC
-_080765A0:
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _080765B8
- .align 2, 0
-_080765A8: .4byte gUnknown_82349CC
-_080765AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08076508
- movs r0, 0x40
-_080765B8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80764EC
-
- thumb_func_start sub_80765C0
-sub_80765C0: @ 80765C0
- strh r2, [r0]
- asrs r2, 16
- strh r2, [r1]
- bx lr
- thumb_func_end sub_80765C0
-
- thumb_func_start sub_80765C8
-sub_80765C8: @ 80765C8
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- orrs r0, r1
- bx lr
- thumb_func_end sub_80765C8
-
- thumb_func_start sub_80765D4
-sub_80765D4: @ 80765D4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r3, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- ldr r6, [sp, 0x1C]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r3, r8
- strh r6, [r3, 0x18]
- strh r1, [r3, 0x26]
- strh r2, [r3, 0x1A]
- strh r5, [r3, 0x1C]
- strh r0, [r3, 0x22]
- strh r4, [r3, 0x24]
- lsls r0, 16
- asrs r0, 16
- lsls r2, 16
- asrs r2, 16
- subs r0, r2
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x1E]
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- subs r4, r5
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r3, r8
- strh r0, [r3, 0x20]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80765D4
-
- thumb_func_start sub_8076640
-sub_8076640: @ 8076640
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08076652
- movs r0, 0
- b _080766AE
-_08076652:
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- cmp r0, 0
- beq _0807666C
- ldrh r0, [r4, 0x1E]
- ldrh r3, [r4, 0x1A]
- adds r0, r3
- strh r0, [r4, 0x1A]
- ldrh r0, [r4, 0x20]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- b _08076672
-_0807666C:
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x1A]
- ldrh r0, [r4, 0x24]
-_08076672:
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r3, 0x1C
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl SetSpriteRotScale
- movs r0, 0x18
- ldrsh r3, [r4, r0]
- cmp r3, 0
- beq _0807669C
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8076440
- b _080766AC
-_0807669C:
- ldr r2, _080766B4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
-_080766AC:
- ldrb r0, [r4, 0x18]
-_080766AE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080766B4: .4byte gSprites
- thumb_func_end sub_8076640
-
- thumb_func_start sub_80766B8
-sub_80766B8: @ 80766B8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080766E4 @ =gAnimFriendship
- ldrb r0, [r0]
- movs r1, 0
- cmp r0, 0x1E
- bls _080766D6
- movs r1, 0x1
- cmp r0, 0x64
- bls _080766D6
- movs r1, 0x3
- cmp r0, 0xC8
- bhi _080766D6
- movs r1, 0x2
-_080766D6:
- ldr r0, _080766E8 @ =gBattleAnimArgs
- strh r1, [r0, 0xE]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080766E4: .4byte gAnimFriendship
-_080766E8: .4byte gBattleAnimArgs
- thumb_func_end sub_80766B8
-
- thumb_func_start sub_80766EC
-sub_80766EC: @ 80766EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r6, _080767E0 @ =gBattleAnimTarget
- ldrb r0, [r6]
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0807672C
- ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gBattlerSpriteIds
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_0807672C:
- ldr r0, _080767EC @ =gBattleAnimAttacker
- mov r8, r0
- ldrb r0, [r0]
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08076764
- ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gBattlerSpriteIds
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08076764:
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0807679C
- ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gBattlerSpriteIds
- ldrb r0, [r6]
- eors r0, r5
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_0807679C:
- mov r1, r8
- ldrb r0, [r1]
- eors r0, r5
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080767D4
- ldr r2, _080767E4 @ =gSprites
- ldr r1, _080767E8 @ =gBattlerSpriteIds
- mov r3, r8
- ldrb r0, [r3]
- eors r0, r5
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- ands r7, r0
- lsls r3, r7, 2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_080767D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080767E0: .4byte gBattleAnimTarget
-_080767E4: .4byte gSprites
-_080767E8: .4byte gBattlerSpriteIds
-_080767EC: .4byte gBattleAnimAttacker
- thumb_func_end sub_80766EC
-
- thumb_func_start sub_80767F0
-sub_80767F0: @ 80767F0
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _08076850 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _0807684A
- ldr r6, _08076854 @ =gSprites
-_080767FE:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08076840
- adds r0, r4, 0
- bl GetBattlerSpriteSubpriority
- ldr r3, _08076858 @ =gBattlerSpriteIds
- adds r3, r5, r3
- ldrb r2, [r3]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r6
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r2, [r0, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x8
- orrs r2, r1
- strb r2, [r0, 0x5]
-_08076840:
- adds r5, 0x1
- ldr r0, _08076850 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _080767FE
-_0807684A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076850: .4byte gBattlersCount
-_08076854: .4byte gSprites
-_08076858: .4byte gBattlerSpriteIds
- thumb_func_end sub_80767F0
-
- thumb_func_start GetBattlerSpriteSubpriority
-GetBattlerSpriteSubpriority: @ 807685C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1E
- cmp r0, 0
- beq _0807687E
- movs r1, 0x14
- cmp r0, 0x2
- beq _0807687E
- movs r1, 0x32
- cmp r0, 0x1
- bne _0807687E
- movs r1, 0x28
-_0807687E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end GetBattlerSpriteSubpriority
-
- thumb_func_start sub_8076884
-sub_8076884: @ 8076884
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0807689A
- cmp r0, 0x3
- bne _0807689E
-_0807689A:
- movs r0, 0x2
- b _080768A0
-_0807689E:
- movs r0, 0x1
-_080768A0:
- movs r1, 0x4
- bl GetAnimBgAttribute
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8076884
-
- thumb_func_start sub_80768B0
-sub_80768B0: @ 80768B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080768C6
- cmp r0, 0x3
- bne _080768CA
-_080768C6:
- movs r0, 0x2
- b _080768CC
-_080768CA:
- movs r0, 0x1
-_080768CC:
- pop {r1}
- bx r1
- thumb_func_end sub_80768B0
-
- thumb_func_start sub_80768D0
-sub_80768D0: @ 80768D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- ldr r6, [sp, 0x38]
- mov r8, r6
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x8]
- lsls r0, r7, 3
- ldr r1, _080769B0 @ =gUnknown_83AE084
- adds r0, r1
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- ldr r1, _080769B4 @ =gUnknown_83AE054
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x2]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080769B8 @ =gMonSpritesGfxPtr
- ldr r0, [r4]
- cmp r0, 0
- beq _0807694E
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0807694E
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- ldr r1, [r4]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- str r0, [r1]
-_0807694E:
- mov r3, r9
- cmp r3, 0
- bne _080769EC
- adds r0, r6, 0
- ldr r1, [sp, 0x3C]
- mov r2, r8
- bl GetMonSpritePalFromSpeciesAndPersonality
- lsls r1, r5, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r3, [sp, 0x44]
- cmp r3, 0x1
- beq _0807699A
- ldr r0, [sp, 0x40]
- lsls r1, r0, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_804455C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0807699A
- ldr r0, _080769BC @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r2, [sp, 0x40]
- lsls r0, r2, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _080769C4
-_0807699A:
- lsls r0, r6, 3
- ldr r1, _080769C0 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _080769B8 @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- movs r3, 0xBE
- lsls r3, 1
- adds r1, r3
- ldr r1, [r1]
- movs r2, 0x1
- b _08076A46
- .align 2, 0
-_080769B0: .4byte gUnknown_83AE084
-_080769B4: .4byte gUnknown_83AE054
-_080769B8: .4byte gMonSpritesGfxPtr
-_080769BC: .4byte gBattleSpritesDataPtr
-_080769C0: .4byte gMonFrontPicTable
-_080769C4:
- lsls r0, r6, 3
- ldr r1, _080769E4 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _080769E8 @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0x1
- str r2, [sp]
- adds r2, r6, 0
- mov r3, r8
- bl LoadSpecialPokePic
- b _08076A7C
- .align 2, 0
-_080769E4: .4byte gMonFrontPicTable
-_080769E8: .4byte gMonSpritesGfxPtr
-_080769EC:
- adds r0, r6, 0
- ldr r1, [sp, 0x3C]
- mov r2, r8
- bl GetMonSpritePalFromSpeciesAndPersonality
- lsls r1, r5, 20
- movs r3, 0x80
- lsls r3, 17
- adds r1, r3
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, [sp, 0x44]
- cmp r0, 0x1
- beq _08076A32
- ldr r2, [sp, 0x40]
- lsls r1, r2, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_804455C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08076A32
- ldr r0, _08076A54 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r3, [sp, 0x40]
- lsls r0, r3, 2
- adds r0, r1
- ldrh r2, [r0, 0x2]
- cmp r2, 0
- beq _08076A60
-_08076A32:
- lsls r0, r6, 3
- ldr r1, _08076A58 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08076A5C @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0
-_08076A46:
- str r2, [sp]
- adds r2, r6, 0
- mov r3, r8
- bl LoadSpecialPokePic_DontHandleDeoxys
- b _08076A7C
- .align 2, 0
-_08076A54: .4byte gBattleSpritesDataPtr
-_08076A58: .4byte gMonBackPicTable
-_08076A5C: .4byte gMonSpritesGfxPtr
-_08076A60:
- lsls r0, r6, 3
- ldr r1, _08076AC8 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08076ACC @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- movs r3, 0xBE
- lsls r3, 1
- adds r1, r3
- ldr r1, [r1]
- str r2, [sp]
- adds r2, r6, 0
- mov r3, r8
- bl LoadSpecialPokePic
-_08076A7C:
- ldr r5, _08076ACC @ =gMonSpritesGfxPtr
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- ldr r0, [r0]
- ldr r2, [sp, 0xC]
- lsls r1, r2, 5
- ldr r3, _08076AD0 @ =0x06010000
- adds r1, r3
- movs r2, 0x80
- lsls r2, 4
- movs r3, 0x1
- bl RequestDma3Copy
- ldr r0, [r5]
- adds r0, r4
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- str r1, [r0]
- mov r0, r9
- cmp r0, 0
- bne _08076ADC
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- ldr r1, _08076AD4 @ =gUnknown_83AE054
- adds r0, r1
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldr r3, _08076AD8 @ =gUnknown_82349CC
- b _08076AEE
- .align 2, 0
-_08076AC8: .4byte gMonBackPicTable
-_08076ACC: .4byte gMonSpritesGfxPtr
-_08076AD0: .4byte 0x06010000
-_08076AD4: .4byte gUnknown_83AE054
-_08076AD8: .4byte gUnknown_82349CC
-_08076ADC:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- ldr r1, _08076B18 @ =gUnknown_83AE054
- adds r0, r1
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldr r3, _08076B1C @ =gUnknown_8235E6C
-_08076AEE:
- lsls r2, r6, 2
- adds r2, r3
- ldrb r2, [r2, 0x1]
- ldr r3, [sp, 0x4]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08076B18: .4byte gUnknown_83AE054
-_08076B1C: .4byte gUnknown_8235E6C
- thumb_func_end sub_80768D0
-
- thumb_func_start sub_8076B20
-sub_8076B20: @ 8076B20
- push {lr}
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- thumb_func_end sub_8076B20
-
- thumb_func_start sub_8076B2C
-sub_8076B2C: @ 8076B2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08076C08
- ldr r0, _08076B88 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- mov r1, r8
- lsls r2, r1, 2
- adds r1, r2, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08076B94
- ldr r0, _08076B8C @ =gBattlerPartyIndexes
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08076B90 @ =gPlayerParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _08076B9C
- .align 2, 0
-_08076B88: .4byte gBattleSpritesDataPtr
-_08076B8C: .4byte gBattlerPartyIndexes
-_08076B90: .4byte gPlayerParty
-_08076B94:
- ldrh r7, [r1, 0x2]
- ldr r0, _08076BD4 @ =gTransformedPersonalities
- adds r0, r2, r0
- ldr r2, [r0]
-_08076B9C:
- cmp r7, 0xC9
- bne _08076BEC
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08076BD8
- movs r0, 0xC9
- b _08076BE2
- .align 2, 0
-_08076BD4: .4byte gTransformedPersonalities
-_08076BD8:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08076BE2:
- lsls r1, r0, 2
- ldr r0, _08076BE8 @ =gUnknown_8235E6C
- b _08076CDC
- .align 2, 0
-_08076BE8: .4byte gUnknown_8235E6C
-_08076BEC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bls _08076BFC
- ldr r4, _08076BF8 @ =gUnknown_8235E6C
- b _08076CDE
- .align 2, 0
-_08076BF8: .4byte gUnknown_8235E6C
-_08076BFC:
- lsls r1, r7, 2
- ldr r0, _08076C04 @ =gUnknown_8235E6C
- b _08076CDC
- .align 2, 0
-_08076C04: .4byte gUnknown_8235E6C
-_08076C08:
- ldr r0, _08076C48 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- mov r1, r8
- lsls r2, r1, 2
- adds r1, r2, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08076C54
- ldr r0, _08076C4C @ =gBattlerPartyIndexes
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08076C50 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _08076C5C
- .align 2, 0
-_08076C48: .4byte gBattleSpritesDataPtr
-_08076C4C: .4byte gBattlerPartyIndexes
-_08076C50: .4byte gEnemyParty
-_08076C54:
- ldrh r7, [r1, 0x2]
- ldr r0, _08076C94 @ =gTransformedPersonalities
- adds r0, r2, r0
- ldr r2, [r0]
-_08076C5C:
- cmp r7, 0xC9
- bne _08076CA6
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08076C98
- movs r0, 0xC9
- b _08076CA2
- .align 2, 0
-_08076C94: .4byte gTransformedPersonalities
-_08076C98:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08076CA2:
- lsls r1, r0, 2
- b _08076CDA
-_08076CA6:
- ldr r0, _08076CBC @ =0x00000181
- cmp r7, r0
- bne _08076CC8
- ldr r0, _08076CC0 @ =gBattleMonForms
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _08076CC4 @ =gUnknown_83AE03C
- adds r4, r0, r1
- b _08076CDE
- .align 2, 0
-_08076CBC: .4byte 0x00000181
-_08076CC0: .4byte gBattleMonForms
-_08076CC4: .4byte gUnknown_83AE03C
-_08076CC8:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bls _08076CD8
- ldr r4, _08076CD4 @ =gUnknown_82349CC
- b _08076CDE
- .align 2, 0
-_08076CD4: .4byte gUnknown_82349CC
-_08076CD8:
- lsls r1, r7, 2
-_08076CDA:
- ldr r0, _08076CF0 @ =gUnknown_82349CC
-_08076CDC:
- adds r4, r1, r0
-_08076CDE:
- mov r0, r9
- cmp r0, 0x6
- bhi _08076D8E
- lsls r0, 2
- ldr r1, _08076CF4 @ =_08076CF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08076CF0: .4byte gUnknown_82349CC
-_08076CF4: .4byte _08076CF8
- .align 2, 0
-_08076CF8:
- .4byte _08076D14
- .4byte _08076D1E
- .4byte _08076D4A
- .4byte _08076D62
- .4byte _08076D26
- .4byte _08076D38
- .4byte _08076D7A
-_08076D14:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- lsls r0, 3
- b _08076D90
-_08076D1E:
- ldrb r0, [r4]
- lsrs r0, 4
- lsls r0, 3
- b _08076D90
-_08076D26:
- mov r0, r8
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- lsrs r1, 4
- b _08076D5C
-_08076D38:
- mov r0, r8
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- lsrs r1, 4
- b _08076D74
-_08076D4A:
- mov r0, r8
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- movs r1, 0xF
- ands r1, r2
-_08076D5C:
- lsls r1, 2
- subs r0, r1
- b _08076D90
-_08076D62:
- mov r0, r8
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- movs r1, 0xF
- ands r1, r2
-_08076D74:
- lsls r1, 2
- adds r0, r1
- b _08076D90
-_08076D7A:
- mov r0, r8
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- ldrb r1, [r4, 0x1]
- subs r0, r1
- b _08076D90
-_08076D8E:
- movs r0, 0
-_08076D90:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8076B2C
-
- thumb_func_start sub_8076D9C
-sub_8076D9C: @ 8076D9C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r2
- mov r10, r3
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _08076DBA
- movs r5, 0
- movs r6, 0x1
- b _08076DBE
-_08076DBA:
- movs r5, 0x2
- movs r6, 0x3
-_08076DBE:
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _08076E06
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r3, r0, 24
- mov r0, r8
- lsls r1, r0, 16
- lsls r2, r7, 16
- b _08076E12
-_08076E06:
- mov r0, r8
- lsls r1, r0, 16
- lsrs r5, r1, 16
- lsls r0, r7, 16
- lsrs r3, r0, 16
- adds r2, r0, 0
-_08076E12:
- asrs r0, r1, 16
- adds r0, r5
- asrs r0, 1
- mov r1, r9
- strh r0, [r1]
- asrs r0, r2, 16
- adds r0, r3
- asrs r0, 1
- mov r1, r10
- strh r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8076D9C
-
- thumb_func_start sub_8076E34
-sub_8076E34: @ 8076E34
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r6, r1, 24
- lsrs r6, 24
- ldr r0, _08076ECC @ =SpriteCallbackDummy
- mov r10, r0
- bl CreateInvisibleSpriteWithCallback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08076ED0 @ =gSprites
- mov r9, r0
- mov r0, r8
- lsls r3, r0, 4
- add r3, r8
- lsls r3, 2
- mov r0, r9
- adds r5, r3, r0
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- add r4, r9
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x44
- str r3, [sp]
- bl memcpy
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r5, 0x5]
- ldrb r0, [r5, 0x1]
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r5, 0x4]
- ldr r0, _08076ED4 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r0, 0x1C
- add r9, r0
- ldr r3, [sp]
- add r3, r9
- mov r0, r10
- str r0, [r3]
- mov r0, r8
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08076ECC: .4byte SpriteCallbackDummy
-_08076ED0: .4byte gSprites
-_08076ED4: .4byte 0xfffffc00
- thumb_func_end sub_8076E34
-
- thumb_func_start sub_8076ED8
-sub_8076ED8: @ 8076ED8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _08076F10 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08076F18
- ldr r2, _08076F14 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r3]
- adds r1, r2, 0
- b _08076F22
- .align 2, 0
-_08076F10: .4byte gBattleAnimAttacker
-_08076F14: .4byte gBattleAnimArgs
-_08076F18:
- ldr r1, _08076F4C @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
-_08076F22:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldr r1, _08076F50 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _08076F54 @ =sub_8074E70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076F4C: .4byte gBattleAnimArgs
-_08076F50: .4byte move_anim_8074EE0
-_08076F54: .4byte sub_8074E70
- thumb_func_end sub_8076ED8
-
- thumb_func_start sub_8076F58
-sub_8076F58: @ 8076F58
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08076F80 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08076F88
- ldr r2, _08076F84 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- negs r0, r0
- strh r0, [r2, 0x6]
- adds r1, r2, 0
- b _08076F92
- .align 2, 0
-_08076F80: .4byte gBattleAnimAttacker
-_08076F84: .4byte gBattleAnimArgs
-_08076F88:
- ldr r1, _08076FC4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
-_08076F92:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _08076FC8 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _08076FCC @ =sub_8074E70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076FC4: .4byte gBattleAnimArgs
-_08076FC8: .4byte move_anim_8074EE0
-_08076FCC: .4byte sub_8074E70
- thumb_func_end sub_8076F58
-
- thumb_func_start sub_8076FD0
-sub_8076FD0: @ 8076FD0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8074FCC
- ldr r0, _08076FF4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08076FFC
- ldr r0, _08076FF8 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _08077008
- .align 2, 0
-_08076FF4: .4byte gBattleAnimAttacker
-_08076FF8: .4byte gBattleAnimArgs
-_08076FFC:
- ldr r1, _08077024 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_08077008:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _08077028 @ =sub_8074F6C
- str r0, [r4, 0x1C]
- ldr r1, _0807702C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077024: .4byte gBattleAnimArgs
-_08077028: .4byte sub_8074F6C
-_0807702C: .4byte DestroyAnimSprite
- thumb_func_end sub_8076FD0
-
- thumb_func_start sub_8077030
-sub_8077030: @ 8077030
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080770C4 @ =gTasks
- adds r5, r1, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x8]
- ldr r7, _080770C8 @ =gBattleAnimAttacker
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _08077064
- movs r0, 0x8
- negs r0, r0
- adds r1, r0, 0
-_08077064:
- strh r1, [r5, 0xA]
- strh r6, [r5, 0xC]
- strh r6, [r5, 0xE]
- ldr r4, _080770CC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x24]
- ldrh r2, [r5, 0x8]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldr r0, _080770D0 @ =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- strh r6, [r5, 0x12]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 20
- lsrs r6, r0, 16
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- ldrb r0, [r7]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- cmp r0, 0x14
- beq _080770C0
- cmp r0, 0x28
- bne _080770D4
-_080770C0:
- movs r0, 0x2
- b _080770D6
- .align 2, 0
-_080770C4: .4byte gTasks
-_080770C8: .4byte gBattleAnimAttacker
-_080770CC: .4byte gSprites
-_080770D0: .4byte 0x00002771
-_080770D4:
- movs r0, 0x3
-_080770D6:
- strh r0, [r5, 0x14]
- lsls r0, r4, 1
- ldr r1, _08077104 @ =gPlttBufferUnfaded
- adds r0, r1
- lsls r1, r6, 1
- ldr r2, _08077108 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _0807710C @ =0x04000008
- bl CpuSet
- ldr r0, _08077110 @ =gBattleAnimArgs
- ldrb r2, [r0, 0x2]
- ldrh r3, [r0]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
- ldr r0, _08077114 @ =sub_8077118
- str r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077104: .4byte gPlttBufferUnfaded
-_08077108: .4byte gPlttBufferFaded
-_0807710C: .4byte 0x04000008
-_08077110: .4byte gBattleAnimArgs
-_08077114: .4byte sub_8077118
- thumb_func_end sub_8077030
-
- thumb_func_start sub_8077118
-sub_8077118: @ 8077118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807713C @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0807717C
- cmp r0, 0x1
- bgt _08077140
- cmp r0, 0
- beq _08077146
- b _080771D8
- .align 2, 0
-_0807713C: .4byte gTasks
-_08077140:
- cmp r0, 0x2
- beq _080771C4
- b _080771D8
-_08077146:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80771E4
- ldr r2, _08077178 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0xA]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0xE]
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080771D8
- strh r1, [r4, 0xE]
- b _080771B6
- .align 2, 0
-_08077178: .4byte gSprites
-_0807717C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80771E4
- ldr r3, _080771C0 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0xA]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _080771D8
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_080771B6:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080771D8
- .align 2, 0
-_080771C0: .4byte gSprites
-_080771C4:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080771D8
- ldr r0, _080771E0 @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080771D8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080771E0: .4byte 0x00002771
- thumb_func_end sub_8077118
-
- thumb_func_start sub_80771E4
-sub_80771E4: @ 80771E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r0, 0
- bl CloneBattlerSpriteWithBlend
- lsls r0, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0
- blt _08077254
- ldr r5, _08077260 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r3, r4, r5
- movs r0, 0x3
- ldrb r1, [r6, 0x14]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldrb r1, [r6, 0x10]
- lsls r1, 4
- movs r2, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- movs r0, 0x8
- strh r0, [r3, 0x2E]
- mov r0, r8
- strh r0, [r3, 0x30]
- strh r7, [r3, 0x32]
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x24]
- strh r0, [r3, 0x24]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08077264 @ =sub_8077268
- str r0, [r4]
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
-_08077254:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077260: .4byte gSprites
-_08077264: .4byte sub_8077268
- thumb_func_end sub_80771E4
-
- thumb_func_start sub_8077268
-sub_8077268: @ 8077268
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _08077292
- ldr r2, _08077298 @ =gTasks
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- subs r1, 0x1
- strh r1, [r0, 0x12]
- adds r0, r3, 0
- bl obj_delete_but_dont_free_vram
-_08077292:
- pop {r0}
- bx r0
- .align 2, 0
-_08077298: .4byte gTasks
- thumb_func_end sub_8077268
-
- thumb_func_start sub_807729C
-sub_807729C: @ 807729C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080772D0 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080772D4
- movs r0, 0x5
- b _080772D6
- .align 2, 0
-_080772D0: .4byte gBattleAnimAttacker
-_080772D4:
- ldr r0, _080772E8 @ =0x0000fff6
-_080772D6:
- strh r0, [r5, 0x2E]
- ldr r0, _080772EC @ =0x0000ffd8
- strh r0, [r5, 0x30]
- ldr r0, _080772F0 @ =sub_80772F4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080772E8: .4byte 0x0000fff6
-_080772EC: .4byte 0x0000ffd8
-_080772F0: .4byte sub_80772F4
- thumb_func_end sub_807729C
-
- thumb_func_start sub_80772F4
-sub_80772F4: @ 80772F4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r5, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r5, r2
- strh r0, [r4, 0x34]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, r5, 16
- asrs r0, 16
- movs r1, 0x14
- negs r1, r1
- cmp r0, r1
- bge _08077330
- adds r0, r5, 0x1
- strh r0, [r4, 0x30]
-_08077330:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _08077348
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08077348:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80772F4
-
- thumb_func_start sub_8077350
-sub_8077350: @ 8077350
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08077388 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, _0807738C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08077390
- ldrh r0, [r5, 0x8]
- adds r0, 0x1E
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0xA]
- subs r0, 0x14
- b _0807739E
- .align 2, 0
-_08077388: .4byte gBattleAnimArgs
-_0807738C: .4byte gBattleAnimTarget
-_08077390:
- ldrh r0, [r5, 0x8]
- subs r0, 0x1E
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0xA]
- subs r0, 0x50
-_0807739E:
- strh r0, [r4, 0x22]
- ldr r0, _080773B4 @ =StartAnimLinearTranslation
- str r0, [r4, 0x1C]
- ldr r1, _080773B8 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080773B4: .4byte StartAnimLinearTranslation
-_080773B8: .4byte DestroyAnimSprite
- thumb_func_end sub_8077350
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s
index 209d11ed3..e49ba538c 100644
--- a/asm/battle_anim_special.s
+++ b/asm/battle_anim_special.s
@@ -155,7 +155,7 @@ sub_80EEC0C: @ 80EEC0C
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080EEDD8 @ =gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080EEDDC @ =gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet
@@ -855,7 +855,7 @@ _080EF2E6:
movs r3, 0
bl SetSpriteRotScale
adds r0, r5, 0
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
movs r0, 0x1C
ldrsh r1, [r4, r0]
ldr r0, _080EF314 @ =0x000002cf
@@ -1585,7 +1585,7 @@ sub_80EF8C0: @ 80EF8C0
ldr r0, _080EF8E8 @ =0x0000ffd8
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080EF8EC @ =sub_80EF8F0
str r0, [r4, 0x1C]
pop {r4}
@@ -1601,7 +1601,7 @@ sub_80EF8F0: @ 80EF8F0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080EF99E
@@ -2804,7 +2804,7 @@ _080F01F2:
ldrsb r0, [r1, r0]
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
add r4, r10
ldr r0, _080F0270 @ =sub_80F0278
str r0, [r4]
@@ -2849,7 +2849,7 @@ sub_80F0278: @ 80F0278
orrs r0, r1
strb r0, [r3]
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080F02A8
@@ -3204,9 +3204,9 @@ sub_80F052C: @ 80F052C
movs r0, 0x20
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
adds r0, r4, 0
- bl sub_80750C8
+ bl TranslateAnimVerticalArc
ldr r0, _080F0570 @ =sub_80F0574
str r0, [r4, 0x1C]
pop {r4}
@@ -3220,7 +3220,7 @@ _080F0570: .4byte sub_80F0574
sub_80F0574: @ 80F0574
push {r4,lr}
adds r4, r0, 0
- bl sub_80750C8
+ bl TranslateAnimVerticalArc
lsls r0, 24
cmp r0, 0
bne _080F0590
@@ -5317,7 +5317,7 @@ _080F15F0:
_080F15F6:
ldr r0, _080F1610 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5982,7 +5982,7 @@ sub_80F1B3C: @ 80F1B3C
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
movs r0, 0x1E
strh r0, [r4, 0x2E]
movs r0, 0x1
@@ -6011,7 +6011,7 @@ sub_80F1B3C: @ 80F1B3C
ldr r0, _080F1BB4 @ =0x0000ffe0
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r2, _080F1BB8 @ =gSprites
ldr r1, _080F1BBC @ =gBattlerSpriteIds
ldr r0, _080F1BC0 @ =gBattleAnimAttacker
@@ -6074,7 +6074,7 @@ _080F1C00: .4byte sub_80F1C04
sub_80F1C04: @ 80F1C04
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080F1C26
diff --git a/asm/bug.s b/asm/bug.s
index de99118a2..29f38d3a2 100644
--- a/asm/bug.s
+++ b/asm/bug.s
@@ -53,7 +53,7 @@ _080B4008:
ldr r5, _080B406C @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
ldr r4, _080B4070 @ =gBattleAnimArgs
lsrs r0, 24
@@ -62,7 +62,7 @@ _080B4008:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -137,7 +137,7 @@ _080B40BC:
ldr r5, _080B4118 @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
ldr r4, _080B411C @ =gBattleAnimArgs
lsrs r0, 24
@@ -146,7 +146,7 @@ _080B40BC:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -199,7 +199,7 @@ sub_80B4128: @ 80B4128
_080B4144:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r1, _080B4184 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
@@ -236,7 +236,7 @@ _080B418C:
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
_080B419E:
adds r0, r5, 0
bl sub_8075678
@@ -258,7 +258,7 @@ _080B41BC: .4byte sub_80B41C0
sub_80B41C0: @ 80B41C0
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080B41D6
@@ -296,7 +296,7 @@ sub_80B41F8: @ 80B41F8
adds r3, r4, 0
adds r3, 0x22
movs r1, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080B422C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -552,7 +552,7 @@ _080B43E4:
_080B43F6:
adds r0, r7, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r5, _080B4488 @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
@@ -586,7 +586,7 @@ _080B43F6:
subs r1, r2
lsls r1, 16
asrs r1, 16
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
@@ -598,7 +598,7 @@ _080B43F6:
adds r0, r7, 0
movs r1, 0
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldrh r0, [r6, 0x8]
strh r0, [r7, 0x2E]
strh r4, [r7, 0x32]
@@ -625,7 +625,7 @@ sub_80B4494: @ 80B4494
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080B4500 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -660,7 +660,7 @@ _080B44B4:
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
adds r0, r6, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B450C @ =sub_80B4510
str r0, [r6, 0x1C]
adds r2, r6, 0
@@ -694,7 +694,7 @@ sub_80B4510: @ 80B4510
ands r1, r0
strb r1, [r2]
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B453C
@@ -729,7 +729,7 @@ _080B4552:
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
bne _080B45CC
@@ -749,7 +749,7 @@ _080B4552:
subs r1, r2
lsls r1, 16
asrs r1, 16
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
@@ -761,7 +761,7 @@ _080B4552:
adds r0, r4, 0
movs r1, 0
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
add r2, sp, 0x4
mov r1, r8
movs r3, 0x7
@@ -812,18 +812,18 @@ _080B45F6:
lsrs r0, 24
adds r0, 0x12
strh r0, [r5, 0x22]
- ldr r1, _080B462C @ =move_anim_8074EE0
+ ldr r1, _080B462C @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080B4630 @ =sub_8074F50
+ ldr r0, _080B4630 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B4628: .4byte gBattleAnimTarget
-_080B462C: .4byte move_anim_8074EE0
-_080B4630: .4byte sub_8074F50
+_080B462C: .4byte DestroySpriteAndMatrix
+_080B4630: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80B45D8
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/dark.s b/asm/dark.s
index 626ddc2be..afadcebae 100644
--- a/asm/dark.s
+++ b/asm/dark.s
@@ -25,7 +25,7 @@ sub_80B78E0: @ 80B78E0
movs r0, 0x52
bl SetGpuReg
adds r0, r4, 0
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -223,7 +223,7 @@ sub_80B7A80: @ 80B7A80
bl SetGpuReg
ldr r0, _080B7AAC @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -472,7 +472,7 @@ sub_80B7C50: @ 80B7C50
cmp r0, 0
bne _080B7C82
adds r0, r3, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080B7C82:
pop {r0}
bx r0
@@ -531,47 +531,47 @@ _080B7CE0:
_080B7CEA:
adds r0, r5, 0
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r4, 0x22]
b _080B7D58
_080B7D04:
adds r0, r5, 0
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0xE
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x10
strh r0, [r4, 0x22]
b _080B7D58
_080B7D1E:
adds r0, r5, 0
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
b _080B7D4C
_080B7D36:
adds r0, r5, 0
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0xE
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x10
_080B7D4C:
strh r0, [r4, 0x22]
@@ -593,7 +593,7 @@ _080B7D58:
ldr r0, _080B7D80 @ =0x0000fff4
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B7D84 @ =sub_80B7D88
str r0, [r4, 0x1C]
pop {r4-r7}
@@ -608,12 +608,12 @@ _080B7D84: .4byte sub_80B7D88
sub_80B7D88: @ 80B7D88
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B7D9C
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080B7D9C:
pop {r4}
pop {r0}
@@ -642,7 +642,7 @@ sub_80B7DA4: @ 80B7DA4
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x7
strh r0, [r5, 0x14]
ldrh r1, [r5, 0x16]
@@ -678,7 +678,7 @@ _080B7E16:
strh r0, [r5, 0x18]
ldr r0, _080B7E64 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
@@ -1022,7 +1022,7 @@ _080B80EC: .4byte 0x00003f3f
_080B80F0:
ldr r0, _080B8110 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
@@ -1095,7 +1095,7 @@ _080B817C:
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x7
strh r0, [r5, 0x14]
ldrh r1, [r5, 0x16]
@@ -1653,7 +1653,7 @@ sub_80B85B8: @ 80B85B8
mov r10, r0
ldr r6, _080B8658 @ =gBattleAnimAttacker
ldrb r0, [r6]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -1731,7 +1731,7 @@ sub_80B8664: @ 80B8664
lsrs r6, r0, 24
ldr r4, _080B86AC @ =gBattleAnimAttacker
ldrb r0, [r4]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -1778,7 +1778,7 @@ sub_80B86B0: @ 80B86B0
ldrb r1, [r1, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
- ldr r0, _080B86E4 @ =sub_8074F6C
+ ldr r0, _080B86E4 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080B86E8 @ =DestroyAnimSprite
adds r0, r4, 0
@@ -1788,7 +1788,7 @@ sub_80B86B0: @ 80B86B0
bx r0
.align 2, 0
_080B86E0: .4byte gBattleAnimArgs
-_080B86E4: .4byte sub_8074F6C
+_080B86E4: .4byte RunStoredCallbackWhenAnimEnds
_080B86E8: .4byte DestroyAnimSprite
thumb_func_end sub_80B86B0
@@ -1952,7 +1952,7 @@ _080B8828:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet
@@ -1991,7 +1991,7 @@ _080B8828:
bne _080B88E0
adds r0, r1, 0
movs r1, 0
- bl sub_8075B48
+ bl SetGreyscaleOrOriginalPalette
b _080B88EC
.align 2, 0
_080B88B8: .4byte gBattlerPartyIndexes
@@ -2093,7 +2093,7 @@ _080B894E:
bne _080B8990
adds r0, r1, 0
movs r1, 0x1
- bl sub_8075B48
+ bl SetGreyscaleOrOriginalPalette
_080B8990:
movs r0, 0x8
ldrsh r1, [r4, r0]
@@ -2279,7 +2279,7 @@ _080B8B06:
adds r0, 0x10
ldr r1, _080B8B34 @ =gBattleAnimArgs
ldrb r1, [r1, 0x2]
- bl sub_8075B48
+ bl SetGreyscaleOrOriginalPalette
_080B8B22:
adds r0, r5, 0
bl DestroyAnimVisualTask
diff --git a/asm/dragon.s b/asm/dragon.s
index bd01691f1..2e3684042 100644
--- a/asm/dragon.s
+++ b/asm/dragon.s
@@ -68,25 +68,25 @@ _080B72B6:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, _080B72F0 @ =move_anim_8074EE0
+ ldr r1, _080B72F0 @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080B72F4 @ =sub_8074E70
+ ldr r0, _080B72F4 @ =TranslateSpriteLinearAndFlicker
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B72EC: .4byte gBattleAnimArgs
-_080B72F0: .4byte move_anim_8074EE0
-_080B72F4: .4byte sub_8074E70
+_080B72F0: .4byte DestroySpriteAndMatrix
+_080B72F4: .4byte TranslateSpriteLinearAndFlicker
thumb_func_end sub_80B725C
thumb_func_start sub_80B72F8
sub_80B72F8: @ 80B72F8
push {r4,r5,lr}
adds r5, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r4, _080B7350 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
@@ -154,7 +154,7 @@ _080B7386:
strh r0, [r5, 0x2E]
ldr r0, _080B73A4 @ =StartAnimLinearTranslation
str r0, [r5, 0x1C]
- ldr r1, _080B73A8 @ =move_anim_8074EE0
+ ldr r1, _080B73A8 @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -163,7 +163,7 @@ _080B7386:
.align 2, 0
_080B73A0: .4byte gBattleAnimArgs
_080B73A4: .4byte StartAnimLinearTranslation
-_080B73A8: .4byte move_anim_8074EE0
+_080B73A8: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80B72F8
thumb_func_start sub_80B73AC
@@ -199,14 +199,14 @@ _080B73CA:
movs r0, 0x2
ldrsh r1, [r4, r0]
adds r0, r5, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r4, 0x4]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
- ldr r0, _080B7414 @ =sub_8074F6C
+ ldr r0, _080B7414 @ =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
- ldr r1, _080B7418 @ =move_anim_8074EE0
+ ldr r1, _080B7418 @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -215,8 +215,8 @@ _080B73CA:
.align 2, 0
_080B740C: .4byte gBattleAnimTarget
_080B7410: .4byte gBattleAnimArgs
-_080B7414: .4byte sub_8074F6C
-_080B7418: .4byte move_anim_8074EE0
+_080B7414: .4byte RunStoredCallbackWhenAnimEnds
+_080B7418: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80B73AC
thumb_func_start sub_80B741C
@@ -269,12 +269,12 @@ sub_80B7448: @ 80B7448
ldr r4, _080B74A4 @ =gBattlerAttacker
ldrb r0, [r4]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r7, r0, 16
lsrs r5, r7, 16
ldrb r0, [r4]
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r1, r0, 16
lsrs r0, r1, 16
cmp r5, r0
@@ -460,7 +460,7 @@ sub_80B75E0: @ 80B75E0
adds r4, r1, r0
ldr r0, _080B7610 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -491,7 +491,7 @@ _080B7622:
strb r5, [r0, 0x9]
ldr r0, _080B76A4 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
diff --git a/asm/electric.s b/asm/electric.s
index 7d39b287b..fa92c096a 100644
--- a/asm/electric.s
+++ b/asm/electric.s
@@ -110,7 +110,7 @@ sub_80ADC9C: @ 80ADC9C
cmp r0, 0
beq _080ADCB2
adds r0, r2, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080ADCB2:
pop {r0}
bx r0
@@ -173,18 +173,18 @@ _080ADD1C:
strh r0, [r5, 0x32]
ldrh r0, [r2, 0x8]
strh r0, [r5, 0x34]
- ldr r1, _080ADD44 @ =move_anim_8074EE0
+ ldr r1, _080ADD44 @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080ADD48 @ =sub_8074A80
+ ldr r0, _080ADD48 @ =TranslateSpriteInCircleOverDuration
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080ADD40: .4byte gBattleAnimArgs
-_080ADD44: .4byte move_anim_8074EE0
-_080ADD48: .4byte sub_8074A80
+_080ADD44: .4byte DestroySpriteAndMatrix
+_080ADD48: .4byte TranslateSpriteInCircleOverDuration
thumb_func_end sub_80ADCB8
thumb_func_start sub_80ADD4C
@@ -315,7 +315,7 @@ _080ADE02:
cmp r0, 0
beq _080ADE66
adds r0, r4, 0
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -370,7 +370,7 @@ sub_80ADEB0: @ 80ADEB0
push {r4-r6,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r5, _080ADF24 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
@@ -392,7 +392,7 @@ sub_80ADEB0: @ 80ADEB0
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x38]
ldrh r0, [r5, 0xA]
@@ -432,7 +432,7 @@ _080ADF34: .4byte sub_80ADF38
sub_80ADF38: @ 80ADF38
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080ADFA2
@@ -743,7 +743,7 @@ sub_80AE1A0: @ 80AE1A0
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
@@ -788,7 +788,7 @@ _080AE1FA:
ldr r0, _080AE214 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
- ldr r0, _080AE218 @ =sub_8074C44
+ ldr r0, _080AE218 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080AE21C @ =DestroyAnimSprite
adds r0, r4, 0
@@ -798,7 +798,7 @@ _080AE1FA:
bx r0
.align 2, 0
_080AE214: .4byte gBattleAnimArgs
-_080AE218: .4byte sub_8074C44
+_080AE218: .4byte WaitAnimForDuration
_080AE21C: .4byte DestroyAnimSprite
thumb_func_end sub_80AE1A0
@@ -1344,11 +1344,11 @@ sub_80AE5BC: @ 80AE5BC
strh r0, [r4, 0x36]
strh r6, [r4, 0x38]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r1, _080AE6B4 @ =sub_80AE704
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080AE6B8 @ =sub_8074F6C
+ ldr r0, _080AE6B8 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x1A]
adds r0, 0x1
@@ -1390,7 +1390,7 @@ _080AE6A8: .4byte gUnknown_83E6120
_080AE6AC: .4byte gSprites
_080AE6B0: .4byte gUnknown_83E60D0
_080AE6B4: .4byte sub_80AE704
-_080AE6B8: .4byte sub_8074F6C
+_080AE6B8: .4byte RunStoredCallbackWhenAnimEnds
_080AE6BC:
movs r1, 0x16
ldrsh r0, [r5, r1]
@@ -1408,7 +1408,7 @@ _080AE6CA:
sub_80AE6D0: @ 80AE6D0
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080AE6F8
@@ -1476,18 +1476,18 @@ _080AE73A:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080AE76C @ =move_anim_8074EE0
+ ldr r1, _080AE76C @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080AE770 @ =sub_8074F50
+ ldr r0, _080AE770 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AE768: .4byte gBattleAnimTarget
-_080AE76C: .4byte move_anim_8074EE0
-_080AE770: .4byte sub_8074F50
+_080AE76C: .4byte DestroySpriteAndMatrix
+_080AE770: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80AE71C
thumb_func_start sub_80AE774
@@ -1527,7 +1527,7 @@ _080AE792:
ldr r1, _080AE7D4 @ =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080AE7D8 @ =sub_8074F6C
+ ldr r0, _080AE7D8 @ =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
@@ -1536,7 +1536,7 @@ _080AE792:
_080AE7CC: .4byte gBattleAnimTarget
_080AE7D0: .4byte gBattleAnimArgs
_080AE7D4: .4byte DestroyAnimSprite
-_080AE7D8: .4byte sub_8074F6C
+_080AE7D8: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80AE774
thumb_func_start sub_80AE7DC
@@ -1632,7 +1632,7 @@ _080AE864:
cmp r0, r1
bls _080AE894
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080AE894:
pop {r4}
pop {r0}
@@ -2203,7 +2203,7 @@ _080AECC4:
cmp r0, 0
beq _080AECD8
adds r0, r5, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080AECD8:
pop {r4,r5}
pop {r0}
diff --git a/asm/fighting.s b/asm/fighting.s
index 81785b16b..e9bf5ece8 100644
--- a/asm/fighting.s
+++ b/asm/fighting.s
@@ -13,14 +13,14 @@ unc_080B08A0: @ 80B08A0
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
movs r0, 0xF
strh r0, [r4, 0x2E]
- ldr r0, _080B08D4 @ =sub_8074C44
+ ldr r0, _080B08D4 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080B08D8 @ =DestroyAnimSprite
adds r0, r4, 0
@@ -30,7 +30,7 @@ unc_080B08A0: @ 80B08A0
bx r0
.align 2, 0
_080B08D0: .4byte gBattleAnimArgs
-_080B08D4: .4byte sub_8074C44
+_080B08D4: .4byte WaitAnimForDuration
_080B08D8: .4byte DestroyAnimSprite
thumb_func_end unc_080B08A0
@@ -110,19 +110,19 @@ sub_80B0954: @ 80B0954
bne _080B0978
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080B0980
.align 2, 0
_080B0974: .4byte gBattleAnimArgs
_080B0978:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080B0980:
ldr r0, _080B0998 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
- ldr r0, _080B099C @ =sub_8074C44
+ ldr r0, _080B099C @ =WaitAnimForDuration
str r0, [r5, 0x1C]
ldr r1, _080B09A0 @ =DestroyAnimSprite
adds r0, r5, 0
@@ -132,7 +132,7 @@ _080B0980:
bx r0
.align 2, 0
_080B0998: .4byte gBattleAnimArgs
-_080B099C: .4byte sub_8074C44
+_080B099C: .4byte WaitAnimForDuration
_080B09A0: .4byte DestroyAnimSprite
thumb_func_end sub_80B0954
@@ -188,7 +188,7 @@ _080B09E8:
strh r0, [r5, 0x22]
mov r0, r8
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
@@ -197,7 +197,7 @@ _080B09E8:
lsrs r6, r1, 16
mov r0, r8
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
cmp r0, 0
@@ -371,7 +371,7 @@ sub_80B0B80: @ 80B0B80
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
movs r0, 0x1E
strh r0, [r4, 0x2E]
ldr r0, _080B0BA0 @ =gBattleAnimArgs
@@ -480,7 +480,7 @@ sub_80B0C28: @ 80B0C28
_080B0C54:
adds r0, r6, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r0, _080B0CA4 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -505,7 +505,7 @@ _080B0C72:
strh r0, [r6, 0x34]
strh r0, [r6, 0x36]
adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldrh r0, [r4, 0xA]
strh r0, [r6, 0x38]
ldrh r0, [r4, 0x8]
@@ -527,7 +527,7 @@ _080B0CB0: .4byte sub_80B0CB4
sub_80B0CB4: @ 80B0CB4
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080B0CE0
@@ -559,14 +559,14 @@ sub_80B0CEC: @ 80B0CEC
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r5, _080B0D18 @ =gBattleAnimArgs
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
- ldr r0, _080B0D1C @ =sub_8074C44
+ ldr r0, _080B0D1C @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080B0D20 @ =sub_80B0D24
adds r0, r4, 0
@@ -576,7 +576,7 @@ sub_80B0CEC: @ 80B0CEC
bx r0
.align 2, 0
_080B0D18: .4byte gBattleAnimArgs
-_080B0D1C: .4byte sub_8074C44
+_080B0D1C: .4byte WaitAnimForDuration
_080B0D20: .4byte sub_80B0D24
thumb_func_end sub_80B0CEC
@@ -594,7 +594,7 @@ sub_80B0D24: @ 80B0D24
strb r0, [r2]
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r0, _080B0D50 @ =sub_8074C44
+ ldr r0, _080B0D50 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080B0D54 @ =DestroyAnimSprite
adds r0, r4, 0
@@ -603,7 +603,7 @@ sub_80B0D24: @ 80B0D24
pop {r0}
bx r0
.align 2, 0
-_080B0D50: .4byte sub_8074C44
+_080B0D50: .4byte WaitAnimForDuration
_080B0D54: .4byte DestroyAnimSprite
thumb_func_end sub_80B0D24
@@ -612,7 +612,7 @@ sub_80B0D58: @ 80B0D58
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r0, _080B0D74 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
@@ -674,14 +674,14 @@ sub_80B0DD4: @ 80B0DD4
push {lr}
movs r1, 0xF
strh r1, [r0, 0x2E]
- ldr r1, _080B0DE8 @ =sub_8074C44
+ ldr r1, _080B0DE8 @ =WaitAnimForDuration
str r1, [r0, 0x1C]
ldr r1, _080B0DEC @ =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
-_080B0DE8: .4byte sub_8074C44
+_080B0DE8: .4byte WaitAnimForDuration
_080B0DEC: .4byte DestroyAnimSprite
thumb_func_end sub_80B0DD4
@@ -695,7 +695,7 @@ sub_80B0DF0: @ 80B0DF0
bne _080B0E1C
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r1, _080B0E18 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
@@ -1052,7 +1052,7 @@ sub_80B107C: @ 80B107C
strh r0, [r5, 0x22]
ldr r0, _080B10D0 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1072,7 +1072,7 @@ _080B10D4: .4byte gBattleAnimTarget
_080B10D8:
ldr r0, _080B1110 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1140,8 +1140,8 @@ sub_80B111C: @ 80B111C
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080B1180 @ =move_anim_8074EE0
+ bl InitAnimLinearTranslation
+ ldr r1, _080B1180 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, _080B1184 @ =sub_807563C
@@ -1151,7 +1151,7 @@ _080B1178:
pop {r0}
bx r0
.align 2, 0
-_080B1180: .4byte move_anim_8074EE0
+_080B1180: .4byte DestroySpriteAndMatrix
_080B1184: .4byte sub_807563C
thumb_func_end sub_80B111C
@@ -1171,7 +1171,7 @@ sub_80B1188: @ 80B1188
adds r1, r5, 0
adds r1, 0x38
lsls r2, 8
- bl sub_80765C0
+ bl StorePointerInVars
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x3A]
ldrh r2, [r5, 0x4]
@@ -1214,7 +1214,7 @@ sub_80B11E4: @ 80B11E4
ldrsh r0, [r7, r2]
movs r2, 0x38
ldrsh r1, [r7, r2]
- bl sub_80765C8
+ bl LoadPointerFromVars
adds r4, r0, 0
movs r1, 0x3A
ldrsh r0, [r7, r1]
@@ -1224,7 +1224,7 @@ sub_80B11E4: @ 80B11E4
adds r1, r7, 0
adds r1, 0x38
adds r2, r4, 0
- bl sub_80765C0
+ bl StorePointerInVars
asrs r4, 8
strh r4, [r7, 0x22]
lsls r4, 16
@@ -1369,7 +1369,7 @@ _080B132C:
ldr r0, _080B1368 @ =gBattleAnimTarget
_080B1332:
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1431,7 +1431,7 @@ _080B138C:
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r1, _080B13CC @ =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
@@ -1546,14 +1546,14 @@ sub_80B1484: @ 80B1484
bne _080B14A0
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080B14A8
.align 2, 0
_080B149C: .4byte gBattleAnimArgs
_080B14A0:
adds r0, r4, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080B14A8:
bl IsContest
lsls r0, 24
@@ -1574,7 +1574,7 @@ _080B14BC:
movs r1, 0x1
bl StartSpriteAnim
_080B14D2:
- ldr r0, _080B14E8 @ =sub_8074F6C
+ ldr r0, _080B14E8 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080B14EC @ =DestroyAnimSprite
adds r0, r4, 0
@@ -1584,7 +1584,7 @@ _080B14D2:
bx r0
.align 2, 0
_080B14E4: .4byte gBattleAnimAttacker
-_080B14E8: .4byte sub_8074F6C
+_080B14E8: .4byte RunStoredCallbackWhenAnimEnds
_080B14EC: .4byte DestroyAnimSprite
thumb_func_end sub_80B1484
diff --git a/asm/fire.s b/asm/fire.s
index 47f4208b1..efdfc8315 100644
--- a/asm/fire.s
+++ b/asm/fire.s
@@ -24,7 +24,7 @@ sub_80AC90C: @ 80AC90C
ldr r1, _080AC944 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r1, _080AC948 @ =sub_8074AE0
+ ldr r1, _080AC948 @ =TranslateSpriteInGrowingCircleOverDuration
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -34,7 +34,7 @@ sub_80AC90C: @ 80AC90C
.align 2, 0
_080AC940: .4byte gBattleAnimArgs
_080AC944: .4byte DestroyAnimSprite
-_080AC948: .4byte sub_8074AE0
+_080AC948: .4byte TranslateSpriteInGrowingCircleOverDuration
thumb_func_end sub_80AC90C
thumb_func_start sub_80AC94C
@@ -45,7 +45,7 @@ sub_80AC94C: @ 80AC94C
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
- bl sub_8074FF8
+ bl SetAnimSpriteInitialXOffset
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
@@ -56,7 +56,7 @@ sub_80AC94C: @ 80AC94C
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x32]
- ldr r0, _080AC988 @ =sub_8074D00
+ ldr r0, _080AC988 @ =TranslateSpriteLinearFixedPoint
str r0, [r4, 0x1C]
ldr r1, _080AC98C @ =DestroyAnimSprite
adds r0, r4, 0
@@ -66,7 +66,7 @@ sub_80AC94C: @ 80AC94C
bx r0
.align 2, 0
_080AC984: .4byte gBattleAnimArgs
-_080AC988: .4byte sub_8074D00
+_080AC988: .4byte TranslateSpriteLinearFixedPoint
_080AC98C: .4byte DestroyAnimSprite
thumb_func_end sub_80AC94C
@@ -74,7 +74,7 @@ _080AC98C: .4byte DestroyAnimSprite
sub_80AC990: @ 80AC990
push {r4,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r0, _080AC9C4 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -212,7 +212,7 @@ _080ACA92:
cmp r1, r0
bne _080ACAA4
adds r0, r2, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080ACAA4:
pop {r0}
bx r0
@@ -222,7 +222,7 @@ _080ACAA4:
sub_80ACAA8: @ 80ACAA8
push {r4,lr}
adds r4, r0, 0
- bl sub_8074FCC
+ bl SetSpriteCoordsToAnimAttackerCoords
ldr r0, _080ACACC @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -348,7 +348,7 @@ _080ACB9C:
b _080ACBAA
_080ACBA4:
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080ACBAA:
pop {r4}
pop {r0}
@@ -449,7 +449,7 @@ sub_80ACC60: @ 80ACC60
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080ACC80 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
movs r1, 0
@@ -497,7 +497,7 @@ sub_80ACC88: @ 80ACC88
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, _080ACCDC @ =sub_80ACCE0
str r0, [r5, 0x1C]
_080ACCD2:
@@ -513,7 +513,7 @@ _080ACCDC: .4byte sub_80ACCE0
sub_80ACCE0: @ 80ACCE0
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080ACD28
@@ -634,7 +634,7 @@ sub_80ACDA8: @ 80ACDA8
ldr r1, _080ACDE0 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080ACDE4 @ =sub_8074CD0
+ ldr r0, _080ACDE4 @ =TranslateSpriteLinear
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
@@ -642,7 +642,7 @@ sub_80ACDA8: @ 80ACDA8
.align 2, 0
_080ACDDC: .4byte gBattleAnimArgs
_080ACDE0: .4byte DestroyAnimSprite
-_080ACDE4: .4byte sub_8074CD0
+_080ACDE4: .4byte TranslateSpriteLinear
thumb_func_end sub_80ACDA8
thumb_func_start sub_80ACDE8
@@ -650,7 +650,7 @@ sub_80ACDE8: @ 80ACDE8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r1, _080ACE1C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
@@ -662,7 +662,7 @@ sub_80ACDE8: @ 80ACDE8
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _080ACE20 @ =sub_8074C44
+ ldr r0, _080ACE20 @ =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, _080ACE24 @ =sub_80ACE28
adds r0, r4, 0
@@ -672,7 +672,7 @@ sub_80ACDE8: @ 80ACDE8
bx r0
.align 2, 0
_080ACE1C: .4byte gBattleAnimArgs
-_080ACE20: .4byte sub_8074C44
+_080ACE20: .4byte WaitAnimForDuration
_080ACE24: .4byte sub_80ACE28
thumb_func_end sub_80ACDE8
@@ -923,7 +923,7 @@ _080AD00C:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
ldr r2, _080AD030 @ =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
@@ -1635,7 +1635,7 @@ _080AD556:
_080AD55C:
adds r0, r5, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r4, _080AD584 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
@@ -1659,7 +1659,7 @@ _080AD58E:
strh r0, [r5, 0x36]
ldr r0, _080AD5B0 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1787,7 +1787,7 @@ _080AD68C: .4byte sub_80AD690
sub_80AD690: @ 80AD690
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080AD6E8
@@ -1889,7 +1889,7 @@ _080AD70C:
bls _080AD780
ldr r0, _080AD77C @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1906,7 +1906,7 @@ _080AD77C: .4byte gBattleAnimTarget
_080AD780:
ldr r0, _080AD7A4 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
diff --git a/asm/flying.s b/asm/flying.s
index bef6163ad..252a1a957 100644
--- a/asm/flying.s
+++ b/asm/flying.s
@@ -46,7 +46,7 @@ sub_80B18E4: @ 80B18E4
push {r4,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldrh r0, [r4, 0x22]
adds r0, 0x14
strh r0, [r4, 0x22]
@@ -208,7 +208,7 @@ sub_80B1A1C: @ 80B1A1C
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080B1A88 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -245,8 +245,8 @@ _080B1A3C:
adds r0, r4
strh r0, [r6, 0x36]
adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080B1A94 @ =sub_8074F50
+ bl InitAnimLinearTranslation
+ ldr r0, _080B1A94 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r6, 0x1C]
ldr r1, _080B1A98 @ =sub_80B1A9C
adds r0, r6, 0
@@ -258,7 +258,7 @@ _080B1A3C:
_080B1A88: .4byte gBattleAnimAttacker
_080B1A8C: .4byte gBattleAnimArgs
_080B1A90: .4byte gBattleAnimTarget
-_080B1A94: .4byte sub_8074F50
+_080B1A94: .4byte RunStoredCallbackWhenAffineAnimEnds
_080B1A98: .4byte sub_80B1A9C
thumb_func_end sub_80B1A1C
@@ -266,7 +266,7 @@ _080B1A98: .4byte sub_80B1A9C
sub_80B1A9C: @ 80B1A9C
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080B1AB0
@@ -365,7 +365,7 @@ _080B1B60:
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
_080B1B72:
ldr r4, _080B1BA4 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
@@ -399,7 +399,7 @@ sub_80B1BB0: @ 80B1BB0
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r1, _080B1BEC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
@@ -517,7 +517,7 @@ _080B1C72:
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, _080B1CBC @ =sub_80B1CC0
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -537,7 +537,7 @@ sub_80B1CC0: @ 80B1CC0
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
ldrh r1, [r4, 0x34]
lsrs r0, r1, 8
cmp r0, 0xC8
@@ -725,7 +725,7 @@ _080B1DC8:
cmp r0, 0
bne _080B1E64
adds r0, r6, 0
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -744,7 +744,7 @@ _080B1E5C: .4byte gBattleAnimTarget
_080B1E60: .4byte gBattleAnimArgs
_080B1E64:
adds r0, r6, 0
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -790,7 +790,7 @@ _080B1E7C:
b _080B1F16
_080B1EBE:
adds r0, r6, 0
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1614,7 +1614,7 @@ sub_80B24C0: @ 80B24C0
adds r4, r0, 0
ldr r0, _080B2508 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1637,7 +1637,7 @@ sub_80B24C0: @ 80B24C0
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r0, _080B2510 @ =sub_8075DF4
+ ldr r0, _080B2510 @ =TranslateAnimSpriteToTargetMonLocation
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -1645,7 +1645,7 @@ sub_80B24C0: @ 80B24C0
.align 2, 0
_080B2508: .4byte gBattleAnimTarget
_080B250C: .4byte gBattleAnimAttacker
-_080B2510: .4byte sub_8075DF4
+_080B2510: .4byte TranslateAnimSpriteToTargetMonLocation
thumb_func_end sub_80B24C0
thumb_func_start sub_80B2514
@@ -1700,7 +1700,7 @@ _080B256E:
beq _080B25A4
ldr r0, _080B25A0 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -1720,7 +1720,7 @@ _080B25A0: .4byte gBattleAnimTarget
_080B25A4:
ldr r0, _080B25C0 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1974,14 +1974,14 @@ sub_80B2780: @ 80B2780
bne _080B279C
adds r0, r5, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080B27A4
.align 2, 0
_080B2798: .4byte gBattleAnimArgs
_080B279C:
adds r0, r5, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080B27A4:
ldr r4, _080B280C @ =gBattleAnimArgs
movs r2, 0x4
@@ -2179,7 +2179,7 @@ sub_80B2914: @ 80B2914
_080B2926:
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r2, _080B2954 @ =gSprites
@@ -2302,7 +2302,7 @@ sub_80B2A08: @ 80B2A08
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r1, _080B2A44 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
@@ -2473,7 +2473,7 @@ _080B2B22:
str r0, [sp]
adds r0, r5, 0
movs r1, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
@@ -2503,7 +2503,7 @@ _080B2B72:
ldrsh r3, [r5, r0]
str r1, [sp]
adds r0, r5, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldrb r1, [r5, 0x3]
lsls r1, 26
lsrs r1, 27
@@ -2822,7 +2822,7 @@ sub_80B2D64: @ 80B2D64
asrs r5, 16
adds r0, r4, 0
adds r1, r5, 0
- bl sub_8075B30
+ bl ArcTan2Neg
lsls r0, 16
movs r1, 0xC0
lsls r1, 24
@@ -2834,7 +2834,7 @@ sub_80B2D64: @ 80B2D64
mov r0, r8
movs r1, 0x1
adds r2, r3, 0
- bl sub_8075A1C
+ bl TrySetSpriteRotScale
ldr r0, _080B2E1C @ =sub_80B2E20
mov r2, r8
str r0, [r2, 0x1C]
@@ -2883,7 +2883,7 @@ sub_80B2E20: @ 80B2E20
bge _080B2E60
_080B2E5A:
adds r0, r2, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080B2E60:
pop {r0}
bx r0
diff --git a/asm/ghost.s b/asm/ghost.s
index 9d5d843ca..0e8796310 100644
--- a/asm/ghost.s
+++ b/asm/ghost.s
@@ -10,7 +10,7 @@ sub_80B5268: @ 80B5268
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080B52C4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
@@ -59,7 +59,7 @@ sub_80B52D0: @ 80B52D0
adds r4, r0, 0
bl sub_80B53C0
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080B52F0
@@ -119,7 +119,7 @@ sub_80B5344: @ 80B5344
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -163,11 +163,11 @@ _080B5396:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _080B53B0 @ =sub_8074F88
+ ldr r0, _080B53B0 @ =DestroyAnimSpriteAndDisableBlend
str r0, [r4, 0x1C]
b _080B53BA
.align 2, 0
-_080B53B0: .4byte sub_8074F88
+_080B53B0: .4byte DestroyAnimSpriteAndDisableBlend
_080B53B4:
adds r0, r4, 0
bl sub_80B53C0
@@ -262,7 +262,7 @@ sub_80B5450: @ 80B5450
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r1, _080B546C @ =sub_80B5470
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -719,7 +719,7 @@ _080B57DE:
_080B57E8: .4byte gBattleAnimTarget
_080B57EC:
adds r0, r5, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080B57F2:
pop {r4,r5}
pop {r0}
@@ -731,7 +731,7 @@ sub_80B57F8: @ 80B57F8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r0, _080B580C @ =sub_80B5810
str r0, [r4, 0x1C]
pop {r4}
@@ -956,7 +956,7 @@ _080B596E:
lsls r0, 2
adds r4, 0x1C
adds r0, r4
- ldr r1, _080B59CC @ =sub_8074D00
+ ldr r1, _080B59CC @ =TranslateSpriteLinearFixedPoint
str r1, [r0]
ldr r0, _080B59D0 @ =sub_80B59D4
str r0, [r5]
@@ -968,7 +968,7 @@ _080B59B8:
_080B59C0: .4byte 0x0000ff90
_080B59C4: .4byte gSprites
_080B59C8: .4byte SpriteCallbackDummy
-_080B59CC: .4byte sub_8074D00
+_080B59CC: .4byte TranslateSpriteLinearFixedPoint
_080B59D0: .4byte sub_80B59D4
thumb_func_end sub_80B58AC
@@ -1120,7 +1120,7 @@ sub_80B5AD4: @ 80B5AD4
adds r5, r0, r1
ldr r0, _080B5B10 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
@@ -1492,7 +1492,7 @@ sub_80B5DCC: @ 80B5DCC
adds r4, r0, r1
ldr r0, _080B5E00 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
@@ -1814,7 +1814,7 @@ sub_80B6020: @ 80B6020
str r0, [sp, 0x4]
ldrb r0, [r4]
movs r1, 0x3
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
@@ -1866,7 +1866,7 @@ _080B6092:
mov r10, r0
adds r0, r4, 0
movs r1, 0x3
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
lsrs r0, 16
mov r9, r0
@@ -2528,7 +2528,7 @@ sub_80B664C: @ 80B664C
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080B6678 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -2616,7 +2616,7 @@ _080B66BA:
bne _080B671C
movs r0, 0x1E
strh r0, [r3, 0x2E]
- ldr r0, _080B6714 @ =sub_8074C44
+ ldr r0, _080B6714 @ =WaitAnimForDuration
str r0, [r3, 0x1C]
ldr r1, _080B6718 @ =sub_80B6728
adds r0, r3, 0
@@ -2625,7 +2625,7 @@ _080B66BA:
.align 2, 0
_080B670C: .4byte 0x000003ff
_080B6710: .4byte 0xfffffc00
-_080B6714: .4byte sub_8074C44
+_080B6714: .4byte WaitAnimForDuration
_080B6718: .4byte sub_80B6728
_080B671C:
movs r0, 0x28
@@ -2877,13 +2877,13 @@ sub_80B68C8: @ 80B68C8
lsrs r0, 24
strh r0, [r4, 0x1A]
ldrb r0, [r5]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldrb r0, [r5]
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
@@ -2893,7 +2893,7 @@ sub_80B68C8: @ 80B68C8
strh r1, [r4, 0x1E]
strh r6, [r4, 0x16]
ldrb r0, [r5]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
@@ -3272,7 +3272,7 @@ sub_80B6BE4: @ 80B6BE4
adds r6, r1, r0
ldr r0, _080B6C1C @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0x26
@@ -4040,7 +4040,7 @@ _080B7218:
ldrh r1, [r0, 0x22]
subs r1, 0x8
strh r1, [r0, 0x22]
- ldr r0, _080B7258 @ =move_anim_8074EE0
+ ldr r0, _080B7258 @ =DestroySpriteAndMatrix
str r0, [r5, 0x1C]
_080B724C:
pop {r4,r5}
@@ -4048,7 +4048,7 @@ _080B724C:
bx r0
.align 2, 0
_080B7254: .4byte gSprites
-_080B7258: .4byte move_anim_8074EE0
+_080B7258: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80B71B0
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/ground.s b/asm/ground.s
index 585fb139a..eb655ccc8 100644
--- a/asm/ground.s
+++ b/asm/ground.s
@@ -40,7 +40,7 @@ sub_80B8B6C: @ 80B8B6C
ldr r0, _080B8BCC @ =0x0000ffd8
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B8BD0 @ =sub_80B8BD4
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -57,7 +57,7 @@ _080B8BD0: .4byte sub_80B8BD4
sub_80B8BD4: @ 80B8BD4
push {r4,r5,lr}
adds r5, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B8C28
@@ -90,7 +90,7 @@ sub_80B8BD4: @ 80B8BD4
movs r0, 0x28
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B8C34 @ =sub_80B8C38
str r0, [r5, 0x1C]
_080B8C28:
@@ -106,7 +106,7 @@ _080B8C34: .4byte sub_80B8C38
sub_80B8C38: @ 80B8C38
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B8C4C
@@ -123,7 +123,7 @@ sub_80B8C54: @ 80B8C54
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r0, _080B8CB4 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -178,17 +178,17 @@ sub_80B8CC8: @ 80B8CC8
push {r7}
adds r6, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r4, _080B8D48 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
- bl sub_8074844
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r7, r0, 24
bl Random
@@ -224,7 +224,7 @@ _080B8D20:
strh r0, [r6, 0x36]
ldr r0, _080B8D50 @ =StartAnimLinearTranslation
str r0, [r6, 0x1C]
- ldr r1, _080B8D54 @ =move_anim_8074EE0
+ ldr r1, _080B8D54 @ =DestroySpriteAndMatrix
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r3}
@@ -236,7 +236,7 @@ _080B8D20:
_080B8D48: .4byte gBattleAnimTarget
_080B8D4C: .4byte gBattleAnimArgs
_080B8D50: .4byte StartAnimLinearTranslation
-_080B8D54: .4byte move_anim_8074EE0
+_080B8D54: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80B8CC8
thumb_func_start sub_80B8D58
@@ -479,7 +479,7 @@ _080B8F14:
strh r0, [r4, 0x1C]
ldr r0, _080B8F3C @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
@@ -504,7 +504,7 @@ _080B8F50:
strh r0, [r4, 0x22]
ldr r0, _080B8F94 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -687,7 +687,7 @@ sub_80B908C: @ 80B908C
strh r4, [r1, 0x26]
ldr r0, _080B90D0 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -852,7 +852,7 @@ _080B91F0:
strh r0, [r4, 0x1C]
ldr r0, _080B9214 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
@@ -870,7 +870,7 @@ _080B921E:
strh r0, [r4, 0x20]
ldr r0, _080B9240 @ =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -1086,7 +1086,7 @@ _080B93B2:
adds r0, r6
strh r0, [r5, 0x20]
adds r0, r4, 0
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x1E
@@ -1103,7 +1103,7 @@ _080B93B2:
ldrh r0, [r7, 0x8]
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B93FC @ =sub_80B9400
str r0, [r5, 0x1C]
pop {r4-r7}
@@ -1118,7 +1118,7 @@ _080B93FC: .4byte sub_80B9400
sub_80B9400: @ 80B9400
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B9414
@@ -1162,7 +1162,7 @@ _080B943A:
adds r0, r1
strh r0, [r6, 0x20]
adds r0, r5, 0
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -1186,7 +1186,7 @@ _080B943A:
bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
- ldr r0, _080B94B0 @ =sub_8074C44
+ ldr r0, _080B94B0 @ =WaitAnimForDuration
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
@@ -1198,7 +1198,7 @@ _080B94A0: .4byte gBattleAnimArgs
_080B94A4: .4byte 0x000003ff
_080B94A8: .4byte 0xfffffc00
_080B94AC: .4byte DestroyAnimSprite
-_080B94B0: .4byte sub_8074C44
+_080B94B0: .4byte WaitAnimForDuration
thumb_func_end sub_80B941C
thumb_func_start sub_80B94B4
diff --git a/asm/ice.s b/asm/ice.s
index 7b51b69c0..a2c8d0472 100644
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -365,7 +365,7 @@ sub_80AF2F0: @ 80AF2F0
ldr r1, _080AF328 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r1, _080AF32C @ =sub_8074AE0
+ ldr r1, _080AF32C @ =TranslateSpriteInGrowingCircleOverDuration
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -375,7 +375,7 @@ sub_80AF2F0: @ 80AF2F0
.align 2, 0
_080AF324: .4byte gBattleAnimArgs
_080AF328: .4byte DestroyAnimSprite
-_080AF32C: .4byte sub_8074AE0
+_080AF32C: .4byte TranslateSpriteInGrowingCircleOverDuration
thumb_func_end sub_80AF2F0
thumb_func_start sub_80AF330
@@ -383,7 +383,7 @@ sub_80AF330: @ 80AF330
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080AF364 @ =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x2
@@ -452,7 +452,7 @@ sub_80AF3B8: @ 80AF3B8
bne _080AF3D4
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
b _080AF40A
.align 2, 0
_080AF3D0: .4byte gBattleAnimArgs
@@ -464,7 +464,7 @@ _080AF3D4:
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080AF420 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -487,7 +487,7 @@ _080AF40A:
ldr r1, _080AF424 @ =sub_80AF42C
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080AF428 @ =sub_8074F50
+ ldr r0, _080AF428 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -496,7 +496,7 @@ _080AF40A:
_080AF41C: .4byte gBattleAnimTarget
_080AF420: .4byte gBattleAnimAttacker
_080AF424: .4byte sub_80AF42C
-_080AF428: .4byte sub_8074F50
+_080AF428: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80AF3B8
thumb_func_start sub_80AF42C
@@ -526,7 +526,7 @@ sub_80AF42C: @ 80AF42C
cmp r0, 0x14
bne _080AF462
adds r0, r3, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080AF462:
pop {r0}
bx r0
@@ -538,7 +538,7 @@ sub_80AF468: @ 80AF468
sub sp, 0x10
adds r5, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r6, _080AF4B0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
@@ -577,7 +577,7 @@ _080AF4B8:
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
_080AF4CA:
ldr r0, _080AF4E8 @ =gBattleAnimAttacker
ldrb r0, [r0]
@@ -616,7 +616,7 @@ _080AF504:
cmp r4, 0
bge _080AF504
adds r0, r5, 0
- bl sub_8075804
+ bl InitAnimFastLinearTranslationWithSpeed
ldrh r0, [r5, 0x30]
movs r1, 0x1
eors r0, r1
@@ -628,7 +628,7 @@ _080AF526:
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
- bl sub_807578C
+ bl AnimFastTranslateLinear
movs r0, 0x20
ldrsh r1, [r5, r0]
movs r2, 0x24
@@ -814,7 +814,7 @@ sub_80AF690: @ 80AF690
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl sub_807578C
+ bl AnimFastTranslateLinear
movs r1, 0x20
ldrsh r0, [r4, r1]
movs r2, 0x24
@@ -853,7 +853,7 @@ sub_80AF6D8: @ 80AF6D8
sub sp, 0x10
adds r5, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r1, _080AF71C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
@@ -890,7 +890,7 @@ _080AF724:
adds r3, r5, 0
adds r3, 0x36
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
_080AF736:
ldr r0, _080AF758 @ =gBattleAnimAttacker
ldrb r0, [r0]
@@ -921,7 +921,7 @@ _080AF76A:
adds r0, r1
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl sub_8075804
+ bl InitAnimFastLinearTranslationWithSpeed
adds r7, r5, 0
adds r7, 0x2E
adds r2, r7, 0
@@ -946,7 +946,7 @@ _080AF79E:
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
- bl sub_807578C
+ bl AnimFastTranslateLinear
movs r2, 0x20
ldrsh r1, [r5, r2]
movs r2, 0x24
@@ -1011,7 +1011,7 @@ _080AF818: .4byte sub_80AF81C
sub_80AF81C: @ 80AF81C
push {r4,lr}
adds r4, r0, 0
- bl sub_807578C
+ bl AnimFastTranslateLinear
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -1082,7 +1082,7 @@ sub_80AF88C: @ 80AF88C
bne _080AF8B0
adds r0, r4, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
b _080AF8E6
.align 2, 0
_080AF8AC: .4byte gBattleAnimArgs
@@ -1094,7 +1094,7 @@ _080AF8B0:
adds r3, r4, 0
adds r3, 0x22
movs r1, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080AF8F4 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -1152,7 +1152,7 @@ sub_80AF914: @ 80AF914
bne _080AF938
adds r0, r5, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080AF976
.align 2, 0
_080AF934: .4byte gBattleAnimArgs
@@ -1164,7 +1164,7 @@ _080AF938:
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
@@ -1200,7 +1200,7 @@ _080AF984:
bne _080AF996
adds r0, r5, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
b _080AF9D2
_080AF996:
ldr r4, _080AF9BC @ =gBattleAnimTarget
@@ -1210,7 +1210,7 @@ _080AF996:
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
@@ -1279,7 +1279,7 @@ _080AFA10:
adds r0, r1
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
movs r0, 0x40
strh r0, [r5, 0x38]
ldr r1, _080AFA48 @ =sub_80AFA4C
@@ -1299,7 +1299,7 @@ _080AFA48: .4byte sub_80AFA4C
sub_80AFA4C: @ 80AFA4C
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
bne _080AFAD6
@@ -1328,7 +1328,7 @@ sub_80AFA4C: @ 80AFA4C
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
movs r1, 0x3
ands r1, r0
lsls r1, 2
@@ -1343,7 +1343,7 @@ _080AFAA8:
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -1426,7 +1426,7 @@ _080AFB26:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
ldr r0, _080AFBB4 @ =gUnknown_83C2CE0
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -1673,14 +1673,14 @@ sub_80AFD4C: @ 80AFD4C
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r0, _080AFD7C @ =sub_8075DF4
+ ldr r0, _080AFD7C @ =TranslateAnimSpriteToTargetMonLocation
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080AFD78: .4byte gBattleAnimAttacker
-_080AFD7C: .4byte sub_8075DF4
+_080AFD7C: .4byte TranslateAnimSpriteToTargetMonLocation
thumb_func_end sub_80AFD4C
thumb_func_start sub_80AFD80
@@ -1737,7 +1737,7 @@ _080AFDC2:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
ldr r0, _080AFE54 @ =gUnknown_83C2CE0
mov r1, sp
ldrb r1, [r1, 0x8]
@@ -2105,7 +2105,7 @@ _080B00F8:
adds r0, r6
strh r0, [r5, 0x36]
ldrb r0, [r4]
- bl sub_8076884
+ bl GetBattlerSpriteBGPriority
lsls r0, 24
lsrs r0, 16
ldrh r1, [r5, 0x3C]
@@ -2123,7 +2123,7 @@ _080B00F8:
strb r0, [r1]
_080B012C:
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, _080B0144 @ =sub_80B0148
str r0, [r5, 0x1C]
pop {r3}
@@ -2159,7 +2159,7 @@ _080B0168:
b _080B0380
_080B016A:
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
ldr r1, _080B0194 @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
@@ -2251,13 +2251,13 @@ _080B0202:
ands r0, r1
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
b _080B0380
.align 2, 0
_080B022C: .4byte gSineTable
_080B0230:
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
ldr r1, _080B028C @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
@@ -2397,7 +2397,7 @@ _080B032A:
_080B0340: .4byte 0x0000fff0
_080B0344:
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080B0380
@@ -2610,7 +2610,7 @@ _080B04D0: .4byte gUnknown_83E652C
_080B04D4:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
movs r1, 0x6
@@ -2622,7 +2622,7 @@ _080B04D4:
lsrs r7, r1, 16
adds r0, r5, 0
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
movs r1, 0x6
@@ -2634,7 +2634,7 @@ _080B04D4:
_080B050A:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
movs r1, 0x6
@@ -2646,7 +2646,7 @@ _080B050A:
lsrs r7, r1, 16
adds r0, r5, 0
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
movs r1, 0x6
@@ -2904,7 +2904,7 @@ _080B071A:
bl StartSpriteAffineAnim
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r6, _080B0780 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
@@ -2938,7 +2938,7 @@ _080B0742:
ldrh r0, [r6, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B078C @ =sub_80B0790
str r0, [r5, 0x1C]
pop {r4-r6}
@@ -2956,14 +2956,14 @@ _080B078C: .4byte sub_80B0790
sub_80B0790: @ 80B0790
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B07B2
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
- ldr r0, _080B07B8 @ =sub_8074F6C
+ ldr r0, _080B07B8 @ =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, _080B07BC @ =DestroyAnimSprite
adds r0, r4, 0
@@ -2973,7 +2973,7 @@ _080B07B2:
pop {r0}
bx r0
.align 2, 0
-_080B07B8: .4byte sub_8074F6C
+_080B07B8: .4byte RunStoredCallbackWhenAnimEnds
_080B07BC: .4byte DestroyAnimSprite
thumb_func_end sub_80B0790
@@ -2994,7 +2994,7 @@ sub_80B07C0: @ 80B07C0
strh r0, [r4, 0x4]
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
bl Random
movs r5, 0xFF
ands r5, r0
diff --git a/asm/normal.s b/asm/normal.s
index 1ddf400ba..418c32e1d 100644
--- a/asm/normal.s
+++ b/asm/normal.s
@@ -369,10 +369,10 @@ sub_80B9B8C: @ 80B9B8C
movs r0, 0x70
strh r0, [r4, 0x36]
strh r2, [r4, 0x38]
- ldr r1, _080B9BD4 @ =move_anim_8074EE0
+ ldr r1, _080B9BD4 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r1, _080B9BD8 @ =sub_8074AE0
+ ldr r1, _080B9BD8 @ =TranslateSpriteInGrowingCircleOverDuration
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -381,8 +381,8 @@ sub_80B9B8C: @ 80B9B8C
bx r0
.align 2, 0
_080B9BD0: .4byte gBattleAnimArgs
-_080B9BD4: .4byte move_anim_8074EE0
-_080B9BD8: .4byte sub_8074AE0
+_080B9BD4: .4byte DestroySpriteAndMatrix
+_080B9BD8: .4byte TranslateSpriteInGrowingCircleOverDuration
thumb_func_end sub_80B9B8C
thumb_func_start sub_80B9BDC
@@ -1662,16 +1662,16 @@ sub_80BA560: @ 80BA560
bne _080BA584
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080BA58C
.align 2, 0
_080BA580: .4byte gBattleAnimArgs
_080BA584:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080BA58C:
- ldr r0, _080BA5A0 @ =sub_8074F50
+ ldr r0, _080BA5A0 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r5, 0x1C]
ldr r1, _080BA5A4 @ =DestroyAnimSprite
adds r0, r5, 0
@@ -1680,7 +1680,7 @@ _080BA58C:
pop {r0}
bx r0
.align 2, 0
-_080BA5A0: .4byte sub_8074F50
+_080BA5A0: .4byte RunStoredCallbackWhenAffineAnimEnds
_080BA5A4: .4byte DestroyAnimSprite
thumb_func_end sub_80BA560
@@ -1697,19 +1697,19 @@ sub_80BA5A8: @ 80BA5A8
bne _080BA5CC
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080BA5D4
.align 2, 0
_080BA5C8: .4byte gBattleAnimArgs
_080BA5CC:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080BA5D4:
ldr r0, _080BA5EC @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
- ldr r0, _080BA5F0 @ =sub_8074F50
+ ldr r0, _080BA5F0 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r5, 0x1C]
ldr r1, _080BA5F4 @ =sub_80B1D3C
adds r0, r5, 0
@@ -1719,7 +1719,7 @@ _080BA5D4:
bx r0
.align 2, 0
_080BA5EC: .4byte gBattleAnimArgs
-_080BA5F0: .4byte sub_8074F50
+_080BA5F0: .4byte RunStoredCallbackWhenAffineAnimEnds
_080BA5F4: .4byte sub_80B1D3C
thumb_func_end sub_80BA5A8
@@ -1777,14 +1777,14 @@ _080BA64C:
bne _080BA66C
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080BA674
.align 2, 0
_080BA668: .4byte gBattleAnimArgs
_080BA66C:
adds r0, r4, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080BA674:
bl Random
lsls r0, 16
@@ -1806,10 +1806,10 @@ _080BA674:
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
- ldr r1, _080BA6C0 @ =move_anim_8074EE0
+ ldr r1, _080BA6C0 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080BA6C4 @ =sub_8074F50
+ ldr r0, _080BA6C4 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -1817,8 +1817,8 @@ _080BA674:
.align 2, 0
_080BA6B8: .4byte 0x0000ffe8
_080BA6BC: .4byte 0x0000fff4
-_080BA6C0: .4byte move_anim_8074EE0
-_080BA6C4: .4byte sub_8074F50
+_080BA6C0: .4byte DestroySpriteAndMatrix
+_080BA6C4: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80BA630
thumb_func_start sub_80BA6C8
@@ -1859,10 +1859,10 @@ sub_80BA6C8: @ 80BA6C8
ldrb r1, [r5, 0x6]
adds r0, r4, 0
bl StartSpriteAffineAnim
- ldr r1, _080BA730 @ =move_anim_8074EE0
+ ldr r1, _080BA730 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080BA734 @ =sub_8074F50
+ ldr r0, _080BA734 @ =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -1870,8 +1870,8 @@ sub_80BA6C8: @ 80BA6C8
.align 2, 0
_080BA728: .4byte gBattleAnimArgs
_080BA72C: .4byte gSprites
-_080BA730: .4byte move_anim_8074EE0
-_080BA734: .4byte sub_8074F50
+_080BA730: .4byte DestroySpriteAndMatrix
+_080BA734: .4byte RunStoredCallbackWhenAffineAnimEnds
thumb_func_end sub_80BA6C8
thumb_func_start sub_80BA738
@@ -1885,14 +1885,14 @@ sub_80BA738: @ 80BA738
bne _080BA754
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080BA75C
.align 2, 0
_080BA750: .4byte gBattleAnimArgs
_080BA754:
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080BA75C:
ldr r0, _080BA774 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
@@ -1900,7 +1900,7 @@ _080BA75C:
ldr r1, _080BA778 @ =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080BA77C @ =sub_8074C44
+ ldr r0, _080BA77C @ =WaitAnimForDuration
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
@@ -1908,7 +1908,7 @@ _080BA75C:
.align 2, 0
_080BA774: .4byte gBattleAnimArgs
_080BA778: .4byte DestroyAnimSprite
-_080BA77C: .4byte sub_8074C44
+_080BA77C: .4byte WaitAnimForDuration
thumb_func_end sub_80BA738
thumb_func_start sub_80BA780
@@ -1924,14 +1924,14 @@ sub_80BA780: @ 80BA780
bne _080BA7A4
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080BA7AC
.align 2, 0
_080BA7A0: .4byte gBattleAnimArgs
_080BA7A4:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080BA7AC:
ldr r0, _080BA7B8 @ =sub_80BA7BC
str r0, [r5, 0x1C]
diff --git a/asm/poison.s b/asm/poison.s
index 770941be8..e80bd01af 100644
--- a/asm/poison.s
+++ b/asm/poison.s
@@ -20,7 +20,7 @@ sub_80B1620: @ 80B1620
_080B1636:
adds r0, r5, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
ldr r4, _080B1678 @ =gBattleAnimTarget
@@ -39,7 +39,7 @@ _080B1636:
ldr r0, _080B167C @ =0x0000ffe2
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B1680 @ =sub_80B1684
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -56,7 +56,7 @@ _080B1680: .4byte sub_80B1684
sub_80B1684: @ 80B1684
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B1698
@@ -84,7 +84,7 @@ sub_80B16A0: @ 80B16A0
_080B16B8:
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080B1718 @ =gBattleAnimTarget
ldrb r0, [r0]
mov r6, sp
@@ -92,7 +92,7 @@ _080B16B8:
movs r1, 0x1
mov r2, sp
adds r3, r6, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080B171C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -117,7 +117,7 @@ _080B16E6:
ldr r0, _080B1720 @ =0x0000ffe2
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080B1724 @ =sub_80B1728
str r0, [r4, 0x1C]
add sp, 0x4
@@ -136,7 +136,7 @@ _080B1724: .4byte sub_80B1728
sub_80B1728: @ 80B1728
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B173C
@@ -193,7 +193,7 @@ _080B1794: .4byte sub_80B1798
sub_80B1798: @ 80B1798
push {r4,lr}
adds r4, r0, 0
- bl sub_8074D00
+ bl TranslateSpriteLinearFixedPoint
ldrh r0, [r4, 0x30]
ldrh r1, [r4, 0x38]
subs r0, r1
@@ -225,7 +225,7 @@ sub_80B17C4: @ 80B17C4
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080B1828 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -280,7 +280,7 @@ sub_80B1838: @ 80B1838
bne _080B1854
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
b _080B188A
.align 2, 0
_080B1850: .4byte gBattleAnimArgs
@@ -292,7 +292,7 @@ _080B1854:
adds r3, r4, 0
adds r3, 0x22
movs r1, 0x1
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
ldr r0, _080B1898 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
diff --git a/asm/pokeball.s b/asm/pokeball.s
index 1d01b5c7e..fa1f4eee0 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -290,7 +290,7 @@ _0804AB6C:
ldr r0, _0804ABC8 @ =0x0000ffd8
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
mov r0, sp
ldrh r0, [r0]
strh r0, [r4, 0x6]
@@ -328,7 +328,7 @@ SpriteCB_TestBallThrow: @ 804ABD4
push {r7}
sub sp, 0x4
adds r7, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _0804AC74
@@ -1692,7 +1692,7 @@ SpriteCB_PlayerMonSendOut_1: @ 804B684
ldrh r0, [r4, 0x3A]
strh r0, [r4, 0x6]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _0804B6D0 @ =SpriteCB_PlayerMonSendOut_2
str r0, [r4, 0x1C]
pop {r4}
@@ -1754,7 +1754,7 @@ SpriteCB_PlayerMonSendOut_2: @ 804B6D4
_0804B736:
ldrh r4, [r5, 0x2E]
adds r0, r5, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
movs r1, 0x3A
ldrsh r0, [r5, r1]
movs r1, 0x3
@@ -1825,7 +1825,7 @@ _0804B78E:
b _0804B834
_0804B7C8:
adds r0, r5, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _0804B834
@@ -2580,13 +2580,13 @@ _0804BD80:
_0804BD84: .4byte SpriteCallbackDummy
thumb_func_end sub_804BD6C
- thumb_func_start DestroySpriteAndFreeResources_
-DestroySpriteAndFreeResources_: @ 804BD88
+ thumb_func_start DestroySpriteAndFreeResources2
+DestroySpriteAndFreeResources2: @ 804BD88
push {lr}
bl DestroySpriteAndFreeResources
pop {r0}
bx r0
- thumb_func_end DestroySpriteAndFreeResources_
+ thumb_func_end DestroySpriteAndFreeResources2
thumb_func_start sub_804BD94
sub_804BD94: @ 804BD94
diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s
index 66bb3dc52..44598a330 100644
--- a/asm/pokemon_jump_2.s
+++ b/asm/pokemon_jump_2.s
@@ -6157,7 +6157,7 @@ sub_814A8B8: @ 814A8B8
movs r6, 0
cmp r6, r10
bge _0814A922
- ldr r0, _0814A938 @ =gUnknown_82349CC
+ ldr r0, _0814A938 @ =gMonFrontPicCoords
mov r9, r0
ldr r1, _0814A93C @ =gUnknown_203F3D8
mov r8, r1
@@ -6200,7 +6200,7 @@ _0814A922:
bx r0
.align 2, 0
_0814A934: .4byte gUnknown_846D9D4
-_0814A938: .4byte gUnknown_82349CC
+_0814A938: .4byte gMonFrontPicCoords
_0814A93C: .4byte gUnknown_203F3D8
thumb_func_end sub_814A8B8
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 71e5cbfaf..f6f746313 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -10728,7 +10728,7 @@ sub_8139D90: @ 8139D90
lsls r0, 2
ldr r1, _08139DB8 @ =gSprites
adds r0, r1
- bl DestroySpriteAndFreeResources_
+ bl DestroySpriteAndFreeResources2
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/psychic.s b/asm/psychic.s
index d2d82826d..2561a4805 100644
--- a/asm/psychic.s
+++ b/asm/psychic.s
@@ -42,7 +42,7 @@ _080B2EFE:
lsrs r4, r0, 24
adds r7, r4, 0
adds r0, r4, 0
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -354,7 +354,7 @@ sub_80B3168: @ 80B3168
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -448,14 +448,14 @@ _080B3232:
bne _080B324C
adds r0, r4, 0
adds r1, r6, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080B3254
.align 2, 0
_080B3248: .4byte gBattleAnimArgs
_080B324C:
adds r0, r4, 0
adds r1, r6, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080B3254:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
@@ -470,7 +470,7 @@ _080B325C:
cmp r0, 0
beq _080B3270
adds r0, r4, 0
- bl move_anim_8074EE0
+ bl DestroySpriteAndMatrix
_080B3270:
pop {r4-r6}
pop {r0}
@@ -526,14 +526,14 @@ _080B32D6:
ldr r1, _080B32EC @ =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080B32F0 @ =sub_8074F6C
+ ldr r0, _080B32F0 @ =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B32EC: .4byte DestroyAnimSprite
-_080B32F0: .4byte sub_8074F6C
+_080B32F0: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80B3278
thumb_func_start sub_80B32F4
@@ -543,7 +543,7 @@ sub_80B32F4: @ 80B32F4
ldr r6, _080B3378 @ =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
@@ -552,7 +552,7 @@ sub_80B32F4: @ 80B32F4
lsrs r4, r1, 16
ldrb r0, [r6]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r1, r0, 16
lsrs r0, 31
@@ -595,7 +595,7 @@ _080B3366:
ldr r1, _080B337C @ =sub_80B3384
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080B3380 @ =sub_8074F6C
+ ldr r0, _080B3380 @ =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
@@ -603,7 +603,7 @@ _080B3366:
.align 2, 0
_080B3378: .4byte gBattleAnimAttacker
_080B337C: .4byte sub_80B3384
-_080B3380: .4byte sub_8074F6C
+_080B3380: .4byte RunStoredCallbackWhenAnimEnds
thumb_func_end sub_80B32F4
thumb_func_start sub_80B3384
@@ -703,7 +703,7 @@ sub_80B3418: @ 80B3418
strh r1, [r4, 0x8]
ldr r2, _080B344C @ =gUnknown_83E700C
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080B3450 @ =sub_80B3454
str r0, [r4]
pop {r4}
@@ -725,7 +725,7 @@ sub_80B3454: @ 80B3454
lsls r0, 3
ldr r1, _080B347C @ =gTasks
adds r0, r1
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _080B3474
@@ -770,7 +770,7 @@ _080B34B4:
ldrb r1, [r4, 0x8]
ldr r2, _080B34D4 @ =gUnknown_83E702C
adds r0, r4, 0
- bl sub_80762D0
+ bl PrepareAffineAnimInTaskData
ldr r0, _080B34D8 @ =sub_80B34DC
str r0, [r4]
pop {r4}
@@ -804,7 +804,7 @@ sub_80B34DC: @ 80B34DC
_080B34FC: .4byte gTasks
_080B3500:
adds r0, r4, 0
- bl sub_8076308
+ bl RunAffineAnimFromTaskData
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -900,7 +900,7 @@ sub_80B3584: @ 80B3584
strh r0, [r5, 0x24]
ldrb r0, [r4]
movs r1, 0x1
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
movs r1, 0x3
@@ -909,7 +909,7 @@ sub_80B3584: @ 80B3584
lsrs r6, r0, 16
ldrb r0, [r4]
movs r1, 0
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
lsls r0, 16
asrs r0, 16
movs r1, 0x3
@@ -1254,23 +1254,23 @@ sub_80B3834: @ 80B3834
ldr r4, _080B389C @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r5, 0x20]
ldr r4, _080B38A0 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
b _080B3962
.align 2, 0
@@ -1285,18 +1285,18 @@ _080B38A4:
ldr r4, _080B38D0 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x3
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
strh r0, [r5, 0x20]
ldr r4, _080B38D4 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
b _080B3956
.align 2, 0
@@ -1313,23 +1313,23 @@ _080B38D8:
ldr r4, _080B3924 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r5, 0x20]
ldr r4, _080B3928 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x4
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x2
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
adds r0, 0x8
b _080B3962
.align 2, 0
@@ -1343,24 +1343,24 @@ _080B392C:
ldr r4, _080B3974 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
strh r0, [r5, 0x1E]
ldrb r0, [r4]
movs r1, 0x3
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
strh r0, [r5, 0x20]
ldr r4, _080B3978 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x5
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
_080B3956:
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x3
- bl sub_8076B2C
+ bl GetBattlerSpriteCoordAttr
subs r0, 0x8
_080B3962:
strh r0, [r5, 0x24]
@@ -1430,7 +1430,7 @@ _080B39A4:
ldrh r0, [r5, 0x1C]
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrb r0, [r5, 0xC]
movs r1, 0x3
ands r1, r0
@@ -1471,7 +1471,7 @@ _080B3A2C:
sub_80B3A34: @ 80B3A34
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B3A52
@@ -1500,7 +1500,7 @@ sub_80B3A58: @ 80B3A58
adds r4, r1, r0
ldr r0, _080B3A94 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_807492C
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r1, r0, 24
adds r0, r1, 0
@@ -1558,7 +1558,7 @@ _080B3ACA:
_080B3AD6:
ldr r0, _080B3AF0 @ =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_80768B0
+ bl GetBattlerSpriteBGPriorityRank
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1954,7 +1954,7 @@ _080B3DAA:
ldrh r1, [r4, 0x22]
lsls r1, 24
lsrs r1, 24
- bl sub_8076494
+ bl SetBattlerSpriteYOffsetFromOtherYScale
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0x30
@@ -1993,7 +1993,7 @@ _080B3DFC:
ldrh r1, [r4, 0x22]
lsls r1, 24
lsrs r1, 24
- bl sub_8076494
+ bl SetBattlerSpriteYOffsetFromOtherYScale
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
diff --git a/asm/rock.s b/asm/rock.s
index 74712e5e5..7df02ecc3 100644
--- a/asm/rock.s
+++ b/asm/rock.s
@@ -21,7 +21,7 @@ sub_80B4634: @ 80B4634
adds r3, r5, 0
adds r3, 0x22
movs r1, 0
- bl sub_8076D9C
+ bl SetAverageBattlerPositions
_080B4654:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
@@ -49,7 +49,7 @@ _080B4654:
ldr r1, _080B46AC @ =sub_80B46B4
adds r0, r5, 0
bl StoreSpriteCallbackInData6
- ldr r1, _080B46B0 @ =sub_8074BE4
+ ldr r1, _080B46B0 @ =TranslateSpriteInEllipseOverDuration
str r1, [r5, 0x1C]
adds r0, r5, 0
bl _call_via_r1
@@ -61,7 +61,7 @@ _080B46A0: .4byte gBattleAnimArgs
_080B46A4: .4byte gBattleAnimTarget
_080B46A8: .4byte 0x0000ffba
_080B46AC: .4byte sub_80B46B4
-_080B46B0: .4byte sub_8074BE4
+_080B46B0: .4byte TranslateSpriteInEllipseOverDuration
thumb_func_end sub_80B4634
thumb_func_start sub_80B46B4
@@ -81,10 +81,10 @@ sub_80B46B4: @ 80B46B4
strh r0, [r4, 0x34]
ldr r0, _080B46EC @ =0x0000ffe8
strh r0, [r4, 0x36]
- ldr r1, _080B46F0 @ =move_anim_8074EE0
+ ldr r1, _080B46F0 @ =DestroySpriteAndMatrix
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r1, _080B46F4 @ =sub_8074BE4
+ ldr r1, _080B46F4 @ =TranslateSpriteInEllipseOverDuration
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -93,8 +93,8 @@ sub_80B46B4: @ 80B46B4
bx r0
.align 2, 0
_080B46EC: .4byte 0x0000ffe8
-_080B46F0: .4byte move_anim_8074EE0
-_080B46F4: .4byte sub_8074BE4
+_080B46F0: .4byte DestroySpriteAndMatrix
+_080B46F4: .4byte TranslateSpriteInEllipseOverDuration
thumb_func_end sub_80B46B4
thumb_func_start sub_80B46F8
@@ -146,9 +146,9 @@ _080B472E:
bl InitSpriteDataForLinearTranslation
strh r4, [r5, 0x34]
strh r4, [r5, 0x36]
- ldr r0, _080B4774 @ =sub_8074D00
+ ldr r0, _080B4774 @ =TranslateSpriteLinearFixedPoint
str r0, [r5, 0x1C]
- ldr r1, _080B4778 @ =move_anim_8074EE0
+ ldr r1, _080B4778 @ =DestroySpriteAndMatrix
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -156,8 +156,8 @@ _080B472E:
bx r0
.align 2, 0
_080B4770: .4byte gBattleAnimArgs
-_080B4774: .4byte sub_8074D00
-_080B4778: .4byte move_anim_8074EE0
+_080B4774: .4byte TranslateSpriteLinearFixedPoint
+_080B4778: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80B46F8
thumb_func_start sub_80B477C
@@ -171,14 +171,14 @@ sub_80B477C: @ 80B477C
bne _080B4798
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
b _080B47A0
.align 2, 0
_080B4794: .4byte gBattleAnimArgs
_080B4798:
adds r0, r4, 0
movs r1, 0
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
_080B47A0:
ldr r1, _080B47BC @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
@@ -286,7 +286,7 @@ _080B4854:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
@@ -673,7 +673,7 @@ sub_80B4B8C: @ 80B4B8C
bl StartSpriteAnim
adds r0, r4, 0
movs r1, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -1141,7 +1141,7 @@ _080B4ECC:
ands r1, r3
orrs r1, r2
strh r1, [r0, 0x4]
- bl sub_8075068
+ bl InitAnimArcTranslation
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
@@ -1165,7 +1165,7 @@ _080B4F74: .4byte 0xfffffc00
sub_80B4F78: @ 80B4F78
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080B4FAA
@@ -1316,7 +1316,7 @@ sub_80B5074: @ 80B5074
bl StartSpriteAffineAnim
_080B5090:
adds r0, r4, 0
- bl sub_8075DF4
+ bl TranslateAnimSpriteToTargetMonLocation
pop {r4}
pop {r0}
bx r0
diff --git a/asm/trade.s b/asm/trade.s
index 0c1c168cc..71d39e0bb 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -9300,7 +9300,7 @@ _0805139C:
adds r1, r0
lsls r1, 2
adds r1, r3
- ldr r2, _08051410 @ =gUnknown_82349CC
+ ldr r2, _08051410 @ =gMonFrontPicCoords
adds r0, r4, 0
adds r0, 0xF0
ldrh r0, [r0]
@@ -9324,7 +9324,7 @@ _0805139C:
.align 2, 0
_08051408: .4byte gSprites
_0805140C: .4byte 0x0000ff4c
-_08051410: .4byte gUnknown_82349CC
+_08051410: .4byte gMonFrontPicCoords
_08051414:
ldr r5, [r7]
adds r6, r5, 0
@@ -10839,7 +10839,7 @@ _08052070:
adds r1, r0
lsls r1, 2
adds r1, r4
- ldr r3, _08052120 @ =gUnknown_82349CC
+ ldr r3, _08052120 @ =gMonFrontPicCoords
adds r2, 0xF2
ldrh r0, [r2]
lsls r0, 2
@@ -10906,7 +10906,7 @@ _08052070:
b _080522AC
.align 2, 0
_0805211C: .4byte gSprites
-_08052120: .4byte gUnknown_82349CC
+_08052120: .4byte gMonFrontPicCoords
_08052124: .4byte 0x000fffff
_08052128:
movs r1, 0xAA
@@ -11476,7 +11476,7 @@ _0805278C:
adds r1, r0
lsls r1, 2
adds r1, r3
- ldr r2, _08052800 @ =gUnknown_82349CC
+ ldr r2, _08052800 @ =gMonFrontPicCoords
adds r0, r4, 0
adds r0, 0xF0
ldrh r0, [r0]
@@ -11500,7 +11500,7 @@ _0805278C:
.align 2, 0
_080527F8: .4byte gSprites
_080527FC: .4byte 0x0000ff4c
-_08052800: .4byte gUnknown_82349CC
+_08052800: .4byte gMonFrontPicCoords
_08052804:
ldr r5, [r7]
adds r6, r5, 0
@@ -13064,7 +13064,7 @@ _080534CC:
adds r1, r0
lsls r1, 2
adds r1, r4
- ldr r3, _0805357C @ =gUnknown_82349CC
+ ldr r3, _0805357C @ =gMonFrontPicCoords
adds r2, 0xF2
ldrh r0, [r2]
lsls r0, 2
@@ -13131,7 +13131,7 @@ _080534CC:
b _08053708
.align 2, 0
_08053578: .4byte gSprites
-_0805357C: .4byte gUnknown_82349CC
+_0805357C: .4byte gMonFrontPicCoords
_08053580: .4byte 0x000fffff
_08053584:
movs r1, 0xAA
diff --git a/asm/water.s b/asm/water.s
index 5c9096023..a2918ec33 100644
--- a/asm/water.s
+++ b/asm/water.s
@@ -197,7 +197,7 @@ _080AAD10:
lsrs r0, 24
strh r0, [r6, 0x36]
adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, _080AADAC @ =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
@@ -273,7 +273,7 @@ sub_80AADB8: @ 80AADB8
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
mov r1, r8
lsrs r6, r1, 8
movs r0, 0x2E
@@ -329,14 +329,14 @@ sub_80AAE40: @ 80AAE40
negs r1, r1
ands r1, r2
strb r1, [r3]
- ldr r1, _080AAE60 @ =sub_8074F6C
+ ldr r1, _080AAE60 @ =RunStoredCallbackWhenAnimEnds
str r1, [r0, 0x1C]
ldr r1, _080AAE64 @ =sub_80AAE68
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
-_080AAE60: .4byte sub_8074F6C
+_080AAE60: .4byte RunStoredCallbackWhenAnimEnds
_080AAE64: .4byte sub_80AAE68
thumb_func_end sub_80AAE40
@@ -345,15 +345,15 @@ sub_80AAE68: @ 80AAE68
push {lr}
movs r1, 0xA
strh r1, [r0, 0x2E]
- ldr r1, _080AAE7C @ =sub_8074C44
+ ldr r1, _080AAE7C @ =WaitAnimForDuration
str r1, [r0, 0x1C]
- ldr r1, _080AAE80 @ =move_anim_8074EE0
+ ldr r1, _080AAE80 @ =DestroySpriteAndMatrix
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
-_080AAE7C: .4byte sub_8074C44
-_080AAE80: .4byte move_anim_8074EE0
+_080AAE7C: .4byte WaitAnimForDuration
+_080AAE80: .4byte DestroySpriteAndMatrix
thumb_func_end sub_80AAE68
thumb_func_start sub_80AAE84
@@ -361,7 +361,7 @@ sub_80AAE84: @ 80AAE84
push {r4-r7,lr}
adds r5, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080AAEAC @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -406,7 +406,7 @@ _080AAEBA:
adds r0, r7
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, _080AAF18 @ =sub_80AAF1C
str r0, [r5, 0x1C]
adds r2, r5, 0
@@ -447,7 +447,7 @@ sub_80AAF1C: @ 80AAF1C
strb r0, [r2]
_080AAF3E:
adds r0, r4, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080AAF50
@@ -569,7 +569,7 @@ sub_80AB024: @ 80AB024
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
movs r0, 0x1E
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -590,7 +590,7 @@ sub_80AB024: @ 80AB024
lsrs r0, 24
strh r0, [r5, 0x36]
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
movs r0, 0x2E
ldrsh r1, [r5, r0]
movs r0, 0xD2
@@ -634,7 +634,7 @@ _080AB0A8: .4byte sub_80AB0AC
sub_80AB0AC: @ 80AB0AC
push {r4,lr}
adds r4, r0, 0
- bl sub_80755E0
+ bl AnimTranslateLinear
lsls r0, 24
cmp r0, 0
beq _080AB0C0
@@ -861,7 +861,7 @@ _080AB256:
movs r7, 0x3
_080AB260:
adds r0, r6, 0
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r0, _080AB2B8 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
@@ -912,7 +912,7 @@ sub_80AB2CC: @ 80AB2CC
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
ldr r0, _080AB2FC @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r4, 0x2E]
@@ -948,14 +948,14 @@ sub_80AB308: @ 80AB308
beq _080AB324
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
b _080AB32C
.align 2, 0
_080AB320: .4byte gBattleAnimArgs
_080AB324:
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
_080AB32C:
ldr r0, _080AB33C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
@@ -1054,7 +1054,7 @@ sub_80AB38C: @ 80AB38C
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
b _080AB42E
.align 2, 0
_080AB3FC: .4byte 0x00003f42
@@ -1064,7 +1064,7 @@ _080AB408:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap
- bl sub_807543C
+ bl AnimLoadCompressedBgTilemap
b _080AB42E
.align 2, 0
_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap
@@ -1904,7 +1904,7 @@ sub_80ABA78: @ 80ABA78
strh r0, [r4, 0x4]
adds r0, r4, 0
movs r1, 0x1
- bl sub_8075114
+ bl InitSpritePosToAnimTarget
bl Random
movs r5, 0xFF
ands r5, r0
@@ -2138,7 +2138,7 @@ _080ABC66:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8076440
+ bl SetBattlerSpriteYOffsetFromYScale
ldr r2, _080ABC84 @ =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
@@ -3287,7 +3287,7 @@ sub_80AC504: @ 80AC504
strh r1, [r0, 0x36]
ldrh r1, [r6, 0x1A]
strh r1, [r0, 0x38]
- bl sub_8075068
+ bl InitAnimArcTranslation
adds r5, 0x1C
adds r4, r5
ldr r0, _080AC56C @ =sub_80AC570
@@ -3309,7 +3309,7 @@ _080AC56C: .4byte sub_80AC570
sub_80AC570: @ 80AC570
push {r4-r6,lr}
adds r6, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080AC5CA
@@ -3344,7 +3344,7 @@ sub_80AC570: @ 80AC570
mvns r1, r1
strh r1, [r6, 0x38]
adds r0, r6, 0
- bl sub_8075068
+ bl InitAnimArcTranslation
ldr r0, _080AC5D4 @ =sub_80AC5D8
str r0, [r6, 0x1C]
_080AC5CA:
@@ -3360,7 +3360,7 @@ _080AC5D4: .4byte sub_80AC5D8
sub_80AC5D8: @ 80AC5D8
push {r4-r6,lr}
adds r5, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimHorizontalArc
lsls r0, 24
cmp r0, 0
beq _080AC614
@@ -3498,7 +3498,7 @@ sub_80AC6D8: @ 80AC6D8
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x1
- bl sub_8075160
+ bl InitSpritePosToAnimAttacker
ldr r5, _080AC714 @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
diff --git a/data/battle_anim.s b/data/battle_anim.s
index 3fae69431..c166708a2 100644
--- a/data/battle_anim.s
+++ b/data/battle_anim.s
@@ -242,21 +242,3 @@ gUnknown_83ADE18:: @ 83ADE18
gUnknown_83ADF5C:: @ 83ADF5C
.incbin "baserom.gba", 0x3ADF5C, 0xC0
-
-gUnknown_83AE01C:: @ 83AE01C
- .incbin "baserom.gba", 0x3AE01C, 0x20
-
-gUnknown_83AE03C:: @ 83AE03C
- .incbin "baserom.gba", 0x3AE03C, 0x10
-
-gUnknown_83AE04C:: @ 83AE04C
- .incbin "baserom.gba", 0x3AE04C, 0x4
-
-gUnknown_83AE050:: @ 83AE050
- .incbin "baserom.gba", 0x3AE050, 0x4
-
-gUnknown_83AE054:: @ 83AE054
- .incbin "baserom.gba", 0x3AE054, 0x30
-
-gUnknown_83AE084:: @ 0x83AE084
- .incbin "baserom.gba", 0x3AE084, 0x10
diff --git a/data/data.s b/data/data.s
index d0bd198e1..06b06f043 100644
--- a/data/data.s
+++ b/data/data.s
@@ -89,7 +89,7 @@ gUnknown_823499C:: @ 823499C
gUnknown_82349BC:: @ 82349BC
.incbin "baserom.gba", 0x2349BC, 0x10
-gUnknown_82349CC:: @ 82349CC
+gMonFrontPicCoords:: @ 82349CC
.incbin "baserom.gba", 0x2349CC, 0x6E0
gMonFrontPicTable:: @ 82350AC
@@ -98,7 +98,7 @@ gMonFrontPicTable:: @ 82350AC
gUnknown_8235194:: @ 8235194
.incbin "baserom.gba", 0x235194, 0xCD8
-gUnknown_8235E6C:: @ 8235E6C
+gMonBackPicCoords:: @ 8235E6C
.incbin "baserom.gba", 0x235E6C, 0x6E0
gMonBackPicTable:: @ 823654C
diff --git a/include/battle.h b/include/battle.h
index 64283de20..754e92997 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -820,9 +820,6 @@ extern struct BattleSpriteData *gBattleSpritesDataPtr;
extern u8 *gLinkBattleSendBuffer;
extern u8 *gLinkBattleRecvBuffer;
-extern u8 *gUnknown_0202305C;
-extern u8 *gUnknown_02023060;
-
// Move this somewhere else
#include "sprite.h"
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 2c09037dc..7738ece11 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -1,11 +1,9 @@
#ifndef GUARD_BATTLE_ANIM_H
#define GUARD_BATTLE_ANIM_H
-#include "global.h"
-
-#ifndef BATTLE_BANKS_COUNT
-#define BATTLE_BANKS_COUNT 4
-#endif // BATTLE_BANKS_COUNT
+#include "battle.h"
+#include "constants/battle_anim.h"
+#include "task.h"
enum
{
@@ -52,7 +50,6 @@ extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
extern u8 gAnimMoveTurn;
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
-extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02038440;
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
extern u16 gAnimMovePower;
@@ -60,6 +57,8 @@ extern s32 gAnimMoveDmg;
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gUnknown_2037F24;
+extern struct OamData gOamData_83ACA40;
+
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
@@ -140,32 +139,109 @@ u8 ItemIdToBallId(u16 itemId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
-// battle_anim_mons.s
-void TranslateMonSpriteLinear(struct Sprite * sprite);
-void TranslateMonSpriteLinearFixedPoint(struct Sprite * sprite);
-void InitSpriteDataForLinearTranslation(struct Sprite * sprite);
-void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 b);
-void ResetSpriteRotScale(u8 spriteId);
-void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
-bool8 IsContest(void);
-void sub_80759DC(u8 spriteId);
+// battle_anim_mons.c
+u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType);
+u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType);
+u8 GetBattlerSpriteDefault_Y(u8 battlerId);
+u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
+u8 GetGhostSpriteDefault_Y(u8 battlerId);
+u8 GetBattlerYCoordWithElevation(u8 battlerId);
+u8 GetAnimBattlerSpriteId(u8 animBattler);
+void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback);
+void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
+void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite);
+void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite);
+void WaitAnimForDuration(struct Sprite *sprite);
+void sub_8074C80(struct Sprite *sprite);
+void TranslateSpriteLinear(struct Sprite *sprite);
+void TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
+void TranslateMonSpriteLinear(struct Sprite *sprite);
+void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite);
+void TranslateSpriteLinearAndFlicker(struct Sprite *sprite);
+void DestroySpriteAndMatrix(struct Sprite *sprite);
+void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite);
+void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite);
+void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite);
+void DestroyAnimVisualTaskAndDisableBlend(u8 taskId);
+void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite);
+void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset);
+void InitAnimArcTranslation(struct Sprite *sprite);
+bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
+bool8 TranslateAnimVerticalArc(struct Sprite *sprite);
+void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite);
+void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets);
+void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets);
+u8 GetBattlerSide(u8 battlerId);
+u8 GetBattlerPosition(u8 battlerId);
+u8 GetBattlerAtPosition(u8 position);
bool8 IsBattlerSpritePresent(u8 battlerId);
-u8 GetBattlerSpriteSubpriority(u8 battlerId);
+bool8 IsDoubleBattle(void);
+void sub_80752A0(struct BattleAnimBgData *animBgData);
+void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1);
+void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused);
+void sub_8075358(u32 bgId);
+void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset);
+void InitAnimBgTilemapBuffer(u32 bgId, const void *src);
+void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src);
+u8 sub_8075454(void);
+void sub_8075458(bool8 arg0);
+void sub_8075490(struct Sprite *sprite);
+void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
+void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite);
void sub_80755B8(struct Sprite *sprite);
-u8 sub_80768B0(u8 battlerId);
+bool8 AnimTranslateLinear(struct Sprite *sprite);
+void sub_807563C(struct Sprite *sprite);
+void sub_8075678(struct Sprite *sprite);
+void sub_80756A4(struct Sprite *sprite);
+void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
+bool8 AnimFastTranslateLinear(struct Sprite *sprite);
+void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
+void sub_8075830(struct Sprite *sprite);
+void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
+void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
+void ResetSpriteRotScale(u8 spriteId);
+void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
+void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation);
+void sub_8075AD8(struct Sprite *sprite);
+u16 ArcTan2Neg(s16 a, s16 b);
+void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
+u32 sub_8075BE8(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7);
u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4);
-u8 sub_8075D80(u8 battlerId);
+u8 sub_8075D80(u8 a1);
+void sub_8075D9C(struct Sprite *sprite);
+void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
+void sub_8075E80(struct Sprite *sprite);
+void sub_8075F0C(struct Sprite *sprite);
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
-void sub_807543C(u8 bgId, const u32 *);
-void AnimLoadCompressedBgGfx(u32, const u32 *, u32);
-void sub_80752A0(struct BattleAnimBgData *);
-u8 sub_8076E34(s32, u8, s32);
-void sub_8075358(u8 bgId);
-u32 sub_8075BE8(u8, u8, u8, u8, u8, u8, u8);
-void sub_8075458(bool8);
-bool8 AnimateBallThrow(struct Sprite *sprite);
+void sub_8076048(u8 taskId);
+void AnimTask_BlendMonInAndOut(u8 task);
+void sub_8076288(u8 taskId);
+void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
+bool8 RunAffineAnimFromTaskData(struct Task *task);
+void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
+void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId);
+void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr);
+void *LoadPointerFromVars(s16 lo, s16 hi);
+void sub_80765D4(struct Task *task, u8 spriteId, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
+u8 sub_8076640(struct Task *task);
+void AnimTask_GetFrustrationPowerLevel(u8 taskId);
+void sub_80767F0(void);
+u8 GetBattlerSpriteSubpriority(u8 battlerId);
+u8 GetBattlerSpriteBGPriority(u8 battlerId);
+u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
+u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10);
+void DestroySpriteAndFreeResources_(struct Sprite *sprite);
+s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
+void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
+u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species);
+void sub_8076ED8(struct Sprite *sprite);
+void sub_8076F58(struct Sprite *sprite);
+void sub_8076FD0(struct Sprite *sprite);
+void sub_8077030(u8 taskId);
+void sub_807729C(struct Sprite *sprite);
+void sub_8077350(struct Sprite *sprite);
// battle_anim_mon_movement.c
void AnimTask_ShakeMon(u8 taskId);
diff --git a/include/battle_main.h b/include/battle_main.h
index cd602cd28..757ee3468 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -67,7 +67,7 @@ void EndBounceEffect(u8 bank, bool8 b);
void sub_8039E44(struct Sprite *sprite);
void sub_8039E60(struct Sprite *sprite);
void sub_8039E84(struct Sprite *sprite);
-void sub_8039E9C(struct Sprite *sprite);
+void sub_801236C(struct Sprite *sprite);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);
void FaintClearSetData(void);
diff --git a/include/data.h b/include/data.h
index 6479237f2..d3bc77799 100644
--- a/include/data.h
+++ b/include/data.h
@@ -31,6 +31,8 @@ extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
+extern const struct MonCoords gMonFrontPicCoords[];
+extern const struct MonCoords gMonBackPicCoords[];
extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow;
extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow;
diff --git a/include/global.h b/include/global.h
index 35f8de01b..5ddf9a0a8 100644
--- a/include/global.h
+++ b/include/global.h
@@ -76,6 +76,18 @@ extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
+struct Coords8
+{
+ s8 x;
+ s8 y;
+};
+
+struct UCoords8
+{
+ u8 x;
+ u8 y;
+};
+
struct Coords16
{
s16 x;
@@ -88,6 +100,18 @@ struct UCoords16
u16 y;
};
+struct Coords32
+{
+ s32 x;
+ s32 y;
+};
+
+struct UCoords32
+{
+ u32 x;
+ u32 y;
+};
+
struct Time
{
/*0x00*/ s16 days;
diff --git a/include/overworld.h b/include/overworld.h
index 77cacff94..0abbeee4b 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -18,11 +18,6 @@ struct LinkPlayerMapObject
u8 mode;
};
-struct UCoords32
-{
- u32 x, y;
-};
-
struct CreditsOverworldCmd
{
s16 unk_0;
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index cd8c798f9..60da74bcb 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -16,5 +16,6 @@ u16 sub_8096FD4(u16);
u8 sub_8096ECC(u16, void (*)(struct Sprite *), s16, s16, u8, bool32);
void sub_8097070(struct Sprite *);
u16 GetUnownLetterByPersonality(u32 personality);
+u8 UpdateMonIconFrame(struct Sprite *sprite);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/rom6.h b/include/rom6.h
deleted file mode 100644
index 753c07305..000000000
--- a/include/rom6.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef GUARD_ROM6_H
-#define GUARD_ROM6_H
-
-#include "global.h"
-
-void sub_81357FC(u8, void(void));
-u8 GetLeadMonIndex(void);
-u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y);
-void sub_813BADC(bool8);
-bool8 sub_813B9C0(void);
-void UpdateMirageRnd(u16 days);
-void UpdateBirchState(u16 days);
-void UpdateFrontierManiac(u16 days);
-void UpdateFrontierGambler(u16 days);
-void SetShoalItemFlag(u16 days);
-
-#endif //GUARD_ROM6_H
diff --git a/include/sprite.h b/include/sprite.h
index 27e5dc852..04c992dae 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -251,6 +251,7 @@ extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern const struct SpriteTemplate gDummySpriteTemplate;
extern struct Sprite gSprites[];
+extern struct OamMatrix gOamMatrices[];
void ResetSpriteData(void);
void AnimateSprites(void);
diff --git a/ld_script.txt b/ld_script.txt
index 7c5625ab0..6202e5ace 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -111,7 +111,7 @@ SECTIONS {
src/palette.o(.text);
src/sound.o(.text);
asm/battle_anim.o(.text);
- asm/battle_anim_mons.o(.text);
+ src/battle_anim_mons.o(.text);
src/task.o(.text);
src/reshow_battle_screen.o(.text);
asm/battle_anim_status_effects.o(.text);
@@ -412,6 +412,7 @@ SECTIONS {
src/palette.o(.rodata);
src/sound.o(.rodata);
data/battle_anim.o(.rodata);
+ src/battle_anim_mons.o(.rodata);
data/map_events.o(.rodata);
data/battle_anim_status_effects.o(.rodata);
src/title_screen.o(.rodata);
diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c
index e642f0dbd..21d07246f 100644
--- a/src/battle_anim_mon_movement.c
+++ b/src/battle_anim_mon_movement.c
@@ -844,7 +844,7 @@ static void sub_8099B54(u8 taskId)
gTasks[taskId].data[3] += gTasks[taskId].data[4];
SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
if (gTasks[taskId].data[7])
- sub_80759DC(gTasks[taskId].data[5]);
+ SetBattlerSpriteYOffsetFromRotation(gTasks[taskId].data[5]);
if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2])
{
switch (gTasks[taskId].data[6])
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
new file mode 100644
index 000000000..ed9c9bc2b
--- /dev/null
+++ b/src/battle_anim_mons.c
@@ -0,0 +1,2253 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "bg.h"
+#include "data.h"
+#include "decompress.h"
+#include "dma3.h"
+#include "gpu_regs.h"
+#include "malloc.h"
+#include "palette.h"
+#include "pokemon_icon.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+#include "util.h"
+#include "constants/battle_anim.h"
+#include "constants/species.h"
+
+#define GET_UNOWN_LETTER(personality) (( \
+ (((personality & 0x03000000) >> 24) << 6) \
+ | (((personality & 0x00030000) >> 16) << 4) \
+ | (((personality & 0x00000300) >> 8) << 2) \
+ | (((personality & 0x00000003) >> 0) << 0) \
+) % 28)
+
+#define IS_DOUBLE_BATTLE() (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+
+static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3);
+static void sub_8075658(struct Sprite *sprite);
+static void sub_80757E8(struct Sprite *sprite);
+static bool8 sub_80758DC(void);
+static void sub_8075EF0(struct Sprite *sprite);
+static void sub_80760D0(u8 taskId);
+static void AnimTask_BlendMonInAndOutSetup(struct Task *task);
+static void AnimTask_BlendMonInAndOutStep(u8 taskId);
+static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
+static void sub_8077118(u8 taskId);
+static void sub_80771E4(struct Task *task, u8 taskId);
+static void sub_8077268(struct Sprite *sprite);
+static void sub_80772F4(struct Sprite *sprite);
+
+static EWRAM_DATA union AffineAnimCmd *sAnimTaskAffineAnim = NULL;
+static EWRAM_DATA u32 gUnknown_2037F2C = 0; // not used
+
+static const struct UCoords8 sBattlerCoords[][4] =
+{
+ {
+ { 72, 80 },
+ { 176, 40 },
+ { 48, 40 },
+ { 112, 80 },
+ },
+ {
+ { 32, 80 },
+ { 200, 40 },
+ { 90, 88 },
+ { 152, 32 },
+ },
+};
+
+// One entry for each of the four Castform forms.
+const struct MonCoords gCastformFrontSpriteCoords[] =
+{
+ { .size = 0x44, .y_offset = 17 }, // NORMAL
+ { .size = 0x66, .y_offset = 9 }, // SUN
+ { .size = 0x46, .y_offset = 9 }, // RAIN
+ { .size = 0x86, .y_offset = 8 }, // HAIL
+};
+
+static const u8 sCastformElevations[] =
+{
+ 13, // NORMAL
+ 14, // SUN
+ 13, // RAIN
+ 13, // HAIL
+};
+
+// Y position of the backsprite for each of the four Castform forms.
+static const u8 sCastformBackSpriteYCoords[] =
+{
+ 0, // NORMAL
+ 0, // SUN
+ 0, // RAIN
+ 0, // HAIL
+};
+
+static const struct SpriteTemplate gUnknown_83AE054[] =
+{
+ {
+ .tileTag = 0xD755,
+ .paletteTag = 0xD755,
+ .oam = &gOamData_83ACA40,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ },
+ {
+ .tileTag = 0xD756,
+ .paletteTag = 0xD756,
+ .oam = &gOamData_83ACA40,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ }
+};
+
+static const struct SpriteSheet gUnknown_83AE084[] =
+{
+ { gMiscBlank_Gfx, 0x800, 0xD755 },
+ { gMiscBlank_Gfx, 0x800, 0xD756 },
+};
+
+u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
+{
+ u8 retVal;
+ u16 species;
+ struct BattleSpriteInfo *spriteInfo;
+
+ switch (coordType)
+ {
+ case BATTLER_COORD_X:
+ case BATTLER_COORD_X_2:
+ retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].x;
+ break;
+ case BATTLER_COORD_Y:
+ retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y;
+ break;
+ case BATTLER_COORD_Y_PIC_OFFSET:
+ case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT:
+ default:
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ }
+ else
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ }
+ if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
+ retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
+ else
+ retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
+ break;
+ }
+ return retVal;
+}
+
+static u8 GetBattlerYDelta(u8 battlerId, u16 species)
+{
+ u16 letter;
+ u32 personality;
+ struct BattleSpriteInfo *spriteInfo;
+ u8 ret;
+ u16 coordSpecies;
+
+ if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
+ {
+ if (species == SPECIES_UNOWN)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY);
+ else
+ personality = gTransformedPersonalities[battlerId];
+ letter = GET_UNOWN_LETTER(personality);
+ if (!letter)
+ coordSpecies = species;
+ else
+ coordSpecies = letter + SPECIES_UNOWN_B - 1;
+ ret = gMonBackPicCoords[coordSpecies].y_offset;
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
+ ret = sCastformBackSpriteYCoords[gBattleMonForms[battlerId]];
+ }
+ else if (species > NUM_SPECIES)
+ {
+ ret = gMonBackPicCoords[0].y_offset;
+ }
+ else
+ {
+ ret = gMonBackPicCoords[species].y_offset;
+ }
+ }
+ else
+ {
+ if (species == SPECIES_UNOWN)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY);
+ else
+ personality = gTransformedPersonalities[battlerId];
+ letter = GET_UNOWN_LETTER(personality);
+ if (!letter)
+ coordSpecies = species;
+ else
+ coordSpecies = letter + SPECIES_UNOWN_B - 1;
+ ret = gMonFrontPicCoords[coordSpecies].y_offset;
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
+ ret = gCastformFrontSpriteCoords[gBattleMonForms[battlerId]].y_offset;
+ }
+ else if (species > NUM_SPECIES)
+ {
+ ret = gMonFrontPicCoords[0].y_offset;
+ }
+ else
+ {
+ ret = gMonFrontPicCoords[species].y_offset;
+ }
+ }
+ return ret;
+}
+
+static u8 GetBattlerElevation(u8 battlerId, u16 species)
+{
+ u8 ret = 0;
+
+ if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
+ {
+ if (species == SPECIES_CASTFORM)
+ ret = sCastformElevations[gBattleMonForms[battlerId]];
+ else if (species > NUM_SPECIES)
+ ret = gEnemyMonElevation[0];
+ else
+ ret = gEnemyMonElevation[species];
+ }
+ return ret;
+}
+
+static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
+{
+ u16 offset;
+ u8 y;
+
+ if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
+ {
+ offset = GetBattlerYDelta(battlerId, species);
+ }
+ else
+ {
+ offset = GetBattlerYDelta(battlerId, species);
+ offset -= GetBattlerElevation(battlerId, species);
+ }
+ y = offset + sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y;
+ if (a3)
+ {
+ if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
+ y += 8;
+ if (y > 104)
+ y = 104;
+ }
+ return y;
+}
+
+u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType)
+{
+ u16 species;
+ struct BattleSpriteInfo *spriteInfo;
+
+ if (coordType == BATTLER_COORD_Y_PIC_OFFSET || coordType == BATTLER_COORD_Y_PIC_OFFSET_DEFAULT)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = gAnimBattlerSpecies[battlerId];
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
+ return GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
+ else
+ return GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
+ }
+ else
+ {
+ return GetBattlerSpriteCoord(battlerId, coordType);
+ }
+}
+
+u8 GetBattlerSpriteDefault_Y(u8 battlerId)
+{
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT);
+}
+
+u8 GetSubstituteSpriteDefault_Y(u8 battlerId)
+{
+ u16 y;
+
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 16;
+ else
+ y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 17;
+ return y;
+}
+
+u8 GetGhostSpriteDefault_Y(u8 battlerId)
+{
+ if (GetBattlerSide(battlerId) != B_SIDE_OPPONENT)
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT);
+ else
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y);
+}
+
+u8 GetBattlerYCoordWithElevation(u8 battlerId)
+{
+ u16 species;
+ u8 y;
+ struct BattleSpriteInfo *spriteInfo;
+
+ y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y);
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ }
+ else
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ }
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ y -= GetBattlerElevation(battlerId, species);
+ return y;
+}
+
+u8 GetAnimBattlerSpriteId(u8 animBattler)
+{
+ u8 *sprites;
+
+ if (animBattler == ANIM_ATTACKER)
+ {
+ if (IsBattlerSpritePresent(gBattleAnimAttacker))
+ {
+ sprites = gBattlerSpriteIds;
+ return sprites[gBattleAnimAttacker];
+ }
+ else
+ {
+ return 0xFF;
+ }
+ }
+ else if (animBattler == ANIM_TARGET)
+ {
+ if (IsBattlerSpritePresent(gBattleAnimTarget))
+ {
+ sprites = gBattlerSpriteIds;
+ return sprites[gBattleAnimTarget];
+ }
+ else
+ {
+ return 0xFF;
+ }
+ }
+ else if (animBattler == ANIM_ATK_PARTNER)
+ {
+ if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
+ return 0xFF;
+ else
+ return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)];
+ }
+ else
+ {
+ if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
+ return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)];
+ else
+ return 0xFF;
+ }
+}
+
+void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback)
+{
+ sprite->data[6] = (u32)(callback) & 0xFFFF;
+ sprite->data[7] = (u32)(callback) >> 16;
+}
+
+static void SetCallbackToStoredInData6(struct Sprite *sprite)
+{
+ u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16);
+
+ sprite->callback = (SpriteCallback)callback;
+}
+
+void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
+ sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
+ sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]);
+ sprite->data[0] += sprite->data[2];
+ if (sprite->data[0] >= 0x100)
+ sprite->data[0] -= 0x100;
+ else if (sprite->data[0] < 0)
+ sprite->data[0] += 0x100;
+ --sprite->data[3];
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
+ sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
+ sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
+ sprite->data[0] += sprite->data[2];
+ sprite->data[5] += sprite->data[4];
+ if (sprite->data[0] >= 0x100)
+ sprite->data[0] -= 0x100;
+ else if (sprite->data[0] < 0)
+ sprite->data[0] += 0x100;
+ --sprite->data[3];
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+// not used
+static void sub_8074B5C(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
+ sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
+ sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]);
+ sprite->data[0] += sprite->data[2];
+ sprite->data[4] += sprite->data[5];
+ if (sprite->data[0] >= 0x100)
+ sprite->data[0] -= 0x100;
+ else if (sprite->data[0] < 0)
+ sprite->data[0] += 0x100;
+ if (sprite->data[4] >= 0x100)
+ sprite->data[4] -= 0x100;
+ else if (sprite->data[4] < 0)
+ sprite->data[4] += 0x100;
+ --sprite->data[3];
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
+ sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
+ sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]);
+ sprite->data[0] += sprite->data[2];
+ if (sprite->data[0] >= 0x100)
+ sprite->data[0] -= 0x100;
+ else if (sprite->data[0] < 0)
+ sprite->data[0] += 0x100;
+ --sprite->data[3];
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+// Simply waits until the sprite's data[0] hits zero.
+// This is used to let sprite anims or affine anims to run for a designated
+// duration.
+void WaitAnimForDuration(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ --sprite->data[0];
+ else
+ SetCallbackToStoredInData6(sprite);
+}
+
+static void sub_8074C64(struct Sprite *sprite)
+{
+ sub_8074C80(sprite);
+ sprite->callback = TranslateSpriteLinear;
+ sprite->callback(sprite);
+}
+
+void sub_8074C80(struct Sprite *sprite)
+{
+ s16 old;
+ s32 xDiff;
+
+ if (sprite->data[1] > sprite->data[2])
+ sprite->data[0] = -sprite->data[0];
+ xDiff = sprite->data[2] - sprite->data[1];
+ old = sprite->data[0];
+ sprite->data[0] = abs(xDiff / sprite->data[0]);
+ sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0];
+ sprite->data[1] = old;
+}
+
+void TranslateSpriteLinear(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ --sprite->data[0];
+ sprite->pos2.x += sprite->data[1];
+ sprite->pos2.y += sprite->data[2];
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+void TranslateSpriteLinearFixedPoint(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ --sprite->data[0];
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x = sprite->data[3] >> 8;
+ sprite->pos2.y = sprite->data[4] >> 8;
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ --sprite->data[0];
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x = sprite->data[3] >> 8;
+ sprite->pos2.y = sprite->data[4] >> 8;
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+
+ UpdateMonIconFrame(sprite);
+}
+
+// not used
+static void sub_8074D80(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
+ sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
+ sprite->callback = sub_8074C64;
+}
+
+void TranslateMonSpriteLinear(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ --sprite->data[0];
+ gSprites[sprite->data[3]].pos2.x += sprite->data[1];
+ gSprites[sprite->data[3]].pos2.y += sprite->data[2];
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ --sprite->data[0];
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8;
+ gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8;
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+void TranslateSpriteLinearAndFlicker(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
+ --sprite->data[0];
+ sprite->pos2.x = sprite->data[2] >> 8;
+ sprite->data[2] += sprite->data[1];
+ sprite->pos2.y = sprite->data[4] >> 8;
+ sprite->data[4] += sprite->data[3];
+ if (sprite->data[0] % sprite->data[5] == 0)
+ {
+ if (sprite->data[5])
+ sprite->invisible ^= 1;
+ }
+ }
+ else
+ {
+ SetCallbackToStoredInData6(sprite);
+ }
+}
+
+void DestroySpriteAndMatrix(struct Sprite *sprite)
+{
+ FreeSpriteOamMatrix(sprite);
+ DestroyAnimSprite(sprite);
+}
+
+// not used
+static void sub_8074EF4(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
+ sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
+ sprite->callback = sub_8074C64;
+}
+
+// not used
+static void sub_8074F38(struct Sprite *sprite)
+{
+ ResetPaletteStructByUid(sprite->data[5]);
+ DestroySpriteAndMatrix(sprite);
+}
+
+void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ SetCallbackToStoredInData6(sprite);
+}
+
+void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ SetCallbackToStoredInData6(sprite);
+}
+
+void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimSprite(sprite);
+}
+
+void DestroyAnimVisualTaskAndDisableBlend(u8 taskId)
+{
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimVisualTask(taskId);
+}
+
+void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
+}
+
+// Sets the initial x offset of the anim sprite depending on the horizontal orientation
+// of the two involved mons.
+void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset)
+{
+ u16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
+ u16 targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
+
+ if (attackerX > targetX)
+ {
+ sprite->pos1.x -= xOffset;
+ }
+ else if (attackerX < targetX)
+ {
+ sprite->pos1.x += xOffset;
+ }
+ else
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ sprite->pos1.x -= xOffset;
+ else
+ sprite->pos1.x += xOffset;
+ }
+}
+
+void InitAnimArcTranslation(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ InitAnimLinearTranslation(sprite);
+ sprite->data[6] = 0x8000 / sprite->data[0];
+ sprite->data[7] = 0;
+}
+
+bool8 TranslateAnimHorizontalArc(struct Sprite *sprite)
+{
+ if (AnimTranslateLinear(sprite))
+ return TRUE;
+ sprite->data[7] += sprite->data[6];
+ sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
+ return FALSE;
+}
+
+bool8 TranslateAnimVerticalArc(struct Sprite *sprite)
+{
+ if (AnimTranslateLinear(sprite))
+ return TRUE;
+ sprite->data[7] += sprite->data[6];
+ sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
+ return FALSE;
+}
+
+void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite)
+{
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+}
+
+void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets)
+{
+ // Battle anim sprites are automatically created at the anim target's center, which
+ // is why there is no else clause for the "respectMonPicOffsets" check.
+ if (!respectMonPicOffsets)
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X);
+ sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y);
+ }
+ SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+}
+
+void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets)
+{
+ if (!respectMonPicOffsets)
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X);
+ sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y);
+ }
+ else
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
+ }
+ SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
+ sprite->pos1.y += gBattleAnimArgs[1];
+}
+
+u8 GetBattlerSide(u8 battlerId)
+{
+ return GET_BATTLER_SIDE2(battlerId);
+}
+
+u8 GetBattlerPosition(u8 battlerId)
+{
+ return GET_BATTLER_POSITION(battlerId);
+}
+
+u8 GetBattlerAtPosition(u8 position)
+{
+ u8 i;
+
+ for (i = 0; i < gBattlersCount; ++i)
+ if (gBattlerPositions[i] == position)
+ break;
+ return i;
+}
+
+bool8 IsBattlerSpritePresent(u8 battlerId)
+{
+ if (gBattlerPositions[battlerId] == 0xFF)
+ {
+ return FALSE;
+ }
+ else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ {
+ if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_HP) != 0)
+ return TRUE;
+ }
+ else
+ {
+ if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_HP) != 0)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 IsDoubleBattle(void)
+{
+ return IS_DOUBLE_BATTLE();
+}
+
+void sub_80752A0(struct BattleAnimBgData *animBgData)
+{
+ animBgData->bgTiles = gUnknown_2022BB8;
+ animBgData->bgTilemap = (u16 *)gUnknown_2022BBC;
+ animBgData->paletteId = 8;
+ animBgData->bgId = 1;
+ animBgData->tilesOffset = 0x200;
+ animBgData->unused = 0;
+}
+
+void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1)
+{
+ if (arg1 == 1)
+ {
+ sub_80752A0(animBgData);
+ }
+ else
+ {
+ animBgData->bgTiles = gUnknown_2022BB8;
+ animBgData->bgTilemap = (u16 *)gUnknown_2022BBC;
+ animBgData->paletteId = 9;
+ animBgData->bgId = 2;
+ animBgData->tilesOffset = 0x300;
+ animBgData->unused = 0;
+ }
+}
+
+void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused)
+{
+ animBgData->bgTiles = gUnknown_2022BB8;
+ animBgData->bgTilemap = (u16 *)gUnknown_2022BBC;
+ if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
+ {
+ animBgData->paletteId = 8;
+ animBgData->bgId = 1;
+ animBgData->tilesOffset = 0x200;
+ animBgData->unused = 0;
+ }
+ else
+ {
+ animBgData->paletteId = 9;
+ animBgData->bgId = 2;
+ animBgData->tilesOffset = 0x300;
+ animBgData->unused = 0;
+ }
+}
+
+void sub_8075358(u32 bgId)
+{
+ struct BattleAnimBgData animBgData;
+
+ sub_80752C8(&animBgData, bgId);
+ CpuFill32(0, animBgData.bgTiles, 0x2000);
+ LoadBgTiles(bgId, animBgData.bgTiles, 0x2000, animBgData.tilesOffset);
+ FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17);
+ CopyBgTilemapBufferToVram(bgId);
+}
+
+void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset)
+{
+ CpuFill32(0, gUnknown_2022BB8, 0x2000);
+ LZDecompressWram(src, gUnknown_2022BB8);
+ LoadBgTiles(bgId, gUnknown_2022BB8, 0x2000, tilesOffset);
+}
+
+void InitAnimBgTilemapBuffer(u32 bgId, const void *src)
+{
+ FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17);
+ CopyToBgTilemapBuffer(bgId, src, 0, 0);
+}
+
+void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src)
+{
+ InitAnimBgTilemapBuffer(bgId, src);
+ CopyBgTilemapBufferToVram(bgId);
+}
+
+u8 sub_8075454(void)
+{
+ return 2;
+}
+
+void sub_8075458(bool8 arg0)
+{
+ if (!arg0)
+ {
+ SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 0);
+ SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 1);
+ }
+ else
+ {
+ SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 1);
+ SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 0);
+ }
+}
+
+void sub_8075490(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ InitSpriteDataForLinearTranslation(sprite);
+ sprite->callback = TranslateSpriteLinearFixedPointIconFrame;
+ sprite->callback(sprite);
+}
+
+void InitSpriteDataForLinearTranslation(struct Sprite *sprite)
+{
+ s16 x = (sprite->data[2] - sprite->data[1]) << 8;
+ s16 y = (sprite->data[4] - sprite->data[3]) << 8;
+
+ sprite->data[1] = x / sprite->data[0];
+ sprite->data[2] = y / sprite->data[0];
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+}
+
+void InitAnimLinearTranslation(struct Sprite *sprite)
+{
+ s32 x = sprite->data[2] - sprite->data[1];
+ s32 y = sprite->data[4] - sprite->data[3];
+ bool8 movingLeft = x < 0;
+ bool8 movingUp = y < 0;
+ u16 xDelta = abs(x) << 8;
+ u16 yDelta = abs(y) << 8;
+
+ xDelta = xDelta / sprite->data[0];
+ yDelta = yDelta / sprite->data[0];
+
+ if (movingLeft)
+ xDelta |= 1;
+ else
+ xDelta &= ~1;
+
+ if (movingUp)
+ yDelta |= 1;
+ else
+ yDelta &= ~1;
+
+ sprite->data[1] = xDelta;
+ sprite->data[2] = yDelta;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+}
+
+void StartAnimLinearTranslation(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ InitAnimLinearTranslation(sprite);
+ sprite->callback = sub_807563C;
+ sprite->callback(sprite);
+}
+
+void sub_80755B8(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ InitAnimLinearTranslation(sprite);
+ sprite->callback = sub_8075658;
+ sprite->callback(sprite);
+}
+
+bool8 AnimTranslateLinear(struct Sprite *sprite)
+{
+ u16 v1, v2, x, y;
+
+ if (!sprite->data[0])
+ return TRUE;
+ v1 = sprite->data[1];
+ v2 = sprite->data[2];
+ x = sprite->data[3];
+ y = sprite->data[4];
+ x += v1;
+ y += v2;
+ if (v1 & 1)
+ sprite->pos2.x = -(x >> 8);
+ else
+ sprite->pos2.x = x >> 8;
+
+ if (v2 & 1)
+ sprite->pos2.y = -(y >> 8);
+ else
+ sprite->pos2.y = y >> 8;
+ sprite->data[3] = x;
+ sprite->data[4] = y;
+ --sprite->data[0];
+ return FALSE;
+}
+
+void sub_807563C(struct Sprite *sprite)
+{
+ if (AnimTranslateLinear(sprite))
+ SetCallbackToStoredInData6(sprite);
+}
+
+static void sub_8075658(struct Sprite *sprite)
+{
+ sub_801236C(sprite);
+ if (AnimTranslateLinear(sprite))
+ SetCallbackToStoredInData6(sprite);
+}
+
+void sub_8075678(struct Sprite *sprite)
+{
+ s32 v1 = abs(sprite->data[2] - sprite->data[1]) << 8;
+
+ sprite->data[0] = v1 / sprite->data[0];
+ InitAnimLinearTranslation(sprite);
+}
+
+void sub_80756A4(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ sub_8075678(sprite);
+ sprite->callback = sub_807563C;
+ sprite->callback(sprite);
+}
+
+static void InitAnimFastLinearTranslation(struct Sprite *sprite)
+{
+ s32 xDiff = sprite->data[2] - sprite->data[1];
+ s32 yDiff = sprite->data[4] - sprite->data[3];
+ bool8 xSign = xDiff < 0;
+ bool8 ySign = yDiff < 0;
+ u16 x2 = abs(xDiff) << 4;
+ u16 y2 = abs(yDiff) << 4;
+
+ x2 /= sprite->data[0];
+ y2 /= sprite->data[0];
+ if (xSign)
+ x2 |= 1;
+ else
+ x2 &= ~1;
+ if (ySign)
+ y2 |= 1;
+ else
+ y2 &= ~1;
+ sprite->data[1] = x2;
+ sprite->data[2] = y2;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+}
+
+void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ InitAnimFastLinearTranslation(sprite);
+ sprite->callback = sub_80757E8;
+ sprite->callback(sprite);
+}
+
+bool8 AnimFastTranslateLinear(struct Sprite *sprite)
+{
+ u16 v1, v2, x, y;
+
+ if (!sprite->data[0])
+ return TRUE;
+ v1 = sprite->data[1];
+ v2 = sprite->data[2];
+ x = sprite->data[3];
+ y = sprite->data[4];
+ x += v1;
+ y += v2;
+ if (v1 & 1)
+ sprite->pos2.x = -(x >> 4);
+ else
+ sprite->pos2.x = x >> 4;
+ if (v2 & 1)
+ sprite->pos2.y = -(y >> 4);
+ else
+ sprite->pos2.y = y >> 4;
+ sprite->data[3] = x;
+ sprite->data[4] = y;
+ --sprite->data[0];
+ return FALSE;
+}
+
+static void sub_80757E8(struct Sprite *sprite)
+{
+ if (AnimFastTranslateLinear(sprite))
+ SetCallbackToStoredInData6(sprite);
+}
+
+void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite)
+{
+ s32 xDiff = abs(sprite->data[2] - sprite->data[1]) << 4;
+
+ sprite->data[0] = xDiff / sprite->data[0];
+ InitAnimFastLinearTranslation(sprite);
+}
+
+void sub_8075830(struct Sprite *sprite)
+{
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+ InitAnimFastLinearTranslationWithSpeed(sprite);
+ sprite->callback = sub_80757E8;
+ sprite->callback(sprite);
+}
+
+void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
+{
+ s32 i;
+ struct ObjAffineSrcData src;
+ struct OamMatrix matrix;
+
+ src.xScale = xScale;
+ src.yScale = yScale;
+ src.rotation = rotation;
+ if (sub_80758DC())
+ src.xScale = -src.xScale;
+ i = gSprites[spriteId].oam.matrixNum;
+ ObjAffineSet(&src, &matrix, 1, 2);
+ gOamMatrices[i].a = matrix.a;
+ gOamMatrices[i].b = matrix.b;
+ gOamMatrices[i].c = matrix.c;
+ gOamMatrices[i].d = matrix.d;
+}
+
+static bool8 sub_80758DC(void)
+{
+ return FALSE;
+}
+
+void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode)
+{
+ u8 battlerId = gSprites[spriteId].data[0];
+
+ if (IsBattlerSpriteVisible(battlerId))
+ gSprites[spriteId].invisible = FALSE;
+ gSprites[spriteId].oam.objMode = objMode;
+ gSprites[spriteId].affineAnimPaused = TRUE;
+ if (!gSprites[spriteId].oam.affineMode)
+ gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].matrixNum;
+ gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
+ CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
+}
+
+void ResetSpriteRotScale(u8 spriteId)
+{
+ SetSpriteRotScale(spriteId, 0x100, 0x100, 0);
+ gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
+ gSprites[spriteId].oam.objMode = 0;
+ gSprites[spriteId].affineAnimPaused = FALSE;
+ CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
+}
+
+// Sets the sprite's y offset equal to the y displacement caused by the
+// matrix's rotation.
+void SetBattlerSpriteYOffsetFromRotation(u8 spriteId)
+{
+ u16 matrixNum = gSprites[spriteId].oam.matrixNum;
+ // The "c" component of the battler sprite matrix contains the sine of the rotation angle divided by some scale amount.
+ s16 c = gOamMatrices[matrixNum].c;
+
+ if (c < 0)
+ c = -c;
+ gSprites[spriteId].pos2.y = c >> 3;
+}
+
+void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation)
+{
+ s32 i;
+ struct ObjAffineSrcData src;
+ struct OamMatrix matrix;
+
+ if (sprite->oam.affineMode & 1)
+ {
+ sprite->affineAnimPaused = TRUE;
+ if (recalcCenterVector)
+ CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
+ src.xScale = xScale;
+ src.yScale = yScale;
+ src.rotation = rotation;
+ if (sub_80758DC())
+ src.xScale = -src.xScale;
+ i = sprite->oam.matrixNum;
+ ObjAffineSet(&src, &matrix, 1, 2);
+ gOamMatrices[i].a = matrix.a;
+ gOamMatrices[i].b = matrix.b;
+ gOamMatrices[i].c = matrix.c;
+ gOamMatrices[i].d = matrix.d;
+ }
+}
+
+void sub_8075AD8(struct Sprite *sprite)
+{
+ TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0);
+ sprite->affineAnimPaused = FALSE;
+ CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
+}
+
+static u16 ArcTan2_(s16 a, s16 b)
+{
+ return ArcTan2(a, b);
+}
+
+u16 ArcTan2Neg(s16 a, s16 b)
+{
+ u16 var = ArcTan2_(a, b);
+ return -var;
+}
+
+void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
+{
+ s32 i;
+ struct PlttData *originalColor;
+ struct PlttData *destColor;
+ u16 average;
+
+ paletteNum *= 16;
+
+ if (!restoreOriginalColor)
+ {
+ for (i = 0; i < 16; ++i)
+ {
+ originalColor = (struct PlttData *)&gPlttBufferUnfaded[paletteNum + i];
+ average = originalColor->r + originalColor->g + originalColor->b;
+ average /= 3;
+ destColor = (struct PlttData *)&gPlttBufferFaded[paletteNum + i];
+ destColor->r = average;
+ destColor->g = average;
+ destColor->b = average;
+ }
+ }
+ else
+ {
+ CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], 32);
+ }
+}
+
+u32 sub_8075BE8(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7)
+{
+ u32 selectedPalettes = 0;
+ u32 shift;
+
+ if (battleBackground)
+ {
+ selectedPalettes = 0xe;
+ }
+ if (attacker)
+ {
+ shift = gBattleAnimAttacker + 16;
+ selectedPalettes |= 1 << shift;
+ }
+ if (target)
+ {
+ shift = gBattleAnimTarget + 16;
+ selectedPalettes |= 1 << shift;
+ }
+ if (attackerPartner)
+ {
+ if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
+ {
+ shift = BATTLE_PARTNER(gBattleAnimAttacker) + 16;
+ selectedPalettes |= 1 << shift;
+ }
+ }
+ if (targetPartner)
+ {
+ if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
+ {
+ shift = BATTLE_PARTNER(gBattleAnimTarget) + 16;
+ selectedPalettes |= 1 << shift;
+ }
+ }
+ if (a6)
+ {
+ selectedPalettes |= 0x100;
+ }
+ if (a7)
+ {
+ selectedPalettes |= 0x200;
+ }
+ return selectedPalettes;
+}
+
+u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4)
+{
+ u32 var = 0;
+ u32 shift;
+
+ if (a1)
+ {
+ if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)))
+ {
+ var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16);
+ }
+ }
+ if (a2)
+ {
+ if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)))
+ {
+ shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16;
+ var |= 1 << shift;
+ }
+ }
+ if (a3)
+ {
+ if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)))
+ {
+ shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16;
+ var |= 1 << shift;
+ }
+ }
+ if (a4)
+ {
+ if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)))
+ {
+ shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16;
+ var |= 1 << shift;
+ }
+ }
+ return var;
+}
+
+u8 sub_8075D80(u8 a1)
+{
+ return a1;
+}
+
+// not used
+static u8 GetBattlerAtPosition_(u8 position)
+{
+ return GetBattlerAtPosition(position);
+}
+
+void sub_8075D9C(struct Sprite *sprite)
+{
+ bool8 var;
+
+ if (!sprite->data[0])
+ {
+ if (!gBattleAnimArgs[3])
+ var = TRUE;
+ else
+ var = FALSE;
+ if (!gBattleAnimArgs[2])
+ InitSpritePosToAnimAttacker(sprite, var);
+ else
+ InitSpritePosToAnimTarget(sprite, var);
+ ++sprite->data[0];
+
+ }
+ else if (sprite->animEnded || sprite->affineAnimEnded)
+ {
+ DestroySpriteAndMatrix(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 coordType;
+
+ if (!(gBattleAnimArgs[5] & 0xFF00))
+ v1 = TRUE;
+ else
+ v1 = FALSE;
+ if (!(gBattleAnimArgs[5] & 0xFF))
+ coordType = BATTLER_COORD_Y_PIC_OFFSET;
+ else
+ coordType = BATTLER_COORD_Y;
+ InitSpritePosToAnimAttacker(sprite, v1);
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3];
+ sprite->callback = StartAnimLinearTranslation;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+void sub_8075E80(struct Sprite *sprite)
+{
+ InitSpritePosToAnimAttacker(sprite, 1);
+ if (GetBattlerSide(gBattleAnimAttacker))
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
+ sprite->data[5] = gBattleAnimArgs[5];
+ InitAnimArcTranslation(sprite);
+ sprite->callback = sub_8075EF0;
+}
+
+static void sub_8075EF0(struct Sprite *sprite)
+{
+ if (TranslateAnimHorizontalArc(sprite))
+ DestroyAnimSprite(sprite);
+}
+
+void sub_8075F0C(struct Sprite *sprite)
+{
+ bool8 r4;
+ u8 battlerId, coordType;
+
+ if (!gBattleAnimArgs[6])
+ {
+ r4 = TRUE;
+ coordType = BATTLER_COORD_Y_PIC_OFFSET;
+ }
+ else
+ {
+ r4 = FALSE;
+ coordType = BATTLER_COORD_Y;
+ }
+ if (!gBattleAnimArgs[5])
+ {
+ InitSpritePosToAnimAttacker(sprite, r4);
+ battlerId = gBattleAnimAttacker;
+ }
+ else
+ {
+ InitSpritePosToAnimTarget(sprite, r4);
+ battlerId = gBattleAnimTarget;
+ }
+ if (GetBattlerSide(gBattleAnimAttacker))
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ InitSpritePosToAnimTarget(sprite, r4);
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBattlerSpriteCoord(battlerId, coordType) + gBattleAnimArgs[3];
+ sprite->callback = StartAnimLinearTranslation;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+s16 CloneBattlerSpriteWithBlend(u8 animBattler)
+{
+ u16 i;
+ u8 spriteId = GetAnimBattlerSpriteId(animBattler);
+
+ if (spriteId != 0xFF)
+ {
+ for (i = 0; i < MAX_SPRITES; ++i)
+ {
+ if (!gSprites[i].inUse)
+ {
+ gSprites[i] = gSprites[spriteId];
+ gSprites[i].oam.objMode = ST_OAM_OBJ_BLEND;
+ gSprites[i].invisible = FALSE;
+ return i;
+ }
+ }
+ }
+ return -1;
+}
+
+void obj_delete_but_dont_free_vram(struct Sprite *sprite)
+{
+ sprite->usingSheet = TRUE;
+ DestroySprite(sprite);
+}
+
+void sub_8076048(u8 taskId)
+{
+ s16 v1 = 0, v2 = 0;
+
+ if (gBattleAnimArgs[2] > gBattleAnimArgs[0])
+ v2 = 1;
+ if (gBattleAnimArgs[2] < gBattleAnimArgs[0])
+ v2 = -1;
+ if (gBattleAnimArgs[3] > gBattleAnimArgs[1])
+ v1 = 1;
+ if (gBattleAnimArgs[3] < gBattleAnimArgs[1])
+ v1 = -1;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gBattleAnimArgs[4];
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = gBattleAnimArgs[0];
+ gTasks[taskId].data[4] = gBattleAnimArgs[1];
+ gTasks[taskId].data[5] = v2;
+ gTasks[taskId].data[6] = v1;
+ gTasks[taskId].data[7] = gBattleAnimArgs[2];
+ gTasks[taskId].data[8] = gBattleAnimArgs[3];
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gBattleAnimArgs[0], gBattleAnimArgs[1]));
+ gTasks[taskId].func = sub_80760D0;
+}
+
+static void sub_80760D0(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (++task->data[0] > task->data[1])
+ {
+ task->data[0] = 0;
+ if (++task->data[2] & 1)
+ {
+ if (task->data[3] != task->data[7])
+ task->data[3] += task->data[5];
+ }
+ else
+ {
+ if (task->data[4] != task->data[8])
+ task->data[4] += task->data[6];
+ }
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4]));
+ if (task->data[3] == task->data[7] && task->data[4] == task->data[8])
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+ }
+}
+
+// Linearly blends a mon's sprite colors with a target color with increasing
+// strength, and then blends out to the original color.
+// arg 0: anim bank
+// arg 1: blend color
+// arg 2: target blend coefficient
+// arg 3: initial delay
+// arg 4: number of times to blend in and out
+void AnimTask_BlendMonInAndOut(u8 task)
+{
+ u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
+
+ if (spriteId == 0xFF)
+ {
+ DestroyAnimVisualTask(task);
+ return;
+ }
+ gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101;
+ AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
+}
+
+static void AnimTask_BlendMonInAndOutSetup(struct Task *task)
+{
+ task->data[1] = gBattleAnimArgs[1];
+ task->data[2] = 0;
+ task->data[3] = gBattleAnimArgs[2];
+ task->data[4] = 0;
+ task->data[5] = gBattleAnimArgs[3];
+ task->data[6] = 0;
+ task->data[7] = gBattleAnimArgs[4];
+ task->func = AnimTask_BlendMonInAndOutStep;
+}
+
+static void AnimTask_BlendMonInAndOutStep(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (++task->data[4] >= task->data[5])
+ {
+ task->data[4] = 0;
+ if (!task->data[6])
+ {
+ ++task->data[2];
+ BlendPalette(task->data[0], 15, task->data[2], task->data[1]);
+ if (task->data[2] == task->data[3])
+ task->data[6] = 1;
+ }
+ else
+ {
+ --task->data[2];
+ BlendPalette(task->data[0], 15, task->data[2], task->data[1]);
+ if (!task->data[2])
+ {
+ if (--task->data[7])
+ {
+ task->data[4] = 0;
+ task->data[6] = 0;
+ }
+ else
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+ }
+ }
+ }
+}
+
+void sub_8076288(u8 taskId)
+{
+ u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
+
+ if (palette == 0xFF)
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+ gTasks[taskId].data[0] = (palette * 0x10) + 0x101;
+ AnimTask_BlendMonInAndOutSetup(&gTasks[taskId]);
+}
+
+void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds)
+{
+ task->data[7] = 0;
+ task->data[8] = 0;
+ task->data[9] = 0;
+ task->data[15] = spriteId;
+ task->data[10] = 0x100;
+ task->data[11] = 0x100;
+ task->data[12] = 0;
+ StorePointerInVars(&task->data[13], &task->data[14], affineAnimCmds);
+ PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
+}
+
+bool8 RunAffineAnimFromTaskData(struct Task *task)
+{
+ sAnimTaskAffineAnim = LoadPointerFromVars(task->data[13], task->data[14]) + (task->data[7] << 3);
+ switch (sAnimTaskAffineAnim->type)
+ {
+ default:
+ if (!sAnimTaskAffineAnim->frame.duration)
+ {
+ task->data[10] = sAnimTaskAffineAnim->frame.xScale;
+ task->data[11] = sAnimTaskAffineAnim->frame.yScale;
+ task->data[12] = sAnimTaskAffineAnim->frame.rotation;
+ ++task->data[7];
+ ++sAnimTaskAffineAnim;
+ }
+ task->data[10] += sAnimTaskAffineAnim->frame.xScale;
+ task->data[11] += sAnimTaskAffineAnim->frame.yScale;
+ task->data[12] += sAnimTaskAffineAnim->frame.rotation;
+ SetSpriteRotScale(task->data[15], task->data[10], task->data[11], task->data[12]);
+ SetBattlerSpriteYOffsetFromYScale(task->data[15]);
+ if (++task->data[8] >= sAnimTaskAffineAnim->frame.duration)
+ {
+ task->data[8] = 0;
+ ++task->data[7];
+ }
+ break;
+ case AFFINEANIMCMDTYPE_JUMP:
+ task->data[7] = sAnimTaskAffineAnim->jump.target;
+ break;
+ case AFFINEANIMCMDTYPE_LOOP:
+ if (sAnimTaskAffineAnim->loop.count)
+ {
+ if (task->data[9])
+ {
+ if (!--task->data[9])
+ {
+ ++task->data[7];
+ break;
+ }
+ }
+ else
+ {
+ task->data[9] = sAnimTaskAffineAnim->loop.count;
+ }
+ if (!task->data[7])
+ {
+ break;
+ }
+ while (TRUE)
+ {
+ --task->data[7];
+ --sAnimTaskAffineAnim;
+ if (sAnimTaskAffineAnim->type == AFFINEANIMCMDTYPE_LOOP)
+ {
+ ++task->data[7];
+ return TRUE;
+ }
+ if (!task->data[7])
+ return TRUE;
+ }
+ }
+ ++task->data[7];
+ break;
+ case AFFINEANIMCMDTYPE_END:
+ gSprites[task->data[15]].pos2.y = 0;
+ ResetSpriteRotScale(task->data[15]);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+// Sets the sprite's y offset equal to the y displacement caused by the
+// matrix's scale in the y dimension.
+void SetBattlerSpriteYOffsetFromYScale(u8 spriteId)
+{
+ s32 var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2;
+ u16 matrix = gSprites[spriteId].oam.matrixNum;
+ s32 var2 = (var << 8) / gOamMatrices[matrix].d;
+
+ if (var2 > 128)
+ var2 = 128;
+ gSprites[spriteId].pos2.y = (var - var2) / 2;
+}
+
+// Sets the sprite's y offset equal to the y displacement caused by another sprite
+// matrix's scale in the y dimension.
+void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId)
+{
+ s32 var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2;
+ u16 matrix = gSprites[spriteId].oam.matrixNum;
+ s32 var2 = (var << 8) / gOamMatrices[matrix].d;
+
+ if (var2 > 128)
+ var2 = 128;
+ gSprites[spriteId].pos2.y = (var - var2) / 2;
+}
+
+static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
+{
+ struct BattleSpriteInfo *spriteInfo;
+ u8 battlerId = gSprites[spriteId].data[0];
+ u16 species;
+ u16 i;
+
+ for (i = 0; i < MAX_BATTLERS_COUNT; ++i)
+ {
+ if (gBattlerSpriteIds[i] == spriteId)
+ {
+ if (GetBattlerSide(i) == B_SIDE_PLAYER)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ return gMonBackPicCoords[species].y_offset;
+ }
+ else
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ return gMonFrontPicCoords[species].y_offset;
+ }
+ }
+ }
+ return 64;
+}
+
+void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr)
+{
+ *lo = ((intptr_t)ptr) & 0xffff;
+ *hi = (((intptr_t)ptr) >> 16) & 0xffff;
+}
+
+void *LoadPointerFromVars(s16 lo, s16 hi)
+{
+ return (void *)((u16)lo | ((u16)hi << 16));
+}
+
+void sub_80765D4(struct Task *task, u8 spriteId, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7)
+{
+ task->data[8] = a7;
+ task->data[15] = spriteId;
+ task->data[9] = a3;
+ task->data[10] = a4;
+ task->data[13] = a5;
+ task->data[14] = a6;
+ task->data[11] = (a5 - a3) / a7;
+ task->data[12] = (a6 - a4) / a7;
+}
+
+u8 sub_8076640(struct Task *task)
+{
+ if (!task->data[8])
+ return 0;
+ if (--task->data[8] != 0)
+ {
+ task->data[9] += task->data[11];
+ task->data[10] += task->data[12];
+ }
+ else
+ {
+ task->data[9] = task->data[13];
+ task->data[10] = task->data[14];
+ }
+ SetSpriteRotScale(task->data[15], task->data[9], task->data[10], 0);
+ if (task->data[8])
+ SetBattlerSpriteYOffsetFromYScale(task->data[15]);
+ else
+ gSprites[task->data[15]].pos2.y = 0;
+ return task->data[8];
+}
+
+void AnimTask_GetFrustrationPowerLevel(u8 taskId)
+{
+ u16 powerLevel;
+
+ if (gAnimFriendship <= 30)
+ powerLevel = 0;
+ else if (gAnimFriendship <= 100)
+ powerLevel = 1;
+ else if (gAnimFriendship <= 200)
+ powerLevel = 2;
+ else
+ powerLevel = 3;
+ gBattleAnimArgs[7] = powerLevel;
+ DestroyAnimVisualTask(taskId);
+}
+
+// not used
+static void sub_80766EC(u8 priority)
+{
+ if (IsBattlerSpriteVisible(gBattleAnimTarget))
+ gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority;
+ if (IsBattlerSpriteVisible(gBattleAnimAttacker))
+ gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].oam.priority = priority;
+ if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
+ gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]].oam.priority = priority;
+ if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
+ gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority;
+}
+
+void sub_80767F0(void)
+{
+ s32 i;
+
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (IsBattlerSpriteVisible(i))
+ {
+ gSprites[gBattlerSpriteIds[i]].subpriority = GetBattlerSpriteSubpriority(i);
+ gSprites[gBattlerSpriteIds[i]].oam.priority = 2;
+ }
+ }
+}
+
+u8 GetBattlerSpriteSubpriority(u8 battlerId)
+{
+ u8 subpriority;
+ u8 position = GetBattlerPosition(battlerId);
+
+ if (position == B_POSITION_PLAYER_LEFT)
+ subpriority = 30;
+ else if (position == B_POSITION_PLAYER_RIGHT)
+ subpriority = 20;
+ else if (position == B_POSITION_OPPONENT_LEFT)
+ subpriority = 40;
+ else
+ subpriority = 50;
+ return subpriority;
+}
+
+u8 GetBattlerSpriteBGPriority(u8 battlerId)
+{
+ u8 position = GetBattlerPosition(battlerId);
+
+ if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT)
+ return GetAnimBgAttribute(2, BG_ANIM_PRIORITY);
+ else
+ return GetAnimBgAttribute(1, BG_ANIM_PRIORITY);
+}
+
+u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
+{
+ u8 position = GetBattlerPosition(battlerId);
+
+ if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT)
+ return 2;
+ else
+ return 1;
+}
+
+u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10)
+{
+ u8 spriteId;
+ u16 sheet = LoadSpriteSheet(&gUnknown_83AE084[a3]);
+ u16 palette = AllocSpritePalette(gUnknown_83AE054[a3].paletteTag);
+
+ if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->field_17C == NULL)
+ gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
+ if (!isBackpic)
+ {
+ LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
+ if (a10 == 1 || sub_804455C(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
+ LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
+ gMonSpritesGfxPtr->field_17C,
+ species,
+ personality,
+ TRUE);
+ else
+ LoadSpecialPokePic(&gMonFrontPicTable[species],
+ gMonSpritesGfxPtr->field_17C,
+ species,
+ personality,
+ TRUE);
+ }
+ else
+ {
+ LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
+ if (a10 == 1 || sub_804455C(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
+ LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
+ gMonSpritesGfxPtr->field_17C,
+ species,
+ personality,
+ FALSE);
+ else
+ LoadSpecialPokePic(&gMonBackPicTable[species],
+ gMonSpritesGfxPtr->field_17C,
+ species,
+ personality,
+ FALSE);
+ }
+ RequestDma3Copy(gMonSpritesGfxPtr->field_17C, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C);
+ if (!isBackpic)
+ spriteId = CreateSprite(&gUnknown_83AE054[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
+ else
+ spriteId = CreateSprite(&gUnknown_83AE054[a3], x, y + gMonBackPicCoords[species].y_offset, subpriority);
+ return spriteId;
+}
+
+void DestroySpriteAndFreeResources_(struct Sprite *sprite)
+{
+ DestroySpriteAndFreeResources(sprite);
+}
+
+s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr)
+{
+ u16 species;
+ u32 personality;
+ u16 letter;
+ u16 unownSpecies;
+ s32 ret;
+ const struct MonCoords *coords;
+ struct BattleSpriteInfo *spriteInfo;
+
+ if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ {
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY);
+ }
+ else
+ {
+ species = spriteInfo[battlerId].transformSpecies;
+ personality = gTransformedPersonalities[battlerId];
+ }
+ if (species == SPECIES_UNOWN)
+ {
+ letter = GET_UNOWN_LETTER(personality);
+ if (!letter)
+ unownSpecies = SPECIES_UNOWN;
+ else
+ unownSpecies = letter + SPECIES_UNOWN_B - 1;
+ coords = &gMonBackPicCoords[unownSpecies];
+ }
+ else if (species > NUM_SPECIES)
+ {
+ coords = &gMonBackPicCoords[0];
+ }
+ else
+ {
+ coords = &gMonBackPicCoords[species];
+ }
+ }
+ else
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ {
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY);
+ }
+ else
+ {
+ species = spriteInfo[battlerId].transformSpecies;
+ personality = gTransformedPersonalities[battlerId];
+ }
+
+ if (species == SPECIES_UNOWN)
+ {
+ letter = GET_UNOWN_LETTER(personality);
+ if (!letter)
+ unownSpecies = SPECIES_UNOWN;
+ else
+ unownSpecies = letter + SPECIES_UNOWN_B - 1;
+ coords = &gMonFrontPicCoords[unownSpecies];
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
+ coords = &gCastformFrontSpriteCoords[gBattleMonForms[battlerId]];
+ }
+ else if (species > NUM_SPECIES)
+ {
+ coords = &gMonFrontPicCoords[0];
+ }
+ else
+ {
+ coords = &gMonFrontPicCoords[species];
+ }
+ }
+ switch (attr)
+ {
+ case BATTLER_COORD_ATTR_HEIGHT:
+ return (coords->size & 0xf) * 8;
+ case BATTLER_COORD_ATTR_WIDTH:
+ return (coords->size >> 4) * 8;
+ case BATTLER_COORD_ATTR_LEFT:
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4);
+ case BATTLER_COORD_ATTR_RIGHT:
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4);
+ case BATTLER_COORD_ATTR_TOP:
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4);
+ case BATTLER_COORD_ATTR_BOTTOM:
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4);
+ case BATTLER_COORD_ATTR_RAW_BOTTOM:
+ ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31;
+ return ret - coords->y_offset;
+ default:
+ return 0;
+ }
+}
+
+void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y)
+{
+ u8 xCoordType, yCoordType;
+ s16 battlerX, battlerY;
+ s16 partnerX, partnerY;
+
+ if (!respectMonPicOffsets)
+ {
+ xCoordType = BATTLER_COORD_X;
+ yCoordType = BATTLER_COORD_Y;
+ }
+ else
+ {
+ xCoordType = BATTLER_COORD_X_2;
+ yCoordType = BATTLER_COORD_Y_PIC_OFFSET;
+ }
+ battlerX = GetBattlerSpriteCoord(battlerId, xCoordType);
+ battlerY = GetBattlerSpriteCoord(battlerId, yCoordType);
+ if (IsDoubleBattle())
+ {
+ partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), xCoordType);
+ partnerY = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), yCoordType);
+ }
+ else
+ {
+ partnerX = battlerX;
+ partnerY = battlerY;
+ }
+ *x = (battlerX + partnerX) / 2;
+ *y = (battlerY + partnerY) / 2;
+}
+
+u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species)
+{
+ u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
+
+ gSprites[newSpriteId] = gSprites[spriteId];
+ gSprites[newSpriteId].usingSheet = TRUE;
+ gSprites[newSpriteId].oam.priority = 0;
+ gSprites[newSpriteId].oam.objMode = 2;
+ gSprites[newSpriteId].oam.tileNum = gSprites[spriteId].oam.tileNum;
+ gSprites[newSpriteId].callback = SpriteCallbackDummy;
+ return newSpriteId;
+}
+
+void sub_8076ED8(struct Sprite *sprite)
+{
+ SetSpriteCoordsToAnimAttackerCoords(sprite);
+ if (GetBattlerSide(gBattleAnimAttacker))
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ sprite->hFlip = TRUE;
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+ sprite->data[5] = gBattleAnimArgs[5];
+ StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
+ sprite->callback = TranslateSpriteLinearAndFlicker;
+}
+
+void sub_8076F58(struct Sprite *sprite)
+{
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ gBattleAnimArgs[3] *= -1;
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ }
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+ sprite->data[5] = gBattleAnimArgs[5];
+ StartSpriteAnim(sprite, gBattleAnimArgs[6]);
+ StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
+ sprite->callback = TranslateSpriteLinearAndFlicker;
+}
+
+void sub_8076FD0(struct Sprite *sprite)
+{
+ SetSpriteCoordsToAnimAttackerCoords(sprite);
+ if (GetBattlerSide(gBattleAnimAttacker))
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ else
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->callback = RunStoredCallbackWhenAnimEnds;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
+
+void sub_8077030(u8 taskId)
+{
+ u16 src;
+ u16 dest;
+ struct Task *task = &gTasks[taskId];
+
+ task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ task->data[1] = ((GetBattlerSide(gBattleAnimAttacker)) != B_SIDE_PLAYER) ? -8 : 8;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ gSprites[task->data[0]].pos2.x -= task->data[0];
+ task->data[4] = AllocSpritePalette(10097);
+ task->data[5] = 0;
+ dest = (task->data[4] + 0x10) * 0x10;
+ src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
+ task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
+ if (task->data[6] == 20 || task->data[6] == 40)
+ task->data[6] = 2;
+ else
+ task->data[6] = 3;
+ CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
+ BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]);
+ task->func = sub_8077118;
+}
+
+static void sub_8077118(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ switch (task->data[2])
+ {
+ case 0:
+ sub_80771E4(task, taskId);
+ gSprites[task->data[0]].pos2.x += task->data[1];
+ if (++task->data[3] == 5)
+ {
+ --task->data[3];
+ ++task->data[2];
+ }
+ break;
+ case 1:
+ sub_80771E4(task, taskId);
+ gSprites[task->data[0]].pos2.x -= task->data[1];
+ if (--task->data[3] == 0)
+ {
+ gSprites[task->data[0]].pos2.x = 0;
+ ++task->data[2];
+ }
+ break;
+ case 2:
+ if (!task->data[5])
+ {
+ FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON);
+ DestroyAnimVisualTask(taskId);
+ }
+ break;
+ }
+}
+
+static void sub_80771E4(struct Task *task, u8 taskId)
+{
+ s16 spriteId = CloneBattlerSpriteWithBlend(0);
+ if (spriteId >= 0)
+ {
+ gSprites[spriteId].oam.priority = task->data[6];
+ gSprites[spriteId].oam.paletteNum = task->data[4];
+ gSprites[spriteId].data[0] = 8;
+ gSprites[spriteId].data[1] = taskId;
+ gSprites[spriteId].data[2] = spriteId;
+ gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x;
+ gSprites[spriteId].callback = sub_8077268;
+ ++task->data[5];
+ }
+}
+
+static void sub_8077268(struct Sprite *sprite)
+{
+ if (--sprite->data[0] == 0)
+ {
+ --gTasks[sprite->data[1]].data[5];
+ obj_delete_but_dont_free_vram(sprite);
+ }
+}
+
+void sub_807729C(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
+ if (!GetBattlerSide(gBattleAnimAttacker))
+ sprite->data[0] = 5;
+ else
+ sprite->data[0] = -10;
+ sprite->data[1] = -40;
+ sprite->callback = sub_80772F4;
+}
+
+static void sub_80772F4(struct Sprite *sprite)
+{
+ sprite->data[2] += sprite->data[0];
+ sprite->data[3] += sprite->data[1];
+ sprite->pos2.x = sprite->data[2] / 10;
+ sprite->pos2.y = sprite->data[3] / 10;
+ if (sprite->data[1] < -20)
+ ++sprite->data[1];
+ if (sprite->pos1.y + sprite->pos2.y < -32)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_8077350(struct Sprite *sprite)
+{
+ s32 x;
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4];
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5];
+ if (!GetBattlerSide(gBattleAnimTarget))
+ {
+ x = (u16)gBattleAnimArgs[4] + 30;
+ sprite->pos1.x += x;
+ sprite->pos1.y = gBattleAnimArgs[5] - 20;
+ }
+ else
+ {
+ x = (u16)gBattleAnimArgs[4] - 30;
+ sprite->pos1.x += x;
+ sprite->pos1.y = gBattleAnimArgs[5] - 80;
+ }
+ sprite->callback = StartAnimLinearTranslation;
+ StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
+}
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c
index 795458ab9..5708785c0 100644
--- a/src/battle_anim_utility_funcs.c
+++ b/src/battle_anim_utility_funcs.c
@@ -312,7 +312,7 @@ void sub_80BACEC(u8 taskId)
spriteId = GetAnimBattlerSpriteId(0);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
sub_80752A0(&animBgData);
- sub_807543C(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
+ AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_sheet, animBgData.tilesOffset);
@@ -434,9 +434,9 @@ static void sub_80BB2A0(u8 taskId)
}
sub_80752A0(&animBgData);
if (sAnimStatsChangeData->data[0] == 0)
- sub_807543C(animBgData.bgId, gBattleStatMask1_Tilemap);
+ AnimLoadCompressedBgTilemap(animBgData.bgId, gBattleStatMask1_Tilemap);
else
- sub_807543C(animBgData.bgId, gBattleStatMask2_Tilemap);
+ AnimLoadCompressedBgTilemap(animBgData.bgId, gBattleStatMask2_Tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gBattleStatMask_Gfx, animBgData.tilesOffset);
@@ -736,7 +736,7 @@ void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
if (arg4)
newSpriteId = sub_8076E34(battler2, gBattlerSpriteIds[battler2], species);
sub_80752A0(&animBgData);
- sub_807543C(animBgData.bgId, tilemap);
+ AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset);
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index b0cd92c2e..3ab5bc1c8 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -1191,7 +1191,7 @@ static void sub_80303A8(u8 taskId)
{
s16 *data = gTasks[taskId].data;
u8 battlerId = tExpTask_battler;
- u16 v5 = sub_80768B0(battlerId);
+ u16 v5 = GetBattlerSpriteBGPriorityRank(battlerId);
bool32 v6 = ((v5 ^ BIT_SIDE)) != B_SIDE_PLAYER;
struct Sprite *sprite = &gSprites[gBattlerSpriteIds[battlerId]];
diff --git a/src/daycare.c b/src/daycare.c
index c082b4298..45ca303ee 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -2087,7 +2087,7 @@ struct UnkStruct_82349CC
u8 field_3;
};
-extern const struct UnkStruct_82349CC gUnknown_82349CC[NUM_SPECIES];
+extern const struct UnkStruct_82349CC gMonFrontPicCoords[NUM_SPECIES];
static void SpriteCB_Egg_2(struct Sprite* sprite)
{
@@ -2101,7 +2101,7 @@ static void SpriteCB_Egg_2(struct Sprite* sprite)
sprite->data[0] = 0;
species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES);
gSprites[sEggHatchData->pokeSpriteID].pos2.x = 0;
- gSprites[sEggHatchData->pokeSpriteID].pos2.y = gUnknown_82349CC[species].field_1;
+ gSprites[sEggHatchData->pokeSpriteID].pos2.y = gMonFrontPicCoords[species].field_1;
}
else
{
diff --git a/sym_ewram.txt b/sym_ewram.txt
index c503ab553..71b832e87 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -675,10 +675,7 @@ gAnimBattlerSpecies: @ 2037F1C
gUnknown_2037F24: @ 2037F24
.space 0x4
-gUnknown_2037F28: @ 2037F28
- .space 0x8
-
- .align 2
+ .include "src/battle_anim_mons.o"
.include "src/title_screen.o"
.align 2