diff options
-rw-r--r-- | asm/battle_anim_80A5C6C.s | 74 | ||||
-rw-r--r-- | asm/battle_anim_80A9C70.s | 4 | ||||
-rw-r--r-- | asm/battle_anim_80FE840.s | 720 | ||||
-rwxr-xr-x | asm/battle_anim_815A0D4.s | 118 | ||||
-rw-r--r-- | asm/battle_anim_8170478.s | 78 | ||||
-rw-r--r-- | asm/contest.s | 4 | ||||
-rwxr-xr-x | asm/pokeball.s | 1713 | ||||
-rwxr-xr-x | asm/pokemon_summary_screen.s | 6 | ||||
-rw-r--r-- | data/pokeball.s | 2 | ||||
-rw-r--r-- | include/battle.h | 2 | ||||
-rw-r--r-- | include/battle_anim.h | 17 | ||||
-rw-r--r-- | include/pokeball.h | 9 | ||||
-rw-r--r-- | include/sprite.h | 9 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/battle_anim.c | 2 | ||||
-rw-r--r-- | src/battle_controller_link_opponent.c | 16 | ||||
-rw-r--r-- | src/battle_controller_link_partner.c | 14 | ||||
-rw-r--r-- | src/battle_controller_opponent.c | 16 | ||||
-rw-r--r-- | src/battle_controller_player.c | 14 | ||||
-rw-r--r-- | src/battle_controller_player_partner.c | 14 | ||||
-rw-r--r-- | src/battle_controller_recorded_opponent.c | 16 | ||||
-rw-r--r-- | src/battle_controller_recorded_player.c | 18 | ||||
-rw-r--r-- | src/battle_controller_wally.c | 12 | ||||
-rw-r--r-- | src/battle_gfx_sfx_util.c | 4 | ||||
-rw-r--r-- | src/pokeball.c | 637 | ||||
-rw-r--r-- | src/reshow_battle_screen.c | 6 |
26 files changed, 1256 insertions, 2270 deletions
diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index 158da2a02..08baa4595 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80A5C6C -sub_80A5C6C: @ 80A5C6C + thumb_func_start GetBankPosition +GetBankPosition: @ 80A5C6C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -154,7 +154,7 @@ _080A5DB0: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80A5C6C + thumb_func_end GetBankPosition thumb_func_start sub_80A5DB8 sub_80A5DB8: @ 80A5DB8 @@ -577,7 +577,7 @@ _080A611C: _080A6126: adds r0, r4, 0 adds r1, r5, 0 - bl sub_80A5C6C + bl GetBankPosition _080A612E: lsls r0, 24 lsrs r0, 24 @@ -592,7 +592,7 @@ GetBankSpriteDefault_Y: @ 80A6138 lsls r0, 24 lsrs r0, 24 movs r1, 0x4 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 pop {r1} @@ -611,7 +611,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C beq _080A6170 adds r0, r4, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0x80 @@ -620,7 +620,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C _080A6170: adds r0, r4, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0x88 @@ -642,7 +642,7 @@ sub_80A6190: @ 80A6190 lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 bl IsContest @@ -1245,13 +1245,13 @@ sub_80A65EC: @ 80A65EC ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -1442,13 +1442,13 @@ sub_80A6760: @ 80A6760 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -1550,13 +1550,13 @@ sub_80A6838: @ 80A6838 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1578,13 +1578,13 @@ sub_80A6864: @ 80A6864 ldr r7, =gAnimBankAttacker ldrb r0, [r7] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r6, r0 @@ -1646,8 +1646,8 @@ sub_80A68D4: @ 80A68D4 bx r0 thumb_func_end sub_80A68D4 - thumb_func_start sub_80A6900 -sub_80A6900: @ 80A6900 + thumb_func_start AnimateBallThrow +AnimateBallThrow: @ 80A6900 push {r4,lr} adds r4, r0, 0 bl sub_80A6F3C @@ -1674,7 +1674,7 @@ _080A692E: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80A6900 + thumb_func_end AnimateBallThrow thumb_func_start sub_80A6934 sub_80A6934: @ 80A6934 @@ -3685,7 +3685,7 @@ _080A785C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -3693,7 +3693,7 @@ _080A785C: strh r0, [r5, 0x32] ldrb r0, [r4] adds r1, r7, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -3733,7 +3733,7 @@ _080A78CC: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -3741,7 +3741,7 @@ _080A78CC: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -3763,7 +3763,7 @@ _080A78CC: sub_80A791C: @ 80A791C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _080A7930 @@ -3828,7 +3828,7 @@ _080A798E: strh r0, [r5, 0x2E] adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] @@ -3836,7 +3836,7 @@ _080A798E: strh r0, [r5, 0x32] adds r0, r6, 0 adds r1, r7, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -5713,7 +5713,7 @@ _080A88A6: _080A88AE: mov r0, r8 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5722,7 +5722,7 @@ _080A88AE: _080A88C0: mov r0, r8 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5731,7 +5731,7 @@ _080A88C0: _080A88D2: mov r0, r8 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5744,7 +5744,7 @@ _080A88E4: _080A88EA: mov r0, r8 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5757,7 +5757,7 @@ _080A88FC: _080A8902: mov r0, r8 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -5798,13 +5798,13 @@ _080A8942: _080A8946: adds r0, r4, 0 adds r1, r5, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r4, 0 adds r1, r6, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 bl IsDoubleBattle @@ -5819,12 +5819,12 @@ _080A8946: eors r4, r0 adds r0, r4, 0 adds r1, r5, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 adds r1, r6, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 24 mov r0, r8 @@ -6392,13 +6392,13 @@ sub_80A8E30: @ 80A8E30 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s index d27852961..bdb1a51ec 100644 --- a/asm/battle_anim_80A9C70.s +++ b/asm/battle_anim_80A9C70.s @@ -334,7 +334,7 @@ sub_80A9EF4: @ 80A9EF4 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 ldr r1, =0xffe00000 @@ -342,7 +342,7 @@ sub_80A9EF4: @ 80A9EF4 lsrs r5, r0, 16 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 ldr r1, =0xffdc0000 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 315f884cf..75879519e 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -99,13 +99,13 @@ sub_80FE8E0: @ 80FE8E0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -135,13 +135,13 @@ sub_80FE930: @ 80FE930 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -170,7 +170,7 @@ sub_80FE988: @ 80FE988 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -178,7 +178,7 @@ sub_80FE988: @ 80FE988 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -324,13 +324,13 @@ sub_80FEAD8: @ 80FEAD8 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -350,7 +350,7 @@ sub_80FEAD8: @ 80FEAD8 sub_80FEB28: @ 80FEB28 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _080FEB3C @@ -377,13 +377,13 @@ sub_80FEB44: @ 80FEB44 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -413,7 +413,7 @@ _080FEB94: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -421,7 +421,7 @@ _080FEB94: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -511,7 +511,7 @@ _080FEC68: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -519,7 +519,7 @@ _080FEC68: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -541,7 +541,7 @@ _080FEC68: sub_80FECB8: @ 80FECB8 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _080FECE2 @@ -774,7 +774,7 @@ sub_80FEE78: @ 80FEE78 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] @@ -871,7 +871,7 @@ sub_80FEF44: @ 80FEF44 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] @@ -953,13 +953,13 @@ sub_80FEFFC: @ 80FEFFC ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -1101,7 +1101,7 @@ _080FF114: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -1109,7 +1109,7 @@ _080FF114: strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -1175,7 +1175,7 @@ sub_80FF1C0: @ 80FF1C0 movs r0, 0x1 strh r0, [r6, 0x2E] adds r0, r6, 0 - bl sub_80A6900 + bl AnimateBallThrow ldrh r0, [r6, 0x3C] strh r5, [r6, 0x2E] lsls r4, 16 @@ -1799,7 +1799,7 @@ _080FF6AA: _080FF6C2: ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -1808,7 +1808,7 @@ _080FF6C2: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -1848,13 +1848,13 @@ _080FF704: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -1881,13 +1881,13 @@ sub_80FF768: @ 80FF768 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1944,13 +1944,13 @@ sub_80FF7EC: @ 80FF7EC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition mov r8, r0 mov r0, r8 lsls r0, 24 @@ -1959,13 +1959,13 @@ sub_80FF7EC: @ 80FF7EC ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r2, r0, 0 lsls r2, 24 subs r4, r5 @@ -2098,7 +2098,7 @@ sub_80FF934: @ 80FF934 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -2107,7 +2107,7 @@ sub_80FF934: @ 80FF934 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -2352,12 +2352,12 @@ sub_80FFB18: @ 80FFB18 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gAnimBankAttacker @@ -2456,7 +2456,7 @@ sub_80FFBF4: @ 80FFBF4 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] @@ -2554,12 +2554,12 @@ sub_80FFCB4: @ 80FFCB4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gAnimBankTarget @@ -2963,13 +2963,13 @@ sub_80FFFC0: @ 80FFFC0 strh r0, [r5, 0x10] ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -3161,7 +3161,7 @@ _08100180: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081004FC @@ -3837,7 +3837,7 @@ _081006CE: _081006D4: adds r0, r6, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5] @@ -3860,7 +3860,7 @@ _08100700: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r7, [r7] @@ -4082,12 +4082,12 @@ _081008C4: _081008C6: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gBattleAnimArgs @@ -4346,13 +4346,13 @@ sub_8100AE0: @ 8100AE0 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -4444,7 +4444,7 @@ _08100BA8: movs r4, 0x2 eors r0, r4 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] @@ -4456,12 +4456,12 @@ _08100BC8: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] @@ -4477,7 +4477,7 @@ _08100BC8: mov r2, r8 eors r0, r2 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -4486,7 +4486,7 @@ _08100BC8: mov r1, r8 eors r0, r1 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -4497,13 +4497,13 @@ _08100C24: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] _08100C34: movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 _08100C3E: @@ -5093,14 +5093,14 @@ sub_81010CC: @ 81010CC ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =0x0000ffe8 @@ -5470,7 +5470,7 @@ _081013C4: bne _081013E8 adds r0, r6, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -5481,14 +5481,14 @@ _081013C4: _081013E8: adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 _081013FA: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -5888,14 +5888,14 @@ _08101718: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -6930,7 +6930,7 @@ _08101F5C: _08101F5E: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -6938,7 +6938,7 @@ _08101F5E: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -6965,7 +6965,7 @@ sub_8101FA8: @ 8101FA8 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =0x0000ffd0 @@ -6973,7 +6973,7 @@ sub_8101FA8: @ 8101FA8 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -6995,7 +6995,7 @@ sub_8101FF0: @ 8101FF0 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleAnimArgs @@ -7007,7 +7007,7 @@ sub_8101FF0: @ 8101FF0 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -7123,7 +7123,7 @@ _081020F4: _081020F6: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -7131,7 +7131,7 @@ _081020F6: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7194,14 +7194,14 @@ sub_810217C: @ 810217C ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0xC @@ -7319,7 +7319,7 @@ sub_8102268: @ 8102268 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r5, =gBattleAnimArgs lsrs r0, 24 @@ -7328,7 +7328,7 @@ sub_8102268: @ 8102268 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x2] @@ -7468,13 +7468,13 @@ _08102390: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -7676,7 +7676,7 @@ sub_8102540: @ 8102540 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r2, =gBattleAnimArgs lsrs r0, 24 @@ -8071,7 +8071,7 @@ _08102862: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6] @@ -8079,7 +8079,7 @@ _08102862: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] @@ -8660,12 +8660,12 @@ _08102D34: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 24 _08102D4E: @@ -8870,7 +8870,7 @@ sub_8102EB0: @ 8102EB0 _08102ECE: ldrb r0, [r7] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -8880,7 +8880,7 @@ _08102ECE: strh r0, [r6, 0x20] ldrb r0, [r7] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] @@ -9005,14 +9005,14 @@ _08102FDE: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x8 @@ -9167,7 +9167,7 @@ _08103136: strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 adds r0, r5, 0 movs r1, 0 @@ -9334,7 +9334,7 @@ _081032A2: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r6, 0 @@ -9719,13 +9719,13 @@ sub_810358C: @ 810358C ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -10140,7 +10140,7 @@ _0810390E: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r6, =gBattleAnimArgs lsrs r0, 24 @@ -10151,7 +10151,7 @@ _0810390E: mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x6] @@ -10719,7 +10719,7 @@ _08103DB6: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition ldr r1, =gTasks mov r3, r8 adds r4, r3, r7 @@ -10731,7 +10731,7 @@ _08103DB6: adds r6, r0, 0 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -10762,13 +10762,13 @@ _08103E20: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r1, r10 @@ -11053,12 +11053,12 @@ sub_8104088: @ 8104088 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -11203,13 +11203,13 @@ sub_81041C4: @ 81041C4 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -11426,14 +11426,14 @@ _08104390: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 add r0, r8 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -11513,7 +11513,7 @@ _08104448: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 add r0, r9 @@ -11522,7 +11522,7 @@ _08104448: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -12356,7 +12356,7 @@ sub_8104B1C: @ 8104B1C bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -12370,7 +12370,7 @@ _08104B50: bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x20 @@ -12381,7 +12381,7 @@ _08104B6A: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -12432,7 +12432,7 @@ _08104BCA: _08104BE4: adds r0, r5, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -12441,7 +12441,7 @@ _08104BE4: strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x4] @@ -12962,7 +12962,7 @@ sub_810501C: @ 810501C ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -13231,7 +13231,7 @@ _08105230: adds r0, r5, 0 movs r1, 0x2 _08105234: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 @@ -13341,7 +13341,7 @@ _08105310: beq _0810536C adds r0, r7, 0 mov r1, r10 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -13372,7 +13372,7 @@ _0810535C: _0810536C: adds r0, r7, 0 mov r1, r10 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleAnimArgs @@ -13442,7 +13442,7 @@ _081053FA: strb r0, [r1] adds r0, r7, 0 ldr r1, [sp, 0x4] - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -13473,13 +13473,13 @@ _0810544C: mov r4, sp mov r0, r8 mov r1, r10 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, r8 ldr r1, [sp, 0x4] - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r2, sp @@ -14295,13 +14295,13 @@ sub_8105AAC: @ 8105AAC ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14700,7 +14700,7 @@ _08105E08: strh r0, [r5, 0x2E] ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -14708,7 +14708,7 @@ _08105E08: strh r0, [r5, 0x32] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -15075,7 +15075,7 @@ sub_8106140: @ 8106140 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -15083,7 +15083,7 @@ sub_8106140: @ 8106140 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -15776,13 +15776,13 @@ sub_810673C: @ 810673C ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -15927,13 +15927,13 @@ sub_8106878: @ 8106878 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16032,13 +16032,13 @@ sub_8106944: @ 8106944 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16513,13 +16513,13 @@ _08106CFC: _08106CFE: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16666,7 +16666,7 @@ _08106E1E: _08106E38: adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r7, =gBattleAnimArgs lsrs r0, 24 @@ -16676,7 +16676,7 @@ _08106E38: strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x4] @@ -17019,13 +17019,13 @@ _081070F8: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x28 @@ -17204,7 +17204,7 @@ sub_8107260: @ 8107260 beq _08107290 ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r4, =gBattleAnimArgs @@ -17215,7 +17215,7 @@ sub_8107260: @ 8107260 _08107290: ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -17225,7 +17225,7 @@ _081072A2: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -17256,7 +17256,7 @@ _081072D8: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] @@ -17264,7 +17264,7 @@ _081072D8: strh r0, [r6, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] @@ -17448,7 +17448,7 @@ _08107482: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -17457,7 +17457,7 @@ _08107482: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r7, [r7, 0x6] @@ -17624,7 +17624,7 @@ sub_81075EC: @ 81075EC ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -17632,7 +17632,7 @@ sub_81075EC: @ 81075EC strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -17776,13 +17776,13 @@ sub_8107730: @ 8107730 ldr r7, =gAnimBankAttacker ldrb r0, [r7] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r7] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -17913,7 +17913,7 @@ _08107842: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x4] @@ -17921,7 +17921,7 @@ _08107842: strh r0, [r6, 0x32] ldrb r0, [r4] adds r1, r7, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -19353,13 +19353,13 @@ sub_8108408: @ 8108408 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 movs r5, 0xAC @@ -19959,14 +19959,14 @@ sub_81088E4: @ 81088E4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] @@ -20234,7 +20234,7 @@ _08108B1A: sub_8108B2C: @ 8108B2C push {r4-r6,lr} adds r6, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08108BD0 @@ -20421,13 +20421,13 @@ sub_8108C94: @ 8108C94 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -21131,7 +21131,7 @@ sub_8109244: @ 8109244 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -21139,7 +21139,7 @@ sub_8109244: @ 8109244 strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -21167,13 +21167,13 @@ sub_810929C: @ 810929C ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] @@ -22359,7 +22359,7 @@ _08109BCE: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -22367,7 +22367,7 @@ _08109BCE: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -23181,13 +23181,13 @@ sub_810A274: @ 810A274 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -23307,7 +23307,7 @@ _0810A384: bne _0810A3AC adds r0, r4, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -23318,14 +23318,14 @@ _0810A384: _0810A3AC: adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x3 _0810A3BE: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -23420,7 +23420,7 @@ sub_810A46C: @ 810A46C ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -23428,7 +23428,7 @@ sub_810A46C: @ 810A46C strh r0, [r4, 0x34] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -23591,7 +23591,7 @@ _0810A5E0: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -23600,7 +23600,7 @@ _0810A5E0: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -23657,7 +23657,7 @@ _0810A666: _0810A66E: adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -23666,7 +23666,7 @@ _0810A66E: strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -23830,7 +23830,7 @@ sub_810A7DC: @ 810A7DC ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition ldr r1, =gTasks lsls r4, r5, 2 adds r4, r5 @@ -23844,7 +23844,7 @@ sub_810A7DC: @ 810A7DC strh r0, [r4, 0x8] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] @@ -24228,13 +24228,13 @@ _0810AB28: _0810AB2A: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] @@ -24448,13 +24448,13 @@ _0810ACF4: _0810ACF6: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24486,13 +24486,13 @@ _0810AD4C: _0810AD4E: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24521,13 +24521,13 @@ sub_810AD98: @ 810AD98 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24649,7 +24649,7 @@ _0810AE90: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -24855,13 +24855,13 @@ _0810B012: _0810B048: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -24881,13 +24881,13 @@ _0810B070: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r2, 0xA @@ -25127,13 +25127,13 @@ _0810B24E: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -25194,13 +25194,13 @@ _0810B2DC: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -25209,7 +25209,7 @@ _0810B2DC: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] @@ -25542,7 +25542,7 @@ _0810B58A: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -25564,7 +25564,7 @@ _0810B5B4: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -25724,26 +25724,26 @@ sub_810B6C4: @ 810B6C4 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gBattleAnimArgs @@ -25979,7 +25979,7 @@ sub_810B8EC: @ 810B8EC ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -26006,7 +26006,7 @@ _0810B936: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -26133,13 +26133,13 @@ sub_810BA24: @ 810BA24 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -26434,13 +26434,13 @@ sub_810BC94: @ 810BC94 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -27182,13 +27182,13 @@ sub_810C2F0: @ 810C2F0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -27460,12 +27460,12 @@ sub_810C560: @ 810C560 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldr r7, =gAnimBankTarget ldrb r0, [r7] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -27526,13 +27526,13 @@ _0810C5F4: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -27548,7 +27548,7 @@ _0810C5F4: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27570,7 +27570,7 @@ _0810C65C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27583,7 +27583,7 @@ _0810C65C: ldrb r0, [r4] movs r1, 0x1 _0810C684: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x8] @@ -27679,7 +27679,7 @@ _0810C736: ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] @@ -28062,12 +28062,12 @@ sub_810C9E4: @ 810C9E4 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 mov r1, r8 @@ -28384,7 +28384,7 @@ _0810CCCE: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -28392,7 +28392,7 @@ _0810CCCE: strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -28414,7 +28414,7 @@ _0810CCCE: sub_810CD1C: @ 810CD1C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810CD3E @@ -28705,13 +28705,13 @@ _0810CF74: bl StartSpriteAnim mov r0, r8 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29149,13 +29149,13 @@ sub_810D308: @ 810D308 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29275,13 +29275,13 @@ _0810D428: _0810D42A: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29389,7 +29389,7 @@ sub_810D4F4: @ 810D4F4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x4] @@ -29400,7 +29400,7 @@ _0810D520: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -29409,7 +29409,7 @@ _0810D532: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -29523,13 +29523,13 @@ sub_810D608: @ 810D608 ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29601,7 +29601,7 @@ sub_810D6A8: @ 810D6A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -29611,7 +29611,7 @@ sub_810D6A8: @ 810D6A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -29715,13 +29715,13 @@ _0810D7C2: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 @@ -29729,14 +29729,14 @@ _0810D7C2: mov r8, r2 ldrb r0, [r2] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 subs r4, r6 strh r4, [r7, 0x2E] @@ -29811,13 +29811,13 @@ sub_810D874: @ 810D874 ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29879,7 +29879,7 @@ _0810D918: strh r0, [r5, 0x30] adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -29887,7 +29887,7 @@ _0810D918: strh r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29932,13 +29932,13 @@ sub_810D984: @ 810D984 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -30208,13 +30208,13 @@ _0810DBC2: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -30234,7 +30234,7 @@ _0810DBC2: sub_810DC10: @ 810DC10 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810DC24 @@ -30309,7 +30309,7 @@ _0810DC72: sub_810DCB4: @ 810DCB4 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810DCC8 @@ -30699,7 +30699,7 @@ _0810DFC8: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -30709,7 +30709,7 @@ _0810DFC8: strh r0, [r6, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -30782,13 +30782,13 @@ _0810E070: _0810E088: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r2, =gBattleAnimArgs ldrh r1, [r2] @@ -30808,13 +30808,13 @@ _0810E088: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -30958,7 +30958,7 @@ _0810E1FE: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -30966,7 +30966,7 @@ _0810E1FE: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -31118,7 +31118,7 @@ _0810E33E: _0810E354: adds r0, r6, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -31127,7 +31127,7 @@ _0810E354: strh r0, [r7, 0x20] adds r0, r6, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldrh r1, [r4, 0x2] lsrs r0, 24 @@ -32064,13 +32064,13 @@ sub_810EA4C: @ 810EA4C ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32240,13 +32240,13 @@ sub_810EB88: @ 810EB88 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -32344,7 +32344,7 @@ _0810ECB0: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32553,13 +32553,13 @@ _0810EE40: _0810EE42: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -32708,13 +32708,13 @@ _0810EF74: _0810EF76: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -32864,14 +32864,14 @@ sub_810F084: @ 810F084 ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -33139,7 +33139,7 @@ _0810F2B8: _0810F2CE: ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -33148,7 +33148,7 @@ _0810F2CE: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -33571,13 +33571,13 @@ sub_810F634: @ 810F634 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -33656,14 +33656,14 @@ sub_810F6B0: @ 810F6B0 _0810F6F6: ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -33955,13 +33955,13 @@ sub_810F940: @ 810F940 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -34263,13 +34263,13 @@ sub_810FBA8: @ 810FBA8 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -34508,7 +34508,7 @@ _0810FDE8: sub_810FDF0: @ 810FDF0 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810FE0E @@ -35065,13 +35065,13 @@ _08110260: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -35254,7 +35254,7 @@ _081103C4: strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -35262,7 +35262,7 @@ _081103C4: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -35333,13 +35333,13 @@ _08110478: strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] @@ -35387,13 +35387,13 @@ _08110500: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -35715,7 +35715,7 @@ _081107B2: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 ldr r6, =gBattleAnimArgs @@ -35726,7 +35726,7 @@ _081107B2: lsrs r4, 16 ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -35797,7 +35797,7 @@ _08110870: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -35805,7 +35805,7 @@ _08110870: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -35844,7 +35844,7 @@ sub_81108CC: @ 81108CC ands r1, r0 strb r1, [r2] adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _08110988 @@ -35949,13 +35949,13 @@ _081109B0: _081109B2: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x12 @@ -36623,13 +36623,13 @@ sub_8110F74: @ 8110F74 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0xC0 @@ -36639,13 +36639,13 @@ sub_8110F74: @ 8110F74 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r2, 0xC0 @@ -37059,7 +37059,7 @@ _08111304: sub_811131C: @ 811131C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0811134E @@ -37219,13 +37219,13 @@ sub_8111444: @ 8111444 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimArgs @@ -37446,7 +37446,7 @@ sub_811160C: @ 811160C ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -37454,7 +37454,7 @@ sub_811160C: @ 811160C strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -37929,7 +37929,7 @@ sub_81119E0: @ 81119E0 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -37938,7 +37938,7 @@ sub_81119E0: @ 81119E0 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -38045,13 +38045,13 @@ _08111AD2: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -38107,13 +38107,13 @@ _08111B3C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -38982,12 +38982,12 @@ sub_8112264: @ 8112264 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -39001,12 +39001,12 @@ _081122AC: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -39017,13 +39017,13 @@ _081122AC: _081122D0: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0xE0 @@ -39169,7 +39169,7 @@ sub_81123C4: @ 81123C4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] @@ -39221,7 +39221,7 @@ _08112436: beq _08112502 adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -40198,7 +40198,7 @@ sub_8112C6C: @ 8112C6C ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -40682,13 +40682,13 @@ sub_8113064: @ 8113064 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -40755,13 +40755,13 @@ sub_8113100: @ 8113100 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -40842,13 +40842,13 @@ _081131D0: _081131D2: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -40901,14 +40901,14 @@ sub_8113250: @ 8113250 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] @@ -41358,14 +41358,14 @@ sub_81135EC: @ 81135EC mov r8, r1 ldrb r0, [r1] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] mov r2, r8 ldrb r0, [r2] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r3, [r5, 0x8] @@ -41693,26 +41693,26 @@ sub_81138D4: @ 81138D4 ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -42031,7 +42031,7 @@ _08113B60: sub_8113B90: @ 8113B90 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08113BA4 @@ -42057,7 +42057,7 @@ sub_8113BAC: @ 8113BAC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -42076,7 +42076,7 @@ sub_8113BAC: @ 8113BAC strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -42475,7 +42475,7 @@ _08113F84: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -42492,7 +42492,7 @@ _08113F84: strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x4 @@ -43658,13 +43658,13 @@ sub_8114994: @ 8114994 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -43673,13 +43673,13 @@ sub_8114994: @ 8114994 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -43699,7 +43699,7 @@ sub_8114994: @ 8114994 sub_81149FC: @ 81149FC push {r4,r5,lr} adds r5, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08114A50 @@ -43719,13 +43719,13 @@ sub_81149FC: @ 81149FC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -43746,7 +43746,7 @@ _08114A50: sub_8114A60: @ 8114A60 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08114A74 @@ -43781,7 +43781,7 @@ _08114A9C: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -43789,7 +43789,7 @@ _08114A9C: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -43893,7 +43893,7 @@ sub_8114B80: @ 8114B80 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x2] @@ -43901,7 +43901,7 @@ sub_8114B80: @ 8114B80 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] @@ -44657,7 +44657,7 @@ _081151BE: _081151DA: adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -44693,7 +44693,7 @@ _081151DA: sub_8115228: @ 8115228 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0811523C @@ -44723,7 +44723,7 @@ _08115262: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r2, =0x0000fff0 @@ -45244,7 +45244,7 @@ _0811565A: adds r4, r0 adds r0, r5, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x20 @@ -45255,7 +45255,7 @@ _0811565A: strh r1, [r4, 0xA] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x40 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index d2a401f59..611e4b067 100755 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -90,7 +90,7 @@ sub_815A160: @ 815A160 ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 8 @@ -100,7 +100,7 @@ sub_815A160: @ 815A160 asrs r4, 16 ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 @@ -210,13 +210,13 @@ sub_815A254: @ 815A254 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -816,7 +816,7 @@ _0815A6F8: sub_815A73C: @ 815A73C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0815A75E @@ -1254,13 +1254,13 @@ sub_815AAA4: @ 815AAA4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1510,7 +1510,7 @@ _0815ACEC: _0815ACEE: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] @@ -1518,7 +1518,7 @@ _0815ACEE: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1906,13 +1906,13 @@ sub_815AFF0: @ 815AFF0 ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] @@ -2281,13 +2281,13 @@ _0815B2D8: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -2373,13 +2373,13 @@ _0815B3BE: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -2817,7 +2817,7 @@ _0815B71E: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -3624,14 +3624,14 @@ _0815BE2E: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -4994,13 +4994,13 @@ sub_815C95C: @ 815C95C ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -5531,13 +5531,13 @@ sub_815CDB4: @ 815CDB4 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -5842,13 +5842,13 @@ _0815D05A: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 mov r2, r10 lsls r1, r2, 16 @@ -6840,7 +6840,7 @@ _0815D896: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -6848,7 +6848,7 @@ _0815D896: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7382,13 +7382,13 @@ _0815DCEA: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -7789,7 +7789,7 @@ sub_815E01C: @ 815E01C _0815E038: ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -7798,7 +7798,7 @@ _0815E038: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -7931,7 +7931,7 @@ _0815E14E: bne _0815E188 ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7951,7 +7951,7 @@ _0815E17C: _0815E188: ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7971,7 +7971,7 @@ _0815E1AC: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7990,13 +7990,13 @@ _0815E1D0: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] @@ -8349,14 +8349,14 @@ sub_815E47C: @ 815E47C mov r10, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] @@ -8364,14 +8364,14 @@ sub_815E47C: @ 815E47C mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] @@ -8524,7 +8524,7 @@ _0815E5FE: lsls r0, 2 ldr r1, =gSprites adds r0, r1 - bl sub_80A6900 + bl AnimateBallThrow 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 sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0815E6D2 @@ -8659,7 +8659,7 @@ _0815E724: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -8950,7 +8950,7 @@ _0815E970: _0815E972: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -9342,7 +9342,7 @@ sub_815EC48: @ 815EC48 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -9350,7 +9350,7 @@ sub_815EC48: @ 815EC48 movs r0, 0x2 eors r0, r1 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -9771,14 +9771,14 @@ _0815EFEC: lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r1, r0, 24 _0815F00C: @@ -9994,10 +9994,10 @@ sub_815F18C: @ 815F18C ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -10387,7 +10387,7 @@ _0815F4C8: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -11180,7 +11180,7 @@ _0815FB50: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 lsls r3, r5, 16 @@ -11318,7 +11318,7 @@ _0815FC56: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11331,7 +11331,7 @@ _0815FCB4: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11469,7 +11469,7 @@ _0815FD8C: mov r1, r10 ldrb r0, [r1] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -11499,7 +11499,7 @@ _0815FE0C: mov r2, r10 ldrb r0, [r2] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -11566,7 +11566,7 @@ _0815FE92: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -11724,14 +11724,14 @@ _08160008: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 @@ -12169,7 +12169,7 @@ sub_81603A8: @ 81603A8 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index a5e3b5f88..635c02e03 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -886,7 +886,7 @@ _08170C08: bl GetMonData lsls r0, 16 lsrs r0, 16 - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -907,13 +907,13 @@ _08170C44: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition adds r1, r0, 0 lsls r1, 24 ldr r2, =gSprites @@ -934,7 +934,7 @@ _08170C44: mov r0, r8 str r0, [sp] adds r0, r4, 0 - bl sub_8171D98 + bl LaunchBallStarsTask lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1C] @@ -950,7 +950,7 @@ _08170C44: ldrb r1, [r5] movs r0, 0 mov r3, r8 - bl sub_81729E8 + bl LaunchBallFadeMonTask lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1E] @@ -998,10 +998,10 @@ sub_8170CFC: @ 8170CFC lsrs r4, 24 ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r0, 24 - bl sub_8076A78 + bl LoadBallGfx adds r0, r4, 0 bl DestroyAnimVisualTask pop {r4} @@ -1018,10 +1018,10 @@ sub_8170D24: @ 8170D24 lsrs r4, 24 ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r0, 24 - bl sub_8076AE8 + bl FreeBallGfx adds r0, r4, 0 bl DestroyAnimVisualTask pop {r4} @@ -1057,8 +1057,8 @@ _08170D74: .pool thumb_func_end sub_8170D4C - thumb_func_start ball_number_to_ball_processing_index -ball_number_to_ball_processing_index: @ 8170D84 + thumb_func_start ItemIdToBallId +ItemIdToBallId: @ 8170D84 push {lr} lsls r0, 16 lsrs r0, 16 @@ -1123,7 +1123,7 @@ _08170DFC: _08170DFE: pop {r1} bx r1 - thumb_func_end ball_number_to_ball_processing_index + thumb_func_end ItemIdToBallId thumb_func_start sub_8170E04 sub_8170E04: @ 8170E04 @@ -1138,14 +1138,14 @@ sub_8170E04: @ 8170E04 mov r10, r0 ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 - ldr r1, =gUnknown_0832C588 + ldr r1, =gBallSpriteTemplates adds r0, r1 movs r1, 0x20 movs r2, 0x50 @@ -1166,14 +1166,14 @@ sub_8170E04: @ 8170E04 mov r8, r2 ldrb r0, [r2] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1278,7 +1278,7 @@ _08170F50: _08170F54: ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -1294,7 +1294,7 @@ _08170F54: lsls r0, r4, 1 adds r0, r4 lsls r0, 3 - ldr r1, =gUnknown_0832C588 + ldr r1, =gBallSpriteTemplates adds r0, r1 adds r1, r6, 0 adds r1, 0x20 @@ -1317,14 +1317,14 @@ _08170F54: mov r8, r1 ldrb r0, [r1] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1487,7 +1487,7 @@ sub_8171134: @ 8171134 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081711D2 @@ -1532,7 +1532,7 @@ _08171188: str r0, [r4, 0x1C] ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB @@ -1549,13 +1549,13 @@ _08171188: str r5, [sp] movs r2, 0x1 movs r3, 0x1C - bl sub_8171D98 + bl LaunchBallStarsTask ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE adds r3, r5, 0 - bl sub_81729E8 + bl LaunchBallFadeMonTask _081711D2: add sp, 0x4 pop {r4,r5} @@ -2671,7 +2671,7 @@ sub_8171AAC: @ 8171AAC orrs r0, r1 strb r0, [r3] adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08171ADC @@ -2697,7 +2697,7 @@ sub_8171AE4: @ 8171AE4 str r0, [r4, 0x1C] ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB @@ -2714,13 +2714,13 @@ sub_8171AE4: @ 8171AE4 str r5, [sp] movs r2, 0x1 movs r3, 0x1C - bl sub_8171D98 + bl LaunchBallStarsTask ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE adds r3, r5, 0 - bl sub_81729E8 + bl LaunchBallFadeMonTask _08171B36: ldr r6, =gSprites ldr r5, =gBankSpriteIds @@ -3007,8 +3007,8 @@ _08171D86: .pool thumb_func_end sub_8171D60 - thumb_func_start sub_8171D98 -sub_8171D98: @ 8171D98 + thumb_func_start LaunchBallStarsTask +LaunchBallStarsTask: @ 8171D98 push {r4-r6,lr} mov r6, r10 mov r5, r9 @@ -3070,7 +3070,7 @@ sub_8171D98: @ 8171D98 pop {r1} bx r1 .pool - thumb_func_end sub_8171D98 + thumb_func_end LaunchBallStarsTask thumb_func_start sub_8171E20 sub_8171E20: @ 8171E20 @@ -4476,8 +4476,8 @@ _081729E2: bx r0 thumb_func_end sub_8172944 - thumb_func_start sub_81729E8 -sub_81729E8: @ 81729E8 + thumb_func_start LaunchBallFadeMonTask +LaunchBallFadeMonTask: @ 81729E8 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -4563,7 +4563,7 @@ _08172A7E: pop {r1} bx r1 .pool - thumb_func_end sub_81729E8 + thumb_func_end LaunchBallFadeMonTask thumb_func_start sub_8172AB0 sub_8172AB0: @ 8172AB0 @@ -5234,12 +5234,12 @@ _0817303A: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1E @@ -5579,7 +5579,7 @@ sub_817330C: @ 817330C lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r5, =gBattleAnimArgs lsrs r0, 24 @@ -5591,7 +5591,7 @@ sub_817330C: @ 817330C lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -5652,7 +5652,7 @@ _081733C0: sub_81733D4: @ 81733D4 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081733F6 diff --git a/asm/contest.s b/asm/contest.s index 88d4203ab..100406da8 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -13829,13 +13829,13 @@ sub_80DEA5C: @ 80DEA5C strh r0, [r4, 0x26] movs r0, 0x3 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] movs r0, 0x3 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] diff --git a/asm/pokeball.s b/asm/pokeball.s index b4fc36d97..a512fd857 100755 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -5,1678 +5,11 @@ .text - thumb_func_start sub_80753E8 -sub_80753E8: @ 80753E8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r6, =gActiveBank - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - ldr r0, =sub_8075450 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - ldrb r0, [r6] - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80753E8 - - thumb_func_start sub_8075450 -sub_8075450: @ 8075450 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - str r0, [sp] - ldr r1, =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08075488 - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - b _08075602 - .pool -_08075488: - ldrh r0, [r1, 0xC] - mov r8, r0 - ldrb r5, [r1, 0xE] - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080754B4 - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _080754C2 - .pool -_080754B4: - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_080754C2: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8076A78 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, =gUnknown_0832C588 - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gSprites - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - adds r4, r6, r2 - movs r0, 0x80 - strh r0, [r4, 0x2E] - movs r3, 0 - strh r3, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x3C] - mov r2, r8 - cmp r2, 0xFE - beq _08075548 - cmp r2, 0xFF - bne _08075584 - ldr r0, =gBankTarget - strb r5, [r0] - movs r0, 0x18 - strh r0, [r4, 0x20] - movs r0, 0x44 - strh r0, [r4, 0x22] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =sub_80761B4 - str r1, [r0] - b _08075592 - .pool -_08075548: - adds r0, r5, 0 - movs r1, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x22] - ldr r0, =gBankTarget - strb r5, [r0] - movs r3, 0 - strh r3, [r4, 0x2E] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =sub_8076398 - str r1, [r0] - b _08075592 - .pool -_08075584: - movs r0, 0x1 - bl GetBankByIdentity - ldr r1, =gBankTarget - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] -_08075592: - ldr r0, =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r4, r1, r0 - ldr r5, =gBankTarget - ldrb r0, [r5] - strh r0, [r4, 0x3A] - ldr r2, [sp] - cmp r2, 0 - bne _080755B8 - mov r0, r10 - bl DestroyTask - b _08075602 - .pool -_080755B8: - movs r0, 0x22 - strh r0, [r4, 0x2E] - ldrb r0, [r5] - movs r1, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r4, 0x36] - ldr r0, =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80A68D4 - mov r3, r10 - strh r3, [r4, 0x6] - ldr r1, =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r5] - strh r1, [r0, 0x10] - ldr r1, =TaskDummy - str r1, [r0] - movs r0, 0x3D - bl PlaySE -_08075602: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075450 - - thumb_func_start objc_0804ABD4 -objc_0804ABD4: @ 8075620 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_80A6900 - lsls r0, 24 - cmp r0, 0 - beq _080756C0 - ldrb r6, [r7, 0x6] - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x10] - ldrb r0, [r0, 0xC] - mov r8, r0 - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r2, [r7, 0x22] - adds r0, r2 - strh r0, [r7, 0x22] - strh r1, [r7, 0x24] - strh r1, [r7, 0x26] - strh r1, [r7, 0x38] - adds r0, r5, 0 - bl sub_8076B14 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r7, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_8171D98 - movs r0, 0 - adds r1, r5, 0 - movs r2, 0xE - adds r3, r4, 0 - bl sub_81729E8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2E] - strh r5, [r7, 0x3A] - mov r0, r8 - strh r0, [r7, 0x3C] - adds r0, r6, 0 - bl DestroyTask - ldr r0, =sub_80756D4 - str r0, [r7, 0x1C] -_080756C0: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end objc_0804ABD4 - - thumb_func_start sub_80756D4 -sub_80756D4: @ 80756D4 - ldr r1, =sub_80756E0 - str r1, [r0, 0x1C] - bx lr - .pool - thumb_func_end sub_80756D4 - - thumb_func_start sub_80756E0 -sub_80756E0: @ 80756E0 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x38] - adds r0, 0x1 - movs r7, 0 - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0807573A - strh r7, [r6, 0x38] - ldr r0, =sub_807574C - str r0, [r6, 0x1C] - ldr r5, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - movs r1, 0x2 - bl StartSpriteAffineAnim - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x30] -_0807573A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80756E0 - - thumb_func_start sub_807574C -sub_807574C: @ 807574C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _08075764 - movs r0, 0x3C - bl PlaySE -_08075764: - ldr r6, =gSprites - ldr r5, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080757BC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r2, 0x3A - ldrsh r0, [r4, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, =sub_80757E4 - str r0, [r4, 0x1C] - b _080757DC - .pool -_080757BC: - ldrh r0, [r1, 0x30] - adds r0, 0x60 - strh r0, [r1, 0x30] - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r2, 0x30 - ldrsh r0, [r1, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] -_080757DC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_807574C - - thumb_func_start sub_80757E4 -sub_80757E4: @ 80757E4 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0807582C - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _0807582C - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, =sub_8075838 - str r0, [r4, 0x1C] -_0807582C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80757E4 - - thumb_func_start sub_8075838 -sub_8075838: @ 8075838 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _0807584E - cmp r1, 0x1 - beq _080758C2 - b _080758EE -_0807584E: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _080758EE - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, =0x00000101 - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _0807588A - movs r5, 0x1 -_0807588A: - cmp r0, 0x2 - beq _080758AA - cmp r0, 0x2 - bgt _0807589C - cmp r0, 0x1 - beq _080758A2 - b _080758BA - .pool -_0807589C: - cmp r0, 0x3 - beq _080758B2 - b _080758BA -_080758A2: - movs r0, 0x38 - bl PlaySE - b _080758EE -_080758AA: - movs r0, 0x39 - bl PlaySE - b _080758EE -_080758B2: - movs r0, 0x3A - bl PlaySE - b _080758EE -_080758BA: - movs r0, 0x3B - bl PlaySE - b _080758EE -_080758C2: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _080758EE - strh r5, [r4, 0x38] - ldr r0, =0xffffff00 - ands r0, r2 - strh r0, [r4, 0x34] -_080758EE: - cmp r5, 0 - beq _08075926 - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0807591C - ldr r0, =sub_8075D14 - str r0, [r4, 0x1C] - b _08075926 - .pool -_0807591C: - ldr r0, =sub_8075930 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_08075926: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075838 - thumb_func_start sub_8075930 -sub_8075930: @ 8075930 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08075964 - movs r0, 0 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, =sub_8075970 - str r0, [r4, 0x1C] - movs r0, 0x17 - bl PlaySE -_08075964: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075930 - thumb_func_start sub_8075970 -sub_8075970: @ 8075970 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x4 - bhi _08075A70 - lsls r0, r1, 2 - ldr r1, =_0807598C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0807598C: - .4byte _080759A0 - .4byte _080759D2 - .4byte _080759A0 - .4byte _08075A26 - .4byte _08075A70 -_080759A0: - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _08075AB6 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - movs r0, 0 - strh r0, [r4, 0x38] - b _08075AB6 -_080759D2: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08075A18 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _08075A0E - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08075AB6 -_08075A0E: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _08075AB6 -_08075A18: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08075AB6 -_08075A26: - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r2, [r4, 0x34] - adds r0, r2 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08075A48 - ldr r0, =sub_8075D14 - str r0, [r4, 0x1C] - b _08075AB6 - .pool -_08075A48: - cmp r1, 0x4 - bne _08075A5C - cmp r0, 0x3 - bne _08075A5C - ldr r0, =sub_8075FB4 - str r0, [r4, 0x1C] - b _08075A62 - .pool -_08075A5C: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_08075A62: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _08075AB6 -_08075A70: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08075AB6 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, =0xffffff00 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _08075AA8 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08075AB0 - .pool -_08075AA8: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08075AB0: - movs r0, 0x17 - bl PlaySE -_08075AB6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075970 - - thumb_func_start c3_0804B070 -c3_0804B070: @ 8075ABC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0xC] - mov r12, r1 - ldrb r5, [r0, 0xA] - ldrh r6, [r0, 0x8] - ldrb r3, [r0, 0xE] - mov r8, r3 - ldrb r7, [r0, 0x10] - movs r3, 0x12 - ldrsh r1, [r0, r3] - lsls r3, r1, 16 - ldrh r1, [r0, 0x14] - orrs r3, r1 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0x20 - bhi _08075B88 - lsls r0, 2 - ldr r1, =_08075B04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08075B04: - .4byte _08075B88 - .4byte _08075BB4 - .4byte _08075BDA - .4byte _08075C54 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075BF8 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075C66 - .4byte _08075C7E - .4byte _08075CA8 -_08075B88: - ldr r0, =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - adds r1, 0x3F - ldrb r0, [r1] - lsls r0, 26 - cmp r0, 0 - blt _08075B9E - b _08075D04 -_08075B9E: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - mov r1, r12 - adds r1, 0x1 - strh r1, [r0, 0x26] - b _08075D04 - .pool -_08075BB4: - adds r0, r3, 0 - bl ShouldPlayNormalPokeCry - cmp r0, 0x1 - bne _08075BCC - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0 - bl PlayCry3 - b _08075C2E -_08075BCC: - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xB - bl PlayCry3 - b _08075C2E -_08075BDA: - bl StopCryAndClearCrySongs - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x1C] - movs r1, 0x14 - strh r1, [r0, 0x26] - b _08075D04 - .pool -_08075BF8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r7, 0x1C - ldrsh r0, [r1, r7] - cmp r0, 0 - bne _08075CBA - adds r0, r3, 0 - bl ShouldPlayNormalPokeCry - cmp r0, 0x1 - bne _08075C22 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0x1 - bl PlayCry4 - b _08075C2E -_08075C22: - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xC - bl PlayCry4 -_08075C2E: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - mov r2, r8 - lsls r1, r2, 1 - add r1, r8 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - bl DestroyTask - b _08075D04 - .pool -_08075C54: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x1C] - movs r1, 0x1E - strh r1, [r0, 0x26] - b _08075D04 -_08075C66: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r3, 0x1C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08075CBA - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] -_08075C7E: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - bne _08075D04 - bl StopCryAndClearCrySongs - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08075D04 - .pool -_08075CA8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r7, 0x1C - ldrsh r0, [r1, r7] - cmp r0, 0 - beq _08075CC0 -_08075CBA: - subs r0, r2, 0x1 - strh r0, [r1, 0x1C] - b _08075D04 -_08075CC0: - adds r0, r3, 0 - bl ShouldPlayNormalPokeCry - cmp r0, 0x1 - bne _08075CD8 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0 - bl PlayCry4 - b _08075CE4 -_08075CD8: - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xB - bl PlayCry4 -_08075CE4: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - mov r2, r8 - lsls r1, r2, 1 - add r1, r8 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - bl DestroyTask -_08075D04: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c3_0804B070 - - thumb_func_start sub_8075D14 -sub_8075D14: @ 8075D14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_8076B14 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_8171D98 - ldrh r1, [r6, 0x3A] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0xE - adds r3, r4, 0 - bl sub_81729E8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x2E] - ldr r0, =sub_8075FD4 - str r0, [r6, 0x1C] - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08075D88 - b _08075EF4 -_08075D88: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _08075DC0 - ldr r0, =gBattlePartyID - lsls r2, r5, 1 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r7, r1, r0 - movs r4, 0x19 - mov r10, r4 - b _08075DD4 - .pool -_08075DC0: - ldr r0, =gBattlePartyID - lsls r2, r5, 1 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - movs r0, 0xE7 - mov r10, r0 -_08075DD4: - mov r8, r2 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08075E00 - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08075E56 -_08075E00: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08075E56 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08075E56 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _08075E4C - bl IsBGMPlaying - lsls r0, 24 - cmp r0, 0 - beq _08075E56 - ldr r0, =gMPlay_BGM - bl m4aMPlayStop - b _08075E56 - .pool -_08075E4C: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl -_08075E56: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08075E70 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08075E80 -_08075E70: - movs r4, 0 - b _08075EA2 - .pool -_08075E80: - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08075E9C - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08075EA0 -_08075E9C: - movs r4, 0x1 - b _08075EA2 -_08075EA0: - movs r4, 0x2 -_08075EA2: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - mov r2, r8 - adds r1, r2, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x1] - ldr r0, =c3_0804B070 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - mov r0, r9 - strh r0, [r1, 0x8] - mov r2, r10 - lsls r0, r2, 24 - asrs r0, 24 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r5, [r1, 0xE] - ldr r2, =gBankSpriteIds - movs r4, 0x3A - ldrsh r0, [r6, r4] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0x10] - lsrs r0, r7, 16 - strh r0, [r1, 0x12] - strh r7, [r1, 0x14] - strh r3, [r1, 0x26] -_08075EF4: - ldr r4, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08075F50 - movs r2, 0x3A - ldrsh r0, [r6, r2] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_8039B58 - b _08075F66 - .pool -_08075F50: - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_8039E44 -_08075F66: - str r1, [r0] - ldr r5, =gBankSpriteIds - movs r2, 0x3A - ldrsh r0, [r6, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075D14 - - thumb_func_start sub_8075FB4 -sub_8075FB4: @ 8075FB4 - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, =sub_80760F8 - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .pool - thumb_func_end sub_8075FB4 - - thumb_func_start sub_8075FD4 -sub_8075FD4: @ 8075FD4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, =gSprites - ldr r0, =gBankSpriteIds - adds r3, r6, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08076016 - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08076016: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08076040 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r7, 0x1 - b _0807605C - .pool -_08076040: - ldr r2, =0xfffffee0 - adds r0, r2, 0 - ldrh r2, [r1, 0x30] - adds r0, r2 - strh r0, [r1, 0x30] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_0807605C: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080760DE - cmp r7, 0 - beq _080760DE - ldr r2, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r0, =gDoingBattleAnim - strb r2, [r0] - ldr r4, =gBattleSpritesDataPtr - ldr r0, [r4] - ldr r0, [r0, 0x4] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite - movs r3, 0 - ldr r0, [r4] - ldr r2, [r0, 0x4] - movs r5, 0x8 - movs r4, 0x3 -_080760B6: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _080760C2 - adds r3, 0x1 -_080760C2: - adds r2, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _080760B6 - cmp r3, 0x4 - bne _080760DE - movs r4, 0 -_080760D0: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8076AE8 - adds r4, 0x1 - cmp r4, 0xB - ble _080760D0 -_080760DE: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075FD4 - - thumb_func_start sub_80760F8 -sub_80760F8: @ 80760F8 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _08076196 - cmp r1, 0x5F - bne _08076130 - ldr r0, =gDoingBattleAnim - movs r1, 0 - strb r1, [r0] - bl m4aMPlayAllStop - ldr r0, =0x00000173 - bl PlaySE - b _08076196 - .pool -_08076130: - ldr r0, =0x0000013b - cmp r1, r0 - bne _08076196 - ldr r5, =gSprites - ldr r4, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r6, 0 - bl DestroySpriteAndFreeResources - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08076196 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08076196: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80760F8 - - thumb_func_start sub_80761B4 -sub_80761B4: @ 80761B4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x19 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x36] - ldr r0, =0x0000ffe2 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x6] - adds r0, r4, 0 - bl sub_80A68D4 - ldr r0, =sub_8076204 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80761B4 - thumb_func_start sub_8076204 -sub_8076204: @ 8076204 + thumb_func_start SpriteCB_PlayerMonSendOut_2 +SpriteCB_PlayerMonSendOut_2: @ 8076204 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1797,7 +130,7 @@ _080762BE: b _08076364 _080762F8: adds r0, r5, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08076364 @@ -1839,7 +172,7 @@ _080762F8: b _0807635A .pool _08076358: - ldr r0, =sub_8075D14 + ldr r0, =SpriteCB_ReleaseMonFromBall _0807635A: str r0, [r5, 0x1C] adds r0, r5, 0 @@ -1852,7 +185,7 @@ _08076364: pop {r0} bx r0 .pool - thumb_func_end sub_8076204 + thumb_func_end SpriteCB_PlayerMonSendOut_2 thumb_func_start sub_8076374 sub_8076374: @ 8076374 @@ -1867,7 +200,7 @@ sub_8076374: @ 8076374 ble _0807638E movs r0, 0 strh r0, [r2, 0x2E] - ldr r0, =sub_8075D14 + ldr r0, =SpriteCB_ReleaseMonFromBall str r0, [r2, 0x1C] _0807638E: pop {r0} @@ -1875,8 +208,8 @@ _0807638E: .pool thumb_func_end sub_8076374 - thumb_func_start sub_8076398 -sub_8076398: @ 8076398 + thumb_func_start SpriteCB_OpponentMonSendOut +SpriteCB_OpponentMonSendOut: @ 8076398 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x2E] @@ -1912,7 +245,7 @@ sub_8076398: @ 8076398 b _080763EA .pool _080763E8: - ldr r0, =sub_8075D14 + ldr r0, =SpriteCB_ReleaseMonFromBall _080763EA: str r0, [r5, 0x1C] _080763EC: @@ -1920,7 +253,7 @@ _080763EC: pop {r0} bx r0 .pool - thumb_func_end sub_8076398 + thumb_func_end SpriteCB_OpponentMonSendOut thumb_func_start sub_80763F8 sub_80763F8: @ 80763F8 @@ -1936,7 +269,7 @@ sub_80763F8: @ 80763F8 lsrs r3, 24 movs r4, 0 str r4, [sp] - bl sub_8171D98 + bl LaunchBallStarsTask lsls r0, 24 lsrs r0, 24 add sp, 0x4 @@ -1953,7 +286,7 @@ sub_8076420: @ 8076420 lsls r1, 24 lsrs r1, 24 movs r3, 0 - bl sub_81729E8 + bl LaunchBallFadeMonTask lsls r0, 24 lsrs r0, 24 pop {r1} @@ -2000,7 +333,7 @@ sub_8076438: @ 8076438 bl LoadCompressedObjectPicUsingHeap ldr r0, =gUnknown_0832C460 bl LoadCompressedObjectPaletteUsingHeap - ldr r0, =gUnknown_0832C588 + ldr r0, =gBallSpriteTemplates mov r1, r9 mov r2, r10 adds r3, r4, 0 @@ -2361,7 +694,7 @@ sub_807671C: @ 807671C bl LoadCompressedObjectPicUsingHeap ldr r0, =gUnknown_0832C460 bl LoadCompressedObjectPaletteUsingHeap - ldr r0, =gUnknown_0832C588 + ldr r0, =gBallSpriteTemplates adds r1, r6, 0 mov r2, r8 adds r3, r4, 0 @@ -2751,8 +1084,8 @@ _08076A70: .pool thumb_func_end oamc_804BEB4 - thumb_func_start sub_8076A78 -sub_8076A78: @ 8076A78 + thumb_func_start LoadBallGfx +LoadBallGfx: @ 8076A78 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -2797,10 +1130,10 @@ _08076ACC: pop {r0} bx r0 .pool - thumb_func_end sub_8076A78 + thumb_func_end LoadBallGfx - thumb_func_start sub_8076AE8 -sub_8076AE8: @ 8076AE8 + thumb_func_start FreeBallGfx +FreeBallGfx: @ 8076AE8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -2817,10 +1150,10 @@ sub_8076AE8: @ 8076AE8 pop {r0} bx r0 .pool - thumb_func_end sub_8076AE8 + thumb_func_end FreeBallGfx - thumb_func_start sub_8076B14 -sub_8076B14: @ 8076B14 + thumb_func_start GetBankPokeballItemId +GetBankPokeballItemId: @ 8076B14 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -2856,6 +1189,6 @@ _08076B4E: pop {r1} bx r1 .pool - thumb_func_end sub_8076B14 + thumb_func_end GetBankPokeballItemId .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 4441767db..f0628ebee 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -1424,16 +1424,16 @@ sub_81C4A08: @ 81C4A08 bl GetMonData lsls r0, 16 lsrs r0, 16 - bl ball_number_to_ball_processing_index + bl ItemIdToBallId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 - bl sub_8076A78 + bl LoadBallGfx lsls r0, r4, 1 adds r0, r4 lsls r0, 3 - ldr r1, =gUnknown_0832C588 + ldr r1, =gBallSpriteTemplates adds r0, r1 movs r1, 0x10 movs r2, 0x88 diff --git a/data/pokeball.s b/data/pokeball.s index 4e7b4315a..4decaa844 100644 --- a/data/pokeball.s +++ b/data/pokeball.s @@ -10,5 +10,5 @@ gUnknown_0832C400:: @ 832C400 gUnknown_0832C460:: @ 832C460 .incbin "baserom.gba", 0x32c460, 0x128 -gUnknown_0832C588:: @ 832C588 +gBallSpriteTemplates:: @ 832C588 .incbin "baserom.gba", 0x32c588, 0x138 diff --git a/include/battle.h b/include/battle.h index 3f39db374..c99913237 100644 --- a/include/battle.h +++ b/include/battle.h @@ -933,7 +933,7 @@ struct BattleHealthboxInfo u8 flag_x1 : 1; u8 flag_x2 : 1; u8 flag_x4 : 1; - u8 flag_x8 : 1; + u8 ballAnimActive : 1; // 0x8 u8 statusAnimActive : 1; // x10 u8 animFromTableActive : 1; // x20 u8 specialAnimActive : 1; //x40 diff --git a/include/battle_anim.h b/include/battle_anim.h index c055e94fa..1bb85d023 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -79,11 +79,21 @@ void HandleIntroSlide(u8 terrainId); // battle_anim_80A5C6C.s void sub_80A6EEC(struct Sprite *sprite); +void sub_80A68D4(struct Sprite *sprite); void sub_80A8278(void); void sub_80A6B30(struct UnknownAnimStruct2*); void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); u8 sub_80A82E4(u8 bank); -u8 sub_80A5C6C(u8 bank, u8 attributeId); +bool8 AnimateBallThrow(struct Sprite *sprite); + +enum +{ + BANK_X_POS, + BANK_Y_POS, +}; + +u8 GetBankPosition(u8 bank, u8 attributeId); + bool8 IsBankSpritePresent(u8 bank); void sub_80A6C68(u8 arg0); u8 GetAnimBankSpriteId(u8 wantedBank); @@ -99,4 +109,9 @@ u8 GetSubstituteSpriteDefault_Y(u8 bank); // battle_anim_80A9C70.s void LaunchStatusAnimation(u8 bank, u8 statusAnimId); +// battle_anim_8170478.s +u8 ItemIdToBallId(u16 itemId); +u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); +u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u8 arg2, u8 ballId); + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/pokeball.h b/include/pokeball.h index 76f084465..863abe5c9 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -1,7 +1,14 @@ #ifndef GUARD_POKEBALL_H #define GUARD_POKEBALL_H -u8 sub_80753E8(u16, u8); +#define POKEBALL_COUNT 12 + +#define POKEBALL_PLAYER_SENDOUT 0xFF +#define POKEBALL_OPPONENT_SENDOUT 0xFE + +u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); +void LoadBallGfx(u8 ballId); +void FreeBallGfx(u8 ballId); void sub_8076918(u8 bank); void DoHitAnimHealthboxEffect(u8 bank); diff --git a/include/sprite.h b/include/sprite.h index 531314079..170d77c3f 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -195,14 +195,7 @@ struct Sprite /*0x2D*/ u8 animLoopCounter; // general purpose data fields - /*0x2E*/ s16 data0; - /*0x30*/ s16 data1; - /*0x32*/ s16 data2; - /*0x34*/ s16 data3; - /*0x36*/ s16 data4; - /*0x38*/ s16 data5; - /*0x3A*/ s16 data6; - /*0x3C*/ s16 data7; + /*0x2E*/ s16 data[8]; /*0x3E*/ u16 inUse:1; //1 u16 coordOffsetEnabled:1; //2 diff --git a/ld_script.txt b/ld_script.txt index e71b63e6c..42755150d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -81,6 +81,7 @@ SECTIONS { src/egg_hatch.o(.text); src/battle_interface.o(.text); asm/smokescreen.o(.text); + src/pokeball.o(.text); asm/pokeball.o(.text); src/load_save.o(.text); asm/trade.o(.text); diff --git a/src/battle_anim.c b/src/battle_anim.c index fa3ac73be..2eec0bed5 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -423,7 +423,7 @@ static void ScriptCmd_createsprite(void) if (subpriority < 3) subpriority = 3; - CreateSpriteAndAnimate(template, sub_80A5C6C(gAnimBankTarget, 2), sub_80A5C6C(gAnimBankTarget, 3), subpriority); + CreateSpriteAndAnimate(template, GetBankPosition(gAnimBankTarget, 2), GetBankPosition(gAnimBankTarget, 3), subpriority); gAnimVisualTaskCount++; } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 5758aba87..e691af6a1 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -310,14 +310,14 @@ static void sub_8064734(void) { bool32 r10 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) { sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); } if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) { @@ -325,7 +325,7 @@ static void sub_8064734(void) } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -527,14 +527,14 @@ static void sub_8064E50(void) static void sub_8064F40(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) { sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); @@ -1163,7 +1163,7 @@ static void LinkOpponentHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); @@ -1197,7 +1197,7 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1213,7 +1213,7 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFE); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void LinkOpponentHandleReturnMonToBall(void) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 1af6da1cd..02159970e 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -267,8 +267,8 @@ static void sub_814B004(void) static void sub_814B0E8(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 != 1) @@ -412,13 +412,13 @@ static void sub_814B5A8(void) static void sub_814B69C(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); gBattleBankFunc[gActiveBank] = sub_814B5A8; @@ -1049,7 +1049,7 @@ static void LinkPartnerHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; @@ -1080,7 +1080,7 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1096,7 +1096,7 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void LinkPartnerHandleReturnMonToBall(void) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index d69de8c29..7338fdb00 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -318,11 +318,11 @@ static void sub_805F560(void) bool32 sp = FALSE; bool32 r10 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -509,11 +509,11 @@ static void sub_805FD00(void) static void sub_805FDF0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); @@ -1151,7 +1151,7 @@ static void OpponentHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); @@ -1186,7 +1186,7 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) sub_806A068(species, GetBankIdentity(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1203,7 +1203,7 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFE); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void OpponentHandleReturnMonToBall(void) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7ea2abccf..7c97c83bb 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1023,12 +1023,12 @@ static void sub_8058B40(void) bool32 r9 = FALSE; bool32 r8 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -1127,13 +1127,13 @@ static void sub_8058FC0(void) static void sub_805902C(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); @@ -2237,7 +2237,7 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -2253,7 +2253,7 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void PlayerHandleReturnMonToBall(void) diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 4cca5c002..c05c3dcf8 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -282,8 +282,8 @@ static void sub_81BAF48(void) static void sub_81BB02C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 != 1) @@ -599,13 +599,13 @@ static void sub_81BB9F4(void) static void sub_81BBAE8(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); gBattleBankFunc[gActiveBank] = sub_81BB9F4; @@ -1236,7 +1236,7 @@ static void PlayerPartnerHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; @@ -1267,7 +1267,7 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1283,7 +1283,7 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void PlayerPartnerHandleReturnMonToBall(void) diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 027230be4..d400d74b6 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -298,12 +298,12 @@ static void sub_818686C(void) bool32 r9 = FALSE; bool32 r8 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -512,14 +512,14 @@ static void sub_8186F94(void) static void sub_8187084(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) { sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); @@ -1148,7 +1148,7 @@ static void RecordedOpponentHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); @@ -1183,7 +1183,7 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) sub_806A068(species, GetBankIdentity(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1199,7 +1199,7 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFE); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void RecordedOpponentHandleReturnMonToBall(void) diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index f5f3ab3c0..5c25ddf88 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -314,19 +314,19 @@ static void sub_8189D40(void) if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); } } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -497,13 +497,13 @@ static void sub_818A37C(void) static void sub_818A470(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); gBattleBankFunc[gActiveBank] = sub_818A37C; @@ -1134,7 +1134,7 @@ static void RecordedPlayerHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; @@ -1165,7 +1165,7 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1181,7 +1181,7 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void RecordedPlayerHandleReturnMonToBall(void) diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 442e32cca..7aec76ffa 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -321,13 +321,13 @@ static void CompleteOnChosenItem(void) static void sub_816864C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) { @@ -1495,7 +1495,7 @@ static void sub_816AA80(u8 bank) gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBankIdentity(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1509,7 +1509,7 @@ static void sub_816AA80(u8 bank) StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data0 = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void sub_816AC04(u8 taskId) diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 99a82f3ca..8ab9b541a 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1143,13 +1143,13 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); bank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, sub_80A5C6C(bank, 0), sub_80A5C6C(bank, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data0 = bank; if (IsDoubleBattle()) { bank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, sub_80A5C6C(bank, 0), sub_80A5C6C(bank, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data0 = bank; } } diff --git a/src/pokeball.c b/src/pokeball.c new file mode 100644 index 000000000..93ef60c9f --- /dev/null +++ b/src/pokeball.c @@ -0,0 +1,637 @@ +#include "global.h" +#include "sprite.h" +#include "pokeball.h" +#include "battle.h" +#include "battle_anim.h" +#include "task.h" +#include "sound.h" +#include "songs.h" +#include "trig.h" +#include "main.h" +#include "m4a.h" + +extern bool8 gDoingBattleAnim; +extern u8 gActiveBank; +extern u8 gBankTarget; +extern u16 gBattlePartyID[]; +extern u8 gBankSpriteIds[]; +extern struct MusicPlayerInfo gMPlay_BGM; + +// this file's functions +void Task_DoPokeballSendOutAnim(u8 taskId); +void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite); +void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite); +void SpriteCB_OpponentMonSendOut(struct Sprite *sprite); +void sub_80756D4(struct Sprite *sprite); +void sub_80756E0(struct Sprite *sprite); +void sub_807574C(struct Sprite *sprite); +void sub_80757E4(struct Sprite *sprite); +void sub_8075838(struct Sprite *sprite); +void sub_8075930(struct Sprite *sprite); +void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite); +void sub_8075970(struct Sprite *sprite); +void HandleBallAnimEnd(struct Sprite *sprite); +void sub_8075FB4(struct Sprite *sprite); +void sub_80760F8(struct Sprite *sprite); +u16 GetBankPokeballItemId(u8 bank); + +extern const struct SpriteTemplate gBallSpriteTemplates[]; + +#define tFrames data[0] +#define tPan data[1] +#define tThrowId data[2] +#define tBank data[3] +#define tOpponentBank data[4] + +u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow) +{ + u8 taskId; + + gDoingBattleAnim = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive = 1; + + taskId = CreateTask(Task_DoPokeballSendOutAnim, 5); + gTasks[taskId].tPan = pan; + gTasks[taskId].tThrowId = kindOfThrow; + gTasks[taskId].tBank = gActiveBank; + + return 0; +} + +#define sData0 data[0] +#define sData1 data[1] +#define sData2 data[2] +#define sData3 data[3] +#define sData4 data[4] +#define sData5 data[5] +#define sBank data[6] + +void Task_DoPokeballSendOutAnim(u8 taskId) +{ + u16 throwCaseId; + u8 bank; + u16 itemId, ballId; + u8 ballSpriteId; + bool8 notSendOut = FALSE; + + if (gTasks[taskId].tFrames == 0) + { + gTasks[taskId].tFrames++; + return; + } + + throwCaseId = gTasks[taskId].tThrowId; + bank = gTasks[taskId].tBank; + + if (GetBankSide(bank) != SIDE_PLAYER) + itemId = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + else + itemId = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + + ballId = ItemIdToBallId(itemId); + LoadBallGfx(ballId); + ballSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); + gSprites[ballSpriteId].data[0] = 0x80; + gSprites[ballSpriteId].data[1] = 0; + gSprites[ballSpriteId].data[7] = throwCaseId; + + switch (throwCaseId) + { + case POKEBALL_PLAYER_SENDOUT: + gBankTarget = bank; + gSprites[ballSpriteId].pos1.x = 24; + gSprites[ballSpriteId].pos1.y = 68; + gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; + break; + case POKEBALL_OPPONENT_SENDOUT: + gSprites[ballSpriteId].pos1.x = GetBankPosition(bank, BANK_X_POS); + gSprites[ballSpriteId].pos1.y = GetBankPosition(bank, BANK_Y_POS) + 24; + gBankTarget = bank; + gSprites[ballSpriteId].sData0 = 0; + gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; + break; + default: + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + notSendOut = TRUE; + break; + } + + gSprites[ballSpriteId].sBank = gBankTarget; + if (!notSendOut) + { + DestroyTask(taskId); + return; + } + + // this will perform an unused ball throw animation + gSprites[ballSpriteId].sData0 = 0x22; + gSprites[ballSpriteId].sData2 = GetBankPosition(gBankTarget, BANK_X_POS); + gSprites[ballSpriteId].sData4 = GetBankPosition(gBankTarget, BANK_Y_POS) - 16; + gSprites[ballSpriteId].sData5 = -40; + sub_80A68D4(&gSprites[ballSpriteId]); + gSprites[ballSpriteId].oam.affineParam = taskId; + gTasks[taskId].tOpponentBank = gBankTarget; + gTasks[taskId].func = TaskDummy; + PlaySE(SE_NAGERU); +} + +void SpriteCB_TestBallThrow(struct Sprite *sprite) +{ + if (AnimateBallThrow(sprite)) + { + u16 ballId; + u8 taskId = sprite->oam.affineParam; + u8 opponentBank = gTasks[taskId].tOpponentBank; + u8 noOfShakes = gTasks[taskId].tThrowId; + + StartSpriteAnim(sprite, 1); + sprite->affineAnimPaused = 1; + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->sData5 = 0; + ballId = ItemIdToBallId(GetBankPokeballItemId(opponentBank)); + LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + sprite->sData0 = LaunchBallFadeMonTask(FALSE, opponentBank, 14, ballId); + sprite->sBank = opponentBank; + sprite->data[7] = noOfShakes; + DestroyTask(taskId); + sprite->callback = sub_80756D4; + } +} + +#undef tFrames +#undef tPan +#undef tThrowId +#undef tBank +#undef tOpponentBank + +void sub_80756D4(struct Sprite *sprite) +{ + sprite->callback = sub_80756E0; +} + +void sub_80756E0(struct Sprite *sprite) +{ + if (++sprite->sData5 == 10) + { + sprite->sData5 = 0; + sprite->callback = sub_807574C; + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 2); + AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0; + } +} + +void sub_807574C(struct Sprite *sprite) +{ + sprite->data[5]++; + if (sprite->data[5] == 11) + PlaySE(SE_SUIKOMU); + if (gSprites[gBankSpriteIds[sprite->data[6]]].affineAnimEnded) + { + StartSpriteAnim(sprite, 2); + gSprites[gBankSpriteIds[sprite->data[6]]].invisible = TRUE; + sprite->data[5] = 0; + sprite->callback = sub_80757E4; + } + else + { + gSprites[gBankSpriteIds[sprite->data[6]]].data[1] += 0x60; + gSprites[gBankSpriteIds[sprite->data[6]]].pos2.y = -gSprites[gBankSpriteIds[sprite->data[6]]].data[1] >> 8; + } +} + +void sub_80757E4(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + sprite->data[5]++; + if (sprite->data[5] == 1) + { + sprite->data[3] = 0; + sprite->data[4] = 32; + sprite->data[5] = 0; + sprite->pos1.y += Cos(0, 32); + sprite->pos2.y = -Cos(0, sprite->data[4]); + sprite->callback = sub_8075838; + } + } +} + +void sub_8075838(struct Sprite *sprite) +{ + bool8 r5 = FALSE; + + switch (sprite->data[3] & 0xFF) + { + case 0: + sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->data[5] += 4 + (sprite->data[3] >> 8); + if (sprite->data[5] >= 64) + { + sprite->data[4] -= 10; + sprite->data[3] += 0x101; + if (sprite->data[3] >> 8 == 4) + r5 = TRUE; + switch (sprite->data[3] >> 8) + { + case 1: + PlaySE(SE_KON); + break; + case 2: + PlaySE(SE_KON2); + break; + case 3: + PlaySE(SE_KON3); + break; + default: + PlaySE(SE_KON4); + break; + } + } + break; + case 1: + sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->data[5] -= 4 + (sprite->data[3] >> 8); + if (sprite->data[5] <= 0) + { + sprite->data[5] = 0; + sprite->data[3] &= 0xFF00; + } + break; + } + if (r5) + { + sprite->data[3] = 0; + sprite->pos1.y += Cos(64, 32); + sprite->pos2.y = 0; + if (sprite->data[7] == 0) + { + sprite->callback = SpriteCB_ReleaseMonFromBall; + } + else + { + sprite->callback = sub_8075930; + sprite->data[4] = 1; + sprite->data[5] = 0; + } + } +} + +void sub_8075930(struct Sprite *sprite) +{ + sprite->data[3]++; + if (sprite->data[3] == 31) + { + sprite->data[3] = 0; + sprite->affineAnimPaused = TRUE; + StartSpriteAffineAnim(sprite, 1); + sprite->callback = sub_8075970; + PlaySE(SE_BOWA); + } +} + +void sub_8075970(struct Sprite *sprite) +{ + switch (sprite->data[3] & 0xFF) + { + case 0: + case 2: + sprite->pos2.x += sprite->data[4]; + sprite->data[5] += sprite->data[4]; + sprite->affineAnimPaused = FALSE; + if (sprite->data[5] > 3 || sprite->data[5] < -3) + { + sprite->data[3]++; + sprite->data[5] = 0; + } + break; + case 1: + sprite->data[5]++; + if (sprite->data[5] == 1) + { + sprite->data[5] = 0; + sprite->data[4] = -sprite->data[4]; + sprite->data[3]++; + sprite->affineAnimPaused = FALSE; + if (sprite->data[4] < 0) + ChangeSpriteAffineAnim(sprite, 2); + else + ChangeSpriteAffineAnim(sprite, 1); + } + else + { + sprite->affineAnimPaused = TRUE; + } + break; + case 3: + sprite->data[3] += 0x100; + if (sprite->data[3] >> 8 == sprite->data[7]) + { + sprite->callback = SpriteCB_ReleaseMonFromBall; + } + else + { + if (sprite->data[7] == 4 && sprite->data[3] >> 8 == 3) + { + sprite->callback = sub_8075FB4; + sprite->affineAnimPaused = TRUE; + } + else + { + sprite->data[3]++; + sprite->affineAnimPaused = TRUE; + } + } + break; + case 4: + default: + sprite->data[5]++; + if (sprite->data[5] == 31) + { + sprite->data[5] = 0; + sprite->data[3] &= 0xFF00; + StartSpriteAffineAnim(sprite, 3); + if (sprite->data[4] < 0) + StartSpriteAffineAnim(sprite, 2); + else + StartSpriteAffineAnim(sprite, 1); + PlaySE(SE_BOWA); + } + break; + } +} + +#define tCryTaskSpecies data[0] +#define tCryTaskPan data[1] +#define tCryTaskWantedCry data[2] +#define tCryTaskBank data[3] +#define tCryTaskMonSpriteId data[4] +#define tCryTaskMonPtr1 data[5] +#define tCryTaskMonPtr2 data[6] +#define tCryTaskFrames data[10] +#define tCryTaskState data[15] + +void Task_PlayCryWhenReleasedFromBall(u8 taskId) +{ + u8 wantedCry = gTasks[taskId].tCryTaskWantedCry; + s8 pan = gTasks[taskId].tCryTaskPan; + u16 species = gTasks[taskId].tCryTaskSpecies; + u8 bank = gTasks[taskId].tCryTaskBank; + u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId; + struct Pokemon *mon = (void*)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 0x10) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); + + switch (gTasks[taskId].tCryTaskState) + { + case 0: + default: + if (gSprites[monSpriteId].affineAnimEnded) + gTasks[taskId].tCryTaskState = wantedCry + 1; + break; + case 1: + if (ShouldPlayNormalPokeCry(mon) == TRUE) + PlayCry3(species, pan, 0); + else + PlayCry3(species, pan, 11); + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 0; + DestroyTask(taskId); + break; + case 2: + StopCryAndClearCrySongs(); + gTasks[taskId].tCryTaskFrames = 3; + gTasks[taskId].tCryTaskState = 20; + break; + case 20: + if (gTasks[taskId].tCryTaskFrames == 0) + { + if (ShouldPlayNormalPokeCry(mon) == TRUE) + PlayCry4(species, pan, 1); + else + PlayCry4(species, pan, 12); + + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 0; + DestroyTask(taskId); + } + else + { + gTasks[taskId].tCryTaskFrames--; + } + break; + case 3: + gTasks[taskId].tCryTaskFrames = 6; + gTasks[taskId].tCryTaskState = 30; + break; + case 30: + if (gTasks[taskId].tCryTaskFrames != 0) + { + gTasks[taskId].tCryTaskFrames--; + break; + } + gTasks[taskId].tCryTaskState++; + // fall through + case 31: + if (!IsCryPlayingOrClearCrySongs()) + { + StopCryAndClearCrySongs(); + gTasks[taskId].tCryTaskFrames = 3; + gTasks[taskId].tCryTaskState++; + } + break; + case 32: + if (gTasks[taskId].tCryTaskFrames != 0) + { + gTasks[taskId].tCryTaskFrames--; + break; + } + if (ShouldPlayNormalPokeCry(mon) == TRUE) + PlayCry4(species, pan, 0); + else + PlayCry4(species, pan, 11); + + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 0; + DestroyTask(taskId); + break; + } +} + +void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) +{ + u8 bank = sprite->sBank; + u32 ballId; + + StartSpriteAnim(sprite, 1); + ballId = ItemIdToBallId(GetBankPokeballItemId(bank)); + LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + sprite->sData0 = LaunchBallFadeMonTask(1, sprite->sBank, 14, ballId); + sprite->callback = HandleBallAnimEnd; + + if (gMain.inBattle) + { + struct Pokemon *mon; + u16 species; + s8 pan; + u16 wantedCryCase; + u8 taskId; + + if (GetBankSide(bank) != SIDE_PLAYER) + { + mon = &gEnemyParty[gBattlePartyID[bank]]; + pan = 25; + } + else + { + mon = &gPlayerParty[gBattlePartyID[bank]]; + pan = -25; + } + + species = GetMonData(mon, MON_DATA_SPECIES); + if ((bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1)) + && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) + { + if (IsBGMPlaying()) + m4aMPlayStop(&gMPlay_BGM); + } + else + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); + } + } + + if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) + wantedCryCase = 0; + else if (bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1)) + wantedCryCase = 1; + else + wantedCryCase = 2; + + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 1; + + taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3); + gTasks[taskId].tCryTaskSpecies = species; + gTasks[taskId].tCryTaskPan = pan; + gTasks[taskId].tCryTaskWantedCry = wantedCryCase; + gTasks[taskId].tCryTaskBank = bank; + gTasks[taskId].tCryTaskMonSpriteId = gBankSpriteIds[sprite->sBank]; + gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10; + gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon); + gTasks[taskId].tCryTaskState = 0; + } + + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 1); + + if (GetBankSide(sprite->sBank) == SIDE_OPPONENT) + gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039B58; + else + gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039E44; + + AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0x1000; +} + +#undef tCryTaskSpecies +#undef tCryTaskPan +#undef tCryTaskWantedCry +#undef tCryTaskBank +#undef tCryTaskMonSpriteId +#undef tCryTaskMonPtr1 +#undef tCryTaskMonPtr2 +#undef tCryTaskFrames +#undef tCryTaskState + +void sub_8075FB4(struct Sprite *sprite) +{ + sprite->animPaused = TRUE; + sprite->callback = sub_80760F8; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 0; +} + +void HandleBallAnimEnd(struct Sprite *sprite) +{ + bool8 affineAnimEnded = FALSE; + u8 bank = sprite->sBank; + + gSprites[gBankSpriteIds[bank]].invisible = FALSE; + if (sprite->animEnded) + sprite->invisible = TRUE; + if (gSprites[gBankSpriteIds[bank]].affineAnimEnded) + { + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[bank]], 0); + affineAnimEnded = TRUE; + } + else + { + gSprites[gBankSpriteIds[bank]].data[1] -= 288; + gSprites[gBankSpriteIds[bank]].pos2.y = gSprites[gBankSpriteIds[bank]].data[1] >> 8; + } + if (sprite->animEnded && affineAnimEnded) + { + s32 i, doneBanks; + + gSprites[gBankSpriteIds[bank]].pos2.y = 0; + gDoingBattleAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0; + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + + for (doneBanks = 0, i = 0; i < BATTLE_BANKS_COUNT; i++) + { + if (gBattleSpritesDataPtr->healthBoxesData[i].ballAnimActive == 0) + doneBanks++; + } + if (doneBanks == BATTLE_BANKS_COUNT) + { + for (i = 0; i < POKEBALL_COUNT; i++) + FreeBallGfx(i); + } + } +} + +void sub_80760F8(struct Sprite *sprite) +{ + u8 bank = sprite->sBank; + + sprite->data[4]++; + if (sprite->data[4] == 40) + { + return; + } + else if (sprite->data[4] == 95) + { + gDoingBattleAnim = FALSE; + m4aMPlayAllStop(); + PlaySE(BGM_FANFA5); + } + else if (sprite->data[4] == 315) + { + FreeOamMatrix(gSprites[gBankSpriteIds[sprite->sBank]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + DestroySpriteAndFreeResources(sprite); + if (gMain.inBattle) + gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0; + } +} + +void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite) +{ + sprite->data[0] = 25; + sprite->data[2] = GetBankPosition(sprite->sBank, 2); + sprite->data[4] = GetBankPosition(sprite->sBank, 3) + 24; + sprite->data[5] = -30; + sprite->oam.affineParam = sprite->sBank; + sub_80A68D4(sprite); + sprite->callback = SpriteCB_PlayerMonSendOut_2; +} + +#undef sData0 +#undef sData1 +#undef sData2 +#undef sData3 +#undef sData4 +#undef sData5 +#undef sBank diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 3177a8946..962ea0f6e 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -42,7 +42,7 @@ extern u8 GetBankSpriteDefault_Y(u8 bank); extern u8 sub_80A82E4(u8 bank); extern void sub_806A068(u16 species, u8 bankIdentity); extern void sub_806A12C(u16 backPicId, u8 bankIdentity); -extern u8 sub_80A5C6C(u8 bank, u8 caseId); +extern u8 GetBankPosition(u8 bank, u8 caseId); // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); @@ -260,7 +260,7 @@ static void CreateBankSprite(u8 bank) return; sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data0 = bank; @@ -296,7 +296,7 @@ static void CreateBankSprite(u8 bank) return; sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data0 = bank; |