summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_anim.s36
-rw-r--r--asm/battle_anim_effects_1.s66
-rw-r--r--asm/battle_anim_effects_2.s62
-rw-r--r--asm/battle_anim_effects_3.s68
-rw-r--r--asm/battle_anim_mons.s76
-rw-r--r--asm/battle_anim_sound_tasks.s4
-rw-r--r--asm/battle_anim_special.s16
-rw-r--r--asm/battle_anim_status_effects.s2
-rw-r--r--asm/battle_anim_utility_funcs.s40
-rw-r--r--asm/battle_controller_link_opponent.s8
-rw-r--r--asm/battle_controller_link_partner.s8
-rw-r--r--asm/battle_controller_oak.s8
-rw-r--r--asm/battle_controller_opponent.s8
-rw-r--r--asm/battle_controller_player.s10
-rw-r--r--asm/battle_controller_pokedude.s8
-rw-r--r--asm/bug.s10
-rw-r--r--asm/dark.s22
-rw-r--r--asm/electric.s8
-rw-r--r--asm/fighting.s6
-rw-r--r--asm/fire.s8
-rw-r--r--asm/flying.s14
-rw-r--r--asm/ghost.s14
-rw-r--r--asm/ground.s10
-rw-r--r--asm/ice.s22
-rw-r--r--asm/normal.s2
-rw-r--r--asm/poison.s2
-rw-r--r--asm/psychic.s38
-rw-r--r--asm/rock.s12
-rw-r--r--asm/water.s14
-rw-r--r--include/battle_anim.h88
-rw-r--r--src/battle_anim_mon_movement.c366
-rw-r--r--sym_ewram.txt4
32 files changed, 608 insertions, 452 deletions
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index 9aa80db64..4a8c6d51c 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -23,9 +23,9 @@ ClearBattleAnimationVars: @ 80724C0
ldr r0, _08072564 @ =gAnimDisableStructPtr
movs r1, 0
str r1, [r0]
- ldr r0, _08072568 @ =gUnknown_2037EE8
+ ldr r0, _08072568 @ =gAnimMoveDmg
str r1, [r0]
- ldr r0, _0807256C @ =gUnknown_2037EEC
+ ldr r0, _0807256C @ =gAnimMovePower
movs r2, 0
strh r1, [r0]
ldr r0, _08072570 @ =gUnknown_2037EFE
@@ -89,8 +89,8 @@ _08072558: .4byte gUnknown_2037EE1
_0807255C: .4byte gUnknown_2037EE2
_08072560: .4byte gUnknown_2037EE3
_08072564: .4byte gAnimDisableStructPtr
-_08072568: .4byte gUnknown_2037EE8
-_0807256C: .4byte gUnknown_2037EEC
+_08072568: .4byte gAnimMoveDmg
+_0807256C: .4byte gAnimMovePower
_08072570: .4byte gUnknown_2037EFE
_08072574: .4byte gUnknown_2037F14
_08072578: .4byte gAnimMoveTurn
@@ -989,7 +989,7 @@ _08072C60:
_08072C62:
ldrb r5, [r0]
adds r0, r5, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08072D12
@@ -1073,7 +1073,7 @@ _08072D12:
cmp r6, 0x1
bls _08072DCE
adds r0, r5, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08072DCE
@@ -1169,8 +1169,8 @@ _08072DE8: .4byte gUnknown_2037F14
_08072DEC: .4byte gUnknown_2037ED4
thumb_func_end sub_8072C30
- thumb_func_start sub_8072DF0
-sub_8072DF0: @ 8072DF0
+ thumb_func_start IsBattlerSpriteVisible
+IsBattlerSpriteVisible: @ 8072DF0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -1215,7 +1215,7 @@ _08072E42:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_8072DF0
+ thumb_func_end IsBattlerSpriteVisible
thumb_func_start sub_8072E48
sub_8072E48: @ 8072E48
@@ -1897,7 +1897,7 @@ _080733CC:
_080733CE:
ldrb r4, [r0]
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08073416
@@ -1935,7 +1935,7 @@ _08073416:
cmp r5, 0x1
bls _08073464
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08073464
@@ -2016,7 +2016,7 @@ _080734B4:
_080734B6:
ldrb r6, [r0]
adds r0, r6, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080734E0
@@ -2041,7 +2041,7 @@ _080734E0:
adds r4, r6, 0
eors r4, r0
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08073520
@@ -2127,7 +2127,7 @@ sub_8073558: @ 8073558
movs r7, 0
_08073598:
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080735AA
@@ -2141,7 +2141,7 @@ _080735AA:
movs r0, 0x2
eors r6, r0
adds r0, r6, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080735CC
@@ -2397,11 +2397,11 @@ ScriptCmd_jump: @ 8073764
_08073784: .4byte gUnknown_2037ED4
thumb_func_end ScriptCmd_jump
- thumb_func_start sub_8073788
-sub_8073788: @ 8073788
+ thumb_func_start IsContest
+IsContest: @ 8073788
movs r0, 0
bx lr
- thumb_func_end sub_8073788
+ thumb_func_end IsContest
thumb_func_start sub_807378C
sub_807378C: @ 807378C
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
index 18289e193..0d12c15d0 100644
--- a/asm/battle_anim_effects_1.s
+++ b/asm/battle_anim_effects_1.s
@@ -756,7 +756,7 @@ sub_80A28C4: @ 80A28C4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A28DE
@@ -1320,7 +1320,7 @@ _080A2D08:
sub_80A2D10: @ 80A2D10
push {r4,lr}
adds r4, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A2D3C
@@ -1608,7 +1608,7 @@ _080A2F38: .4byte gSprites
_080A2F3C:
adds r0, r2, 0
movs r1, 0x1
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldr r1, _080A2F68 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1680,7 +1680,7 @@ _080A2FBE:
adds r0, r6, 0
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
adds r0, r6, 0
bl sub_8076440
ldrh r0, [r4, 0xA]
@@ -1730,7 +1730,7 @@ sub_80A3004: @ 80A3004
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r1, _080A305C @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -2512,7 +2512,7 @@ _080A3638:
adds r0, r6, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A3650
@@ -2712,7 +2712,7 @@ sub_80A37BC: @ 80A37BC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080A3850
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A37E4
@@ -2908,7 +2908,7 @@ _080A3910:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A395E
@@ -4224,7 +4224,7 @@ _080A4318:
bl sub_8075B30
lsls r0, 16
lsrs r4, r0, 16
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A437A
@@ -4557,7 +4557,7 @@ _080A45C8:
mov r8, r2
mov r1, r8
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A463E
@@ -4959,7 +4959,7 @@ _080A48E8:
sub_80A48F0: @ 80A48F0
push {r4-r6,lr}
adds r5, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A4906
@@ -4991,7 +4991,7 @@ _080A4906:
lsls r0, 24
cmp r0, 0
beq _080A4944
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A496C
@@ -5558,7 +5558,7 @@ _080A4D7A:
movs r1, 0x2
adds r0, r6, 0
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A4DC4
@@ -6388,7 +6388,7 @@ _080A53B6:
ldr r1, _080A53E0 @ =sub_80A53E8
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A53E4 @ =sub_8074DC4
+ ldr r0, _080A53E4 @ =TranslateMonSpriteLinear
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -6397,7 +6397,7 @@ _080A53B6:
_080A53D8: .4byte gBattleAnimAttacker
_080A53DC: .4byte gBattlerSpriteIds
_080A53E0: .4byte sub_80A53E8
-_080A53E4: .4byte sub_8074DC4
+_080A53E4: .4byte TranslateMonSpriteLinear
thumb_func_end sub_80A5398
thumb_func_start sub_80A53E8
@@ -6415,7 +6415,7 @@ sub_80A53E8: @ 80A53E8
ldrb r0, [r0]
strh r0, [r5, 0x34]
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
@@ -6443,7 +6443,7 @@ _080A5424:
lsls r2, 1
ldrh r3, [r5, 0x38]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
@@ -6498,7 +6498,7 @@ _080A5492:
ldr r1, _080A54BC @ =sub_80A5584
adds r0, r4, 0
bl StoreSpriteCallbackInData6
- ldr r0, _080A54C0 @ =sub_8074DC4
+ ldr r0, _080A54C0 @ =TranslateMonSpriteLinear
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@@ -6507,7 +6507,7 @@ _080A5492:
_080A54B4: .4byte gBattleAnimAttacker
_080A54B8: .4byte gBattlerSpriteIds
_080A54BC: .4byte sub_80A5584
-_080A54C0: .4byte sub_8074DC4
+_080A54C0: .4byte TranslateMonSpriteLinear
thumb_func_end sub_80A5474
thumb_func_start sub_80A54C4
@@ -6585,7 +6585,7 @@ _080A5538:
lsls r2, 1
ldrh r3, [r5, 0x38]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
@@ -6600,7 +6600,7 @@ _080A5538:
ldrh r0, [r5, 0x34]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r0, _080A5580 @ =sub_80A5584
str r0, [r5, 0x1C]
_080A5578:
@@ -6674,7 +6674,7 @@ _080A55E4:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
@@ -6690,7 +6690,7 @@ _080A55FA:
lsls r2, 1
ldrh r3, [r4, 0x38]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
@@ -6728,7 +6728,7 @@ _080A564C:
lsls r2, 1
ldrh r3, [r4, 0x38]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
@@ -6743,7 +6743,7 @@ _080A564C:
ldrh r0, [r4, 0x32]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r4, 0
bl DestroyAnimSprite
_080A568E:
@@ -6888,7 +6888,7 @@ _080A5792:
strh r1, [r4, 0x12]
ldrb r0, [r4, 0x8]
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
b _080A58A8
_080A579E:
movs r3, 0xE
@@ -6904,7 +6904,7 @@ _080A579E:
lsls r2, 1
ldrh r3, [r4, 0x10]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
bl sub_80759DC
b _080A58D4
@@ -7095,7 +7095,7 @@ sub_80A58EC: @ 80A58EC
lsls r2, 1
ldrh r3, [r4, 0x10]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
bl sub_80759DC
ldrh r0, [r4, 0xE]
@@ -7106,7 +7106,7 @@ sub_80A58EC: @ 80A58EC
_080A5928: .4byte gTasks
_080A592C:
ldrb r0, [r4, 0x8]
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r5, 0
bl DestroyAnimVisualTask
_080A5938:
@@ -7559,7 +7559,7 @@ sub_80A5C68: @ 80A5C68
ldrh r5, [r5, 0x2]
adds r0, r5
strh r0, [r6, 0x22]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5CAC
@@ -7863,7 +7863,7 @@ _080A5EDC: .4byte gBattlersCount
sub_80A5EE0: @ 80A5EE0
push {r4,lr}
adds r4, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A5EF6
@@ -8350,7 +8350,7 @@ _080A6262:
ldrh r1, [r5, 0x20]
strh r1, [r5, 0x3A]
strh r0, [r5, 0x3C]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A62D4
@@ -8934,7 +8934,7 @@ _080A6710:
strh r1, [r5, 0x32]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x34]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A6734
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
index 34bb0db27..a2a1a6731 100644
--- a/asm/battle_anim_effects_2.s
+++ b/asm/battle_anim_effects_2.s
@@ -329,7 +329,7 @@ sub_80A70A0: @ 80A70A0
adds r0, r1
ldrb r0, [r0]
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldr r1, _080A70D4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -389,7 +389,7 @@ _080A7126:
lsls r2, 1
adds r0, r4, 0
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldr r1, _080A7158 @ =gTasks
adds r0, r6, r5
lsls r0, 3
@@ -458,7 +458,7 @@ _080A71AA:
cmp r0, 0x2
bne _080A71CC
adds r0, r4, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r5, 0
bl DestroyAnimVisualTask
b _080A71D0
@@ -604,7 +604,7 @@ sub_80A72C8: @ 80A72C8
push {r7}
sub sp, 0x4
adds r5, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A72EC
@@ -677,7 +677,7 @@ _080A730E:
lsls r1, 24
adds r0, r1
lsrs r4, r0, 16
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A7380
@@ -1158,7 +1158,7 @@ sub_80A76F0: @ 80A76F0
mov r4, sp
adds r4, 0x2
strh r1, [r4]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
mov r10, r4
cmp r0, 0
@@ -1268,7 +1268,7 @@ _080A77B6:
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7820
@@ -2258,12 +2258,12 @@ sub_80A7FB0: @ 80A7FB0
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
adds r0, r4, 0
movs r1, 0xD0
movs r2, 0xD0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldr r1, _080A8008 @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -2317,7 +2317,7 @@ sub_80A8014: @ 80A8014
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r1, _080A8070 @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -2356,7 +2356,7 @@ sub_80A8074: @ 80A8074
movs r5, 0
strh r0, [r4, 0x8]
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
strh r5, [r4, 0xA]
strh r5, [r4, 0xC]
strh r5, [r4, 0xE]
@@ -2439,7 +2439,7 @@ _080A8128:
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
bl sub_8076440
movs r2, 0xC
@@ -2471,7 +2471,7 @@ _080A816E:
ldrb r0, [r4, 0x8]
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
bl sub_8076440
movs r0, 0x2
@@ -2502,7 +2502,7 @@ _080A81A4:
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r0, [r4, 0x8]
bl sub_8076440
movs r2, 0xC
@@ -2519,7 +2519,7 @@ _080A81D0:
b _080A81F6
_080A81D8:
ldrb r0, [r4, 0x8]
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r2, _080A81FC @ =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
@@ -2631,7 +2631,7 @@ _080A8244:
ldrsh r2, [r7, r1]
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r0, [r4, 0x1]
movs r3, 0x4
negs r3, r3
@@ -3856,7 +3856,7 @@ _080A8BF2:
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A8C6A
@@ -4008,7 +4008,7 @@ _080A8D10:
mov r4, r8
eors r4, r0
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A8D5C
@@ -4040,7 +4040,7 @@ _080A8D6C:
lsls r0, 16
lsrs r0, 16
mov r9, r0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A8DE4
@@ -4048,7 +4048,7 @@ _080A8D6C:
adds r4, r7, 0
eors r4, r0
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A8DE4
@@ -4112,14 +4112,14 @@ _080A8DFA:
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A8E4C
movs r1, 0x2
mov r0, r8
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A8E4C
@@ -5509,7 +5509,7 @@ sub_80A98B0: @ 80A98B0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
- bl sub_8073788
+ bl IsContest
lsls r0, 24
movs r6, 0xF0
cmp r0, 0
@@ -6057,7 +6057,7 @@ sub_80A9CE8: @ 80A9CE8
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A9D2A
@@ -6095,7 +6095,7 @@ _080A9D2A:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A9D88
@@ -6265,7 +6265,7 @@ _080A9EAE:
.align 2, 0
_080A9ED0: .4byte gTasks
_080A9ED4:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A9EE8
@@ -6314,7 +6314,7 @@ sub_80A9F10: @ 80A9F10
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080A9F52
@@ -6336,7 +6336,7 @@ _080A9F52:
bl SetGpuReg
mov r0, sp
bl sub_80752A0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A9F98
@@ -6383,7 +6383,7 @@ _080A9FC6:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080A9FFA
@@ -6548,7 +6548,7 @@ _080AA112:
adds r0, 0x1
strh r0, [r1, 0x20]
_080AA134:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AA148
@@ -7847,7 +7847,7 @@ sub_80AAAE4: @ 80AAAE4
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080AAB30
diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s
index 74f6ef9fc..de012070d 100644
--- a/asm/battle_anim_effects_3.s
+++ b/asm/battle_anim_effects_3.s
@@ -243,7 +243,7 @@ sub_80DE440: @ 80DE440
lsls r1, 23
adds r0, r1
lsrs r4, r0, 16
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DE49E
@@ -957,7 +957,7 @@ sub_80DE9D8: @ 80DE9D8
ldrsh r1, [r5, r2]
adds r0, r4, 0
bl sub_8074FF8
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DEA2C
@@ -1093,7 +1093,7 @@ sub_80DEAF0: @ 80DEAF0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080DEB04 @ =gUnknown_2037EE8
+ ldr r0, _080DEB04 @ =gAnimMoveDmg
ldr r0, [r0]
cmp r0, 0
ble _080DEB0C
@@ -1101,7 +1101,7 @@ sub_80DEAF0: @ 80DEAF0
movs r0, 0
b _080DEB10
.align 2, 0
-_080DEB04: .4byte gUnknown_2037EE8
+_080DEB04: .4byte gAnimMoveDmg
_080DEB08: .4byte gBattleAnimArgs
_080DEB0C:
ldr r1, _080DEB1C @ =gBattleAnimArgs
@@ -1474,7 +1474,7 @@ sub_80DEDD8: @ 80DEDD8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DEE2C
@@ -1551,7 +1551,7 @@ sub_80DEE78: @ 80DEE78
strh r1, [r0]
ldr r0, _080DEEB8 @ =gUnknown_202298A
strh r1, [r0]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DEEA4
@@ -2503,7 +2503,7 @@ _080DF5AA:
strh r0, [r5, 0x22]
adds r0, r6, 0
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
movs r0, 0x80
lsls r0, 1
strh r0, [r5, 0x30]
@@ -2524,7 +2524,7 @@ _080DF5E0:
ldrsh r2, [r5, r0]
adds r0, r6, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
@@ -2548,7 +2548,7 @@ _080DF610:
ldrsh r2, [r5, r0]
adds r0, r6, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r5, 0x34]
adds r0, 0x1
strh r0, [r5, 0x34]
@@ -2569,7 +2569,7 @@ _080DF610:
orrs r1, r2
strb r1, [r0]
adds r0, r6, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
_080DF658:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
@@ -3144,7 +3144,7 @@ _080DFA86:
ldrb r1, [r6]
mov r0, sp
bl sub_8075300
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DFABC
@@ -3252,7 +3252,7 @@ _080DFB80:
movs r2, 0
bl SetAnimBgAttribute
_080DFB8A:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DFBC8
@@ -3397,7 +3397,7 @@ _080DFC94:
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DFCCE
@@ -3424,7 +3424,7 @@ _080DFCCE:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DFD30
@@ -3616,7 +3616,7 @@ _080DFE7E:
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_8075358
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DFEA0
@@ -4039,7 +4039,7 @@ _080E01C4:
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E01FC
@@ -4066,7 +4066,7 @@ _080E01FC:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E0264
@@ -4319,7 +4319,7 @@ _080E042A:
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_8075358
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E044C
@@ -4557,7 +4557,7 @@ _080E0608:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldr r0, _080E0624 @ =sub_80E0628
str r0, [r4]
_080E0618:
@@ -4621,7 +4621,7 @@ _080E065C:
lsls r2, 1
ldrh r3, [r4, 0xC]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -4662,7 +4662,7 @@ _080E06B0:
lsls r2, 1
ldrh r3, [r4, 0xC]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -4706,7 +4706,7 @@ _080E0708:
lsls r2, 1
ldrh r3, [r4, 0xC]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -4741,7 +4741,7 @@ _080E0778:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r5, 0
bl DestroyAnimVisualTask
_080E0788:
@@ -4879,7 +4879,7 @@ sub_80E0850: @ 80E0850
lsrs r0, 24
strh r0, [r4, 0x26]
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldr r0, _080E08A0 @ =sub_80E08A4
str r0, [r4]
pop {r4}
@@ -5028,7 +5028,7 @@ _080E09A8:
ldrh r0, [r7, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r4, 0
bl DestroyAnimVisualTask
b _080E0A30
@@ -5040,7 +5040,7 @@ _080E09BA:
lsls r2, 1
ldrh r3, [r7, 0xC]
adds r1, r2, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r7, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -5248,7 +5248,7 @@ _080E0B3E:
strh r5, [r6, 0x1C]
adds r0, r5, 0
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
mov r2, r8
movs r3, 0x2
ldrsh r0, [r2, r3]
@@ -5274,7 +5274,7 @@ _080E0B88:
adds r0, r5, 0
movs r1, 0xE0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
adds r0, r5, 0
bl sub_8076440
lsls r2, r5, 4
@@ -5293,10 +5293,10 @@ _080E0BAA:
_080E0BB2:
adds r0, r5, 0
movs r1, 0xD0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
adds r0, r5, 0
bl sub_8076440
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E0BD8
@@ -5361,7 +5361,7 @@ _080E0C30:
cmp r0, 0xD
bne _080E0C58
adds r0, r5, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r1, _080E0C64 @ =gSprites
lsls r0, r5, 4
adds r0, r5
@@ -10378,7 +10378,7 @@ sub_80E3294: @ 80E3294
bne _080E32DC
adds r0, r5, 0
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0xA]
@@ -10401,7 +10401,7 @@ _080E32DC:
ldrsh r2, [r4, r0]
adds r0, r5, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
@@ -10412,7 +10412,7 @@ _080E32DC:
movs r0, 0
strh r0, [r4, 0xE]
adds r0, r5, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r1, _080E3330 @ =gSprites
lsls r0, r5, 4
adds r0, r5
diff --git a/asm/battle_anim_mons.s b/asm/battle_anim_mons.s
index aded063d4..b971694e3 100644
--- a/asm/battle_anim_mons.s
+++ b/asm/battle_anim_mons.s
@@ -745,7 +745,7 @@ _08074A1C:
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08074A4A
@@ -757,7 +757,7 @@ _08074A38:
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08074A54
@@ -1265,8 +1265,8 @@ _08074DBC: .4byte gBattleAnimTarget
_08074DC0: .4byte sub_8074C64
thumb_func_end sub_8074D80
- thumb_func_start sub_8074DC4
-sub_8074DC4: @ 8074DC4
+ thumb_func_start TranslateMonSpriteLinear
+TranslateMonSpriteLinear: @ 8074DC4
push {r4,lr}
adds r3, r0, 0
ldrh r1, [r3, 0x2E]
@@ -1307,10 +1307,10 @@ _08074E0E:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8074DC4
+ thumb_func_end TranslateMonSpriteLinear
- thumb_func_start sub_8074E14
-sub_8074E14: @ 8074E14
+ thumb_func_start TranslateMonSpriteLinearFixedPoint
+TranslateMonSpriteLinearFixedPoint: @ 8074E14
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
@@ -1358,7 +1358,7 @@ _08074E6A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8074E14
+ thumb_func_end TranslateMonSpriteLinearFixedPoint
thumb_func_start sub_8074E70
sub_8074E70: @ 8074E70
@@ -2219,7 +2219,7 @@ sub_8075490: @ 8075490
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
- bl sub_80754B8
+ bl InitSpriteDataForLinearTranslation
ldr r1, _080754B4 @ =sub_8074D3C
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -2231,8 +2231,8 @@ sub_8075490: @ 8075490
_080754B4: .4byte sub_8074D3C
thumb_func_end sub_8075490
- thumb_func_start sub_80754B8
-sub_80754B8: @ 80754B8
+ thumb_func_start InitSpriteDataForLinearTranslation
+InitSpriteDataForLinearTranslation: @ 80754B8
push {r4-r6,lr}
adds r5, r0, 0
ldrh r0, [r5, 0x32]
@@ -2262,7 +2262,7 @@ sub_80754B8: @ 80754B8
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_80754B8
+ 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
@@ -2745,8 +2745,8 @@ sub_8075830: @ 8075830
_08075854: .4byte sub_80757E8
thumb_func_end sub_8075830
- thumb_func_start obj_id_set_rotscale
-obj_id_set_rotscale: @ 8075858
+ thumb_func_start SetSpriteRotScale
+SetSpriteRotScale: @ 8075858
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
@@ -2810,7 +2810,7 @@ _08075894:
_080758D0: .4byte 0xffff0000
_080758D4: .4byte gSprites
_080758D8: .4byte gOamMatrices
- thumb_func_end obj_id_set_rotscale
+ thumb_func_end SetSpriteRotScale
thumb_func_start sub_80758DC
sub_80758DC: @ 80758DC
@@ -2818,8 +2818,8 @@ sub_80758DC: @ 80758DC
bx lr
thumb_func_end sub_80758DC
- thumb_func_start sub_80758E0
-sub_80758E0: @ 80758E0
+ thumb_func_start PrepareBattlerSpriteForRotScale
+PrepareBattlerSpriteForRotScale: @ 80758E0
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
@@ -2834,7 +2834,7 @@ sub_80758E0: @ 80758E0
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075914
@@ -2899,10 +2899,10 @@ _0807595C:
.align 2, 0
_08075978: .4byte gSprites
_0807597C: .4byte gUnknown_2024018
- thumb_func_end sub_80758E0
+ thumb_func_end PrepareBattlerSpriteForRotScale
- thumb_func_start sub_8075980
-sub_8075980: @ 8075980
+ thumb_func_start ResetSpriteRotScale
+ResetSpriteRotScale: @ 8075980
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2912,7 +2912,7 @@ sub_8075980: @ 8075980
adds r0, r4, 0
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldr r1, _080759D8 @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -2946,7 +2946,7 @@ sub_8075980: @ 8075980
bx r0
.align 2, 0
_080759D8: .4byte gSprites
- thumb_func_end sub_8075980
+ thumb_func_end ResetSpriteRotScale
thumb_func_start sub_80759DC
sub_80759DC: @ 80759DC
@@ -3276,7 +3276,7 @@ _08075C40:
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075C64
@@ -3294,7 +3294,7 @@ _08075C64:
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075C88
@@ -3349,7 +3349,7 @@ sub_8075CB8: @ 8075CB8
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075CF2
@@ -3367,7 +3367,7 @@ _08075CF2:
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075D1E
@@ -3387,7 +3387,7 @@ _08075D1E:
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075D4A
@@ -3407,7 +3407,7 @@ _08075D4A:
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08075D76
@@ -4155,7 +4155,7 @@ sub_80762D0: @ 80762D0
bl sub_80765C0
adds r0, r4, 0
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
pop {r4}
pop {r0}
bx r0
@@ -4223,7 +4223,7 @@ _08076356:
movs r3, 0x1E
ldrsh r2, [r4, r3]
ldrh r3, [r4, 0x20]
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -4309,7 +4309,7 @@ _08076410:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
movs r0, 0
b _08076438
.align 2, 0
@@ -4633,7 +4633,7 @@ _08076672:
movs r3, 0x1C
ldrsh r2, [r4, r3]
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
movs r0, 0x18
ldrsh r3, [r4, r0]
cmp r3, 0
@@ -4701,7 +4701,7 @@ sub_80766EC: @ 80766EC
adds r7, r4, 0
ldr r6, _080767E0 @ =gBattleAnimTarget
ldrb r0, [r6]
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0807672C
@@ -4728,7 +4728,7 @@ _0807672C:
ldr r0, _080767EC @ =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08076764
@@ -4756,7 +4756,7 @@ _08076764:
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0807679C
@@ -4784,7 +4784,7 @@ _0807679C:
mov r1, r8
ldrb r0, [r1]
eors r0, r5
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080767D4
@@ -4834,7 +4834,7 @@ _080767FE:
lsls r0, r5, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08076840
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
index 954878daa..dc5517ca0 100644
--- a/asm/battle_anim_sound_tasks.s
+++ b/asm/battle_anim_sound_tasks.s
@@ -363,7 +363,7 @@ _080DD0BE:
bne _080DD0E8
_080DD0CC:
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080DD0E8
@@ -475,7 +475,7 @@ _080DD19A:
bne _080DD1C4
_080DD1A8:
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080DD1C4
diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s
index 02a1216c6..8d5d5a6b4 100644
--- a/asm/battle_anim_special.s
+++ b/asm/battle_anim_special.s
@@ -347,7 +347,7 @@ _080EEE9C:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080EEF00
@@ -839,7 +839,7 @@ _080EF2D0:
_080EF2D6:
adds r0, r5, 0
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x1C]
@@ -853,7 +853,7 @@ _080EF2E6:
adds r0, r5, 0
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
adds r0, r5, 0
bl sub_8076440
movs r0, 0x1C
@@ -870,7 +870,7 @@ _080EF30A:
_080EF314: .4byte 0x000002cf
_080EF318:
adds r0, r5, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r1, _080EF340 @ =gSprites
lsls r0, r5, 4
adds r0, r5
@@ -1781,7 +1781,7 @@ _080EFA5C:
_080EFA62:
adds r0, r4, 0
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
movs r0, 0x80
lsls r0, 1
strh r0, [r5, 0x1C]
@@ -1824,7 +1824,7 @@ _080EFAB4:
adds r0, r4, 0
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r5, 0xC]
ldrh r1, [r5, 0xE]
adds r0, r1
@@ -1850,7 +1850,7 @@ _080EFAF0: .4byte gSprites
_080EFAF4: .4byte 0x0000047f
_080EFAF8:
adds r0, r4, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
ldr r1, _080EFB1C @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -5487,7 +5487,7 @@ sub_80F1720: @ 80F1720
bl GetMonData
adds r4, r0, 0
adds r0, r6, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080F17F8
diff --git a/asm/battle_anim_status_effects.s b/asm/battle_anim_status_effects.s
index b1da74298..783b39a2e 100644
--- a/asm/battle_anim_status_effects.s
+++ b/asm/battle_anim_status_effects.s
@@ -358,7 +358,7 @@ sub_80783FC: @ 80783FC
ldr r1, _080784B4 @ =0xffdc0000
adds r0, r1
lsrs r4, r0, 16
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _0807843A
diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s
index d33f51842..48cde2fa8 100644
--- a/asm/battle_anim_utility_funcs.s
+++ b/asm/battle_anim_utility_funcs.s
@@ -137,7 +137,7 @@ _080BA8EA:
cmp r4, r0
beq _080BA914
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080BA914
@@ -707,7 +707,7 @@ sub_80BACEC: @ 80BACEC
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BAD7A
@@ -726,7 +726,7 @@ _080BAD7A:
lsls r0, 24
cmp r0, 0
beq _080BADFE
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BADFE
@@ -746,7 +746,7 @@ _080BADAA:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -844,7 +844,7 @@ _080BAE5C:
ldrb r0, [r0, 0x9]
ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap
bl sub_807543C
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080BAEAC
@@ -967,7 +967,7 @@ sub_80BAF38: @ 80BAF38
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BAFCA
@@ -1134,7 +1134,7 @@ _080BB0FA:
movs r1, 0x2
eors r0, r1
strb r0, [r2, 0x1]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BB12A
@@ -1144,7 +1144,7 @@ _080BB0FA:
cmp r0, 0
beq _080BB130
ldrb r0, [r1, 0x1]
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080BB130
@@ -1183,7 +1183,7 @@ _080BB130:
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BB18E
@@ -1217,7 +1217,7 @@ _080BB18E:
_080BB1C0:
ldr r0, [r4]
ldrb r0, [r0, 0x1]
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
@@ -1369,7 +1369,7 @@ _080BB30C:
ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
bl sub_807543C
_080BB316:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080BB32E
@@ -1692,7 +1692,7 @@ _080BB582:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BB5B2
@@ -2234,7 +2234,7 @@ _080BB9BA:
beq _080BB9F8
lsls r0, r4, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080BB9F8
@@ -2313,7 +2313,7 @@ sub_80BBA20: @ 80BBA20
movs r0, 0x2
adds r6, r7, 0
eors r6, r0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BBA82
@@ -2321,7 +2321,7 @@ sub_80BBA20: @ 80BBA20
cmp r1, 0
beq _080BBA86
adds r0, r6, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080BBA86
@@ -2370,7 +2370,7 @@ _080BBA86:
movs r1, 0x20
orrs r0, r1
strb r0, [r2]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BBAFC
@@ -2446,7 +2446,7 @@ _080BBB80:
ldrb r0, [r0, 0x9]
ldr r1, [sp, 0x58]
bl sub_807543C
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080BBBA8
@@ -2669,7 +2669,7 @@ _080BBD00:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BBD7E
@@ -3044,7 +3044,7 @@ sub_80BC02C: @ 80BC02C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8073788
+ bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -3173,7 +3173,7 @@ sub_80BC12C: @ 80BC12C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080BC144
diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s
index 873fa088c..50d0b4caf 100644
--- a/asm/battle_controller_link_opponent.s
+++ b/asm/battle_controller_link_opponent.s
@@ -4639,7 +4639,7 @@ _0803CCA6:
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, _0803CD84 @ =gUnknown_2037EEC
+ ldr r4, _0803CD84 @ =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4653,7 +4653,7 @@ _0803CCA6:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, _0803CD88 @ =gUnknown_2037EE8
+ ldr r4, _0803CD88 @ =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4726,8 +4726,8 @@ _0803CCA6:
_0803CD78: .4byte gActiveBattler
_0803CD7C: .4byte gUnknown_2022BC4
_0803CD80: .4byte gAnimMoveTurn
-_0803CD84: .4byte gUnknown_2037EEC
-_0803CD88: .4byte gUnknown_2037EE8
+_0803CD84: .4byte gAnimMovePower
+_0803CD88: .4byte gAnimMoveDmg
_0803CD8C: .4byte gUnknown_2037EFE
_0803CD90: .4byte gUnknown_2037F00
_0803CD94: .4byte gAnimDisableStructPtr
diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s
index 8da94bdce..c0409ce57 100644
--- a/asm/battle_controller_link_partner.s
+++ b/asm/battle_controller_link_partner.s
@@ -4260,7 +4260,7 @@ _080D6522:
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, _080D6600 @ =gUnknown_2037EEC
+ ldr r4, _080D6600 @ =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4274,7 +4274,7 @@ _080D6522:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, _080D6604 @ =gUnknown_2037EE8
+ ldr r4, _080D6604 @ =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4347,8 +4347,8 @@ _080D6522:
_080D65F4: .4byte gActiveBattler
_080D65F8: .4byte gUnknown_2022BC4
_080D65FC: .4byte gAnimMoveTurn
-_080D6600: .4byte gUnknown_2037EEC
-_080D6604: .4byte gUnknown_2037EE8
+_080D6600: .4byte gAnimMovePower
+_080D6604: .4byte gAnimMoveDmg
_080D6608: .4byte gUnknown_2037EFE
_080D660C: .4byte gUnknown_2037F00
_080D6610: .4byte gAnimDisableStructPtr
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 9f878733e..df31ccd92 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -5489,7 +5489,7 @@ sub_80EA2B8: @ 80EA2B8
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, _080EA398 @ =gUnknown_2037EEC
+ ldr r4, _080EA398 @ =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -5503,7 +5503,7 @@ sub_80EA2B8: @ 80EA2B8
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, _080EA39C @ =gUnknown_2037EE8
+ ldr r4, _080EA39C @ =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -5576,8 +5576,8 @@ sub_80EA2B8: @ 80EA2B8
_080EA38C: .4byte gUnknown_2022BC4
_080EA390: .4byte gActiveBattler
_080EA394: .4byte gAnimMoveTurn
-_080EA398: .4byte gUnknown_2037EEC
-_080EA39C: .4byte gUnknown_2037EE8
+_080EA398: .4byte gAnimMovePower
+_080EA39C: .4byte gAnimMoveDmg
_080EA3A0: .4byte gUnknown_2037EFE
_080EA3A4: .4byte gUnknown_2037F00
_080EA3A8: .4byte gAnimDisableStructPtr
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index 0c94035ee..0618be95f 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -4800,7 +4800,7 @@ _08038212:
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, _080382F0 @ =gUnknown_2037EEC
+ ldr r4, _080382F0 @ =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4814,7 +4814,7 @@ _08038212:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, _080382F4 @ =gUnknown_2037EE8
+ ldr r4, _080382F4 @ =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4887,8 +4887,8 @@ _08038212:
_080382E4: .4byte gActiveBattler
_080382E8: .4byte gUnknown_2022BC4
_080382EC: .4byte gAnimMoveTurn
-_080382F0: .4byte gUnknown_2037EEC
-_080382F4: .4byte gUnknown_2037EE8
+_080382F0: .4byte gAnimMovePower
+_080382F4: .4byte gAnimMoveDmg
_080382F8: .4byte gUnknown_2037EFE
_080382FC: .4byte gUnknown_2037F00
_08038300: .4byte gAnimDisableStructPtr
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index e3db6d88e..197816465 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -3956,7 +3956,7 @@ sub_8030350: @ 8030350
ldrsh r6, [r4, r0]
lsls r0, r6, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8434,7 +8434,7 @@ _08032852:
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, _08032930 @ =gUnknown_2037EEC
+ ldr r4, _08032930 @ =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -8448,7 +8448,7 @@ _08032852:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, _08032934 @ =gUnknown_2037EE8
+ ldr r4, _08032934 @ =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -8521,8 +8521,8 @@ _08032852:
_08032924: .4byte gActiveBattler
_08032928: .4byte gUnknown_2022BC4
_0803292C: .4byte gAnimMoveTurn
-_08032930: .4byte gUnknown_2037EEC
-_08032934: .4byte gUnknown_2037EE8
+_08032930: .4byte gAnimMovePower
+_08032934: .4byte gAnimMoveDmg
_08032938: .4byte gUnknown_2037EFE
_0803293C: .4byte gUnknown_2037F00
_08032940: .4byte gAnimDisableStructPtr
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 23b4a23e8..8f42aa9eb 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -4768,7 +4768,7 @@ sub_8158814: @ 8158814
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, _081588F4 @ =gUnknown_2037EEC
+ ldr r4, _081588F4 @ =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4782,7 +4782,7 @@ sub_8158814: @ 8158814
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, _081588F8 @ =gUnknown_2037EE8
+ ldr r4, _081588F8 @ =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4855,8 +4855,8 @@ sub_8158814: @ 8158814
_081588E8: .4byte gUnknown_2022BC4
_081588EC: .4byte gActiveBattler
_081588F0: .4byte gAnimMoveTurn
-_081588F4: .4byte gUnknown_2037EEC
-_081588F8: .4byte gUnknown_2037EE8
+_081588F4: .4byte gAnimMovePower
+_081588F8: .4byte gAnimMoveDmg
_081588FC: .4byte gUnknown_2037EFE
_08158900: .4byte gUnknown_2037F00
_08158904: .4byte gAnimDisableStructPtr
diff --git a/asm/bug.s b/asm/bug.s
index 6970411d1..1bdc4095c 100644
--- a/asm/bug.s
+++ b/asm/bug.s
@@ -9,7 +9,7 @@
sub_80B3FAC: @ 80B3FAC
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B3FD8
@@ -105,7 +105,7 @@ _080B4078: .4byte DestroyAnimSprite
sub_80B407C: @ 80B407C
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B40A0
@@ -185,7 +185,7 @@ _080B4124: .4byte DestroyAnimSprite
sub_80B4128: @ 80B4128
push {r4,r5,lr}
adds r5, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B4144
@@ -484,7 +484,7 @@ sub_80B4364: @ 80B4364
push {r4-r7,lr}
sub sp, 0x4
adds r7, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B4384
@@ -513,7 +513,7 @@ _080B4384:
negs r0, r0
strh r0, [r1, 0x6]
_080B43A6:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B43F6
diff --git a/asm/dark.s b/asm/dark.s
index a232c19ad..ad0ff597a 100644
--- a/asm/dark.s
+++ b/asm/dark.s
@@ -282,7 +282,7 @@ sub_80B7ACC: @ 80B7ACC
movs r0, 0x7E
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl sub_80754B8
+ bl InitSpriteDataForLinearTranslation
ldrh r0, [r4, 0x30]
negs r0, r0
strh r0, [r4, 0x34]
@@ -701,7 +701,7 @@ _080B7E16:
ldr r0, _080B7E70 @ =0x04000016
str r0, [sp]
movs r7, 0x2
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B7EA8
@@ -728,7 +728,7 @@ _080B7E78:
ldr r0, _080B7F38 @ =0x0400001a
str r0, [sp]
movs r7, 0x4
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B7EA8
@@ -995,7 +995,7 @@ _080B80A0:
.4byte _080B81E8
.4byte _080B8250
_080B80B4:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1685,7 +1685,7 @@ sub_80B85B8: @ 80B85B8
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B8642
@@ -1744,7 +1744,7 @@ sub_80B8664: @ 80B8664
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B86A0
@@ -1827,7 +1827,7 @@ sub_80B86EC: @ 80B86EC
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B8750
@@ -1840,7 +1840,7 @@ _080B8750:
lsls r0, 24
cmp r0, 0
beq _080B87CA
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B87CA
@@ -1860,7 +1860,7 @@ _080B8780:
ldrb r0, [r4]
movs r5, 0x2
eors r0, r5
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2155,7 +2155,7 @@ _080B89FC:
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B8A2E
@@ -2254,7 +2254,7 @@ _080B8AE0:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B8B04
diff --git a/asm/electric.s b/asm/electric.s
index 187e30b6d..ed9e1da1f 100644
--- a/asm/electric.s
+++ b/asm/electric.s
@@ -219,7 +219,7 @@ _080ADD7C:
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080ADD98
@@ -237,7 +237,7 @@ _080ADDA0:
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080ADDC4
@@ -536,7 +536,7 @@ _080ADFFA:
sub_80AE000: @ 80AE000
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AE01C
@@ -609,7 +609,7 @@ _080AE090:
ldr r0, _080AE118 @ =gBattleAnimAttacker
_080AE092:
ldrb r6, [r0]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AE0AA
diff --git a/asm/fighting.s b/asm/fighting.s
index 518927a3c..78b60aac5 100644
--- a/asm/fighting.s
+++ b/asm/fighting.s
@@ -76,7 +76,7 @@ _080B0924: .4byte gBattleAnimAttacker
sub_80B0928: @ 80B0928
push {r4,lr}
adds r4, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B0944
@@ -1379,7 +1379,7 @@ _080B1332:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B136C
@@ -1555,7 +1555,7 @@ _080B14A0:
movs r1, 0
bl sub_8075114
_080B14A8:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B14BC
diff --git a/asm/fire.s b/asm/fire.s
index f4b89300a..ecc1ce493 100644
--- a/asm/fire.s
+++ b/asm/fire.s
@@ -782,7 +782,7 @@ sub_80ACEA4: @ 80ACEA4
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldr r0, _080ACF10 @ =sub_80ACF14
str r0, [r4]
pop {r4,r5}
@@ -1147,7 +1147,7 @@ _080AD1A8:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
strh r5, [r4, 0xC]
_080AD1D4:
ldrh r0, [r4, 0x8]
@@ -1877,7 +1877,7 @@ _080AD70C:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AD7A8
@@ -1999,7 +1999,7 @@ _080AD826:
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
diff --git a/asm/flying.s b/asm/flying.s
index ada0296c8..697138bd8 100644
--- a/asm/flying.s
+++ b/asm/flying.s
@@ -302,7 +302,7 @@ sub_80B1AB8: @ 80B1AB8
negs r0, r0
strh r0, [r1, 0x6]
_080B1AE4:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B1AFC
@@ -720,7 +720,7 @@ _080B1DC8:
lsrs r1, 16
cmp r1, 0x7F
bhi _080B1EBE
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B1E64
@@ -1017,7 +1017,7 @@ _080B2028:
ands r0, r1
cmp r0, 0
beq _080B20E6
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B20B6
@@ -1149,7 +1149,7 @@ _080B211C:
ands r0, r1
cmp r0, 0
beq _080B21DA
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B21AA
@@ -1281,7 +1281,7 @@ _080B2210:
ands r0, r1
cmp r0, 0
beq _080B22CE
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B229E
@@ -1422,7 +1422,7 @@ _080B2318:
ands r0, r1
cmp r0, 0
beq _080B23D6
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B23A6
@@ -1659,7 +1659,7 @@ sub_80B2514: @ 80B2514
strh r0, [r4, 0x32]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x34]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B25C4
diff --git a/asm/ghost.s b/asm/ghost.s
index 2d550e6f7..7ff96f41a 100644
--- a/asm/ghost.s
+++ b/asm/ghost.s
@@ -358,12 +358,12 @@ sub_80B54E8: @ 80B54E8
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
adds r0, r4, 0
movs r1, 0x80
movs r2, 0x80
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldr r1, _080B5560 @ =gSprites
lsls r0, r4, 4
adds r0, r4
@@ -485,11 +485,11 @@ _080B55F0:
adds r0, r1, 0
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
b _080B5634
_080B5618:
adds r0, r1, 0
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r5, 0
bl DestroyAnimVisualTask
movs r0, 0x50
@@ -1818,7 +1818,7 @@ sub_80B6020: @ 80B6020
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B6090
@@ -1840,7 +1840,7 @@ _080B6092:
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B615E
@@ -2253,7 +2253,7 @@ sub_80B63B4: @ 80B63B4
lsls r0, 24
cmp r0, 0
bne _080B63FC
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B6414
diff --git a/asm/ground.s b/asm/ground.s
index 4009c7056..8bfa9d914 100644
--- a/asm/ground.s
+++ b/asm/ground.s
@@ -1224,7 +1224,7 @@ sub_80B94B4: @ 80B94B4
_080B94D8: .4byte gTasks
_080B94DC: .4byte gBattleAnimArgs
_080B94E0:
- ldr r0, _080B950C @ =gUnknown_2037EEC
+ ldr r0, _080B950C @ =gAnimMovePower
ldrh r0, [r0]
movs r1, 0xA
bl __udivsi3
@@ -1247,7 +1247,7 @@ _080B94EC:
ldr r0, _080B9514 @ =sub_80B9584
b _080B9576
.align 2, 0
-_080B950C: .4byte gUnknown_2037EEC
+_080B950C: .4byte gAnimMovePower
_080B9510: .4byte gBattle_BG3_X
_080B9514: .4byte sub_80B9584
_080B9518:
@@ -1257,7 +1257,7 @@ _080B9518:
_080B951E:
lsls r0, r5, 24
lsrs r0, 24
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B9548
@@ -1641,7 +1641,7 @@ sub_80B97D8: @ 80B97D8
lsrs r1, r0, 24
ldr r3, _080B97F8 @ =gBattleAnimArgs
movs r2, 0
- ldr r0, _080B97FC @ =gUnknown_2037EEC
+ ldr r0, _080B97FC @ =gAnimMovePower
ldrh r0, [r0]
cmp r0, 0x63
bls _080B97EC
@@ -1654,7 +1654,7 @@ _080B97EC:
bx r0
.align 2, 0
_080B97F8: .4byte gBattleAnimArgs
-_080B97FC: .4byte gUnknown_2037EEC
+_080B97FC: .4byte gAnimMovePower
thumb_func_end sub_80B97D8
thumb_func_start sub_80B9800
diff --git a/asm/ice.s b/asm/ice.s
index c04715b95..4cf6c714b 100644
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -1393,7 +1393,7 @@ sub_80AFAE4: @ 80AFAE4
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AFB26
@@ -1433,7 +1433,7 @@ _080AFB26:
lsls r1, 4
movs r2, 0x20
bl LoadPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080AFB88
@@ -1619,7 +1619,7 @@ _080AFCD6:
adds r0, 0x1
strh r0, [r1, 0x20]
_080AFCF8:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AFD0C
@@ -1704,7 +1704,7 @@ sub_80AFD80: @ 80AFD80
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AFDC2
@@ -1744,7 +1744,7 @@ _080AFDC2:
lsls r1, 4
movs r2, 0x20
bl LoadPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080AFE24
@@ -1920,7 +1920,7 @@ _080AFF5E:
adds r0, 0x1
strh r0, [r1, 0x20]
_080AFF80:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AFF94
@@ -2111,7 +2111,7 @@ _080B00F8:
ldrh r1, [r5, 0x3C]
orrs r0, r1
strh r0, [r5, 0x3C]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B012C
@@ -2213,7 +2213,7 @@ _080B01AA:
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B0200
@@ -2283,7 +2283,7 @@ _080B0230:
ldrh r1, [r4, 0x26]
adds r0, r1
strh r0, [r4, 0x26]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B02AE
@@ -2361,7 +2361,7 @@ _080B02CE:
strh r0, [r4, 0x34]
adds r0, 0x4
strh r0, [r4, 0x36]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B0328
@@ -2583,7 +2583,7 @@ sub_80B0458: @ 80B0458
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B0544
diff --git a/asm/normal.s b/asm/normal.s
index 165fa150f..4a1e86a4e 100644
--- a/asm/normal.s
+++ b/asm/normal.s
@@ -1733,7 +1733,7 @@ sub_80BA5F8: @ 80BA5F8
lsls r0, 24
cmp r0, 0
beq _080BA61C
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080BA61C
diff --git a/asm/poison.s b/asm/poison.s
index adaa51dbd..1a244e136 100644
--- a/asm/poison.s
+++ b/asm/poison.s
@@ -166,7 +166,7 @@ sub_80B1744: @ 80B1744
adds r0, r1
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl sub_80754B8
+ bl InitSpriteDataForLinearTranslation
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r2, 0x4
diff --git a/asm/psychic.s b/asm/psychic.s
index ef0fc1385..874a35948 100644
--- a/asm/psychic.s
+++ b/asm/psychic.s
@@ -15,7 +15,7 @@ sub_80B2ECC: @ 80B2ECC
lsls r0, 24
cmp r0, 0
beq _080B2EE8
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B2EFE
@@ -32,7 +32,7 @@ _080B2EE8:
movs r0, 0xC8
strb r0, [r1]
_080B2EFE:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B2F5A
@@ -51,7 +51,7 @@ _080B2EFE:
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B2F3C
@@ -63,7 +63,7 @@ _080B2F3C:
adds r4, r0, 0
eors r4, r7
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B2F5A
@@ -73,7 +73,7 @@ _080B2F3C:
adds r1, r5, 0
bl sub_8072E48
_080B2F5A:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B2F90
@@ -128,7 +128,7 @@ _080B2FA6:
adds r0, r4
_080B2FCA:
strh r0, [r6, 0x22]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B2FDC
@@ -271,7 +271,7 @@ sub_80B30B0: @ 80B30B0
negs r1, r1
cmp r0, r1
bne _080B3156
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B3146
@@ -281,7 +281,7 @@ sub_80B30B0: @ 80B30B0
lsrs r4, r0, 24
adds r6, r4, 0
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B3118
@@ -304,7 +304,7 @@ _080B3118:
adds r4, r0, 0
eors r4, r6
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B3146
@@ -345,7 +345,7 @@ _080B3164: .4byte sub_80B3168
sub_80B3168: @ 80B3168
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B31C0
@@ -363,7 +363,7 @@ sub_80B3168: @ 80B3168
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B31A6
@@ -373,7 +373,7 @@ _080B31A6:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl sub_8072DF0
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B31C0
@@ -407,7 +407,7 @@ sub_80B31D0: @ 80B31D0
bne _080B31EA
movs r6, 0x1
_080B31EA:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B3232
@@ -860,7 +860,7 @@ _080B3544:
lsls r1, 1
strh r1, [r0, 0x20]
ldrb r0, [r4, 0x8]
- bl sub_8075980
+ bl ResetSpriteRotScale
adds r0, r5, 0
bl DestroyAnimVisualTask
_080B357A:
@@ -1240,7 +1240,7 @@ sub_80B3834: @ 80B3834
lsls r1, 3
ldr r0, _080B3890 @ =gTasks
adds r5, r1, r0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B38D8
@@ -1860,7 +1860,7 @@ _080B3CD8:
lsls r2, 1
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrb r3, [r4, 0x1]
lsrs r1, r3, 6
ldrb r2, [r4, 0x3]
@@ -1947,7 +1947,7 @@ _080B3DAA:
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -1986,7 +1986,7 @@ _080B3DFC:
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
- bl obj_id_set_rotscale
+ bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
@@ -2063,7 +2063,7 @@ _080B3EA4:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B3ED2
diff --git a/asm/rock.s b/asm/rock.s
index 50687a86e..39f3c7780 100644
--- a/asm/rock.s
+++ b/asm/rock.s
@@ -143,7 +143,7 @@ _080B472E:
adds r2, r0
strh r2, [r5, 0x36]
adds r0, r5, 0
- bl sub_80754B8
+ bl InitSpriteDataForLinearTranslation
strh r4, [r5, 0x34]
strh r4, [r5, 0x36]
ldr r0, _080B4774 @ =sub_8074D00
@@ -262,7 +262,7 @@ do_boulder_dust: @ 80B4810
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B4854
@@ -299,7 +299,7 @@ _080B4854:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080B48B0
@@ -512,7 +512,7 @@ _080B4A4C:
.align 2, 0
_080B4A54: .4byte gTasks
_080B4A58:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080B4A6C
@@ -1413,7 +1413,7 @@ sub_80B5148: @ 80B5148
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080B5180 @ =gUnknown_2037EE8
+ ldr r2, _080B5180 @ =gAnimMoveDmg
ldr r0, [r2]
cmp r0, 0x20
bgt _080B515C
@@ -1441,7 +1441,7 @@ _080B5176:
pop {r0}
bx r0
.align 2, 0
-_080B5180: .4byte gUnknown_2037EE8
+_080B5180: .4byte gAnimMoveDmg
_080B5184: .4byte gBattleAnimArgs
thumb_func_end sub_80B5148
diff --git a/asm/water.s b/asm/water.s
index 5518dd33e..eac5fc3c1 100644
--- a/asm/water.s
+++ b/asm/water.s
@@ -753,7 +753,7 @@ sub_80AB168: @ 80AB168
bl sub_807685C
lsls r0, 24
lsrs r5, r0, 24
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AB1C2
@@ -1036,7 +1036,7 @@ sub_80AB38C: @ 80AB38C
bl SetAnimBgAttribute
mov r0, sp
bl sub_80752A0
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AB418
@@ -1140,7 +1140,7 @@ _080AB476:
lsls r0, 5
strh r0, [r7, 0xA]
strh r0, [r7, 0xC]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -1461,7 +1461,7 @@ _080AB740: .4byte gBattle_BG1_X
_080AB744: .4byte gBattle_BG1_Y
_080AB748: .4byte gTasks
_080AB74C:
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080AB760
@@ -2012,7 +2012,7 @@ sub_80ABB28: @ 80ABB28
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80758E0
+ bl PrepareBattlerSpriteForRotScale
ldr r0, _080ABB80 @ =sub_80ABB84
str r0, [r4]
pop {r4}
@@ -2282,7 +2282,7 @@ _080ABD64:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
- bl sub_8075980
+ bl ResetSpriteRotScale
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
@@ -3047,7 +3047,7 @@ sub_80AC328: @ 80AC328
movs r1, 0x1
_080AC36C:
strh r1, [r5, 0x16]
- bl sub_8073788
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080AC380
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 5929a318e..0406c78a0 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -19,28 +19,28 @@ enum
{
BG_ANIM_SCREEN_SIZE,
BG_ANIM_AREA_OVERFLOW_MODE,
- BG_ANIM2,
- BG_ANIM3,
+ BG_ANIM_MOSAIC,
+ BG_ANIM_CHAR_BASE_BLOCK,
BG_ANIM_PRIORITY,
- BG_ANIM_5,
- BG_ANIM_6
+ BG_ANIM_PALETTES_MODE,
+ BG_ANIM_SCREEN_BASE_BLOCK
};
-struct UnknownAnimStruct2
+struct BattleAnimBgData
{
- void *unk0;
- u16 *unk4;
- u8 unk8;
- u8 unk9;
- u16 unkA;
- u16 unkC;
+ u8 *bgTiles;
+ u16 *bgTilemap;
+ u8 paletteId;
+ u8 bgId;
+ u16 tilesOffset;
+ u16 unused;
};
struct BattleAnimBackground
{
- void *image;
- void *palette;
- void *tilemap;
+ const u32 *image;
+ const u32 *palette;
+ const u32 *tilemap;
};
#define ANIM_ARGS_COUNT 8
@@ -53,7 +53,6 @@ extern bool8 gAnimScriptActive;
extern u8 gAnimVisualTaskCount;
extern u8 gAnimSoundTaskCount;
extern struct DisableStruct *gAnimDisableStructPtr;
-extern u32 gAnimMoveDmg;
extern u16 gAnimMovePower;
extern u8 gAnimFriendship;
extern u16 gWeatherMoveAnim;
@@ -64,8 +63,8 @@ extern u8 gBattleAnimTarget;
extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02038440;
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
-extern u16 gUnknown_2037EEC;
-extern s32 gUnknown_2037EE8;
+extern u16 gAnimMovePower;
+extern s32 gAnimMoveDmg;
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
@@ -80,7 +79,7 @@ s8 BattleAnimAdjustPanning(s8 pan);
s8 BattleAnimAdjustPanning2(s8 pan);
s16 sub_80A52EC(s16 a);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
-bool8 sub_8072DF0(u8 battlerId);
+bool8 IsBattlerSpriteVisible(u8 battlerId);
// battle_anim_80FE840.s
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
@@ -92,18 +91,32 @@ void sub_80A6EEC(struct Sprite *sprite);
void sub_80A68D4(struct Sprite *sprite);
void sub_80A6F3C(struct Sprite *sprite);
void sub_80A8278(void);
-void sub_80A6B30(struct UnknownAnimStruct2*);
-void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
+void sub_80A6B30(struct BattleAnimBgData *);
+void sub_80A6B90(struct BattleAnimBgData *, u32 arg1);
u8 sub_80A82E4(u8 bank);
bool8 AnimateBallThrow(struct Sprite *sprite);
enum
{
- BANK_X_POS,
- BANK_Y_POS,
+ BATTLER_COORD_X,
+ BATTLER_COORD_Y,
+ BATTLER_COORD_X_2,
+ BATTLER_COORD_Y_PIC_OFFSET,
+ BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
};
-u8 GetBankPosition(u8 bank, u8 attributeId);
+enum
+{
+ BATTLER_COORD_ATTR_HEIGHT,
+ BATTLER_COORD_ATTR_WIDTH,
+ BATTLER_COORD_ATTR_TOP,
+ BATTLER_COORD_ATTR_BOTTOM,
+ BATTLER_COORD_ATTR_LEFT,
+ BATTLER_COORD_ATTR_RIGHT,
+ BATTLER_COORD_ATTR_RAW_BOTTOM,
+};
+
+u8 GetBattlerSpriteCoord(u8 bank, u8 attributeId);
bool8 IsBankSpritePresent(u8 bank);
void sub_80A6C68(u8 arg0);
@@ -126,13 +139,28 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId);
// battle_anim_mons.s
-void sub_8074DC4(struct Sprite * sprite);
-void sub_8074E14(struct Sprite * sprite);
-void sub_80754B8(struct Sprite * sprite);
-void sub_80758E0(u8 spriteId, u8 b);
-void sub_8075980(u8 spriteId);
-void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
-bool8 sub_8073788(void);
+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_mon_movement.c
+void AnimTask_ShakeMon(u8 taskId);
+void AnimTask_ShakeMon2(u8 taskId);
+void AnimTask_ShakeMonInPlace(u8 taskId);
+void AnimTask_ShakeAndSinkMon(u8 taskId);
+void AnimTask_TranslateMonElliptical(u8 taskId);
+void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId);
+void AnimTask_WindUpLunge(u8 taskId);
+void sub_80995FC(u8 taskId);
+void AnimTask_SwayMon(u8 taskId);
+void AnimTask_ScaleMonAndRestore(u8 taskId);
+void sub_8099980(u8 taskId);
+void sub_8099A78(u8 taskId);
+void sub_8099BD4(u8 taskId);
+
#endif // GUARD_BATTLE_ANIM_H
diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c
index 27e6ef28c..88fbce6da 100644
--- a/src/battle_anim_mon_movement.c
+++ b/src/battle_anim_mon_movement.c
@@ -6,43 +6,91 @@
#define abs(x) ((x) < 0 ? -(x) : (x))
-void sub_8098A6C(u8 taskId);
-void sub_8098C08(u8 taskId);
-void sub_8098D54(u8 taskId);
-void sub_8098EF0(u8 taskId);
-void sub_8099004(u8 taskId);
-void sub_80990AC(struct Sprite * sprite);
-void sub_8099120(struct Sprite * sprite);
-void sub_8099144(struct Sprite * sprite);
-void sub_8099190(struct Sprite * sprite);
-void sub_80991B4(struct Sprite * sprite);
-void sub_8099270(struct Sprite * sprite);
-void sub_80992E0(struct Sprite * sprite);
-void sub_8099394(struct Sprite * sprite);
-void sub_809946C(struct Sprite * sprite);
-void sub_8099530(u8 taskId);
-void sub_8099594(u8 taskId);
-void sub_80996B8(u8 taskId);
-void sub_8099788(u8 taskId);
-void sub_8099908(u8 taskId);
-void sub_8099B54(u8 taskId);
-void sub_8099CB8(u8 taskId);
-
-const struct SpriteTemplate gUnknown_83D4E4C[] = {
- {
- 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80990AC
- }, {
- 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8099144
- }, {
- 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80991B4
- }, {
- 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80992E0
- }, {
- 0, 0, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8099394
- }
+static void AnimTask_ShakeMonStep(u8 taskId);
+static void AnimTask_ShakeMon2Step(u8 taskId);
+static void AnimTask_ShakeMonInPlaceStep(u8 taskId);
+static void AnimTask_ShakeAndSinkMonStep(u8 taskId);
+static void AnimTask_TranslateMonEllipticalStep(u8 taskId);
+static void DoHorizontalLunge(struct Sprite * sprite);
+static void ReverseHorizontalLungeDirection(struct Sprite * sprite);
+static void DoVerticalDip(struct Sprite * sprite);
+static void ReverseVerticalDipDirection(struct Sprite * sprite);
+static void SlideMonToOriginalPos(struct Sprite * sprite);
+static void SlideMonToOriginalPosStep(struct Sprite * sprite);
+static void SlideMonToOffset(struct Sprite * sprite);
+static void sub_8099394(struct Sprite * sprite);
+static void sub_809946C(struct Sprite * sprite);
+static void AnimTask_WindUpLungePart1(u8 taskId);
+static void AnimTask_WindUpLungePart2(u8 taskId);
+static void sub_80996B8(u8 taskId);
+static void AnimTask_SwayMonStep(u8 taskId);
+static void AnimTask_ScaleMonAndRestoreStep(u8 taskId);
+static void sub_8099B54(u8 taskId);
+static void sub_8099CB8(u8 taskId);
+
+const struct SpriteTemplate gHorizontalLungeSpriteTemplate =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = DoHorizontalLunge,
+};
+
+const struct SpriteTemplate gVerticalDipSpriteTemplate =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = DoVerticalDip,
+};
+
+const struct SpriteTemplate gSlideMonToOriginalPosSpriteTemplate =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SlideMonToOriginalPos,
+};
+
+const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SlideMonToOffset,
+};
+
+const struct SpriteTemplate gUnknown_83D4EB4 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8099394,
};
-void sub_80989F8(u8 taskId)
+// Task to facilitate simple shaking of a pokemon's picture in battle.
+// The shaking alternates between the original position and the target position.
+// arg 0: anim battler
+// arg 1: x pixel offset
+// arg 2: y pixel offset
+// arg 3: num times to shake
+// arg 4: frame delay
+void AnimTask_ShakeMon(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
@@ -58,12 +106,12 @@ void sub_80989F8(u8 taskId)
gTasks[taskId].data[3] = gBattleAnimArgs[4];
gTasks[taskId].data[4] = gBattleAnimArgs[1];
gTasks[taskId].data[5] = gBattleAnimArgs[2];
- gTasks[taskId].func = sub_8098A6C;
+ gTasks[taskId].func = AnimTask_ShakeMonStep;
gTasks[taskId].func(taskId);
}
}
-void sub_8098A6C(u8 taskId)
+static void AnimTask_ShakeMonStep(u8 taskId)
{
if (gTasks[taskId].data[3] == 0)
{
@@ -87,7 +135,14 @@ void sub_8098A6C(u8 taskId)
gTasks[taskId].data[3]--;
}
-void sub_8098B1C(u8 taskId)
+// Task to facilitate simple shaking of a pokemon's picture in battle.
+// The shaking alternates between the positive and negative versions of the specified pixel offsets.
+// arg 0: anim battler
+// arg 1: x pixel offset
+// arg 2: y pixel offset
+// arg 3: num times to shake
+// arg 4: frame delay
+void AnimTask_ShakeMon2(u8 taskId)
{
bool8 abort = FALSE;
u8 spriteId;
@@ -116,7 +171,7 @@ void sub_8098B1C(u8 taskId)
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
break;
}
- if (!sub_8072DF0(battlerId))
+ if (!IsBattlerSpriteVisible(battlerId))
abort = TRUE;
spriteId = gBattlerSpriteIds[battlerId];
}
@@ -134,12 +189,12 @@ void sub_8098B1C(u8 taskId)
gTasks[taskId].data[3] = gBattleAnimArgs[4];
gTasks[taskId].data[4] = gBattleAnimArgs[1];
gTasks[taskId].data[5] = gBattleAnimArgs[2];
- gTasks[taskId].func = sub_8098C08;
+ gTasks[taskId].func = AnimTask_ShakeMon2Step;
gTasks[taskId].func(taskId);
}
}
-void sub_8098C08(u8 taskId)
+static void AnimTask_ShakeMon2Step(u8 taskId)
{
if (gTasks[taskId].data[3] == 0)
{
@@ -163,7 +218,15 @@ void sub_8098C08(u8 taskId)
gTasks[taskId].data[3]--;
}
-void sub_8098CD0(u8 taskId)
+// Task to facilitate simple shaking of a pokemon's picture in battle.
+// The shaking alternates between the positive and negative versions of the specified pixel offsets
+// with respect to the current location of the mon's picture.
+// arg 0: battler
+// arg 1: x offset
+// arg 2: y offset
+// arg 3: num shakes
+// arg 4: delay
+void AnimTask_ShakeMonInPlace(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
@@ -180,12 +243,12 @@ void sub_8098CD0(u8 taskId)
gTasks[taskId].data[4] = gBattleAnimArgs[4];
gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2;
gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2;
- gTasks[taskId].func = sub_8098D54;
+ gTasks[taskId].func = AnimTask_ShakeMonInPlaceStep;
gTasks[taskId].func(taskId);
}
}
-void sub_8098D54(u8 taskId)
+static void AnimTask_ShakeMonInPlaceStep(u8 taskId)
{
if (gTasks[taskId].data[3] == 0)
{
@@ -219,7 +282,13 @@ void sub_8098D54(u8 taskId)
gTasks[taskId].data[3]--;
}
-void sub_8098E90(u8 taskId)
+// Shakes a mon bg horizontally and moves it downward linearly.
+// arg 0: battler
+// arg 1: x offset
+// arg 2: frame delay between each movement
+// arg 3: downward speed (subpixel)
+// arg 4: duration
+void AnimTask_ShakeAndSinkMon(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
@@ -229,11 +298,11 @@ void sub_8098E90(u8 taskId)
gTasks[taskId].data[2] = gBattleAnimArgs[2];
gTasks[taskId].data[3] = gBattleAnimArgs[3];
gTasks[taskId].data[4] = gBattleAnimArgs[4];
- gTasks[taskId].func = sub_8098EF0;
+ gTasks[taskId].func = AnimTask_ShakeAndSinkMonStep;
gTasks[taskId].func(taskId);
}
-void sub_8098EF0(u8 taskId)
+static void AnimTask_ShakeAndSinkMonStep(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[0];
s16 data1 = gTasks[taskId].data[1];
@@ -251,25 +320,32 @@ void sub_8098EF0(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8098F84(u8 taskId)
+// Moves a mon bg picture along an elliptical path that begins
+// and ends at the mon's origin location.
+// arg 0: battler
+// arg 1: ellipse width
+// arg 2: ellipse height
+// arg 3: num loops
+// arg 4: speed (valid values are 0-5)
+void AnimTask_TranslateMonElliptical(u8 taskId)
{
- u8 r6 = 1;
+ u8 wavePeriod = 1;
u8 i;
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (gBattleAnimArgs[4] > 5)
gBattleAnimArgs[4] = 5;
for (i = 0; i < gBattleAnimArgs[4]; i++)
- r6 *= 2;
+ wavePeriod *= 2;
gTasks[taskId].data[0] = spriteId;
gTasks[taskId].data[1] = gBattleAnimArgs[1];
gTasks[taskId].data[2] = gBattleAnimArgs[2];
gTasks[taskId].data[3] = gBattleAnimArgs[3];
- gTasks[taskId].data[4] = r6;
- gTasks[taskId].func = sub_8099004;
+ gTasks[taskId].data[4] = wavePeriod;
+ gTasks[taskId].func = AnimTask_TranslateMonEllipticalStep;
gTasks[taskId].func(taskId);
}
-void sub_8099004(u8 taskId)
+static void AnimTask_TranslateMonEllipticalStep(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[0];
gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]);
@@ -287,14 +363,26 @@ void sub_8099004(u8 taskId)
}
}
-void sub_809907C(u8 taskId)
+// Moves a mon bg picture along an elliptical path that begins
+// and ends at the mon's origin location. Reverses the direction
+// of the path if it's not on the player's side of the battle.
+// arg 0: battler
+// arg 1: ellipse width
+// arg 2: ellipse height
+// arg 3: num loops
+// arg 4: speed (valid values are 0-5)
+void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
- sub_8098F84(taskId);
+ AnimTask_TranslateMonElliptical(taskId);
}
-void sub_80990AC(struct Sprite * sprite)
+// Performs a simple horizontal lunge, where the mon moves
+// horizontally, and then moves back in the opposite direction.
+// arg 0: duration of single lunge direction
+// arg 1: x pixel delta that is applied each frame
+static void DoHorizontalLunge(struct Sprite * sprite)
{
sprite->invisible = TRUE;
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -305,19 +393,24 @@ void sub_80990AC(struct Sprite * sprite)
sprite->data[2] = 0;
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
sprite->data[4] = gBattleAnimArgs[0];
- StoreSpriteCallbackInData6(sprite, sub_8099120);
- sprite->callback = sub_8074DC4;
+ StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection);
+ sprite->callback = TranslateMonSpriteLinear;
}
-void sub_8099120(struct Sprite * sprite)
+static void ReverseHorizontalLungeDirection(struct Sprite * sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[1] = -sprite->data[1];
- sprite->callback = sub_8074DC4;
+ sprite->callback = TranslateMonSpriteLinear;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
-void sub_8099144(struct Sprite * sprite)
+// Performs a simple vertical dipping motion, where moves vertically, and then
+// moves back in the opposite direction.
+// arg 0: duration of single dip direction
+// arg 1: y pixel delta that is applied each frame
+// arg 2: battler
+static void DoVerticalDip(struct Sprite * sprite)
{
u8 spriteId;
sprite->invisible = TRUE;
@@ -327,19 +420,24 @@ void sub_8099144(struct Sprite * sprite)
sprite->data[2] = gBattleAnimArgs[1];
sprite->data[3] = spriteId;
sprite->data[4] = gBattleAnimArgs[0];
- StoreSpriteCallbackInData6(sprite, sub_8099190);
- sprite->callback = sub_8074DC4;
+ StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection);
+ sprite->callback = TranslateMonSpriteLinear;
}
-void sub_8099190(struct Sprite * sprite)
+static void ReverseVerticalDipDirection(struct Sprite * sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[2] = -sprite->data[2];
- sprite->callback = sub_8074DC4;
+ sprite->callback = TranslateMonSpriteLinear;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
-void sub_80991B4(struct Sprite * sprite)
+// Linearly slides a mon's bg picture back to its original sprite position.
+// The sprite parameter is a dummy sprite used for facilitating the movement with its callback.
+// arg 0: 1 = target or 0 = attacker
+// arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only)
+// arg 2: duration
+static void SlideMonToOriginalPos(struct Sprite * sprite)
{
u8 spriteId;
if (gBattleAnimArgs[0] == 0)
@@ -351,7 +449,7 @@ void sub_80991B4(struct Sprite * sprite)
sprite->data[2] = gSprites[spriteId].pos1.x;
sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
sprite->data[4] = gSprites[spriteId].pos1.y;
- sub_80754B8(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = 0;
sprite->data[4] = 0;
sprite->data[5] = gSprites[spriteId].pos2.x;
@@ -363,10 +461,10 @@ void sub_80991B4(struct Sprite * sprite)
sprite->data[1] = 0;
sprite->data[7] = gBattleAnimArgs[1];
sprite->data[7] |= spriteId << 8;
- sprite->callback = sub_8099270;
+ sprite->callback = SlideMonToOriginalPosStep;
}
-void sub_8099270(struct Sprite * sprite)
+static void SlideMonToOriginalPosStep(struct Sprite * sprite)
{
u8 data7 = sprite->data[7];
struct Sprite *otherSprite = &gSprites[sprite->data[7] >> 8];
@@ -388,7 +486,15 @@ void sub_8099270(struct Sprite * sprite)
}
}
-void sub_80992E0(struct Sprite * sprite)
+// Linearly translates a mon to a target offset. The horizontal offset
+// is mirrored for the opponent's pokemon, and the vertical offset
+// is only mirrored if arg 3 is set to 1.
+// arg 0: 0 = attacker, 1 = target
+// arg 1: target x pixel offset
+// arg 2: target y pixel offset
+// arg 3: mirror vertical translation for opposite battle side
+// arg 4: duration
+static void SlideMonToOffset(struct Sprite * sprite)
{
u8 battlerId;
u8 spriteId;
@@ -408,16 +514,16 @@ void sub_80992E0(struct Sprite * sprite)
sprite->data[2] = gSprites[spriteId].pos1.x + gBattleAnimArgs[1];
sprite->data[3] = gSprites[spriteId].pos1.y;
sprite->data[4] = gSprites[spriteId].pos1.y + gBattleAnimArgs[2];
- sub_80754B8(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = 0;
sprite->data[4] = 0;
sprite->data[5] = spriteId;
sprite->invisible = TRUE;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
- sprite->callback = sub_8074E14;
+ sprite->callback = TranslateMonSpriteLinearFixedPoint;
}
-void sub_8099394(struct Sprite * sprite)
+static void sub_8099394(struct Sprite * sprite)
{
u8 battlerId;
u8 spriteId;
@@ -438,7 +544,7 @@ void sub_8099394(struct Sprite * sprite)
sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1];
sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2];
- sub_80754B8(sprite);
+ InitSpriteDataForLinearTranslation(sprite);
sprite->data[3] = gSprites[spriteId].pos2.x << 8;
sprite->data[4] = gSprites[spriteId].pos2.y << 8;
sprite->data[5] = spriteId;
@@ -447,19 +553,29 @@ void sub_8099394(struct Sprite * sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
else
StoreSpriteCallbackInData6(sprite, sub_809946C);
- sprite->callback = sub_8074E14;
+ sprite->callback = TranslateMonSpriteLinearFixedPoint;
}
-void sub_809946C(struct Sprite * sprite)
+static void sub_809946C(struct Sprite * sprite)
{
gSprites[sprite->data[5]].pos2.x = 0;
gSprites[sprite->data[5]].pos2.y = 0;
DestroyAnimSprite(sprite);
}
-void sub_809949C(u8 taskId)
+// Task to facilitate a two-part translation animation, in which the sprite
+// is first translated in an arc to one position. Then, it "lunges" to a target
+// x offset. Used in TAKE_DOWN, for example.
+// arg 0: anim bank
+// arg 1: horizontal speed (subpixel)
+// arg 2: wave amplitude
+// arg 3: first duration
+// arg 4: delay before starting lunge
+// arg 5: target x offset for lunge
+// arg 6: lunge duration
+void AnimTask_WindUpLunge(u8 taskId)
{
- u16 r7 = 0x8000 / gBattleAnimArgs[3];
+ u16 wavePeriod = 0x8000 / gBattleAnimArgs[3];
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
@@ -472,11 +588,11 @@ void sub_809949C(u8 taskId)
gTasks[taskId].data[4] = gBattleAnimArgs[4];
gTasks[taskId].data[5] = gBattleAnimArgs[5] * 256 / gBattleAnimArgs[6];
gTasks[taskId].data[6] = gBattleAnimArgs[6];
- gTasks[taskId].data[7] = r7;
- gTasks[taskId].func = sub_8099530;
+ gTasks[taskId].data[7] = wavePeriod;
+ gTasks[taskId].func = AnimTask_WindUpLungePart1;
}
-void sub_8099530(u8 taskId)
+static void AnimTask_WindUpLungePart1(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[0];
gTasks[taskId].data[11] += gTasks[taskId].data[1];
@@ -484,10 +600,10 @@ void sub_8099530(u8 taskId)
gSprites[spriteId].pos2.y = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]);
gTasks[taskId].data[10] += gTasks[taskId].data[7];
if (--gTasks[taskId].data[3] == 0)
- gTasks[taskId].func = sub_8099594;
+ gTasks[taskId].func = AnimTask_WindUpLungePart2;
}
-void sub_8099594(u8 taskId)
+static void AnimTask_WindUpLungePart2(u8 taskId)
{
u8 spriteId;
@@ -514,7 +630,7 @@ void sub_80995FC(u8 taskId)
spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
break;
case 2:
- if (!sub_8072DF0(gBattleAnimAttacker ^ BIT_FLANK))
+ if (!IsBattlerSpriteVisible(gBattleAnimAttacker ^ BIT_FLANK))
{
DestroyAnimVisualTask(taskId);
return;
@@ -522,7 +638,7 @@ void sub_80995FC(u8 taskId)
spriteId = gBattlerSpriteIds[gBattleAnimAttacker ^ BIT_FLANK];
break;
case 3:
- if (!sub_8072DF0(gBattleAnimTarget ^ BIT_FLANK))
+ if (!IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK))
{
DestroyAnimVisualTask(taskId);
return;
@@ -541,7 +657,7 @@ void sub_80995FC(u8 taskId)
gTasks[taskId].func = sub_80996B8;
}
-void sub_80996B8(u8 taskId)
+static void sub_80996B8(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[0];
gSprites[spriteId].pos2.x += gTasks[taskId].data[1];
@@ -549,7 +665,15 @@ void sub_80996B8(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_8099704(u8 taskId)
+// Task that facilitates translating the mon bg picture back and forth
+// in a swaying motion (uses Sine wave). It can sway either horizontally
+// or vertically, but not both.
+// arg 0: direction (0 = horizontal, 1 = vertical)
+// arg 1: wave amplitude
+// arg 2: wave period
+// arg 3: num sways
+// arg 4: which mon (0 = attacker, 1 = target)
+void AnimTask_SwayMon(u8 taskId)
{
u8 spriteId;
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -565,32 +689,32 @@ void sub_8099704(u8 taskId)
else
gTasks[taskId].data[5] = gBattleAnimTarget;
gTasks[taskId].data[12] = 1;
- gTasks[taskId].func = sub_8099788;
+ gTasks[taskId].func = AnimTask_SwayMonStep;
}
-void sub_8099788(u8 taskId)
+static void AnimTask_SwayMonStep(u8 taskId)
{
u8 spriteId;
- u32 r8;
- s16 r5;
- u16 tmp;
+ u32 waveIndex;
+ s16 sineValue;
+ u16 sineIndex;
spriteId = gTasks[taskId].data[4];
- tmp = gTasks[taskId].data[10] + gTasks[taskId].data[2];
- gTasks[taskId].data[10] = tmp;
- r8 = tmp >> 8;
- r5 = Sin(r8, gTasks[taskId].data[1]);
+ sineIndex = gTasks[taskId].data[10] + gTasks[taskId].data[2];
+ gTasks[taskId].data[10] = sineIndex;
+ waveIndex = sineIndex >> 8;
+ sineValue = Sin(waveIndex, gTasks[taskId].data[1]);
if (gTasks[taskId].data[0] == 0)
{
- gSprites[spriteId].pos2.x = r5;
+ gSprites[spriteId].pos2.x = sineValue;
}
else if (GetBattlerSide(gTasks[taskId].data[5]) == B_SIDE_PLAYER)
{
- gSprites[spriteId].pos2.y = abs(r5);
+ gSprites[spriteId].pos2.y = abs(sineValue);
}
else
- gSprites[spriteId].pos2.y = -abs(r5);
- if ((r8 > 0x7F && gTasks[taskId].data[11] == 0 && gTasks[taskId].data[12] == 1) || (r8 < 0x7F && gTasks[taskId].data[11] == 1 && gTasks[taskId].data[12] == 0))
+ gSprites[spriteId].pos2.y = -abs(sineValue);
+ if ((waveIndex > 0x7F && gTasks[taskId].data[11] == 0 && gTasks[taskId].data[12] == 1) || (waveIndex < 0x7F && gTasks[taskId].data[11] == 1 && gTasks[taskId].data[12] == 0))
{
gTasks[taskId].data[11] ^= 1;
gTasks[taskId].data[12] ^= 1;
@@ -603,10 +727,16 @@ void sub_8099788(u8 taskId)
}
}
-void sub_80998B0(u8 taskId)
+// Scales a mon's sprite, and then scales back to its original dimensions.
+// arg 0: x scale delta
+// arg 1: y scale delta
+// arg 2: duration
+// arg 3: anim bank
+// arg 4: sprite object mode
+void AnimTask_ScaleMonAndRestore(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]);
- sub_80758E0(spriteId, gBattleAnimArgs[4]);
+ PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1];
gTasks[taskId].data[2] = gBattleAnimArgs[2];
@@ -614,16 +744,16 @@ void sub_80998B0(u8 taskId)
gTasks[taskId].data[4] = spriteId;
gTasks[taskId].data[10] = 0x100;
gTasks[taskId].data[11] = 0x100;
- gTasks[taskId].func = sub_8099908;
+ gTasks[taskId].func = AnimTask_ScaleMonAndRestoreStep;
}
-void sub_8099908(u8 taskId)
+static void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
{
u8 spriteId;
gTasks[taskId].data[10] += gTasks[taskId].data[0];
gTasks[taskId].data[11] += gTasks[taskId].data[1];
spriteId = gTasks[taskId].data[4];
- obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
+ SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
if (--gTasks[taskId].data[2] == 0)
{
if (gTasks[taskId].data[3] > 0)
@@ -635,7 +765,7 @@ void sub_8099908(u8 taskId)
}
else
{
- sub_8075980(spriteId);
+ ResetSpriteRotScale(spriteId);
DestroyAnimVisualTask(taskId);
}
}
@@ -644,7 +774,7 @@ void sub_8099908(u8 taskId)
void sub_8099980(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
- sub_80758E0(spriteId, 0);
+ PrepareBattlerSpriteForRotScale(spriteId, 0);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[3] != 1)
@@ -654,7 +784,7 @@ void sub_8099980(u8 taskId)
gTasks[taskId].data[4] = gBattleAnimArgs[1];
gTasks[taskId].data[5] = spriteId;
gTasks[taskId].data[6] = gBattleAnimArgs[3];
- if (sub_8073788())
+ if (IsContest())
gTasks[taskId].data[7] = 1;
else
{
@@ -663,7 +793,7 @@ void sub_8099980(u8 taskId)
else
gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER ? 1 : 0;
}
- if (gTasks[taskId].data[7] && !sub_8073788())
+ if (gTasks[taskId].data[7] && !IsContest())
{
s16 tmp;
tmp = gTasks[taskId].data[3];
@@ -677,7 +807,7 @@ void sub_8099980(u8 taskId)
void sub_8099A78(u8 taskId)
{
u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
- sub_80758E0(spriteId, 0);
+ PrepareBattlerSpriteForRotScale(spriteId, 0);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[2] == 0)
@@ -709,11 +839,10 @@ void sub_8099A78(u8 taskId)
gTasks[taskId].func = sub_8099B54;
}
-void sub_8099B54(u8 taskId)
+static void sub_8099B54(u8 taskId)
{
- s16 tmp;
gTasks[taskId].data[3] += gTasks[taskId].data[4];
- obj_id_set_rotscale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
+ SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
if (gTasks[taskId].data[7])
sub_80759DC(gTasks[taskId].data[5]);
if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2])
@@ -721,7 +850,7 @@ void sub_8099B54(u8 taskId)
switch (gTasks[taskId].data[6])
{
case 1:
- sub_8075980(gTasks[taskId].data[5]);
+ ResetSpriteRotScale(gTasks[taskId].data[5]);
// fallthrough
case 0:
default:
@@ -729,8 +858,7 @@ void sub_8099B54(u8 taskId)
break;
case 2:
gTasks[taskId].data[1] = 0;
- tmp = gTasks[taskId].data[4];
- gTasks[taskId].data[4] = -tmp;
+ gTasks[taskId].data[4] *= -1;
gTasks[taskId].data[6] = 1;
break;
}
@@ -741,7 +869,7 @@ void sub_8099BD4(u8 taskId)
{
if (gBattleAnimArgs[0] == 0)
{
- gTasks[taskId].data[15] = gUnknown_2037EEC / 12;
+ gTasks[taskId].data[15] = gAnimMovePower / 12;
if (gTasks[taskId].data[15] < 1)
gTasks[taskId].data[15] = 1;
if (gTasks[taskId].data[15] > 16)
@@ -749,7 +877,7 @@ void sub_8099BD4(u8 taskId)
}
else
{
- gTasks[taskId].data[15] = gUnknown_2037EE8 / 12;
+ gTasks[taskId].data[15] = gAnimMoveDmg / 12;
if (gTasks[taskId].data[15] < 1)
gTasks[taskId].data[15] = 1;
if (gTasks[taskId].data[15] > 16)
@@ -769,7 +897,7 @@ void sub_8099BD4(u8 taskId)
gTasks[taskId].func = sub_8099CB8;
}
-void sub_8099CB8(u8 taskId)
+static void sub_8099CB8(u8 taskId)
{
struct Task *task = &gTasks[taskId];
if (++task->data[0] > task->data[1])
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 3797720d5..a32ae4268 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -721,10 +721,10 @@ gUnknown_2037EE3: @ 2037EE3
gAnimDisableStructPtr: @ 2037EE4
.space 0x4
-gUnknown_2037EE8: @ 2037EE8
+gAnimMoveDmg: @ 2037EE8
.space 0x4
-gUnknown_2037EEC: @ 2037EEC
+gAnimMovePower: @ 2037EEC
.space 0x2
gUnknown_2037EEE: @ 2037EEE