summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-10-06 23:04:53 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-10-06 23:04:53 +0200
commit54fc92bc92e78d172be51f7d11b4d746e46f8a7e (patch)
tree2538509027684da7c49f249b978bcb69f19423ed
parentb9e38a569eac79572fa0676b82e2d755e30b1357 (diff)
Start porting ruby battle anim file
-rw-r--r--asm/battle_anim_80A5C6C.s1732
-rw-r--r--asm/battle_anim_80FE840.s172
-rw-r--r--asm/battle_anim_815A0D4.s14
-rw-r--r--asm/battle_anim_8170478.s6
-rw-r--r--data/rom_8525F58.s34
-rw-r--r--include/battle_anim.h13
-rw-r--r--include/contest.h16
-rw-r--r--ld_script.txt3
-rw-r--r--src/battle_anim.c6
-rw-r--r--src/battle_anim_80A5C6C.c741
-rw-r--r--src/battle_anim_sound_tasks.c6
-rw-r--r--src/battle_gfx_sfx_util.c8
-rw-r--r--src/contest.c2
-rw-r--r--src/data/pokemon_graphics/back_pic_coordinates.h2
-rw-r--r--src/pokeball.c14
15 files changed, 905 insertions, 1864 deletions
diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s
index 320bbef20..1bb3c7d9b 100644
--- a/asm/battle_anim_80A5C6C.s
+++ b/asm/battle_anim_80A5C6C.s
@@ -5,1682 +5,12 @@
.text
- thumb_func_start GetBattlerSpriteCoord
-GetBattlerSpriteCoord: @ 80A5C6C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5C8A
- cmp r4, 0x3
- bne _080A5C8A
- cmp r5, 0x3
- bne _080A5C8A
- movs r4, 0x1
-_080A5C8A:
- cmp r4, 0x4
- bhi _080A5D00
- lsls r0, r4, 2
- ldr r1, =_080A5C9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080A5C9C:
- .4byte _080A5CB0
- .4byte _080A5CD8
- .4byte _080A5CB0
- .4byte _080A5D00
- .4byte _080A5D00
-_080A5CB0:
- ldr r4, =gUnknown_08525F58
- adds r0, r5, 0
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 22
- ldr r1, =gBattleTypeFlags
- ldr r1, [r1]
- movs r2, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- b _080A5DB0
- .pool
-_080A5CD8:
- ldr r4, =gUnknown_08525F58
- adds r0, r5, 0
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 22
- ldr r1, =gBattleTypeFlags
- ldr r1, [r1]
- movs r2, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1]
- b _080A5DB0
- .pool
-_080A5D00:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5D28
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r2, [r0, 0x18]
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A5D24
- ldrh r1, [r2, 0x2]
- b _080A5D9A
- .pool
-_080A5D24:
- ldrh r1, [r2]
- b _080A5D9A
-_080A5D28:
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A5D60
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A5D98
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _080A5D7E
- .pool
-_080A5D60:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A5D98
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_080A5D7E:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _080A5D9A
- .pool
-_080A5D98:
- ldrh r1, [r1, 0x2]
-_080A5D9A:
- cmp r4, 0x3
- bne _080A5DA4
- adds r0, r5, 0
- movs r2, 0x1
- b _080A5DA8
-_080A5DA4:
- adds r0, r5, 0
- movs r2, 0
-_080A5DA8:
- bl sub_80A600C
- lsls r0, 24
- lsrs r0, 24
-_080A5DB0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetBattlerSpriteCoord
-
- thumb_func_start sub_80A5DB8
-sub_80A5DB8: @ 80A5DB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A5DDA
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A5DDA
- b _080A5EC8
-_080A5DDA:
- cmp r5, 0xC9
- bne _080A5E90
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5E04
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r2, [r0, 0x18]
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A5E00
- ldr r2, [r2, 0x10]
- b _080A5E42
- .pool
-_080A5E00:
- ldr r2, [r2, 0x8]
- b _080A5E42
-_080A5E04:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- bne _080A5E3C
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _080A5E42
- .pool
-_080A5E3C:
- ldr r0, =gTransformedPersonalities
- adds r0, r1, r0
- ldr r2, [r0]
-_080A5E42:
- 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 _080A5E7C
- adds r0, r5, 0
- b _080A5E86
- .pool
-_080A5E7C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_080A5E86:
- ldr r1, =gUnknown_083021D8
- lsls r0, 2
- b _080A5F90
- .pool
-_080A5E90:
- ldr r0, =0x00000181
- cmp r5, r0
- bne _080A5EB0
- ldr r0, =gUnknown_08525F8C
- ldr r1, =gBattleMonForms
- adds r1, r4, r1
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- b _080A5F94
- .pool
-_080A5EB0:
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- bls _080A5EC0
- ldr r0, =gUnknown_083021D8
- b _080A5F92
- .pool
-_080A5EC0:
- ldr r1, =gUnknown_083021D8
- b _080A5F8E
- .pool
-_080A5EC8:
- cmp r5, 0xC9
- bne _080A5F58
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- bne _080A5F04
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _080A5F0A
- .pool
-_080A5F04:
- ldr r0, =gTransformedPersonalities
- adds r0, r1, r0
- ldr r2, [r0]
-_080A5F0A:
- 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 _080A5F44
- adds r0, r5, 0
- b _080A5F4E
- .pool
-_080A5F44:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_080A5F4E:
- ldr r1, =gMonFrontPicCoords
- lsls r0, 2
- b _080A5F90
- .pool
-_080A5F58:
- ldr r0, =0x00000181
- cmp r5, r0
- bne _080A5F7C
- ldr r0, =gCastformFrontSpriteCoords
- ldr r1, =gBattleMonForms
- adds r1, r4, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _080A5F94
- .pool
-_080A5F7C:
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- bls _080A5F8C
- ldr r0, =gMonFrontPicCoords
- b _080A5F92
- .pool
-_080A5F8C:
- ldr r1, =gMonFrontPicCoords
-_080A5F8E:
- lsls r0, r5, 2
-_080A5F90:
- adds r0, r1
-_080A5F92:
- ldrb r0, [r0, 0x1]
-_080A5F94:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A5DB8
-
- thumb_func_start sub_80A5FA0
-sub_80A5FA0: @ 80A5FA0
- 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 _080A5FFE
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A5FFE
- ldr r0, =0x00000181
- cmp r4, r0
- bne _080A5FE8
- ldr r0, =gUnknown_08525F88
- ldr r1, =gBattleMonForms
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- b _080A5FFE
- .pool
-_080A5FE8:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _080A5FF8
- ldr r0, =gEnemyMonElevation
- b _080A5FFC
- .pool
-_080A5FF8:
- ldr r0, =gEnemyMonElevation
- adds r0, r7, r0
-_080A5FFC:
- ldrb r5, [r0]
-_080A5FFE:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A5FA0
-
- thumb_func_start sub_80A600C
-sub_80A600C: @ 80A600C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A6030
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A603E
-_080A6030:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80A5DB8
- lsls r0, 24
- lsrs r4, r0, 24
- b _080A605C
-_080A603E:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80A5DB8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80A5FA0
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_080A605C:
- adds r0, r6, 0
- bl GetBattlerPosition
- ldr r3, =gUnknown_08525F58
- lsls r0, 24
- lsrs r0, 22
- ldr r1, =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, r4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, 0
- beq _080A609C
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A6096
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080A6096:
- cmp r4, 0x68
- bls _080A609C
- movs r4, 0x68
-_080A609C:
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A600C
-
- thumb_func_start sub_80A60AC
-sub_80A60AC: @ 80A60AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0xFD
- lsls r0, 24
- adds r1, r0
- lsrs r1, 24
- cmp r1, 0x1
- bhi _080A6126
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A60E8
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r2, [r0, 0x18]
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A60E4
- ldrh r1, [r2, 0x2]
- b _080A610E
- .pool
-_080A60E4:
- ldrh r1, [r2]
- b _080A610E
-_080A60E8:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r4, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A610C
- ldr r1, =gAnimBattlerSpecies
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- b _080A610E
- .pool
-_080A610C:
- ldrh r1, [r1, 0x2]
-_080A610E:
- cmp r5, 0x3
- bne _080A611C
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_80A600C
- b _080A612E
-_080A611C:
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A600C
- b _080A612E
-_080A6126:
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetBattlerSpriteCoord
-_080A612E:
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A60AC
-
- thumb_func_start GetBattlerSpriteDefault_Y
-GetBattlerSpriteDefault_Y: @ 80A6138
- 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: @ 80A614C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A6170
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x80
- lsls r1, 13
- b _080A6180
-_080A6170:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x88
- lsls r1, 13
-_080A6180:
- 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 sub_80A6190
-sub_80A6190: @ 80A6190
- 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
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A6238
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A61E4
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A621C
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _080A6202
- .pool
-_080A61E4:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A621C
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_080A6202:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- b _080A621E
- .pool
-_080A621C:
- ldrh r4, [r1, 0x2]
-_080A621E:
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A6238
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A5FA0
- subs r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
-_080A6238:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A6190
-
- thumb_func_start GetAnimBattlerSpriteId
-GetAnimBattlerSpriteId: @ 80A6240
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- bne _080A6268
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl IsBattlerSpritePresent
- lsls r0, 24
- cmp r0, 0
- beq _080A62B6
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r4]
- b _080A62C6
- .pool
-_080A6268:
- cmp r0, 0x1
- bne _080A6288
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- bl IsBattlerSpritePresent
- lsls r0, 24
- cmp r0, 0
- beq _080A62B6
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r4]
- b _080A62C6
- .pool
-_080A6288:
- cmp r1, 0x2
- bne _080A62A4
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A62B6
- b _080A62C0
- .pool
-_080A62A4:
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _080A62C0
-_080A62B6:
- movs r0, 0xFF
- b _080A62CA
- .pool
-_080A62C0:
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r5]
- eors r0, r4
-_080A62C6:
- adds r0, r1
- ldrb r0, [r0]
-_080A62CA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetAnimBattlerSpriteId
-
- thumb_func_start StoreSpriteCallbackInData6
-StoreSpriteCallbackInData6: @ 80A62D4
- strh r1, [r0, 0x3A]
- lsrs r1, 16
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end StoreSpriteCallbackInData6
-
- thumb_func_start sub_80A62DC
-sub_80A62DC: @ 80A62DC
- 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 sub_80A62DC
-
- thumb_func_start sub_80A62EC
-sub_80A62EC: @ 80A62EC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A6340
- 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 _080A632C
- ldr r2, =0xffffff00
- b _080A6334
- .pool
-_080A632C:
- cmp r0, 0
- bge _080A6338
- movs r2, 0x80
- lsls r2, 1
-_080A6334:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080A6338:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080A6346
-_080A6340:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A6346:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A62EC
-
- thumb_func_start sub_80A634C
-sub_80A634C: @ 80A634C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A63BC
- 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 _080A63A8
- ldr r2, =0xffffff00
- b _080A63B0
- .pool
-_080A63A8:
- cmp r0, 0
- bge _080A63B4
- movs r2, 0x80
- lsls r2, 1
-_080A63B0:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080A63B4:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080A63C2
-_080A63BC:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A63C2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A634C
-
- thumb_func_start sub_80A63C8
-sub_80A63C8: @ 80A63C8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A6444
- 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 _080A6410
- ldr r2, =0xffffff00
- b _080A6418
- .pool
-_080A6410:
- cmp r0, 0
- bge _080A641C
- movs r2, 0x80
- lsls r2, 1
-_080A6418:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080A641C:
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- ble _080A6430
- ldr r2, =0xffffff00
- b _080A6438
- .pool
-_080A6430:
- cmp r0, 0
- bge _080A643C
- movs r2, 0x80
- lsls r2, 1
-_080A6438:
- adds r0, r1, r2
- strh r0, [r4, 0x36]
-_080A643C:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080A644A
-_080A6444:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A644A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A63C8
-
- thumb_func_start sub_80A6450
-sub_80A6450: @ 80A6450
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A64A4
- 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 _080A6490
- ldr r2, =0xffffff00
- b _080A6498
- .pool
-_080A6490:
- cmp r0, 0
- bge _080A649C
- movs r2, 0x80
- lsls r2, 1
-_080A6498:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080A649C:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080A64AA
-_080A64A4:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A64AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6450
-
- thumb_func_start sub_80A64B0
-sub_80A64B0: @ 80A64B0
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080A64C4
- subs r0, r2, 0x1
- strh r0, [r1, 0x2E]
- b _080A64CA
-_080A64C4:
- adds r0, r1, 0
- bl sub_80A62DC
-_080A64CA:
- pop {r0}
- bx r0
- thumb_func_end sub_80A64B0
-
- thumb_func_start sub_80A64D0
-sub_80A64D0: @ 80A64D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A64EC
- ldr r1, =sub_80A653C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A64D0
-
- thumb_func_start sub_80A64EC
-sub_80A64EC: @ 80A64EC
- 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 _080A6502
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
-_080A6502:
- 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 _080A651C
- negs r0, r0
-_080A651C:
- 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_80A64EC
-
- thumb_func_start sub_80A653C
-sub_80A653C: @ 80A653C
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080A6560
- 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 _080A6566
-_080A6560:
- adds r0, r1, 0
- bl sub_80A62DC
-_080A6566:
- pop {r0}
- bx r0
- thumb_func_end sub_80A653C
-
- thumb_func_start sub_80A656C
-sub_80A656C: @ 80A656C
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080A659C
- 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 _080A65A2
-_080A659C:
- adds r0, r2, 0
- bl sub_80A62DC
-_080A65A2:
- pop {r0}
- bx r0
- thumb_func_end sub_80A656C
-
- thumb_func_start sub_80A65A8
-sub_80A65A8: @ 80A65A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A65D8
- 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 _080A65DE
-_080A65D8:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A65DE:
- adds r0, r4, 0
- bl UpdateMonIconFrame
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A65A8
-
- thumb_func_start sub_80A65EC
-sub_80A65EC: @ 80A65EC
- 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, =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, =sub_80A64D0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A65EC
-
- thumb_func_start sub_80A6630
-sub_80A6630: @ 80A6630
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080A6674
- subs r0, r1, 0x1
- strh r0, [r3, 0x2E]
- ldr r2, =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 _080A667A
- .pool
-_080A6674:
- adds r0, r3, 0
- bl sub_80A62DC
-_080A667A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6630
-
- thumb_func_start sub_80A6680
-sub_80A6680: @ 80A6680
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A66D0
- 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, =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 _080A66D6
- .pool
-_080A66D0:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A66D6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6680
-
- thumb_func_start sub_80A66DC
-sub_80A66DC: @ 80A66DC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A673E
- 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 _080A6744
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A6744
- 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 _080A6744
-_080A673E:
- adds r0, r4, 0
- bl sub_80A62DC
-_080A6744:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A66DC
-
- thumb_func_start move_anim_8074EE0
-move_anim_8074EE0: @ 80A674C
- 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_80A6760
-sub_80A6760: @ 80A6760
- 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, =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, =sub_80A64D0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A6760
-
- thumb_func_start sub_80A67A4
-sub_80A67A4: @ 80A67A4
- 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_80A67A4
-
- thumb_func_start sub_80A67BC
-sub_80A67BC: @ 80A67BC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A67D2
- adds r0, r2, 0
- bl sub_80A62DC
-_080A67D2:
- pop {r0}
- bx r0
- thumb_func_end sub_80A67BC
-
- thumb_func_start sub_80A67D8
-sub_80A67D8: @ 80A67D8
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A67EE
- adds r0, r2, 0
- bl sub_80A62DC
-_080A67EE:
- pop {r0}
- bx r0
- thumb_func_end sub_80A67D8
-
- thumb_func_start sub_80A67F4
-sub_80A67F4: @ 80A67F4
- 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_80A67F4
-
- thumb_func_start sub_80A6814
-sub_80A6814: @ 80A6814
- 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_80A6814
-
- thumb_func_start sub_80A6838
-sub_80A6838: @ 80A6838
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =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
- .pool
- thumb_func_end sub_80A6838
-
- thumb_func_start sub_80A6864
-sub_80A6864: @ 80A6864
- 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, =gBattleAnimAttacker
- ldrb r0, [r7]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bhi _080A68B0
- cmp r6, r0
- bcs _080A68A4
- lsls r0, r5, 16
- b _080A68C0
- .pool
-_080A68A4:
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A68BC
-_080A68B0:
- ldrh r1, [r4, 0x20]
- lsls r0, r5, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080A68C8
-_080A68BC:
- mov r1, r8
- lsls r0, r1, 16
-_080A68C0:
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080A68C8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6864
-
- thumb_func_start sub_80A68D4
-sub_80A68D4: @ 80A68D4
- 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_80A68D4
-
- thumb_func_start AnimateBallThrow
-AnimateBallThrow: @ 80A6900
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A6F3C
- lsls r0, 24
- cmp r0, 0
- bne _080A692C
- 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 _080A692E
-_080A692C:
- movs r0, 0x1
-_080A692E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end AnimateBallThrow
thumb_func_start sub_80A6934
sub_80A6934: @ 80A6934
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _080A6960
@@ -1732,13 +62,13 @@ sub_80A6980: @ 80A6980
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -1768,7 +98,7 @@ sub_80A69CC: @ 80A69CC
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
@@ -1780,14 +110,14 @@ _080A69F0:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
_080A6A04:
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -2344,8 +674,8 @@ sub_80A6E14: @ 80A6E14
bx r0
thumb_func_end sub_80A6E14
- thumb_func_start obj_translate_based_on_private_1_2_3_4
-obj_translate_based_on_private_1_2_3_4: @ 80A6E54
+ thumb_func_start InitAnimLinearTranslation
+InitAnimLinearTranslation: @ 80A6E54
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -2423,7 +753,7 @@ _080A6ED0:
pop {r0}
bx r0
.pool
- thumb_func_end obj_translate_based_on_private_1_2_3_4
+ thumb_func_end InitAnimLinearTranslation
thumb_func_start sub_80A6EEC
sub_80A6EEC: @ 80A6EEC
@@ -2434,7 +764,7 @@ sub_80A6EEC: @ 80A6EEC
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r1, =sub_80A6F98
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -2454,7 +784,7 @@ sub_80A6F14: @ 80A6F14
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r1, =sub_80A6FB4
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -2465,8 +795,8 @@ sub_80A6F14: @ 80A6F14
.pool
thumb_func_end sub_80A6F14
- thumb_func_start sub_80A6F3C
-sub_80A6F3C: @ 80A6F3C
+ thumb_func_start TranslateAnimLinear
+TranslateAnimLinear: @ 80A6F3C
push {r4-r6,lr}
adds r2, r0, 0
movs r1, 0x2E
@@ -2518,18 +848,18 @@ _080A6F90:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_80A6F3C
+ thumb_func_end TranslateAnimLinear
thumb_func_start sub_80A6F98
sub_80A6F98: @ 80A6F98
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _080A6FAC
adds r0, r4, 0
- bl sub_80A62DC
+ bl SetCallbackToStoredInData6
_080A6FAC:
pop {r4}
pop {r0}
@@ -2542,12 +872,12 @@ sub_80A6FB4: @ 80A6FB4
adds r4, r0, 0
bl sub_8039E9C
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _080A6FCE
adds r0, r4, 0
- bl sub_80A62DC
+ bl SetCallbackToStoredInData6
_080A6FCE:
pop {r4}
pop {r0}
@@ -2573,7 +903,7 @@ _080A6FE8:
bl __divsi3
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
pop {r4}
pop {r0}
bx r0
@@ -2764,7 +1094,7 @@ sub_80A7144: @ 80A7144
cmp r0, 0
beq _080A7158
adds r0, r4, 0
- bl sub_80A62DC
+ bl SetCallbackToStoredInData6
_080A7158:
pop {r4}
pop {r0}
@@ -3763,7 +2093,7 @@ _080A78CC:
sub_80A791C: @ 80A791C
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _080A7930
@@ -4558,7 +2888,7 @@ _080A7F42:
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r2, [r0]
- ldr r1, =gUnknown_083021D8
+ ldr r1, =gMonBackPicCoords
lsls r0, r2, 2
adds r0, r1
ldrb r0, [r0, 0x1]
@@ -4598,11 +2928,11 @@ _080A7FC0:
_080A7FC2:
cmp r2, r7
bne _080A7FD0
- ldr r0, =gUnknown_08525F8C
+ ldr r0, =gCastformBackSpriteYCoords
b _080A8018
.pool
_080A7FD0:
- ldr r0, =gUnknown_083021D8
+ ldr r0, =gMonBackPicCoords
b _080A8026
.pool
_080A7FD8:
@@ -4633,7 +2963,7 @@ _080A8010:
_080A8012:
cmp r2, r7
bne _080A8024
- ldr r0, =gUnknown_08525F88
+ ldr r0, =gCastformElevations
_080A8018:
ldrb r1, [r6]
adds r1, r0
@@ -5350,7 +3680,7 @@ _080A85A0:
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
- ldr r3, =gUnknown_083021D8
+ ldr r3, =gMonBackPicCoords
_080A85B2:
lsls r2, r6, 2
adds r2, r3
@@ -5467,7 +3797,7 @@ _080A8690:
lsrs r0, 16
_080A869A:
lsls r1, r0, 2
- ldr r0, =gUnknown_083021D8
+ ldr r0, =gMonBackPicCoords
b _080A8864
.pool
_080A86A4:
@@ -5481,7 +3811,7 @@ _080A86AC:
cmp r7, r0
bhi _080A877C
lsls r1, r7, 2
- ldr r0, =gUnknown_083021D8
+ ldr r0, =gMonBackPicCoords
b _080A8864
.pool
_080A86C4:
@@ -5562,7 +3892,7 @@ _080A8760:
lsrs r0, 16
_080A876A:
lsls r1, r0, 2
- ldr r0, =gUnknown_083021D8
+ ldr r0, =gMonBackPicCoords
b _080A8864
.pool
_080A8774:
@@ -5571,12 +3901,12 @@ _080A8774:
cmp r7, r0
bls _080A8784
_080A877C:
- ldr r4, =gUnknown_083021D8
+ ldr r4, =gMonBackPicCoords
b _080A8866
.pool
_080A8784:
lsls r1, r7, 2
- ldr r0, =gUnknown_083021D8
+ ldr r0, =gMonBackPicCoords
b _080A8864
.pool
_080A8790:
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index 5b047a54d..df4f21408 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -183,7 +183,7 @@ sub_80FE988: @ 80FE988
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, =sub_80FE9E4
@@ -200,7 +200,7 @@ sub_80FE988: @ 80FE988
sub_80FE9E4: @ 80FE9E4
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _080FE9FA
@@ -350,7 +350,7 @@ sub_80FEAD8: @ 80FEAD8
sub_80FEB28: @ 80FEB28
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _080FEB3C
@@ -541,7 +541,7 @@ _080FEC68:
sub_80FECB8: @ 80FECB8
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _080FECE2
@@ -781,7 +781,7 @@ sub_80FEE78: @ 80FEE78
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, =sub_80FEECC
@@ -798,7 +798,7 @@ sub_80FEE78: @ 80FEE78
sub_80FEECC: @ 80FEECC
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _080FEF38
@@ -878,7 +878,7 @@ sub_80FEF44: @ 80FEF44
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, =sub_80FEF98
@@ -895,7 +895,7 @@ sub_80FEF44: @ 80FEF44
sub_80FEF98: @ 80FEF98
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _080FEFF0
@@ -1175,7 +1175,7 @@ sub_80FF1C0: @ 80FF1C0
movs r0, 0x1
strh r0, [r6, 0x2E]
adds r0, r6, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
ldrh r0, [r6, 0x3C]
strh r5, [r6, 0x2E]
lsls r4, 16
@@ -3161,7 +3161,7 @@ _08100180:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
bne _08100196
@@ -3190,7 +3190,7 @@ _081001B4:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
bne _081001CA
@@ -3219,7 +3219,7 @@ _081001E6:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
bne _081001FC
@@ -3272,7 +3272,7 @@ _08100254:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
bne _0810026A
@@ -3403,7 +3403,7 @@ _08100362:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
bne _08100378
@@ -3514,7 +3514,7 @@ _08100448:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _081004FC
@@ -3566,7 +3566,7 @@ _081004B6:
adds r1, r2, 0
bl sub_8100524
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _081004FC
@@ -4869,7 +4869,7 @@ _08100F06:
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -4878,7 +4878,7 @@ _08100F06:
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x1
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
@@ -9082,7 +9082,7 @@ _08103074:
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, =sub_81030B0
@@ -9097,7 +9097,7 @@ _08103074:
sub_81030B0: @ 81030B0
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _08103100
@@ -11528,7 +11528,7 @@ _08104448:
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]
@@ -11548,7 +11548,7 @@ _08104448:
sub_81044BC: @ 81044BC
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _08104520
@@ -11659,7 +11659,7 @@ _0810458A:
sub_8104594: @ 8104594
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _081045A8
@@ -12761,7 +12761,7 @@ sub_8104E74: @ 8104E74
adds r5, r1, r0
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -12969,7 +12969,7 @@ sub_810501C: @ 810501C
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
@@ -13271,7 +13271,7 @@ _0810526A:
sub_8105284: @ 8105284
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _0810529E
@@ -13526,7 +13526,7 @@ _0810549E:
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, =sub_8105284
str r1, [r5, 0x1C]
adds r0, r5, 0
@@ -15088,7 +15088,7 @@ sub_8106140: @ 8106140
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, =sub_810618C
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -15101,7 +15101,7 @@ sub_8106140: @ 8106140
sub_810618C: @ 810618C
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _081061B6
@@ -17269,7 +17269,7 @@ _081072D8:
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, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
@@ -17339,7 +17339,7 @@ sub_8107380: @ 8107380
movs r0, 0x1
strh r0, [r5, 0x2E]
adds r0, r5, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
mov r1, r8
lsrs r6, r1, 8
movs r0, 0x2E
@@ -17464,7 +17464,7 @@ _08107482:
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, =sub_81074E4
str r0, [r5, 0x1C]
adds r2, r5, 0
@@ -17502,7 +17502,7 @@ sub_81074E4: @ 81074E4
strb r0, [r2]
_08107506:
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _08107518
@@ -17637,7 +17637,7 @@ sub_81075EC: @ 81075EC
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
@@ -17678,7 +17678,7 @@ _08107660:
sub_8107674: @ 8107674
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _08107688
@@ -20234,7 +20234,7 @@ _08108B1A:
sub_8108B2C: @ 8108B2C
push {r4-r6,lr}
adds r6, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08108B86
@@ -20283,7 +20283,7 @@ _08108B86:
sub_8108B94: @ 8108B94
push {r4-r6,lr}
adds r5, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08108BD0
@@ -21144,7 +21144,7 @@ sub_8109244: @ 8109244
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, =sub_810929C
str r0, [r5, 0x1C]
_0810928E:
@@ -21158,7 +21158,7 @@ _0810928E:
sub_810929C: @ 810929C
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _081092E4
@@ -22386,7 +22386,7 @@ _08109C3E:
sub_8109C4C: @ 8109C4C
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _08109CA4
@@ -23433,7 +23433,7 @@ sub_810A46C: @ 810A46C
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]
@@ -23468,7 +23468,7 @@ sub_810A46C: @ 810A46C
sub_810A4F4: @ 810A4F4
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _0810A55E
@@ -24336,7 +24336,7 @@ sub_810AB78: @ 810AB78
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, =sub_810ACC0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
@@ -24394,7 +24394,7 @@ _0810AC86:
sub_810AC8C: @ 810AC8C
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _0810ACB4
@@ -26828,7 +26828,7 @@ _0810BFCC:
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, =sub_810C008
@@ -26845,7 +26845,7 @@ _0810BFCC:
sub_810C008: @ 810C008
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _0810C092
@@ -27608,7 +27608,7 @@ _0810C684:
strb r0, [r1]
_0810C6B8:
adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, =sub_810C6D4
str r0, [r5, 0x1C]
pop {r3}
@@ -27642,7 +27642,7 @@ _0810C6F4:
b _0810C90C
_0810C6F6:
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
ldr r1, =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
@@ -27731,12 +27731,12 @@ _0810C78E:
ands r0, r1
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
b _0810C90C
.pool
_0810C7BC:
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
ldr r1, =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
@@ -27872,7 +27872,7 @@ _0810C8B6:
.pool
_0810C8D0:
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _0810C90C
@@ -28414,7 +28414,7 @@ _0810CCCE:
sub_810CD1C: @ 810CD1C
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0810CD3E
@@ -29021,7 +29021,7 @@ _0810D1FE:
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]
@@ -29039,7 +29039,7 @@ _0810D1FE:
sub_810D240: @ 810D240
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
bne _0810D26C
@@ -29616,7 +29616,7 @@ sub_810D6A8: @ 810D6A8
lsrs r0, 24
strh r0, [r4, 0x36]
adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r1, =move_anim_8074EE0
adds r0, r4, 0
bl StoreSpriteCallbackInData6
@@ -29892,7 +29892,7 @@ _0810D918:
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, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
@@ -30234,7 +30234,7 @@ _0810DBC2:
sub_810DC10: @ 810DC10
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0810DC24
@@ -30309,7 +30309,7 @@ _0810DC72:
sub_810DCB4: @ 810DCB4
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0810DCC8
@@ -30716,7 +30716,7 @@ _0810DFC8:
adds r0, r4
strh r0, [r6, 0x36]
adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
+ bl InitAnimLinearTranslation
ldr r0, =sub_80A67BC
str r0, [r6, 0x1C]
ldr r1, =sub_810E028
@@ -30732,7 +30732,7 @@ _0810DFC8:
sub_810E028: @ 810E028
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _0810E03C
@@ -30971,7 +30971,7 @@ _0810E1FE:
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, =sub_810E24C
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -30987,7 +30987,7 @@ sub_810E24C: @ 810E24C
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
ldrh r1, [r4, 0x34]
lsrs r0, r1, 8
cmp r0, 0xC8
@@ -34508,7 +34508,7 @@ _0810FDE8:
sub_810FDF0: @ 810FDF0
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0810FE0E
@@ -34537,7 +34537,7 @@ sub_810FE14: @ 810FE14
adds r4, r1, r0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r1, r0, 24
adds r0, r1, 0
@@ -35235,7 +35235,7 @@ _081103C4:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -35244,7 +35244,7 @@ _081103C4:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -35314,7 +35314,7 @@ _08110478:
ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -35323,7 +35323,7 @@ _08110478:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -35426,7 +35426,7 @@ _0811055A:
sub_811057C: @ 811057C
push {r4,lr}
adds r4, r0, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _08110592
@@ -35844,7 +35844,7 @@ sub_81108CC: @ 81108CC
ands r1, r0
strb r1, [r2]
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _081108F8
@@ -35879,7 +35879,7 @@ _0811090E:
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
bne _08110988
@@ -37059,7 +37059,7 @@ _08111304:
sub_811131C: @ 811131C
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0811134E
@@ -37483,7 +37483,7 @@ sub_8111674: @ 8111674
adds r4, r0, 0
bl sub_8111764
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _08111694
@@ -37541,7 +37541,7 @@ sub_81116E8: @ 81116E8
movs r0, 0x1
strh r0, [r4, 0x2E]
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -40203,7 +40203,7 @@ sub_8112C6C: @ 8112C6C
lsrs r0, 24
strh r0, [r4, 0x1A]
ldrb r0, [r5]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -41135,7 +41135,7 @@ _0811342A:
strb r5, [r0, 0x9]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -42031,7 +42031,7 @@ _08113B60:
sub_8113B90: @ 8113B90
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08113BA4
@@ -43699,7 +43699,7 @@ sub_8114994: @ 8114994
sub_81149FC: @ 81149FC
push {r4,r5,lr}
adds r5, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08114A50
@@ -43746,7 +43746,7 @@ _08114A50:
sub_8114A60: @ 8114A60
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08114A74
@@ -43817,13 +43817,13 @@ sub_8114AF0: @ 8114AF0
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
- bl sub_80A60AC
+ bl GetBattlerSpriteCoord2
lsls r0, 24
lsrs r7, r0, 24
bl Random2
@@ -44120,7 +44120,7 @@ _08114D78:
strh r0, [r4, 0x22]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -44460,7 +44460,7 @@ _08115046:
strh r0, [r4, 0x20]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -44663,7 +44663,7 @@ _081151DA:
adds r0, r6
strh r0, [r5, 0x20]
adds r0, r4, 0
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x1E
@@ -44693,7 +44693,7 @@ _081151DA:
sub_8115228: @ 8115228
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0811523C
@@ -44735,7 +44735,7 @@ _08115262:
adds r0, r1
strh r0, [r6, 0x20]
adds r0, r5, 0
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
index 01ab7ed93..55d25cf31 100644
--- a/asm/battle_anim_815A0D4.s
+++ b/asm/battle_anim_815A0D4.s
@@ -816,7 +816,7 @@ _0815A6F8:
sub_815A73C: @ 815A73C
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0815A75E
@@ -1625,7 +1625,7 @@ _0815ADDC:
ldr r4, =gBattleAnimTarget
_0815ADDE:
ldrb r0, [r4]
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
@@ -6104,7 +6104,7 @@ _0815D26E:
strh r0, [r4, 0x18]
_0815D2A0:
adds r0, r5, 0
- bl sub_80A6190
+ bl GetBattlerYCoordWithElevation
lsls r0, 24
lsrs r0, 24
subs r0, 0x22
@@ -8524,7 +8524,7 @@ _0815E5FE:
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
- bl AnimateBallThrow
+ bl TranslateAnimArc
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -8542,7 +8542,7 @@ _0815E634:
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _0815E6D2
@@ -9804,11 +9804,11 @@ _0815F022:
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 _0815F0F8
_0815F038:
adds r0, r4, 0
- bl sub_80A6F3C
+ bl TranslateAnimLinear
lsls r0, 24
cmp r0, 0
beq _0815F106
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index e08568eba..ab3f27799 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -1487,7 +1487,7 @@ sub_8171134: @ 8171134
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _081711D2
@@ -2671,7 +2671,7 @@ sub_8171AAC: @ 8171AAC
orrs r0, r1
strb r0, [r3]
adds r0, r4, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08171ADC
@@ -5652,7 +5652,7 @@ _081733C0:
sub_81733D4: @ 81733D4
push {r4,lr}
adds r4, r0, 0
- bl AnimateBallThrow
+ bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _081733F6
diff --git a/data/rom_8525F58.s b/data/rom_8525F58.s
deleted file mode 100644
index d95af7e20..000000000
--- a/data/rom_8525F58.s
+++ /dev/null
@@ -1,34 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_08525F58:: @ 8525F58
- .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00
- .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00
- .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00
- .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00
-
- .align 2
-gCastformFrontSpriteCoords:: @ 8525F78
- .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00
-
- .align 2
-gUnknown_08525F88:: @ 8525F88
- .byte 0x0d, 0x0e, 0x0d, 0x0d
-
- .align 2
-gUnknown_08525F8C:: @ 8525F8C
- .byte 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_08525F90:: @ 8525F90
- spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
- spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_08525FC0:: @ 8525FC0
- obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755
- obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756
diff --git a/include/battle_anim.h b/include/battle_anim.h
index f690cf10c..29de71077 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -72,17 +72,20 @@ void HandleIntroSlide(u8 terrainId);
// battle_anim_80A5C6C.s
void sub_80A6EEC(struct Sprite *sprite);
void sub_80A68D4(struct Sprite *sprite);
-void sub_80A6F3C(struct Sprite *sprite);
+void TranslateAnimLinear(struct Sprite *sprite);
void sub_80A8278(void);
void sub_80A6B30(struct UnknownAnimStruct2*);
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
u8 sub_80A82E4(u8 battlerId);
-bool8 AnimateBallThrow(struct Sprite *sprite);
+bool8 TranslateAnimArc(struct Sprite *sprite);
enum
{
- BANK_X_POS,
- BANK_Y_POS,
+ BATTLER_COORD_X,
+ BATTLER_COORD_Y,
+ BATTLER_COORD_X_2,
+ BATTLER_COORD_3,
+ BATTLER_COORD_4,
};
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
@@ -107,6 +110,6 @@ 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);
-u8 sub_80A600C(u8, u16, u8);
+u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
#endif // GUARD_BATTLE_ANIM_H
diff --git a/include/contest.h b/include/contest.h
index 0a8fa4436..d62d33ab7 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -239,14 +239,13 @@ struct Shared18000
struct ContestStruct_field_18
{
- // unknown size
- u16 field_0;
- u16 field_2;
- u16 field_4;
- u16 field_6;
- u32 field_8;
- u32 field_C;
- u32 field_10;
+ u16 unk0;
+ u16 unk2;
+ u8 unk4_0:1;
+ u8 unk5;
+ u32 unk8;
+ u32 unkC;
+ u32 unk10;
};
struct Contest
@@ -411,6 +410,7 @@ extern struct ContestResources *gContestResources;
#define eContestAI (gContestResources->field_C)
#define shared19328 (*gContestResources->field_10)
#define shared19338 (*gContestResources->field_14)
+#define shared19348 (*gContestResources->field_18)
#define shared15800 (gHeap + 0x18000)
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
diff --git a/ld_script.txt b/ld_script.txt
index fc12789ce..8de971717 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -111,6 +111,7 @@ SECTIONS {
src/palette.o(.text);
src/sound.o(.text);
src/battle_anim.o(.text);
+ src/battle_anim_80A5C6C.o(.text);
asm/battle_anim_80A5C6C.o(.text);
src/task.o(.text);
src/reshow_battle_screen.o(.text);
@@ -420,7 +421,7 @@ SECTIONS {
data/fanfares.o(.rodata);
data/battle_anims.o(.rodata);
src/battle_anim.o(.rodata);
- data/rom_8525F58.o(.rodata);
+ src/battle_anim_80A5C6C.o(.rodata);
data/map_events.o(.rodata);
data/battle_anim_80A9C70.o(.rodata);
src/title_screen.o(.rodata);
diff --git a/src/battle_anim.c b/src/battle_anim.c
index ebaa8c6de..fa782d661 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -234,7 +234,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
else
{
for (i = 0; i < 4; i++)
- gAnimBattlerSpecies[i] = gContestResources->field_18->field_0;
+ gAnimBattlerSpecies[i] = gContestResources->field_18->unk0;
}
if (!isMoveAnim)
@@ -691,7 +691,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
battlerSpriteId = gBattlerSpriteIds[battlerId];
gBattle_BG1_X = -(gSprites[battlerSpriteId].pos1.x + gSprites[battlerSpriteId].pos2.x) + 0x20;
- if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->field_0))
+ if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->unk0))
gBattle_BG1_X--;
gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20;
@@ -749,7 +749,7 @@ static void sub_80A46A0(void)
struct UnknownAnimStruct2 unknownStruct;
u16 *ptr;
- if (IsSpeciesNotUnown(gContestResources->field_18->field_0))
+ if (IsSpeciesNotUnown(gContestResources->field_18->unk0))
{
sub_80A6B30(&unknownStruct);
ptr = unknownStruct.unk4;
diff --git a/src/battle_anim_80A5C6C.c b/src/battle_anim_80A5C6C.c
new file mode 100644
index 000000000..46e1e5b71
--- /dev/null
+++ b/src/battle_anim_80A5C6C.c
@@ -0,0 +1,741 @@
+#include "global.h"
+#include "constants/battle_anim.h"
+#include "constants/species.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "blend_palette.h"
+#include "contest.h"
+#include "data2.h"
+#include "decompress.h"
+#include "palette.h"
+#include "pokemon_icon.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+#include "util.h"
+#include "gpu_regs.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))
+
+extern const struct OamData gUnknown_0852497C;
+extern const struct MonCoords gMonFrontPicCoords[];
+extern const struct MonCoords gMonBackPicCoords[];
+extern const u8 gEnemyMonElevation[];
+
+// This file's functions.
+void sub_80A64EC(struct Sprite *sprite);
+void sub_80A653C(struct Sprite *sprite);
+void InitAnimLinearTranslation(struct Sprite *sprite);
+bool8 TranslateAnimLinear(struct Sprite *sprite);
+
+// Const rom data
+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[] =
+{
+ { 0x44, 17 }, // NORMAL
+ { 0x66, 9 }, // SUN
+ { 0x46, 9 }, // RAIN
+ { 0x86, 8 }, // HAIL
+};
+
+const u8 gCastformElevations[] =
+{
+ 13, // NORMAL
+ 14, // SUN
+ 13, // RAIN
+ 13, // HAIL
+};
+
+// Y position of the backsprite for each of the four Castform forms.
+const u8 gCastformBackSpriteYCoords[] =
+{
+ 0, // NORMAL
+ 0, // SUN
+ 0, // RAIN
+ 0, // HAIL
+};
+
+const struct SpriteTemplate gUnknown_08525F90[] =
+{
+ {
+ .tileTag = 55125,
+ .paletteTag = 55125,
+ .oam = &gUnknown_0852497C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ },
+ {
+ .tileTag = 55126,
+ .paletteTag = 55126,
+ .oam = &gUnknown_0852497C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ }
+};
+
+const struct SpriteSheet gUnknown_08525FC0[] =
+{
+ { gMiscBlank_Gfx, 0x800, 55125, },
+ { gMiscBlank_Gfx, 0x800, 55126, },
+};
+
+// code
+u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
+{
+ u8 retVal;
+ u16 species;
+ struct BattleSpriteInfo *spriteInfo;
+
+ if (IsContest())
+ {
+ if (attributeId == BATTLER_COORD_3 && battlerId == 3)
+ attributeId = BATTLER_COORD_Y;
+ }
+
+ switch (attributeId)
+ {
+ 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_3:
+ case BATTLER_COORD_4:
+ default:
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ species = shared19348.unk2;
+ else
+ species = shared19348.unk0;
+ }
+ else
+ {
+ 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 (attributeId == BATTLER_COORD_3)
+ retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
+ else
+ retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
+ break;
+ }
+
+ return retVal;
+}
+
+u8 GetBattlerYDelta(u8 battlerId, u16 species)
+{
+ u16 letter;
+ u32 personality;
+ struct BattleSpriteInfo *spriteInfo;
+ u8 ret;
+ u16 coordSpecies;
+
+ if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest())
+ {
+ if (species == SPECIES_UNOWN)
+ {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ personality = shared19348.unk10;
+ else
+ personality = shared19348.unk8;
+ }
+ else
+ {
+ 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 = gCastformBackSpriteYCoords[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;
+}
+
+u8 GetBattlerElevation(u8 battlerId, u16 species)
+{
+ u8 ret = 0;
+ if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
+ {
+ if (!IsContest())
+ {
+ if (species == SPECIES_CASTFORM)
+ ret = gCastformElevations[gBattleMonForms[battlerId]];
+ else if (species > NUM_SPECIES)
+ ret = gEnemyMonElevation[0];
+ else
+ ret = gEnemyMonElevation[species];
+ }
+ }
+ return ret;
+}
+
+u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
+{
+ u16 offset;
+ u8 y;
+
+ if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest())
+ {
+ 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 attributeId)
+{
+ u16 species;
+ struct BattleSpriteInfo *spriteInfo;
+
+ if (attributeId == BATTLER_COORD_3 || attributeId == BATTLER_COORD_4)
+ {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ species = shared19348.unk2;
+ else
+ species = shared19348.unk0;
+ }
+ else
+ {
+ spriteInfo = gBattleSpritesDataPtr->battlerData;
+ if (!spriteInfo[battlerId].transformSpecies)
+ species = gAnimBattlerSpecies[battlerId];
+ else
+ species = spriteInfo[battlerId].transformSpecies;
+ }
+ if (attributeId == BATTLER_COORD_3)
+ return GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
+ else
+ return GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
+ }
+ else
+ {
+ return GetBattlerSpriteCoord(battlerId, attributeId);
+ }
+}
+
+u8 GetBattlerSpriteDefault_Y(u8 battlerId)
+{
+ return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_4);
+}
+
+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 GetBattlerYCoordWithElevation(u8 battlerId)
+{
+ u16 species;
+ u8 y;
+ struct BattleSpriteInfo *spriteInfo;
+
+ y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y);
+ if (!IsContest())
+ {
+ 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 which)
+{
+ u8 *sprites;
+
+ if (which == ANIM_ATTACKER)
+ {
+ if (IsBattlerSpritePresent(gBattleAnimAttacker))
+ {
+ sprites = gBattlerSpriteIds;
+ return sprites[gBattleAnimAttacker];
+ }
+ else
+ {
+ return 0xff;
+ }
+ }
+ else if (which == ANIM_TARGET)
+ {
+ if (IsBattlerSpritePresent(gBattleAnimTarget))
+ {
+ sprites = gBattlerSpriteIds;
+ return sprites[gBattleAnimTarget];
+ }
+ else
+ {
+ return 0xff;
+ }
+ }
+ else if (which == 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, void (*callback)(struct Sprite*))
+{
+ sprite->data[6] = (u32)(callback) & 0xffff;
+ sprite->data[7] = (u32)(callback) >> 16;
+}
+
+void SetCallbackToStoredInData6(struct Sprite *sprite)
+{
+ u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16);
+ sprite->callback = (void (*)(struct Sprite *))callback;
+}
+
+void sub_80A62EC(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 sub_80A634C(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);
+ }
+}
+
+void sub_80A63C8(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 sub_80A6450(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 sub_80A64B0(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ sprite->data[0]--;
+ else
+ SetCallbackToStoredInData6(sprite);
+}
+
+void sub_80A64D0(struct Sprite *sprite)
+{
+ sub_80A64EC(sprite);
+ sprite->callback = sub_80A653C;
+ sprite->callback(sprite);
+}
+
+void sub_80A64EC(struct Sprite *sprite)
+{
+ s16 old;
+ int v1;
+
+ if (sprite->data[1] > sprite->data[2])
+ sprite->data[0] = -sprite->data[0];
+ v1 = sprite->data[2] - sprite->data[1];
+ old = sprite->data[0];
+ sprite->data[0] = abs(v1 / sprite->data[0]);
+ sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0];
+ sprite->data[1] = old;
+}
+
+void sub_80A653C(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 sub_80A656C(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);
+ }
+}
+
+void sub_80A65A8(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);
+}
+
+void sub_80A65EC(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, 2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->callback = sub_80A64D0;
+}
+
+void sub_80A6630(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);
+ }
+}
+
+// Same as sub_80A6630, but it operates on sub-pixel values
+// to handle slower translations.
+void sub_80A6680(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 sub_80A66DC(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 move_anim_8074EE0(struct Sprite *sprite)
+{
+ FreeSpriteOamMatrix(sprite);
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80A6760(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, 2);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->callback = sub_80A64D0;
+}
+
+void sub_80A67A4(struct Sprite *sprite)
+{
+ ResetPaletteStructByUid(sprite->data[5]);
+ move_anim_8074EE0(sprite);
+}
+
+void sub_80A67BC(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ SetCallbackToStoredInData6(sprite);
+}
+
+void sub_80A67D8(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ SetCallbackToStoredInData6(sprite);
+}
+
+void sub_80A67F4(struct Sprite *sprite)
+{
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80A6814(u8 taskId)
+{
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80A6838(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+}
+
+void sub_80A6864(struct Sprite *sprite, s16 a2)
+{
+ u16 v1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ u16 v2 = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
+
+ if (v1 > v2)
+ {
+ sprite->pos1.x -= a2;
+ }
+ else if (v1 < v2)
+ {
+ sprite->pos1.x += a2;
+ }
+ else
+ {
+ if (GetBattlerSide(gBattleAnimAttacker) != 0)
+ sprite->pos1.x -= a2;
+ else
+ sprite->pos1.x += a2;
+ }
+}
+
+void sub_80A68D4(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 TranslateAnimArc(struct Sprite *sprite)
+{
+ if (TranslateAnimLinear(sprite))
+ return TRUE;
+ sprite->data[7] += sprite->data[6];
+ sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
+ return FALSE;
+}
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index 5a829171e..6993bd2ee 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -131,7 +131,7 @@ void sub_8158D8C(u8 taskId)
if (IsContest())
{
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
- species = gContestResources->field_18->field_0;
+ species = gContestResources->field_18->unk0;
else
DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task.
}
@@ -177,7 +177,7 @@ void sub_8158E9C(u8 taskId)
if (IsContest())
{
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
- species = gContestResources->field_18->field_0;
+ species = gContestResources->field_18->unk0;
else
DestroyAnimVisualTask(taskId); // UB: function should return upon destroying task.
}
@@ -281,7 +281,7 @@ void sub_81590B8(u8 taskId)
pan = BattleAnimAdjustPanning(PAN_SIDE_PLAYER);
if (IsContest())
- species = gContestResources->field_18->field_0;
+ species = gContestResources->field_18->unk0;
else
species = gAnimBattlerSpecies[gBattleAnimAttacker];
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index e5c8582a9..80e1574a4 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -899,14 +899,14 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
if (IsContest())
{
position = 0;
- targetSpecies = gContestResources->field_18->field_2;
- personalityValue = gContestResources->field_18->field_8;
- otId = gContestResources->field_18->field_C;
+ targetSpecies = gContestResources->field_18->unk2;
+ personalityValue = gContestResources->field_18->unk8;
+ otId = gContestResources->field_18->unkC;
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies],
gMonSpritesGfxPtr->sprites[0],
targetSpecies,
- gContestResources->field_18->field_10);
+ gContestResources->field_18->unk10);
}
else
{
diff --git a/src/contest.c b/src/contest.c
index 910637387..8eacc89c3 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -2535,7 +2535,7 @@ u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
SetMultiuseSpriteTemplateToPokemon(species, 0);
- spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, sub_80A600C(2, species, 0), 30);
+ spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
gSprites[spriteId].oam.paletteNum = 2;
gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].subpriority = sub_80A82E4(2);
diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h
index f54b409e4..877bf3475 100644
--- a/src/data/pokemon_graphics/back_pic_coordinates.h
+++ b/src/data/pokemon_graphics/back_pic_coordinates.h
@@ -1,4 +1,4 @@
-const struct MonCoords gUnknown_083021D8[] =
+const struct MonCoords gMonBackPicCoords[] =
{
{0x88, 0x00}, // SPECIES_NONE
{0x64, 0x10}, // SPECIES_BULBASAUR
diff --git a/src/pokeball.c b/src/pokeball.c
index 3dbbb2967..bb02a02ba 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -378,8 +378,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1;
break;
case POKEBALL_OPPONENT_SENDOUT:
- gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(battlerId, BANK_X_POS);
- gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(battlerId, BANK_Y_POS) + 24;
+ gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X);
+ gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 24;
gBattlerTarget = battlerId;
gSprites[ballSpriteId].data[0] = 0;
gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut;
@@ -399,8 +399,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
// this will perform an unused ball throw animation
gSprites[ballSpriteId].data[0] = 0x22;
- gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BANK_X_POS);
- gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BANK_Y_POS) - 16;
+ gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_X);
+ gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_Y) - 16;
gSprites[ballSpriteId].data[5] = -40;
sub_80A68D4(&gSprites[ballSpriteId]);
gSprites[ballSpriteId].oam.affineParam = taskId;
@@ -411,7 +411,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
static void SpriteCB_TestBallThrow(struct Sprite *sprite)
{
- if (AnimateBallThrow(sprite))
+ if (TranslateAnimArc(sprite))
{
u16 ballId;
u8 taskId = sprite->oam.affineParam;
@@ -922,7 +922,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, 4);
}
r4 = sprite->data[0];
- sub_80A6F3C(sprite);
+ TranslateAnimLinear(sprite);
sprite->data[7] += sprite->sBattler / 3;
sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]);
sprite->oam.affineParam += 0x100;
@@ -940,7 +940,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
}
else
{
- if (AnimateBallThrow(sprite))
+ if (TranslateAnimArc(sprite))
{
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;