From 157b88b6dbfa7816cac9c6cf2ef20bd70a573b10 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 16 Jan 2018 14:01:31 -0600 Subject: identity -> position --- asm/battle_anim_80A5C6C.s | 92 ++-- asm/battle_anim_80A9C70.s | 4 +- asm/battle_anim_80FE840.s | 706 +++++++++++++++--------------- asm/battle_anim_815A0D4.s | 116 ++--- asm/battle_anim_8170478.s | 20 +- asm/battle_link_817C95C.s | 12 +- asm/contest.s | 6 +- constants/battle_constants.inc | 8 +- data/battle_scripts_1.s | 10 +- include/battle.h | 46 +- include/battle_anim.h | 2 +- src/battle_2.c | 140 +++--- src/battle_ai_script_commands.c | 2 +- src/battle_ai_switch_items.c | 26 +- src/battle_anim.c | 38 +- src/battle_controller_link_opponent.c | 20 +- src/battle_controller_link_partner.c | 12 +- src/battle_controller_opponent.c | 30 +- src/battle_controller_player.c | 54 +-- src/battle_controller_player_partner.c | 20 +- src/battle_controller_recorded_opponent.c | 16 +- src/battle_controller_recorded_player.c | 20 +- src/battle_controller_safari.c | 6 +- src/battle_controller_wally.c | 12 +- src/battle_controllers.c | 140 +++--- src/battle_gfx_sfx_util.c | 54 +-- src/battle_interface.c | 26 +- src/battle_message.c | 8 +- src/battle_script_commands.c | 42 +- src/battle_util.c | 32 +- src/battle_util2.c | 6 +- src/pokeball.c | 24 +- src/pokemon_2.c | 4 +- src/reshow_battle_screen.c | 20 +- sym_ewram.txt | 2 +- 35 files changed, 895 insertions(+), 881 deletions(-) diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index 08baa4595..1c19805a0 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -5,8 +5,8 @@ .text - thumb_func_start GetBankPosition -GetBankPosition: @ 80A5C6C + thumb_func_start GetBankCoord +GetBankCoord: @ 80A5C6C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -40,7 +40,7 @@ _080A5C9C: _080A5CB0: ldr r4, =gUnknown_08525F58 adds r0, r5, 0 - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 22 ldr r1, =gBattleTypeFlags @@ -56,7 +56,7 @@ _080A5CB0: _080A5CD8: ldr r4, =gUnknown_08525F58 adds r0, r5, 0 - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 22 ldr r1, =gBattleTypeFlags @@ -154,7 +154,7 @@ _080A5DB0: pop {r4,r5} pop {r1} bx r1 - thumb_func_end GetBankPosition + thumb_func_end GetBankCoord thumb_func_start sub_80A5DB8 sub_80A5DB8: @ 80A5DB8 @@ -476,7 +476,7 @@ _080A603E: lsrs r4, r0, 16 _080A605C: adds r0, r6, 0 - bl GetBankIdentity + bl GetBankPosition ldr r3, =gUnknown_08525F58 lsls r0, 24 lsrs r0, 22 @@ -577,7 +577,7 @@ _080A611C: _080A6126: adds r0, r4, 0 adds r1, r5, 0 - bl GetBankPosition + bl GetBankCoord _080A612E: lsls r0, 24 lsrs r0, 24 @@ -592,7 +592,7 @@ GetBankSpriteDefault_Y: @ 80A6138 lsls r0, 24 lsrs r0, 24 movs r1, 0x4 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 cmp r6, r0 @@ -1810,7 +1810,7 @@ _080A6A04: GetBankSide: @ 80A6A30 lsls r0, 24 lsrs r0, 24 - ldr r1, =gBanksByIdentity + ldr r1, =gBankPositions adds r0, r1 ldrb r1, [r0] movs r0, 0x1 @@ -1819,16 +1819,16 @@ GetBankSide: @ 80A6A30 .pool thumb_func_end GetBankSide - thumb_func_start GetBankIdentity -GetBankIdentity: @ 80A6A44 + thumb_func_start GetBankPosition +GetBankPosition: @ 80A6A44 lsls r0, 24 lsrs r0, 24 - ldr r1, =gBanksByIdentity + ldr r1, =gBankPositions adds r0, r1 ldrb r0, [r0] bx lr .pool - thumb_func_end GetBankIdentity + thumb_func_end GetBankPosition thumb_func_start GetBankByIdentity GetBankByIdentity: @ 80A6A54 @@ -1840,7 +1840,7 @@ GetBankByIdentity: @ 80A6A54 ldrb r2, [r0] cmp r1, r2 bcs _080A6A7E - ldr r4, =gBanksByIdentity + ldr r4, =gBankPositions ldrb r0, [r4] cmp r0, r3 beq _080A6A7E @@ -1883,7 +1883,7 @@ IsBankSpritePresent: @ 80A6A90 b _080A6B18 .pool _080A6ABC: - ldr r0, =gBanksByIdentity + ldr r0, =gBankPositions adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0xFF @@ -3685,7 +3685,7 @@ _080A785C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -3828,7 +3828,7 @@ _080A798E: strh r0, [r5, 0x2E] adds r0, r6, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -5027,7 +5027,7 @@ _080A82FC: b _080A8320 _080A8300: adds r0, r4, 0 - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x1E @@ -5053,7 +5053,7 @@ sub_80A8328: @ 80A8328 push {r4,lr} lsls r0, 24 lsrs r0, 24 - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 bl IsContest @@ -5093,7 +5093,7 @@ sub_80A8364: @ 80A8364 cmp r0, 0 bne _080A838A adds r0, r4, 0 - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5713,7 +5713,7 @@ _080A88A6: _080A88AE: mov r0, r8 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5722,7 +5722,7 @@ _080A88AE: _080A88C0: mov r0, r8 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5731,7 +5731,7 @@ _080A88C0: _080A88D2: mov r0, r8 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5744,7 +5744,7 @@ _080A88E4: _080A88EA: mov r0, r8 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5757,7 +5757,7 @@ _080A88FC: _080A8902: mov r0, r8 movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -5798,13 +5798,13 @@ _080A8942: _080A8946: adds r0, r4, 0 adds r1, r5, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r4, 0 adds r1, r6, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 adds r1, r6, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 c471cc729..82981ff21 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 8 ldr r1, =0xffdc0000 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index e51dcedb7..c94826f40 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -377,13 +377,13 @@ sub_80FEB44: @ 80FEB44 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -774,7 +774,7 @@ sub_80FEE78: @ 80FEE78 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -1799,7 +1799,7 @@ _080FF6AA: _080FF6C2: ldrb r0, [r6] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -3837,7 +3837,7 @@ _081006CE: _081006D4: adds r0, r6, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5] @@ -3860,7 +3860,7 @@ _08100700: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r7, [r7] @@ -4082,12 +4082,12 @@ _081008C4: _081008C6: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -4486,7 +4486,7 @@ _08100BC8: mov r1, r8 eors r0, r1 movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -4497,13 +4497,13 @@ _08100C24: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] _08100C34: movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldr r1, =0x0000ffe8 @@ -5470,7 +5470,7 @@ _081013C4: bne _081013E8 adds r0, r6, 0 movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -5481,14 +5481,14 @@ _081013C4: _081013E8: adds r0, r6, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 _081013FA: - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -6930,7 +6930,7 @@ _08101F5C: _08101F5E: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -7123,7 +7123,7 @@ _081020F4: _081020F6: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 ldr r2, =gBattleAnimArgs lsrs r0, 24 @@ -8071,7 +8071,7 @@ _08102862: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r3, r0, 24 _08102D4E: @@ -8870,7 +8870,7 @@ sub_8102EB0: @ 8102EB0 _08102ECE: ldrb r0, [r7] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 ldr r6, =gBattleAnimArgs lsrs r0, 24 @@ -10151,7 +10151,7 @@ _0810390E: mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x6] @@ -10676,7 +10676,7 @@ _08103D54: strh r0, [r3, 0x4] b _08103DB6 _08103D5C: - ldr r1, =gBanksByIdentity + ldr r1, =gBankPositions ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 @@ -10719,7 +10719,7 @@ _08103DB6: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 add r0, r8 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -11513,7 +11513,7 @@ _08104448: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -12370,7 +12370,7 @@ _08104B50: bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x20 @@ -12381,7 +12381,7 @@ _08104B6A: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -12432,7 +12432,7 @@ _08104BCA: _08104BE4: adds r0, r5, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -13231,7 +13231,7 @@ _08105230: adds r0, r5, 0 movs r1, 0x2 _08105234: - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -13372,7 +13372,7 @@ _0810535C: _0810536C: adds r0, r7, 0 mov r1, r10 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -13473,13 +13473,13 @@ _0810544C: mov r4, sp mov r0, r8 mov r1, r10 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, r8 ldr r1, [sp, 0x4] - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16513,13 +16513,13 @@ _08106CFC: _08106CFE: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16666,7 +16666,7 @@ _08106E1E: _08106E38: adds r0, r6, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldr r4, =gBattleAnimArgs @@ -17215,7 +17215,7 @@ sub_8107260: @ 8107260 _08107290: ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r7] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -17863,12 +17863,12 @@ sub_81077C0: @ 81077C0 negs r0, r0 strh r0, [r4] ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 cmp r0, 0 beq _08107802 ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17913,7 +17913,7 @@ _08107842: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] @@ -20421,13 +20421,13 @@ sub_8108C94: @ 8108C94 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -23318,14 +23318,14 @@ _0810A384: _0810A3AC: adds r0, r4, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x3 _0810A3BE: - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -23657,7 +23657,7 @@ _0810A666: _0810A66E: adds r0, r6, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] @@ -24228,13 +24228,13 @@ _0810AB28: _0810AB2A: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] @@ -24448,13 +24448,13 @@ _0810ACF4: _0810ACF6: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24486,13 +24486,13 @@ _0810AD4C: _0810AD4E: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -24855,13 +24855,13 @@ _0810B012: _0810B048: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r2, 0xA @@ -25127,13 +25127,13 @@ _0810B24E: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -25564,7 +25564,7 @@ _0810B5B4: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r4, r0, 0 ldr r7, =gAnimBankTarget ldrb r0, [r7] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -27474,7 +27474,7 @@ sub_810C560: @ 810C560 lsls r0, 8 strh r0, [r5, 0x3C] _0810C594: - ldr r3, =gBanksByIdentity + ldr r3, =gBankPositions ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] @@ -27526,13 +27526,13 @@ _0810C5F4: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27583,7 +27583,7 @@ _0810C65C: ldrb r0, [r4] movs r1, 0x1 _0810C684: - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] @@ -27699,7 +27699,7 @@ _0810C736: lsls r0, 24 cmp r0, 0 bne _0810C78C - ldr r1, =gBanksByIdentity + ldr r1, =gBankPositions ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] @@ -27843,7 +27843,7 @@ _0810C85A: lsls r0, 24 cmp r0, 0 bne _0810C8B4 - ldr r1, =gBanksByIdentity + ldr r1, =gBankPositions ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 @@ -28062,12 +28062,12 @@ sub_810C9E4: @ 810C9E4 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -28705,13 +28705,13 @@ _0810CF74: bl StartSpriteAnim mov r0, r8 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -28771,7 +28771,7 @@ _0810D000: negs r0, r0 lsrs r4, r0, 16 _0810D012: - ldr r0, =gBanksByIdentity + ldr r0, =gBankPositions add r0, r8 ldrb r1, [r0] adds r0, r7, 0 @@ -28983,7 +28983,7 @@ sub_810D1B4: @ 810D1B4 cmp r0, r1 bne _0810D1E0 ldrb r0, [r2] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -29149,13 +29149,13 @@ sub_810D308: @ 810D308 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29275,13 +29275,13 @@ _0810D428: _0810D42A: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -30699,7 +30699,7 @@ _0810DFC8: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -30782,13 +30782,13 @@ _0810E070: _0810E088: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 ldr r2, =gBattleAnimArgs ldrh r1, [r2] @@ -30808,13 +30808,13 @@ _0810E088: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -31118,7 +31118,7 @@ _0810E33E: _0810E354: adds r0, r6, 0 movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32553,13 +32553,13 @@ _0810EE40: _0810EE42: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -32708,13 +32708,13 @@ _0810EF74: _0810EF76: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -33139,7 +33139,7 @@ _0810F2B8: _0810F2CE: ldrb r0, [r6] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r4 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -35065,13 +35065,13 @@ _08110260: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -35688,12 +35688,12 @@ _08110762: cmp r4, r0 bne _081107B2 ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 cmp r0, 0 beq _081107A0 ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -35715,7 +35715,7 @@ _081107B2: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -35949,13 +35949,13 @@ _081109B0: _081109B2: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xC0 @@ -37219,13 +37219,13 @@ sub_8111444: @ 8111444 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -39001,12 +39001,12 @@ _081122AC: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -39017,13 +39017,13 @@ _081122AC: _081122D0: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -40842,13 +40842,13 @@ _081131D0: _081131D2: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] mov r2, r8 ldrb r0, [r2] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -42057,7 +42057,7 @@ sub_8113BAC: @ 8113BAC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x4 @@ -43204,13 +43204,13 @@ _0811455C: bne _081145D6 ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0811458C ldrb r0, [r4] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 cmp r0, 0 bne _081145D6 @@ -43658,13 +43658,13 @@ sub_8114994: @ 8114994 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -43719,13 +43719,13 @@ sub_81149FC: @ 81149FC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -43781,7 +43781,7 @@ _08114A9C: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] @@ -44657,7 +44657,7 @@ _081151BE: _081151DA: adds r0, r4, 0 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -44723,7 +44723,7 @@ _08115262: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 movs r1, 0x40 @@ -47869,13 +47869,13 @@ _08116BA2: bne _08116C26 ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08116BD2 ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 cmp r0, 0 bne _08116C26 @@ -48306,14 +48306,14 @@ _08116FBA: cmp r0, 0 bne _08117036 ldrb r0, [r1] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08116FEC ldr r0, [r4] ldrb r0, [r0] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 cmp r0, 0 bne _08117036 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index d583f1e85..111dfb1b2 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -1254,13 +1254,13 @@ sub_815AAA4: @ 815AAA4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1510,7 +1510,7 @@ _0815ACEC: _0815ACEE: ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -3020,7 +3020,7 @@ _0815B8A8: .pool _0815B8E0: ldrb r0, [r5] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r1, r0, 24 _0815B8EA: @@ -3624,14 +3624,14 @@ _0815BE2E: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -3998,7 +3998,7 @@ _0815C124: _0815C15C: ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 bl IsDoubleBattle @@ -4994,13 +4994,13 @@ sub_815C95C: @ 815C95C ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -7931,7 +7931,7 @@ _0815E14E: bne _0815E188 ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7951,7 +7951,7 @@ _0815E17C: _0815E188: ldrb r0, [r5] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] @@ -8659,7 +8659,7 @@ _0815E724: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -8950,7 +8950,7 @@ _0815E970: _0815E972: ldrb r0, [r4] movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -9771,14 +9771,14 @@ _0815EFEC: lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord ldrb r0, [r4] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -10387,7 +10387,7 @@ _0815F4C8: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11331,7 +11331,7 @@ _0815FCB4: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11469,7 +11469,7 @@ _0815FD8C: mov r1, r10 ldrb r0, [r1] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -11724,14 +11724,14 @@ _08160008: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 635c02e03..a7893ee94 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -907,13 +907,13 @@ _08170C44: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankPosition + bl GetBankCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord adds r1, r0, 0 lsls r1, 24 ldr r2, =gSprites @@ -1166,14 +1166,14 @@ sub_8170E04: @ 8170E04 mov r8, r2 ldrb r0, [r2] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1317,14 +1317,14 @@ _08170F54: mov r8, r1 ldrb r0, [r1] movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -5234,12 +5234,12 @@ _0817303A: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord 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 GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index fedb50c45..d656946b4 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -136,18 +136,18 @@ _0817CA4C: _0817CA9C: ldr r0, =gBankAttacker ldrb r0, [r0] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 25 mov r8, r0 ldr r0, =gBankTarget ldrb r0, [r0] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 25 ldr r0, =gEffectBank ldrb r0, [r0] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 25 ldr r1, [sp] @@ -2593,7 +2593,7 @@ _0817E122: _0817E184: mov r2, r10 ldrb r0, [r2] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 25 lsls r0, 3 @@ -2617,7 +2617,7 @@ _0817E184: strb r1, [r0] mov r1, r10 ldrb r0, [r1] - bl GetBankIdentity + bl GetBankPosition lsls r0, 24 lsrs r0, 25 lsls r0, 3 @@ -4414,7 +4414,7 @@ _0817EFC2: ldr r4, =gSideAffecting mov r1, r9 ldrb r0, [r1] - bl GetBankIdentity + bl GetBankPosition movs r1, 0x1 ands r1, r0 lsls r1, 1 diff --git a/asm/contest.s b/asm/contest.s index 3c34965ad..c35a29733 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1048,7 +1048,7 @@ _080D8004: bl sub_80DC594 bl sub_80DC5E8 bl sub_80DC7EC - ldr r1, =gBanksByIdentity + ldr r1, =gBankPositions strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] @@ -13829,13 +13829,13 @@ sub_80DEA5C: @ 80DEA5C strh r0, [r4, 0x26] movs r0, 0x3 movs r1, 0 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] movs r0, 0x3 movs r1, 0x1 - bl GetBankPosition + bl GetBankCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] diff --git a/constants/battle_constants.inc b/constants/battle_constants.inc index 7309d68cd..c48ff0203 100644 --- a/constants/battle_constants.inc +++ b/constants/battle_constants.inc @@ -45,10 +45,10 @@ .set OPPONENT_TELEPORTED, 0xA @ identities - .set IDENTITY_PLAYER_MON1, 0 - .set IDENTITY_OPPONENT_MON1, 1 - .set IDENTITY_PLAYER_MON2, 2 - .set IDENTITY_OPPONENT_MON2, 3 + .set B_POSITION_PLAYER_LEFT, 0 + .set B_POSITION_OPPONENT_LEFT, 1 + .set B_POSITION_PLAYER_RIGHT, 2 + .set B_POSITION_OPPONENT_RIGHT, 3 @ status 1 .set STATUS_SLEEP, 0x7 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 27aff5f19..c3750bd88 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2950,7 +2950,7 @@ BattleScript_LocalBattleWonLoseTexts:: waitstate printstring STRINGID_TRAINER1LOSETEXT jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward - trainerslideout IDENTITY_OPPONENT_MON1 + trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein GBANK_1 waitstate @@ -2991,7 +2991,7 @@ BattleScript_LocalBattleLostPrintTrainersWinText:: jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ BattleScript_LocalBattleLostDoTrainer2WinText:: - trainerslideout IDENTITY_OPPONENT_MON1 + trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein GBANK_1 waitstate @@ -3007,7 +3007,7 @@ BattleScript_82DAA0B:: trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1WINTEXT - trainerslideout IDENTITY_OPPONENT_MON1 + trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein GBANK_1 waitstate @@ -3035,7 +3035,7 @@ BattleScript_82DAA5C:: trainerslidein ATTACKER waitstate printstring STRINGID_TRAINER1LOSETEXT - trainerslideout IDENTITY_OPPONENT_MON1 + trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein GBANK_1 waitstate @@ -3058,7 +3058,7 @@ BattleScript_82DAAAE:: waitstate printstring STRINGID_TRAINER1LOSETEXT jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB - trainerslideout IDENTITY_OPPONENT_MON1 + trainerslideout B_POSITION_OPPONENT_LEFT waitstate trainerslidein GBANK_1 waitstate diff --git a/include/battle.h b/include/battle.h index 4fd252676..7b9d8b461 100644 --- a/include/battle.h +++ b/include/battle.h @@ -11,18 +11,33 @@ #include "battle_bg.h" /* - Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. - Each bank has a value consisting of two bits. - 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side. - 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.) -*/ + * Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. + * A battler may be in one of four positions on the field. The first bit determines + * what side the battler is on, either the player's side or the opponent's side. + * The second bit determines whether the pokemon is on the left or right of the + * given side. Note that the opponent's mons are drawn opposite because the position + * numbers correspond to their perspective. The bank number is usually the same + * as the position, except in the case of link battles. + * + * +---------------------- + + * | Opponent's side:| + * | 3 1 | + * | | + * | | + * |Player's side: | + * | 0 2 | + * ------------------------+ + * | | + * | | + * +-----------------------+ + */ #define BATTLE_BANKS_COUNT 4 -#define IDENTITY_PLAYER_MON1 0 -#define IDENTITY_OPPONENT_MON1 1 -#define IDENTITY_PLAYER_MON2 2 -#define IDENTITY_OPPONENT_MON2 3 +#define B_POSITION_PLAYER_LEFT 0 +#define B_POSITION_OPPONENT_LEFT 1 +#define B_POSITION_PLAYER_RIGHT 2 +#define B_POSITION_OPPONENT_RIGHT 3 #define SIDE_PLAYER 0x0 #define SIDE_OPPONENT 0x1 @@ -30,9 +45,9 @@ #define BIT_SIDE 0x1 #define BIT_MON 0x2 -#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank])) -#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE)) -#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE)) +#define GET_BANK_POSITION(bank)((gBankPositions[bank])) +#define GET_BANK_SIDE(bank)((GetBankPosition(bank) & BIT_SIDE)) +#define GET_BANK_SIDE2(bank)((GET_BANK_POSITION(bank) & BIT_SIDE)) #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 @@ -66,6 +81,8 @@ #define BATTLE_TYPE_KYOGRE 0x20000000 #define BATTLE_TYPE_RAYQUAZA 0x40000000 #define BATTLE_TYPE_x80000000 0x80000000 +#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) +#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define TRAINER_OPPONENT_3FE 0x3FE #define TRAINER_OPPONENT_C00 0xC00 @@ -73,9 +90,6 @@ #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) -#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) - #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 #define BATTLE_DREW 0x3 @@ -832,7 +846,7 @@ enum // rom_80A5C6C u8 GetBankSide(u8 bank); -u8 GetBankIdentity(u8 bank); +u8 GetBankPosition(u8 bank); u8 GetBankByIdentity(u8 bank); struct BattleSpriteInfo diff --git a/include/battle_anim.h b/include/battle_anim.h index 4046f7051..c208ee1a7 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -85,7 +85,7 @@ enum BANK_Y_POS, }; -u8 GetBankPosition(u8 bank, u8 attributeId); +u8 GetBankCoord(u8 bank, u8 attributeId); bool8 IsBankSpritePresent(u8 bank); void sub_80A6C68(u8 arg0); diff --git a/src/battle_2.c b/src/battle_2.c index 61e39b39f..78f577fda 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -2517,7 +2517,7 @@ static void sub_8039A48(struct Sprite *sprite) } else { - u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankIdentity(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); + u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankPosition(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; @@ -3116,7 +3116,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) gBattleMons[gActiveBank].status2 = 0; } - if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) { EmitDrawTrainerPic(0); MarkBufferBankForExecution(gActiveBank); @@ -3124,7 +3124,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) { EmitDrawTrainerPic(0); MarkBufferBankForExecution(gActiveBank); @@ -3159,15 +3159,15 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2 - || GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2) + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT + || GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) { EmitDrawTrainerPic(0); MarkBufferBankForExecution(gActiveBank); } } - if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2) + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) { EmitDrawTrainerPic(0); MarkBufferBankForExecution(gActiveBank); @@ -3203,7 +3203,7 @@ static void BattleIntroDrawPartySummaryScreens(void) hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gActiveBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); @@ -3221,7 +3221,7 @@ static void BattleIntroDrawPartySummaryScreens(void) hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); @@ -3257,7 +3257,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gActiveBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); gBattleMainFunc = BattleIntroPrintOpponentSendsOut; } @@ -3280,16 +3280,16 @@ static void BattleIntroPrintOpponentSendsOut(void) return; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; else - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; } else - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; @@ -3300,20 +3300,20 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) u32 identity; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = IDENTITY_OPPONENT_MON2; + identity = B_POSITION_OPPONENT_RIGHT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = IDENTITY_OPPONENT_MON2; + identity = B_POSITION_OPPONENT_RIGHT; else - identity = IDENTITY_PLAYER_MON2; + identity = B_POSITION_PLAYER_RIGHT; } else - identity = IDENTITY_OPPONENT_MON2; + identity = B_POSITION_OPPONENT_RIGHT; for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (GetBankIdentity(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == identity) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3329,23 +3329,23 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void) u32 identity; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; else - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; } else - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; if (gBattleExecBuffer) return; for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (GetBankIdentity(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == identity) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3408,7 +3408,7 @@ _0803B29A:\n\ adds r6, r4, 0\n\ _0803B2B2:\n\ ldrb r0, [r4]\n\ - bl GetBankIdentity\n\ + bl GetBankPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, r5\n\ @@ -3482,16 +3482,16 @@ static void BattleIntroPrintPlayerSendsOut(void) u8 identity; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; else - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; } else - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); @@ -3505,20 +3505,20 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) u32 identity; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = IDENTITY_PLAYER_MON2; + identity = B_POSITION_PLAYER_RIGHT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = IDENTITY_PLAYER_MON2; + identity = B_POSITION_PLAYER_RIGHT; else - identity = IDENTITY_OPPONENT_MON2; + identity = B_POSITION_OPPONENT_RIGHT; } else - identity = IDENTITY_PLAYER_MON2; + identity = B_POSITION_PLAYER_RIGHT; for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (GetBankIdentity(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == identity) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3537,23 +3537,23 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) u32 identity; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; else - identity = IDENTITY_OPPONENT_MON1; + identity = B_POSITION_OPPONENT_LEFT; } else - identity = IDENTITY_PLAYER_MON1; + identity = B_POSITION_PLAYER_LEFT; if (gBattleExecBuffer) return; for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - if (GetBankIdentity(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == identity) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3891,7 +3891,7 @@ static void HandleTurnActionSelectionState(void) gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - u8 identity = GetBankIdentity(gActiveBank); + u8 identity = GetBankPosition(gActiveBank); switch (gBattleCommunication[gActiveBank]) { case STATE_TURN_START_RECORD: // recorded battle related on start of every turn @@ -4041,38 +4041,38 @@ static void HandleTurnActionSelectionState(void) break; case ACTION_CANCEL_PARTNER: gBattleCommunication[gActiveBank] = 7; - gBattleCommunication[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] = 1; + gBattleCommunication[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; RecordedBattle_ClearBankAction(gActiveBank, 1); - if (gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) + if (gBattleMons[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) { EmitCmd50(0); MarkBufferBankForExecution(gActiveBank); return; } - else if (gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) + else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 2); + RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 2); } - else if (gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_RUN) + else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); } - else if (gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE - && (gProtectStructs[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].onlyStruggle - || gDisableStructs[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].encoredMove)) + else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE + && (gProtectStructs[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle + || gDisableStructs[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); } else if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) + && gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) { gRngValue = gBattlePalaceMoveSelectionRngValue; - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); } else { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 3); + RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 3); } EmitCmd50(0); MarkBufferBankForExecution(gActiveBank); @@ -4727,7 +4727,7 @@ static void HandleEndTurn_BattleWon(void) { gSpecialVar_Result = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -4800,7 +4800,7 @@ static void HandleEndTurn_BattleLost(void) else { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } @@ -5127,16 +5127,16 @@ static void HandleAction_UseMove(void) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); } } else @@ -5148,13 +5148,13 @@ static void HandleAction_UseMove(void) { if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); } else { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); } } } @@ -5172,22 +5172,22 @@ static void HandleAction_UseMove(void) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); } if (gAbsentBankFlags & gBitTable[gBankTarget] && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); } } else @@ -5197,13 +5197,13 @@ static void HandleAction_UseMove(void) { if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); } else { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); } } } diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 42cf0595f..a10dab976 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1316,7 +1316,7 @@ static void BattleAICmd_count_usable_party_mons(void) { u32 identity; bankOnField1 = gBattlePartyID[bank]; - identity = GetBankIdentity(bank) ^ BIT_MON; + identity = GetBankPosition(bank) ^ BIT_MON; bankOnField2 = gBattlePartyID[GetBankByIdentity(identity)]; } else // in singles there's only one bank by side diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index b3fccb17f..092d4a7c7 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -60,7 +60,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) return FALSE; - opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; + opposingIdentity = GetBankPosition(gActiveBank) ^ BIT_SIDE; if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD) return FALSE; @@ -151,10 +151,10 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) bankIn2 = gActiveBank; else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); } else { @@ -273,7 +273,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) u8 moveFlags; u16 move; - opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; + opposingIdentity = GetBankPosition(gActiveBank) ^ BIT_SIDE; opposingBank = GetBankByIdentity(opposingIdentity); if (!(gAbsentBankFlags & gBitTable[opposingBank])) @@ -357,10 +357,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) bankIn2 = gActiveBank; else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); } else { @@ -468,10 +468,10 @@ static bool8 ShouldSwitch(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = *activeBankPtr; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(*activeBankPtr) ^ BIT_MON)]) bankIn2 = *activeBankPtr; else - bankIn2 = GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON); + bankIn2 = GetBankByIdentity(GetBankPosition(*activeBankPtr) ^ BIT_MON); } else { @@ -543,7 +543,7 @@ void AI_TrySwitchOrUseItem(void) u8 bankIn1, bankIn2; s32 firstId; s32 lastId; // + 1 - u8 bankIdentity = GetBankIdentity(gActiveBank); + u8 bankIdentity = GetBankPosition(gActiveBank); if (GetBankSide(gActiveBank) == SIDE_PLAYER) party = gPlayerParty; @@ -659,10 +659,10 @@ u8 GetMostSuitableMonToSwitchInto(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) bankIn2 = gActiveBank; else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); // UB: It considers the opponent only player's side even though it can battle alongside player; opposingBank = Random() & BIT_MON; @@ -671,7 +671,7 @@ u8 GetMostSuitableMonToSwitchInto(void) } else { - opposingBank = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_SIDE); + opposingBank = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_SIDE); bankIn1 = gActiveBank; bankIn2 = gActiveBank; } @@ -817,7 +817,7 @@ static bool8 ShouldUseItem(void) u8 validMons = 0; bool8 shouldUse = FALSE; - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT) return FALSE; if (GetBankSide(gActiveBank) == SIDE_PLAYER) diff --git a/src/battle_anim.c b/src/battle_anim.c index d991a702d..ecaff67a8 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -424,7 +424,7 @@ static void ScriptCmd_createsprite(void) if (subpriority < 3) subpriority = 3; - CreateSpriteAndAnimate(template, GetBankPosition(gAnimBankTarget, 2), GetBankPosition(gAnimBankTarget, 3), subpriority); + CreateSpriteAndAnimate(template, GetBankCoord(gAnimBankTarget, 2), GetBankCoord(gAnimBankTarget, 3), subpriority); gAnimVisualTaskCount++; } @@ -613,8 +613,8 @@ static void ScriptCmd_monbg(void) if (IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankIdentity(bank); - if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + u8 identity = GetBankPosition(bank); + if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -632,8 +632,8 @@ static void ScriptCmd_monbg(void) bank ^= BIT_MON; if (IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankIdentity(bank); - if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + u8 identity = GetBankPosition(bank); + if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -718,7 +718,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) if (IsContest()) bankIdentity = 0; else - bankIdentity = GetBankIdentity(bank); + bankIdentity = GetBankPosition(bank); sub_8118FBC(1, 0, 0, bankIdentity, unknownStruct.unk8, unknownStruct.unk0, unknownStruct.unk4, unknownStruct.unkA); @@ -750,7 +750,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], 0x90, 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + 0x120), 0x20); - sub_8118FBC(2, 0, 0, GetBankIdentity(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA); + sub_8118FBC(2, 0, 0, GetBankPosition(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA); } } @@ -893,8 +893,8 @@ static void sub_80A4980(u8 taskId) if (gTasks[taskId].data[1] != 1) { u8 to_BG2; - u8 identity = GetBankIdentity(gTasks[taskId].data[2]); - if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + u8 identity = GetBankPosition(gTasks[taskId].data[2]); + if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) to_BG2 = FALSE; else to_BG2 = TRUE; @@ -937,8 +937,8 @@ static void ScriptCmd_monbg_22(void) if (IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankIdentity(bank); - if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + u8 identity = GetBankPosition(bank); + if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -949,8 +949,8 @@ static void ScriptCmd_monbg_22(void) bank ^= BIT_MON; if (animBankId > 1 && IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankIdentity(bank); - if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + u8 identity = GetBankPosition(bank); + if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -1001,8 +1001,8 @@ static void sub_80A4BB0(u8 taskId) { bool8 toBG_2; u8 bank = gTasks[taskId].data[2]; - u8 identity = GetBankIdentity(bank); - if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest()) + u8 identity = GetBankPosition(bank); + if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -1705,8 +1705,8 @@ static void ScriptCmd_monbgprio_28(void) else bank = gAnimBankAttacker; - bankIdentity = GetBankIdentity(bank); - if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2)) + bankIdentity = GetBankPosition(bank); + if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT)) { SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); @@ -1738,8 +1738,8 @@ static void ScriptCmd_monbgprio_2A(void) else bank = gAnimBankAttacker; - bankIdentity = GetBankIdentity(bank); - if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2)) + bankIdentity = GetBankPosition(bank); + if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT)) { SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index cb510bb5b..a72650537 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -295,7 +295,7 @@ static void sub_8064520(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; - if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2) + if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) { FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); @@ -352,7 +352,7 @@ static void sub_8064734(void) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -370,7 +370,7 @@ static void sub_8064734(void) if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) { - if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2) + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) { if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 1) return; @@ -1161,10 +1161,10 @@ static void LinkOpponentHandleLoadMonSprite(void) u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_806A068(species, GetBankIdentity(gActiveBank)); + sub_806A068(species, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(gActiveBank, 2), + GetBankCoord(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); @@ -1194,11 +1194,11 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1262,7 +1262,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon xPos = 152; else // first mon xPos = 200; @@ -1328,7 +1328,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) } DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, @@ -1353,7 +1353,7 @@ static void LinkOpponentHandleTrainerSlide(void) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 082b134b4..14061b3a9 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1047,10 +1047,10 @@ static void LinkPartnerHandleLoadMonSprite(void) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); - sub_806A068(species, GetBankIdentity(gActiveBank)); + sub_806A068(species, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(gActiveBank, 2), + GetBankCoord(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; @@ -1077,11 +1077,11 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1144,7 +1144,7 @@ static void LinkPartnerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon xPos = 90; else // first mon xPos = 32; @@ -1170,7 +1170,7 @@ static void LinkPartnerHandleDrawTrainerPic(void) } DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 30414d53a..d3e72c0ad 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -293,7 +293,7 @@ static void sub_805F2F0(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) { - if (GetBankIdentity(gActiveBank) == 3) + if (GetBankPosition(gActiveBank) == 3) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 == 0 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 == 0) { @@ -349,7 +349,7 @@ static void sub_805F560(void) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (GetBankIdentity(gActiveBank) == 1) + if (GetBankPosition(gActiveBank) == 1) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -1149,10 +1149,10 @@ static void OpponentHandleLoadMonSprite(void) u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_806A068(species, GetBankIdentity(gActiveBank)); + sub_806A068(species, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(gActiveBank, 2), + GetBankCoord(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); @@ -1184,10 +1184,10 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1304,7 +1304,7 @@ static void OpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) { - if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon xPos = 152; else // first mon xPos = 200; @@ -1315,7 +1315,7 @@ static void OpponentHandleDrawTrainerPic(void) } DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, @@ -1387,7 +1387,7 @@ static void OpponentHandleTrainerSlide(void) } DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; @@ -1588,9 +1588,9 @@ static void OpponentHandleChooseMove(void) gBankTarget = gActiveBank; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); } EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankTarget << 8)); break; @@ -1611,7 +1611,7 @@ static void OpponentHandleChooseMove(void) else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(Random() & 2) << 8)); else - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(IDENTITY_PLAYER_MON1) << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(B_POSITION_PLAYER_LEFT) << 8)); OpponentBufferExecCompleted(); } @@ -1638,12 +1638,12 @@ static void OpponentHandleChoosePokemon(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - bank2 = bank1 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + bank2 = bank1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); } else { - bank1 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - bank2 = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + bank1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + bank2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index a9d5b70eb..dfbf9df94 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -232,7 +232,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = nullsub_22 }; -static const u8 sTargetIdentities[] = {IDENTITY_PLAYER_MON1, IDENTITY_PLAYER_MON2, IDENTITY_OPPONENT_MON2, IDENTITY_OPPONENT_MON1}; +static const u8 sTargetIdentities[] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT}; // unknown unused data static const u8 sUnknown_0831C5FC[] = {0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58}; @@ -357,8 +357,8 @@ static void HandleInputChooseAction(void) else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - && GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2 - && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(IDENTITY_PLAYER_MON1)]) + && GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT + && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(B_POSITION_PLAYER_LEFT)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { if (gBattleBufferA[gActiveBank][1] == ACTION_USE_ITEM) @@ -436,7 +436,7 @@ static void HandleInputChooseTarget(void) do { - u8 currSelIdentity = GetBankIdentity(gMultiUsePlayerCursor); + u8 currSelIdentity = GetBankPosition(gMultiUsePlayerCursor); for (i = 0; i < BATTLE_BANKS_COUNT; i++) { @@ -451,17 +451,17 @@ static void HandleInputChooseTarget(void) } while (gMultiUsePlayerCursor == gNoOfAllBanks); i = 0; - switch (GetBankIdentity(gMultiUsePlayerCursor)) + switch (GetBankPosition(gMultiUsePlayerCursor)) { - case IDENTITY_PLAYER_MON1: - case IDENTITY_PLAYER_MON2: + case B_POSITION_PLAYER_LEFT: + case B_POSITION_PLAYER_RIGHT: if (gActiveBank != gMultiUsePlayerCursor) i++; else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank])].target & MOVE_TARGET_USER) i++; break; - case IDENTITY_OPPONENT_MON1: - case IDENTITY_OPPONENT_MON2: + case B_POSITION_OPPONENT_LEFT: + case B_POSITION_OPPONENT_RIGHT: i++; break; } @@ -478,7 +478,7 @@ static void HandleInputChooseTarget(void) do { - u8 currSelIdentity = GetBankIdentity(gMultiUsePlayerCursor); + u8 currSelIdentity = GetBankPosition(gMultiUsePlayerCursor); for (i = 0; i < BATTLE_BANKS_COUNT; i++) { @@ -493,17 +493,17 @@ static void HandleInputChooseTarget(void) } while (gMultiUsePlayerCursor == gNoOfAllBanks); i = 0; - switch (GetBankIdentity(gMultiUsePlayerCursor)) + switch (GetBankPosition(gMultiUsePlayerCursor)) { - case IDENTITY_PLAYER_MON1: - case IDENTITY_PLAYER_MON2: + case B_POSITION_PLAYER_LEFT: + case B_POSITION_PLAYER_RIGHT: if (gActiveBank != gMultiUsePlayerCursor) i++; else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank])].target & MOVE_TARGET_USER) i++; break; - case IDENTITY_OPPONENT_MON1: - case IDENTITY_OPPONENT_MON2: + case B_POSITION_OPPONENT_LEFT: + case B_POSITION_OPPONENT_RIGHT: i++; break; } @@ -545,7 +545,7 @@ static void HandleInputChooseMove(void) if (moveTarget & MOVE_TARGET_x10) gMultiUsePlayerCursor = gActiveBank; else - gMultiUsePlayerCursor = GetBankByIdentity((GetBankIdentity(gActiveBank) & BIT_SIDE) ^ BIT_SIDE); + gMultiUsePlayerCursor = GetBankByIdentity((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE); if (!gBattleBufferA[gActiveBank][1]) // not a double battle { @@ -579,10 +579,10 @@ static void HandleInputChooseMove(void) if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) gMultiUsePlayerCursor = gActiveBank; - else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(IDENTITY_OPPONENT_MON1)]) - gMultiUsePlayerCursor = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(B_POSITION_OPPONENT_LEFT)]) + gMultiUsePlayerCursor = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); else - gMultiUsePlayerCursor = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gMultiUsePlayerCursor = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; } @@ -2234,11 +2234,11 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -2326,7 +2326,7 @@ static void PlayerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon xPos = 90; else // first mon xPos = 32; @@ -2353,7 +2353,7 @@ static void PlayerHandleDrawTrainerPic(void) { trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A1C0(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A1C0(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); @@ -2368,7 +2368,7 @@ static void PlayerHandleDrawTrainerPic(void) else { DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; @@ -2407,7 +2407,7 @@ static void PlayerHandleTrainerSlide(void) } DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; @@ -2463,7 +2463,7 @@ static void PlayerHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } @@ -2473,7 +2473,7 @@ static void PlayerHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 6b5211ceb..5d6f07a48 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1234,10 +1234,10 @@ static void PlayerPartnerHandleLoadMonSprite(void) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); - sub_806A068(species, GetBankIdentity(gActiveBank)); + sub_806A068(species, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(gActiveBank, 2), + GetBankCoord(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; @@ -1264,11 +1264,11 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1349,7 +1349,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void) if (gPartnerTrainerId == STEVEN_PARTNER_ID) { DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; @@ -1360,7 +1360,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void) else // otherwise use front sprite { DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A1C0(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A1C0(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); @@ -1548,9 +1548,9 @@ static void PlayerPartnerHandleChooseMove(void) gBankTarget = gActiveBank; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); } EmitTwoReturnValues(1, 10, chosenMoveId | (gBankTarget << 8)); @@ -1568,8 +1568,8 @@ static void PlayerPartnerHandleChoosePokemon(void) if (chosenMonId == 6) // just switch to the next mon { - u8 playerMonIdentity = GetBankByIdentity(IDENTITY_PLAYER_MON1); - u8 selfIdentity = GetBankByIdentity(IDENTITY_PLAYER_MON2); + u8 playerMonIdentity = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + u8 selfIdentity = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); for (chosenMonId = 3; chosenMonId < 6; chosenMonId++) { diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 6e29fa951..e5e0bef84 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -274,7 +274,7 @@ static void sub_8186678(void) if (var) { - if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) return; @@ -330,7 +330,7 @@ static void sub_818686C(void) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -1146,10 +1146,10 @@ static void RecordedOpponentHandleLoadMonSprite(void) u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_806A068(species, GetBankIdentity(gActiveBank)); + sub_806A068(species, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(gActiveBank, 2), + GetBankCoord(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); @@ -1181,10 +1181,10 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1248,7 +1248,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon xPos = 152; else // first mon xPos = 200; @@ -1279,7 +1279,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void) } DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index f101d811f..183da6bfd 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -245,7 +245,7 @@ static void sub_8189AA0(void) { bool32 r6 = FALSE; - if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) { if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { @@ -312,7 +312,7 @@ static void sub_8189D40(void) { bool32 r10 = FALSE; - if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) @@ -353,7 +353,7 @@ static void sub_8189D40(void) { if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1) + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -1132,10 +1132,10 @@ static void RecordedPlayerHandleLoadMonSprite(void) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); - sub_806A068(species, GetBankIdentity(gActiveBank)); + sub_806A068(species, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(gActiveBank, 2), + GetBankCoord(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; @@ -1162,11 +1162,11 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); @@ -1241,7 +1241,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon xPos = 90; else // first mon xPos = 32; @@ -1267,7 +1267,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void) { trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A1C0(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A1C0(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); @@ -1281,7 +1281,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void) else { DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank)); + sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 682e8333d..a04f06d8c 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -378,7 +378,7 @@ static void SafariHandleReturnMonToBall(void) static void SafariHandleDrawTrainerPic(void) { DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBank); - sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(gActiveBank)); + sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite( &gUnknown_0202499C, 80, @@ -415,7 +415,7 @@ static void SafariHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } @@ -425,7 +425,7 @@ static void SafariHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index b0e1e1480..8a34763f6 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -1067,7 +1067,7 @@ static void WallyHandleReturnMonToBall(void) static void WallyHandleDrawTrainerPic(void) { DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBank); - sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(gActiveBank)); + sub_806A12C(BACK_PIC_WALLY, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords), @@ -1082,7 +1082,7 @@ static void WallyHandleDrawTrainerPic(void) static void WallyHandleTrainerSlide(void) { DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBank); - sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(gActiveBank)); + sub_806A12C(BACK_PIC_WALLY, GetBankPosition(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords), @@ -1113,7 +1113,7 @@ static void WallyHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; } @@ -1123,7 +1123,7 @@ static void WallyHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; } @@ -1494,9 +1494,9 @@ static void sub_816AA80(u8 bank) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankIdentity(bank)); + sub_806A068(species, GetBankPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - GetBankPosition(bank, 2), + GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index c6d47e71e..467ce3640 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -16,7 +16,7 @@ extern u32 gBattleTypeFlags; extern u32 gBattleExecBuffer; extern void (*gBattleMainFunc)(void); extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); -extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT]; +extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gNoOfAllBanks; @@ -79,7 +79,7 @@ void SetUpBattleVarsAndBirchZigzagoon(void) for (i = 0; i < BATTLE_BANKS_COUNT; i++) { gBattleBankFunc[i] = nullsub_21; - gBanksByIdentity[i] = 0xFF; + gBankPositions[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; } @@ -146,30 +146,30 @@ static void SetControllersVariables(void) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToPlayerPartner; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[3] = SetControllerToOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; } else { gBattleBankFunc[0] = SetControllerToPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToPlayerPartner; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[3] = SetControllerToOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; } gNoOfAllBanks = 4; @@ -195,10 +195,10 @@ static void SetControllersVariables(void) else gBattleBankFunc[0] = SetControllerToPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gNoOfAllBanks = 2; @@ -211,20 +211,20 @@ static void SetControllersVariables(void) gBattleMainFunc = BeginBattleIntro; gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToRecordedOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gNoOfAllBanks = 2; } else // see how the banks are switched { gBattleBankFunc[1] = SetControllerToRecordedPlayer; - gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + gBankPositions[1] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[0] = SetControllerToRecordedOpponent; - gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gNoOfAllBanks = 2; } @@ -232,10 +232,10 @@ static void SetControllersVariables(void) else { gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; } } } @@ -244,16 +244,16 @@ static void SetControllersVariables(void) gBattleMainFunc = BeginBattleIntro; gBattleBankFunc[0] = SetControllerToPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToPlayer; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[3] = SetControllerToOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gNoOfAllBanks = 4; @@ -264,16 +264,16 @@ static void SetControllersVariables(void) gBattleMainFunc = BeginBattleIntro; gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBanksByIdentity[0] = 0; + gBankPositions[0] = 0; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = 1; + gBankPositions[1] = 1; gBattleBankFunc[2] = SetControllerToRecordedPlayer; - gBanksByIdentity[2] = 2; + gBankPositions[2] = 2; gBattleBankFunc[3] = SetControllerToOpponent; - gBanksByIdentity[3] = 3; + gBankPositions[3] = 3; gNoOfAllBanks = 4; @@ -312,12 +312,12 @@ static void SetControllersVariables(void) { case 0: case 3: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1; + gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2; + gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -330,12 +330,12 @@ static void SetControllersVariables(void) { case 0: case 3: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1; + gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2; + gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -347,12 +347,12 @@ static void SetControllersVariables(void) { case 0: case 3: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON1; + gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_LEFT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON2; + gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_RIGHT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -362,51 +362,51 @@ static void SetControllersVariables(void) else if (gBattleTypeFlags & BATTLE_TYPE_WILD) { gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[2] = SetControllerToRecordedPlayer; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { gBattleBankFunc[1] = SetControllerToRecordedOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[3] = SetControllerToRecordedOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; } else { gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[3] = SetControllerToOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; } } else { gBattleBankFunc[1] = SetControllerToRecordedPlayer; - gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + gBankPositions[1] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[3] = SetControllerToRecordedPlayer; - gBanksByIdentity[3] = IDENTITY_PLAYER_MON2; + gBankPositions[3] = B_POSITION_PLAYER_RIGHT; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { gBattleBankFunc[0] = SetControllerToRecordedOpponent; - gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToRecordedOpponent; - gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2; + gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; } else { gBattleBankFunc[0] = SetControllerToOpponent; - gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToOpponent; - gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2; + gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; } } } @@ -425,20 +425,20 @@ static void SetControllersVariablesInLinkBattle(void) gBattleMainFunc = BeginBattleIntro; gBattleBankFunc[0] = SetControllerToPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToLinkOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gNoOfAllBanks = 2; } else { gBattleBankFunc[1] = SetControllerToPlayer; - gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + gBankPositions[1] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[0] = SetControllerToLinkOpponent; - gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gNoOfAllBanks = 2; } @@ -450,32 +450,32 @@ static void SetControllersVariablesInLinkBattle(void) gBattleMainFunc = BeginBattleIntro; gBattleBankFunc[0] = SetControllerToPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToLinkOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToPlayer; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[3] = SetControllerToLinkOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gNoOfAllBanks = 4; } else { gBattleBankFunc[1] = SetControllerToPlayer; - gBanksByIdentity[1] = IDENTITY_PLAYER_MON1; + gBankPositions[1] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[0] = SetControllerToLinkOpponent; - gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1; + gBankPositions[0] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[3] = SetControllerToPlayer; - gBanksByIdentity[3] = IDENTITY_PLAYER_MON2; + gBankPositions[3] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[2] = SetControllerToLinkOpponent; - gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2; + gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; gNoOfAllBanks = 4; } @@ -487,32 +487,32 @@ static void SetControllersVariablesInLinkBattle(void) gBattleMainFunc = BeginBattleIntro; gBattleBankFunc[0] = SetControllerToPlayer; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToLinkPartner; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[3] = SetControllerToOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gNoOfAllBanks = 4; } else { gBattleBankFunc[0] = SetControllerToLinkPartner; - gBanksByIdentity[0] = IDENTITY_PLAYER_MON1; + gBankPositions[0] = B_POSITION_PLAYER_LEFT; gBattleBankFunc[1] = SetControllerToLinkOpponent; - gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1; + gBankPositions[1] = B_POSITION_OPPONENT_LEFT; gBattleBankFunc[2] = SetControllerToPlayer; - gBanksByIdentity[2] = IDENTITY_PLAYER_MON2; + gBankPositions[2] = B_POSITION_PLAYER_RIGHT; gBattleBankFunc[3] = SetControllerToLinkOpponent; - gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2; + gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; gNoOfAllBanks = 4; } @@ -554,12 +554,12 @@ static void SetControllersVariablesInLinkBattle(void) { case 0: case 3: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0; + gBankPositions[gLinkPlayers[i].lp_field_18] = 0; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2; + gBankPositions[gLinkPlayers[i].lp_field_18] = 2; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -574,12 +574,12 @@ static void SetControllersVariablesInLinkBattle(void) { case 0: case 3: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0; + gBankPositions[gLinkPlayers[i].lp_field_18] = 0; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2; + gBankPositions[gLinkPlayers[i].lp_field_18] = 2; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -591,12 +591,12 @@ static void SetControllersVariablesInLinkBattle(void) { case 0: case 3: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 1; + gBankPositions[gLinkPlayers[i].lp_field_18] = 1; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 3; + gBankPositions[gLinkPlayers[i].lp_field_18] = 3; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 775578ca2..5ded24863 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -29,7 +29,7 @@ extern u8 gNoOfAllBanks; extern u16 gUnknown_020243FC; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT]; +extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; @@ -262,7 +262,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void) else if (var1 == MOVE_TARGET_SELECTED) chosenMoveId |= (BattlePalaceGetTargetRetValue()); else - chosenMoveId |= (GetBankByIdentity((GetBankIdentity(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8); + chosenMoveId |= (GetBankByIdentity((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8); return chosenMoveId; } @@ -299,13 +299,13 @@ static u16 BattlePalaceGetTargetRetValue(void) if (GetBankSide(gActiveBank) == SIDE_PLAYER) { - opposing1 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - opposing2 = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + opposing1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + opposing2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); } else { - opposing1 = GetBankByIdentity(IDENTITY_PLAYER_MON1); - opposing2 = GetBankByIdentity(IDENTITY_PLAYER_MON2); + opposing1 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + opposing2 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); } if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp) @@ -561,7 +561,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) } otId = GetMonData(mon, MON_DATA_OT_ID); - identity = GetBankIdentity(bank); + identity = GetBankPosition(bank); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[identity], species, currentPersonality); @@ -614,7 +614,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) } otId = GetMonData(mon, MON_DATA_OT_ID); - identity = GetBankIdentity(bank); + identity = GetBankPosition(bank); if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) { @@ -665,7 +665,7 @@ void nullsub_24(u16 species) void DecompressTrainerFrontPic(u16 frontPicId, u8 bank) { - u8 identity = GetBankIdentity(bank); + u8 identity = GetBankPosition(bank); DecompressPicFromTable_2(&gTrainerFrontPicTable[frontPicId], gMonSpritesGfxPtr->sprites[identity], SPECIES_NONE); @@ -674,7 +674,7 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 bank) void DecompressTrainerBackPic(u16 backPicId, u8 bank) { - u8 identity = GetBankIdentity(bank); + u8 identity = GetBankPosition(bank); DecompressPicFromTable_2(&gTrainerBackPicTable[backPicId], gMonSpritesGfxPtr->sprites[identity], SPECIES_NONE); @@ -713,7 +713,7 @@ void sub_805DFFC(void) numberOfBanks = 4; } for (i = 0; i < numberOfBanks; i++) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[i]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[i]]); } bool8 BattleLoadAllHealthBoxesGfx(u8 state) @@ -739,9 +739,9 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) else if (state == 3) LoadCompressedObjectPic(&gUnknown_0832C0D8); else if (state == 4) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[0]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[0]]); else if (state == 5) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[1]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[1]]); else retVal = TRUE; } @@ -756,13 +756,13 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) else if (state == 5) LoadCompressedObjectPic(&gUnknown_0832C0F0[1]); else if (state == 6) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[0]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[0]]); else if (state == 7) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[1]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[1]]); else if (state == 8) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[2]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[2]]); else if (state == 9) - LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[3]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[3]]); else retVal = TRUE; } @@ -815,7 +815,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) break; case 4: SetBankHealthboxSpritePos(*bank); - if (gBanksByIdentity[*bank] <= 1) + if (gBankPositions[*bank] <= 1) DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], FALSE); else DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE); @@ -921,7 +921,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) } else { - identity = GetBankIdentity(bankAtk); + identity = GetBankPosition(bankAtk); if (GetBankSide(bankDef) == SIDE_OPPONENT) targetSpecies = GetMonData(&gEnemyParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES); @@ -991,7 +991,7 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite) if (IsContest()) identity = 0; else - identity = GetBankIdentity(bank); + identity = GetBankPosition(bank); if (IsContest()) LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[identity]); @@ -1080,7 +1080,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) void BattleStopLowHpSound(void) { - u8 playerBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); + u8 playerBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0; if (IsDoubleBattle()) @@ -1101,8 +1101,8 @@ void sub_805EAE8(void) { if (gMain.inBattle) { - u8 playerBank1 = GetBankByIdentity(IDENTITY_PLAYER_MON1); - u8 playerBank2 = GetBankByIdentity(IDENTITY_PLAYER_MON2); + u8 playerBank1 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + u8 playerBank2 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]); u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]); @@ -1143,14 +1143,14 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); - bank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8); + bank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; if (IsDoubleBattle()) { - bank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8); + bank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; } } diff --git a/src/battle_interface.c b/src/battle_interface.c index 6a6bf00a2..05f500860 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -152,7 +152,7 @@ enum HEALTHBOX_GFX_117, }; -extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT]; +extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u8 gNoOfAllBanks; extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; @@ -933,8 +933,8 @@ u8 CreateBankHealthboxSprites(u8 bank) { if (GetBankSide(bank) == SIDE_PLAYER) { - healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; @@ -946,8 +946,8 @@ u8 CreateBankHealthboxSprites(u8 bank) } else { - healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; @@ -959,7 +959,7 @@ u8 CreateBankHealthboxSprites(u8 bank) } } - unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBanksByIdentity[bank]], 140, 60, 0); + unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBankPositions[bank]], 140, 60, 0); unkSpritePtr = &gSprites[unkSpriteId]; SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBankSide(bank)]); unkSpritePtr->subspriteMode = 2; @@ -1111,18 +1111,18 @@ void SetBankHealthboxSpritePos(u8 bank) } else { - switch (GetBankIdentity(bank)) + switch (GetBankPosition(bank)) { - case IDENTITY_PLAYER_MON1: + case B_POSITION_PLAYER_LEFT: x = 159, y = 76; break; - case IDENTITY_PLAYER_MON2: + case B_POSITION_PLAYER_RIGHT: x = 171, y = 101; break; - case IDENTITY_OPPONENT_MON1: + case B_POSITION_OPPONENT_LEFT: x = 44, y = 19; break; - case IDENTITY_OPPONENT_MON2: + case B_POSITION_OPPONENT_RIGHT: x = 32, y = 44; break; } @@ -1353,7 +1353,7 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) u8 i, var, nature, healthboxSpriteId_2; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data[6]) * 384)]; + barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankPosition(gSprites[healthboxSpriteId].data[6]) * 384)]; var = 5; nature = GetNature(mon); StringCopy(text + 6, gNatureNamePointers[nature]); @@ -1485,7 +1485,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar u8 ballIconSpritesIds[6]; u8 taskId; - if (!arg2 || GetBankIdentity(bank) != IDENTITY_OPPONENT_MON2) + if (!arg2 || GetBankPosition(bank) != B_POSITION_OPPONENT_RIGHT) { if (GetBankSide(bank) == SIDE_PLAYER) { diff --git a/src/battle_message.c b/src/battle_message.c index e37a4c30c..80aa5e3f9 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1834,25 +1834,25 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gStringVar3; break; case B_TXT_PLAYER_MON1_NAME: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(IDENTITY_PLAYER_MON1)]], + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(IDENTITY_OPPONENT_MON1)]], + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(IDENTITY_PLAYER_MON2)]], + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(IDENTITY_OPPONENT_MON2)]], + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index c7976fc2a..18c094571 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4661,7 +4661,7 @@ _0804BA58:\n\ ldr r6, =gActiveBank\n\ ldrb r0, [r6]\n\ str r3, [sp]\n\ - bl GetBankIdentity\n\ + bl GetBankPosition\n\ mov r1, r10\n\ ands r1, r0\n\ lsls r0, r1, 1\n\ @@ -5103,7 +5103,7 @@ static void atk49_moveend(void) && !gProtectStructs[gBankAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 bank = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + u8 bank = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); if (gBattleMons[bank].hp != 0) { gBankTarget = bank; @@ -5454,10 +5454,10 @@ static void atk4F_jumpifcantswitch(void) { if (GetBankSide(gActiveBank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + r7 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + compareVar = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); else compareVar = r7; @@ -5465,10 +5465,10 @@ static void atk4F_jumpifcantswitch(void) } else { - r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1); + r7 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(IDENTITY_PLAYER_MON2); + compareVar = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); else compareVar = r7; @@ -5763,7 +5763,7 @@ static void atk50_openpartyscreen(void) gBattlescriptCurrInstr += 6; - if (GetBankIdentity(gActiveBank) == 0 && gBattleResults.playerSwitchesCounter < 0xFF) + if (GetBankPosition(gActiveBank) == 0 && gBattleResults.playerSwitchesCounter < 0xFF) gBattleResults.playerSwitchesCounter++; if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -5779,7 +5779,7 @@ static void atk50_openpartyscreen(void) } else { - gActiveBank = GetBankByIdentity(GetBankIdentity(bank) ^ BIT_SIDE); + gActiveBank = GetBankByIdentity(GetBankPosition(bank) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[gActiveBank]) gActiveBank ^= BIT_MON; @@ -5976,7 +5976,7 @@ static void atk56_playfaintcry(void) static void atk57(void) { - gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); EmitCmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); @@ -6011,7 +6011,7 @@ static void atk59_handlelearnnewmove(void) } else { - gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) @@ -6020,7 +6020,7 @@ static void atk59_handlelearnnewmove(void) } if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) { @@ -6851,7 +6851,7 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr++; } @@ -8309,7 +8309,7 @@ static void atk98_updatestatusicon(void) } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + gActiveBank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); if (!(gAbsentBankFlags & gBitTable[gActiveBank])) { EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); @@ -8978,7 +8978,7 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBank = gBattleScripting.bank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + gActiveBank = gBattleScripting.bank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) @@ -9026,7 +9026,7 @@ static void atkAE_healpartystatus(void) gBattleMons[gBankAttacker].status1 = 0; gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + gActiveBank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) { @@ -9296,16 +9296,16 @@ static void atkBA_jumpifnopursuitswitchdmg(void) if (gMultiHitCounter == 1) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); } else { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); else - gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); } if (gActionForBanks[gBankTarget] == ACTION_USE_MOVE @@ -9875,7 +9875,7 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gBankTarget]) @@ -10544,7 +10544,7 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); + gActiveBank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) diff --git a/src/battle_util.c b/src/battle_util.c index 2ce37cfbd..2a1b421f5 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -104,16 +104,16 @@ u8 GetBattleBank(u8 caseId) case 8: case 9: case BS_GET_PLAYER1: - ret = GetBankByIdentity(IDENTITY_PLAYER_MON1); + ret = GetBankByIdentity(B_POSITION_PLAYER_LEFT); break; case BS_GET_OPPONENT1: - ret = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + ret = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); break; case BS_GET_PLAYER2: - ret = GetBankByIdentity(IDENTITY_PLAYER_MON2); + ret = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); break; case BS_GET_OPPONENT2: - ret = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + ret = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); break; } return ret; @@ -1667,14 +1667,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) { if (GetBankSide(bank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - r6 = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + r7 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + r6 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); party = gEnemyParty; } else { - r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1); - r6 = GetBankByIdentity(IDENTITY_PLAYER_MON2); + r7 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + r6 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); party = gPlayerParty; } if (r1 == 6) @@ -2335,7 +2335,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { u8 target2; - side = (GetBankIdentity(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon + side = (GetBankPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon target1 = GetBankByIdentity(side); target2 = GetBankByIdentity(side + BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -3268,7 +3268,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBankByIdentity((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[targetBank]) targetBank ^= BIT_MON; break; @@ -3281,22 +3281,22 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + targetBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); else - targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + targetBank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); + targetBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); else - targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON2); + targetBank = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); } if (gAbsentBankFlags & gBitTable[targetBank]) targetBank ^= BIT_MON; } else - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBankByIdentity((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: @@ -3332,7 +3332,7 @@ u8 IsMonDisobedient(void) if (HasObedientBitSet(gBankAttacker)) // only if species is Mew or Deoxys { - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gBankAttacker) == 2) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankPosition(gBankAttacker) == 2) return 0; if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) return 0; diff --git a/src/battle_util2.c b/src/battle_util2.c index 538c1c641..d242ab6c9 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -87,15 +87,15 @@ void AdjustFriendshipOnBattleFaint(u8 bank) { u8 opposingBank2; - opposingBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - opposingBank2 = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + opposingBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + opposingBank2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); if (gBattleMons[opposingBank2].level > gBattleMons[opposingBank].level) opposingBank = opposingBank2; } else { - opposingBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + opposingBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); } if (gBattleMons[opposingBank].level > gBattleMons[bank].level) diff --git a/src/pokeball.c b/src/pokeball.c index b48e55135..86ab85b6a 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -384,14 +384,14 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) 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; + gSprites[ballSpriteId].pos1.x = GetBankCoord(bank, BANK_X_POS); + gSprites[ballSpriteId].pos1.y = GetBankCoord(bank, BANK_Y_POS) + 24; gBankTarget = bank; gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; break; default: - gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); notSendOut = TRUE; break; } @@ -405,8 +405,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) // this will perform an unused ball throw animation gSprites[ballSpriteId].data[0] = 0x22; - gSprites[ballSpriteId].data[2] = GetBankPosition(gBankTarget, BANK_X_POS); - gSprites[ballSpriteId].data[4] = GetBankPosition(gBankTarget, BANK_Y_POS) - 16; + gSprites[ballSpriteId].data[2] = GetBankCoord(gBankTarget, BANK_X_POS); + gSprites[ballSpriteId].data[4] = GetBankCoord(gBankTarget, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[5] = -40; sub_80A68D4(&gSprites[ballSpriteId]); gSprites[ballSpriteId].oam.affineParam = taskId; @@ -767,7 +767,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) } species = GetMonData(mon, MON_DATA_SPECIES); - if ((bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1)) + if ((bank == GetBankByIdentity(B_POSITION_PLAYER_LEFT) || bank == GetBankByIdentity(B_POSITION_OPPONENT_LEFT)) && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -783,7 +783,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) wantedCryCase = 0; - else if (bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1)) + else if (bank == GetBankByIdentity(B_POSITION_PLAYER_LEFT) || bank == GetBankByIdentity(B_POSITION_OPPONENT_LEFT)) wantedCryCase = 1; else wantedCryCase = 2; @@ -900,8 +900,8 @@ static void sub_80760F8(struct Sprite *sprite) static 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[2] = GetBankCoord(sprite->sBank, 2); + sprite->data[4] = GetBankCoord(sprite->sBank, 3) + 24; sprite->data[5] = -30; sprite->oam.affineParam = sprite->sBank; sub_80A68D4(sprite); @@ -956,7 +956,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) sprite->data[0] = 0; if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 - && sprite->sBank == GetBankByIdentity(IDENTITY_PLAYER_MON2)) + && sprite->sBank == GetBankByIdentity(B_POSITION_PLAYER_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else sprite->callback = SpriteCB_ReleaseMonFromBall; @@ -982,7 +982,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) { sprite->data[0] = 0; if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 - && sprite->sBank == GetBankByIdentity(IDENTITY_OPPONENT_MON2)) + && sprite->sBank == GetBankByIdentity(B_POSITION_OPPONENT_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else sprite->callback = SpriteCB_ReleaseMonFromBall; @@ -1198,7 +1198,7 @@ void sub_8076918(u8 bank) healthboxSprite->pos2.y = -healthboxSprite->pos2.y; } gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]); - if (GetBankIdentity(bank) == IDENTITY_PLAYER_MON2) + if (GetBankPosition(bank) == B_POSITION_PLAYER_RIGHT) healthboxSprite->callback = sub_80769A8; } diff --git a/src/pokemon_2.c b/src/pokemon_2.c index db176e025..8640eacde 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -36,7 +36,7 @@ extern const u8 gText_EggNickname[]; extern u8 GetBankSide(u8 bank); extern u8 GetBankByIdentity(u8 bank); -extern u8 GetBankIdentity(u8 bank); +extern u8 GetBankPosition(u8 bank); u8 CountAliveMonsInBattle(u8 caseId) { @@ -86,7 +86,7 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 bank) u8 GetDefaultMoveTarget(u8 bank) { - u8 status = GetBankIdentity(bank) & 1; + u8 status = GetBankPosition(bank) & 1; status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 3df2ff151..16d902aaa 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 GetBankPosition(u8 bank, u8 caseId); +extern u8 GetBankCoord(u8 bank, u8 caseId); // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); @@ -164,13 +164,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void) LoadAndCreateEnemyShadowSprites(); - opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + opponentBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); SetBankEnemyShadowSpriteCallback(opponentBank, species); if (IsDoubleBattle()) { - opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + opponentBank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); SetBankEnemyShadowSpriteCallback(opponentBank, species); } @@ -259,8 +259,8 @@ static void CreateBankSprite(u8 bank) if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank)); + sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankPosition(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data[0] = bank; @@ -272,7 +272,7 @@ static void CreateBankSprite(u8 bank) } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) { - sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(IDENTITY_PLAYER_MON1)); + sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankPosition(B_POSITION_PLAYER_LEFT)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, sub_80A82E4(0)); @@ -282,7 +282,7 @@ static void CreateBankSprite(u8 bank) } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { - sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(0)); + sub_806A12C(BACK_PIC_WALLY, GetBankPosition(0)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80, sub_80A82E4(0)); @@ -295,8 +295,8 @@ static void CreateBankSprite(u8 bank) if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank)); + sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankPosition(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gBankSpriteIds[bank]].data[0] = bank; @@ -335,7 +335,7 @@ static void CreateHealthboxSprite(u8 bank) else UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL); - if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2) + if (GetBankPosition(bank) == B_POSITION_OPPONENT_RIGHT || GetBankPosition(bank) == B_POSITION_PLAYER_RIGHT) DummyBattleInterfaceFunc(gHealthBoxesIds[bank], TRUE); else DummyBattleInterfaceFunc(gHealthBoxesIds[bank], FALSE); diff --git a/sym_ewram.txt b/sym_ewram.txt index 4af63595e..092b30ccd 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -282,7 +282,7 @@ gNoOfAllBanks: @ 202406C gBattlePartyID: @ 202406E .space 0x8 -gBanksByIdentity: @ 2024076 +gBankPositions: @ 2024076 .space 0x4 gActionsByTurnOrder: @ 202407A -- cgit v1.2.3 From c3c13d0acfa46a54bd05d1c7dcea2955103ac3ad Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 16 Jan 2018 15:12:38 -0600 Subject: more renaming --- asm/battle_anim_80A5C6C.s | 30 +- asm/battle_anim_80D51AC.s | 2 +- asm/battle_anim_80FE840.s | 32 +- asm/battle_anim_8170478.s | 20 +- asm/battle_frontier_2.s | 2 +- asm/battle_link_817C95C.s | 24 +- asm/contest.s | 8 +- asm/macros/battle_script.inc | 2 +- asm/party_menu.s | 14 +- asm/pokemon_item_effect.s | 4 +- constants/battle_constants.inc | 33 +- data/battle_ai_scripts.s | 52 +- data/battle_scripts_1.s | 136 +-- include/battle.h | 164 ++-- src/battle_2.c | 286 +++--- src/battle_ai_script_commands.c | 158 ++-- src/battle_ai_switch_items.c | 78 +- src/battle_anim.c | 4 +- src/battle_bg.c | 6 +- src/battle_controller_link_opponent.c | 8 +- src/battle_controller_link_partner.c | 4 +- src/battle_controller_opponent.c | 24 +- src/battle_controller_player.c | 32 +- src/battle_controller_player_partner.c | 18 +- src/battle_controller_recorded_opponent.c | 8 +- src/battle_controller_recorded_player.c | 6 +- src/battle_controller_safari.c | 6 +- src/battle_controller_wally.c | 6 +- src/battle_controllers.c | 38 +- src/battle_gfx_sfx_util.c | 44 +- src/battle_interface.c | 16 +- src/battle_message.c | 58 +- src/battle_script_commands.c | 1414 ++++++++++++++--------------- src/battle_setup.c | 14 +- src/battle_util.c | 378 ++++---- src/battle_util2.c | 20 +- src/calculate_base_damage.c | 2 +- src/field_poison.c | 2 +- src/pokeball.c | 24 +- src/pokemon_2.c | 14 +- src/pokemon_3.c | 4 +- src/recorded_battle.c | 6 +- src/reshow_battle_screen.c | 12 +- src/safari_zone.c | 6 +- src/tv.c | 20 +- sym_ewram.txt | 8 +- 46 files changed, 1634 insertions(+), 1613 deletions(-) diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index 1c19805a0..b543a5ec2 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -1830,13 +1830,13 @@ GetBankPosition: @ 80A6A44 .pool thumb_func_end GetBankPosition - thumb_func_start GetBankByIdentity -GetBankByIdentity: @ 80A6A54 + thumb_func_start GetBankByPosition +GetBankByPosition: @ 80A6A54 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 movs r1, 0 - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r2, [r0] cmp r1, r2 bcs _080A6A7E @@ -1860,7 +1860,7 @@ _080A6A7E: pop {r1} bx r1 .pool - thumb_func_end GetBankByIdentity + thumb_func_end GetBankByPosition thumb_func_start IsBankSpritePresent IsBankSpritePresent: @ 80A6A90 @@ -3496,7 +3496,7 @@ _080A76F2: cmp r5, 0 beq _080A771A movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3504,7 +3504,7 @@ _080A76F2: cmp r0, 0 beq _080A771A movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -3514,7 +3514,7 @@ _080A771A: cmp r6, 0 beq _080A7746 movs r0, 0x2 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3522,7 +3522,7 @@ _080A771A: cmp r0, 0 beq _080A7746 movs r0, 0x2 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3534,7 +3534,7 @@ _080A7746: cmp r7, 0 beq _080A7772 movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3542,7 +3542,7 @@ _080A7746: cmp r0, 0 beq _080A7772 movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3555,7 +3555,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3563,7 +3563,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3592,7 +3592,7 @@ sub_80A77B4: @ 80A77B4 push {lr} lsls r0, 24 lsrs r0, 24 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 pop {r1} @@ -4959,7 +4959,7 @@ _080A825C: sub_80A8278: @ 80A8278 push {r4-r6,lr} movs r5, 0 - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r5, r0 bge _080A82D2 @@ -4998,7 +4998,7 @@ _080A8286: strb r2, [r0, 0x5] _080A82C8: adds r5, 0x1 - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r5, r0 blt _080A8286 diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s index 3ee1786ad..3b1e9dcce 100755 --- a/asm/battle_anim_80D51AC.s +++ b/asm/battle_anim_80D51AC.s @@ -200,7 +200,7 @@ _080D5320: _080D5324: movs r0, 0x3 _080D5326: - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index c94826f40..c63918719 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -7539,7 +7539,7 @@ sub_8102434: @ 8102434 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r4, r0 bcs _08102490 @@ -7576,7 +7576,7 @@ _08102482: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r4, r0 bcc _08102448 @@ -7605,7 +7605,7 @@ _081024B2: lsls r0, 24 lsrs r4, r0, 24 _081024C2: - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r4, r0 bcc _081024B2 @@ -21049,14 +21049,14 @@ sub_8109198: @ 8109198 cmp r4, r0 bne _081091DE movs r0, 0x2 - bl GetBankByIdentity + bl GetBankByPosition ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _081091D6 movs r0, 0x3 - bl GetBankByIdentity + bl GetBankByPosition ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 @@ -28050,7 +28050,7 @@ sub_810C9E4: @ 810C9E4 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 @@ -33064,7 +33064,7 @@ _0810F212: bne _0810F2B8 _0810F22E: movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 @@ -33193,7 +33193,7 @@ sub_810F340: @ 810F340 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 movs r1, 0x3C @@ -33370,7 +33370,7 @@ sub_810F46C: @ 810F46C cmp r0, 0 bne _0810F502 movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -33441,7 +33441,7 @@ sub_810F524: @ 810F524 cmp r0, 0 bne _0810F57C movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 @@ -43586,7 +43586,7 @@ _08114902: beq _0811492E _08114908: adds r0, r4, 0 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -45846,7 +45846,7 @@ sub_8115B0C: @ 8115B0C strh r1, [r0, 0x12] strh r5, [r0, 0x18] movs r4, 0 - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r1, [r0] mov r9, r3 mov r8, r2 @@ -46650,7 +46650,7 @@ _0811618A: cmp r0, 0x1 bhi _081161DC movs r4, 0 - ldr r5, =gNoOfAllBanks + ldr r5, =gBattleBanksCount ldrb r0, [r5] cmp r4, r0 bcs _081161DC @@ -50065,7 +50065,7 @@ sub_8117E94: @ 8117E94 lsls r0, 24 lsrs r0, 24 ldr r2, =gAnimBankAttacker - ldr r1, =gBankTarget + ldr r1, =gBankDefender ldrb r1, [r1] strb r1, [r2] ldr r2, =gAnimBankTarget @@ -50117,7 +50117,7 @@ sub_8117F10: @ 8117F10 lsls r0, 24 lsrs r0, 24 ldr r2, =gAnimBankTarget - ldr r1, =gBankTarget + ldr r1, =gBankDefender ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -52078,7 +52078,7 @@ sub_8118FBC: @ 8118FBC lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 ldr r1, =gMonSpritesGfxPtr diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index a7893ee94..956b30186 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -1283,7 +1283,7 @@ _08170F54: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 bl sub_80A82E4 @@ -1335,7 +1335,7 @@ _08170F54: ldr r0, =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1371,7 +1371,7 @@ sub_8171030: @ 8171030 lsrs r5, r0, 24 ldr r6, =gSprites movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1422,7 +1422,7 @@ sub_81710A8: @ 81710A8 lsrs r5, r0, 24 ldr r6, =gSprites movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition ldr r4, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1438,7 +1438,7 @@ sub_81710A8: @ 81710A8 cmp r0, 0 bge _081710F4 movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -5575,7 +5575,7 @@ sub_817330C: @ 817330C movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -5587,7 +5587,7 @@ sub_817330C: @ 817330C adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5732,7 +5732,7 @@ sub_817345C: @ 817345C .pool _08173478: movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition ldr r1, =gAnimBankAttacker strb r0, [r1] movs r0, 0x1 @@ -5740,12 +5740,12 @@ _08173478: .pool _0817348C: movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition ldr r1, =gAnimBankAttacker strb r0, [r1] movs r0, 0 _08173498: - bl GetBankByIdentity + bl GetBankByPosition ldr r1, =gAnimBankTarget strb r0, [r1] _081734A0: diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 23f870d4d..899b6f5d3 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -21034,7 +21034,7 @@ sub_81A5718: @ 81A5718 b _081A57D8 .pool _081A576C: - ldr r0, =gBattleMoveFlags + ldr r0, =gMoveResultFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index d656946b4..f1a398ad6 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -39,7 +39,7 @@ _0817C988: bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -83,7 +83,7 @@ _0817CA10: str r1, [sp, 0x8] cmp r6, 0 bne _0817CA3C - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -94,7 +94,7 @@ _0817CA10: b _0817CA4C .pool _0817CA3C: - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -140,7 +140,7 @@ _0817CA9C: lsls r0, 24 lsrs r0, 25 mov r8, r0 - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] bl GetBankPosition lsls r0, 24 @@ -941,7 +941,7 @@ _0817D3F2: bl _0817E0A6 _0817D3FE: ldr r0, =gBankAttacker - ldr r1, =gBankTarget + ldr r1, =gBankDefender ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -2564,7 +2564,7 @@ _0817E122: lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -3249,7 +3249,7 @@ sub_817E684: @ 817E684 bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -3714,7 +3714,7 @@ sub_817EA80: @ 817EA80 bl GetBankSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] bl GetBankSide lsls r0, 24 @@ -4291,7 +4291,7 @@ _0817EEF8: bgt _0817EF10 b _0817F1FA _0817EF10: - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] muls r0, r1 adds r0, r5 @@ -4386,7 +4386,7 @@ _0817EF98: mov r10, r3 mov r8, r0 add r7, sp, 0x10 - ldr r4, =gBankTarget + ldr r4, =gBankDefender mov r9, r4 _0817EFC2: lsls r1, r5, 1 @@ -4411,7 +4411,7 @@ _0817EFC2: lsls r0, 24 cmp r0, 0 beq _0817F0B4 - ldr r4, =gSideAffecting + ldr r4, =gSideStatuses mov r1, r9 ldrb r0, [r1] bl GetBankPosition @@ -4545,7 +4545,7 @@ _0817F0D8: movs r7, 0 _0817F0F6: movs r5, 0 - ldr r4, =gBankTarget + ldr r4, =gBankDefender ldr r6, =gEnemyParty ldr r0, =gBankAttacker ldrb r0, [r0] diff --git a/asm/contest.s b/asm/contest.s index c35a29733..48766fb68 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1060,7 +1060,7 @@ _080D8004: str r4, [r0] ldr r4, =gBankAttacker strb r2, [r4] - ldr r0, =gBankTarget + ldr r0, =gBankDefender strb r3, [r0] bl sub_80DB0C4 ldr r2, =gBankSpriteIds @@ -13798,7 +13798,7 @@ sub_80DEA20: @ 80DEA20 bl CreateInvisibleSpriteWithCallback ldr r1, =gBankSpriteIds strb r0, [r1, 0x3] - ldr r0, =gBankTarget + ldr r0, =gBankDefender ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -13905,12 +13905,12 @@ _080DEAD0: .4byte _080DEB60 .4byte _080DEB60 _080DEB54: - ldr r1, =gBankTarget + ldr r1, =gBankDefender movs r0, 0x2 b _080DEB64 .pool _080DEB60: - ldr r1, =gBankTarget + ldr r1, =gBankDefender movs r0, 0x3 _080DEB64: strb r0, [r1] diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index a16b59366..c5ffb5abc 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1389,7 +1389,7 @@ .endm .macro jumpifmovehadnoeffect jumpptr - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr .endm .macro jumpifbattletype flags, jumpptr diff --git a/asm/party_menu.s b/asm/party_menu.s index 844043a95..5a371d387 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -16060,7 +16060,7 @@ _081B8B1E: lsls r0, 24 lsrs r4, r0, 24 _081B8B24: - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r4, r0 bcc _081B8AFC @@ -16228,7 +16228,7 @@ _081B8CBE: bne _081B8CFC movs r5, 0x1 movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition mov r2, sp ldr r1, =gBattlePartyID lsls r0, 24 @@ -16255,7 +16255,7 @@ _081B8CF0: _081B8CFC: movs r5, 0x2 movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition mov r1, sp ldr r4, =gBattlePartyID lsls r0, 24 @@ -16264,7 +16264,7 @@ _081B8CFC: ldrh r0, [r0] strb r0, [r1] movs r0, 0x2 - bl GetBankByIdentity + bl GetBankByPosition mov r1, sp lsls r0, 24 lsrs r0, 23 @@ -16344,19 +16344,19 @@ sub_81B8D88: @ 81B8D88 cmp r0, 0 bne _081B8DB0 movs r0, 0 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 b _081B8DBC _081B8DB0: movs r0, 0x1 - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 _081B8DBC: - bl GetBankByIdentity + bl GetBankByPosition lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1250 diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 49b205967..fb8ea0d3c 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -124,7 +124,7 @@ _0806BDC4: orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x1C] - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldr r4, [sp, 0xC] subs r4, 0xD ldrb r0, [r0] @@ -148,7 +148,7 @@ _0806BE3C: ldr r1, [sp, 0x1C] adds r1, 0x2 str r1, [sp, 0x1C] - ldr r0, =gNoOfAllBanks + ldr r0, =gBattleBanksCount ldrb r0, [r0] cmp r1, r0 bge _0806BE70 diff --git a/constants/battle_constants.inc b/constants/battle_constants.inc index c48ff0203..0a5dd1094 100644 --- a/constants/battle_constants.inc +++ b/constants/battle_constants.inc @@ -51,15 +51,15 @@ .set B_POSITION_OPPONENT_RIGHT, 3 @ status 1 - .set STATUS_SLEEP, 0x7 - .set STATUS_POISON, 0x8 - .set STATUS_BURN, 0x10 - .set STATUS_FREEZE, 0x20 - .set STATUS_PARALYSIS, 0x40 - .set STATUS_TOXIC_POISON, 0x80 - .set STATUS_TOXIC_COUNTER, 0xF00 + .set STATUS1_SLEEP, 0x7 + .set STATUS1_POISON, 0x8 + .set STATUS1_BURN, 0x10 + .set STATUS1_FREEZE, 0x20 + .set STATUS1_PARALYSIS, 0x40 + .set STATUS1_TOXIC_POISON, 0x80 + .set STATUS1_TOXIC_COUNTER, 0xF00 - .set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON + .set STATUS1_ANY, STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON @ status 2 .set STATUS2_CONFUSION, 0x00000007 @@ -160,11 +160,12 @@ .set HITMARKER_x8000000, 0x08000000 @ move flags - .set MOVESTATUS_MISSED, 0x1 - .set MOVESTATUS_SUPEREFFECTIVE, 0x2 - .set MOVESTATUS_NOTVERYEFFECTIVE, 0x4 - .set MOVESTATUS_NOTAFFECTED, 0x8 - .set MOVESTATUS_ONEHITKO, 0x10 - .set MOVESTATUS_FAILED, 0x20 - .set MOVESTATUS_ENDURED, 0x40 - .set MOVESTATUS_HUNGON, 0x80 + .set MOVE_RESULT_MISSED, 0x1 + .set MOVE_RESULT_SUPER_EFFECTIVE, 0x2 + .set MOVE_RESULT_NOT_VERY_EFFECTIVE, 0x4 + .set MOVE_RESULT_DOESNT_AFFECT_FOE, 0x8 + .set MOVE_RESULT_ONE_HIT_KO, 0x10 + .set MOVE_RESULT_FAILED, 0x20 + .set MOVE_RESULT_FOE_ENDURED, 0x40 + .set MOVE_RESULT_FOE_HUNG_ON, 0x80 + .set MOVE_RESULT_NO_EFFECT, (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 2b9b6864b..afe365231 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -218,7 +218,7 @@ BattleAIScript_82DC2D4: get_ability AI_TARGET if_equal ABILITY_INSOMNIA, Score_Minus10 if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 - if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_status AI_TARGET, STATUS1_ANY, Score_Minus10 if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 end @@ -237,11 +237,11 @@ BattleAIScript_82DC31A: BattleAIScript_82DC31B: if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10 - if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8 + if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8 end BattleAIScript_82DC330: - if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8 + if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 end @@ -350,7 +350,7 @@ BattleAIScript_82DC48C: if_equal TYPE_POISON, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_IMMUNITY, Score_Minus10 - if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_status AI_TARGET, STATUS1_ANY, Score_Minus10 if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 end @@ -402,7 +402,7 @@ BattleAIScript_82DC545: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_LIMBER, Score_Minus10 - if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_status AI_TARGET, STATUS1_ANY, Score_Minus10 if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 end @@ -428,7 +428,7 @@ BattleAIScript_82DC59D: end BattleAIScript_82DC5A5: - if_not_status AI_USER, STATUS_SLEEP, Score_Minus8 + if_not_status AI_USER, STATUS1_SLEEP, Score_Minus8 end BattleAIScript_82DC5B0: @@ -536,7 +536,7 @@ BattleAIScript_82DC6A9: BattleAIScript_82DC6B4: get_ability AI_TARGET if_equal ABILITY_WATER_VEIL, Score_Minus10 - if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_status AI_TARGET, STATUS1_ANY, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0_5, Score_Minus10 if_type_effectiveness AI_EFFECTIVENESS_x0_25, Score_Minus10 @@ -566,7 +566,7 @@ BattleAIScript_82DC708: end BattleAIScript_82DC713: - if_not_status AI_USER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, Score_Minus10 + if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, Score_Minus10 end BattleAIScript_82DC71E: @@ -1076,7 +1076,7 @@ BattleAIScript_82DCD3D: score -1 BattleAIScript_82DCD4D: - if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCD6C + if_not_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DCD6C if_hp_more_than AI_USER, 50, BattleAIScript_82DCD64 if_random_less_than 80, BattleAIScript_82DCD6C @@ -1263,7 +1263,7 @@ BattleAIScript_82DCF22: score -2 BattleAIScript_82DCF32: - if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCF44 + if_not_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DCF44 if_random_less_than 70, BattleAIScript_82DCF44 score +2 @@ -1520,7 +1520,7 @@ BattleAIScript_82DD228: end BattleAIScript_82DD229: - if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD256 + if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DD256 if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD256 if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD256 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD256 @@ -1673,7 +1673,7 @@ BattleAIScript_82DD381: goto BattleAIScript_82DD3E9 BattleAIScript_82DD3B9: - if_not_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD3E1 + if_not_status AI_TARGET, STATUS1_ANY, BattleAIScript_82DD3E1 goto BattleAIScript_82DD3E9 BattleAIScript_82DD3C8: @@ -1722,7 +1722,7 @@ BattleAIScript_82DD430: end BattleAIScript_82DD431: - if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD4D6 + if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DD4D6 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD4D6 if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD4D6 if_hp_more_than AI_USER, 30, BattleAIScript_82DD45E @@ -1901,7 +1901,7 @@ BattleAIScript_82DD582: end BattleAIScript_82DD583: - if_status AI_USER, STATUS_SLEEP, Score_Plus10 + if_status AI_USER, STATUS1_SLEEP, Score_Plus10 score -5 end @@ -1952,8 +1952,8 @@ BattleAIScript_82DD60A: end BattleAIScript_82DD60B: - if_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD621 - if_status_in_party AI_TARGET, STATUS_ANY, BattleAIScript_82DD621 + if_status AI_TARGET, STATUS1_ANY, BattleAIScript_82DD621 + if_status_in_party AI_TARGET, STATUS1_ANY, BattleAIScript_82DD621 score -5 BattleAIScript_82DD621: @@ -2012,7 +2012,7 @@ BattleAIScript_82DD693: BattleAIScript_82DD694: get_protect_count AI_USER if_more_than 1, BattleAIScript_82DD75A - if_status AI_USER, STATUS_TOXIC_POISON, BattleAIScript_82DD751 + if_status AI_USER, STATUS1_TOXIC_POISON, BattleAIScript_82DD751 if_status2 AI_USER, STATUS2_CURSED, BattleAIScript_82DD751 if_status3 AI_USER, STATUS3_PERISH_SONG, BattleAIScript_82DD751 if_status2 AI_USER, STATUS2_INFATUATION, BattleAIScript_82DD751 @@ -2020,7 +2020,7 @@ BattleAIScript_82DD694: if_status3 AI_USER, STATUS3_YAWN, BattleAIScript_82DD751 if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, BattleAIScript_82DD751 if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, BattleAIScript_82DD751 - if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD730 + if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DD730 if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD730 if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD730 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD730 @@ -2238,7 +2238,7 @@ BattleAIScript_82DD959: end BattleAIScript_82DD95A: - if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD9FF + if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DD9FF if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD9FF if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD9FF if_hp_more_than AI_USER, 30, BattleAIScript_82DD987 @@ -2323,7 +2323,7 @@ BattleAIScript_82DDA2F: goto BattleAIScript_82DDAB4 BattleAIScript_82DDA3D: - if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DDAAC + if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DDAAC if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DDAAC if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DDAAC get_weather @@ -2396,7 +2396,7 @@ BattleAIScript_82DDAF5: end BattleAIScript_82DDAF6: - if_not_status AI_TARGET, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleAIScript_82DDB02 + if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleAIScript_82DDB02 score +1 BattleAIScript_82DDB02: @@ -2405,7 +2405,7 @@ BattleAIScript_82DDB02: BattleAIScript_82DDB03: if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDB42 if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDB42 - if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDB59 + if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DDB59 if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDB49 if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDB49 is_first_turn_for AI_USER @@ -2429,7 +2429,7 @@ BattleAIScript_82DDB5B: end BattleAIScript_82DDB5C: - if_status AI_TARGET, STATUS_PARALYSIS, BattleAIScript_82DDB6B + if_status AI_TARGET, STATUS1_PARALYSIS, BattleAIScript_82DDB6B goto BattleAIScript_82DDB6D BattleAIScript_82DDB6B: @@ -2571,7 +2571,7 @@ sItemsTable_82DDC6E: .byte -1 BattleAIScript_82DDC72: - if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDC9D + if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DDC9D if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDC9D if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDC9D if_random_less_than 180, BattleAIScript_82DDC9D @@ -2960,7 +2960,7 @@ BattleAIScript_82DDFED: end BattleAIScript_82DDFF5: - if_status AI_USER, STATUS_ANY, BattleAIScript_82DE000 + if_status AI_USER, STATUS1_ANY, BattleAIScript_82DE000 end BattleAIScript_82DE000: @@ -3060,7 +3060,7 @@ BattleAIScript_82DE14A: BattleAIScript_82DE14F: get_ability AI_TARGET if_not_equal ABILITY_GUTS, Score_Minus30_ - if_status AI_TARGET, STATUS_ANY, Score_Minus30_ + if_status AI_TARGET, STATUS1_ANY, Score_Minus30_ if_hp_less_than AI_USER, 91, Score_Minus30_ goto Score_Plus5 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index c3750bd88..8ab5ea2f1 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -286,7 +286,7 @@ BattleScript_MoveEnd:: end BattleScript_MakeMoveMissed:: - orbyte gBattleMoveFlags, MOVESTATUS_MISSED + orbyte gMoveResultFlags, MOVE_RESULT_MISSED BattleScript_PrintMoveMissed:: attackstring ppreduce @@ -303,9 +303,9 @@ BattleScript_EffectSleep:: attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep + jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep jumpifcantmakeasleep BattleScript_CantMakeAsleep - jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation @@ -397,7 +397,7 @@ BattleScript_EffectExplosion:: faintifabilitynotdamp setatkhptozero waitstate - jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 + jumpifbyte NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_82D8B94 call BattleScript_82D8BEA goto BattleScript_82D8B96 BattleScript_82D8B94:: @@ -436,16 +436,16 @@ BattleScript_82D8BCF:: end BattleScript_82D8BEA:: - bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + bicbyte gMoveResultFlags, MOVE_RESULT_MISSED attackanimation waitanimation - orbyte gBattleMoveFlags, MOVESTATUS_MISSED + orbyte gMoveResultFlags, MOVE_RESULT_MISSED return BattleScript_EffectDreamEater:: attackcanceler jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E - jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 + jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_82D8C18 BattleScript_82D8C0E:: attackstring ppreduce @@ -487,7 +487,7 @@ BattleScript_EffectMirrorMove:: pause 0x40 trymirrormove ppreduce - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED printstring STRINGID_MIRRORMOVEFAILED waitmessage 0x40 goto BattleScript_MoveEnd @@ -633,7 +633,7 @@ BattleScript_MultiHitLoop:: jumpifhasnohp ATTACKER, BattleScript_MultiHitEnd jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_MultiHitPrintStrings + jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_MultiHitPrintStrings BattleScript_DoMultiHit:: movevaluescleanup copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT @@ -656,7 +656,7 @@ BattleScript_DoMultiHit:: addbyte sMULTIHIT_STRING + 4, 0x1 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings decrementmultihit BattleScript_MultiHitLoop goto BattleScript_MultiHitPrintStrings BattleScript_MultiHitNoMoreHits:: @@ -712,9 +712,9 @@ BattleScript_EffectToxic:: ppreduce jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned - jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned - jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE @@ -735,7 +735,7 @@ BattleScript_AlreadyPoisoned:: goto BattleScript_MoveEnd BattleScript_ImmunityProtected:: - copybyte gEffectBank, gBankTarget + copybyte gEffectBank, gBankDefender setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention goto BattleScript_MoveEnd @@ -759,7 +759,7 @@ BattleScript_EffectRest:: attackcanceler attackstring ppreduce - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep + jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep jumpifcantmakeasleep BattleScript_RestCantSleep trysetrest BattleScript_AlreadyAtFullHp pause 0x20 @@ -835,7 +835,7 @@ BattleScript_EffectSuperFang:: attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE damagetohalftargethp goto BattleScript_HitFromAtkAnimation @@ -845,7 +845,7 @@ BattleScript_EffectDragonRage:: attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE setword gBattleMoveDamage, 40 adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -879,19 +879,19 @@ BattleScript_MoveMissedDoDamage:: pause 0x40 resultmessage waitmessage 0x40 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd printstring STRINGID_PKMNCRASHED waitmessage 0x40 damagecalc typecalc adjustnormaldamage manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP - bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + bicbyte gMoveResultFlags, MOVE_RESULT_MISSED orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate ATTACKER datahpupdate ATTACKER tryfaintmon ATTACKER, FALSE, NULL - orbyte gBattleMoveFlags, MOVESTATUS_MISSED + orbyte gMoveResultFlags, MOVE_RESULT_MISSED goto BattleScript_MoveEnd BattleScript_EffectMist:: @@ -1012,11 +1012,11 @@ BattleScript_EffectPoison:: ppreduce jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned - jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected - jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation @@ -1035,8 +1035,8 @@ BattleScript_EffectParalyze:: jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed typecalc jumpifmovehadnoeffect BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed - jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed + jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation @@ -1055,7 +1055,7 @@ BattleScript_AlreadyParalyzed:: goto BattleScript_MoveEnd BattleScript_LimberProtected:: - copybyte gEffectBank, gBankTarget + copybyte gEffectBank, gBankDefender setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention goto BattleScript_MoveEnd @@ -1221,7 +1221,7 @@ BattleScript_EffectLevelDamage:: attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE dmgtolevel adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -1232,7 +1232,7 @@ BattleScript_EffectPsywave:: attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE psywavedamageeffect adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -1279,7 +1279,7 @@ BattleScript_EffectPainSplit:: BattleScript_EffectSnore:: attackcanceler - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep + jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep attackstring ppreduce goto BattleScript_ButItFailed @@ -1333,7 +1333,7 @@ BattleScript_EffectSketch:: BattleScript_EffectSleepTalk:: attackcanceler - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep + jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep attackstring ppreduce goto BattleScript_ButItFailed @@ -1415,7 +1415,7 @@ BattleScript_TripleKickLoop:: jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack - jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits + jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_TripleKickNoMoreHits BattleScript_DoTripleKickAttack:: accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE movevaluescleanup @@ -1440,18 +1440,18 @@ BattleScript_DoTripleKickAttack:: waitmessage 0x1 setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings decrementmultihit BattleScript_TripleKickLoop goto BattleScript_TripleKickPrintStrings BattleScript_TripleKickNoMoreHits:: pause 0x20 jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings - bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + bicbyte gMoveResultFlags, MOVE_RESULT_MISSED BattleScript_TripleKickPrintStrings:: resultmessage waitmessage 0x40 jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd + jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 printstring STRINGID_HITXTIMES waitmessage 0x40 @@ -1487,7 +1487,7 @@ BattleScript_EffectNightmare:: ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked + jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked goto BattleScript_ButItFailed BattleScript_NightmareWorked:: attackanimation @@ -1513,7 +1513,7 @@ BattleScript_EffectCurse:: jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: - copybyte gBankTarget, gBankAttacker + copybyte gBankDefender, gBankAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation @@ -1534,7 +1534,7 @@ BattleScript_CurseTryDefence:: BattleScript_CurseEnd:: goto BattleScript_MoveEnd BattleScript_GhostCurse:: - jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse + jumpifbytenotequal gBankAttacker, gBankDefender, BattleScript_DoGhostCurse getmovetarget ATTACKER BattleScript_DoGhostCurse:: attackcanceler @@ -1603,7 +1603,7 @@ BattleScript_PerishSongLoop:: jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected BattleScript_PerishSongLoopIncrement:: addbyte sBANK, 0x1 - jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop + jumpifbytenotequal sBANK, gBattleBanksCount, BattleScript_PerishSongLoop goto BattleScript_MoveEnd BattleScript_PerishSongNotAffected:: @@ -1748,7 +1748,7 @@ BattleScript_EffectSonicboom:: attackstring ppreduce typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE setword gBattleMoveDamage, 20 adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -2085,14 +2085,14 @@ BattleScript_ButItFailedPpReduce:: ppreduce BattleScript_ButItFailed:: pause 0x20 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED resultmessage waitmessage 0x40 goto BattleScript_MoveEnd BattleScript_NotAffected:: pause 0x20 - orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE resultmessage waitmessage 0x40 goto BattleScript_MoveEnd @@ -2204,10 +2204,10 @@ BattleScript_EffectWillOWisp:: attackstring ppreduce jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed - jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned + jumpifstatus TARGET, STATUS1_BURN, BattleScript_AlreadyBurned jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents - jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected attackanimation @@ -2217,7 +2217,7 @@ BattleScript_EffectWillOWisp:: goto BattleScript_MoveEnd BattleScript_WaterVeilPrevents:: - copybyte gEffectBank, gBankTarget + copybyte gEffectBank, gBankDefender setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention goto BattleScript_MoveEnd @@ -2275,7 +2275,7 @@ BattleScript_82DA15A:: goto BattleScript_MoveEnd BattleScript_EffectFacade:: - jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg + jumpifstatus ATTACKER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleScript_FacadeDoubleDmg goto BattleScript_EffectHit BattleScript_FacadeDoubleDmg:: @@ -2293,7 +2293,7 @@ BattleScript_EffectFocusPunch:: BattleScript_EffectSmellingsalt:: jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN - jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_SmellingsaltDoubleDmg + jumpifstatus TARGET, STATUS1_PARALYSIS, BattleScript_SmellingsaltDoubleDmg goto BattleScript_EffectHit BattleScript_SmellingsaltDoubleDmg:: @@ -2452,7 +2452,7 @@ BattleScript_EffectBrickBreak:: typecalc adjustnormaldamage jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_BrickBreakAnim - bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED + bicbyte gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE BattleScript_BrickBreakAnim:: attackanimation waitanimation @@ -2511,7 +2511,7 @@ BattleScript_EffectEndeavor:: accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE typecalc jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE copyword gBattleMoveDamage, gHpDealt adjustsetdamage goto BattleScript_HitFromAtkAnimation @@ -2598,11 +2598,11 @@ BattleScript_EffectTeeterDance:: attackcanceler attackstring ppreduce - setbyte gBankTarget, 0x0 + setbyte gBankDefender, 0x0 BattleScript_TeeterDanceLoop:: movevaluescleanup setmoveeffect EFFECT_CONFUSION - jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_TeeterDanceLoopIncrement + jumpifbyteequal gBankAttacker, gBankDefender, BattleScript_TeeterDanceLoopIncrement jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused @@ -2618,8 +2618,8 @@ BattleScript_TeeterDanceDoMoveEndIncrement:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 BattleScript_TeeterDanceLoopIncrement:: - addbyte gBankTarget, 0x1 - jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop + addbyte gBankDefender, 0x1 + jumpifbytenotequal gBankDefender, gBattleBanksCount, BattleScript_TeeterDanceLoop end BattleScript_TeeterDanceOwnTempoPrevents:: @@ -2706,7 +2706,7 @@ BattleScript_TickleEnd:: BattleScript_CantLowerMultipleStats:: pause 0x20 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED printstring STRINGID_STATSWONTDECREASE2 waitmessage 0x40 goto BattleScript_MoveEnd @@ -2792,7 +2792,7 @@ BattleScript_CalmMindEnd:: BattleScript_CantRaiseMultipleStats:: pause 0x20 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + orbyte gMoveResultFlags, MOVE_RESULT_FAILED printstring STRINGID_STATSWONTINCREASE2 waitmessage 0x40 goto BattleScript_MoveEnd @@ -2935,7 +2935,7 @@ BattleScript_82DA908:: switchinanim GBANK_1, FALSE waitstate switchineffects 5 - jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908 + jumpifbytenotequal gBank1, gBattleBanksCount, BattleScript_82DA908 BattleScript_82DA92C:: end2 @@ -3243,7 +3243,7 @@ BattleScript_DamagingWeatherLoop:: BattleScript_DamagingWeatherLoopIncrement:: jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd addbyte gBattleCommunication, 0x1 - jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop + jumpifbytenotequal gBattleCommunication, gBattleBanksCount, BattleScript_DamagingWeatherLoop BattleScript_DamagingWeatherContinuesEnd:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE end2 @@ -3322,7 +3322,7 @@ BattleScript_BideAttack:: waitmessage 0x40 accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc - bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE copyword gBattleMoveDamage, sBIDE_DMG adjustsetdamage setbyte sANIM_TURN, 0x1 @@ -3521,7 +3521,7 @@ BattleScript_RapidSpinAway:: BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE waitmessage 0x40 - copybyte gBankTarget, sBANK + copybyte gBankDefender, sBANK return BattleScript_LeechSeedFree:: @@ -3564,16 +3564,16 @@ BattleScript_FutureAttackEnd:: moveend 0x1, 0x0 setbyte sMOVEEND_STATE, 0xB moveend 0x2, 0xE - setbyte gBattleMoveFlags, 0 + setbyte gMoveResultFlags, 0 end2 BattleScript_FutureAttackMiss:: pause 0x20 - setbyte gBattleMoveFlags, 0 - orbyte gBattleMoveFlags, MOVESTATUS_FAILED + setbyte gMoveResultFlags, 0 + orbyte gMoveResultFlags, MOVE_RESULT_FAILED resultmessage waitmessage 0x40 - setbyte gBattleMoveFlags, 0 + setbyte gMoveResultFlags, 0 end2 BattleScript_NoMovesLeft:: @@ -4032,7 +4032,7 @@ BattleScript_WeatherFormChanges:: BattleScript_WeatherFormChangesLoop:: trycastformdatachange addbyte sBANK, 0x1 - jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop + jumpifbytenotequal sBANK, gBattleBanksCount, BattleScript_WeatherFormChangesLoop return BattleScript_CastformChange:: @@ -4053,7 +4053,7 @@ BattleScript_82DB4B8:: BattleScript_82DB4BE:: pause 0x20 BattleScript_82DB4C1:: - setbyte gBankTarget, 0x0 + setbyte gBankDefender, 0x0 setstatchanger ATK, 1, TRUE BattleScript_82DB4CD:: trygetintimidatetarget BattleScript_82DB51B @@ -4068,7 +4068,7 @@ BattleScript_82DB4CD:: printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 BattleScript_82DB510:: - addbyte gBankTarget, 0x1 + addbyte gBankDefender, 0x1 goto BattleScript_82DB4CD BattleScript_82DB51B:: return @@ -4117,7 +4117,7 @@ BattleScript_MoveHPDrain:: datahpupdate TARGET printstring STRINGID_PKMNRESTOREDHPUSING waitmessage 0x40 - orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_MonMadeMoveUseless_PPLoss:: @@ -4127,7 +4127,7 @@ BattleScript_MonMadeMoveUseless:: pause 0x20 printstring STRINGID_PKMNSXMADEYUSELESS waitmessage 0x40 - orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_FlashFireBoost_PPLoss:: @@ -4474,7 +4474,7 @@ BattleScript_82DB887:: waitmessage 0x40 BattleScript_82DB89D:: addbyte gBattleCommunication + 1, 0x1 - jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887 + jumpifbytenotequal gBattleCommunication + 1, gBattleBanksCount, BattleScript_82DB887 setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication + 1, 0x0 end2 diff --git a/include/battle.h b/include/battle.h index 7b9d8b461..71a25eaa7 100644 --- a/include/battle.h +++ b/include/battle.h @@ -39,15 +39,20 @@ #define B_POSITION_PLAYER_RIGHT 2 #define B_POSITION_OPPONENT_RIGHT 3 +#define B_POSITION_PARTNER(position) ((position) ^ 2) +#define B_POSITION_OPPOSITE(position) ((position) ^ 1) + #define SIDE_PLAYER 0x0 #define SIDE_OPPONENT 0x1 #define BIT_SIDE 0x1 #define BIT_MON 0x2 -#define GET_BANK_POSITION(bank)((gBankPositions[bank])) -#define GET_BANK_SIDE(bank)((GetBankPosition(bank) & BIT_SIDE)) -#define GET_BANK_SIDE2(bank)((GET_BANK_POSITION(bank) & BIT_SIDE)) +#define GET_BANK_POSITION(bank) (gBankPositions[bank]) +#define GET_BANK_SIDE(bank) (GetBankPosition(bank) & BIT_SIDE) +#define GET_BANK_SIDE2(bank) (GET_BANK_POSITION(bank) & BIT_SIDE) + +// Battle Type Flags #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 @@ -84,59 +89,66 @@ #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) +extern u32 gBattleTypeFlags; + #define TRAINER_OPPONENT_3FE 0x3FE #define TRAINER_OPPONENT_C00 0xC00 #define TRAINER_OPPONENT_800 0x800 #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define BATTLE_WON 0x1 -#define BATTLE_LOST 0x2 -#define BATTLE_DREW 0x3 -#define BATTLE_RAN 0x4 -#define BATTLE_PLAYER_TELEPORTED 0x5 -#define BATTLE_POKE_FLED 0x6 -#define BATTLE_CAUGHT 0x7 -#define BATTLE_SAFARI_OUT_OF_BALLS 0x8 -#define BATTLE_FORFEITED 0x9 -#define BATTLE_OPPONENT_TELEPORTED 0xA - -#define OUTCOME_LINK_BATTLE_RUN 0x80 - -#define STATUS_NONE 0x0 -#define STATUS_SLEEP 0x7 -#define STATUS_POISON 0x8 -#define STATUS_BURN 0x10 -#define STATUS_FREEZE 0x20 -#define STATUS_PARALYSIS 0x40 -#define STATUS_TOXIC_POISON 0x80 -#define STATUS_TOXIC_COUNTER 0xF00 - -#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) -#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) - -#define STATUS2_CONFUSION 0x00000007 -#define STATUS2_FLINCHED 0x00000008 -#define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 -#define STATUS2_LOCK_CONFUSE 0x00000C00 -#define STATUS2_MULTIPLETURNS 0x00001000 -#define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank -#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16)) -#define STATUS2_FOCUS_ENERGY 0x00100000 -#define STATUS2_TRANSFORMED 0x00200000 -#define STATUS2_RECHARGE 0x00400000 -#define STATUS2_RAGE 0x00800000 -#define STATUS2_SUBSTITUTE 0x01000000 -#define STATUS2_DESTINY_BOND 0x02000000 -#define STATUS2_ESCAPE_PREVENTION 0x04000000 -#define STATUS2_NIGHTMARE 0x08000000 -#define STATUS2_CURSED 0x10000000 -#define STATUS2_FORESIGHT 0x20000000 -#define STATUS2_DEFENSE_CURL 0x40000000 -#define STATUS2_TORMENT 0x80000000 +#define B_OUTCOME_WON 0x1 +#define B_OUTCOME_LOST 0x2 +#define B_OUTCOME_DREW 0x3 +#define B_OUTCOME_RAN 0x4 +#define B_OUTCOME_PLAYER_TELEPORTED 0x5 +#define B_OUTCOME_POKE_FLED 0x6 +#define B_OUTCOME_CAUGHT_POKE 0x7 +#define B_OUTCOME_NO_SAFARI_BALLS 0x8 +#define B_OUTCOME_FORFEITED 0x9 +#define B_OUTCOME_POKE_TELEPORTED 0xA +#define B_OUTCOME_LINK_BATTLE_RAN 0x80 +extern u8 gBattleOutcome; + +// Non-volatile status conditions +// These persist remain outside of battle and after switching out +#define STATUS1_NONE 0x0 +#define STATUS1_SLEEP 0x7 +#define STATUS1_POISON 0x8 +#define STATUS1_BURN 0x10 +#define STATUS1_FREEZE 0x20 +#define STATUS1_PARALYSIS 0x40 +#define STATUS1_TOXIC_POISON 0x80 +#define STATUS1_TOXIC_COUNTER 0xF00 +#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON) +#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON) + +// Volatile status ailments +// These are removed after exiting the battle or switching out +#define STATUS2_CONFUSION 0x00000007 +#define STATUS2_FLINCHED 0x00000008 +#define STATUS2_UPROAR 0x00000070 +#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 +#define STATUS2_LOCK_CONFUSE 0x00000C00 +#define STATUS2_MULTIPLETURNS 0x00001000 +#define STATUS2_WRAPPED 0x0000E000 +#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank +#define STATUS2_INFATUATED_WITH(bank) (gBitTable[bank] << 16) +#define STATUS2_FOCUS_ENERGY 0x00100000 +#define STATUS2_TRANSFORMED 0x00200000 +#define STATUS2_RECHARGE 0x00400000 +#define STATUS2_RAGE 0x00800000 +#define STATUS2_SUBSTITUTE 0x01000000 +#define STATUS2_DESTINY_BOND 0x02000000 +#define STATUS2_ESCAPE_PREVENTION 0x04000000 +#define STATUS2_NIGHTMARE 0x08000000 +#define STATUS2_CURSED 0x10000000 +#define STATUS2_FORESIGHT 0x20000000 +#define STATUS2_DEFENSE_CURL 0x40000000 +#define STATUS2_TORMENT 0x80000000 + +// Seems like per-bank statuses. Not quite sure how to categorize these #define STATUS3_LEECHSEED_BANK 0x3 #define STATUS3_LEECHSEED 0x4 #define STATUS3_ALWAYS_HITS 0x18 // two bits @@ -155,8 +167,11 @@ #define STATUS3_UNDERWATER 0x40000 #define STATUS3_INTIMIDATE_POKES 0x80000 #define STATUS3_TRACE 0x100000 +#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) + +extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) +// #define HITMARKER_x10 0x00000010 #define HITMARKER_x20 0x00000020 @@ -182,8 +197,12 @@ #define HITMARKER_OBEYS 0x02000000 #define HITMARKER_x4000000 0x04000000 #define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) -#define HITMARKER_UNK(bank) ((0x10000000 << bank)) +#define HITMARKER_FAINTED(bank) (gBitTable[bank] << 0x1C) +#define HITMARKER_UNK(bank) (0x10000000 << bank) + +extern u32 gHitMarker; + +// Per-side statuses that affect an entire party #define SIDE_STATUS_REFLECT (1 << 0) #define SIDE_STATUS_LIGHTSCREEN (1 << 1) @@ -194,6 +213,8 @@ #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) +extern u16 gSideStatuses[2]; + #define ACTION_USE_MOVE 0 #define ACTION_USE_ITEM 1 #define ACTION_SWITCH 2 @@ -210,33 +231,36 @@ #define ACTION_NOTHING_FAINTED 13 // when choosing an action #define ACTION_INIT_VALUE 0xFF -#define MOVESTATUS_MISSED (1 << 0) -#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) -#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) -#define MOVESTATUS_NOTAFFECTED (1 << 3) -#define MOVESTATUS_ONEHITKO (1 << 4) -#define MOVESTATUS_FAILED (1 << 5) -#define MOVESTATUS_ENDURED (1 << 6) -#define MOVESTATUS_HUNGON (1 << 7) - -#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) +#define MOVE_RESULT_MISSED (1 << 0) +#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) +#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) +#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) +#define MOVE_RESULT_ONE_HIT_KO (1 << 4) +#define MOVE_RESULT_FAILED (1 << 5) +#define MOVE_RESULT_FOE_ENDURED (1 << 6) +#define MOVE_RESULT_FOE_HUNG_ON (1 << 7) +#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 +// Battle Weather flags + #define WEATHER_RAIN_TEMPORARY (1 << 0) -#define WEATHER_RAIN_DOWNPOUR (1 << 1) +#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused #define WEATHER_RAIN_PERMANENT (1 << 2) -#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) +#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT) #define WEATHER_SANDSTORM_TEMPORARY (1 << 3) #define WEATHER_SANDSTORM_PERMANENT (1 << 4) -#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) +#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT) #define WEATHER_SUN_TEMPORARY (1 << 5) #define WEATHER_SUN_PERMANENT (1 << 6) -#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) +#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT) #define WEATHER_HAIL (1 << 7) -#define WEATHER_HAIL_ANY ((WEATHER_HAIL)) -#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) +#define WEATHER_HAIL_ANY (WEATHER_HAIL) +#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) + +extern u16 gBattleWeather; #define BATTLE_TERRAIN_GRASS 0 #define BATTLE_TERRAIN_LONG_GRASS 1 @@ -249,6 +273,8 @@ #define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 +extern u8 gBattleTerrain; + // array entries for battle communication #define MULTIUSE_STATE 0x0 #define CURSOR_POSITION 0x1 @@ -847,7 +873,7 @@ enum // rom_80A5C6C u8 GetBankSide(u8 bank); u8 GetBankPosition(u8 bank); -u8 GetBankByIdentity(u8 bank); +u8 GetBankByPosition(u8 bank); struct BattleSpriteInfo { diff --git a/src/battle_2.c b/src/battle_2.c index 78f577fda..b19dcace1 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -111,14 +111,14 @@ extern u16 gBattleWeather; extern u16 gPauseCounterBattle; extern u16 gRandomTurnNumber; extern u8 gActiveBank; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gLeveledUpInBattle; extern u8 gAbsentBankFlags; extern u32 gBattleExecBuffer; extern u8 gMultiHitCounter; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern s32 gBattleMoveDamage; extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; @@ -130,7 +130,7 @@ extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -extern u16 gSideAffecting[2]; +extern u16 gSideStatuses[2]; extern u16 gCurrentMove; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; @@ -291,16 +291,16 @@ static void (* const sTurnActionsFuncsTable[])(void) = static void (* const sEndTurnFuncsTable[])(void) = { HandleEndTurn_ContinueBattle, // battle outcome 0 - HandleEndTurn_BattleWon, // BATTLE_WON - HandleEndTurn_BattleLost, // BATTLE_LOST - HandleEndTurn_BattleLost, // BATTLE_DREW - HandleEndTurn_RanFromBattle, // BATTLE_RAN - HandleEndTurn_FinishBattle, // BATTLE_PLAYER_TELEPORTED - HandleEndTurn_MonFled, // BATTLE_POKE_FLED - HandleEndTurn_FinishBattle, // BATTLE_CAUGHT + HandleEndTurn_BattleWon, // B_OUTCOME_WON + HandleEndTurn_BattleLost, // B_OUTCOME_LOST + HandleEndTurn_BattleLost, // B_OUTCOME_DREW + HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN + HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED + HandleEndTurn_MonFled, // B_OUTCOME_POKE_FLED + HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT_POKE HandleEndTurn_FinishBattle, // battle outcome 8 - HandleEndTurn_FinishBattle, // BATTLE_FORFEITED - HandleEndTurn_FinishBattle, // BATTLE_OPPONENT_TELEPORTED + HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED + HandleEndTurn_FinishBattle, // B_OUTCOME_POKE_TELEPORTED }; const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$"); @@ -1586,7 +1586,7 @@ void BattleMainCB2(void) if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450()) { - gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED; + gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; ResetPaletteFadeControl(); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); SetMainCallback2(CB2_QuitRecordedBattle); @@ -2720,7 +2720,7 @@ static void BattleMainCB1(void) { gBattleMainFunc(); - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) gBattleBankFunc[gActiveBank](); } @@ -2756,7 +2756,7 @@ static void BattleStartClearSetData(void) for (i = 0; i < 2; i++) { - gSideAffecting[i] = 0; + gSideStatuses[i] = 0; dataPtr = (u8 *)&gSideTimers[i]; for (j = 0; j < sizeof(struct SideTimer); j++) @@ -2764,7 +2764,7 @@ static void BattleStartClearSetData(void) } gBankAttacker = 0; - gBankTarget = 0; + gBankDefender = 0; gBattleWeather = 0; dataPtr = (u8 *)&gWishFutureKnock; @@ -2850,7 +2850,7 @@ void SwitchInClearSetData(void) { for (i = 0; i < BATTLE_STATS_NO; i++) gBattleMons[gActiveBank].statStages[i] = 6; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; @@ -2866,7 +2866,7 @@ void SwitchInClearSetData(void) gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (GetBankSide(gActiveBank) != GetBankSide(i) && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 @@ -2883,7 +2883,7 @@ void SwitchInClearSetData(void) gStatuses3[gActiveBank] = 0; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); @@ -2907,7 +2907,7 @@ void SwitchInClearSetData(void) gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape; } - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gDisableStructs[gActiveBank].isFirstTurn = 2; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; gLastMoves[gActiveBank] = 0; @@ -2930,7 +2930,7 @@ void SwitchInClearSetData(void) gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) { @@ -2963,7 +2963,7 @@ void FaintClearSetData(void) gBattleMons[gActiveBank].status2 = 0; gStatuses3[gActiveBank] = 0; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; @@ -3025,7 +3025,7 @@ void FaintClearSetData(void) gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) { @@ -3059,7 +3059,7 @@ static void BattleIntroGetMonsData(void) if (gBattleExecBuffer == 0) { gBattleCommunication[1]++; - if (gBattleCommunication[1] == gNoOfAllBanks) + if (gBattleCommunication[1] == gBattleBanksCount) gBattleMainFunc = BattleIntroPrepareBackgroundSlide; else gBattleCommunication[MULTIUSE_STATE] = 0; @@ -3072,7 +3072,7 @@ static void BattleIntroPrepareBackgroundSlide(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByIdentity(0); + gActiveBank = GetBankByPosition(0); EmitIntroSlide(0, gBattleTerrain); MarkBufferBankForExecution(gActiveBank); gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; @@ -3089,7 +3089,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) if (gBattleExecBuffer) return; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && GetBankSide(gActiveBank) == SIDE_PLAYER) @@ -3203,7 +3203,7 @@ static void BattleIntroDrawPartySummaryScreens(void) hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); @@ -3221,7 +3221,7 @@ static void BattleIntroDrawPartySummaryScreens(void) hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); @@ -3257,7 +3257,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); gBattleMainFunc = BattleIntroPrintOpponentSendsOut; } @@ -3291,7 +3291,7 @@ static void BattleIntroPrintOpponentSendsOut(void) else identity = B_POSITION_OPPONENT_LEFT; - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; } @@ -3311,7 +3311,7 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) else identity = B_POSITION_OPPONENT_RIGHT; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankPosition(gActiveBank) == identity) { @@ -3343,7 +3343,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void) if (gBattleExecBuffer) return; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankPosition(gActiveBank) == identity) { @@ -3400,7 +3400,7 @@ _0803B29A:\n\ bne _0803B2F2\n\ ldr r0, =gActiveBank\n\ strb r2, [r0]\n\ - ldr r1, =gNoOfAllBanks\n\ + ldr r1, =gBattleBanksCount\n\ adds r4, r0, 0\n\ ldrb r1, [r1]\n\ cmp r2, r1\n\ @@ -3427,7 +3427,7 @@ _0803B2D8:\n\ ldrb r0, [r6]\n\ adds r0, 0x1\n\ strb r0, [r6]\n\ - ldr r1, =gNoOfAllBanks\n\ + ldr r1, =gBattleBanksCount\n\ lsls r0, 24\n\ lsrs r0, 24\n\ ldr r4, =gActiveBank\n\ @@ -3453,7 +3453,7 @@ static void BattleIntroRecordMonsToDex(void) { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankSide(gActiveBank) == SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER @@ -3494,7 +3494,7 @@ static void BattleIntroPrintPlayerSendsOut(void) identity = B_POSITION_PLAYER_LEFT; if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; } @@ -3516,7 +3516,7 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) else identity = B_POSITION_PLAYER_RIGHT; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankPosition(gActiveBank) == identity) { @@ -3551,7 +3551,7 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) if (gBattleExecBuffer) return; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankPosition(gActiveBank) == identity) { @@ -3576,7 +3576,7 @@ void sub_803B598(void) // unused { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) { @@ -3604,11 +3604,11 @@ static void TryDoEventsBeforeFirstTurn(void) if (gBattleStruct->switchInAbilitiesCounter == 0) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) gBanksByTurnOrder[i] = i; - for (i = 0; i < gNoOfAllBanks - 1; i++) + for (i = 0; i < gBattleBanksCount - 1; i++) { - for (j = i + 1; j < gNoOfAllBanks; j++) + for (j = i + 1; j < gBattleBanksCount; j++) { if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0) SwapTurnOrder(i, j); @@ -3622,7 +3622,7 @@ static void TryDoEventsBeforeFirstTurn(void) return; } // check all switch in abilities happening from the fastest mon to slowest - while (gBattleStruct->switchInAbilitiesCounter < gNoOfAllBanks) + while (gBattleStruct->switchInAbilitiesCounter < gBattleBanksCount) { if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) effect++; @@ -3637,7 +3637,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) return; // check all switch in items having effect from the fastest mon to slowest - while (gBattleStruct->switchInItemsCounter < gNoOfAllBanks) + while (gBattleStruct->switchInItemsCounter < gBattleBanksCount) { if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) effect++; @@ -3663,7 +3663,7 @@ static void TryDoEventsBeforeFirstTurn(void) for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); *(&gBattleStruct->turnEffectsTracker) = 0; @@ -3673,7 +3673,7 @@ static void TryDoEventsBeforeFirstTurn(void) gBattleScripting.atk49_state = 0; gBattleStruct->faintedActionsState = 0; gBattleStruct->turncountersTracker = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gRandomTurnNumber = Random(); @@ -3693,10 +3693,10 @@ static void HandleEndTurn_ContinueBattle(void) gBattleMainFunc = BattleTurnPassed; for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); - if ((gBattleMons[i].status1 & STATUS_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) + if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) CancelMultiTurnMoves(i); } gBattleStruct->turnEffectsTracker = 0; @@ -3704,7 +3704,7 @@ static void HandleEndTurn_ContinueBattle(void) gBattleStruct->wishPerishSongState = 0; gBattleStruct->wishPerishSongBank = 0; gBattleStruct->turncountersTracker = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; } } @@ -3735,7 +3735,7 @@ void BattleTurnPassed(void) gBattleScripting.animTargetsHit = 0; gBattleScripting.atk49_state = 0; gBattleMoveDamage = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; for (i = 0; i < 5; i++) gBattleCommunication[i] = 0; @@ -3753,7 +3753,7 @@ void BattleTurnPassed(void) gBattleStruct->field_DA++; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { gActionForBanks[i] = ACTION_INIT_VALUE; gChosenMovesByBanks[i] = MOVE_NONE; @@ -3795,7 +3795,7 @@ u8 IsRunningFromBattleImpossible(void) side = GetBankSide(gActiveBank); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (side != GetBankSide(i) && gBattleMons[i].ability == ABILITY_SHADOW_TAG) @@ -3889,7 +3889,7 @@ static void HandleTurnActionSelectionState(void) s32 i; gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { u8 identity = GetBankPosition(gActiveBank); switch (gBattleCommunication[gActiveBank]) @@ -3902,8 +3902,8 @@ static void HandleTurnActionSelectionState(void) *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; if (gBattleTypeFlags & BATTLE_TYPE_MULTI || !(identity & BIT_MON) - || gBattleStruct->field_91 & gBitTable[GetBankByIdentity(identity ^ BIT_MON)] - || gBattleCommunication[GetBankByIdentity(identity ^ BIT_MON)] == 5) + || gBattleStruct->field_91 & gBitTable[GetBankByPosition(identity ^ BIT_MON)] + || gBattleCommunication[GetBankByPosition(identity ^ BIT_MON)] == 5) { if (gBattleStruct->field_91 & gBitTable[gActiveBank]) { @@ -4041,38 +4041,38 @@ static void HandleTurnActionSelectionState(void) break; case ACTION_CANCEL_PARTNER: gBattleCommunication[gActiveBank] = 7; - gBattleCommunication[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; + gBattleCommunication[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; RecordedBattle_ClearBankAction(gActiveBank, 1); - if (gBattleMons[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) + if (gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) { EmitCmd50(0); MarkBufferBankForExecution(gActiveBank); return; } - else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) + else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 2); + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 2); } - else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) + else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); } - else if (gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE - && (gProtectStructs[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle - || gDisableStructs[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) + else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE + && (gProtectStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle + || gDisableStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); } else if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gActionForBanks[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) + && gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) { gRngValue = gBattlePalaceMoveSelectionRngValue; - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); } else { - RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON), 3); + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 3); } EmitCmd50(0); MarkBufferBankForExecution(gActiveBank); @@ -4226,7 +4226,7 @@ static void HandleTurnActionSelectionState(void) if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) || (identity & BIT_MON) - || (*(&gBattleStruct->field_91) & gBitTable[GetBankByIdentity(identity ^ BIT_MON)])) + || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(identity ^ BIT_MON)])) { EmitLinkStandbyMsg(0, 0, i); } @@ -4296,14 +4296,14 @@ static void HandleTurnActionSelectionState(void) } // check if everyone chose actions - if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gNoOfAllBanks) + if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattleBanksCount) { sub_818603C(1); gBattleMainFunc = SetActionsAndBanksTurnOrder; if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gActionForBanks[i] == ACTION_SWITCH) sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i)); @@ -4316,13 +4316,13 @@ static bool8 sub_803CDB8(void) { s32 i, var; - for (var = 0, i = 0; i < gNoOfAllBanks; i++) + for (var = 0, i = 0; i < gBattleBanksCount; i++) { if (gBattleCommunication[i] == 5) var++; } - if (var + 1 == gNoOfAllBanks) + if (var + 1 == gBattleBanksCount) return TRUE; else return FALSE; @@ -4411,7 +4411,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) if (holdEffect == HOLD_EFFECT_MACHO_BRACE) speedBank1 /= 2; - if (gBattleMons[bank1].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank1].status1 & STATUS1_PARALYSIS) speedBank1 /= 4; if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) @@ -4445,7 +4445,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) if (holdEffect == HOLD_EFFECT_MACHO_BRACE) speedBank2 /= 2; - if (gBattleMons[bank2].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank2].status1 & STATUS1_PARALYSIS) speedBank2 /= 4; if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) @@ -4518,7 +4518,7 @@ static void SetActionsAndBanksTurnOrder(void) if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; gBanksByTurnOrder[var] = gActiveBank; @@ -4529,7 +4529,7 @@ static void SetActionsAndBanksTurnOrder(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (gActionForBanks[gActiveBank] == ACTION_RUN) { @@ -4557,7 +4557,7 @@ static void SetActionsAndBanksTurnOrder(void) gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; gBanksByTurnOrder[0] = gActiveBank; var = 1; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (i != gActiveBank) { @@ -4572,7 +4572,7 @@ static void SetActionsAndBanksTurnOrder(void) } else { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) { @@ -4581,7 +4581,7 @@ static void SetActionsAndBanksTurnOrder(void) var++; } } - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) { @@ -4590,9 +4590,9 @@ static void SetActionsAndBanksTurnOrder(void) var++; } } - for (i = 0; i < gNoOfAllBanks - 1; i++) + for (i = 0; i < gBattleBanksCount - 1; i++) { - for (j = i + 1; j < gNoOfAllBanks; j++) + for (j = i + 1; j < gBattleBanksCount; j++) { u8 bank1 = gBanksByTurnOrder[i]; u8 bank2 = gBanksByTurnOrder[j]; @@ -4617,7 +4617,7 @@ static void TurnValuesCleanUp(bool8 var0) s32 i; u8 *dataPtr; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (var0) { @@ -4651,7 +4651,7 @@ static void TurnValuesCleanUp(bool8 var0) static void SpecialStatusesClear(void) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { s32 i; u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); @@ -4665,12 +4665,12 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { if (!(gHitMarker & HITMARKER_RUN)) { - while (gBattleStruct->focusPunchBank < gNoOfAllBanks) + while (gBattleStruct->focusPunchBank < gBattleBanksCount) { gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank; gBattleStruct->focusPunchBank++; if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH - && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) && !(gDisableStructs[gBankAttacker].truantCounter) && !(gProtectStructs[gActiveBank].onlyStruggle)) { @@ -4704,7 +4704,7 @@ static void RunTurnActionsFunctions(void) *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber; sTurnActionsFuncsTable[gCurrentActionFuncId](); - if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished + if (gCurrentTurnActionNumber >= gBattleBanksCount) // everyone did their actions, turn finished { gHitMarker &= ~(HITMARKER_x100000); gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; @@ -4727,9 +4727,9 @@ static void HandleEndTurn_BattleWon(void) { gSpecialVar_Result = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; - gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER)) @@ -4785,24 +4785,24 @@ static void HandleEndTurn_BattleLost(void) { if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - if (gBattleOutcome & OUTCOME_LINK_BATTLE_RUN) + if (gBattleOutcome & B_OUTCOME_LINK_BATTLE_RAN) { gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle; - gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); gSaveBlock2Ptr->field_CA9_b = 1; } else { gBattlescriptCurrInstr = BattleScript_82DAA0B; - gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } } else { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; - gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } } else @@ -4820,13 +4820,13 @@ static void HandleEndTurn_RanFromBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) { gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; - gBattleOutcome = BATTLE_FORFEITED; + gBattleOutcome = B_OUTCOME_FORFEITED; gSaveBlock2Ptr->field_CA9_b = 1; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) { gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; - gBattleOutcome = BATTLE_FORFEITED; + gBattleOutcome = B_OUTCOME_FORFEITED; } else { @@ -4869,7 +4869,7 @@ static void HandleEndTurn_FinishBattle(void) | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FRONTIER))) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) { @@ -4919,7 +4919,7 @@ static void FreeResetData_ReturnToOvOrDoEvolutions(void) if (!gPaletteFade.active) { ResetSpriteData(); - if (gLeveledUpInBattle == 0 || gBattleOutcome != BATTLE_WON) + if (gLeveledUpInBattle == 0 || gBattleOutcome != B_OUTCOME_WON) { gBattleMainFunc = ReturnFromBattleToOverworld; return; @@ -4994,7 +4994,7 @@ static void ReturnFromBattleToOverworld(void) if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) { UpdateRoamerHPStatus(&gEnemyParty[0]); - if ((gBattleOutcome & BATTLE_WON) || gBattleOutcome == BATTLE_CAUGHT) + if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT_POKE) SetRoamerInactive(); } @@ -5039,7 +5039,7 @@ static void HandleAction_UseMove(void) gCritMultiplier = 1; gBattleScripting.dmgMultiplier = 1; gBattleStruct->atkCancellerTracker = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker); @@ -5100,7 +5100,7 @@ static void HandleAction_UseMove(void) && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) { - gBankTarget = gSideTimers[side].followmeTarget; + gBankDefender = gSideTimers[side].followmeTarget; } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gSideTimers[side].followmeTimer == 0 @@ -5110,7 +5110,7 @@ static void HandleAction_UseMove(void) && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { side = GetBankSide(gBankAttacker); - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (side != GetBankSide(gActiveBank) && *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank @@ -5127,34 +5127,34 @@ static void HandleAction_UseMove(void) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); } } else { - gBankTarget = *(gBattleStruct->moveTarget + gBankAttacker); + gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); } - if (gAbsentBankFlags & gBitTable[gBankTarget]) + if (gAbsentBankFlags & gBitTable[gBankDefender]) { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) { - gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); } else { - gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); + gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); } } } @@ -5163,7 +5163,7 @@ static void HandleAction_UseMove(void) gActiveBank = gBanksByTurnOrder[var]; RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; - gBankTarget = gActiveBank; + gBankDefender = gActiveBank; } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE @@ -5172,38 +5172,38 @@ static void HandleAction_UseMove(void) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); else - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBankFlags & gBitTable[gBankTarget] - && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + if (gAbsentBankFlags & gBitTable[gBankDefender] + && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) { - gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); } } else { - gBankTarget = *(gBattleStruct->moveTarget + gBankAttacker); - if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); + if (gAbsentBankFlags & gBitTable[gBankDefender]) { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) { - gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); } else { - gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); + gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); } } } @@ -5260,7 +5260,7 @@ static void HandleAction_Switch(void) static void HandleAction_UseItem(void) { - gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBankAttacker = gBankDefender = gBanksByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; ClearFuryCutterDestinyBondGrudge(gBankAttacker); @@ -5410,8 +5410,8 @@ bool8 TryRunFromBattle(u8 bank) if (effect) { - gCurrentTurnActionNumber = gNoOfAllBanks; - gBattleOutcome = BATTLE_RAN; + gCurrentTurnActionNumber = gBattleBanksCount; + gBattleOutcome = B_OUTCOME_RAN; } return effect; @@ -5423,23 +5423,23 @@ static void HandleAction_Run(void) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) { - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattleBanksCount; - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) { if (gActionForBanks[gActiveBank] == ACTION_RUN) - gBattleOutcome |= BATTLE_LOST; + gBattleOutcome |= B_OUTCOME_LOST; } else { if (gActionForBanks[gActiveBank] == ACTION_RUN) - gBattleOutcome |= BATTLE_WON; + gBattleOutcome |= B_OUTCOME_WON; } } - gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN; + gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN; gSaveBlock2Ptr->field_CA9_b = 1; } else @@ -5464,8 +5464,8 @@ static void HandleAction_Run(void) } else { - gCurrentTurnActionNumber = gNoOfAllBanks; - gBattleOutcome = BATTLE_POKE_FLED; + gCurrentTurnActionNumber = gBattleBanksCount; + gBattleOutcome = B_OUTCOME_POKE_FLED; } } } @@ -5546,8 +5546,8 @@ static void HandleAction_SafriZoneRun(void) { gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; PlaySE(SE_NIGERU); - gCurrentTurnActionNumber = gNoOfAllBanks; - gBattleOutcome = BATTLE_RAN; + gCurrentTurnActionNumber = gBattleBanksCount; + gBattleOutcome = B_OUTCOME_RAN; } static void HandleAction_Action9(void) @@ -5597,7 +5597,7 @@ static void HandleAction_ActionFinished(void) gCurrentMove = 0; gBattleMoveDamage = 0; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; gLastLandedMoves[gBankAttacker] = 0; diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index a10dab976..07bedb113 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -48,16 +48,16 @@ extern u32 gBattleTypeFlags; extern u8 gActiveBank; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -extern u16 gSideAffecting[2]; +extern u16 gSideStatuses[2]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gDynamicBasePower; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern s32 gBattleMoveDamage; extern u8 gCritMultiplier; extern u16 gBattleWeather; @@ -367,14 +367,14 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) // decide a random target bank in doubles if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gBankTarget = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget ^= BIT_MON; + gBankDefender = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender ^= BIT_MON; } // in singles there's only one choice else { - gBankTarget = sBank_AI ^ BIT_SIDE; + gBankDefender = sBank_AI ^ BIT_SIDE; } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) @@ -491,7 +491,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) else BattleAI_SetupAIData(0xF); - gBankTarget = i; + gBankDefender = i; if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE)) RecordLastUsedMoveByTarget(); @@ -573,8 +573,8 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) } } - gBankTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; - return actionOrMoveIndex[gBankTarget]; + gBankDefender = mostViableTargetsArray[Random() % mostViableTargetsNo]; + return actionOrMoveIndex[gBankDefender]; } static void BattleAI_DoAIProcessing(void) @@ -627,12 +627,12 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastMoves[gBankTarget]) + if (gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] == gLastMoves[gBankDefender]) break; - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. - && gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0) + if (gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] != gLastMoves[gBankDefender] // HACK: This redundant condition is a hack to make the asm match. + && gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastMoves[gBankTarget]; + gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] = gLastMoves[gBankDefender]; break; } } @@ -723,7 +723,7 @@ static void BattleAICmd_if_hp_less_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -738,7 +738,7 @@ static void BattleAICmd_if_hp_more_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -753,7 +753,7 @@ static void BattleAICmd_if_hp_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -768,7 +768,7 @@ static void BattleAICmd_if_hp_not_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -784,7 +784,7 @@ static void BattleAICmd_if_status(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -802,7 +802,7 @@ static void BattleAICmd_if_not_status(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -820,7 +820,7 @@ static void BattleAICmd_if_status2(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -838,7 +838,7 @@ static void BattleAICmd_if_not_status2(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -856,7 +856,7 @@ static void BattleAICmd_if_status3(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -874,7 +874,7 @@ static void BattleAICmd_if_not_status3(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -892,12 +892,12 @@ static void BattleAICmd_if_side_affecting(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; side = GET_BANK_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); - if ((gSideAffecting[side] & status) != 0) + if ((gSideStatuses[side] & status) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -911,12 +911,12 @@ static void BattleAICmd_if_not_side_affecting(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; side = GET_BANK_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); - if ((gSideAffecting[side] & status) == 0) + if ((gSideStatuses[side] & status) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -1126,13 +1126,13 @@ static void BattleAICmd_get_type(void) AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1; break; case AI_TYPE1_TARGET: // target primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankDefender].type1; break; case AI_TYPE2_USER: // AI user secondary type AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2; break; case AI_TYPE2_TARGET: // target secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBankDefender].type2; break; case AI_TYPE_MOVE: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -1149,11 +1149,11 @@ static u8 BattleAI_GetWantedBank(u8 bank) return sBank_AI; case AI_TARGET: default: - return gBankTarget; + return gBankDefender; case AI_USER_PARTNER: return sBank_AI ^ BIT_MON; case AI_TARGET_PARTNER: - return gBankTarget ^ BIT_MON; + return gBankDefender ^ BIT_MON; } } @@ -1196,7 +1196,7 @@ static void BattleAICmd_get_how_powerful_move_is(void) gDynamicBasePower = 0; *(&gBattleStruct->dynamicMoveType) = 0; gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; for (checkedMove = 0; checkedMove < 4; checkedMove++) @@ -1212,8 +1212,8 @@ static void BattleAICmd_get_how_powerful_move_is(void) && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1) { gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove]; - AI_CalcDmg(sBank_AI, gBankTarget); - TypeCalc(gCurrentMove, sBank_AI, gBankTarget); + AI_CalcDmg(sBank_AI, gBankDefender); + TypeCalc(gCurrentMove, sBank_AI, gBankDefender); moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; if (moveDmgs[checkedMove] == 0) moveDmgs[checkedMove] = 1; @@ -1248,7 +1248,7 @@ static void BattleAICmd_get_last_used_bank_move(void) if (gAIScriptPtr[1] == AI_USER) AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; else - AI_THINKING_STRUCT->funcResult = gLastMoves[gBankTarget]; + AI_THINKING_STRUCT->funcResult = gLastMoves[gBankDefender]; gAIScriptPtr += 2; } @@ -1271,7 +1271,7 @@ static void BattleAICmd_if_not_equal_(void) // same as if_not_equal static void BattleAICmd_if_user_goes(void) { - if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBankDefender, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1279,7 +1279,7 @@ static void BattleAICmd_if_user_goes(void) static void BattleAICmd_if_user_doesnt_go(void) { - if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBankDefender, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1305,7 +1305,7 @@ static void BattleAICmd_count_usable_party_mons(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (GetBankSide(bank) == SIDE_PLAYER) party = gPlayerParty; @@ -1317,7 +1317,7 @@ static void BattleAICmd_count_usable_party_mons(void) u32 identity; bankOnField1 = gBattlePartyID[bank]; identity = GetBankPosition(bank) ^ BIT_MON; - bankOnField2 = gBattlePartyID[GetBankByIdentity(identity)]; + bankOnField2 = gBattlePartyID[GetBankByPosition(identity)]; } else // in singles there's only one bank by side { @@ -1358,7 +1358,7 @@ static void BattleAICmd_get_ability(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gActiveBank != bank) { @@ -1482,7 +1482,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void) dynamicMoveType = &gBattleStruct->dynamicMoveType; *dynamicMoveType = 0; gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; AI_THINKING_STRUCT->funcResult = 0; @@ -1493,7 +1493,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void) if (gCurrentMove) { - TypeCalc(gCurrentMove, sBank_AI, gBankTarget); + TypeCalc(gCurrentMove, sBank_AI, gBankDefender); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1505,7 +1505,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gBattleMoveDamage = AI_EFFECTIVENESS_x0; if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) @@ -1522,13 +1522,13 @@ static void BattleAICmd_if_type_effectiveness(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gBattleMoveDamage = AI_EFFECTIVENESS_x1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - TypeCalc(gCurrentMove, sBank_AI, gBankTarget); + TypeCalc(gCurrentMove, sBank_AI, gBankDefender); if (gBattleMoveDamage == 120) gBattleMoveDamage = AI_EFFECTIVENESS_x2; @@ -1539,7 +1539,7 @@ static void BattleAICmd_if_type_effectiveness(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gBattleMoveDamage = AI_EFFECTIVENESS_x0; // store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. @@ -1572,7 +1572,7 @@ static void BattleAICmd_if_status_in_party(void) bank = sBank_AI; break; default: - bank = gBankTarget; + bank = gBankDefender; break; } @@ -1609,7 +1609,7 @@ static void BattleAICmd_if_status_not_in_party(void) bank = sBank_AI; break; default: - bank = gBankTarget; + bank = gBankDefender; break; } @@ -1669,7 +1669,7 @@ static void BattleAICmd_if_stat_level_less_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1684,7 +1684,7 @@ static void BattleAICmd_if_stat_level_more_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1699,7 +1699,7 @@ static void BattleAICmd_if_stat_level_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1714,7 +1714,7 @@ static void BattleAICmd_if_stat_level_not_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1733,11 +1733,11 @@ static void BattleAICmd_if_can_faint(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBankTarget); - TypeCalc(gCurrentMove, sBank_AI, gBankTarget); + AI_CalcDmg(sBank_AI, gBankDefender); + TypeCalc(gCurrentMove, sBank_AI, gBankDefender); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) + if (gBattleMons[gBankDefender].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1762,17 +1762,17 @@ static void BattleAICmd_if_cant_faint(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBankTarget); - TypeCalc(gCurrentMove, sBank_AI, gBankTarget); + AI_CalcDmg(sBank_AI, gBankDefender); + TypeCalc(gCurrentMove, sBank_AI, gBankDefender); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1829,7 +1829,7 @@ static void BattleAICmd_if_has_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] == *movePtr) break; } if (i == 4) @@ -1873,7 +1873,7 @@ static void BattleAICmd_if_doesnt_have_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] == *movePtr) break; } if (i != 4) @@ -1911,8 +1911,8 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - // UB: checks sBank_AI instead of gBankTarget - if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2]) + // UB: checks sBank_AI instead of gBankDefender + if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankDefender].moves[i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -1945,7 +1945,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2]) + if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankDefender].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1963,7 +1963,7 @@ static void BattleAICmd_if_any_move_disabled_or_encored(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gAIScriptPtr[2] == 0) { @@ -2041,7 +2041,7 @@ static void BattleAICmd_get_hold_effect(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; if (gActiveBank != bank) AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]); @@ -2079,7 +2079,7 @@ static void BattleAICmd_get_gender(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality); @@ -2093,7 +2093,7 @@ static void BattleAICmd_is_first_turn_for(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn; @@ -2107,7 +2107,7 @@ static void BattleAICmd_get_stockpile_count(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter; @@ -2128,7 +2128,7 @@ static void BattleAICmd_get_used_held_item(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; // This is likely a leftover from Ruby's code and its ugly ewram access #ifdef NONMATCHING @@ -2168,7 +2168,7 @@ static void BattleAICmd_get_protect_count(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankTarget; + bank = gBankDefender; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses; @@ -2221,7 +2221,7 @@ static void BattleAICmd_if_level_cond(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[sBank_AI].level > gBattleMons[gBankTarget].level) + if (gBattleMons[sBank_AI].level > gBattleMons[gBankDefender].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2229,7 +2229,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[sBank_AI].level < gBattleMons[gBankTarget].level) + if (gBattleMons[sBank_AI].level < gBattleMons[gBankDefender].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2237,7 +2237,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[sBank_AI].level == gBattleMons[gBankTarget].level) + if (gBattleMons[sBank_AI].level == gBattleMons[gBankDefender].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2249,7 +2249,7 @@ static void BattleAICmd_if_level_cond(void) static void BattleAICmd_if_target_taunted(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 != 0) + if (gDisableStructs[gBankDefender].tauntTimer1 != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2257,7 +2257,7 @@ static void BattleAICmd_if_target_taunted(void) static void BattleAICmd_if_target_not_taunted(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 == 0) + if (gDisableStructs[gBankDefender].tauntTimer1 == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2265,7 +2265,7 @@ static void BattleAICmd_if_target_not_taunted(void) static void BattleAICmd_if_target_is_ally(void) { - if ((sBank_AI & BIT_SIDE) == (gBankTarget & BIT_SIDE)) + if ((sBank_AI & BIT_SIDE) == (gBankDefender & BIT_SIDE)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 092d4a7c7..60212f849 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -19,7 +19,7 @@ extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u16 gDynamicBasePower; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 gCritMultiplier; extern s32 gBattleMoveDamage; @@ -48,7 +48,7 @@ static bool8 ShouldSwitchIfPerishSong(void) static bool8 ShouldSwitchIfWonderGuard(void) { - u8 opposingIdentity; + u8 opposingPosition; u8 opposingBank; u8 moveFlags; s32 i, j; @@ -60,20 +60,20 @@ static bool8 ShouldSwitchIfWonderGuard(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) return FALSE; - opposingIdentity = GetBankPosition(gActiveBank) ^ BIT_SIDE; + opposingPosition = B_POSITION_OPPOSITE(GetBankPosition(gActiveBank)); - if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[GetBankByPosition(opposingPosition)].ability != ABILITY_WONDER_GUARD) return FALSE; // check if pokemon has a super effective move - for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++) + for (opposingBank = GetBankByPosition(opposingPosition), i = 0; i < 4; i++) { move = gBattleMons[gActiveBank].moves[i]; if (move == MOVE_NONE) continue; moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) return FALSE; } @@ -110,14 +110,14 @@ static bool8 ShouldSwitchIfWonderGuard(void) GetMonData(&party[i], MON_DATA_SPECIES); // unused return value GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value - for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++) + for (opposingBank = GetBankByPosition(opposingPosition), j = 0; j < 4; j++) { move = GetMonData(&party[i], MON_DATA_MOVE1 + j); if (move == MOVE_NONE) continue; moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2) + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % 3 < 2) { // we found a mon *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; @@ -151,10 +151,10 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)))]) bankIn2 = gActiveBank; else - bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank))); } else { @@ -231,7 +231,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) static bool8 ShouldSwitchIfNaturalCure(void) { - if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + if (!(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)) return FALSE; if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE) return FALSE; @@ -251,9 +251,9 @@ static bool8 ShouldSwitchIfNaturalCure(void) return TRUE; } - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1)) + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 1)) return TRUE; - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1)) + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 1)) return TRUE; if (Random() & 1) { @@ -267,14 +267,14 @@ static bool8 ShouldSwitchIfNaturalCure(void) static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) { - u8 opposingIdentity; + u8 opposingPosition; u8 opposingBank; s32 i; u8 moveFlags; u16 move; - opposingIdentity = GetBankPosition(gActiveBank) ^ BIT_SIDE; - opposingBank = GetBankByIdentity(opposingIdentity); + opposingPosition = B_POSITION_OPPOSITE(GetBankPosition(gActiveBank)); + opposingBank = GetBankByPosition(opposingPosition); if (!(gAbsentBankFlags & gBitTable[opposingBank])) { @@ -285,7 +285,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) continue; moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) { if (noRng) return TRUE; @@ -297,7 +297,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) return FALSE; - opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON); + opposingBank = GetBankByPosition(B_POSITION_PARTNER(opposingPosition)); if (!(gAbsentBankFlags & gBitTable[opposingBank])) { @@ -308,7 +308,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) continue; moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE) { if (noRng) return TRUE; @@ -357,10 +357,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)))]) bankIn2 = gActiveBank; else - bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank))); } else { @@ -423,7 +423,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) continue; moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0) + if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; EmitTwoReturnValues(1, ACTION_SWITCH, 0); @@ -468,10 +468,10 @@ static bool8 ShouldSwitch(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = *activeBankPtr; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(*activeBankPtr) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByPosition(GetBankPosition(*activeBankPtr) ^ BIT_MON)]) bankIn2 = *activeBankPtr; else - bankIn2 = GetBankByIdentity(GetBankPosition(*activeBankPtr) ^ BIT_MON); + bankIn2 = GetBankByPosition(GetBankPosition(*activeBankPtr) ^ BIT_MON); } else { @@ -530,8 +530,8 @@ static bool8 ShouldSwitch(void) return FALSE; if (AreStatsRaised()) return FALSE; - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2) - || FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) + if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2) + || FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 3)) return TRUE; return FALSE; @@ -561,13 +561,13 @@ void AI_TrySwitchOrUseItem(void) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - bankIn1 = GetBankByIdentity(bankIdentity); + bankIn1 = GetBankByPosition(bankIdentity); bankIn2 = bankIn1; } else { - bankIn1 = GetBankByIdentity(bankIdentity); - bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON); + bankIn1 = GetBankByPosition(bankIdentity); + bankIn2 = GetBankByPosition(bankIdentity ^ BIT_MON); } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) @@ -659,10 +659,10 @@ u8 GetMostSuitableMonToSwitchInto(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON)]) + if (gAbsentBankFlags & gBitTable[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)]) bankIn2 = gActiveBank; else - bankIn2 = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON); // UB: It considers the opponent only player's side even though it can battle alongside player; opposingBank = Random() & BIT_MON; @@ -671,7 +671,7 @@ u8 GetMostSuitableMonToSwitchInto(void) } else { - opposingBank = GetBankByIdentity(GetBankPosition(gActiveBank) ^ BIT_SIDE); + opposingBank = GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_SIDE); bankIn1 = gActiveBank; bankIn2 = gActiveBank; } @@ -734,7 +734,7 @@ u8 GetMostSuitableMonToSwitchInto(void) for (i = 0; i < 4; i++) { move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); - if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE) + if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVE_RESULT_SUPER_EFFECTIVE) break; } @@ -752,7 +752,7 @@ u8 GetMostSuitableMonToSwitchInto(void) gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gCritMultiplier = 1; bestDmg = 0; bestMonId = 6; @@ -877,27 +877,27 @@ static bool8 ShouldUseItem(void) break; case AI_ITEM_CURE_CONDITION: *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0; - if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) { *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20; shouldUse = TRUE; } - if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS_POISON || gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON)) + if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS1_POISON || gBattleMons[gActiveBank].status1 & STATUS1_TOXIC_POISON)) { *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10; shouldUse = TRUE; } - if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS_BURN) + if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS1_BURN) { *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8; shouldUse = TRUE; } - if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS_FREEZE) + if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS1_FREEZE) { *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4; shouldUse = TRUE; } - if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS_PARALYSIS) + if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS1_PARALYSIS) { *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2; shouldUse = TRUE; diff --git a/src/battle_anim.c b/src/battle_anim.c index ecaff67a8..76da24383 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -26,7 +26,7 @@ #define ANIM_SPRITE_INDEX_COUNT 8 extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; extern u16 gBattle_WIN1H; @@ -222,7 +222,7 @@ void ClearBattleAnimationVars(void) void DoMoveAnim(u16 move) { gAnimBankAttacker = gBankAttacker; - gAnimBankTarget = gBankTarget; + gAnimBankTarget = gBankDefender; LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE); } diff --git a/src/battle_bg.c b/src/battle_bg.c index 5d5bbf0e9..4bb1e65a9 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -273,13 +273,13 @@ static void sub_8035AE4(u8 taskId, u8 bank, u8 bgId, u8 destX, u8 destY) static void sub_8035C4C(void) { - if (gBattleOutcome == BATTLE_DREW) + if (gBattleOutcome == B_OUTCOME_DREW) { BattleHandleAddTextPrinter(gText_Draw, 0x15); } else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (gBattleOutcome == BATTLE_WON) + if (gBattleOutcome == B_OUTCOME_WON) { switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18) { @@ -324,7 +324,7 @@ static void sub_8035C4C(void) } } } - else if (gBattleOutcome == BATTLE_WON) + else if (gBattleOutcome == B_OUTCOME_WON) { if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0) { diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index a72650537..1733ee966 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -28,7 +28,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gPreBattleCallback1)(void); @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; @@ -1875,10 +1875,10 @@ static void LinkOpponentHandleCmd55(void) { sub_81851A8(&gBattleBufferA[gActiveBank][4]); - if (gBattleBufferA[gActiveBank][1] == BATTLE_DREW) + if (gBattleBufferA[gActiveBank][1] == B_OUTCOME_DREW) gBattleOutcome = gBattleBufferA[gActiveBank][1]; else - gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ BATTLE_DREW; + gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ B_OUTCOME_DREW; gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2]; FadeOutMapMusic(5); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 14061b3a9..9835f6cb2 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -28,7 +28,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gPreBattleCallback1)(void); @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index d3e72c0ad..6940fdc73 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -30,7 +30,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern bool8 gDoingBattleAnim; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; @@ -1581,18 +1581,18 @@ static void OpponentHandleChooseMove(void) EmitTwoReturnValues(1, ACTION_RUN, 0); break; case 6: - EmitTwoReturnValues(1, 15, gBankTarget); + EmitTwoReturnValues(1, 15, gBankDefender); break; default: if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) - gBankTarget = gActiveBank; + gBankDefender = gActiveBank; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); } - EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankTarget << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankDefender << 8)); break; } OpponentBufferExecCompleted(); @@ -1609,9 +1609,9 @@ static void OpponentHandleChooseMove(void) if (gBattleMoves[move].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBank << 8)); else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(Random() & 2) << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByPosition(Random() & 2) << 8)); else - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(B_POSITION_PLAYER_LEFT) << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByPosition(B_POSITION_PLAYER_LEFT) << 8)); OpponentBufferExecCompleted(); } @@ -1638,12 +1638,12 @@ static void OpponentHandleChoosePokemon(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - bank2 = bank1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + bank2 = bank1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); } else { - bank1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); - bank2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + bank1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + bank2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index dfbf9df94..e8a6898f8 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -33,7 +33,7 @@ extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gAbsentBankFlags; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern u8 gPlayerDpadHoldFrames; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); @@ -358,7 +358,7 @@ static void HandleInputChooseAction(void) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT - && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(B_POSITION_PLAYER_LEFT)]) + && !(gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PLAYER_LEFT)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { if (gBattleBufferA[gActiveBank][1] == ACTION_USE_ITEM) @@ -397,14 +397,14 @@ static void HandleInputChooseTarget(void) // what a weird loop i = 0; - if (gNoOfAllBanks != 0) + if (gBattleBanksCount != 0) { do { if (i != gMultiUsePlayerCursor) dp11b_obj_free(i, 1); i++; - } while (i < gNoOfAllBanks); + } while (i < gBattleBanksCount); } if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2) @@ -447,8 +447,8 @@ static void HandleInputChooseTarget(void) { if (--i < 0) i = 4; // UB: array out of range - gMultiUsePlayerCursor = GetBankByIdentity(identities[i]); - } while (gMultiUsePlayerCursor == gNoOfAllBanks); + gMultiUsePlayerCursor = GetBankByPosition(identities[i]); + } while (gMultiUsePlayerCursor == gBattleBanksCount); i = 0; switch (GetBankPosition(gMultiUsePlayerCursor)) @@ -489,8 +489,8 @@ static void HandleInputChooseTarget(void) { if (++i > 3) i = 0; - gMultiUsePlayerCursor = GetBankByIdentity(identities[i]); - } while (gMultiUsePlayerCursor == gNoOfAllBanks); + gMultiUsePlayerCursor = GetBankByPosition(identities[i]); + } while (gMultiUsePlayerCursor == gBattleBanksCount); i = 0; switch (GetBankPosition(gMultiUsePlayerCursor)) @@ -545,7 +545,7 @@ static void HandleInputChooseMove(void) if (moveTarget & MOVE_TARGET_x10) gMultiUsePlayerCursor = gActiveBank; else - gMultiUsePlayerCursor = GetBankByIdentity((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE); + gMultiUsePlayerCursor = GetBankByPosition((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE); if (!gBattleBufferA[gActiveBank][1]) // not a double battle { @@ -579,10 +579,10 @@ static void HandleInputChooseMove(void) if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) gMultiUsePlayerCursor = gActiveBank; - else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(B_POSITION_OPPONENT_LEFT)]) - gMultiUsePlayerCursor = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + else if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_OPPONENT_LEFT)]) + gMultiUsePlayerCursor = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); else - gMultiUsePlayerCursor = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gMultiUsePlayerCursor = GetBankByPosition(B_POSITION_OPPONENT_LEFT); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; } @@ -905,7 +905,7 @@ static void sub_80586F8(void) gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(sub_8038D64); - if (gBattleOutcome == BATTLE_WON) + if (gBattleOutcome == B_OUTCOME_WON) sub_817E3F4(); FreeAllWindowBuffers(); } @@ -918,7 +918,7 @@ static void sub_80586F8(void) gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(sub_8038D64); - if (gBattleOutcome == BATTLE_WON) + if (gBattleOutcome == B_OUTCOME_WON) sub_817E3F4(); FreeAllWindowBuffers(); } @@ -2463,7 +2463,7 @@ static void PlayerHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } @@ -2473,7 +2473,7 @@ static void PlayerHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 5d6f07a48..1da8ee04c 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -27,7 +27,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gPreBattleCallback1)(void); @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; @@ -1545,15 +1545,15 @@ static void PlayerPartnerHandleChooseMove(void) chosenMoveId = BattleAI_ChooseMoveOrAction(); if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) - gBankTarget = gActiveBank; + gBankDefender = gActiveBank; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); } - EmitTwoReturnValues(1, 10, chosenMoveId | (gBankTarget << 8)); + EmitTwoReturnValues(1, 10, chosenMoveId | (gBankDefender << 8)); PlayerPartnerBufferExecCompleted(); } @@ -1568,8 +1568,8 @@ static void PlayerPartnerHandleChoosePokemon(void) if (chosenMonId == 6) // just switch to the next mon { - u8 playerMonIdentity = GetBankByIdentity(B_POSITION_PLAYER_LEFT); - u8 selfIdentity = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + u8 playerMonIdentity = GetBankByPosition(B_POSITION_PLAYER_LEFT); + u8 selfIdentity = GetBankByPosition(B_POSITION_PLAYER_RIGHT); for (chosenMonId = 3; chosenMonId < 6; chosenMonId++) { diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index e5e0bef84..e970c5f58 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -29,7 +29,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gPreBattleCallback1)(void); @@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; @@ -1814,10 +1814,10 @@ static void RecordedOpponentHandleResetActionMoveSelection(void) static void RecordedOpponentHandleCmd55(void) { - if (gBattleBufferA[gActiveBank][1] == BATTLE_DREW) + if (gBattleBufferA[gActiveBank][1] == B_OUTCOME_DREW) gBattleOutcome = gBattleBufferA[gActiveBank][1]; else - gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ BATTLE_DREW; + gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ B_OUTCOME_DREW; FadeOutMapMusic(5); BeginFastPaletteFade(3); diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 183da6bfd..775ea3e7c 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -28,7 +28,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gPreBattleCallback1)(void); @@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; @@ -1445,7 +1445,7 @@ static void RecordedPlayerHandlePrintSelectionString(void) static void ChooseActionInBattlePalace(void) { - if (gBattleCommunication[4] >= gNoOfAllBanks / 2) + if (gBattleCommunication[4] >= gBattleBanksCount / 2) { EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0); RecordedPlayerBufferExecCompleted(); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index a04f06d8c..a605e4cb8 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -26,7 +26,7 @@ extern u32 gBattleExecBuffer; extern u8 gActiveBank; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern void (*gPreBattleCallback1)(void); @@ -415,7 +415,7 @@ static void SafariHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } @@ -425,7 +425,7 @@ static void SafariHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 8a34763f6..11fb0074f 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -34,7 +34,7 @@ extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gAbsentBankFlags; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern bool8 gDoingBattleAnim; extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; @@ -1113,7 +1113,7 @@ static void WallyHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; } @@ -1123,7 +1123,7 @@ static void WallyHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 467ce3640..91f014876 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -19,7 +19,7 @@ extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u8 gActiveBank; extern u8 gUnknown_0202428C; extern u32 gUnknown_02022FF4; @@ -32,7 +32,7 @@ extern u8 gUnknown_02022D08; extern u8 gUnknown_02022D09; extern u8 gUnknown_02022D0A; extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u8 gEffectBank; extern u16 gBattleWeather; @@ -124,7 +124,7 @@ void sub_8032768(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) sub_81B8D64(i, 0); } @@ -172,7 +172,7 @@ static void SetControllersVariables(void) gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; } - gNoOfAllBanks = 4; + gBattleBanksCount = 4; sub_81B8D64(0, 0); sub_81B8D64(1, 0); @@ -200,7 +200,7 @@ static void SetControllersVariables(void) gBattleBankFunc[1] = SetControllerToOpponent; gBankPositions[1] = B_POSITION_OPPONENT_LEFT; - gNoOfAllBanks = 2; + gBattleBanksCount = 2; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { @@ -216,7 +216,7 @@ static void SetControllersVariables(void) gBattleBankFunc[1] = SetControllerToRecordedOpponent; gBankPositions[1] = B_POSITION_OPPONENT_LEFT; - gNoOfAllBanks = 2; + gBattleBanksCount = 2; } else // see how the banks are switched { @@ -226,7 +226,7 @@ static void SetControllersVariables(void) gBattleBankFunc[0] = SetControllerToRecordedOpponent; gBankPositions[0] = B_POSITION_OPPONENT_LEFT; - gNoOfAllBanks = 2; + gBattleBanksCount = 2; } } else @@ -255,7 +255,7 @@ static void SetControllersVariables(void) gBattleBankFunc[3] = SetControllerToOpponent; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; - gNoOfAllBanks = 4; + gBattleBanksCount = 4; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { @@ -275,7 +275,7 @@ static void SetControllersVariables(void) gBattleBankFunc[3] = SetControllerToOpponent; gBankPositions[3] = 3; - gNoOfAllBanks = 4; + gBattleBanksCount = 4; sub_81B8D64(0, 0); sub_81B8D64(1, 0); @@ -430,7 +430,7 @@ static void SetControllersVariablesInLinkBattle(void) gBattleBankFunc[1] = SetControllerToLinkOpponent; gBankPositions[1] = B_POSITION_OPPONENT_LEFT; - gNoOfAllBanks = 2; + gBattleBanksCount = 2; } else { @@ -440,7 +440,7 @@ static void SetControllersVariablesInLinkBattle(void) gBattleBankFunc[0] = SetControllerToLinkOpponent; gBankPositions[0] = B_POSITION_OPPONENT_LEFT; - gNoOfAllBanks = 2; + gBattleBanksCount = 2; } } else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -461,7 +461,7 @@ static void SetControllersVariablesInLinkBattle(void) gBattleBankFunc[3] = SetControllerToLinkOpponent; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; - gNoOfAllBanks = 4; + gBattleBanksCount = 4; } else { @@ -477,7 +477,7 @@ static void SetControllersVariablesInLinkBattle(void) gBattleBankFunc[2] = SetControllerToLinkOpponent; gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; - gNoOfAllBanks = 4; + gBattleBanksCount = 4; } } else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) @@ -498,7 +498,7 @@ static void SetControllersVariablesInLinkBattle(void) gBattleBankFunc[3] = SetControllerToOpponent; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; - gNoOfAllBanks = 4; + gBattleBanksCount = 4; } else { @@ -514,7 +514,7 @@ static void SetControllersVariablesInLinkBattle(void) gBattleBankFunc[3] = SetControllerToLinkOpponent; gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; - gNoOfAllBanks = 4; + gBattleBanksCount = 4; } sub_81B8D64(0, 0); @@ -604,7 +604,7 @@ static void SetControllersVariablesInLinkBattle(void) } } - gNoOfAllBanks = 4; + gBattleBanksCount = 4; } } @@ -614,7 +614,7 @@ static void SetBattlePartyIds(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { for (j = 0; j < 6; j++) { @@ -753,7 +753,7 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankTarget; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankDefender; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags; @@ -921,7 +921,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; - gBankTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; + gBankDefender = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; } diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 5ded24863..d6a52b898 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -25,7 +25,7 @@ extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; extern u8 gActiveBank; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u16 gUnknown_020243FC; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; @@ -262,7 +262,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void) else if (var1 == MOVE_TARGET_SELECTED) chosenMoveId |= (BattlePalaceGetTargetRetValue()); else - chosenMoveId |= (GetBankByIdentity((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8); + chosenMoveId |= (GetBankByPosition((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8); return chosenMoveId; } @@ -299,13 +299,13 @@ static u16 BattlePalaceGetTargetRetValue(void) if (GetBankSide(gActiveBank) == SIDE_PLAYER) { - opposing1 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); - opposing2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + opposing1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + opposing2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); } else { - opposing1 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); - opposing2 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + opposing1 = GetBankByPosition(B_POSITION_PLAYER_LEFT); + opposing2 = GetBankByPosition(B_POSITION_PLAYER_RIGHT); } if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp) @@ -391,15 +391,15 @@ void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status) gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 1; if (!isStatus2) { - if (status == STATUS_FREEZE) + if (status == STATUS1_FREEZE) LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_FRZ); - else if (status == STATUS_POISON || status & STATUS_TOXIC_POISON) + else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON) LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PSN); - else if (status == STATUS_BURN) + else if (status == STATUS1_BURN) LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_BRN); - else if (status & STATUS_SLEEP) + else if (status & STATUS1_SLEEP) LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_SLP); - else if (status == STATUS_PARALYSIS) + else if (status == STATUS1_PARALYSIS) LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PRZ); else // no animation gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0; @@ -807,7 +807,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) gHealthBoxesIds[*bank] = CreateBankHealthboxSprites(*bank); (*bank)++; - if (*bank == gNoOfAllBanks) + if (*bank == gBattleBanksCount) { *bank = 0; (*state1)++; @@ -821,7 +821,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE); (*bank)++; - if (*bank == gNoOfAllBanks) + if (*bank == gBattleBanksCount) { *bank = 0; (*state1)++; @@ -839,7 +839,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) } SetHealthboxSpriteInvisible(gHealthBoxesIds[*bank]); (*bank)++; - if (*bank == gNoOfAllBanks) + if (*bank == gBattleBanksCount) { *bank = 0; (*state1)++; @@ -871,7 +871,7 @@ void CopyAllBattleSpritesInvisibilities(void) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBankSpriteIds[i]].invisible; } @@ -1080,7 +1080,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) void BattleStopLowHpSound(void) { - u8 playerBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + u8 playerBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0; if (IsDoubleBattle()) @@ -1101,8 +1101,8 @@ void sub_805EAE8(void) { if (gMain.inBattle) { - u8 playerBank1 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); - u8 playerBank2 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + u8 playerBank1 = GetBankByPosition(B_POSITION_PLAYER_LEFT); + u8 playerBank2 = GetBankByPosition(B_POSITION_PLAYER_RIGHT); u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]); u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]); @@ -1117,7 +1117,7 @@ void sub_805EB9C(u8 affineMode) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (IsBankSpritePresent(i)) { @@ -1143,13 +1143,13 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); - bank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + bank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; if (IsDoubleBattle()) { - bank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + bank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; } @@ -1286,7 +1286,7 @@ bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon) s16 hp, maxHP; s32 barLevel; - if (GetMonData(mon, MON_DATA_STATUS) & (STATUS_ANY | STATUS_TOXIC_COUNTER)) + if (GetMonData(mon, MON_DATA_STATUS) & (STATUS1_ANY | STATUS1_TOXIC_COUNTER)) return FALSE; hp = GetMonData(mon, MON_DATA_HP); diff --git a/src/battle_interface.c b/src/battle_interface.c index 05f500860..da44d3a02 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -154,7 +154,7 @@ enum extern u8 gBankPositions[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; extern const u8 * const gNatureNamePointers[]; @@ -1086,7 +1086,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; @@ -1414,7 +1414,7 @@ void SwapHpBarsWithHpText(void) s32 i; u8 spriteId; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy && GetBankSide(i) != SIDE_OPPONENT @@ -2029,27 +2029,27 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) tileNumAdder = 0x11; } - if (status & STATUS_SLEEP) + if (status & STATUS1_SLEEP) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank)); statusPalId = PAL_STATUS_SLP; } - else if (status & STATUS_PSN_ANY) + else if (status & STATUS1_PSN_ANY) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank)); statusPalId = PAL_STATUS_PSN; } - else if (status & STATUS_BURN) + else if (status & STATUS1_BURN) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank)); statusPalId = PAL_STATUS_BRN; } - else if (status & STATUS_FREEZE) + else if (status & STATUS1_FREEZE) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank)); statusPalId = PAL_STATUS_FRZ; } - else if (status & STATUS_PARALYSIS) + else if (status & STATUS1_PARALYSIS) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank)); statusPalId = PAL_STATUS_PAR; diff --git a/src/battle_message.c b/src/battle_message.c index 80aa5e3f9..a08378058 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -18,7 +18,7 @@ extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gActiveBank; extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gStringBank; extern u8 gEffectBank; extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT]; @@ -1631,13 +1631,13 @@ void BufferStringBattle(u16 stringID) stringPtr = gText_AttackerUsedX; break; case STRINGID_BATTLEEND: // battle end - if (gBattleTextBuff1[0] & OUTCOME_LINK_BATTLE_RUN) + if (gBattleTextBuff1[0] & B_OUTCOME_LINK_BATTLE_RAN) { - gBattleTextBuff1[0] &= ~(OUTCOME_LINK_BATTLE_RUN); - if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) - gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); + gBattleTextBuff1[0] &= ~(B_OUTCOME_LINK_BATTLE_RAN); + if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW) + gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON); - if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW) + if (gBattleTextBuff1[0] == B_OUTCOME_LOST || gBattleTextBuff1[0] == B_OUTCOME_DREW) stringPtr = gText_GotAwaySafely; else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = gText_TwoWildFled; @@ -1646,23 +1646,23 @@ void BufferStringBattle(u16 stringID) } else { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) - gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); + if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW) + gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { switch (gBattleTextBuff1[0]) { - case BATTLE_WON: + case B_OUTCOME_WON: if (gBattleTypeFlags & BATTLE_TYPE_x800000) stringPtr = gText_TwoInGameTrainersDefeated; else stringPtr = gText_TwoLinkTrainersDefeated; break; - case BATTLE_LOST: + case B_OUTCOME_LOST: stringPtr = gText_PlayerLostToTwo; break; - case BATTLE_DREW: + case B_OUTCOME_DREW: stringPtr = gText_PlayerBattledToDrawVsTwo; break; } @@ -1671,13 +1671,13 @@ void BufferStringBattle(u16 stringID) { switch (gBattleTextBuff1[0]) { - case BATTLE_WON: + case B_OUTCOME_WON: stringPtr = gText_PlayerDefeatedLinkTrainerTrainer1; break; - case BATTLE_LOST: + case B_OUTCOME_LOST: stringPtr = gText_PlayerLostAgainstTrainer1; break; - case BATTLE_DREW: + case B_OUTCOME_DREW: stringPtr = gText_PlayerBattledToDrawTrainer1; break; } @@ -1686,13 +1686,13 @@ void BufferStringBattle(u16 stringID) { switch (gBattleTextBuff1[0]) { - case BATTLE_WON: + case B_OUTCOME_WON: stringPtr = gText_PlayerDefeatedLinkTrainer; break; - case BATTLE_LOST: + case B_OUTCOME_LOST: stringPtr = gText_PlayerLostAgainstLinkTrainer; break; - case BATTLE_DREW: + case B_OUTCOME_DREW: stringPtr = gText_PlayerBattledToDrawLinkTrainer; break; } @@ -1834,25 +1834,25 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gStringVar3; break; case B_TXT_PLAYER_MON1_NAME: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(B_POSITION_PLAYER_LEFT)]], + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(B_POSITION_OPPONENT_LEFT)]], + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(B_POSITION_PLAYER_RIGHT)]], + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(B_POSITION_OPPONENT_RIGHT)]], + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; @@ -1883,13 +1883,13 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 HANDLE_NICKNAME_STRING_CASE(gBankAttacker, - gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker))]) + gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker))]) break; case B_TXT_ATK_PARTNER_NAME: // attacker partner name if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; @@ -1898,7 +1898,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker]) break; case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlePartyID[gBankTarget]) + HANDLE_NICKNAME_STRING_CASE(gBankDefender, gBattlePartyID[gBankDefender]) break; case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) @@ -1971,7 +1971,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]]; break; case B_TXT_DEF_ABILITY: // target ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBankTarget]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBankDefender]]; break; case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.bank]]; @@ -2098,7 +2098,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gText_FoePkmnPrefix3; break; case B_TXT_DEF_PREFIX2: - if (GetBankSide(gBankTarget) == SIDE_PLAYER) + if (GetBankSide(gBankDefender) == SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; @@ -2110,7 +2110,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gText_FoePkmnPrefix2; break; case B_TXT_DEF_PREFIX1: - if (GetBankSide(gBankTarget) == SIDE_PLAYER) + if (GetBankSide(gBankDefender) == SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; @@ -2122,7 +2122,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gText_FoePkmnPrefix4; break; case B_TXT_DEF_PREFIX3: - if (GetBankSide(gBankTarget) == SIDE_PLAYER) + if (GetBankSide(gBankDefender) == SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 18c094571..be20305fa 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -44,37 +44,30 @@ extern u8 gCritMultiplier; extern s32 gBattleMoveDamage; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -extern u32 gBattleTypeFlags; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u8 gActiveBank; extern u32 gBattleExecBuffer; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; -extern u16 gBattleWeather; extern u8 gStringBank; extern u8 gEffectBank; extern u8 gAbsentBankFlags; extern u8 gMultiHitCounter; extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; -extern u16 gSideAffecting[2]; extern u16 gPauseCounterBattle; extern u16 gPaydayMoney; extern u16 gRandomTurnNumber; -extern u8 gBattleOutcome; -extern u8 gBattleTerrain; extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; -extern u32 gHitMarker; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern u8 gBattleCommunication[]; extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; @@ -162,9 +155,10 @@ extern const u8 gText_BattleYesNoChoice[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) +#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBankDefender].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) -#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special))) +#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBankDefender].moveturnLostHP_physical != 0 \ + || gSpecialStatuses[gBankDefender].moveturnLostHP_special != 0) // this file's functions static bool8 IsTwoTurnsMove(u16 move); @@ -715,12 +709,12 @@ static const u16 sCriticalHitChance[] = {16, 8, 4, 3, 2}; static const u32 sStatusFlagsForMoveEffects[] = { 0x00000000, - STATUS_SLEEP, - STATUS_POISON, - STATUS_BURN, - STATUS_FREEZE, - STATUS_PARALYSIS, - STATUS_TOXIC_POISON, + STATUS1_SLEEP, + STATUS1_POISON, + STATUS1_BURN, + STATUS1_FREEZE, + STATUS1_PARALYSIS, + STATUS1_TOXIC_POISON, STATUS2_CONFUSION, STATUS2_FLINCHED, 0x00000000, @@ -1041,13 +1035,13 @@ static void atk00_attackcanceler(void) } if (AtkCanceller_UnableToUseMove()) return; - if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankDefender, 0, 0, 0)) return; if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; return; } @@ -1064,23 +1058,23 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; return; default: - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; return; } } gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) + if (gProtectStructs[gBankDefender].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) { - PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT); - gProtectStructs[gBankTarget].bounceMove = 0; + PressurePPLose(gBankAttacker, gBankDefender, MOVE_MAGIC_COAT); + gProtectStructs[gBankDefender].bounceMove = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) { @@ -1093,22 +1087,22 @@ static void atk00_attackcanceler(void) } } - if (gSpecialStatuses[gBankTarget].lightningRodRedirected) + if (gSpecialStatuses[gBankDefender].lightningRodRedirected) { - gSpecialStatuses[gBankTarget].lightningRodRedirected = 0; + gSpecialStatuses[gBankDefender].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } - else if (TARGET_PROTECT_AFFECTED + else if (DEFENDER_IS_PROTECTED && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)) && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) { CancelMultiTurnMoves(gBankAttacker); - gBattleMoveFlags |= MOVESTATUS_MISSED; - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gMoveResultFlags |= MOVE_RESULT_MISSED; + gLastLandedMoves[gBankDefender] = 0; + gLastHitByType[gBankDefender] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1121,16 +1115,16 @@ static void atk00_attackcanceler(void) static void JumpIfMoveFailed(u8 adder, u16 move) { const u8 *BS_ptr = gBattlescriptCurrInstr + adder; - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastLandedMoves[gBankDefender] = 0; + gLastHitByType[gBankDefender] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { TrySetDestinyBondToHappen(); - if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankDefender, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; @@ -1138,9 +1132,9 @@ static void JumpIfMoveFailed(u8 adder, u16 move) static void atk40_jumpifaffectedbyprotect(void) { - if (TARGET_PROTECT_AFFECTED) + if (DEFENDER_IS_PROTECTED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(5, 0); gBattleCommunication[6] = 1; } @@ -1153,9 +1147,9 @@ static void atk40_jumpifaffectedbyprotect(void) bool8 JumpIfMoveAffectedByProtect(u16 move) { bool8 affected = FALSE; - if (TARGET_PROTECT_AFFECTED) + if (DEFENDER_IS_PROTECTED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); gBattleCommunication[6] = 1; affected = TRUE; @@ -1165,33 +1159,33 @@ bool8 JumpIfMoveAffectedByProtect(u16 move) static bool8 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBankDefender] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankDefender].bankWithSureHit == gBankAttacker) { JumpIfMoveFailed(7, move); return TRUE; } - if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR) + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankDefender] & STATUS3_ON_AIR) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankDefender] & STATUS3_UNDERGROUND) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankDefender] & STATUS3_UNDERWATER) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); return TRUE; } @@ -1214,9 +1208,9 @@ static void atk01_accuracycheck(void) if (move == 0xFFFE || move == 0xFFFF) { - if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBankDefender] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankDefender].bankWithSureHit == gBankAttacker) gBattlescriptCurrInstr += 7; - else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + else if (gStatuses3[gBankDefender] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else if (!JumpIfMoveAffectedByProtect(0)) gBattlescriptCurrInstr += 7; @@ -1237,7 +1231,7 @@ static void atk01_accuracycheck(void) if (AccuracyCalcHelper(move)) return; - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) { u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; buff = acc; @@ -1245,7 +1239,7 @@ static void atk01_accuracycheck(void) else { u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; - buff = acc + 6 - gBattleMons[gBankTarget].statStages[STAT_STAGE_EVASION]; + buff = acc + 6 - gBattleMons[gBankDefender].statStages[STAT_STAGE_EVASION]; } if (buff < 0) @@ -1263,23 +1257,23 @@ static void atk01_accuracycheck(void) if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost - if (WEATHER_HAS_EFFECT && gBattleMons[gBankTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + if (WEATHER_HAS_EFFECT && gBattleMons[gBankDefender].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) calc = (calc * 80) / 100; // 1.2 sand veil loss if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9) calc = (calc * 80) / 100; // 1.2 hustle loss - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect; - quality = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBankDefender].holdEffect; + quality = gEnigmaBerries[gBankDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); } - gStringBank = gBankTarget; + gStringBank = gBankDefender; if (holdEffect == HOLD_EFFECT_EVASION_UP) calc = (calc * (100 - quality)) / 100; @@ -1287,7 +1281,7 @@ static void atk01_accuracycheck(void) // final calculation if ((Random() % 100 + 1) > calc) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && (gBattleMoves[move].target == MOVE_TARGET_BOTH || gBattleMoves[move].target == MOVE_TARGET_FOES_AND_ALLY)) gBattleCommunication[6] = 2; @@ -1332,7 +1326,7 @@ static void atk03_ppreduce(void) ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_PRESSURE, 0, 0); break; default: - if (gBankAttacker != gBankTarget && gBattleMons[gBankTarget].ability == ABILITY_PRESSURE) + if (gBankAttacker != gBankDefender && gBattleMons[gBankDefender].ability == ABILITY_PRESSURE) ppToDeduct++; break; } @@ -1386,7 +1380,7 @@ static void atk04_critcalc(void) if (critChance > 4) critChance = 4; - if ((gBattleMons[gBankTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankTarget].ability != ABILITY_SHELL_ARMOR) + if ((gBattleMons[gBankDefender].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankDefender].ability != ABILITY_SHELL_ARMOR) && !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT) && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) && !(Random() % sCriticalHitChance[critChance])) @@ -1399,10 +1393,10 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 sideStatus = gSideAffecting[GET_BANK_SIDE(gBankTarget)]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, + u16 sideStatus = gSideStatuses[GET_BANK_SIDE(gBankDefender)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankDefender], gCurrentMove, sideStatus, gDynamicBasePower, - gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget); + gBattleStruct->dynamicMoveType, gBankAttacker, gBankDefender); gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) @@ -1415,7 +1409,7 @@ static void atk05_damagecalc(void) void AI_CalcDmg(u8 bankAtk, u8 bankDef) { - u16 sideStatus = gSideAffecting[GET_BANK_SIDE(bankDef)]; + u16 sideStatus = gSideStatuses[GET_BANK_SIDE(bankDef)]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[bankAtk], &gBattleMons[bankDef], gCurrentMove, sideStatus, gDynamicBasePower, gBattleStruct->dynamicMoveType, bankAtk, bankDef); @@ -1437,26 +1431,26 @@ static void ModulateDmgByType(u8 multiplier) switch (multiplier) { case TYPE_MUL_NO_EFFECT: - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; - gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; - gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; break; case TYPE_MUL_NOT_EFFECTIVE: - if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) - gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE; + if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) + gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; else - gBattleMoveFlags |= MOVESTATUS_NOTVERYEFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } break; case TYPE_MUL_SUPER_EFFECTIVE: - if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) - gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; else - gBattleMoveFlags |= MOVESTATUS_SUPEREFFECTIVE; + gMoveResultFlags |= MOVE_RESULT_SUPER_EFFECTIVE; } break; } @@ -1482,14 +1476,14 @@ static void atk06_typecalc(void) gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBankDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; - gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gLastUsedAbility = gBattleMons[gBankDefender].ability; + gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); + gLastLandedMoves[gBankDefender] = 0; + gLastHitByType[gBankDefender] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } else { @@ -1497,7 +1491,7 @@ static void atk06_typecalc(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1505,29 +1499,29 @@ static void atk06_typecalc(void) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 && - gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 && + gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); } i += 3; } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 - && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + if (gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; - gBattleMoveFlags |= MOVESTATUS_MISSED; - gLastLandedMoves[gBankTarget] = 0; - gLastHitByType[gBankTarget] = 0; + gMoveResultFlags |= MOVE_RESULT_MISSED; + gLastLandedMoves[gBankDefender] = 0; + gLastHitByType[gBankDefender] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gProtectStructs[gBankAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; @@ -1544,11 +1538,11 @@ static void CheckWonderGuardAndLevitate(void) GET_MOVE_TYPE(gCurrentMove, moveType); - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBankDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { gLastUsedAbility = ABILITY_LEVITATE; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBankTarget, ABILITY_LEVITATE); + RecordAbilityBattle(gBankDefender, ABILITY_LEVITATE); return; } @@ -1556,7 +1550,7 @@ static void CheckWonderGuardAndLevitate(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1564,46 +1558,46 @@ static void CheckWonderGuardAndLevitate(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check no effect - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBankAttacker].targetNotAffected = 1; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 && - gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 && + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 && + gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBankAttacker].targetNotAffected = 1; } // check super effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) flags |= 1; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 + && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) flags |= 1; // check not very effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) flags |= 2; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 + && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) flags |= 2; } i += 3; } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2) + if (gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, ABILITY_WONDER_GUARD); + RecordAbilityBattle(gBankDefender, ABILITY_WONDER_GUARD); } } } @@ -1617,26 +1611,26 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) // same as Mo switch (multiplier) { case TYPE_MUL_NO_EFFECT: - *flags |= MOVESTATUS_NOTAFFECTED; - *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; - *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + *flags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE; break; case TYPE_MUL_NOT_EFFECTIVE: - if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT)) { - if (*flags & MOVESTATUS_SUPEREFFECTIVE) - *flags &= ~MOVESTATUS_SUPEREFFECTIVE; + if (*flags & MOVE_RESULT_SUPER_EFFECTIVE) + *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE; else - *flags |= MOVESTATUS_NOTVERYEFFECTIVE; + *flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } break; case TYPE_MUL_SUPER_EFFECTIVE: - if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT)) + if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT)) { - if (*flags & MOVESTATUS_NOTVERYEFFECTIVE) - *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE; + if (*flags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; else - *flags |= MOVESTATUS_SUPEREFFECTIVE; + *flags |= MOVE_RESULT_SUPER_EFFECTIVE; } break; } @@ -1662,7 +1656,7 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) if (gBattleMons[bankDef].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - flags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); + flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); } else { @@ -1690,12 +1684,12 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) } } - if (gBattleMons[bankDef].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_MISSED) + if (gBattleMons[bankDef].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) && AttacksThisTurn(bankAtk, move) == 2 - && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) { - flags |= MOVESTATUS_MISSED; + flags |= MOVE_RESULT_MISSED; } return flags; } @@ -1714,7 +1708,7 @@ u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility) if (targetAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED; + flags = MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE; } else { @@ -1738,9 +1732,9 @@ u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility) } } if (targetAbility == ABILITY_WONDER_GUARD - && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) - flags |= MOVESTATUS_NOTAFFECTED; + flags |= MOVE_RESULT_DOESNT_AFFECT_FOE; return flags; } @@ -1770,42 +1764,42 @@ static void atk07_adjustnormaldamage(void) ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBankDefender].holdEffect, quality = gEnigmaBerries[gBankDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); } - gStringBank = gBankTarget; + gStringBank = gBankDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBankTarget, holdEffect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemEffectBattle(gBankDefender, holdEffect); + gSpecialStatuses[gBankDefender].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankDefender].endured + && !gSpecialStatuses[gBankDefender].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBankDefender].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankTarget].focusBanded) + else if (gSpecialStatuses[gBankDefender].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; + gLastUsedItem = gBattleMons[gBankDefender].item; } END: @@ -1818,40 +1812,40 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBankDefender].holdEffect, quality = gEnigmaBerries[gBankDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); } - gStringBank = gBankTarget; + gStringBank = gBankDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBankTarget, holdEffect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemEffectBattle(gBankDefender, holdEffect); + gSpecialStatuses[gBankDefender].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) goto END; - if (!gProtectStructs[gBankTarget].endured && !gSpecialStatuses[gBankTarget].focusBanded) + if (!gProtectStructs[gBankDefender].endured && !gSpecialStatuses[gBankDefender].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBankDefender].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankTarget].focusBanded) + else if (gSpecialStatuses[gBankDefender].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; + gLastUsedItem = gBattleMons[gBankDefender].item; } END: @@ -1880,17 +1874,17 @@ static void atk09_attackanimation(void) gBattlescriptCurrInstr++; return; } - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { u8 multihit; gActiveBank = gBankAttacker; - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) multihit = gMultiHitCounter; else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) { - if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage) + if (gBattleMons[gBankDefender].hp <= gBattleMoveDamage) multihit = 1; else multihit = gMultiHitCounter; @@ -1923,7 +1917,7 @@ static void atk0B_healthbarupdate(void) if (gBattleExecBuffer) return; - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -1968,7 +1962,7 @@ static void atk0C_datahpupdate(void) else moveType = gBattleMoves[gCurrentMove].type; - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) @@ -2018,7 +2012,7 @@ static void atk0C_datahpupdate(void) if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) gTakenDmgBanks[gActiveBank] = gBankAttacker; else - gTakenDmgBanks[gActiveBank] = gBankTarget; + gTakenDmgBanks[gActiveBank] = gBankDefender; } if (gBattleMons[gActiveBank].hp > gBattleMoveDamage) @@ -2046,8 +2040,8 @@ static void atk0C_datahpupdate(void) } else { - gProtectStructs[gActiveBank].physicalBank = gBankTarget; - gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankTarget; + gProtectStructs[gActiveBank].physicalBank = gBankDefender; + gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankDefender; } } else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) @@ -2061,8 +2055,8 @@ static void atk0C_datahpupdate(void) } else { - gProtectStructs[gActiveBank].specialBank = gBankTarget; - gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankTarget; + gProtectStructs[gActiveBank].specialBank = gBankDefender; + gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankDefender; } } } @@ -2084,7 +2078,7 @@ static void atk0D_critmessage(void) { if (gBattleExecBuffer == 0) { - if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { PrepareStringBattle(STRINGID_CRITICALHIT, gBankAttacker); gBattleCommunication[MSG_DISPLAY] = 1; @@ -2098,38 +2092,38 @@ static void atk0E_effectivenesssound(void) if (gBattleExecBuffer) return; - gActiveBank = gBankTarget; - if (!(gBattleMoveFlags & MOVESTATUS_MISSED)) + gActiveBank = gBankDefender; + if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { - switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) + switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { - case MOVESTATUS_SUPEREFFECTIVE: + case MOVE_RESULT_SUPER_EFFECTIVE: EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); break; - case MOVESTATUS_NOTVERYEFFECTIVE: + case MOVE_RESULT_NOT_VERY_EFFECTIVE: EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); break; - case MOVESTATUS_NOTAFFECTED: - case MOVESTATUS_FAILED: + case MOVE_RESULT_DOESNT_AFFECT_FOE: + case MOVE_RESULT_FAILED: // no sound break; - case MOVESTATUS_ENDURED: - case MOVESTATUS_ONEHITKO: - case MOVESTATUS_HUNGON: + case MOVE_RESULT_FOE_ENDURED: + case MOVE_RESULT_ONE_HIT_KO: + case MOVE_RESULT_FOE_HUNG_ON: default: - if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) + if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); } - else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) + else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); } - else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) + else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { EmitPlaySE(0, SE_KOUKA_M); MarkBufferBankForExecution(gActiveBank); @@ -2147,7 +2141,7 @@ static void atk0F_resultmessage(void) if (gBattleExecBuffer) return; - if (gBattleMoveFlags & MOVESTATUS_MISSED && (!(gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) || gBattleCommunication[6] > 2)) + if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) { stringId = gMissStringIds[gBattleCommunication[6]]; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2155,64 +2149,64 @@ static void atk0F_resultmessage(void) else { gBattleCommunication[MSG_DISPLAY] = 1; - switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) + switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { - case MOVESTATUS_SUPEREFFECTIVE: + case MOVE_RESULT_SUPER_EFFECTIVE: stringId = STRINGID_SUPEREFFECTIVE; break; - case MOVESTATUS_NOTVERYEFFECTIVE: + case MOVE_RESULT_NOT_VERY_EFFECTIVE: stringId = STRINGID_NOTVERYEFFECTIVE; break; - case MOVESTATUS_ONEHITKO: + case MOVE_RESULT_ONE_HIT_KO: stringId = STRINGID_ONEHITKO; break; - case MOVESTATUS_ENDURED: + case MOVE_RESULT_FOE_ENDURED: stringId = STRINGID_PKMNENDUREDHIT; break; - case MOVESTATUS_FAILED: + case MOVE_RESULT_FAILED: stringId = STRINGID_BUTITFAILED; break; - case MOVESTATUS_NOTAFFECTED: + case MOVE_RESULT_DOESNT_AFFECT_FOE: stringId = STRINGID_ITDOESNTAFFECT; break; - case MOVESTATUS_HUNGON: - gLastUsedItem = gBattleMons[gBankTarget].item; - gStringBank = gBankTarget; - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + case MOVE_RESULT_FOE_HUNG_ON: + gLastUsedItem = gBattleMons[gBankDefender].item; + gStringBank = gBankDefender; + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; default: - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) { stringId = STRINGID_ITDOESNTAFFECT; } - else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO) + else if (gMoveResultFlags & MOVE_RESULT_ONE_HIT_KO) { - gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO); - gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE); - gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE); + gMoveResultFlags &= ~(MOVE_RESULT_ONE_HIT_KO); + gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE); + gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_OneHitKOMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_ENDURED) + else if (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED) { - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_EnduredMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_HUNGON) + else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { - gLastUsedItem = gBattleMons[gBankTarget].item; - gStringBank = gBankTarget; - gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); + gLastUsedItem = gBattleMons[gBankDefender].item; + gStringBank = gBankDefender; + gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; } - else if (gBattleMoveFlags & MOVESTATUS_FAILED) + else if (gMoveResultFlags & MOVE_RESULT_FAILED) { stringId = STRINGID_BUTITFAILED; } @@ -2305,7 +2299,7 @@ static void atk14_printselectionstringfromtable(void) u8 BankGetTurnOrder(u8 bank) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBanksByTurnOrder[i] == bank) break; @@ -2337,11 +2331,11 @@ void SetMoveEffect(bool8 primary, u8 certain) gEffectBank = gBankAttacker; // bank that effects get applied on gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_AFFECTS_USER); affectsUser = MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.bank = gBankTarget; // theoretically the attacker + gBattleScripting.bank = gBankDefender; // theoretically the attacker } else { - gEffectBank = gBankTarget; + gEffectBank = gBankDefender; gBattleScripting.bank = gBankAttacker; } @@ -2349,7 +2343,7 @@ void SetMoveEffect(bool8 primary, u8 certain) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) INCREMENT_RESET_RETURN - if (gSideAffecting[GET_BANK_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gSideStatuses[GET_BANK_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) INCREMENT_RESET_RETURN @@ -2365,21 +2359,21 @@ void SetMoveEffect(bool8 primary, u8 certain) { switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]) { - case STATUS_SLEEP: + case STATUS1_SLEEP: // check active uproar if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF) { for (gActiveBank = 0; - gActiveBank < gNoOfAllBanks && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); + gActiveBank < gBattleBanksCount && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); gActiveBank++) {} } else - gActiveBank = gNoOfAllBanks; + gActiveBank = gBattleBanksCount; if (gBattleMons[gEffectBank].status1) break; - if (gActiveBank != gNoOfAllBanks) + if (gActiveBank != gBattleBanksCount) break; if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) break; @@ -2389,7 +2383,7 @@ void SetMoveEffect(bool8 primary, u8 certain) CancelMultiTurnMoves(gEffectBank); statusChanged = TRUE; break; - case STATUS_POISON: + case STATUS1_POISON: if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { @@ -2436,7 +2430,7 @@ void SetMoveEffect(bool8 primary, u8 certain) statusChanged = TRUE; break; - case STATUS_BURN: + case STATUS1_BURN: if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { @@ -2478,7 +2472,7 @@ void SetMoveEffect(bool8 primary, u8 certain) statusChanged = TRUE; break; - case STATUS_FREEZE: + case STATUS1_FREEZE: if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) noSunCanFreeze = FALSE; if (gBattleMons[gEffectBank].type1 == TYPE_ICE) @@ -2495,7 +2489,7 @@ void SetMoveEffect(bool8 primary, u8 certain) CancelMultiTurnMoves(gEffectBank); statusChanged = TRUE; break; - case STATUS_PARALYSIS: + case STATUS1_PARALYSIS: if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER) { if (primary == TRUE || certain == MOVE_EFFECT_CERTAIN) @@ -2525,7 +2519,7 @@ void SetMoveEffect(bool8 primary, u8 certain) statusChanged = TRUE; break; - case STATUS_TOXIC_POISON: + case STATUS1_TOXIC_POISON: if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { gLastUsedAbility = ABILITY_IMMUNITY; @@ -2567,14 +2561,14 @@ void SetMoveEffect(bool8 primary, u8 certain) break; // It's redundant, because at this point we know the status1 value is 0. - gBattleMons[gEffectBank].status1 &= ~(STATUS_TOXIC_POISON); - gBattleMons[gEffectBank].status1 &= ~(STATUS_POISON); + gBattleMons[gEffectBank].status1 &= ~(STATUS1_TOXIC_POISON); + gBattleMons[gEffectBank].status1 &= ~(STATUS1_POISON); statusChanged = TRUE; break; } else { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; } break; } @@ -2582,7 +2576,7 @@ void SetMoveEffect(bool8 primary, u8 certain) { BattleScriptPush(gBattlescriptCurrInstr + 1); - if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP) + if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS1_SLEEP) gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2); else gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; @@ -2870,52 +2864,52 @@ void SetMoveEffect(bool8 primary, u8 certain) { gBattlescriptCurrInstr++; } - else if (gBattleMons[gBankTarget].item - && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBankDefender].item + && gBattleMons[gBankDefender].ability == ABILITY_STICKY_HOLD) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; - gLastUsedAbility = gBattleMons[gBankTarget].ability; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBankDefender].ability; + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } else if (gBattleMons[gBankAttacker].item != 0 - || gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBankTarget].item) - || gBattleMons[gBankTarget].item == 0) + || gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBankDefender].item) + || gBattleMons[gBankDefender].item == 0) { gBattlescriptCurrInstr++; } else { u16* changedItem = &gBattleStruct->changedItems[gBankAttacker]; - gLastUsedItem = *changedItem = gBattleMons[gBankTarget].item; - gBattleMons[gBankTarget].item = 0; + gLastUsedItem = *changedItem = gBattleMons[gBankDefender].item; + gBattleMons[gBankDefender].item = 0; gActiveBank = gBankAttacker; EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); MarkBufferBankForExecution(gBankAttacker); - gActiveBank = gBankTarget; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); - MarkBufferBankForExecution(gBankTarget); + gActiveBank = gBankDefender; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankDefender].item); + MarkBufferBankForExecution(gBankDefender); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 1) = 0; } } break; case MOVE_EFFECT_PREVENT_ESCAPE: - gBattleMons[gBankTarget].status2 |= STATUS2_ESCAPE_PREVENTION; - gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker; + gBattleMons[gBankDefender].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[gBankDefender].bankPreventingEscape = gBankAttacker; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_NIGHTMARE: - gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE; + gBattleMons[gBankDefender].status2 |= STATUS2_NIGHTMARE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_ALL_STATS_UP: @@ -2927,15 +2921,15 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr = BattleScript_RapidSpinAway; break; case MOVE_EFFECT_REMOVE_PARALYSIS: // Smelling salts - if (!(gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS)) + if (!(gBattleMons[gBankDefender].status1 & STATUS1_PARALYSIS)) { gBattlescriptCurrInstr++; } else { - gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS); + gBattleMons[gBankDefender].status1 &= ~(STATUS1_PARALYSIS); - gActiveBank = gBankTarget; + gActiveBank = gBankDefender; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); @@ -3022,14 +3016,14 @@ static void atk15_seteffectwithchance(void) percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_CERTAIN); SetMoveEffect(0, MOVE_EFFECT_CERTAIN); } else if (Random() % 100 < percentChance && gBattleCommunication[MOVE_EFFECT_BYTE] - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (percentChance >= 100) SetMoveEffect(0, MOVE_EFFECT_CERTAIN); @@ -3082,7 +3076,7 @@ static void atk19_tryfaintmon(void) BattleScriptPop(); gBattlescriptCurrInstr = BS_ptr; - gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + gSideStatuses[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); } else { @@ -3096,12 +3090,12 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) { gActiveBank = gBankAttacker; - bank = gBankTarget; + bank = gBankDefender; BS_ptr = BattleScript_FaintAttacker; } else { - gActiveBank = gBankTarget; + gActiveBank = gBankDefender; bank = gBankAttacker; BS_ptr = BattleScript_FaintTarget; } @@ -3131,9 +3125,9 @@ static void atk19_tryfaintmon(void) gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } - if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE) + if ((gStatuses3[gBankDefender] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) + && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender) && gBattleMons[gBankAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { @@ -3265,12 +3259,12 @@ static void atk1F_jumpifsideaffecting(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) side = GET_BANK_SIDE(gBankAttacker); else - side = GET_BANK_SIDE(gBankTarget); + side = GET_BANK_SIDE(gBankDefender); flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2); jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4); - if (gSideAffecting[side] & flags) + if (gSideStatuses[side] & flags) gBattlescriptCurrInstr = jumpPtr; else gBattlescriptCurrInstr += 8; @@ -3660,7 +3654,7 @@ static void atk24(void) } if (HP_count == 0) - gBattleOutcome |= BATTLE_LOST; + gBattleOutcome |= B_OUTCOME_LOST; for (HP_count = 0, i = 0; i < 6; i++) { @@ -3672,7 +3666,7 @@ static void atk24(void) } if (HP_count == 0) - gBattleOutcome |= BATTLE_WON; + gBattleOutcome |= B_OUTCOME_WON; if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) { @@ -3680,13 +3674,13 @@ static void atk24(void) s32 foundOpponent; // Impossible to decompile loops. - for (foundPlayer = 0, i = 0; i < gNoOfAllBanks; i += 2) + for (foundPlayer = 0, i = 0; i < gBattleBanksCount; i += 2) { if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40) foundPlayer++; } - for (foundOpponent = 0, i = 1; i < gNoOfAllBanks; i += 2) + for (foundOpponent = 0, i = 1; i < gBattleBanksCount; i += 2) { if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40) foundOpponent++; @@ -3895,7 +3889,7 @@ static void atk24(void) beq _0804AF1A\n\ movs r3, 0\n\ movs r5, 0\n\ - ldr r0, =gNoOfAllBanks\n\ + ldr r0, =gBattleBanksCount\n\ ldrb r1, [r0]\n\ mov r12, r0\n\ ldr r7, =gBattlescriptCurrInstr\n\ @@ -4010,7 +4004,7 @@ static void atk24(void) static void MoveValuesCleanUp(void) { - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gBattleScripting.dmgMultiplier = 1; gCritMultiplier = 1; gBattleCommunication[MOVE_EFFECT_BYTE] = 0; @@ -4329,7 +4323,7 @@ static void atk3A_waitstate(void) static void atk3B_healthbar_update(void) { if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gActiveBank = gBankTarget; + gActiveBank = gBankDefender; else gActiveBank = gBankAttacker; @@ -4348,7 +4342,7 @@ static void atk3D_end(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) sub_81A5718(gBankAttacker); - gBattleMoveFlags = 0; + gMoveResultFlags = 0; gActiveBank = 0; gCurrentActionFuncId = 0xB; } @@ -4884,13 +4878,13 @@ static void atk49_moveend(void) switch (gBattleScripting.atk49_state) { case 0: // rage check - if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE - && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget - && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget) - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) + if (gBattleMons[gBankDefender].status2 & STATUS2_RAGE + && gBattleMons[gBankDefender].hp != 0 && gBankAttacker != gBankDefender + && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED + && gBattleMoves[gCurrentMove].power && gBattleMons[gBankDefender].statStages[STAT_STAGE_ATK] <= 0xB) { - gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; + gBattleMons[gBankDefender].statStages[STAT_STAGE_ATK]++; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = TRUE; @@ -4898,14 +4892,14 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 1: // defrosting check - if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE - && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget - && gSpecialStatuses[gBankTarget].moveturnLostHP_special - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && moveType == TYPE_FIRE) - { - gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); - gActiveBank = gBankTarget; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); + if (gBattleMons[gBankDefender].status1 & STATUS1_FREEZE + && gBattleMons[gBankDefender].hp != 0 && gBankAttacker != gBankDefender + && gSpecialStatuses[gBankDefender].moveturnLostHP_special + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE) + { + gBattleMons[gBankDefender].status1 &= ~(STATUS1_FREEZE); + gActiveBank = gBankDefender; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankDefender].status1); MarkBufferBankForExecution(gActiveBank); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; @@ -4914,12 +4908,12 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 2: // target synchronize - if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankDefender, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; case 3: // contact abilities - if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankDefender, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4938,7 +4932,7 @@ static void atk49_moveend(void) if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND || gChosenMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) goto LOOP; - if (gChosenMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) + if (gChosenMove == MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_FAILED)) { gBattleScripting.atk49_state++; break; @@ -4958,7 +4952,7 @@ static void atk49_moveend(void) } break; case 7: // changed held items - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { u16* changedItem = &gBattleStruct->changedItems[i]; if (*changedItem != 0) @@ -4993,7 +4987,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 9: // make attacker sprite visible - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || !(gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE)) || WasUnableToUseMove(gBankAttacker)) { @@ -5008,20 +5002,20 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 10: // make target sprite visible - if (!gSpecialStatuses[gBankTarget].restoredBankSprite && gBankTarget < gNoOfAllBanks - && !(gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)) + if (!gSpecialStatuses[gBankDefender].restoredBankSprite && gBankDefender < gBattleBanksCount + && !(gStatuses3[gBankDefender] & STATUS3_SEMI_INVULNERABLE)) { - gActiveBank = gBankTarget; + gActiveBank = gBankDefender; EmitSpriteInvisibility(0, FALSE); MarkBufferBankForExecution(gActiveBank); - gStatuses3[gBankTarget] &= ~(STATUS3_SEMI_INVULNERABLE); + gStatuses3[gBankDefender] &= ~(STATUS3_SEMI_INVULNERABLE); gBattleScripting.atk49_state++; return; } gBattleScripting.atk49_state++; break; case 13: // update substitute - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gDisableStructs[i].substituteHP == 0) gBattleMons[i].status2 &= ~(STATUS2_SUBSTITUTE); @@ -5032,8 +5026,8 @@ static void atk49_moveend(void) if (gHitMarker & HITMARKER_PURSUIT_TRAP) { gActiveBank = gBankAttacker; - gBankAttacker = gBankTarget; - gBankTarget = gActiveBank; + gBankAttacker = gBankDefender; + gBankDefender = gActiveBank; gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) @@ -5055,24 +5049,24 @@ static void atk49_moveend(void) gLastResultingMoves[gBankAttacker] = 0xFFFF; } - if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) - gLastHitBy[gBankTarget] = gBankAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gBankDefender))) + gLastHitBy[gBankDefender] = gBankAttacker; - if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (gChosenMove == 0xFFFF) { - gLastLandedMoves[gBankTarget] = gChosenMove; + gLastLandedMoves[gBankDefender] = gChosenMove; } else { - gLastLandedMoves[gBankTarget] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankTarget]); + gLastLandedMoves[gBankDefender] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankDefender]); } } else { - gLastLandedMoves[gBankTarget] = 0xFFFF; + gLastLandedMoves[gBankDefender] = 0xFFFF; } } gBattleScripting.atk49_state++; @@ -5080,19 +5074,19 @@ static void atk49_moveend(void) case 15: // mirror move if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS - && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget)) - && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) + && gBankAttacker != gBankDefender && !(gHitMarker & HITMARKER_FAINTED(gBankDefender)) + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gChosenMove; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gChosenMove >> 8; + *(gBattleStruct->mirrorMoves + gBankDefender * 2 + 0) = gChosenMove; + *(gBattleStruct->mirrorMoves + gBankDefender * 2 + 1) = gChosenMove >> 8; - target = gBankTarget; + target = gBankDefender; attacker = gBankAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove; - target = gBankTarget; + target = gBankDefender; attacker = gBankAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8; } @@ -5103,10 +5097,10 @@ static void atk49_moveend(void) && !gProtectStructs[gBankAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 bank = GetBankByIdentity(GetBankPosition(gBankTarget) ^ BIT_MON); + u8 bank = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gBankDefender))); if (gBattleMons[bank].hp != 0) { - gBankTarget = bank; + gBankDefender = bank; gHitMarker |= HITMARKER_NO_ATTACKSTRING; gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); @@ -5142,13 +5136,13 @@ static void atk4A_typecalc2(void) s32 i = 0; u8 moveType = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBankDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; - gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gLastLandedMoves[gBankTarget] = 0; + gLastUsedAbility = gBattleMons[gBankDefender].ability; + gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); + gLastLandedMoves[gBankDefender] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } else { @@ -5156,7 +5150,7 @@ static void atk4A_typecalc2(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) { break; } @@ -5170,42 +5164,42 @@ static void atk4A_typecalc2(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1) { if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) { - flags |= MOVESTATUS_NOTVERYEFFECTIVE; + flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) { - flags |= MOVESTATUS_SUPEREFFECTIVE; + flags |= MOVE_RESULT_SUPER_EFFECTIVE; } } // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2) { - if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { - gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED; + gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 + && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) { - flags |= MOVESTATUS_NOTVERYEFFECTIVE; + flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 - && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 + && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) { - flags |= MOVESTATUS_SUPEREFFECTIVE; + flags |= MOVE_RESULT_SUPER_EFFECTIVE; } } } @@ -5213,19 +5207,19 @@ static void atk4A_typecalc2(void) } } - if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD - && !(flags & MOVESTATUS_NOEFFECT) + if (gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD + && !(flags & MOVE_RESULT_NO_EFFECT) && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 - && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) + && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; - gBattleMoveFlags |= MOVESTATUS_MISSED; - gLastLandedMoves[gBankTarget] = 0; + gMoveResultFlags |= MOVE_RESULT_MISSED; + gLastLandedMoves[gBankDefender] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } - if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) + if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gProtectStructs[gBankAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; @@ -5298,7 +5292,7 @@ static void atk4D_switchindataupdate(void) SwitchInClearSetData(); if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp - && gBattleMons[gActiveBank].hp != 0 && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + && gBattleMons[gActiveBank].hp != 0 && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)) { gBattleStruct->field_92 |= gBitTable[gActiveBank]; } @@ -5454,10 +5448,10 @@ static void atk4F_jumpifcantswitch(void) { if (GetBankSide(gActiveBank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + r7 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + compareVar = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); else compareVar = r7; @@ -5465,10 +5459,10 @@ static void atk4F_jumpifcantswitch(void) } else { - r7 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + r7 = GetBankByPosition(B_POSITION_PLAYER_LEFT); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + compareVar = GetBankByPosition(B_POSITION_PLAYER_RIGHT); else compareVar = r7; @@ -5515,7 +5509,7 @@ static void atk50_openpartyscreen(void) { if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) { @@ -5724,12 +5718,12 @@ static void atk50_openpartyscreen(void) { if (gBitTable[gBank1] & hitmarkerFaintBits) break; - if (gBank1 >= gNoOfAllBanks) + if (gBank1 >= gBattleBanksCount) break; gBank1++; } - if (gBank1 == gNoOfAllBanks) + if (gBank1 == gBattleBanksCount) gBattlescriptCurrInstr = jumpPtr; } else @@ -5768,7 +5762,7 @@ static void atk50_openpartyscreen(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { if (gActiveBank != bank) { @@ -5779,7 +5773,7 @@ static void atk50_openpartyscreen(void) } else { - gActiveBank = GetBankByIdentity(GetBankPosition(bank) ^ BIT_SIDE); + gActiveBank = GetBankByPosition(GetBankPosition(bank) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[gActiveBank]) gActiveBank ^= BIT_MON; @@ -5801,7 +5795,7 @@ static void atk51_switchhandleorder(void) switch (gBattlescriptCurrInstr[2]) { case 0: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleBufferB[i][0] == 0x22) { @@ -5867,15 +5861,15 @@ static void atk52_switchineffects(void) gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); gSpecialStatuses[gActiveBank].flag40 = 0; - if (!(gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES_DAMAGED) - && (gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES) + if (!(gSideStatuses[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES_DAMAGED) + && (gSideStatuses[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES) && gBattleMons[gActiveBank].type1 != TYPE_FLYING && gBattleMons[gActiveBank].type2 != TYPE_FLYING && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) { u8 spikesDmg; - gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED; + gSideStatuses[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED; gBattleMons[gActiveBank].status2 &= ~(STATUS2_DESTINY_BOND); gHitMarker &= ~(HITMARKER_DESTINYBOND); @@ -5905,15 +5899,15 @@ static void atk52_switchineffects(void) if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBank, 0, 0, 0) == 0 && ItemBattleEffects(0, gActiveBank, 0) == 0) { - gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + gSideStatuses[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBanksByTurnOrder[i] == gActiveBank) gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER; } - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { u16* hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(i)]; *hpOnSwitchout = gBattleMons[i].hp; @@ -5928,7 +5922,7 @@ static void atk52_switchineffects(void) { if (hitmarkerFaintBits & gBitTable[gBank1] && !(gAbsentBankFlags & gBitTable[gBank1])) break; - if (gBank1 >= gNoOfAllBanks) + if (gBank1 >= gBattleBanksCount) break; gBank1++; } @@ -5940,7 +5934,7 @@ static void atk52_switchineffects(void) static void atk53_trainerslidein(void) { - gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); + gActiveBank = GetBankByPosition(gBattlescriptCurrInstr[1]); EmitTrainerSlide(0); MarkBufferBankForExecution(gActiveBank); @@ -5976,7 +5970,7 @@ static void atk56_playfaintcry(void) static void atk57(void) { - gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); EmitCmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); @@ -6011,7 +6005,7 @@ static void atk59_handlelearnnewmove(void) } else { - gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) @@ -6020,7 +6014,7 @@ static void atk59_handlelearnnewmove(void) } if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gActiveBank = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + gActiveBank = GetBankByPosition(B_POSITION_PLAYER_RIGHT); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) { @@ -6202,7 +6196,7 @@ static void atk5C_hitanimation(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr += 2; } @@ -6318,8 +6312,8 @@ static void atk5E(void) static void atk5F(void) { gActiveBank = gBankAttacker; - gBankAttacker = gBankTarget; - gBankTarget = gActiveBank; + gBankAttacker = gBankDefender; + gBankDefender = gActiveBank; if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -6494,7 +6488,7 @@ static void atk68_cancelallactions(void) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER; gBattlescriptCurrInstr++; @@ -6504,42 +6498,42 @@ static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no ra { u8 holdEffect, quality; - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBankDefender].holdEffect, quality = gEnigmaBerries[gBankDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); } - gStringBank = gBankTarget; + gStringBank = gBankDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBankTarget, holdEffect); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemEffectBattle(gBankDefender, holdEffect); + gSpecialStatuses[gBankDefender].focusBanded = 1; } - if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured - && !gSpecialStatuses[gBankTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankDefender].endured + && !gSpecialStatuses[gBankDefender].focusBanded) goto END; - if (gBattleMons[gBankTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBankDefender].endured) { - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankTarget].focusBanded) + else if (gSpecialStatuses[gBankDefender].focusBanded) { - gBattleMoveFlags |= MOVESTATUS_HUNGON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; + gLastUsedItem = gBattleMons[gBankDefender].item; } END: @@ -6851,7 +6845,7 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr++; } @@ -6964,18 +6958,18 @@ static void atk76_various(void) CancelMultiTurnMoves(gActiveBank); break; case VARIOUS_SET_MAGIC_COAT_TARGET: - gBankAttacker = gBankTarget; + gBankAttacker = gBankDefender; side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) - gBankTarget = gSideTimers[side].followmeTarget; + gBankDefender = gSideTimers[side].followmeTarget; else - gBankTarget = gActiveBank; + gBankDefender = gActiveBank; break; case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBankDefender = GetMoveTarget(gCurrentMove, 0); break; case 4: if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) @@ -7023,7 +7017,7 @@ static void atk76_various(void) if (!(gBattleStruct->field_92 & gBitTable[gActiveBank]) && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp && gBattleMons[gActiveBank].hp != 0 - && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)) { gBattleStruct->field_92 |= gBitTable[gActiveBank]; gBattleCommunication[0] = 1; @@ -7092,7 +7086,7 @@ static void atk76_various(void) } break; case VARIOUS_RETURN_OPPONENT_MON2: - if (gNoOfAllBanks > 3) + if (gBattleBanksCount > 3) { gActiveBank = 3; if (gBattleMons[gActiveBank].hp != 0) @@ -7117,9 +7111,9 @@ static void atk76_various(void) break; case VARIOUS_SET_TELEPORT_OUTCOME: if (GetBankSide(gActiveBank) == SIDE_PLAYER) - gBattleOutcome = BATTLE_PLAYER_TELEPORTED; + gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; else - gBattleOutcome = BATTLE_OPPONENT_TELEPORTED; + gBattleOutcome = B_OUTCOME_POKE_TELEPORTED; break; case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE); @@ -7138,7 +7132,7 @@ static void atk77_setprotectlike(void) // protect and endure if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) gDisableStructs[gBankAttacker].protectUses = 0; - if (gCurrentTurnActionNumber == (gNoOfAllBanks - 1)) + if (gCurrentTurnActionNumber == (gBattleBanksCount - 1)) notLastTurn = FALSE; if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] >= Random() && notLastTurn) @@ -7159,7 +7153,7 @@ static void atk77_setprotectlike(void) // protect and endure { gDisableStructs[gBankAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; } gBattlescriptCurrInstr++; @@ -7170,13 +7164,13 @@ static void atk78_faintifabilitynotdamp(void) if (gBattleExecBuffer) return; - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) { - if (gBattleMons[gBankTarget].ability == ABILITY_DAMP) + if (gBattleMons[gBankDefender].ability == ABILITY_DAMP) break; } - if (gBankTarget == gNoOfAllBanks) + if (gBankDefender == gBattleBanksCount) { gActiveBank = gBankAttacker; gBattleMoveDamage = gBattleMons[gActiveBank].hp; @@ -7184,18 +7178,18 @@ static void atk78_faintifabilitynotdamp(void) MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr++; - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) { - if (gBankTarget == gBankAttacker) + if (gBankDefender == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBankFlags & gBitTable[gBankDefender])) break; } } else { gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(gBankTarget, gBattleMons[gBankTarget].ability); + RecordAbilityBattle(gBankDefender, gBattleMons[gBankDefender].ability); gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } @@ -7219,15 +7213,15 @@ static void atk7A_jumpifnexttargetvalid(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (gBankTarget++; ; gBankTarget++) + for (gBankDefender++; ; gBankDefender++) { - if (gBankTarget == gBankAttacker) + if (gBankDefender == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBankFlags & gBitTable[gBankDefender])) break; } - if (gBankTarget >= gNoOfAllBanks) + if (gBankDefender >= gBattleBanksCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jumpPtr; @@ -7243,14 +7237,14 @@ static void atk7B_tryhealhalfhealth(void) const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattlescriptCurrInstr[5] == BS_GET_ATTACKER) - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBankDefender].hp == gBattleMons[gBankDefender].maxHP) gBattlescriptCurrInstr = failPtr; else gBattlescriptCurrInstr += 6; @@ -7266,7 +7260,7 @@ static void atk7C_trymirrormove(void) for (i = 0; i < 3; i++) movesArray[i] = 0; - for (validMovesCount = 0, i = 0; i < gNoOfAllBanks; i++) + for (validMovesCount = 0, i = 0; i < gBattleBanksCount; i++) { if (i != gBankAttacker) { @@ -7288,7 +7282,7 @@ static void atk7C_trymirrormove(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = move; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBankDefender = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (validMovesCount) @@ -7296,7 +7290,7 @@ static void atk7C_trymirrormove(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); i = Random() % validMovesCount; gCurrentMove = movesArray[i]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBankDefender = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else @@ -7310,7 +7304,7 @@ static void atk7D_setrain(void) { if (gBattleWeather & WEATHER_RAIN_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -7324,14 +7318,14 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_REFLECT) + if (gSideStatuses[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_REFLECT) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_REFLECT; + gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_REFLECT; gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectTimer = 5; gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectBank = gBankAttacker; @@ -7345,20 +7339,20 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBankDefender] & STATUS3_LEECHSEED) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS) + else if (gBattleMons[gBankDefender].type1 == TYPE_GRASS || gBattleMons[gBankDefender].type2 == TYPE_GRASS) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else { - gStatuses3[gBankTarget] |= gBankAttacker; - gStatuses3[gBankTarget] |= STATUS3_LEECHSEED; + gStatuses3[gBankDefender] |= gBankAttacker; + gStatuses3[gBankDefender] |= STATUS3_LEECHSEED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7376,8 +7370,8 @@ static void atk80_manipulatedamage(void) gBattleMoveDamage /= 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gBankTarget].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + if ((gBattleMons[gBankDefender].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 2; break; case ATK80_DMG_DOUBLED: gBattleMoveDamage *= 2; @@ -7390,21 +7384,21 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - gActiveBank = gBankTarget = gBankAttacker; - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); + gActiveBank = gBankDefender = gBankAttacker; + gBattleMoveDamage = gBattleMons[gBankDefender].maxHP * (-1); - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBankDefender].hp == gBattleMons[gBankDefender].maxHP) { gBattlescriptCurrInstr = failJump; } else { - if (gBattleMons[gBankTarget].status1 & ((u8)(~STATUS_SLEEP))) + if (gBattleMons[gBankDefender].status1 & ((u8)(~STATUS1_SLEEP))) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gBankTarget].status1 = 3; + gBattleMons[gBankDefender].status1 = 3; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 5; @@ -7430,16 +7424,16 @@ bool8 UproarWakeUpCheck(u8 bank) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) continue; gBattleScripting.bank = i; - if (gBankTarget == 0xFF) - gBankTarget = i; - else if (gBankTarget == i) + if (gBankDefender == 0xFF) + gBankDefender = i; + else if (gBankDefender == i) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -7447,7 +7441,7 @@ bool8 UproarWakeUpCheck(u8 bank) break; } - if (i == gNoOfAllBanks) + if (i == gBattleBanksCount) return FALSE; else return TRUE; @@ -7457,17 +7451,17 @@ static void atk84_jumpifcantmakeasleep(void) { const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (UproarWakeUpCheck(gBankTarget)) + if (UproarWakeUpCheck(gBankDefender)) { gBattlescriptCurrInstr = jumpPtr; } - else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA - || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT) + else if (gBattleMons[gBankDefender].ability == ABILITY_INSOMNIA + || gBattleMons[gBankDefender].ability == ABILITY_VITAL_SPIRIT) { - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gLastUsedAbility = gBattleMons[gBankDefender].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattlescriptCurrInstr = jumpPtr; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } else { @@ -7479,7 +7473,7 @@ static void atk85_stockpile(void) { if (gDisableStructs[gBankAttacker].stockpileCounter == 3) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -7504,9 +7498,9 @@ static void atk86_stockpiletobasedamage(void) { if (gBattleCommunication[6] != 1) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GET_BANK_SIDE(gBankTarget)], 0, - 0, gBankAttacker, gBankTarget) + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankDefender], gCurrentMove, + gSideStatuses[GET_BANK_SIDE(gBankDefender)], 0, + 0, gBankAttacker, gBankDefender) * gDisableStructs[gBankAttacker].stockpileCounter; gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter; @@ -7532,7 +7526,7 @@ static void atk87_stockpiletohpheal(void) { gDisableStructs[gBankAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jumpPtr; - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -7546,7 +7540,7 @@ static void atk87_stockpiletohpheal(void) gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter; gDisableStructs[gBankAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; } } @@ -7568,7 +7562,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (flags & MOVE_EFFECT_AFFECTS_USER) gActiveBank = gBankAttacker; else - gActiveBank = gBankTarget; + gActiveBank = gBankDefender; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -7684,7 +7678,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBank].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBankDefender == gActiveBank); } } @@ -7711,7 +7705,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBank].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBankDefender == gActiveBank); } gBattleMons[gActiveBank].statStages[statId] += statValue; @@ -7721,7 +7715,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) gBattleMons[gActiveBank].statStages[statId] = 0xC; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR) - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_CHANGE_BS_PTR)) return STAT_CHANGE_DIDNT_WORK; @@ -7740,7 +7734,7 @@ static void atk8A_normalisebuffs(void) // haze { s32 i, j; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { for (j = 0; j < BATTLE_STATS_NO; j++) gBattleMons[i].statStages[j] = 6; @@ -7794,19 +7788,19 @@ static void atk8E_initmultihitstring(void) static bool8 TryDoForceSwitchOut(void) { - if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) { - *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; + *(gBattleStruct->field_58 + gBankDefender) = gBattlePartyID[gBankDefender]; } else { u16 random = Random() & 0xFF; - if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4)) + if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankDefender].level) >> 8) + 1) <= (gBattleMons[gBankDefender].level / 4)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); return FALSE; } - *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; + *(gBattleStruct->field_58 + gBankDefender) = gBattlePartyID[gBankDefender]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; @@ -7833,7 +7827,7 @@ static void atk8F_forcerandomswitch(void) if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { - if (GetBankSide(gBankTarget) == SIDE_PLAYER) + if (GetBankSide(gBankDefender) == SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -7842,7 +7836,7 @@ static void atk8F_forcerandomswitch(void) || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) { - if ((gBankTarget & BIT_MON) != 0) + if ((gBankDefender & BIT_MON) != 0) { firstMonId = 3; lastMonId = 6; @@ -7854,13 +7848,13 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBankTarget]; - bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBankDefender]; + bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; } else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) { - if (sub_806D82C(GetBankMultiplayerId(gBankTarget)) == 1) + if (sub_806D82C(GetBankMultiplayerId(gBankDefender)) == 1) { firstMonId = 3; lastMonId = 6; @@ -7872,12 +7866,12 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBankTarget]; - bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBankDefender]; + bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (GetBankSide(gBankTarget) == SIDE_PLAYER) + if (GetBankSide(gBankDefender) == SIDE_PLAYER) { firstMonId = 0; lastMonId = 6; @@ -7886,7 +7880,7 @@ static void atk8F_forcerandomswitch(void) } else { - if ((gBankTarget & BIT_MON) != 0) + if ((gBankDefender & BIT_MON) != 0) { firstMonId = 3; lastMonId = 6; @@ -7899,8 +7893,8 @@ static void atk8F_forcerandomswitch(void) monsCount = 3; minNeeded = 1; } - bank2PartyId = gBattlePartyID[gBankTarget]; - bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBankDefender]; + bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7908,8 +7902,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 2; - bank2PartyId = gBattlePartyID[gBankTarget]; - bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBankDefender]; + bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; } else { @@ -7917,8 +7911,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBankTarget]; // there is only one pokemon out in single battles - bank1PartyId = gBattlePartyID[gBankTarget]; + bank2PartyId = gBattlePartyID[gBankDefender]; // there is only one pokemon out in single battles + bank1PartyId = gBattlePartyID[gBankDefender]; } for (i = firstMonId; i < lastMonId; i++) @@ -7950,22 +7944,22 @@ static void atk8F_forcerandomswitch(void) || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE || GetMonData(&party[i], MON_DATA_HP) == 0); } - *(gBattleStruct->monToSwitchIntoId + gBankTarget) = i; + *(gBattleStruct->monToSwitchIntoId + gBankDefender) = i; if (!sub_81B1250()) - sub_803BDA0(gBankTarget); + sub_803BDA0(gBankDefender); if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - sub_81B8E80(gBankTarget, i, 0); - sub_81B8E80(gBankTarget ^ BIT_MON, i, 1); + sub_81B8E80(gBankDefender, i, 0); + sub_81B8E80(gBankDefender ^ BIT_MON, i, 1); } if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) - sub_80571DC(gBankTarget, i); + sub_80571DC(gBankDefender, i); } } else @@ -8058,14 +8052,14 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_LIGHTSCREEN) + if (gSideStatuses[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_LIGHTSCREEN) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_LIGHTSCREEN; + gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_LIGHTSCREEN; gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenTimer = 5; gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenBank = gBankAttacker; @@ -8082,80 +8076,80 @@ static void atk93_tryKO(void) { u8 holdEffect, param; - if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankTarget].holdEffect; - param = gEnigmaBerries[gBankTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBankDefender].holdEffect; + param = gEnigmaBerries[gBankDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item); - param = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); + param = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); } - gStringBank = gBankTarget; + gStringBank = gBankDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param) { - RecordItemEffectBattle(gBankTarget, HOLD_EFFECT_FOCUS_BAND); - gSpecialStatuses[gBankTarget].focusBanded = 1; + RecordItemEffectBattle(gBankDefender, HOLD_EFFECT_FOCUS_BAND); + gSpecialStatuses[gBankDefender].focusBanded = 1; } - if (gBattleMons[gBankTarget].ability == ABILITY_STURDY) + if (gBattleMons[gBankDefender].ability == ABILITY_STURDY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO; - RecordAbilityBattle(gBankTarget, ABILITY_STURDY); + RecordAbilityBattle(gBankDefender, ABILITY_STURDY); } else { u16 chance; - if (!(gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS)) + if (!(gStatuses3[gBankDefender] & STATUS3_ALWAYS_HITS)) { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankDefender].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) chance = TRUE; else chance = FALSE; } - else if (gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker - && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + else if (gDisableStructs[gBankDefender].bankWithSureHit == gBankAttacker + && gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) { chance = TRUE; } else { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankDefender].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) chance = TRUE; else chance = FALSE; } if (chance) { - if (gProtectStructs[gBankTarget].endured) + if (gProtectStructs[gBankDefender].endured) { - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; - gBattleMoveFlags |= MOVESTATUS_ENDURED; + gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankTarget].focusBanded) + else if (gSpecialStatuses[gBankDefender].focusBanded) { - gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1; - gBattleMoveFlags |= MOVESTATUS_HUNGON; - gLastUsedItem = gBattleMons[gBankTarget].item; + gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; + gLastUsedItem = gBattleMons[gBankDefender].item; } else { - gBattleMoveDamage = gBattleMons[gBankTarget].hp; - gBattleMoveFlags |= MOVESTATUS_ONEHITKO; + gBattleMoveDamage = gBattleMons[gBankDefender].hp; + gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO; } gBattlescriptCurrInstr += 5; } else { - gBattleMoveFlags |= MOVESTATUS_MISSED; - if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) + gMoveResultFlags |= MOVE_RESULT_MISSED; + if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8166,7 +8160,7 @@ static void atk93_tryKO(void) static void atk94_damagetohalftargethp(void) // super fang { - gBattleMoveDamage = gBattleMons[gBankTarget].hp / 2; + gBattleMoveDamage = gBattleMons[gBankDefender].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -8177,7 +8171,7 @@ static void atk95_setsandstorm(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -8253,10 +8247,10 @@ static void atk97_tryinfatuating(void) else monAttacker = &gEnemyParty[gBattlePartyID[gBankAttacker]]; - if (GetBankSide(gBankTarget) == SIDE_PLAYER) - monTarget = &gPlayerParty[gBattlePartyID[gBankTarget]]; + if (GetBankSide(gBankDefender) == SIDE_PLAYER) + monTarget = &gPlayerParty[gBattlePartyID[gBankDefender]]; else - monTarget = &gEnemyParty[gBattlePartyID[gBankTarget]]; + monTarget = &gEnemyParty[gBattlePartyID[gBankDefender]]; speciesAttacker = GetMonData(monAttacker, MON_DATA_SPECIES); personalityAttacker = GetMonData(monAttacker, MON_DATA_PERSONALITY); @@ -8264,16 +8258,16 @@ static void atk97_tryinfatuating(void) speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES); personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY); - if (gBattleMons[gBankTarget].ability == ABILITY_OBLIVIOUS) + if (gBattleMons[gBankDefender].ability == ABILITY_OBLIVIOUS) { gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; gLastUsedAbility = ABILITY_OBLIVIOUS; - RecordAbilityBattle(gBankTarget, ABILITY_OBLIVIOUS); + RecordAbilityBattle(gBankDefender, ABILITY_OBLIVIOUS); } else { if (GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) - || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION + || gBattleMons[gBankDefender].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS || GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS) { @@ -8281,7 +8275,7 @@ static void atk97_tryinfatuating(void) } else { - gBattleMons[gBankTarget].status2 |= STATUS2_INFATUATED_WITH(gBankAttacker); + gBattleMons[gBankDefender].status2 |= STATUS2_INFATUATED_WITH(gBankAttacker); gBattlescriptCurrInstr += 5; } } @@ -8309,7 +8303,7 @@ static void atk98_updatestatusicon(void) } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); if (!(gAbsentBankFlags & gBitTable[gActiveBank])) { EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); @@ -8324,14 +8318,14 @@ static void atk99_setmist(void) { if (gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer = 5; gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistBank = gBankAttacker; - gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_MIST; + gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8341,7 +8335,7 @@ static void atk9A_setfocusenergy(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -8356,10 +8350,10 @@ static void atk9B_transformdataexecution(void) { gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; - if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED - || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBankDefender].status2 & STATUS2_TRANSFORMED + || gStatuses3[gBankDefender] & STATUS3_SEMI_INVULNERABLE) { - gBattleMoveFlags |= MOVESTATUS_FAILED; + gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else @@ -8370,13 +8364,13 @@ static void atk9B_transformdataexecution(void) gBattleMons[gBankAttacker].status2 |= STATUS2_TRANSFORMED; gDisableStructs[gBankAttacker].disabledMove = 0; gDisableStructs[gBankAttacker].disableTimer1 = 0; - gDisableStructs[gBankAttacker].transformedMonPersonality = gBattleMons[gBankTarget].personality; + gDisableStructs[gBankAttacker].transformedMonPersonality = gBattleMons[gBankDefender].personality; gDisableStructs[gBankAttacker].unk18_b = 0; - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankTarget].species) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankDefender].species) battleMonAttacker = (u8*)(&gBattleMons[gBankAttacker]); - battleMonTarget = (u8*)(&gBattleMons[gBankTarget]); + battleMonTarget = (u8*)(&gBattleMons[gBankDefender]); for (i = 0; i < offsetof(struct BattlePokemon, pp); i++) battleMonAttacker[i] = battleMonTarget[i]; @@ -8436,10 +8430,10 @@ static void atk9D_mimicattackcopy(void) { gChosenMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gLastMoves[gBankTarget]) + if (IsMoveUncopyableByMimic(gLastMoves[gBankDefender]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gLastMoves[gBankTarget] == 0 - || gLastMoves[gBankTarget] == 0xFFFF) + || gLastMoves[gBankDefender] == 0 + || gLastMoves[gBankDefender] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8449,20 +8443,20 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gLastMoves[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gLastMoves[gBankDefender]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastMoves[gBankTarget]; - if (gBattleMoves[gLastMoves[gBankTarget]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastMoves[gBankDefender]; + if (gBattleMoves[gLastMoves[gBankDefender]].pp < 5) + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBankDefender]].pp; else gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankDefender]) gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; @@ -8500,7 +8494,7 @@ static void atk9E_metronome(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBankDefender = GetMoveTarget(gCurrentMove, 0); return; } } @@ -8535,9 +8529,9 @@ static void atkA1_counterdamagecalculator(void) gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBankTarget = gSideTimers[sideTarget].followmeTarget; + gBankDefender = gSideTimers[sideTarget].followmeTarget; else - gBankTarget = gProtectStructs[gBankAttacker].physicalBank; + gBankDefender = gProtectStructs[gBankAttacker].physicalBank; gBattlescriptCurrInstr += 5; } @@ -8558,9 +8552,9 @@ static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the p gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBankTarget = gSideTimers[sideTarget].followmeTarget; + gBankDefender = gSideTimers[sideTarget].followmeTarget; else - gBankTarget = gProtectStructs[gBankAttacker].specialBank; + gBankDefender = gProtectStructs[gBankAttacker].specialBank; gBattlescriptCurrInstr += 5; } @@ -8577,17 +8571,17 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget]) + if (gBattleMons[gBankDefender].moves[i] == gLastMoves[gBankDefender]) break; } - if (gDisableStructs[gBankTarget].disabledMove == 0 - && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + if (gDisableStructs[gBankDefender].disabledMove == 0 + && i != 4 && gBattleMons[gBankDefender].pp[i] != 0) { - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankTarget].moves[i]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankDefender].moves[i]) - gDisableStructs[gBankTarget].disabledMove = gBattleMons[gBankTarget].moves[i]; - gDisableStructs[gBankTarget].disableTimer1 = (Random() & 3) + 2; - gDisableStructs[gBankTarget].disableTimer2 = gDisableStructs[gBankTarget].disableTimer1; // used to save the random amount of turns? + gDisableStructs[gBankDefender].disabledMove = gBattleMons[gBankDefender].moves[i]; + gDisableStructs[gBankDefender].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBankDefender].disableTimer2 = gDisableStructs[gBankDefender].disableTimer1; // used to save the random amount of turns? gBattlescriptCurrInstr += 5; } else @@ -8602,24 +8596,24 @@ static void atkA4_trysetencore(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget]) + if (gBattleMons[gBankDefender].moves[i] == gLastMoves[gBankDefender]) break; } - if (gLastMoves[gBankTarget] == MOVE_STRUGGLE - || gLastMoves[gBankTarget] == MOVE_ENCORE - || gLastMoves[gBankTarget] == MOVE_MIRROR_MOVE) + if (gLastMoves[gBankDefender] == MOVE_STRUGGLE + || gLastMoves[gBankDefender] == MOVE_ENCORE + || gLastMoves[gBankDefender] == MOVE_MIRROR_MOVE) { i = 4; } - if (gDisableStructs[gBankTarget].encoredMove == 0 - && i != 4 && gBattleMons[gBankTarget].pp[i] != 0) + if (gDisableStructs[gBankDefender].encoredMove == 0 + && i != 4 && gBattleMons[gBankDefender].pp[i] != 0) { - gDisableStructs[gBankTarget].encoredMove = gBattleMons[gBankTarget].moves[i]; - gDisableStructs[gBankTarget].encoredMovePos = i; - gDisableStructs[gBankTarget].encoreTimer1 = (Random() & 3) + 3; - gDisableStructs[gBankTarget].encoreTimer2 = gDisableStructs[gBankTarget].encoreTimer1; + gDisableStructs[gBankDefender].encoredMove = gBattleMons[gBankDefender].moves[i]; + gDisableStructs[gBankDefender].encoredMovePos = i; + gDisableStructs[gBankDefender].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBankDefender].encoreTimer2 = gDisableStructs[gBankDefender].encoreTimer1; gBattlescriptCurrInstr += 5; } else @@ -8630,10 +8624,10 @@ static void atkA4_trysetencore(void) static void atkA5_painsplitdmgcalc(void) { - if (!(gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)) + if (!(gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE)) { - s32 hpDiff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankTarget].hp) / 2; - s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBankTarget].hp - hpDiff; + s32 hpDiff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankDefender].hp) / 2; + s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBankDefender].hp - hpDiff; u8* storeLoc = (void*)(&gBattleScripting.painSplitHp); storeLoc[0] = (painSplitHp); @@ -8642,7 +8636,7 @@ static void atkA5_painsplitdmgcalc(void) storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hpDiff; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + gSpecialStatuses[gBankDefender].moveturnLostHP = 0xFFFF; gBattlescriptCurrInstr += 5; } @@ -8720,9 +8714,9 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 static void atkA7_setalwayshitflag(void) { - gStatuses3[gBankTarget] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[gBankTarget] |= 0x10; - gDisableStructs[gBankTarget].bankWithSureHit = gBankAttacker; + gStatuses3[gBankDefender] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBankDefender] |= 0x10; + gDisableStructs[gBankDefender].bankWithSureHit = gBankAttacker; gBattlescriptCurrInstr++; } @@ -8731,10 +8725,10 @@ static void atkA8_copymovepermanently(void) // sketch gChosenMove = 0xFFFF; if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && gLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE - && gLastPrintedMoves[gBankTarget] != 0 - && gLastPrintedMoves[gBankTarget] != 0xFFFF - && gLastPrintedMoves[gBankTarget] != MOVE_SKETCH) + && gLastPrintedMoves[gBankDefender] != MOVE_STRUGGLE + && gLastPrintedMoves[gBankDefender] != 0 + && gLastPrintedMoves[gBankDefender] != 0xFFFF + && gLastPrintedMoves[gBankDefender] != MOVE_SKETCH) { s32 i; @@ -8742,7 +8736,7 @@ static void atkA8_copymovepermanently(void) // sketch { if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gLastPrintedMoves[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gLastPrintedMoves[gBankDefender]) break; } @@ -8754,8 +8748,8 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBankTarget]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBankDefender]; + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBankDefender]].pp; gActiveBank = gBankAttacker; for (i = 0; i < 4; i++) @@ -8768,7 +8762,7 @@ static void atkA8_copymovepermanently(void) // sketch EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); MarkBufferBankForExecution(gActiveBank); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBankDefender]) gBattlescriptCurrInstr += 5; } @@ -8855,7 +8849,7 @@ static void atkA9_trychoosesleeptalkmove(void) gRandomMove = gBattleMons[gBankAttacker].moves[movePosition]; gCurrMovePos = movePosition; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBankDefender = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } @@ -8869,8 +8863,8 @@ static void atkAA_setdestinybond(void) static void TrySetDestinyBondToHappen(void) { u8 sideAttacker = GetBankSide(gBankAttacker); - u8 sideTarget = GetBankSide(gBankTarget); - if (gBattleMons[gBankTarget].status2 & STATUS2_DESTINY_BOND + u8 sideTarget = GetBankSide(gBankDefender); + if (gBattleMons[gBankDefender].status2 & STATUS2_DESTINY_BOND && sideAttacker != sideTarget && !(gHitMarker & HITMARKER_GRUDGE)) { @@ -8901,31 +8895,31 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastMoves[gBankTarget] != 0 - && gLastMoves[gBankTarget] != 0xFFFF) + if (gLastMoves[gBankDefender] != 0 + && gLastMoves[gBankDefender] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + if (gLastMoves[gBankDefender] == gBattleMons[gBankDefender].moves[i]) break; } - if (i != 4 && gBattleMons[gBankTarget].pp[i] > 1) + if (i != 4 && gBattleMons[gBankDefender].pp[i] > 1) { s32 ppToDeduct = (Random() & 3) + 2; - if (gBattleMons[gBankTarget].pp[i] < ppToDeduct) - ppToDeduct = gBattleMons[gBankTarget].pp[i]; + if (gBattleMons[gBankDefender].pp[i] < ppToDeduct) + ppToDeduct = gBattleMons[gBankDefender].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankDefender]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 1, ppToDeduct) - gBattleMons[gBankTarget].pp[i] -= ppToDeduct; - gActiveBank = gBankTarget; + gBattleMons[gBankDefender].pp[i] -= ppToDeduct; + gActiveBank = gBankDefender; if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i]) && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) @@ -8936,8 +8930,8 @@ static void atkAD_tryspiteppreduce(void) gBattlescriptCurrInstr += 5; - if (gBattleMons[gBankTarget].pp[i] == 0) - CancelMultiTurnMoves(gBankTarget); + if (gBattleMons[gBankDefender].pp[i] == 0) + CancelMultiTurnMoves(gBankDefender); } else { @@ -8978,7 +8972,7 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBank = gBattleScripting.bank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBank = gBattleScripting.bank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) @@ -9026,7 +9020,7 @@ static void atkAE_healpartystatus(void) gBattleMons[gBankAttacker].status1 = 0; gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) { @@ -9048,13 +9042,13 @@ static void atkAE_healpartystatus(void) static void atkAF_cursetarget(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED) + if (gBattleMons[gBankDefender].status2 & STATUS2_CURSED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankTarget].status2 |= STATUS2_CURSED; + gBattleMons[gBankDefender].status2 |= STATUS2_CURSED; gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9074,7 +9068,7 @@ static void atkB0_trysetspikes(void) } else { - gSideAffecting[targetSide] |= SIDE_STATUS_SPIKES; + gSideStatuses[targetSide] |= SIDE_STATUS_SPIKES; gSideTimers[targetSide].spikesAmount++; gBattlescriptCurrInstr += 5; } @@ -9082,7 +9076,7 @@ static void atkB0_trysetspikes(void) static void atkB1_setforesight(void) { - gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; + gBattleMons[gBankDefender].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } @@ -9091,7 +9085,7 @@ static void atkB2_trysetperishsong(void) s32 i; s32 notAffectedCount = 0; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gStatuses3[i] & STATUS3_PERISH_SONG || gBattleMons[i].ability == ABILITY_SOUNDPROOF) @@ -9108,7 +9102,7 @@ static void atkB2_trysetperishsong(void) PressurePPLoseOnUsingPerishSong(gBankAttacker); - if (notAffectedCount == gNoOfAllBanks) + if (notAffectedCount == gBattleBanksCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -9116,7 +9110,7 @@ static void atkB2_trysetperishsong(void) static void atkB3_rolloutdamagecalculation(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { CancelMultiTurnMoves(gBankAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -9151,8 +9145,8 @@ static void atkB3_rolloutdamagecalculation(void) static void atkB4_jumpifconfusedandstatmaxed(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION - && gBattleMons[gBankTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) + if (gBattleMons[gBankDefender].status2 & STATUS2_CONFUSION + && gBattleMons[gBankDefender].statStages[gBattlescriptCurrInstr[1]] == 0xC) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -9160,7 +9154,7 @@ static void atkB4_jumpifconfusedandstatmaxed(void) static void atkB5_furycuttercalc(void) { - if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -9203,32 +9197,32 @@ static void atkB7_presentdamagecalculation(void) gDynamicBasePower = 120; else { - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } if (rand < 204) gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; - else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) + else if (gBattleMons[gBankDefender].maxHP == gBattleMons[gBankDefender].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { - gBattleMoveFlags &= ~(MOVESTATUS_NOTAFFECTED); + gMoveResultFlags &= ~(MOVE_RESULT_DOESNT_AFFECT_FOE); gBattlescriptCurrInstr = BattleScript_PresentHealTarget; } } static void atkB8_setsafeguard(void) { - if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) + if (gSideStatuses[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_SAFEGUARD; + gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_SAFEGUARD; gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardTimer = 5; gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardBank = gBankAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 5; @@ -9280,11 +9274,11 @@ static void atkB9_magnitudedamagecalculation(void) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 2, magnitude) - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) { - if (gBankTarget == gBankAttacker) + if (gBankDefender == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) // a valid target was found + if (!(gAbsentBankFlags & gBitTable[gBankDefender])) // a valid target was found break; } @@ -9296,35 +9290,35 @@ static void atkBA_jumpifnopursuitswitchdmg(void) if (gMultiHitCounter == 1) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); else - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); } else { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); else - gBankTarget = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); } - if (gActionForBanks[gBankTarget] == ACTION_USE_MOVE - && gBankAttacker == *(gBattleStruct->moveTarget + gBankTarget) - && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + if (gActionForBanks[gBankDefender] == ACTION_USE_MOVE + && gBankAttacker == *(gBattleStruct->moveTarget + gBankDefender) + && !(gBattleMons[gBankDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) && gBattleMons[gBankAttacker].hp - && !gDisableStructs[gBankTarget].truantCounter - && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT) + && !gDisableStructs[gBankDefender].truantCounter + && gChosenMovesByBanks[gBankDefender] == MOVE_PURSUIT) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { - if (gBanksByTurnOrder[i] == gBankTarget) + if (gBanksByTurnOrder[i] == gBankDefender) gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankTarget); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankDefender); gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); @@ -9339,7 +9333,7 @@ static void atkBB_setsunny(void) { if (gBattleWeather & WEATHER_SUN_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -9381,7 +9375,7 @@ static void atkBD_copyfoestats(void) // psych up for (i = 0; i < BATTLE_STATS_NO; i++) { - gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankTarget].statStages[i]; + gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankDefender].statStages[i]; } gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter. @@ -9391,9 +9385,9 @@ static void atkBE_rapidspinfree(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED) { - gBattleScripting.bank = gBankTarget; + gBattleScripting.bank = gBankDefender; gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gBankTarget = *(gBattleStruct->wrappedBy + gBankAttacker); + gBankDefender = *(gBattleStruct->wrappedBy + gBankAttacker); gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff1[1] = B_BUFF_MOVE; @@ -9411,9 +9405,9 @@ static void atkBE_rapidspinfree(void) BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideStatuses[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) { - gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideStatuses[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; @@ -9432,7 +9426,7 @@ static void atkBF_setdefensecurlbit(void) static void atkC0_recoverbasedonsunlight(void) { - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; if (gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP) { @@ -9632,11 +9626,11 @@ _080544F0:\n\ static void atkC2_selectfirstvalidtarget(void) { - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) + for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) { - if (gBankTarget == gBankAttacker) + if (gBankDefender == gBankAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBankFlags & gBitTable[gBankDefender])) break; } gBattlescriptCurrInstr++; @@ -9644,22 +9638,22 @@ static void atkC2_selectfirstvalidtarget(void) static void atkC3_trysetfutureattack(void) { - if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) + if (gWishFutureKnock.futureSightCounter[gBankDefender] != 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gSideAffecting[GET_BANK_SIDE(gBankTarget)] |= SIDE_STATUS_FUTUREATTACK; - gWishFutureKnock.futureSightMove[gBankTarget] = gCurrentMove; - gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker; - gWishFutureKnock.futureSightCounter[gBankTarget] = 3; - gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, - gSideAffecting[GET_BANK_SIDE(gBankTarget)], 0, - 0, gBankAttacker, gBankTarget); + gSideStatuses[GET_BANK_SIDE(gBankDefender)] |= SIDE_STATUS_FUTUREATTACK; + gWishFutureKnock.futureSightMove[gBankDefender] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBankDefender] = gBankAttacker; + gWishFutureKnock.futureSightCounter[gBankDefender] = 3; + gWishFutureKnock.futureSightDmg[gBankDefender] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankDefender], gCurrentMove, + gSideStatuses[GET_BANK_SIDE(gBankDefender)], 0, + 0, gBankAttacker, gBankDefender); if (gProtectStructs[gBankAttacker].helpingHand) - gWishFutureKnock.futureSightDmg[gBankTarget] = gWishFutureKnock.futureSightDmg[gBankTarget] * 15 / 10; + gWishFutureKnock.futureSightDmg[gBankDefender] = gWishFutureKnock.futureSightDmg[gBankDefender] * 15 / 10; if (gCurrentMove == MOVE_DOOM_DESIRE) gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -9679,7 +9673,7 @@ static void atkC4_trydobeatup(void) else party = gEnemyParty; - if (gBattleMons[gBankTarget].hp == 0) + if (gBattleMons[gBankDefender].hp == 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -9703,7 +9697,7 @@ static void atkC4_trydobeatup(void) gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gBaseStats[gBattleMons[gBankTarget].species].baseDefense; + gBattleMoveDamage /= gBaseStats[gBattleMons[gBankDefender].species].baseDefense; gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; if (gProtectStructs[gBankAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; @@ -9767,7 +9761,7 @@ static void atkC8_sethail(void) { if (gBattleWeather & WEATHER_HAIL_ANY) { - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else @@ -9782,8 +9776,8 @@ static void atkC8_sethail(void) static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento { - if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0 - && gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0 + if (gBattleMons[gBankDefender].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBankDefender].statStages[STAT_STAGE_SPATK] == 0 && gBattleCommunication[6] != 1) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -9817,14 +9811,14 @@ static void atkCC_callterrainattack(void) // nature power { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; - gBankTarget = GetMoveTarget(gCurrentMove, 0); + gBankDefender = GetMoveTarget(gCurrentMove, 0); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh { - if (gBattleMons[gBankAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + if (gBattleMons[gBankAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) { gBattleMons[gBankAttacker].status1 = 0; gBattlescriptCurrInstr += 5; @@ -9840,13 +9834,13 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh static void atkCE_settorment(void) { - if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT) + if (gBattleMons[gBankDefender].status2 & STATUS2_TORMENT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT; + gBattleMons[gBankDefender].status2 |= STATUS2_TORMENT; gBattlescriptCurrInstr += 5; } } @@ -9861,10 +9855,10 @@ static void atkCF_jumpifnodamage(void) static void atkD0_settaunt(void) { - if (gDisableStructs[gBankTarget].tauntTimer1 == 0) + if (gDisableStructs[gBankDefender].tauntTimer1 == 0) { - gDisableStructs[gBankTarget].tauntTimer1 = 2; - gDisableStructs[gBankTarget].tauntTimer2 = 2; + gDisableStructs[gBankDefender].tauntTimer1 = 2; + gDisableStructs[gBankDefender].tauntTimer2 = 2; gBattlescriptCurrInstr += 5; } else @@ -9875,14 +9869,14 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); + gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBankFlags & gBitTable[gBankTarget]) + && !(gAbsentBankFlags & gBitTable[gBankDefender]) && !gProtectStructs[gBankAttacker].helpingHand - && !gProtectStructs[gBankTarget].helpingHand) + && !gProtectStructs[gBankDefender].helpingHand) { - gProtectStructs[gBankTarget].helpingHand = 1; + gProtectStructs[gBankDefender].helpingHand = 1; gBattlescriptCurrInstr += 5; } else @@ -9907,7 +9901,7 @@ static void atkD2_tryswapitems(void) // trick else { u8 sideAttacker = GetBankSide(gBankAttacker); - u8 sideTarget = GetBankSide(gBankTarget); + u8 sideTarget = GetBankSide(gBankDefender); // you can't swap items if they were knocked off in regular battles if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK @@ -9916,26 +9910,26 @@ static void atkD2_tryswapitems(void) // trick | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_x2000000)) && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlePartyID[gBankAttacker]] - || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBankTarget]])) + || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBankDefender]])) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // can't swap if two pokemon don't have an item // or if either of them is an enigma berry or a mail - else if ((gBattleMons[gBankAttacker].item == 0 && gBattleMons[gBankTarget].item == 0) + else if ((gBattleMons[gBankAttacker].item == 0 && gBattleMons[gBankDefender].item == 0) || gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY - || gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY + || gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY || IS_ITEM_MAIL(gBattleMons[gBankAttacker].item) - || IS_ITEM_MAIL(gBattleMons[gBankTarget].item)) + || IS_ITEM_MAIL(gBattleMons[gBankDefender].item)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // check if ability prevents swapping - else if (gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBankDefender].ability == ABILITY_STICKY_HOLD) { gBattlescriptCurrInstr = BattleScript_StickyHoldActivates; - gLastUsedAbility = gBattleMons[gBankTarget].ability; - RecordAbilityBattle(gBankTarget, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBankDefender].ability; + RecordAbilityBattle(gBankDefender, gLastUsedAbility); } // took a while, but all checks passed and items can be safely swapped else @@ -9944,21 +9938,21 @@ static void atkD2_tryswapitems(void) // trick newItemAtk = &gBattleStruct->changedItems[gBankAttacker]; oldItemAtk = gBattleMons[gBankAttacker].item; - *newItemAtk = gBattleMons[gBankTarget].item; + *newItemAtk = gBattleMons[gBankDefender].item; gBattleMons[gBankAttacker].item = 0; - gBattleMons[gBankTarget].item = oldItemAtk; + gBattleMons[gBankDefender].item = oldItemAtk; gActiveBank = gBankAttacker; EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); MarkBufferBankForExecution(gBankAttacker); - gActiveBank = gBankTarget; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); - MarkBufferBankForExecution(gBankTarget); + gActiveBank = gBankDefender; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankDefender].item); + MarkBufferBankForExecution(gBankDefender); - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 1) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 0) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 1) = 0; @@ -9980,11 +9974,11 @@ static void atkD2_tryswapitems(void) // trick static void atkD3_trycopyability(void) // role play { - if (gBattleMons[gBankTarget].ability != 0 - && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[gBankDefender].ability != 0 + && gBattleMons[gBankDefender].ability != ABILITY_WONDER_GUARD) { - gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; - gLastUsedAbility = gBattleMons[gBankTarget].ability; + gBattleMons[gBankAttacker].ability = gBattleMons[gBankDefender].ability; + gLastUsedAbility = gBattleMons[gBankDefender].ability; gBattlescriptCurrInstr += 5; } else @@ -10010,14 +10004,14 @@ static void atkD4_trywish(void) } break; case 1: // heal effect - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankTarget, gWishFutureKnock.wishUserID[gBankTarget]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankDefender, gWishFutureKnock.wishUserID[gBankDefender]) - gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP) + if (gBattleMons[gBankDefender].hp == gBattleMons[gBankDefender].maxHP) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -10042,9 +10036,9 @@ static void atkD5_trysetroots(void) // ingrain static void atkD6_doubledamagedealtifdamaged(void) { if ((gProtectStructs[gBankAttacker].physicalDmg - && gProtectStructs[gBankAttacker].physicalBank == gBankTarget) + && gProtectStructs[gBankAttacker].physicalBank == gBankDefender) || (gProtectStructs[gBankAttacker].specialDmg - && gProtectStructs[gBankAttacker].specialBank == gBankTarget)) + && gProtectStructs[gBankAttacker].specialBank == gBankDefender)) { gBattleScripting.dmgMultiplier = 2; } @@ -10054,27 +10048,27 @@ static void atkD6_doubledamagedealtifdamaged(void) static void atkD7_setyawn(void) { - if (gStatuses3[gBankTarget] & STATUS3_YAWN - || gBattleMons[gBankTarget].status1 & STATUS_ANY) + if (gStatuses3[gBankDefender] & STATUS3_YAWN + || gBattleMons[gBankDefender].status1 & STATUS1_ANY) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBankTarget] |= 0x1000; + gStatuses3[gBankDefender] |= 0x1000; gBattlescriptCurrInstr += 5; } } static void atkD8_setdamagetohealthdifference(void) { - if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp) + if (gBattleMons[gBankDefender].hp <= gBattleMons[gBankAttacker].hp) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMoveDamage = gBattleMons[gBankTarget].hp - gBattleMons[gBankAttacker].hp; + gBattleMoveDamage = gBattleMons[gBankDefender].hp - gBattleMons[gBankAttacker].hp; gBattlescriptCurrInstr += 5; } } @@ -10094,18 +10088,18 @@ static void atkD9_scaledamagebyhealthratio(void) static void atkDA_tryswapabilities(void) // skill swap { if ((gBattleMons[gBankAttacker].ability == 0 - && gBattleMons[gBankTarget].ability == 0) + && gBattleMons[gBankDefender].ability == 0) || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD - || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD - || gBattleMoveFlags & MOVESTATUS_NOEFFECT) + || gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD + || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { u8 abilityAtk = gBattleMons[gBankAttacker].ability; - gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability; - gBattleMons[gBankTarget].ability = abilityAtk; + gBattleMons[gBankAttacker].ability = gBattleMons[gBankDefender].ability; + gBattleMons[gBankDefender].ability = abilityAtk; gBattlescriptCurrInstr += 5; } @@ -10123,7 +10117,7 @@ static void atkDB_tryimprision(void) sideAttacker = GetBankSide(gBankAttacker); PressurePPLoseOnUsingImprision(gBankAttacker); - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattleBanksCount; bank++) { if (sideAttacker != GetBankSide(bank)) { @@ -10148,7 +10142,7 @@ static void atkDB_tryimprision(void) } } } - if (bank == gNoOfAllBanks) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes + if (bank == gBattleBanksCount) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } @@ -10171,7 +10165,7 @@ static void atkDD_weightdamagecalculation(void) s32 i; for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) { - if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1)) + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankDefender].species), 1)) break; } @@ -10227,7 +10221,7 @@ static void atkDE_asistattackselect(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBankDefender = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr += 5; } else @@ -10238,9 +10232,9 @@ static void atkDE_asistattackselect(void) static void atkDF_trysetmagiccoat(void) { - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn + if (gCurrentTurnActionNumber == gBattleBanksCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -10254,7 +10248,7 @@ static void atkDF_trysetmagiccoat(void) static void atkE0_trysetsnatch(void) // snatch { gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn + if (gCurrentTurnActionNumber == gBattleBanksCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -10274,15 +10268,15 @@ static void atkE1_trygetintimidatetarget(void) PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.bank].ability) - for (;gBankTarget < gNoOfAllBanks; gBankTarget++) + for (;gBankDefender < gBattleBanksCount; gBankDefender++) { - if (GetBankSide(gBankTarget) == side) + if (GetBankSide(gBankDefender) == side) continue; - if (!(gAbsentBankFlags & gBitTable[gBankTarget])) + if (!(gAbsentBankFlags & gBitTable[gBankDefender])) break; } - if (gBankTarget >= gNoOfAllBanks) + if (gBankDefender >= gBattleBanksCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -10544,7 +10538,7 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBank = GetBankByIdentity(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) @@ -10568,10 +10562,10 @@ static void atkEF_snatchsetbanks(void) { gEffectBank = gBankAttacker; - if (gBankAttacker == gBankTarget) - gBankAttacker = gBankTarget = gBattleScripting.bank; + if (gBankAttacker == gBankDefender) + gBankAttacker = gBankDefender = gBattleScripting.bank; else - gBankTarget = gBattleScripting.bank; + gBankDefender = gBattleScripting.bank; gBattleScripting.bank = gEffectBank; gBattlescriptCurrInstr++; @@ -10583,8 +10577,8 @@ static void atkEE_removelightscreenreflect(void) // brick break if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer) { - gSideAffecting[opposingSide] &= ~(SIDE_STATUS_REFLECT); - gSideAffecting[opposingSide] &= ~(SIDE_STATUS_LIGHTSCREEN); + gSideStatuses[opposingSide] &= ~(SIDE_STATUS_REFLECT); + gSideStatuses[opposingSide] &= ~(SIDE_STATUS_LIGHTSCREEN); gSideTimers[opposingSide].reflectTimer = 0; gSideTimers[opposingSide].lightscreenTimer = 0; gBattleScripting.animTurn = 1; @@ -10607,7 +10601,7 @@ static void atkEF_handleballthrow(void) return; gActiveBank = gBankAttacker; - gBankTarget = gBankAttacker ^ BIT_SIDE; + gBankDefender = gBankAttacker ^ BIT_SIDE; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { @@ -10629,17 +10623,17 @@ static void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_SAFARI_BALL) catchRate = gBattleStruct->field_7C * 1275 / 100; else - catchRate = gBaseStats[gBattleMons[gBankTarget].species].catchRate; + catchRate = gBaseStats[gBattleMons[gBankDefender].species].catchRate; if (gLastUsedItem > ITEM_SAFARI_BALL) { switch (gLastUsedItem) { case ITEM_NET_BALL: - if (gBattleMons[gBankTarget].type1 == TYPE_WATER - || gBattleMons[gBankTarget].type2 == TYPE_WATER - || gBattleMons[gBankTarget].type1 == TYPE_BUG - || gBattleMons[gBankTarget].type2 == TYPE_BUG) + if (gBattleMons[gBankDefender].type1 == TYPE_WATER + || gBattleMons[gBankDefender].type2 == TYPE_WATER + || gBattleMons[gBankDefender].type1 == TYPE_BUG + || gBattleMons[gBankDefender].type2 == TYPE_BUG) ballMultiplier = 30; else ballMultiplier = 10; @@ -10651,9 +10645,9 @@ static void atkEF_handleballthrow(void) ballMultiplier = 10; break; case ITEM_NEST_BALL: - if (gBattleMons[gBankTarget].level < 40) + if (gBattleMons[gBankDefender].level < 40) { - ballMultiplier = 40 - gBattleMons[gBankTarget].level; + ballMultiplier = 40 - gBattleMons[gBankDefender].level; if (ballMultiplier <= 9) ballMultiplier = 10; } @@ -10663,7 +10657,7 @@ static void atkEF_handleballthrow(void) } break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), FLAG_GET_CAUGHT)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankDefender].species), FLAG_GET_CAUGHT)) ballMultiplier = 30; else ballMultiplier = 10; @@ -10683,12 +10677,12 @@ static void atkEF_handleballthrow(void) ballMultiplier = sBallCatchBonuses[gLastUsedItem - 2]; odds = (catchRate * ballMultiplier / 10) - * (gBattleMons[gBankTarget].maxHP * 3 - gBattleMons[gBankTarget].hp * 2) - / (3 * gBattleMons[gBankTarget].maxHP); + * (gBattleMons[gBankDefender].maxHP * 3 - gBattleMons[gBankDefender].hp * 2) + / (3 * gBattleMons[gBankDefender].maxHP); - if (gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) + if (gBattleMons[gBankDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) odds *= 2; - if (gBattleMons[gBankTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + if (gBattleMons[gBankDefender].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) odds = (odds * 15) / 10; if (gLastUsedItem != ITEM_SAFARI_BALL) @@ -10709,7 +10703,7 @@ static void atkEF_handleballthrow(void) EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlePartyID[gBankDefender]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10734,7 +10728,7 @@ static void atkEF_handleballthrow(void) if (shakes == BALL_3_SHAKES_SUCCESS) // mon caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlePartyID[gBankDefender]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10810,8 +10804,8 @@ static void atkF2_displaydexinfo(void) { FreeAllWindowBuffers(); gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species), - gBattleMons[gBankTarget].otId, - gBattleMons[gBankTarget].personality); + gBattleMons[gBankDefender].otId, + gBattleMons[gBankDefender].personality); gBattleCommunication[0]++; } break; @@ -11010,12 +11004,12 @@ static void atkF6_finishaction(void) static void atkF7_finishturn(void) { gCurrentActionFuncId = ACTION_FINISHED; - gCurrentTurnActionNumber = gNoOfAllBanks; + gCurrentTurnActionNumber = gBattleBanksCount; } static void atkF8_trainerslideout(void) { - gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); + gActiveBank = GetBankByPosition(gBattlescriptCurrInstr[1]); EmitTrainerSlideBack(0); MarkBufferBankForExecution(gActiveBank); diff --git a/src/battle_setup.c b/src/battle_setup.c index 6d7a97844..96af536fe 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -990,14 +990,14 @@ static bool32 IsPlayerDefeated(u32 battleOutcome) { switch (battleOutcome) { - case BATTLE_LOST: - case BATTLE_DREW: + case B_OUTCOME_LOST: + case B_OUTCOME_DREW: return TRUE; - case BATTLE_WON: - case BATTLE_RAN: - case BATTLE_PLAYER_TELEPORTED: - case BATTLE_POKE_FLED: - case BATTLE_CAUGHT: + case B_OUTCOME_WON: + case B_OUTCOME_RAN: + case B_OUTCOME_PLAYER_TELEPORTED: + case B_OUTCOME_POKE_FLED: + case B_OUTCOME_CAUGHT_POKE: return FALSE; default: return FALSE; diff --git a/src/battle_util.c b/src/battle_util.c index 2a1b421f5..250976347 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -31,14 +31,14 @@ extern u8 gActiveBank; extern u8 gStringBank; extern u16 gCurrentMove; extern u16 gLastUsedItem; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gAbsentBankFlags; extern u16 gBattleWeather; extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; -extern u16 gSideAffecting[2]; +extern u16 gSideStatuses[2]; extern u8 gBattleCommunication[]; extern void (*gBattleMainFunc)(void); extern s32 gBattleMoveDamage; @@ -51,7 +51,7 @@ extern u8 gEffectBank; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u8 gBank1; extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; -extern u8 gBattleMoveFlags; +extern u8 gMoveResultFlags; extern s32 gTakenDmg[BATTLE_BANKS_COUNT]; extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT]; extern u8 gLastUsedAbility; @@ -79,7 +79,7 @@ u8 GetBattleBank(u8 caseId) switch (caseId) { case BS_GET_TARGET: - ret = gBankTarget; + ret = gBankDefender; break; case BS_GET_ATTACKER: ret = gBankAttacker; @@ -104,16 +104,16 @@ u8 GetBattleBank(u8 caseId) case 8: case 9: case BS_GET_PLAYER1: - ret = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + ret = GetBankByPosition(B_POSITION_PLAYER_LEFT); break; case BS_GET_OPPONENT1: - ret = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + ret = GetBankByPosition(B_POSITION_OPPONENT_LEFT); break; case BS_GET_PLAYER2: - ret = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + ret = GetBankByPosition(B_POSITION_PLAYER_RIGHT); break; case BS_GET_OPPONENT2: - ret = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + ret = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); break; } return ret; @@ -153,7 +153,7 @@ void PressurePPLoseOnUsingImprision(u8 bankAtk) s32 imprisionPos = 4; u8 atkSide = GetBankSide(bankAtk); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) { @@ -186,7 +186,7 @@ void PressurePPLoseOnUsingPerishSong(u8 bankAtk) s32 i, j; s32 perishSongPos = 4; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk) { @@ -220,12 +220,12 @@ void MarkAllBufferBanksForExecution(void) // unused if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) gBattleExecBuffer |= gBitTable[i] << 0x1C; } else { - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) gBattleExecBuffer |= gBitTable[i]; } } @@ -296,10 +296,10 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[0] = 0; gSentPokesToOpponent[1] = 0; - for (i = 0; i < gNoOfAllBanks; i += 2) + for (i = 0; i < gBattleBanksCount; i += 2) bits |= gBitTable[gBattlePartyID[i]]; - for (i = 1; i < gNoOfAllBanks; i += 2) + for (i = 1; i < gBattleBanksCount; i += 2) gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits; } @@ -313,7 +313,7 @@ void sub_803F9EC(u8 bank) u8 id = ((bank & BIT_MON) >> 1); gSentPokesToOpponent[id] = 0; - for (i = 0; i < gNoOfAllBanks; i += 2) + for (i = 0; i < gBattleBanksCount; i += 2) { if (!(gAbsentBankFlags & gBitTable[i])) bits |= gBitTable[gBattlePartyID[i]]; @@ -332,7 +332,7 @@ void sub_803FA70(u8 bank) else { s32 i; - for (i = 1; i < gNoOfAllBanks; i++) + for (i = 1; i < gBattleBanksCount; i++) gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]]; } } @@ -517,7 +517,7 @@ u8 GetImprisonedMovesCount(u8 bank, u16 move) u8 imprisionedMoves = 0; u8 bankSide = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) { @@ -540,10 +540,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + for (gBankAttacker = 0; gBankAttacker < gBattleBanksCount && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) { } - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) + for (gBankDefender = 0; gBankDefender < gBattleBanksCount && gAbsentBankFlags & gBitTable[gBankDefender]; gBankDefender++) { } @@ -554,14 +554,14 @@ u8 UpdateTurnCounters(void) switch (gBattleStruct->turncountersTracker) { case 0: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { gBanksByTurnOrder[i] = i; } - for (i = 0; i < gNoOfAllBanks - 1; i++) + for (i = 0; i < gBattleBanksCount - 1; i++) { s32 j; - for (j = i + 1; j < gNoOfAllBanks; j++) + for (j = i + 1; j < gBattleBanksCount; j++) { if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0)) SwapTurnOrder(i, j); @@ -580,11 +580,11 @@ u8 UpdateTurnCounters(void) { sideBank = gBattleStruct->turnSideTracker; gActiveBank = gBankAttacker = gSideTimers[sideBank].reflectBank; - if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) + if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT) { if (--gSideTimers[sideBank].reflectTimer == 0) { - gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; + gSideStatuses[sideBank] &= ~SIDE_STATUS_REFLECT; BattleScriptExecute(BattleScript_SideStatusWoreOff); PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT); effect++; @@ -605,11 +605,11 @@ u8 UpdateTurnCounters(void) { sideBank = gBattleStruct->turnSideTracker; gActiveBank = gBankAttacker = gSideTimers[sideBank].lightscreenBank; - if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) + if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN) { if (--gSideTimers[sideBank].lightscreenTimer == 0) { - gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; + gSideStatuses[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN); @@ -634,7 +634,7 @@ u8 UpdateTurnCounters(void) if (gSideTimers[sideBank].mistTimer != 0 && --gSideTimers[sideBank].mistTimer == 0) { - gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; + gSideStatuses[sideBank] &= ~SIDE_STATUS_MIST; BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST); @@ -655,11 +655,11 @@ u8 UpdateTurnCounters(void) { sideBank = gBattleStruct->turnSideTracker; gActiveBank = gBankAttacker = gSideTimers[sideBank].safeguardBank; - if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) + if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD) { if (--gSideTimers[sideBank].safeguardTimer == 0) { - gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; + gSideStatuses[sideBank] &= ~SIDE_STATUS_SAFEGUARD; BattleScriptExecute(BattleScript_SafeguardEnds); effect++; } @@ -675,14 +675,14 @@ u8 UpdateTurnCounters(void) } break; case 5: - while (gBattleStruct->turnSideTracker < gNoOfAllBanks) + while (gBattleStruct->turnSideTracker < gBattleBanksCount) { gActiveBank = gBanksByTurnOrder[gBattleStruct->turnSideTracker]; if (gWishFutureKnock.wishCounter[gActiveBank] != 0 && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp != 0) { - gBankTarget = gActiveBank; + gBankDefender = gActiveBank; BattleScriptExecute(BattleScript_WishComesTrue); effect++; } @@ -798,7 +798,7 @@ u8 TurnBasedEffects(void) u8 effect = 0; gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); - while (gBattleStruct->turnEffectsBank < gNoOfAllBanks && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) + while (gBattleStruct->turnEffectsBank < gBattleBanksCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; if (gAbsentBankFlags & gBitTable[gActiveBank]) @@ -843,11 +843,11 @@ u8 TurnBasedEffects(void) && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBank].hp != 0) { - gBankTarget = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBankDefender = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleScripting.animArg1 = gBankTarget; + gBattleScripting.animArg1 = gBankDefender; gBattleScripting.animArg2 = gBankAttacker; BattleScriptExecute(BattleScript_LeechSeedTurnDrain); effect++; @@ -855,7 +855,7 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 4: // poison - if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBank].status1 & STATUS1_POISON) && gBattleMons[gActiveBank].hp != 0) { gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; if (gBattleMoveDamage == 0) @@ -866,7 +866,7 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 5: // toxic poison - if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBank].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) { gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; if (gBattleMoveDamage == 0) @@ -880,7 +880,7 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 6: // burn - if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBank].status1 & STATUS1_BURN) && gBattleMons[gActiveBank].hp != 0) { gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; if (gBattleMoveDamage == 0) @@ -895,7 +895,7 @@ u8 TurnBasedEffects(void) { // R/S does not perform this sleep check, which causes the nighmare effect to // persist even after the affected Pokemon has been awakened by Shed Skin - if (gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + if (gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) { gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; if (gBattleMoveDamage == 0) @@ -957,12 +957,12 @@ u8 TurnBasedEffects(void) case 10: // uproar if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) { - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++) + for (gBankAttacker = 0; gBankAttacker < gBattleBanksCount; gBankAttacker++) { - if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + if ((gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status1 &= ~(STATUS1_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); @@ -972,7 +972,7 @@ u8 TurnBasedEffects(void) break; } } - if (gBankAttacker != gNoOfAllBanks) + if (gBankAttacker != gBattleBanksCount) { effect = 2; // a pokemon was awaken break; @@ -1086,7 +1086,7 @@ u8 TurnBasedEffects(void) if (gStatuses3[gActiveBank] & STATUS3_YAWN) { gStatuses3[gActiveBank] -= 0x800; - if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS_ANY) + if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS1_ANY) && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank)) { @@ -1121,7 +1121,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) switch (gBattleStruct->wishPerishSongState) { case 0: - while (gBattleStruct->wishPerishSongBank < gNoOfAllBanks) + while (gBattleStruct->wishPerishSongBank < gBattleBanksCount) { gActiveBank = gBattleStruct->wishPerishSongBank; if (gAbsentBankFlags & gBitTable[gActiveBank]) @@ -1142,16 +1142,16 @@ bool8 HandleWishPerishSongOnTurnEnd(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBank]); - gBankTarget = gActiveBank; + gBankDefender = gActiveBank; gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + gSpecialStatuses[gBankDefender].moveturnLostHP = 0xFFFF; BattleScriptExecute(BattleScript_MonTookFutureAttack); if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gWishFutureKnock.futureSightCounter[gActiveBank ^ BIT_MON] == 0) { - gSideAffecting[GET_BANK_SIDE(gBankTarget)] &= ~(SIDE_STATUS_FUTUREATTACK); + gSideStatuses[GET_BANK_SIDE(gBankDefender)] &= ~(SIDE_STATUS_FUTUREATTACK); } return TRUE; } @@ -1164,7 +1164,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) } // fall through case 1: - while (gBattleStruct->wishPerishSongBank < gNoOfAllBanks) + while (gBattleStruct->wishPerishSongBank < gBattleBanksCount) { gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->wishPerishSongBank]; if (gAbsentBankFlags & gBitTable[gActiveBank]) @@ -1235,7 +1235,7 @@ bool8 HandleFaintedMonActions(void) case 0: gBattleStruct->faintedActionsBank = 0; gBattleStruct->faintedActionsState++; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gAbsentBankFlags & gBitTable[i] && !sub_80423F4(i, 6, 6)) gAbsentBankFlags &= ~(gBitTable[i]); @@ -1244,7 +1244,7 @@ bool8 HandleFaintedMonActions(void) case 1: do { - gBank1 = gBankTarget = gBattleStruct->faintedActionsBank; + gBank1 = gBankDefender = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->faintedActionsBank]]) && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank])) @@ -1253,12 +1253,12 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 2; return TRUE; } - } while (++gBattleStruct->faintedActionsBank != gNoOfAllBanks); + } while (++gBattleStruct->faintedActionsBank != gBattleBanksCount); gBattleStruct->faintedActionsState = 3; break; case 2: sub_803F9EC(gBank1); - if (++gBattleStruct->faintedActionsBank == gNoOfAllBanks) + if (++gBattleStruct->faintedActionsBank == gBattleBanksCount) gBattleStruct->faintedActionsState = 3; else gBattleStruct->faintedActionsState = 1; @@ -1270,7 +1270,7 @@ bool8 HandleFaintedMonActions(void) case 4: do { - gBank1 = gBankTarget = gBattleStruct->faintedActionsBank; + gBank1 = gBankDefender = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank])) { @@ -1278,11 +1278,11 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 5; return TRUE; } - } while (++gBattleStruct->faintedActionsBank != gNoOfAllBanks); + } while (++gBattleStruct->faintedActionsBank != gBattleBanksCount); gBattleStruct->faintedActionsState = 6; break; case 5: - if (++gBattleStruct->faintedActionsBank == gNoOfAllBanks) + if (++gBattleStruct->faintedActionsBank == gBattleBanksCount) gBattleStruct->faintedActionsState = 6; else gBattleStruct->faintedActionsState = 4; @@ -1302,7 +1302,7 @@ bool8 HandleFaintedMonActions(void) void TryClearRageStatuses(void) { int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMovesByBanks[i] != MOVE_RAGE) gBattleMons[i].status2 &= ~(STATUS2_RAGE); @@ -1325,11 +1325,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 1: // check being asleep - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + if (gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) { if (UproarWakeUpCheck(gBankAttacker)) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status1 &= ~(STATUS1_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1343,11 +1343,11 @@ u8 AtkCanceller_UnableToUseMove(void) toSub = 2; else toSub = 1; - if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) < toSub) - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + if ((gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) < toSub) + gBattleMons[gBankAttacker].status1 &= ~(STATUS1_SLEEP); else gBattleMons[gBankAttacker].status1 -= toSub; - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + if (gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) { if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) { @@ -1369,7 +1369,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 2: // check being frozen - if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + if (gBattleMons[gBankAttacker].status1 & STATUS1_FREEZE) { if (Random() % 5) { @@ -1386,7 +1386,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else // unfreeze { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + gBattleMons[gBankAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -1402,7 +1402,7 @@ u8 AtkCanceller_UnableToUseMove(void) gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - gBattleMoveFlags |= MOVESTATUS_MISSED; + gMoveResultFlags |= MOVE_RESULT_MISSED; effect = 1; } gBattleStruct->atkCancellerTracker++; @@ -1479,7 +1479,7 @@ u8 AtkCanceller_UnableToUseMove(void) else // confusion dmg { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); gProtectStructs[gBankAttacker].confusionSelfDmg = 1; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; @@ -1496,7 +1496,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 10: // paralysis - if ((gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS) && (Random() % 4) == 0) + if ((gBattleMons[gBankAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) { gProtectStructs[gBankAttacker].prlzImmobility = 1; // This is removed in Emerald for some reason @@ -1539,9 +1539,9 @@ u8 AtkCanceller_UnableToUseMove(void) { gCurrentMove = MOVE_BIDE; *bideDmg = gTakenDmg[gBankAttacker] * 2; - gBankTarget = gTakenDmgBanks[gBankAttacker]; - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetMoveTarget(MOVE_BIDE, 1); + gBankDefender = gTakenDmgBanks[gBankAttacker]; + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } else @@ -1552,11 +1552,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 13: // move thawing - if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + if (gBattleMons[gBankAttacker].status1 & STATUS1_FREEZE) { if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + gBattleMons[gBankAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1667,14 +1667,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) { if (GetBankSide(bank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); - r6 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + r7 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + r6 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); party = gEnemyParty; } else { - r7 = GetBankByIdentity(B_POSITION_PLAYER_LEFT); - r6 = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + r7 = GetBankByPosition(B_POSITION_PLAYER_LEFT); + r6 = GetBankByPosition(B_POSITION_PLAYER_RIGHT); party = gPlayerParty; } if (r1 == 6) @@ -1754,19 +1754,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) u32 pidAtk; u32 pidDef; - if (gBankAttacker >= gNoOfAllBanks) + if (gBankAttacker >= gBattleBanksCount) gBankAttacker = bank; if (GetBankSide(gBankAttacker) == SIDE_PLAYER) pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; else pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; - if (gBankTarget >= gNoOfAllBanks) - gBankTarget = bank; - if (GetBankSide(gBankTarget) == SIDE_PLAYER) - pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]]; + if (gBankDefender >= gBattleBanksCount) + gBankDefender = bank; + if (GetBankSide(gBankDefender) == SIDE_PLAYER) + pokeDef = &gPlayerParty[gBattlePartyID[gBankDefender]]; else - pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]]; + pokeDef = &gEnemyParty[gBattlePartyID[gBankDefender]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -1797,7 +1797,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - if (gBankAttacker >= gNoOfAllBanks) + if (gBankAttacker >= gBattleBanksCount) gBankAttacker = bank; switch (gLastUsedAbility) { @@ -1897,7 +1897,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_AIR_LOCK: { // that's a weird choice for a variable, why not use i or bank? - for (target1 = 0; target1 < gNoOfAllBanks; target1++) + for (target1 = 0; target1 < gBattleBanksCount; target1++) { effect = CastformDataTypeChange(target1); if (effect != 0) @@ -1932,17 +1932,17 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SHED_SKIN: - if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0) + if ((gBattleMons[bank].status1 & STATUS1_ANY) && (Random() % 3) == 0) { - if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON)) + if (gBattleMons[bank].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON)) StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - if (gBattleMons[bank].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS1_BURN) StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); gBattleMons[bank].status1 = 0; gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch @@ -2015,7 +2015,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE)) + if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS1_FREEZE)) { if (!(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE)) { @@ -2064,10 +2064,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && gBattleMons[bank].type1 != moveType && gBattleMons[bank].type2 != moveType && gBattleMons[bank].hp != 0) @@ -2081,10 +2081,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_ROUGH_SKIN: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; @@ -2096,10 +2096,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_EFFECT_SPORE: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 10) == 0) { @@ -2119,10 +2119,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_POISON_POINT: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2134,10 +2134,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_STATIC: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2149,11 +2149,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_FLAME_BODY: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; @@ -2164,12 +2164,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_CUTE_CHARM: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[gBankTarget].hp != 0 + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && gBattleMons[gBankDefender].hp != 0 && (Random() % 3) == 0 && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) @@ -2177,7 +2177,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS) { - gBattleMons[gBankAttacker].status2 |= STATUS2_INFATUATED_WITH(gBankTarget); + gBattleMons[gBankAttacker].status2 |= STATUS2_INFATUATED_WITH(gBankDefender); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2186,12 +2186,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_IMMUNITY: // 5 - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattleBanksCount; bank++) { switch (gBattleMons[bank].ability) { case ABILITY_IMMUNITY: - if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER)) + if (gBattleMons[bank].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_TOXIC_COUNTER)) { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); effect = 1; @@ -2205,7 +2205,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_LIMBER: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); effect = 1; @@ -2213,7 +2213,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_INSOMNIA: case ABILITY_VITAL_SPIRIT: - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); @@ -2221,14 +2221,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_WATER_VEIL: - if (gBattleMons[bank].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS1_BURN) { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); effect = 1; } break; case ABILITY_MAGMA_ARMOR: - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); effect = 1; @@ -2268,7 +2268,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_FORECAST: // 6 - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattleBanksCount; bank++) { if (gBattleMons[bank].ability == ABILITY_FORECAST) { @@ -2292,7 +2292,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.bank = gBankTarget; + gBattleScripting.bank = gBankDefender; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2316,7 +2316,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE1: // 9 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) { @@ -2330,20 +2330,20 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_TRACE: // 11 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { u8 target2; side = (GetBankPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon - target1 = GetBankByIdentity(side); - target2 = GetBankByIdentity(side + BIT_MON); + target1 = GetBankByPosition(side); + target2 = GetBankByPosition(side + BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); + gActiveBank = GetBankByPosition(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; effect++; @@ -2387,7 +2387,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE2: // 10 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) { @@ -2403,7 +2403,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (GetBankSide(i) != side && gBattleMons[i].ability == ability) { @@ -2414,7 +2414,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (GetBankSide(i) == side && gBattleMons[i].ability == ability) { @@ -2427,21 +2427,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (gLastUsedAbility) { case 0xFD: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gStatuses3[i] & STATUS3_MUDSPORT) effect = i + 1; } break; case 0xFE: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gStatuses3[i] & STATUS3_WATERSPORT) effect = i + 1; } break; default: - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ability) { @@ -2453,7 +2453,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) { @@ -2463,7 +2463,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ability && i != bank) { @@ -2474,7 +2474,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_COUNT_OTHER_SIDE: // 16 side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (GetBankSide(i) != side && gBattleMons[i].ability == ability) { @@ -2485,7 +2485,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (GetBankSide(i) == side && gBattleMons[i].ability == ability) { @@ -2495,7 +2495,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].ability == ability && i != bank) { @@ -2573,11 +2573,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } // def variables are unused - defItem = gBattleMons[gBankTarget].item; + defItem = gBattleMons[gBankDefender].item; if (defItem == ITEM_ENIGMA_BERRY) { - defHoldEffect = gEnigmaBerries[gBankTarget].holdEffect; - defQuality = gEnigmaBerries[gBankTarget].holdEffectParam; + defHoldEffect = gEnigmaBerries[gBankDefender].holdEffect; + defQuality = gEnigmaBerries[gBankDefender].holdEffectParam; } else { @@ -2898,41 +2898,41 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_PAR: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) { - gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); + gBattleMons[bank].status1 &= ~(STATUS1_PARALYSIS); BattleScriptExecute(BattleScript_BerryCurePrlzEnd2); effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_PSN: - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + if (gBattleMons[bank].status1 & STATUS1_PSN_ANY) { - gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); + gBattleMons[bank].status1 &= ~(STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER); BattleScriptExecute(BattleScript_BerryCurePsnEnd2); effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_BRN: - if (gBattleMons[bank].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS1_BURN) { - gBattleMons[bank].status1 &= ~(STATUS_BURN); + gBattleMons[bank].status1 &= ~(STATUS1_BURN); BattleScriptExecute(BattleScript_BerryCureBrnEnd2); effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_FRZ: - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) { - gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + gBattleMons[bank].status1 &= ~(STATUS1_FREEZE); BattleScriptExecute(BattleScript_BerryCureFrzEnd2); effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_SLP: - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { - gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status1 &= ~(STATUS1_SLEEP); gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptExecute(BattleScript_BerryCureSlpEnd2); effect = ITEM_STATUS_CHANGE; @@ -2947,31 +2947,31 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_STATUS: - if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) + if (gBattleMons[bank].status1 & STATUS1_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) { i = 0; - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + if (gBattleMons[bank].status1 & STATUS1_PSN_ANY) { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); i++; } - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); i++; } - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); i++; } - if (gBattleMons[bank].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS1_BURN) { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); i++; } - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); i++; @@ -3024,7 +3024,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case 2: break; case 3: - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattleBanksCount; bank++) { gLastUsedItem = gBattleMons[bank].item; if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) @@ -3040,45 +3040,45 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) switch (bankHoldEffect) { case HOLD_EFFECT_CURE_PAR: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) { - gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); + gBattleMons[bank].status1 &= ~(STATUS1_PARALYSIS); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureParRet; effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_PSN: - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + if (gBattleMons[bank].status1 & STATUS1_PSN_ANY) { - gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); + gBattleMons[bank].status1 &= ~(STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet; effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_BRN: - if (gBattleMons[bank].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS1_BURN) { - gBattleMons[bank].status1 &= ~(STATUS_BURN); + gBattleMons[bank].status1 &= ~(STATUS1_BURN); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet; effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_FRZ: - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) { - gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + gBattleMons[bank].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet; effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_CURE_SLP: - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { - gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status1 &= ~(STATUS1_SLEEP); gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet; @@ -3106,26 +3106,26 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_STATUS: - if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) + if (gBattleMons[bank].status1 & STATUS1_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) { - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + if (gBattleMons[bank].status1 & STATUS1_PSN_ANY) { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); } - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); } - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); } - if (gBattleMons[bank].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS1_BURN) { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); } - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); } @@ -3177,11 +3177,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) switch (atkHoldEffect) { case HOLD_EFFECT_FLINCH: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) && (Random() % 100) < atkQuality && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED - && gBattleMons[gBankTarget].hp) + && gBattleMons[gBankDefender].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); @@ -3190,20 +3190,20 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_SHELL_BELL: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 - && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF - && gBankAttacker != gBankTarget + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && gSpecialStatuses[gBankDefender].moveturnLostHP != 0 + && gSpecialStatuses[gBankDefender].moveturnLostHP != 0xFFFF + && gBankAttacker != gBankDefender && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP && gBattleMons[gBankAttacker].hp != 0) { gLastUsedItem = atkItem; gStringBank = gBankAttacker; gBattleScripting.bank = gBankAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1; + gBattleMoveDamage = (gSpecialStatuses[gBankDefender].moveturnLostHP / atkQuality) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0; + gSpecialStatuses[gBankDefender].moveturnLostHP = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect++; @@ -3252,7 +3252,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) side = GetBankSide(gBankAttacker); do { - targetBank = Random() % gNoOfAllBanks; + targetBank = Random() % gBattleBanksCount; } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) @@ -3268,7 +3268,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBankByIdentity((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBankByPosition((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[targetBank]) targetBank ^= BIT_MON; break; @@ -3281,22 +3281,22 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - targetBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + targetBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); else - targetBank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + targetBank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - targetBank = GetBankByIdentity(B_POSITION_PLAYER_LEFT); + targetBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); else - targetBank = GetBankByIdentity(B_POSITION_PLAYER_RIGHT); + targetBank = GetBankByPosition(B_POSITION_PLAYER_RIGHT); } if (gAbsentBankFlags & gBitTable[targetBank]) targetBank ^= BIT_MON; } else - targetBank = GetBankByIdentity((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBankByPosition((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: @@ -3363,7 +3363,7 @@ u8 IsMonDisobedient(void) // is not obedient if (gCurrentMove == MOVE_RAGE) gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + if (gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { gBattlescriptCurrInstr = BattleScript_82DB695; return 1; @@ -3389,7 +3389,7 @@ u8 IsMonDisobedient(void) gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBankTarget = GetMoveTarget(gRandomMove, 0); + gBankDefender = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; } @@ -3399,16 +3399,16 @@ u8 IsMonDisobedient(void) obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel; calc = (Random() & 255); - if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) + if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS1_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) { // try putting asleep int i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattleBanksCount; i++) { if (gBattleMons[i].status2 & STATUS2_UPROAR) break; } - if (i == gNoOfAllBanks) + if (i == gBattleBanksCount) { gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; return 1; @@ -3418,7 +3418,7 @@ u8 IsMonDisobedient(void) if (calc < obedienceLevel) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gBankTarget = gBankAttacker; + gBankDefender = gBankAttacker; gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; diff --git a/src/battle_util2.c b/src/battle_util2.c index d242ab6c9..fb01865a4 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -87,15 +87,15 @@ void AdjustFriendshipOnBattleFaint(u8 bank) { u8 opposingBank2; - opposingBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); - opposingBank2 = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + opposingBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + opposingBank2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); if (gBattleMons[opposingBank2].level > gBattleMons[opposingBank].level) opposingBank = opposingBank2; } else { - opposingBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + opposingBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); } if (gBattleMons[opposingBank].level > gBattleMons[bank].level) @@ -138,11 +138,11 @@ u32 sub_805725C(u8 bank) switch (gBattleCommunication[MULTIUSE_STATE]) { case 0: - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { if (UproarWakeUpCheck(bank)) { - gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status1 &= ~(STATUS1_SLEEP); gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -158,12 +158,12 @@ u32 sub_805725C(u8 bank) else toSub = 1; - if ((gBattleMons[bank].status1 & STATUS_SLEEP) < toSub) - gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + if ((gBattleMons[bank].status1 & STATUS1_SLEEP) < toSub) + gBattleMons[bank].status1 &= ~(STATUS1_SLEEP); else gBattleMons[bank].status1 -= toSub; - if (gBattleMons[bank].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS1_SLEEP) { gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep; effect = 2; @@ -181,7 +181,7 @@ u32 sub_805725C(u8 bank) gBattleCommunication[MULTIUSE_STATE]++; break; case 1: - if (gBattleMons[bank].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS1_FREEZE) { if (Random() % 5 != 0) { @@ -189,7 +189,7 @@ u32 sub_805725C(u8 bank) } else { - gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + gBattleMons[bank].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 0; diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index d30599607..b6b83086b 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -177,7 +177,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de damage = damage / damageHelper; damage /= 50; - if ((attacker->status1 & STATUS_BURN) && attacker->ability != ABILITY_GUTS) + if ((attacker->status1 & STATUS1_BURN) && attacker->ability != ABILITY_GUTS) damage /= 2; if ((sideStatus & SIDE_STATUS_REFLECT) && gCritMultiplier == 1) diff --git a/src/field_poison.c b/src/field_poison.c index b83788210..98819c450 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -42,7 +42,7 @@ static bool32 sub_80F958C(void) static void sub_80F95C0(u8 partyIdx) { struct Pokemon *pokemon = gPlayerParty + partyIdx; - unsigned int status = STATUS_NONE; + unsigned int status = STATUS1_NONE; AdjustFriendship(pokemon, 0x07); SetMonData(pokemon, MON_DATA_STATUS, &status); GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); diff --git a/src/pokeball.c b/src/pokeball.c index 86ab85b6a..f16096429 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -17,7 +17,7 @@ extern bool8 gDoingBattleAnim; extern u8 gActiveBank; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u16 gBattlePartyID[]; extern u8 gBankSpriteIds[]; extern u8 gHealthBoxesIds[]; @@ -378,7 +378,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) switch (throwCaseId) { case POKEBALL_PLAYER_SENDOUT: - gBankTarget = bank; + gBankDefender = bank; gSprites[ballSpriteId].pos1.x = 24; gSprites[ballSpriteId].pos1.y = 68; gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; @@ -386,17 +386,17 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) case POKEBALL_OPPONENT_SENDOUT: gSprites[ballSpriteId].pos1.x = GetBankCoord(bank, BANK_X_POS); gSprites[ballSpriteId].pos1.y = GetBankCoord(bank, BANK_Y_POS) + 24; - gBankTarget = bank; + gBankDefender = bank; gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; break; default: - gBankTarget = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); notSendOut = TRUE; break; } - gSprites[ballSpriteId].sBank = gBankTarget; + gSprites[ballSpriteId].sBank = gBankDefender; if (!notSendOut) { DestroyTask(taskId); @@ -405,12 +405,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) // this will perform an unused ball throw animation gSprites[ballSpriteId].data[0] = 0x22; - gSprites[ballSpriteId].data[2] = GetBankCoord(gBankTarget, BANK_X_POS); - gSprites[ballSpriteId].data[4] = GetBankCoord(gBankTarget, BANK_Y_POS) - 16; + gSprites[ballSpriteId].data[2] = GetBankCoord(gBankDefender, BANK_X_POS); + gSprites[ballSpriteId].data[4] = GetBankCoord(gBankDefender, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[5] = -40; sub_80A68D4(&gSprites[ballSpriteId]); gSprites[ballSpriteId].oam.affineParam = taskId; - gTasks[taskId].tOpponentBank = gBankTarget; + gTasks[taskId].tOpponentBank = gBankDefender; gTasks[taskId].func = TaskDummy; PlaySE(SE_NAGERU); } @@ -767,7 +767,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) } species = GetMonData(mon, MON_DATA_SPECIES); - if ((bank == GetBankByIdentity(B_POSITION_PLAYER_LEFT) || bank == GetBankByIdentity(B_POSITION_OPPONENT_LEFT)) + if ((bank == GetBankByPosition(B_POSITION_PLAYER_LEFT) || bank == GetBankByPosition(B_POSITION_OPPONENT_LEFT)) && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -783,7 +783,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) wantedCryCase = 0; - else if (bank == GetBankByIdentity(B_POSITION_PLAYER_LEFT) || bank == GetBankByIdentity(B_POSITION_OPPONENT_LEFT)) + else if (bank == GetBankByPosition(B_POSITION_PLAYER_LEFT) || bank == GetBankByPosition(B_POSITION_OPPONENT_LEFT)) wantedCryCase = 1; else wantedCryCase = 2; @@ -956,7 +956,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) sprite->data[0] = 0; if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 - && sprite->sBank == GetBankByIdentity(B_POSITION_PLAYER_RIGHT)) + && sprite->sBank == GetBankByPosition(B_POSITION_PLAYER_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else sprite->callback = SpriteCB_ReleaseMonFromBall; @@ -982,7 +982,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) { sprite->data[0] = 0; if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 - && sprite->sBank == GetBankByIdentity(B_POSITION_OPPONENT_RIGHT)) + && sprite->sBank == GetBankByPosition(B_POSITION_OPPONENT_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else sprite->callback = SpriteCB_ReleaseMonFromBall; diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 8640eacde..f05453c52 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -17,7 +17,7 @@ struct Unknown_020249B4 extern u8 gAbsentBankFlags; extern u8 gActiveBank; extern u8 gBankAttacker; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gLastUsedAbility; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; @@ -35,7 +35,7 @@ extern const u8 gText_BadEgg[]; extern const u8 gText_EggNickname[]; extern u8 GetBankSide(u8 bank); -extern u8 GetBankByIdentity(u8 bank); +extern u8 GetBankByPosition(u8 bank); extern u8 GetBankPosition(u8 bank); u8 CountAliveMonsInBattle(u8 caseId) @@ -62,7 +62,7 @@ u8 CountAliveMonsInBattle(u8 caseId) case BATTLE_ALIVE_DEF_SIDE: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBankSide(i) == GetBankSide(gBankDefender) && !(gAbsentBankFlags & gBitTable[i])) retVal++; } break; @@ -90,7 +90,7 @@ u8 GetDefaultMoveTarget(u8 bank) status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return GetBankByIdentity(status); + return GetBankByPosition(status); if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1) { u8 val; @@ -99,14 +99,14 @@ u8 GetDefaultMoveTarget(u8 bank) val = status ^ 2; else val = status; - return GetBankByIdentity(val); + return GetBankByPosition(val); } else { if ((gAbsentBankFlags & gBitTable[status])) - return GetBankByIdentity(status ^ 2); + return GetBankByPosition(status ^ 2); else - return GetBankByIdentity(status); + return GetBankByPosition(status); } } diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 95ec4b6a2..a31920ca0 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -27,7 +27,7 @@ extern struct BattlePokemon gBattleMons[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gActiveBank; extern u8 gBankInMenu; -extern u8 gBankTarget; +extern u8 gBankDefender; extern u8 gBankAttacker; extern u8 gStringBank; extern u16 gTrainerBattleOpponent_A; @@ -212,7 +212,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) void sub_806CF24(s32 stat) { - gBankTarget = gBankInMenu; + gBankDefender = gBankInMenu; StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]); StringCopy(gBattleTextBuff2, gText_StatRose); BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); diff --git a/src/recorded_battle.c b/src/recorded_battle.c index c88229c61..b785d1ea1 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -26,7 +26,7 @@ extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u16 gPartnerTrainerId; extern u8 gActiveBank; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; @@ -226,7 +226,7 @@ u8 RecordedBattle_ReadBankAction(u8 bank) // trying to read past array or invalid action byte, battle is over if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF) { - gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED; // hah + gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah ResetPaletteFadeControl(); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); SetMainCallback2(CB2_QuitRecordedBattle); @@ -1523,7 +1523,7 @@ void sub_818603C(u8 arg0) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return; - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (bank = 0; bank < gBattleBanksCount; bank++) { if (GetBankSide(bank) != SIDE_OPPONENT) // player's side only { diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 16d902aaa..edbd24530 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -25,7 +25,7 @@ extern u8 gReservedSpritePaletteCount; extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; extern u8 gBankInMenu; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; +extern u8 gBattleBanksCount; extern u32 gBattleTypeFlags; extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; @@ -164,13 +164,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void) LoadAndCreateEnemyShadowSprites(); - opponentBank = GetBankByIdentity(B_POSITION_OPPONENT_LEFT); + opponentBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); SetBankEnemyShadowSpriteCallback(opponentBank, species); if (IsDoubleBattle()) { - opponentBank = GetBankByIdentity(B_POSITION_OPPONENT_RIGHT); + opponentBank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); SetBankEnemyShadowSpriteCallback(opponentBank, species); } @@ -210,7 +210,7 @@ static void sub_80A95F4(void) static bool8 LoadBankSpriteGfx(u8 bank) { - if (bank < gNoOfAllBanks) + if (bank < gBattleBanksCount) { if (GetBankSide(bank) != SIDE_PLAYER) { @@ -245,7 +245,7 @@ extern const struct MonCoords gTrainerBackPicCoords[]; static void CreateBankSprite(u8 bank) { - if (bank < gNoOfAllBanks) + if (bank < gBattleBanksCount) { u8 posY; @@ -313,7 +313,7 @@ static void CreateBankSprite(u8 bank) static void CreateHealthboxSprite(u8 bank) { - if (bank < gNoOfAllBanks) + if (bank < gBattleBanksCount) { u8 healthboxSpriteId; diff --git a/src/safari_zone.c b/src/safari_zone.c index ce1eb65bc..12da73090 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -108,20 +108,20 @@ void SafariZoneRetirePrompt(void) void CB2_EndSafariBattle(void) { sSafariZoneFleedMons += gBattleResults.field_1F; - if (gBattleOutcome == BATTLE_CAUGHT) + if (gBattleOutcome == B_OUTCOME_CAUGHT_POKE) sSafariZoneCaughtMons++; if (gNumSafariBalls != 0) { SetMainCallback2(c2_exit_to_overworld_2_switch); } - else if (gBattleOutcome == BATTLE_SAFARI_OUT_OF_BALLS) + else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS) { ScriptContext2_RunNewScript(EventScript_2A4B4C); warp_in(); gFieldCallback = sub_80AF6F0; SetMainCallback2(c2_load_new_map); } - else if (gBattleOutcome == BATTLE_CAUGHT) + else if (gBattleOutcome == B_OUTCOME_CAUGHT_POKE) { ScriptContext1_SetupScript(EventScript_2A4B9B); ScriptContext1_Stop(); diff --git a/src/tv.c b/src/tv.c index af0c7069c..0fb2997ad 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1208,7 +1208,7 @@ void PutPokemonTodayFailedOnTheAir(void) { ct = 0xFF; } - if (ct > 2 && (gBattleOutcome == BATTLE_POKE_FLED || gBattleOutcome == BATTLE_WON)) + if (ct > 2 && (gBattleOutcome == B_OUTCOME_POKE_FLED || gBattleOutcome == B_OUTCOME_WON)) { sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE) @@ -2402,23 +2402,23 @@ void sub_80EE184(void) show->breakingNews.poke1Species = gBattleResults.playerMon1Species; switch (gBattleOutcome) { - case BATTLE_LOST: - case BATTLE_DREW: + case B_OUTCOME_LOST: + case B_OUTCOME_DREW: show->breakingNews.kind = TVSHOW_OFF_AIR; return; - case BATTLE_CAUGHT: + case B_OUTCOME_CAUGHT_POKE: show->breakingNews.outcome = 0; break; - case BATTLE_WON: + case B_OUTCOME_WON: show->breakingNews.outcome = 1; break; - case BATTLE_RAN: - case BATTLE_PLAYER_TELEPORTED: - case BATTLE_SAFARI_OUT_OF_BALLS: + case B_OUTCOME_RAN: + case B_OUTCOME_PLAYER_TELEPORTED: + case B_OUTCOME_NO_SAFARI_BALLS: show->breakingNews.outcome = 2; break; - case BATTLE_POKE_FLED: - case BATTLE_OPPONENT_TELEPORTED: + case B_OUTCOME_POKE_FLED: + case B_OUTCOME_POKE_TELEPORTED: show->breakingNews.outcome = 3; break; } diff --git a/sym_ewram.txt b/sym_ewram.txt index 092b30ccd..a472994a6 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -276,7 +276,7 @@ gActiveBank: @ 2024064 gBattleExecBuffer: @ 2024068 .space 0x4 -gNoOfAllBanks: @ 202406C +gBattleBanksCount: @ 202406C .space 0x2 gBattlePartyID: @ 202406E @@ -336,7 +336,7 @@ gLastUsedAbility: @ 202420A gBankAttacker: @ 202420B .space 0x1 -gBankTarget: @ 202420C +gBankDefender: @ 202420C .space 0x1 gBank1: @ 202420D @@ -393,7 +393,7 @@ gLastHitBy: @ 2024270 gChosenMovesByBanks: @ 2024274 .space 0x8 -gBattleMoveFlags: @ 202427C +gMoveResultFlags: @ 202427C .space 0x4 gHitMarker: @ 2024280 @@ -408,7 +408,7 @@ gTakenDmgBanks: @ 2024288 gUnknown_0202428C: @ 202428C .space 0x2 -gSideAffecting: @ 202428E +gSideStatuses: @ 202428E .space 0x6 gSideTimers: @ 2024294 -- cgit v1.2.3 From b4bb5623638413fe9a26904d0524cfdc5b9f30ec Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 16 Jan 2018 16:15:02 -0600 Subject: rename battle_2.c to battle_main.c --- include/battle.h | 2 +- include/battle_2.h | 55 - include/battle_main.h | 55 + ld_script.txt | 4 +- src/battle_2.c | 5612 ------------------------------------------------- src/battle_main.c | 5612 +++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 5670 insertions(+), 5670 deletions(-) delete mode 100644 include/battle_2.h create mode 100644 include/battle_main.h delete mode 100644 src/battle_2.c create mode 100644 src/battle_main.c diff --git a/include/battle.h b/include/battle.h index 71a25eaa7..a437f41d4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -4,7 +4,7 @@ // should they be included here or included individually by every file? #include "battle_util.h" #include "battle_script_commands.h" -#include "battle_2.h" +#include "battle_main.h" #include "battle_ai_switch_items.h" #include "battle_gfx_sfx_util.h" #include "battle_util2.h" diff --git a/include/battle_2.h b/include/battle_2.h deleted file mode 100644 index ee61efd9b..000000000 --- a/include/battle_2.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef GUARD_BATTLE_2_H -#define GUARD_BATTLE_2_H - -void CB2_InitBattle(void); -void BattleMainCB2(void); -void CB2_QuitRecordedBattle(void); -void sub_8038528(struct Sprite* sprite); -void sub_8038A04(void); // unused -void VBlankCB_Battle(void); -void nullsub_17(void); -void sub_8038B74(struct Sprite *sprite); -void sub_8038D64(void); -u32 sub_80391E0(u8 arrayId, u8 caseId); -u32 sub_80397C4(u32 setId, u32 tableId); -void oac_poke_opponent(struct Sprite *sprite); -void SpriteCallbackDummy_2(struct Sprite *sprite); -void sub_8039934(struct Sprite *sprite); -void sub_8039AD8(struct Sprite *sprite); -void sub_8039B2C(struct Sprite *sprite); -void sub_8039B58(struct Sprite *sprite); -void sub_8039BB4(struct Sprite *sprite); -void sub_80105DC(struct Sprite *sprite); -void sub_8039C00(struct Sprite *sprite); -void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d); -void dp11b_obj_free(u8 bank, bool8 b); -void sub_8039E44(struct Sprite *sprite); -void sub_8039E60(struct Sprite *sprite); -void sub_8039E84(struct Sprite *sprite); -void sub_8039E9C(struct Sprite *sprite); -void nullsub_20(void); -void BeginBattleIntro(void); -void SwitchInClearSetData(void); -void FaintClearSetData(void); -void sub_803B3AC(void); // unused -void sub_803B598(void); // unused -void BattleTurnPassed(void); -u8 IsRunningFromBattleImpossible(void); -void sub_803BDA0(u8 bank); -void SwapTurnOrder(u8 id1, u8 id2); -u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); -void RunBattleScriptCommands_PopCallbacksStack(void); -void RunBattleScriptCommands(void); -bool8 TryRunFromBattle(u8 bank); - -extern const u8 gStatusConditionString_PoisonJpn[8]; -extern const u8 gStatusConditionString_SleepJpn[8]; -extern const u8 gStatusConditionString_ParalysisJpn[8]; -extern const u8 gStatusConditionString_BurnJpn[8]; -extern const u8 gStatusConditionString_IceJpn[8]; -extern const u8 gStatusConditionString_ConfusionJpn[8]; -extern const u8 gStatusConditionString_LoveJpn[8]; - -extern const u8 * const gStatusConditionStringsTable[7][2]; - -#endif // GUARD_BATTLE_2_H diff --git a/include/battle_main.h b/include/battle_main.h new file mode 100644 index 000000000..54b5e7da6 --- /dev/null +++ b/include/battle_main.h @@ -0,0 +1,55 @@ +#ifndef GUARD_BATTLE_MAIN_H +#define GUARD_BATTLE_MAIN_H + +void CB2_InitBattle(void); +void BattleMainCB2(void); +void CB2_QuitRecordedBattle(void); +void sub_8038528(struct Sprite* sprite); +void sub_8038A04(void); // unused +void VBlankCB_Battle(void); +void nullsub_17(void); +void sub_8038B74(struct Sprite *sprite); +void sub_8038D64(void); +u32 sub_80391E0(u8 arrayId, u8 caseId); +u32 sub_80397C4(u32 setId, u32 tableId); +void oac_poke_opponent(struct Sprite *sprite); +void SpriteCallbackDummy_2(struct Sprite *sprite); +void sub_8039934(struct Sprite *sprite); +void sub_8039AD8(struct Sprite *sprite); +void sub_8039B2C(struct Sprite *sprite); +void sub_8039B58(struct Sprite *sprite); +void sub_8039BB4(struct Sprite *sprite); +void sub_80105DC(struct Sprite *sprite); +void sub_8039C00(struct Sprite *sprite); +void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d); +void dp11b_obj_free(u8 bank, bool8 b); +void sub_8039E44(struct Sprite *sprite); +void sub_8039E60(struct Sprite *sprite); +void sub_8039E84(struct Sprite *sprite); +void sub_8039E9C(struct Sprite *sprite); +void nullsub_20(void); +void BeginBattleIntro(void); +void SwitchInClearSetData(void); +void FaintClearSetData(void); +void sub_803B3AC(void); // unused +void sub_803B598(void); // unused +void BattleTurnPassed(void); +u8 IsRunningFromBattleImpossible(void); +void sub_803BDA0(u8 bank); +void SwapTurnOrder(u8 id1, u8 id2); +u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); +void RunBattleScriptCommands_PopCallbacksStack(void); +void RunBattleScriptCommands(void); +bool8 TryRunFromBattle(u8 bank); + +extern const u8 gStatusConditionString_PoisonJpn[8]; +extern const u8 gStatusConditionString_SleepJpn[8]; +extern const u8 gStatusConditionString_ParalysisJpn[8]; +extern const u8 gStatusConditionString_BurnJpn[8]; +extern const u8 gStatusConditionString_IceJpn[8]; +extern const u8 gStatusConditionString_ConfusionJpn[8]; +extern const u8 gStatusConditionString_LoveJpn[8]; + +extern const u8 * const gStatusConditionStringsTable[7][2]; + +#endif // GUARD_BATTLE_MAIN_H diff --git a/ld_script.txt b/ld_script.txt index ae8dd057d..d85b3a59d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -59,7 +59,7 @@ SECTIONS { src/decompress.o(.text); asm/rom_8034C54.o(.text); src/battle_bg.o(.text); - src/battle_2.o(.text); + src/battle_main.o(.text); src/battle_util.o(.text); src/battle_script_commands.o(.text); src/battle_util2.o(.text); @@ -379,7 +379,7 @@ SECTIONS { data/main_menu.o(.rodata); data/battle_1.o(.rodata); data/data2b.o(.rodata); - src/battle_2.o(.rodata); + src/battle_main.o(.rodata); src/battle_util.o(.rodata); src/battle_script_commands.o(.rodata); src/battle_controller_player.o(.rodata); diff --git a/src/battle_2.c b/src/battle_2.c deleted file mode 100644 index b19dcace1..000000000 --- a/src/battle_2.c +++ /dev/null @@ -1,5612 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "recorded_battle.h" -#include "main.h" -#include "load_save.h" -#include "gpu_regs.h" -#include "unknown_task.h" -#include "battle_setup.h" -#include "battle_scripts.h" -#include "pokemon.h" -#include "palette.h" -#include "task.h" -#include "event_data.h" -#include "constants/species.h" -#include "berry.h" -#include "text.h" -#include "item.h" -#include "constants/items.h" -#include "constants/hold_effects.h" -#include "constants/trainers.h" -#include "link.h" -#include "bg.h" -#include "dma3.h" -#include "string_util.h" -#include "malloc.h" -#include "event_data.h" -#include "m4a.h" -#include "window.h" -#include "random.h" -#include "constants/songs.h" -#include "sound.h" -#include "battle_message.h" -#include "sprite.h" -#include "util.h" -#include "trig.h" -#include "battle_ai_script_commands.h" -#include "constants/battle_move_effects.h" -#include "battle_controllers.h" -#include "pokedex.h" -#include "constants/abilities.h" -#include "constants/moves.h" -#include "evolution_scene.h" -#include "roamer.h" -#include "tv.h" -#include "safari_zone.h" -#include "battle_string_ids.h" -#include "data2.h" - -struct UnknownStruct6 -{ - u16 unk0[0xA0]; - u8 fillerA0[0x640]; - u16 unk780[0xA0]; -}; - -struct UnknownPokemonStruct2 -{ - /*0x00*/ u16 species; - /*0x02*/ u16 heldItem; - /*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0F*/ u8 level; - /*0x10*/ u16 hp; - /*0x12*/ u16 maxhp; - /*0x14*/ u32 status; - /*0x18*/ u32 personality; - /*0x1C*/ u8 gender; - /*0x1D*/ u8 language; -}; - -extern u8 gBattleCommunication[]; -extern u8 gBattleTerrain; -extern u16 gBattle_BG0_X; -extern u16 gBattle_BG0_Y; -extern u16 gBattle_BG1_X; -extern u16 gBattle_BG1_Y; -extern u16 gBattle_BG2_X; -extern u16 gBattle_BG2_Y; -extern u16 gBattle_BG3_X; -extern u16 gBattle_BG3_Y; -extern u16 gPartnerTrainerId; -extern u16 gBattle_WIN0H; -extern u16 gBattle_WIN0V; -extern u16 gBattle_WIN1H; -extern u16 gBattle_WIN1V; -extern u16 gTrainerBattleOpponent_A; -extern u16 gTrainerBattleOpponent_B; -extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; -extern void (*gPreBattleCallback1)(void); -extern void (*gBattleMainFunc)(void); -extern void (*gCB2_AfterEvolution)(void); -extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for? -extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for? -extern u8 gUnknown_02039B28[]; // possibly a struct? -extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document -extern struct MusicPlayerInfo gMPlayInfo_SE1; -extern struct MusicPlayerInfo gMPlayInfo_SE2; -extern u8 gDecompressionBuffer[]; -extern u16 gUnknown_020243FC; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern u8 gStringBank; -extern u32 gUnknown_02022F88; -extern u32 gHitMarker; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u16 gPaydayMoney; -extern u16 gBattleWeather; -extern u16 gPauseCounterBattle; -extern u16 gRandomTurnNumber; -extern u8 gActiveBank; -extern u8 gBattleBanksCount; -extern u8 gBankAttacker; -extern u8 gBankDefender; -extern u8 gLeveledUpInBattle; -extern u8 gAbsentBankFlags; -extern u32 gBattleExecBuffer; -extern u8 gMultiHitCounter; -extern u8 gMoveResultFlags; -extern s32 gBattleMoveDamage; -extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; -extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastHitByType[BATTLE_BANKS_COUNT]; -extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT]; -extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; -extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; -extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -extern u16 gSideStatuses[2]; -extern u16 gCurrentMove; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; -extern u8 gActionForBanks[BATTLE_BANKS_COUNT]; -extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; -extern u8 gCurrentActionFuncId; -extern u8 gLastUsedAbility; -extern u8 gUnknown_0203CF00[]; -extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; -extern const u8* gBattlescriptCurrInstr; -extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; -extern u8 gCurrentTurnActionNumber; -extern u16 gDynamicBasePower; -extern u8 gCritMultiplier; -extern u8 gCurrMovePos; -extern u8 gUnknown_020241E9; -extern u16 gChosenMove; - -extern const struct BattleMove gBattleMoves[]; -extern const u16 gBattleTextboxPalette[]; // battle textbox palette -extern const struct BgTemplate gUnknown_0831AA08[]; -extern const struct WindowTemplate * const gUnknown_0831ABA0[]; -extern const u8 gUnknown_0831ACE0[]; -extern const u8 gStatStageRatios[][2]; -extern const u8 * const gBattleScriptsForMoveEffects[]; -extern const u8 * const gBattlescriptsForBallThrow[]; -extern const u8 * const gBattlescriptsForRunningByItem[]; -extern const u8 * const gBattlescriptsForUsingItem[]; -extern const u8 * const gBattlescriptsForSafariActions[]; - -// strings -extern const u8 gText_LinkStandby3[]; -extern const u8 gText_RecordBattleToPass[]; -extern const u8 gText_BattleYesNoChoice[]; -extern const u8 gText_BattleRecordCouldntBeSaved[]; -extern const u8 gText_BattleRecordedOnPass[]; -extern const u8 gText_ShedinjaJapaneseName[]; -extern const u8 gText_EmptyString3[]; -extern const u8 gText_Poison[]; -extern const u8 gText_Sleep[]; -extern const u8 gText_Paralysis[]; -extern const u8 gText_Burn[]; -extern const u8 gText_Ice[]; -extern const u8 gText_Confusion[]; -extern const u8 gText_Love[]; - -// functions -extern void dp12_8087EA4(void); -extern void sub_80356D0(void); -extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower -extern void sub_8166188(void); // battle tower, sets link battle mons level but why? -extern void sub_8165B88(u8* dst, u16 trainerId); // battle tower, gets language -extern void PadNameString(u8* dst, u8 arg2); // -extern void sub_81B9150(void); -extern void sub_800AC34(void); -extern void sub_80B3AF8(u8 taskId); // cable club -extern void sub_8076918(u8 bank); -extern void SetHealthboxSpriteVisible(u8 healthoxSpriteId); -extern void sub_81A56B4(void); // battle frontier 2 -extern u8 sub_81A9E28(void); // battle frontier 2 -extern void sub_81A56E8(u8 bank); // battle frontier 2 -extern void sub_81B8FB0(u8, u8); // party menu -extern u8 pokemon_order_func(u8); // party menu -extern bool8 InBattlePyramid(void); - -// this file's functions -static void CB2_InitBattleInternal(void); -static void CB2_PreInitMultiBattle(void); -static void CB2_PreInitIngamePlayerPartnerBattle(void); -static void CB2_HandleStartMultiPartnerBattle(void); -static void CB2_HandleStartMultiBattle(void); -static void CB2_HandleStartBattle(void); -static void TryCorrectShedinjaLanguage(struct Pokemon *mon); -static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer); -static void BattleMainCB1(void); -static void sub_8038538(struct Sprite *sprite); -static void sub_8038F14(void); -static void sub_8038F34(void); -static void sub_80392A8(void); -static void sub_803937C(void); -static void sub_803939C(void); -static void sub_803980C(struct Sprite *sprite); -static void sub_8039838(struct Sprite *sprite); -static void sub_8039894(struct Sprite *sprite); -static void sub_80398D0(struct Sprite *sprite); -static void sub_8039A48(struct Sprite *sprite); -static void sub_8039AF4(struct Sprite *sprite); -static void SpriteCallbackDummy_3(struct Sprite *sprite); -static void oac_poke_ally_(struct Sprite *sprite); -static void SpecialStatusesClear(void); -static void TurnValuesCleanUp(bool8 var0); -static void SpriteCB_HealthBoxBounce(struct Sprite *sprite); -static void BattleStartClearSetData(void); -static void BattleIntroGetMonsData(void); -static void BattleIntroPrepareBackgroundSlide(void); -static void BattleIntroDrawTrainersOrMonsSprites(void); -static void BattleIntroDrawPartySummaryScreens(void); -static void BattleIntroPrintTrainerWantsToBattle(void); -static void BattleIntroPrintWildMonAttacked(void); -static void BattleIntroPrintOpponentSendsOut(void); -static void BattleIntroPrintPlayerSendsOut(void); -static void BattleIntroOpponent1SendsOutMonAnimation(void); -static void BattleIntroOpponent2SendsOutMonAnimation(void); -static void BattleIntroRecordMonsToDex(void); -static void BattleIntroPlayer1SendsOutMonAnimation(void); -static void TryDoEventsBeforeFirstTurn(void); -static void HandleTurnActionSelectionState(void); -static void RunTurnActionsFunctions(void); -static void SetActionsAndBanksTurnOrder(void); -static void sub_803CDF8(void); -static bool8 sub_803CDB8(void); -static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); -static void FreeResetData_ReturnToOvOrDoEvolutions(void); -static void ReturnFromBattleToOverworld(void); -static void TryEvolvePokemon(void); -static void WaitForEvoSceneToFinish(void); -static void HandleEndTurn_ContinueBattle(void); -static void HandleEndTurn_BattleWon(void); -static void HandleEndTurn_BattleLost(void); -static void HandleEndTurn_RanFromBattle(void); -static void HandleEndTurn_MonFled(void); -static void HandleEndTurn_FinishBattle(void); -static void HandleAction_UseMove(void); -static void HandleAction_Switch(void); -static void HandleAction_UseItem(void); -static void HandleAction_Run(void); -static void HandleAction_WatchesCarefully(void); -static void HandleAction_SafariZoneBallThrow(void); -static void HandleAction_ThrowPokeblock(void); -static void HandleAction_GoNear(void); -static void HandleAction_SafriZoneRun(void); -static void HandleAction_Action9(void); -static void HandleAction_Action11(void); -static void HandleAction_NothingIsFainted(void); -static void HandleAction_ActionFinished(void); - -// rom const data -static void (* const sTurnActionsFuncsTable[])(void) = -{ - HandleAction_UseMove, // ACTION_USE_MOVE - HandleAction_UseItem, // ACTION_USE_ITEM - HandleAction_Switch, // ACTION_SWITCH - HandleAction_Run, // ACTION_RUN - HandleAction_WatchesCarefully, // ACTION_WATCHES_CAREFULLY - HandleAction_SafariZoneBallThrow, // ACTION_SAFARI_ZONE_BALL - HandleAction_ThrowPokeblock, // ACTION_POKEBLOCK_CASE - HandleAction_GoNear, // ACTION_GO_NEAR - HandleAction_SafriZoneRun, // ACTION_SAFARI_ZONE_RUN - HandleAction_Action9, // ACTION_9 - HandleAction_RunBattleScript, // ACTION_RUN_BATTLESCRIPT - HandleAction_Action11, // not sure about this one - HandleAction_ActionFinished, // ACTION_FINISHED - HandleAction_NothingIsFainted, // ACTION_NOTHING_FAINTED -}; - -static void (* const sEndTurnFuncsTable[])(void) = -{ - HandleEndTurn_ContinueBattle, // battle outcome 0 - HandleEndTurn_BattleWon, // B_OUTCOME_WON - HandleEndTurn_BattleLost, // B_OUTCOME_LOST - HandleEndTurn_BattleLost, // B_OUTCOME_DREW - HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN - HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED - HandleEndTurn_MonFled, // B_OUTCOME_POKE_FLED - HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT_POKE - HandleEndTurn_FinishBattle, // battle outcome 8 - HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED - HandleEndTurn_FinishBattle, // B_OUTCOME_POKE_TELEPORTED -}; - -const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$"); -const u8 gStatusConditionString_SleepJpn[8] = _("ねむり$$$$"); -const u8 gStatusConditionString_ParalysisJpn[8] = _("まひ$$$$$"); -const u8 gStatusConditionString_BurnJpn[8] = _("やけど$$$$"); -const u8 gStatusConditionString_IceJpn[8] = _("こおり$$$$"); -const u8 gStatusConditionString_ConfusionJpn[8] = _("こんらん$$$"); -const u8 gStatusConditionString_LoveJpn[8] = _("メロメロ$$$"); - -const u8 * const gStatusConditionStringsTable[7][2] = -{ - {gStatusConditionString_PoisonJpn, gText_Poison}, - {gStatusConditionString_SleepJpn, gText_Sleep}, - {gStatusConditionString_ParalysisJpn, gText_Paralysis}, - {gStatusConditionString_BurnJpn, gText_Burn}, - {gStatusConditionString_IceJpn, gText_Ice}, - {gStatusConditionString_ConfusionJpn, gText_Confusion}, - {gStatusConditionString_LoveJpn, gText_Love} -}; - -static const u8 sUnknown_0831BCE0[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}}; -static const u8 sUnknown_0831BCEF[] = {4, 3, 2, 1}; -static const u8 sUnknown_0831BCF3[] = {4, 4, 4, 4}; - -void CB2_InitBattle(void) -{ - MoveSaveBlocks_ResetHeap(); - AllocateBattleResources(); - AllocateBattleSpritesData(); - AllocateMonSpritesGfx(); - sub_8185F84(); - - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) - { - CB2_InitBattleInternal(); - } - else if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) - { - HandleLinkBattleSetup(); - SetMainCallback2(CB2_PreInitMultiBattle); - } - else - { - SetMainCallback2(CB2_PreInitIngamePlayerPartnerBattle); - } - gBattleCommunication[MULTIUSE_STATE] = 0; - } - else - { - CB2_InitBattleInternal(); - } -} - -static void CB2_InitBattleInternal(void) -{ - s32 i; - - SetHBlankCallback(NULL); - SetVBlankCallback(NULL); - - CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - - SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, 240); - SetGpuReg(REG_OFFSET_WIN0V, 0x5051); - SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0); - - gBattle_WIN0H = 240; - - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != STEVEN_PARTNER_ID) - { - gBattle_WIN0V = 159; - gBattle_WIN1H = 240; - gBattle_WIN1V = 32; - } - else - { - gBattle_WIN0V = 0x5051; - dp12_8087EA4(); - - for (i = 0; i < 80; i++) - { - gUnknown_02038C28.unk0[i] = 0xF0; - gUnknown_02038C28.unk780[i] = 0xF0; - } - for (i = 80; i < 160; i++) - { - #ifndef NONMATCHING - asm(""::"r"(i)); // needed to match - #endif // NONMATCHING - - gUnknown_02038C28.unk0[i] = 0xFF10; - gUnknown_02038C28.unk780[i] = 0xFF10; - } - - sub_80BA038(gUnknown_0831AC70); - } - - ResetPaletteFade(); - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gBattle_BG1_X = 0; - gBattle_BG1_Y = 0; - gBattle_BG2_X = 0; - gBattle_BG2_Y = 0; - gBattle_BG3_X = 0; - gBattle_BG3_Y = 0; - - gBattleTerrain = BattleSetup_GetTerrainId(); - if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) - gBattleTerrain = BATTLE_TERRAIN_BUILDING; - - sub_80356D0(); - LoadBattleTextboxAndBackground(); - ResetSpriteData(); - ResetTasks(); - LoadBattleEntryBackground(); - FreeAllSpritePalettes(); - gReservedSpritePaletteCount = 4; - SetVBlankCallback(VBlankCB_Battle); - SetUpBattleVarsAndBirchZigzagoon(); - - if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) - SetMainCallback2(CB2_HandleStartMultiPartnerBattle); - else if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) - SetMainCallback2(CB2_HandleStartMultiPartnerBattle); - else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - SetMainCallback2(CB2_HandleStartMultiBattle); - else - SetMainCallback2(CB2_HandleStartBattle); - - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED))) - { - CreateNPCTrainerParty(&gEnemyParty[0], gTrainerBattleOpponent_A, TRUE); - if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) - CreateNPCTrainerParty(&gEnemyParty[3], gTrainerBattleOpponent_B, FALSE); - SetWildMonHeldItem(); - } - - gMain.inBattle = TRUE; - gSaveBlock2Ptr->field_CA9_b = 0; - - for (i = 0; i < 6; i++) - AdjustFriendship(&gPlayerParty[i], 3); - - gBattleCommunication[MULTIUSE_STATE] = 0; -} - -static void sub_8036A5C(void) -{ - u16 r6 = 0; - u16 species = 0; - u16 hp = 0; - u32 status = 0; - s32 i; - - for (i = 0; i < PARTY_SIZE; i++) - { - species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r6 |= 1 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r6 |= 2 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp == 0) - r6 |= 3 << i * 2; - } - - gBattleStruct->field_182 = r6; - *(&gBattleStruct->field_183) = r6 >> 8; - gBattleStruct->field_183 |= FlagGet(FLAG_SYS_FRONTIER_PASS) << 7; -} - -static void SetPlayerBerryDataInBattleStruct(void) -{ - s32 i; - struct BattleStruct *battleStruct = gBattleStruct; - struct BattleEnigmaBerry *battleBerry = &battleStruct->battleEnigmaBerry; - - if (IsEnigmaBerryValid() == TRUE) - { - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) - battleBerry->name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; - battleBerry->name[i] = EOS; - - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) - battleBerry->itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; - - battleBerry->holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; - battleBerry->holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; - } - else - { - const struct Berry* berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); - - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) - battleBerry->name[i] = berryData->name[i]; - battleBerry->name[i] = EOS; - - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) - battleBerry->itemEffect[i] = 0; - - battleBerry->holdEffect = HOLD_EFFECT_NONE; - battleBerry->holdEffectParam = 0; - } -} - -static void SetAllPlayersBerryData(void) -{ - s32 i; - s32 j; - - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) - { - if (IsEnigmaBerryValid() == TRUE) - { - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) - { - gEnigmaBerries[0].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; - gEnigmaBerries[2].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; - } - gEnigmaBerries[0].name[i] = EOS; - gEnigmaBerries[2].name[i] = EOS; - - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) - { - gEnigmaBerries[0].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; - gEnigmaBerries[2].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; - } - - gEnigmaBerries[0].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; - gEnigmaBerries[2].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; - gEnigmaBerries[0].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; - gEnigmaBerries[2].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; - } - else - { - const struct Berry* berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); - - for (i = 0; i < BERRY_NAME_COUNT - 1; i++) - { - gEnigmaBerries[0].name[i] = berryData->name[i]; - gEnigmaBerries[2].name[i] = berryData->name[i]; - } - gEnigmaBerries[0].name[i] = EOS; - gEnigmaBerries[2].name[i] = EOS; - - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) - { - gEnigmaBerries[0].itemEffect[i] = 0; - gEnigmaBerries[2].itemEffect[i] = 0; - } - - gEnigmaBerries[0].holdEffect = 0; - gEnigmaBerries[2].holdEffect = 0; - gEnigmaBerries[0].holdEffectParam = 0; - gEnigmaBerries[2].holdEffectParam = 0; - } - } - else - { - s32 numPlayers; - struct BattleEnigmaBerry *src; - u8 r4; - - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) - numPlayers = 2; - else - numPlayers = 4; - - for (i = 0; i < numPlayers; i++) - { - src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); - r4 = gLinkPlayers[i].lp_field_18; - - for (j = 0; j < BERRY_NAME_COUNT - 1; j++) - gEnigmaBerries[r4].name[j] = src->name[j]; - gEnigmaBerries[r4].name[j] = EOS; - - for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; j++) - gEnigmaBerries[r4].itemEffect[j] = src->itemEffect[j]; - - gEnigmaBerries[r4].holdEffect = src->holdEffect; - gEnigmaBerries[r4].holdEffectParam = src->holdEffectParam; - } - } - else - { - for (i = 0; i < 2; i++) - { - src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); - - for (j = 0; j < BERRY_NAME_COUNT - 1; j++) - { - gEnigmaBerries[i].name[j] = src->name[j]; - gEnigmaBerries[i + 2].name[j] = src->name[j]; - } - gEnigmaBerries[i].name[j] = EOS; - gEnigmaBerries[i + 2].name[j] = EOS; - - for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; j++) - { - gEnigmaBerries[i].itemEffect[j] = src->itemEffect[j]; - gEnigmaBerries[i + 2].itemEffect[j] = src->itemEffect[j]; - } - - gEnigmaBerries[i].holdEffect = src->holdEffect; - gEnigmaBerries[i + 2].holdEffect = src->holdEffect; - gEnigmaBerries[i].holdEffectParam = src->holdEffectParam; - gEnigmaBerries[i + 2].holdEffectParam = src->holdEffectParam; - } - } - } -} - -static void sub_8036EB8(u8 arg0, u8 arg1) -{ - u8 var = 0; - - if (gBlockRecvBuffer[0][0] == 256) - { - if (arg1 == 0) - gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; - else - gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - var++; - } - - if (var == 0) - { - s32 i; - - for (i = 0; i < arg0; i++) - { - if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0]) - break; - } - - if (i == arg0) - { - if (arg1 == 0) - gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; - else - gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - var++; - } - - if (var == 0) - { - for (i = 0; i < arg0; i++) - { - if (gBlockRecvBuffer[i][0] == 0x300) - { - if (i != arg1 && i < arg1) - break; - } - if (gBlockRecvBuffer[i][0] > 0x300 && i != arg1) - break; - } - - if (i == arg0) - gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; - else - gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - } - } -} - -static void CB2_HandleStartBattle(void) -{ - u8 playerMultiplayerId; - u8 enemyMultiplayerId; - - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - - playerMultiplayerId = GetMultiplayerId(); - gBattleScripting.multiplayerId = playerMultiplayerId; - enemyMultiplayerId = playerMultiplayerId ^ BIT_SIDE; - - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - if (!IsDma3ManagerBusyWithBgCopy()) - { - ShowBg(0); - ShowBg(1); - ShowBg(2); - ShowBg(3); - sub_805EF14(); - gBattleCommunication[MULTIUSE_STATE] = 1; - } - if (gLinkVSyncDisabled) - sub_800E0E8(); - break; - case 1: - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - if (gReceivedRemoteLinkPlayers != 0) - { - if (sub_800A520()) - { - *(&gBattleStruct->field_180) = 0; - *(&gBattleStruct->field_181) = 3; - sub_8036A5C(); - SetPlayerBerryDataInBattleStruct(); - - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) - { - gLinkPlayers[0].lp_field_18 = 0; - gLinkPlayers[1].lp_field_18 = 1; - } - - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); - gBattleCommunication[MULTIUSE_STATE] = 2; - } - if (gLinkVSyncDisabled) - sub_800DFB4(0, 0); - } - } - else - { - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - gBattleTypeFlags |= BATTLE_TYPE_WILD; - gBattleCommunication[MULTIUSE_STATE] = 15; - SetAllPlayersBerryData(); - } - break; - case 2: - if ((GetBlockReceivedStatus() & 3) == 3) - { - u8 taskId; - - ResetBlockReceivedFlags(); - sub_8036EB8(2, playerMultiplayerId); - SetAllPlayersBerryData(); - taskId = CreateTask(sub_8035D74, 0); - gTasks[taskId].data[1] = 0x10E; - gTasks[taskId].data[2] = 0x5A; - gTasks[taskId].data[5] = 0; - gTasks[taskId].data[3] = gBattleStruct->field_182 | (gBattleStruct->field_183 << 8); - gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1]; - sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]); - sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]); - sub_8068AA4(); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 3: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 4: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - memcpy(gEnemyParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 7: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 8: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - memcpy(gEnemyParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 11: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 12: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - memcpy(gEnemyParty + 4, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - TryCorrectShedinjaLanguage(&gEnemyParty[0]); - TryCorrectShedinjaLanguage(&gEnemyParty[1]); - TryCorrectShedinjaLanguage(&gEnemyParty[2]); - TryCorrectShedinjaLanguage(&gEnemyParty[3]); - TryCorrectShedinjaLanguage(&gEnemyParty[4]); - TryCorrectShedinjaLanguage(&gEnemyParty[5]); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 15: - sub_8032768(); - sub_8184E58(); - gBattleCommunication[SPRITES_INIT_STATE1] = 0; - gBattleCommunication[SPRITES_INIT_STATE2] = 0; - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - s32 i; - - for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++); - - if (i == 2) - gBattleCommunication[MULTIUSE_STATE] = 16; - else - gBattleCommunication[MULTIUSE_STATE] = 18; - } - else - { - gBattleCommunication[MULTIUSE_STATE] = 18; - } - break; - case 16: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), &gRecordedBattleRngSeed, sizeof(gRecordedBattleRngSeed)); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 17: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) - memcpy(&gRecordedBattleRngSeed, gBlockRecvBuffer[enemyMultiplayerId], sizeof(gRecordedBattleRngSeed)); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 18: - if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2])) - { - gPreBattleCallback1 = gMain.callback1; - gMain.callback1 = BattleMainCB1; - SetMainCallback2(BattleMainCB2); - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - gBattleTypeFlags |= BATTLE_TYPE_20; - } - } - break; - case 5: - case 9: - case 13: - gBattleCommunication[MULTIUSE_STATE]++; - gBattleCommunication[1] = 1; - case 6: - case 10: - case 14: - if (--gBattleCommunication[1] == 0) - gBattleCommunication[MULTIUSE_STATE]++; - break; - } -} - -static void CB2_HandleStartMultiPartnerBattle(void) -{ - u8 playerMultiplayerId; - u8 enemyMultiplayerId; - - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - - playerMultiplayerId = GetMultiplayerId(); - gBattleScripting.multiplayerId = playerMultiplayerId; - enemyMultiplayerId = playerMultiplayerId ^ BIT_SIDE; - - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - if (!IsDma3ManagerBusyWithBgCopy()) - { - ShowBg(0); - ShowBg(1); - ShowBg(2); - ShowBg(3); - sub_805EF14(); - gBattleCommunication[MULTIUSE_STATE] = 1; - } - if (gLinkVSyncDisabled) - sub_800E0E8(); - // fall through - case 1: - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - if (gReceivedRemoteLinkPlayers != 0) - { - u8 language; - - gLinkPlayers[0].lp_field_18 = 0; - gLinkPlayers[1].lp_field_18 = 2; - gLinkPlayers[2].lp_field_18 = 1; - gLinkPlayers[3].lp_field_18 = 3; - GetFrontierTrainerName(gLinkPlayers[2].name, gTrainerBattleOpponent_A); - GetFrontierTrainerName(gLinkPlayers[3].name, gTrainerBattleOpponent_B); - sub_8165B88(&language, gTrainerBattleOpponent_A); - gLinkPlayers[2].language = language; - sub_8165B88(&language, gTrainerBattleOpponent_B); - gLinkPlayers[3].language = language; - - if (sub_800A520()) - { - *(&gBattleStruct->field_180) = 0; - *(&gBattleStruct->field_181) = 3; - sub_8036A5C(); - SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); - gBattleCommunication[MULTIUSE_STATE] = 2; - } - - if (gLinkVSyncDisabled) - sub_800DFB4(0, 0); - } - } - else - { - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - gBattleTypeFlags |= BATTLE_TYPE_WILD; - gBattleCommunication[MULTIUSE_STATE] = 13; - SetAllPlayersBerryData(); - } - break; - case 2: - if ((GetBlockReceivedStatus() & 3) == 3) - { - u8 taskId; - - ResetBlockReceivedFlags(); - sub_8036EB8(2, playerMultiplayerId); - SetAllPlayersBerryData(); - taskId = CreateTask(sub_8035D74, 0); - gTasks[taskId].data[1] = 0x10E; - gTasks[taskId].data[2] = 0x5A; - gTasks[taskId].data[5] = 0; - gTasks[taskId].data[3] = 0x145; - gTasks[taskId].data[4] = 0x145; - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 3: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 4: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (gLinkPlayers[playerMultiplayerId].lp_field_18 != 0) - { - memcpy(gPlayerParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - memcpy(gPlayerParty + 3, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2); - } - else - { - memcpy(gPlayerParty, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2); - memcpy(gPlayerParty + 3, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 5: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon)); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 6: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (gLinkPlayers[playerMultiplayerId].lp_field_18 != 0) - { - memcpy(gPlayerParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon)); - memcpy(gPlayerParty + 5, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon)); - } - else - { - memcpy(gPlayerParty + 2, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon)); - memcpy(gPlayerParty + 5, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon)); - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 7: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gEnemyParty, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 8: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (GetMultiplayerId() != 0) - { - memcpy(gEnemyParty, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2); - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 9: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gEnemyParty + 2, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 10: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (GetMultiplayerId() != 0) - { - memcpy(gEnemyParty + 2, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2); - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 11: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gEnemyParty + 4, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 12: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (GetMultiplayerId() != 0) - memcpy(gEnemyParty + 4, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2); - TryCorrectShedinjaLanguage(&gPlayerParty[0]); - TryCorrectShedinjaLanguage(&gPlayerParty[1]); - TryCorrectShedinjaLanguage(&gPlayerParty[2]); - TryCorrectShedinjaLanguage(&gPlayerParty[3]); - TryCorrectShedinjaLanguage(&gPlayerParty[4]); - TryCorrectShedinjaLanguage(&gPlayerParty[5]); - TryCorrectShedinjaLanguage(&gEnemyParty[0]); - TryCorrectShedinjaLanguage(&gEnemyParty[1]); - TryCorrectShedinjaLanguage(&gEnemyParty[2]); - TryCorrectShedinjaLanguage(&gEnemyParty[3]); - TryCorrectShedinjaLanguage(&gEnemyParty[4]); - TryCorrectShedinjaLanguage(&gEnemyParty[5]); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 13: - sub_8032768(); - sub_8184E58(); - gBattleCommunication[SPRITES_INIT_STATE1] = 0; - gBattleCommunication[SPRITES_INIT_STATE2] = 0; - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - gBattleCommunication[MULTIUSE_STATE] = 14; - } - else - { - gBattleCommunication[MULTIUSE_STATE] = 16; - } - break; - case 14: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), &gRecordedBattleRngSeed, sizeof(gRecordedBattleRngSeed)); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 15: - if ((GetBlockReceivedStatus() & 3) == 3) - { - ResetBlockReceivedFlags(); - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) - memcpy(&gRecordedBattleRngSeed, gBlockRecvBuffer[enemyMultiplayerId], sizeof(gRecordedBattleRngSeed)); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 16: - if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2])) - { - sub_8166188(); - gPreBattleCallback1 = gMain.callback1; - gMain.callback1 = BattleMainCB1; - SetMainCallback2(BattleMainCB2); - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - gBattleTypeFlags |= BATTLE_TYPE_20; - } - } - break; - } -} - -static void sub_80379F8(u8 arrayIdPlus) -{ - s32 i; - - for (i = 0; i < 3; i++) - { - gUnknown_02022FF8[i].species = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_SPECIES); - gUnknown_02022FF8[i].heldItem = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HELD_ITEM); - GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_NICKNAME, gUnknown_02022FF8[i].nickname); - gUnknown_02022FF8[i].level = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LEVEL); - gUnknown_02022FF8[i].hp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HP); - gUnknown_02022FF8[i].maxhp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_MAX_HP); - gUnknown_02022FF8[i].status = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_STATUS); - gUnknown_02022FF8[i].personality = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_PERSONALITY); - gUnknown_02022FF8[i].gender = GetMonGender(&gPlayerParty[arrayIdPlus + i]); - StripExtCtrlCodes(gUnknown_02022FF8[i].nickname); - if (GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE) - PadNameString(gUnknown_02022FF8[i].nickname, CHAR_SPACE); - } - memcpy(gUnknown_02023058, gUnknown_02022FF8, sizeof(gUnknown_02022FF8)); -} - -static void CB2_PreInitMultiBattle(void) -{ - s32 i; - u8 playerMultiplierId; - s32 numPlayers = 4; - u8 r4 = 0xF; - u32* savedBattleTypeFlags; - void (**savedCallback)(void); - - if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) - { - numPlayers = 2; - r4 = 3; - } - - playerMultiplierId = GetMultiplayerId(); - gBattleScripting.multiplayerId = playerMultiplierId; - savedCallback = &gBattleStruct->savedCallback; - savedBattleTypeFlags = &gBattleStruct->savedBattleTypeFlags; - - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - if (gReceivedRemoteLinkPlayers != 0 && sub_800A520()) - { - gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3); - sub_80379F8(0); - SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct2) * 3); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 1: - if ((GetBlockReceivedStatus() & r4) == r4) - { - ResetBlockReceivedFlags(); - for (i = 0; i < numPlayers; i++) - { - if (i == playerMultiplierId) - continue; - - if (numPlayers == 4) - { - if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplierId].lp_field_18 & 1)) - || (gLinkPlayers[i].lp_field_18 & 1 && gLinkPlayers[playerMultiplierId].lp_field_18 & 1)) - { - memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3); - } - } - else - { - memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3); - } - } - gBattleCommunication[MULTIUSE_STATE]++; - *savedCallback = gMain.savedCallback; - *savedBattleTypeFlags = gBattleTypeFlags; - gMain.savedCallback = CB2_PreInitMultiBattle; - sub_81B9150(); - } - break; - case 2: - if (sub_800A520() && !gPaletteFade.active) - { - gBattleCommunication[MULTIUSE_STATE]++; - if (gLinkVSyncDisabled) - sub_800ADF8(); - else - sub_800AC34(); - } - break; - case 3: - if (gLinkVSyncDisabled) - { - if (sub_8010500()) - { - gBattleTypeFlags = *savedBattleTypeFlags; - gMain.savedCallback = *savedCallback; - SetMainCallback2(CB2_InitBattleInternal); - Free(gUnknown_02023058); - gUnknown_02023058 = NULL; - } - } - else if (gReceivedRemoteLinkPlayers == 0) - { - gBattleTypeFlags = *savedBattleTypeFlags; - gMain.savedCallback = *savedCallback; - SetMainCallback2(CB2_InitBattleInternal); - Free(gUnknown_02023058); - gUnknown_02023058 = NULL; - } - break; - } -} - -static void CB2_PreInitIngamePlayerPartnerBattle(void) -{ - u32* savedBattleTypeFlags; - void (**savedCallback)(void); - - savedCallback = &gBattleStruct->savedCallback; - savedBattleTypeFlags = &gBattleStruct->savedBattleTypeFlags; - - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3); - sub_80379F8(3); - gBattleCommunication[MULTIUSE_STATE]++; - *savedCallback = gMain.savedCallback; - *savedBattleTypeFlags = gBattleTypeFlags; - gMain.savedCallback = CB2_PreInitIngamePlayerPartnerBattle; - sub_81B9150(); - break; - case 1: - if (!gPaletteFade.active) - { - gBattleCommunication[MULTIUSE_STATE] = 2; - gBattleTypeFlags = *savedBattleTypeFlags; - gMain.savedCallback = *savedCallback; - SetMainCallback2(CB2_InitBattleInternal); - Free(gUnknown_02023058); - gUnknown_02023058 = NULL; - } - break; - } -} - -static void CB2_HandleStartMultiBattle(void) -{ - u8 playerMultiplayerId; - s32 id; - u8 var; - - playerMultiplayerId = GetMultiplayerId(); - gBattleScripting.multiplayerId = playerMultiplayerId; - - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - if (!IsDma3ManagerBusyWithBgCopy()) - { - ShowBg(0); - ShowBg(1); - ShowBg(2); - ShowBg(3); - sub_805EF14(); - gBattleCommunication[MULTIUSE_STATE] = 1; - } - if (gLinkVSyncDisabled) - sub_800E0E8(); - break; - case 1: - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - if (gReceivedRemoteLinkPlayers != 0) - { - if (sub_800A520()) - { - *(&gBattleStruct->field_180) = 0; - *(&gBattleStruct->field_181) = 3; - sub_8036A5C(); - SetPlayerBerryDataInBattleStruct(); - - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); - gBattleCommunication[MULTIUSE_STATE]++; - } - if (gLinkVSyncDisabled) - sub_800DFB4(0, 0); - } - } - else - { - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - gBattleTypeFlags |= BATTLE_TYPE_WILD; - gBattleCommunication[MULTIUSE_STATE] = 7; - SetAllPlayersBerryData(); - } - break; - case 2: - if ((GetBlockReceivedStatus() & 0xF) == 0xF) - { - ResetBlockReceivedFlags(); - sub_8036EB8(4, playerMultiplayerId); - SetAllPlayersBerryData(); - sub_8068AA4(); - var = CreateTask(sub_8035D74, 0); - gTasks[var].data[1] = 0x10E; - gTasks[var].data[2] = 0x5A; - gTasks[var].data[5] = 0; - gTasks[var].data[3] = 0; - gTasks[var].data[4] = 0; - - for (id = 0; id < MAX_LINK_PLAYERS; id++) - { - sub_8185F90(gBlockRecvBuffer[id][1]); - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - gTasks[var].data[3] |= gBlockRecvBuffer[id][1] & 0x3F; - break; - case 1: - gTasks[var].data[4] |= gBlockRecvBuffer[id][1] & 0x3F; - break; - case 2: - gTasks[var].data[3] |= (gBlockRecvBuffer[id][1] & 0x3F) << 6; - break; - case 3: - gTasks[var].data[4] |= (gBlockRecvBuffer[id][1] & 0x3F) << 6; - break; - } - } - ZeroEnemyPartyMons(); - gBattleCommunication[MULTIUSE_STATE]++; - } - else - break; - // fall through - case 3: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 4: - if ((GetBlockReceivedStatus() & 0xF) == 0xF) - { - ResetBlockReceivedFlags(); - for (id = 0; id < MAX_LINK_PLAYERS; id++) - { - if (id == playerMultiplayerId) - { - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - case 3: - memcpy(gPlayerParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); - break; - case 1: - case 2: - memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); - break; - } - } - else - { - if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplayerId].lp_field_18 & 1)) - || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerMultiplayerId].lp_field_18 & 1))) - { - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - case 3: - memcpy(gPlayerParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); - break; - case 1: - case 2: - memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); - break; - } - } - else - { - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - case 3: - memcpy(gEnemyParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); - break; - case 1: - case 2: - memcpy(gEnemyParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); - break; - } - } - } - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 5: - if (sub_800A520()) - { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon)); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 6: - if ((GetBlockReceivedStatus() & 0xF) == 0xF) - { - ResetBlockReceivedFlags(); - for (id = 0; id < MAX_LINK_PLAYERS; id++) - { - if (id == playerMultiplayerId) - { - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - case 3: - memcpy(gPlayerParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon)); - break; - case 1: - case 2: - memcpy(gPlayerParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon)); - break; - } - } - else - { - if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplayerId].lp_field_18 & 1)) - || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerMultiplayerId].lp_field_18 & 1))) - { - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - case 3: - memcpy(gPlayerParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon)); - break; - case 1: - case 2: - memcpy(gPlayerParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon)); - break; - } - } - else - { - switch (gLinkPlayers[id].lp_field_18) - { - case 0: - case 3: - memcpy(gEnemyParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon)); - break; - case 1: - case 2: - memcpy(gEnemyParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon)); - break; - } - } - } - } - TryCorrectShedinjaLanguage(&gPlayerParty[0]); - TryCorrectShedinjaLanguage(&gPlayerParty[1]); - TryCorrectShedinjaLanguage(&gPlayerParty[2]); - TryCorrectShedinjaLanguage(&gPlayerParty[3]); - TryCorrectShedinjaLanguage(&gPlayerParty[4]); - TryCorrectShedinjaLanguage(&gPlayerParty[5]); - - TryCorrectShedinjaLanguage(&gEnemyParty[0]); - TryCorrectShedinjaLanguage(&gEnemyParty[1]); - TryCorrectShedinjaLanguage(&gEnemyParty[2]); - TryCorrectShedinjaLanguage(&gEnemyParty[3]); - TryCorrectShedinjaLanguage(&gEnemyParty[4]); - TryCorrectShedinjaLanguage(&gEnemyParty[5]); - - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 7: - sub_8032768(); - sub_8184E58(); - gBattleCommunication[SPRITES_INIT_STATE1] = 0; - gBattleCommunication[SPRITES_INIT_STATE2] = 0; - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - for (id = 0; id < 4 && (gLinkPlayers[id].version & 0xFF) == 3; id++); - - if (id == 4) - gBattleCommunication[MULTIUSE_STATE] = 8; - else - gBattleCommunication[MULTIUSE_STATE] = 10; - } - else - { - gBattleCommunication[MULTIUSE_STATE] = 10; - } - break; - case 8: - if (sub_800A520()) - { - u32* ptr = (u32*)(&gBattleStruct->field_180); - ptr[0] = gBattleTypeFlags; - ptr[1] = gRecordedBattleRngSeed; // UB: overwrites berry data - SendBlock(bitmask_all_link_players_but_self(), ptr, 8); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 9: - if ((GetBlockReceivedStatus() & 0xF) == 0xF) - { - ResetBlockReceivedFlags(); - for (var = 0; var < 4; var++) - { - u32 blockValue = gBlockRecvBuffer[var][0]; - if (blockValue & 4) - { - memcpy(&gRecordedBattleRngSeed, &gBlockRecvBuffer[var][2], sizeof(gRecordedBattleRngSeed)); - break; - } - } - - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 10: - if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2])) - { - gPreBattleCallback1 = gMain.callback1; - gMain.callback1 = BattleMainCB1; - SetMainCallback2(BattleMainCB2); - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - gTrainerBattleOpponent_A = TRAINER_OPPONENT_800; - gBattleTypeFlags |= BATTLE_TYPE_20; - } - } - break; - } -} - -void BattleMainCB2(void) -{ - AnimateSprites(); - BuildOamBuffer(); - RunTextPrinters(); - UpdatePaletteFade(); - RunTasks(); - - if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450()) - { - gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; - ResetPaletteFadeControl(); - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - SetMainCallback2(CB2_QuitRecordedBattle); - } -} - -static void FreeRestoreBattleData(void) -{ - gMain.callback1 = gPreBattleCallback1; - gUnknown_02039B28[0x15] = 3; - gMain.inBattle = 0; - ZeroEnemyPartyMons(); - m4aSongNumStop(0x5A); - FreeMonSpritesGfx(); - FreeBattleSpritesData(); - FreeBattleResources(); -} - -void CB2_QuitRecordedBattle(void) -{ - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - m4aMPlayStop(&gMPlayInfo_SE1); - m4aMPlayStop(&gMPlayInfo_SE2); - FreeRestoreBattleData(); - FreeAllWindowBuffers(); - SetMainCallback2(gMain.savedCallback); - } -} - -void sub_8038528(struct Sprite* sprite) -{ - sprite->data[0] = 0; - sprite->callback = sub_8038538; -} - -static void sub_8038538(struct Sprite *sprite) -{ - u16 *arr = (u16*)(gDecompressionBuffer); - - switch (sprite->data[0]) - { - case 0: - sprite->data[0]++; - sprite->data[1] = 0; - sprite->data[2] = 0x281; - sprite->data[3] = 0; - sprite->data[4] = 1; - // fall through - case 1: - sprite->data[4]--; - if (sprite->data[4] == 0) - { - s32 i; - s32 r2; - s32 r0; - - sprite->data[4] = 2; - r2 = sprite->data[1] + sprite->data[3] * 32; - r0 = sprite->data[2] - sprite->data[3] * 32; - for (i = 0; i < 29; i += 2) - { - arr[r2 + i] = 0x3D; - arr[r0 + i] = 0x3D; - } - sprite->data[3]++; - if (sprite->data[3] == 21) - { - sprite->data[0]++; - sprite->data[1] = 32; - } - } - break; - case 2: - sprite->data[1]--; - if (sprite->data[1] == 20) - SetMainCallback2(CB2_InitBattle); - break; - } -} - -static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer) -{ - u32 nameHash = 0; - u32 personalityValue; - u8 fixedIV; - s32 i, j; - u8 monsCount; - - if (trainerNum == SECRET_BASE_OPPONENT) - return 0; - - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER - | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_x4000000))) - { - if (firstTrainer == TRUE) - ZeroEnemyPartyMons(); - - if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) - { - if (gTrainers[trainerNum].partySize > 3) - monsCount = 3; - else - monsCount = gTrainers[trainerNum].partySize; - } - else - { - monsCount = gTrainers[trainerNum].partySize; - } - - for (i = 0; i < monsCount; i++) - { - - if (gTrainers[trainerNum].doubleBattle == TRUE) - personalityValue = 0x80; - else if (gTrainers[trainerNum].encounterMusic_gender & 0x80) - personalityValue = 0x78; - else - personalityValue = 0x88; - - for (j = 0; gTrainers[trainerNum].trainerName[j] != 0xFF; j++) - nameHash += gTrainers[trainerNum].trainerName[j]; - - switch (gTrainers[trainerNum].partyFlags) - { - case 0: - { - const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves; - - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) - nameHash += gSpeciesNames[partyData[i].species][j]; - - personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; - CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); - break; - } - case F_TRAINER_PARTY_CUSTOM_MOVESET: - { - const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves; - - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) - nameHash += gSpeciesNames[partyData[i].species][j]; - - personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; - CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0); - - for (j = 0; j < 4; j++) - { - SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); - SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); - } - break; - } - case F_TRAINER_PARTY_HELD_ITEM: - { - const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves; - - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) - nameHash += gSpeciesNames[partyData[i].species][j]; - - personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; - CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0); - - SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); - break; - } - case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM: - { - const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves; - - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) - nameHash += gSpeciesNames[partyData[i].species][j]; - - personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; - CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0); - - SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); - - for (j = 0; j < 4; j++) - { - SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); - SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); - } - break; - } - } - } - - gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle; - } - - return gTrainers[trainerNum].partySize; -} - -void sub_8038A04(void) // unused -{ - if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F) - SetGpuReg(REG_OFFSET_BG0CNT, 0x9800); -} - -void VBlankCB_Battle(void) -{ - // change gRngSeed every vblank unless the battle could be recorded - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED))) - Random(); - - SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); - SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); - SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); - SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); - SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); - SetGpuReg(REG_OFFSET_BG3HOFS, gBattle_BG3_X); - SetGpuReg(REG_OFFSET_BG3VOFS, gBattle_BG3_Y); - SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); - SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); - SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H); - SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V); - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); - sub_80BA0A8(); -} - -void nullsub_17(void) -{ - -} - -static void sub_8038B04(struct Sprite *sprite) -{ - if (sprite->data[0] != 0) - sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); - else - sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); - - sprite->data[2] += 0x180; - - if (sprite->affineAnimEnded) - { - FreeSpriteTilesByTag(0x2710); - FreeSpritePaletteByTag(0x2710); - FreeSpriteOamMatrix(sprite); - DestroySprite(sprite); - } -} - -void sub_8038B74(struct Sprite *sprite) -{ - StartSpriteAffineAnim(sprite, 1); - sprite->callback = sub_8038B04; - PlaySE(SE_BT_START); -} - -static void sub_8038B94(u8 taskId) -{ - struct Pokemon *sp4 = NULL; - struct Pokemon *sp8 = NULL; - u8 r2 = gBattleScripting.multiplayerId; - u32 r7; - s32 i; - - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - switch (gLinkPlayers[r2].lp_field_18) - { - case 0: - case 2: - sp4 = gPlayerParty; - sp8 = gEnemyParty; - break; - case 1: - case 3: - sp4 = gEnemyParty; - sp8 = gPlayerParty; - break; - } - } - else - { - sp4 = gPlayerParty; - sp8 = gEnemyParty; - } - - r7 = 0; - for (i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2); - u16 hp = GetMonData(&sp4[i], MON_DATA_HP); - u32 status = GetMonData(&sp4[i], MON_DATA_STATUS); - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r7 |= 1 << i * 2; - - if (species == 0) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r7 |= 2 << i * 2; - - if (species == 0) - continue; - if (species != SPECIES_EGG && hp == 0) - r7 |= 3 << i * 2; - } - gTasks[taskId].data[3] = r7; - - r7 = 0; - for (i = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2); - u16 hp = GetMonData(&sp8[i], MON_DATA_HP); - u32 status = GetMonData(&sp8[i], MON_DATA_STATUS); - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r7 |= 1 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r7 |= 2 << i * 2; - - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp == 0) - r7 |= 3 << i * 2; - } - gTasks[taskId].data[4] = r7; -} - -void sub_8038D64(void) -{ - s32 i; - u8 taskId; - - SetHBlankCallback(NULL); - SetVBlankCallback(NULL); - gBattleTypeFlags &= ~(BATTLE_TYPE_20); - - if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) - { - SetMainCallback2(gMain.savedCallback); - FreeBattleResources(); - FreeBattleSpritesData(); - FreeMonSpritesGfx(); - } - else - { - CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0x5051); - SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0); - gBattle_WIN0H = 0xF0; - gBattle_WIN0V = 0x5051; - dp12_8087EA4(); - - for (i = 0; i < 80; i++) - { - gUnknown_02038C28.unk0[i] = 0xF0; - gUnknown_02038C28.unk780[i] = 0xF0; - } - for (i = 80; i < 160; i++) - { - asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter - gUnknown_02038C28.unk0[i] = 0xFF10; - gUnknown_02038C28.unk780[i] = 0xFF10; - } - - ResetPaletteFade(); - - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gBattle_BG1_X = 0; - gBattle_BG1_Y = 0; - gBattle_BG2_X = 0; - gBattle_BG2_Y = 0; - gBattle_BG3_X = 0; - gBattle_BG3_Y = 0; - - sub_80356D0(); - LoadCompressedPalette(gBattleTextboxPalette, 0, 64); - ApplyPlayerChosenFrameToBattleMenu(); - ResetSpriteData(); - ResetTasks(); - LoadBattleEntryBackground(); - SetGpuReg(REG_OFFSET_WINOUT, 0x37); - FreeAllSpritePalettes(); - gReservedSpritePaletteCount = 4; - SetVBlankCallback(VBlankCB_Battle); - - taskId = CreateTask(sub_8035D74, 0); - gTasks[taskId].data[1] = 0x10E; - gTasks[taskId].data[2] = 0x5A; - gTasks[taskId].data[5] = 1; - sub_8038B94(taskId); - SetMainCallback2(sub_8038F14); - gBattleCommunication[MULTIUSE_STATE] = 0; - } -} - -static void sub_8038F14(void) -{ - sub_8038F34(); - AnimateSprites(); - BuildOamBuffer(); - RunTextPrinters(); - UpdatePaletteFade(); - RunTasks(); -} - -static void sub_8038F34(void) -{ - s32 i; - - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - ShowBg(0); - ShowBg(1); - ShowBg(2); - gBattleCommunication[1] = 0xFF; - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 1: - if (--gBattleCommunication[1] == 0) - { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 2: - if (!gPaletteFade.active) - { - u8 monsCount; - - gMain.field_439_x4 = sub_8185FAC(); - - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - monsCount = 4; - else - monsCount = 2; - - for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++); - - if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount) - { - if (FlagGet(FLAG_SYS_FRONTIER_PASS)) - { - FreeAllWindowBuffers(); - SetMainCallback2(sub_80392A8); - } - else if (!gMain.field_439_x4) - { - SetMainCallback2(gMain.savedCallback); - FreeBattleResources(); - FreeBattleSpritesData(); - FreeMonSpritesGfx(); - } - else if (gReceivedRemoteLinkPlayers == 0) - { - CreateTask(sub_80B3AF8, 5); - gBattleCommunication[MULTIUSE_STATE]++; - } - else - { - gBattleCommunication[MULTIUSE_STATE]++; - } - } - else - { - SetMainCallback2(gMain.savedCallback); - FreeBattleResources(); - FreeBattleSpritesData(); - FreeMonSpritesGfx(); - } - } - break; - case 3: - CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - - for (i = 0; i < 2; i++) - LoadChosenBattleElement(i); - - BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 4: - if (!gPaletteFade.active) - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 5: - if (!FuncIsActiveTask(sub_80B3AF8)) - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 6: - if (sub_800A520() == TRUE) - { - sub_800ADF8(); - BattleHandleAddTextPrinter(gText_LinkStandby3, 0); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 7: - if (!IsTextPrinterActive(0)) - { - if (sub_800A520() == TRUE) - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 8: - if (!gLinkVSyncDisabled) - sub_800AC34(); - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 9: - if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1) - { - gMain.field_439_x4 = 0; - SetMainCallback2(gMain.savedCallback); - FreeBattleResources(); - FreeBattleSpritesData(); - FreeMonSpritesGfx(); - } - break; - } -} - -u32 sub_80391E0(u8 arrayId, u8 caseId) -{ - u32 ret = 0; - - switch (caseId) - { - case 0: - ret = gUnknown_0831AA08[arrayId].bg; - break; - case 1: - ret = gUnknown_0831AA08[arrayId].charBaseIndex; - break; - case 2: - ret = gUnknown_0831AA08[arrayId].mapBaseIndex; - break; - case 3: - ret = gUnknown_0831AA08[arrayId].screenSize; - break; - case 4: - ret = gUnknown_0831AA08[arrayId].paletteMode; - break; - case 5: - ret = gUnknown_0831AA08[arrayId].priority; - break; - case 6: - ret = gUnknown_0831AA08[arrayId].baseTile; - break; - } - - return ret; -} - -static void sub_80392A8(void) -{ - s32 i; - - SetHBlankCallback(NULL); - SetVBlankCallback(NULL); - CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - ResetPaletteFade(); - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gBattle_BG1_X = 0; - gBattle_BG1_Y = 0; - gBattle_BG2_X = 0; - gBattle_BG2_Y = 0; - gBattle_BG3_X = 0; - gBattle_BG3_Y = 0; - sub_80356D0(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - ApplyPlayerChosenFrameToBattleMenu(); - - for (i = 0; i < 2; i++) - LoadChosenBattleElement(i); - - ResetSpriteData(); - ResetTasks(); - FreeAllSpritePalettes(); - gReservedSpritePaletteCount = 4; - SetVBlankCallback(VBlankCB_Battle); - SetMainCallback2(sub_803937C); - BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); - gBattleCommunication[MULTIUSE_STATE] = 0; -} - -static void sub_803937C(void) -{ - sub_803939C(); - AnimateSprites(); - BuildOamBuffer(); - RunTextPrinters(); - UpdatePaletteFade(); - RunTasks(); -} - -static void sub_803939C(void) -{ - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - ShowBg(0); - ShowBg(1); - ShowBg(2); - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 1: - if (gMain.field_439_x4 && gReceivedRemoteLinkPlayers == 0) - CreateTask(sub_80B3AF8, 5); - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 2: - if (!FuncIsActiveTask(sub_80B3AF8)) - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 3: - if (!gPaletteFade.active) - { - BattleHandleAddTextPrinter(gText_RecordBattleToPass, 0); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 4: - if (!IsTextPrinterActive(0)) - { - HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0); - BattleHandleAddTextPrinter(gText_BattleYesNoChoice, 0xC); - gBattleCommunication[CURSOR_POSITION] = 1; - BattleCreateYesNoCursorAt(1); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 5: - if (gMain.newKeys & DPAD_UP) - { - if (gBattleCommunication[CURSOR_POSITION] != 0) - { - PlaySE(SE_SELECT); - BattleDestroyYesNoCursorAt(gBattleCommunication[CURSOR_POSITION]); - gBattleCommunication[CURSOR_POSITION] = 0; - BattleCreateYesNoCursorAt(0); - } - } - else if (gMain.newKeys & DPAD_DOWN) - { - if (gBattleCommunication[CURSOR_POSITION] == 0) - { - PlaySE(SE_SELECT); - BattleDestroyYesNoCursorAt(gBattleCommunication[CURSOR_POSITION]); - gBattleCommunication[CURSOR_POSITION] = 1; - BattleCreateYesNoCursorAt(1); - } - } - else if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - if (gBattleCommunication[CURSOR_POSITION] == 0) - { - HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); - gBattleCommunication[1] = MoveRecordedBattleToSaveData(); - gBattleCommunication[MULTIUSE_STATE] = 10; - } - else - { - gBattleCommunication[MULTIUSE_STATE]++; - } - } - else if (gMain.newKeys & B_BUTTON) - { - PlaySE(SE_SELECT); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 6: - if (sub_800A520() == TRUE) - { - HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); - if (gMain.field_439_x4) - { - sub_800ADF8(); - BattleHandleAddTextPrinter(gText_LinkStandby3, 0); - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 8: - if (--gBattleCommunication[1] == 0) - { - if (gMain.field_439_x4 && !gLinkVSyncDisabled) - sub_800AC34(); - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 9: - if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1) - { - gMain.field_439_x4 = 0; - if (!gPaletteFade.active) - { - SetMainCallback2(gMain.savedCallback); - FreeBattleResources(); - FreeBattleSpritesData(); - FreeMonSpritesGfx(); - } - } - break; - case 10: - if (gBattleCommunication[1] == 1) - { - PlaySE(SE_SAVE); - BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordedOnPass); - BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleCommunication[1] = 0x80; - gBattleCommunication[MULTIUSE_STATE]++; - } - else - { - BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordCouldntBeSaved); - BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleCommunication[1] = 0x80; - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 11: - if (sub_800A520() == TRUE && !IsTextPrinterActive(0) && --gBattleCommunication[1] == 0) - { - if (gMain.field_439_x4) - { - sub_800ADF8(); - BattleHandleAddTextPrinter(gText_LinkStandby3, 0); - } - gBattleCommunication[MULTIUSE_STATE]++; - } - break; - case 12: - case 7: - if (!IsTextPrinterActive(0)) - { - if (gMain.field_439_x4) - { - if (sub_800A520() == TRUE) - { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattleCommunication[1] = 0x20; - gBattleCommunication[MULTIUSE_STATE] = 8; - } - - } - else - { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattleCommunication[1] = 0x20; - gBattleCommunication[MULTIUSE_STATE] = 8; - } - } - break; - } -} - -static void TryCorrectShedinjaLanguage(struct Pokemon *mon) -{ - u8 nickname[POKEMON_NAME_LENGTH + 1]; - u8 language = LANGUAGE_JAPANESE; - - if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA - && GetMonData(mon, MON_DATA_LANGUAGE) != language) - { - GetMonData(mon, MON_DATA_NICKNAME, nickname); - if (StringCompareWithoutExtCtrlCodes(nickname, gText_ShedinjaJapaneseName) == 0) - SetMonData(mon, MON_DATA_LANGUAGE, &language); - } -} - -u32 sub_80397C4(u32 setId, u32 tableId) -{ - return gUnknown_0831ABA0[setId][tableId].width * 8; -} - -#define tBank data[0] -#define tSpeciesId data[2] - -void oac_poke_opponent(struct Sprite *sprite) -{ - sprite->callback = sub_803980C; - StartSpriteAnimIfDifferent(sprite, 0); - BeginNormalPaletteFade(0x20000, 0, 10, 10, 0x2108); -} - -static void sub_803980C(struct Sprite *sprite) -{ - if ((gUnknown_020243FC & 1) == 0) - { - sprite->pos2.x += 2; - if (sprite->pos2.x == 0) - { - sprite->callback = sub_8039838; - } - } -} - -static void sub_8039838(struct Sprite *sprite) -{ - if (sprite->animEnded) - { - sub_8076918(sprite->tBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]); - sprite->callback = sub_8039894; - StartSpriteAnimIfDifferent(sprite, 0); - BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108); - } -} - -static void sub_8039894(struct Sprite *sprite) -{ - if (!gPaletteFade.active) - { - BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, FALSE, 1); - } -} - -void SpriteCallbackDummy_2(struct Sprite *sprite) -{ - -} - -static void sub_80398BC(struct Sprite *sprite) // unused? -{ - sprite->data[3] = 6; - sprite->data[4] = 1; - sprite->callback = sub_80398D0; -} - -static void sub_80398D0(struct Sprite *sprite) -{ - sprite->data[4]--; - if (sprite->data[4] == 0) - { - sprite->data[4] = 8; - sprite->invisible ^= 1; - sprite->data[3]--; - if (sprite->data[3] == 0) - { - sprite->invisible = FALSE; - sprite->callback = SpriteCallbackDummy_2; - gUnknown_02022F88 = 0; - } - } -} - -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct MonCoords gCastformFrontSpriteCoords[]; - -void sub_8039934(struct Sprite *sprite) -{ - u8 bank = sprite->tBank; - u16 species; - u8 yOffset; - - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != 0) - species = gBattleSpritesDataPtr->bankData[bank].transformSpecies; - else - species = sprite->tSpeciesId; - - GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); // Unused return value - - if (species == SPECIES_UNOWN) - { - u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); - u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); - u16 unownSpecies; - - if (unownForm == 0) - unownSpecies = SPECIES_UNOWN; // Use the A Unown form - else - unownSpecies = NUM_SPECIES + unownForm; // Use one of the other Unown letters - - yOffset = gMonFrontPicCoords[unownSpecies].y_offset; - } - else if (species == SPECIES_CASTFORM) - { - yOffset = gCastformFrontSpriteCoords[gBattleMonForms[bank]].y_offset; - } - else if (species > NUM_SPECIES) - { - yOffset = gMonFrontPicCoords[SPECIES_NONE].y_offset; - } - else - { - yOffset = gMonFrontPicCoords[species].y_offset; - } - - sprite->data[3] = 8 - yOffset / 8; - sprite->data[4] = 1; - sprite->callback = sub_8039A48; -} - -static void sub_8039A48(struct Sprite *sprite) -{ - s32 i; - - sprite->data[4]--; - if (sprite->data[4] == 0) - { - sprite->data[4] = 2; - sprite->pos2.y += 8; - sprite->data[3]--; - if (sprite->data[3] < 0) - { - FreeSpriteOamMatrix(sprite); - DestroySprite(sprite); - } - else - { - u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankPosition(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); - - for (i = 0; i < 0x100; i++) - *(dst++) = 0; - - StartSpriteAnim(sprite, gBattleMonForms[sprite->tBank]); - } - } -} - -void sub_8039AD8(struct Sprite *sprite) -{ - sprite->data[3] = 8; - sprite->data[4] = sprite->invisible; - sprite->callback = sub_8039AF4; -} - -static void sub_8039AF4(struct Sprite *sprite) -{ - sprite->data[3]--; - if (sprite->data[3] == 0) - { - sprite->invisible ^= 1; - sprite->data[3] = 8; - } -} - -void sub_8039B2C(struct Sprite *sprite) -{ - sprite->invisible = sprite->data[4]; - sprite->data[4] = FALSE; - sprite->callback = SpriteCallbackDummy_2; -} - -void sub_8039B58(struct Sprite *sprite) -{ - if (sprite->affineAnimEnded) - { - if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - { - if (HasTwoFramesAnimation(sprite->tSpeciesId)) - StartSpriteAnim(sprite, 1); - } - BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, TRUE, 1); - } -} - -void sub_8039BB4(struct Sprite *sprite) -{ - sprite->callback = oac_poke_ally_; -} - -static void oac_poke_ally_(struct Sprite *sprite) -{ - if ((gUnknown_020243FC & 1) == 0) - { - sprite->pos2.x -= 2; - if (sprite->pos2.x == 0) - { - sprite->callback = SpriteCallbackDummy_3; - sprite->data[1] = 0; - } - } -} - -void sub_80105DC(struct Sprite *sprite) -{ - sprite->callback = SpriteCallbackDummy_3; -} - -static void SpriteCallbackDummy_3(struct Sprite *sprite) -{ -} - -void sub_8039C00(struct Sprite *sprite) -{ - if (!(gUnknown_020243FC & 1)) - { - sprite->pos2.x += sprite->data[1]; - sprite->pos2.y += sprite->data[2]; - } -} - -void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) -{ - u8 bounceHealthBoxSpriteId; - u8 spriteId2; - - if (b) - { - if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) - return; - } - else - { - if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) - return; - } - - bounceHealthBoxSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HealthBoxBounce); - if (b == TRUE) - { - spriteId2 = gHealthBoxesIds[bank]; - gBattleSpritesDataPtr->healthBoxesData[bank].field_2 = bounceHealthBoxSpriteId; - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 1; - gSprites[bounceHealthBoxSpriteId].data[0] = 0x80; - } - else - { - spriteId2 = gBankSpriteIds[bank]; - gBattleSpritesDataPtr->healthBoxesData[bank].field_3 = bounceHealthBoxSpriteId; - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 1; - gSprites[bounceHealthBoxSpriteId].data[0] = 0xC0; - } - gSprites[bounceHealthBoxSpriteId].data[1] = c; - gSprites[bounceHealthBoxSpriteId].data[2] = d; - gSprites[bounceHealthBoxSpriteId].data[3] = spriteId2; - gSprites[bounceHealthBoxSpriteId].data[4] = b; - gSprites[spriteId2].pos2.x = 0; - gSprites[spriteId2].pos2.y = 0; -} - -void dp11b_obj_free(u8 bank, bool8 b) -{ - u8 r4; - - if (b == TRUE) - { - if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) - return; - - r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2].data[3]; - DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2]); - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 0; - } - else - { - if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) - return; - - r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3].data[3]; - DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3]); - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 0; - } - gSprites[r4].pos2.x = 0; - gSprites[r4].pos2.y = 0; -} - -static void SpriteCB_HealthBoxBounce(struct Sprite *sprite) -{ - u8 spriteId = sprite->data[3]; - s32 var; - - if (sprite->data[4] == 1) - var = sprite->data[0]; - else - var = sprite->data[0]; - - gSprites[spriteId].pos2.y = Sin(var, sprite->data[2]) + sprite->data[2]; - sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; -} - -void sub_8039E44(struct Sprite *sprite) -{ - if (sprite->affineAnimEnded) - BattleAnimateBackSprite(sprite, sprite->tSpeciesId); -} - -void sub_8039E60(struct Sprite *sprite) -{ - sub_8039E9C(sprite); - if (sprite->animEnded) - sprite->callback = SpriteCallbackDummy_3; -} - -void sub_8039E84(struct Sprite *sprite) -{ - StartSpriteAnim(sprite, 1); - sprite->callback = sub_8039E60; -} - -void sub_8039E9C(struct Sprite *sprite) -{ - if (sprite->animDelayCounter == 0) - sprite->centerToCornerVecX = gUnknown_0831ACE0[sprite->animCmdIndex]; -} - -void nullsub_20(void) -{ - -} - -void BeginBattleIntro(void) -{ - BattleStartClearSetData(); - gBattleCommunication[1] = 0; - gBattleMainFunc = BattleIntroGetMonsData; -} - -static void BattleMainCB1(void) -{ - gBattleMainFunc(); - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - gBattleBankFunc[gActiveBank](); -} - -static void BattleStartClearSetData(void) -{ - s32 i; - u32 j; - u8 *dataPtr; - - TurnValuesCleanUp(FALSE); - SpecialStatusesClear(); - - for (i = 0; i < BATTLE_BANKS_COUNT; i++) - { - gStatuses3[i] = 0; - - dataPtr = (u8 *)&gDisableStructs[i]; - for (j = 0; j < sizeof(struct DisableStruct); j++) - dataPtr[j] = 0; - - gDisableStructs[i].isFirstTurn = 2; - gUnknown_02024284[i] = 0; - gLastMoves[i] = 0; - gLastLandedMoves[i] = 0; - gLastHitByType[i] = 0; - gLastResultingMoves[i] = 0; - gLastHitBy[i] = 0xFF; - gLockedMoves[i] = 0; - gLastPrintedMoves[i] = 0; - gBattleResources->flags->flags[i] = 0; - gPalaceSelectionBattleScripts[i] = 0; - } - - for (i = 0; i < 2; i++) - { - gSideStatuses[i] = 0; - - dataPtr = (u8 *)&gSideTimers[i]; - for (j = 0; j < sizeof(struct SideTimer); j++) - dataPtr[j] = 0; - } - - gBankAttacker = 0; - gBankDefender = 0; - gBattleWeather = 0; - - dataPtr = (u8 *)&gWishFutureKnock; - for (i = 0; i < sizeof(struct WishFutureKnock); i++) - dataPtr[i] = 0; - - gHitMarker = 0; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - { - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE) - gHitMarker |= HITMARKER_NO_ANIMATIONS; - } - else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleStyleInRecordedBattle()) - gHitMarker |= HITMARKER_NO_ANIMATIONS; - - gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; - - gMultiHitCounter = 0; - gBattleOutcome = 0; - gBattleExecBuffer = 0; - gPaydayMoney = 0; - gBattleResources->battleScriptsStack->size = 0; - gBattleResources->battleCallbackStack->size = 0; - - for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) - gBattleCommunication[i] = 0; - - gPauseCounterBattle = 0; - gBattleMoveDamage = 0; - gUnknown_020243FC = 0; - gBattleScripting.animTurn = 0; - gBattleScripting.animTargetsHit = 0; - gLeveledUpInBattle = 0; - gAbsentBankFlags = 0; - gBattleStruct->runTries = 0; - gBattleStruct->field_79 = 0; - gBattleStruct->field_7A = 0; - *(&gBattleStruct->field_7C) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; - gBattleStruct->field_7B = 3; - gBattleStruct->wildVictorySong = 0; - gBattleStruct->moneyMultiplier = 1; - - for (i = 0; i < 8; i++) - { - *((u8 *)gBattleStruct->mirrorMoves + i) = 0; - *((u8 *)gBattleStruct->usedHeldItems + i) = 0; - *((u8 *)gBattleStruct->choicedMove + i) = 0; - *((u8 *)gBattleStruct->changedItems + i) = 0; - *(i + 0 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i + 1 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i + 2 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - } - - for (i = 0; i < BATTLE_BANKS_COUNT; i++) - { - *(gBattleStruct->AI_monToSwitchIntoId + i) = 6; - } - - gBattleStruct->field_DF = 0; - gBattleStruct->field_92 = 0; - - gRandomTurnNumber = Random(); - - dataPtr = (u8 *)(&gBattleResults); - for (i = 0; i < sizeof(struct BattleResults); i++) - dataPtr[i] = 0; - - gBattleResults.unk5_6 = IsMonShiny(&gEnemyParty[0]); - - gBattleStruct->field_2A0 = 0; - gBattleStruct->field_2A1 = 0; -} - -void SwitchInClearSetData(void) -{ - struct DisableStruct disableStructCopy = gDisableStructs[gActiveBank]; - s32 i; - u8 *ptr; - - if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) - { - for (i = 0; i < BATTLE_STATS_NO; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - for (i = 0; i < gBattleBanksCount; i++) - { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) - gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; - if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBank) - { - gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; - gDisableStructs[i].bankWithSureHit = 0; - } - } - } - if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) - { - gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); - gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); - - for (i = 0; i < gBattleBanksCount; i++) - { - if (GetBankSide(gActiveBank) != GetBankSide(i) - && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 - && (gDisableStructs[i].bankWithSureHit == gActiveBank)) - { - gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[i] |= 0x10; - } - } - } - else - { - gBattleMons[gActiveBank].status2 = 0; - gStatuses3[gActiveBank] = 0; - } - - for (i = 0; i < gBattleBanksCount; i++) - { - if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) - gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); - if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank) - gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); - } - - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; - - ptr = (u8 *)&gDisableStructs[gActiveBank]; - for (i = 0; i < sizeof(struct DisableStruct); i++) - ptr[i] = 0; - - if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) - { - gDisableStructs[gActiveBank].substituteHP = disableStructCopy.substituteHP; - gDisableStructs[gActiveBank].bankWithSureHit = disableStructCopy.bankWithSureHit; - gDisableStructs[gActiveBank].perishSongTimer1 = disableStructCopy.perishSongTimer1; - gDisableStructs[gActiveBank].perishSongTimer2 = disableStructCopy.perishSongTimer2; - gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape; - } - - gMoveResultFlags = 0; - gDisableStructs[gActiveBank].isFirstTurn = 2; - gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; - gLastMoves[gActiveBank] = 0; - gLastLandedMoves[gActiveBank] = 0; - gLastHitByType[gActiveBank] = 0; - gLastResultingMoves[gActiveBank] = 0; - gLastPrintedMoves[gActiveBank] = 0; - gLastHitBy[gActiveBank] = 0xFF; - - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - - gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); - - for (i = 0; i < gBattleBanksCount; i++) - { - if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) - { - *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0; - *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0; - } - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - } - - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; - - gBattleResources->flags->flags[gActiveBank] = 0; - gCurrentMove = 0; - gBattleStruct->field_DA = 0xFF; - - ClearBankMoveHistory(gActiveBank); - ClearBankAbilityHistory(gActiveBank); -} - -void FaintClearSetData(void) -{ - s32 i; - u8 *ptr; - - for (i = 0; i < BATTLE_STATS_NO; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - - gBattleMons[gActiveBank].status2 = 0; - gStatuses3[gActiveBank] = 0; - - for (i = 0; i < gBattleBanksCount; i++) - { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) - gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; - if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) - gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); - if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank) - gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); - } - - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; - - ptr = (u8 *)&gDisableStructs[gActiveBank]; - for (i = 0; i < sizeof(struct DisableStruct); i++) - ptr[i] = 0; - - gProtectStructs[gActiveBank].protected = 0; - gProtectStructs[gActiveBank].endured = 0; - gProtectStructs[gActiveBank].onlyStruggle = 0; - gProtectStructs[gActiveBank].helpingHand = 0; - gProtectStructs[gActiveBank].bounceMove = 0; - gProtectStructs[gActiveBank].stealMove = 0; - gProtectStructs[gActiveBank].flag0Unknown = 0; - gProtectStructs[gActiveBank].prlzImmobility = 0; - gProtectStructs[gActiveBank].confusionSelfDmg = 0; - gProtectStructs[gActiveBank].targetNotAffected = 0; - gProtectStructs[gActiveBank].chargingTurn = 0; - gProtectStructs[gActiveBank].fleeFlag = 0; - gProtectStructs[gActiveBank].usedImprisionedMove = 0; - gProtectStructs[gActiveBank].loveImmobility = 0; - gProtectStructs[gActiveBank].usedDisabledMove = 0; - gProtectStructs[gActiveBank].usedTauntedMove = 0; - gProtectStructs[gActiveBank].flag2Unknown = 0; - gProtectStructs[gActiveBank].flinchImmobility = 0; - gProtectStructs[gActiveBank].notFirstStrike = 0; - - gDisableStructs[gActiveBank].isFirstTurn = 2; - - gLastMoves[gActiveBank] = 0; - gLastLandedMoves[gActiveBank] = 0; - gLastHitByType[gActiveBank] = 0; - gLastResultingMoves[gActiveBank] = 0; - gLastPrintedMoves[gActiveBank] = 0; - gLastHitBy[gActiveBank] = 0xFF; - - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; - - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - - gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); - - for (i = 0; i < gBattleBanksCount; i++) - { - if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) - { - *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0; - *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0; - } - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - } - - gBattleResources->flags->flags[gActiveBank] = 0; - - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; - - ClearBankMoveHistory(gActiveBank); - ClearBankAbilityHistory(gActiveBank); -} - -static void BattleIntroGetMonsData(void) -{ - switch (gBattleCommunication[MULTIUSE_STATE]) - { - case 0: - gActiveBank = gBattleCommunication[1]; - EmitGetMonData(0, 0, 0); - MarkBufferBankForExecution(gActiveBank); - gBattleCommunication[MULTIUSE_STATE]++; - break; - case 1: - if (gBattleExecBuffer == 0) - { - gBattleCommunication[1]++; - if (gBattleCommunication[1] == gBattleBanksCount) - gBattleMainFunc = BattleIntroPrepareBackgroundSlide; - else - gBattleCommunication[MULTIUSE_STATE] = 0; - } - break; - } -} - -static void BattleIntroPrepareBackgroundSlide(void) -{ - if (gBattleExecBuffer == 0) - { - gActiveBank = GetBankByPosition(0); - EmitIntroSlide(0, gBattleTerrain); - MarkBufferBankForExecution(gActiveBank); - gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; - gBattleCommunication[0] = 0; - gBattleCommunication[1] = 0; - } -} - -static void BattleIntroDrawTrainersOrMonsSprites(void) -{ - u8 *ptr; - s32 i; - - if (gBattleExecBuffer) - return; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) - && GetBankSide(gActiveBank) == SIDE_PLAYER) - { - ptr = (u8 *)&gBattleMons[gActiveBank]; - for (i = 0; i < sizeof(struct BattlePokemon); i++) - ptr[i] = 0; - } - else - { - u16* hpOnSwitchout; - - ptr = (u8 *)&gBattleMons[gActiveBank]; - for (i = 0; i < sizeof(struct BattlePokemon); i++) - ptr[i] = gBattleBufferB[gActiveBank][4 + i]; - - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; - gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); - hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(gActiveBank)]; - *hpOnSwitchout = gBattleMons[gActiveBank].hp; - for (i = 0; i < BATTLE_STATS_NO; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - gBattleMons[gActiveBank].status2 = 0; - } - - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) - { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); - } - - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - { - if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) - { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); - } - if (GetBankSide(gActiveBank) == SIDE_OPPONENT - && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_FRONTIER - | BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000))) - { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); - } - } - else - { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) - { - if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_FRONTIER - | BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000))) - { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); - } - EmitLoadMonSprite(0); - MarkBufferBankForExecution(gActiveBank); - gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); - } - } - - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT - || GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) - { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); - } - } - - if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) - { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); - } - - if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A56B4(); - } - gBattleMainFunc = BattleIntroDrawPartySummaryScreens; -} - -static void BattleIntroDrawPartySummaryScreens(void) -{ - s32 i; - struct HpAndStatus hpStatus[6]; - - if (gBattleExecBuffer) - return; - - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - { - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE - || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) - { - hpStatus[i].hp = 0xFFFF; - hpStatus[i].status = 0; - } - else - { - hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP); - hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); - } - } - gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBank); - - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE - || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) - { - hpStatus[i].hp = 0xFFFF; - hpStatus[i].status = 0; - } - else - { - hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - } - } - gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); - EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBank); - - gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle; - } - else - { - // The struct gets set here, but nothing is ever done with it since - // wild battles don't show the party summary. - // Still, there's no point in having dead code. - - for (i = 0; i < 6; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE - || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) - { - hpStatus[i].hp = 0xFFFF; - hpStatus[i].status = 0; - } - else - { - hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - } - } - - gBattleMainFunc = BattleIntroPrintWildMonAttacked; - } - -} - -static void BattleIntroPrintTrainerWantsToBattle(void) -{ - if (gBattleExecBuffer == 0) - { - gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); - gBattleMainFunc = BattleIntroPrintOpponentSendsOut; - } -} - -static void BattleIntroPrintWildMonAttacked(void) -{ - if (gBattleExecBuffer == 0) - { - gBattleMainFunc = BattleIntroPrintPlayerSendsOut; - PrepareStringBattle(STRINGID_INTROMSG, 0); - } -} - -static void BattleIntroPrintOpponentSendsOut(void) -{ - u32 identity; - - if (gBattleExecBuffer) - return; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_OPPONENT_LEFT; - else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_OPPONENT_LEFT; - else - identity = B_POSITION_PLAYER_LEFT; - } - else - identity = B_POSITION_OPPONENT_LEFT; - - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); - gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; -} - -static void BattleIntroOpponent2SendsOutMonAnimation(void) -{ - u32 identity; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_OPPONENT_RIGHT; - else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_OPPONENT_RIGHT; - else - identity = B_POSITION_PLAYER_RIGHT; - } - else - identity = B_POSITION_OPPONENT_RIGHT; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankPosition(gActiveBank) == identity) - { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); - } - } - - gBattleMainFunc = BattleIntroRecordMonsToDex; -} - -#ifdef NONMATCHING -static void BattleIntroOpponent1SendsOutMonAnimation(void) -{ - u32 identity; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_OPPONENT_LEFT; - else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_OPPONENT_LEFT; - else - identity = B_POSITION_PLAYER_LEFT; - } - else - identity = B_POSITION_OPPONENT_LEFT; - - if (gBattleExecBuffer) - return; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankPosition(gActiveBank) == identity) - { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); - if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) - { - gBattleMainFunc = BattleIntroOpponent2SendsOutMonAnimation; - return; - } - } - } - - gBattleMainFunc = BattleIntroRecordMonsToDex; -} - -#else -__attribute__((naked)) -static void BattleIntroOpponent1SendsOutMonAnimation(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r2, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 17\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0803B298\n\ - movs r0, 0x80\n\ - lsls r0, 18\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0803B298\n\ - movs r1, 0x80\n\ - lsls r1, 24\n\ - ands r1, r2\n\ - negs r0, r1\n\ - orrs r0, r1\n\ - lsrs r5, r0, 31\n\ - b _0803B29A\n\ - .pool\n\ -_0803B288:\n\ - ldr r1, =gBattleMainFunc\n\ - ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\ - b _0803B2F0\n\ - .pool\n\ -_0803B298:\n\ - movs r5, 0x1\n\ -_0803B29A:\n\ - ldr r0, =gBattleExecBuffer\n\ - ldr r2, [r0]\n\ - cmp r2, 0\n\ - bne _0803B2F2\n\ - ldr r0, =gActiveBank\n\ - strb r2, [r0]\n\ - ldr r1, =gBattleBanksCount\n\ - adds r4, r0, 0\n\ - ldrb r1, [r1]\n\ - cmp r2, r1\n\ - bcs _0803B2EC\n\ - adds r6, r4, 0\n\ -_0803B2B2:\n\ - ldrb r0, [r4]\n\ - bl GetBankPosition\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, r5\n\ - bne _0803B2D8\n\ - movs r0, 0\n\ - bl EmitIntroTrainerBallThrow\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00008040\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803B288\n\ -_0803B2D8:\n\ - ldrb r0, [r6]\n\ - adds r0, 0x1\n\ - strb r0, [r6]\n\ - ldr r1, =gBattleBanksCount\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r4, =gActiveBank\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc _0803B2B2\n\ -_0803B2EC:\n\ - ldr r1, =gBattleMainFunc\n\ - ldr r0, =BattleIntroRecordMonsToDex\n\ -_0803B2F0:\n\ - str r0, [r1]\n\ -_0803B2F2:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} - -#endif // NONMATCHING - -static void BattleIntroRecordMonsToDex(void) -{ - if (gBattleExecBuffer == 0) - { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT - && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_FRONTIER - | BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000))) - { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); - } - } - gBattleMainFunc = BattleIntroPrintPlayerSendsOut; - } -} - -void sub_803B3AC(void) // unused -{ - if (gBattleExecBuffer == 0) - gBattleMainFunc = BattleIntroPrintPlayerSendsOut; -} - -static void BattleIntroPrintPlayerSendsOut(void) -{ - if (gBattleExecBuffer == 0) - { - u8 identity; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_PLAYER_LEFT; - else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_PLAYER_LEFT; - else - identity = B_POSITION_OPPONENT_LEFT; - } - else - identity = B_POSITION_PLAYER_LEFT; - - if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); - - gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; - } -} - -static void BattleIntroPlayer2SendsOutMonAnimation(void) -{ - u32 identity; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_PLAYER_RIGHT; - else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_PLAYER_RIGHT; - else - identity = B_POSITION_OPPONENT_RIGHT; - } - else - identity = B_POSITION_PLAYER_RIGHT; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankPosition(gActiveBank) == identity) - { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); - } - } - - gBattleStruct->switchInAbilitiesCounter = 0; - gBattleStruct->switchInItemsCounter = 0; - gBattleStruct->overworldWeatherDone = FALSE; - - gBattleMainFunc = TryDoEventsBeforeFirstTurn; -} - -static void BattleIntroPlayer1SendsOutMonAnimation(void) -{ - u32 identity; - - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_PLAYER_LEFT; - else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - { - if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_PLAYER_LEFT; - else - identity = B_POSITION_OPPONENT_LEFT; - } - else - identity = B_POSITION_PLAYER_LEFT; - - if (gBattleExecBuffer) - return; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankPosition(gActiveBank) == identity) - { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); - if (gBattleTypeFlags & (BATTLE_TYPE_MULTI)) - { - gBattleMainFunc = BattleIntroPlayer2SendsOutMonAnimation; - return; - } - } - } - - gBattleStruct->switchInAbilitiesCounter = 0; - gBattleStruct->switchInItemsCounter = 0; - gBattleStruct->overworldWeatherDone = FALSE; - - gBattleMainFunc = TryDoEventsBeforeFirstTurn; -} - -void sub_803B598(void) // unused -{ - if (gBattleExecBuffer == 0) - { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - { - EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], FALSE); - MarkBufferBankForExecution(gActiveBank); - } - } - - gBattleStruct->switchInAbilitiesCounter = 0; - gBattleStruct->switchInItemsCounter = 0; - gBattleStruct->overworldWeatherDone = FALSE; - - gBattleMainFunc = TryDoEventsBeforeFirstTurn; - } -} - -static void TryDoEventsBeforeFirstTurn(void) -{ - s32 i; - s32 j; - u8 effect = 0; - - if (gBattleExecBuffer) - return; - - if (gBattleStruct->switchInAbilitiesCounter == 0) - { - for (i = 0; i < gBattleBanksCount; i++) - gBanksByTurnOrder[i] = i; - for (i = 0; i < gBattleBanksCount - 1; i++) - { - for (j = i + 1; j < gBattleBanksCount; j++) - { - if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0) - SwapTurnOrder(i, j); - } - } - } - if (!gBattleStruct->overworldWeatherDone - && AbilityBattleEffects(0, 0, 0, ABILITYEFFECT_SWITCH_IN_WEATHER, 0) != 0) - { - gBattleStruct->overworldWeatherDone = TRUE; - return; - } - // check all switch in abilities happening from the fastest mon to slowest - while (gBattleStruct->switchInAbilitiesCounter < gBattleBanksCount) - { - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) - effect++; - - gBattleStruct->switchInAbilitiesCounter++; - - if (effect) - return; - } - if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) != 0) - return; - if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) - return; - // check all switch in items having effect from the fastest mon to slowest - while (gBattleStruct->switchInItemsCounter < gBattleBanksCount) - { - if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) - effect++; - - gBattleStruct->switchInItemsCounter++; - - if (effect) - return; - } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) - { - *(gBattleStruct->monToSwitchIntoId + i) = 6; - gActionForBanks[i] = ACTION_INIT_VALUE; - gChosenMovesByBanks[i] = MOVE_NONE; - } - TurnValuesCleanUp(FALSE); - SpecialStatusesClear(); - *(&gBattleStruct->field_91) = gAbsentBankFlags; - BattleHandleAddTextPrinter(gText_EmptyString3, 0); - gBattleMainFunc = HandleTurnActionSelectionState; - ResetSentPokesToOpponentValue(); - - for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) - gBattleCommunication[i] = 0; - - for (i = 0; i < gBattleBanksCount; i++) - gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); - - *(&gBattleStruct->turnEffectsTracker) = 0; - *(&gBattleStruct->turnEffectsBank) = 0; - *(&gBattleStruct->wishPerishSongState) = 0; - *(&gBattleStruct->wishPerishSongBank) = 0; - gBattleScripting.atk49_state = 0; - gBattleStruct->faintedActionsState = 0; - gBattleStruct->turncountersTracker = 0; - gMoveResultFlags = 0; - - gRandomTurnNumber = Random(); - - if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - { - StopCryAndClearCrySongs(); - BattleScriptExecute(BattleScript_82DB8BE); - } -} - -static void HandleEndTurn_ContinueBattle(void) -{ - s32 i; - - if (gBattleExecBuffer == 0) - { - gBattleMainFunc = BattleTurnPassed; - for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) - gBattleCommunication[i] = 0; - for (i = 0; i < gBattleBanksCount; i++) - { - gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); - if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) - CancelMultiTurnMoves(i); - } - gBattleStruct->turnEffectsTracker = 0; - gBattleStruct->turnEffectsBank = 0; - gBattleStruct->wishPerishSongState = 0; - gBattleStruct->wishPerishSongBank = 0; - gBattleStruct->turncountersTracker = 0; - gMoveResultFlags = 0; - } -} - -void BattleTurnPassed(void) -{ - s32 i; - - TurnValuesCleanUp(TRUE); - if (gBattleOutcome == 0) - { - if (UpdateTurnCounters() != 0) - return; - if (TurnBasedEffects() != 0) - return; - } - if (HandleFaintedMonActions() != 0) - return; - gBattleStruct->faintedActionsState = 0; - if (HandleWishPerishSongOnTurnEnd() != 0) - return; - - TurnValuesCleanUp(FALSE); - gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); - gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); - gHitMarker &= ~(HITMARKER_x400000); - gHitMarker &= ~(HITMARKER_x100000); - gBattleScripting.animTurn = 0; - gBattleScripting.animTargetsHit = 0; - gBattleScripting.atk49_state = 0; - gBattleMoveDamage = 0; - gMoveResultFlags = 0; - - for (i = 0; i < 5; i++) - gBattleCommunication[i] = 0; - - if (gBattleOutcome != 0) - { - gCurrentActionFuncId = 12; - gBattleMainFunc = RunTurnActionsFunctions; - return; - } - - if (gBattleResults.battleTurnCounter < 0xFF) - { - gBattleResults.battleTurnCounter++; - gBattleStruct->field_DA++; - } - - for (i = 0; i < gBattleBanksCount; i++) - { - gActionForBanks[i] = ACTION_INIT_VALUE; - gChosenMovesByBanks[i] = MOVE_NONE; - } - - for (i = 0; i < 4; i++) - *(gBattleStruct->monToSwitchIntoId + i) = 6; - - *(&gBattleStruct->field_91) = gAbsentBankFlags; - BattleHandleAddTextPrinter(gText_EmptyString3, 0); - gBattleMainFunc = HandleTurnActionSelectionState; - gRandomTurnNumber = Random(); - - if (gBattleTypeFlags & BATTLE_TYPE_PALACE) - BattleScriptExecute(BattleScript_82DB881); - else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) - BattleScriptExecute(BattleScript_82DB8BE); -} - -u8 IsRunningFromBattleImpossible(void) -{ - u8 holdEffect; - u8 side; - s32 i; - - if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gActiveBank].holdEffect; - else - holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); - - gStringBank = gActiveBank; - - if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) - return 0; - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - return 0; - if (gBattleMons[gActiveBank].ability == ABILITY_RUN_AWAY) - return 0; - - side = GetBankSide(gActiveBank); - - for (i = 0; i < gBattleBanksCount; i++) - { - if (side != GetBankSide(i) - && gBattleMons[i].ability == ABILITY_SHADOW_TAG) - { - gBattleScripting.bank = i; - gLastUsedAbility = gBattleMons[i].ability; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; - return 2; - } - if (side != GetBankSide(i) - && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE - && gBattleMons[gActiveBank].type1 != TYPE_FLYING - && gBattleMons[gActiveBank].type2 != TYPE_FLYING - && gBattleMons[i].ability == ABILITY_ARENA_TRAP) - { - gBattleScripting.bank = i; - gLastUsedAbility = gBattleMons[i].ability; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; - return 2; - } - } - i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0); - if (i != 0 && (gBattleMons[gActiveBank].type1 == TYPE_STEEL || gBattleMons[gActiveBank].type2 == TYPE_STEEL)) - { - gBattleScripting.bank = i - 1; - gLastUsedAbility = gBattleMons[i - 1].ability; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; - return 2; - } - if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) - || (gStatuses3[gActiveBank] & STATUS3_ROOTED)) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - return 1; - } - if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - return 1; - } - return 0; -} - -void sub_803BDA0(u8 bank) -{ - s32 i; - u8 r4; - u8 r1; - - // gBattleStruct->field_60[bank][i] - - for (i = 0; i < 3; i++) - gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60)); - - r4 = pokemon_order_func(gBattlePartyID[bank]); - r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + bank)); - sub_81B8FB0(r4, r1); - - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - for (i = 0; i < 3; i++) - { - *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; - *((bank ^ BIT_MON) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; - } - } - else - { - for (i = 0; i < 3; i++) - { - *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; - } - } -} - -enum -{ - STATE_TURN_START_RECORD, - STATE_BEFORE_ACTION_CHOSEN, - STATE_WAIT_ACTION_CHOSEN, - STATE_WAIT_ACTION_CASE_CHOSEN, - STATE_WAIT_ACTION_CONFIRMED_STANDBY, - STATE_WAIT_ACTION_CONFIRMED, - STATE_SELECTION_SCRIPT, - STATE_WAIT_SET_BEFORE_ACTION, - STATE_SELECTION_SCRIPT_MAY_RUN -}; - -static void HandleTurnActionSelectionState(void) -{ - s32 i; - - gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - u8 identity = GetBankPosition(gActiveBank); - switch (gBattleCommunication[gActiveBank]) - { - case STATE_TURN_START_RECORD: // recorded battle related on start of every turn - RecordedBattle_CopyBankMoves(); - gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN; - break; - case STATE_BEFORE_ACTION_CHOSEN: // choose an action - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; - if (gBattleTypeFlags & BATTLE_TYPE_MULTI - || !(identity & BIT_MON) - || gBattleStruct->field_91 & gBitTable[GetBankByPosition(identity ^ BIT_MON)] - || gBattleCommunication[GetBankByPosition(identity ^ BIT_MON)] == 5) - { - if (gBattleStruct->field_91 & gBitTable[gActiveBank]) - { - gActionForBanks[gActiveBank] = ACTION_NOTHING_FAINTED; - if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED; - else - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; - } - else - { - if (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[gActiveBank].status2 & STATUS2_RECHARGE) - { - gActionForBanks[gActiveBank] = ACTION_USE_MOVE; - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; - } - else - { - EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); - MarkBufferBankForExecution(gActiveBank); - gBattleCommunication[gActiveBank]++; - } - } - } - break; - case STATE_WAIT_ACTION_CHOSEN: // try to perform an action - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); - gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1]; - - switch (gBattleBufferB[gActiveBank][1]) - { - case ACTION_USE_MOVE: - if (AreAllMovesUnusable()) - { - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CONFIRMED_STANDBY; - *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3]; - return; - } - else if (gDisableStructs[gActiveBank].encoredMove != 0) - { - gChosenMovesByBanks[gActiveBank] = gDisableStructs[gActiveBank].encoredMove; - *(gBattleStruct->chosenMovePositions + gActiveBank) = gDisableStructs[gActiveBank].encoredMovePos; - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; - return; - } - else - { - struct ChooseMoveStruct moveInfo; - - moveInfo.species = gBattleMons[gActiveBank].species; - moveInfo.monType1 = gBattleMons[gActiveBank].type1; - moveInfo.monType2 = gBattleMons[gActiveBank].type2; - - for (i = 0; i < 4; i++) - { - moveInfo.moves[i] = gBattleMons[gActiveBank].moves[i]; - moveInfo.currentPp[i] = gBattleMons[gActiveBank].pp[i]; - moveInfo.maxPp[i] = CalculatePPWithBonus( - gBattleMons[gActiveBank].moves[i], - gBattleMons[gActiveBank].ppBonuses, - i); - } - - EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo); - MarkBufferBankForExecution(gActiveBank); - } - break; - case ACTION_USE_ITEM: - if (gBattleTypeFlags & (BATTLE_TYPE_LINK - | BATTLE_TYPE_FRONTIER_NO_PYRAMID - | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_x2000000)) - { - RecordedBattle_ClearBankAction(gActiveBank, 1); - gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; - return; - } - else - { - EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); - } - break; - case ACTION_SWITCH: - *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; - if (gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) - || gBattleTypeFlags & BATTLE_TYPE_ARENA - || gStatuses3[gActiveBank] & STATUS3_ROOTED) - { - EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); - } - else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) - || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) - && gBattleMons[gActiveBank].type1 != TYPE_FLYING - && gBattleMons[gActiveBank].type2 != TYPE_FLYING - && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) - || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0)) - && (gBattleMons[gActiveBank].type1 == TYPE_STEEL - || gBattleMons[gActiveBank].type2 == TYPE_STEEL))) - { - EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBank]); - } - else - { - if (gActiveBank == 2 && gActionForBanks[0] == ACTION_SWITCH) - EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); - else if (gActiveBank == 3 && gActionForBanks[1] == ACTION_SWITCH) - EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); - else - EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); - } - MarkBufferBankForExecution(gActiveBank); - break; - case ACTION_SAFARI_ZONE_BALL: - if (IsPlayerPartyAndPokemonStorageFull()) - { - gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox; - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; - return; - } - break; - case ACTION_POKEBLOCK_CASE: - EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); - break; - case ACTION_CANCEL_PARTNER: - gBattleCommunication[gActiveBank] = 7; - gBattleCommunication[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; - RecordedBattle_ClearBankAction(gActiveBank, 1); - if (gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) - { - EmitCmd50(0); - MarkBufferBankForExecution(gActiveBank); - return; - } - else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) - { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 2); - } - else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) - { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); - } - else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE - && (gProtectStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle - || gDisableStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) - { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); - } - else if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) - { - gRngValue = gBattlePalaceMoveSelectionRngValue; - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); - } - else - { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 3); - } - EmitCmd50(0); - MarkBufferBankForExecution(gActiveBank); - return; - } - - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER - && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) - && gBattleBufferB[gActiveBank][1] == ACTION_RUN) - { - gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch; - gBattleCommunication[gActiveBank] = 8; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; - return; - } - else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER - && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - && gBattleBufferB[gActiveBank][1] == ACTION_RUN) - { - BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); - gBattleCommunication[gActiveBank] = 1; - } - else if (IsRunningFromBattleImpossible() - && gBattleBufferB[gActiveBank][1] == ACTION_RUN) - { - gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle; - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; - return; - } - else - { - gBattleCommunication[gActiveBank]++; - } - } - break; - case STATE_WAIT_ACTION_CASE_CHOSEN: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - switch (gActionForBanks[gActiveBank]) - { - case ACTION_USE_MOVE: - switch (gBattleBufferB[gActiveBank][1]) - { - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1]; - return; - case 15: - gActionForBanks[gActiveBank] = ACTION_SWITCH; - sub_803CDF8(); - return; - default: - sub_818603C(2); - if ((gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)) == 0xFFFF) - { - gBattleCommunication[gActiveBank] = 1; - RecordedBattle_ClearBankAction(gActiveBank, 1); - } - else if (TrySetCantSelectMoveBattleScript()) - { - RecordedBattle_ClearBankAction(gActiveBank, 1); - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - gBattleBufferB[gActiveBank][1] = 0; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CHOSEN; - return; - } - else - { - if (!(gBattleTypeFlags & BATTLE_TYPE_PALACE)) - { - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][2]); - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][3]); - } - *(gBattleStruct->chosenMovePositions + gActiveBank) = gBattleBufferB[gActiveBank][2]; - gChosenMovesByBanks[gActiveBank] = gBattleMons[gActiveBank].moves[*(gBattleStruct->chosenMovePositions + gActiveBank)]; - *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3]; - gBattleCommunication[gActiveBank]++; - } - break; - } - break; - case ACTION_USE_ITEM: - if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) == 0) - { - gBattleCommunication[gActiveBank] = 1; - } - else - { - gLastUsedItem = (gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)); - gBattleCommunication[gActiveBank]++; - } - break; - case ACTION_SWITCH: - if (gBattleBufferB[gActiveBank][1] == 6) - { - gBattleCommunication[gActiveBank] = 1; - RecordedBattle_ClearBankAction(gActiveBank, 1); - } - else - { - sub_803CDF8(); - gBattleCommunication[gActiveBank]++; - } - break; - case ACTION_RUN: - gHitMarker |= HITMARKER_RUN; - gBattleCommunication[gActiveBank]++; - break; - case ACTION_WATCHES_CAREFULLY: - gBattleCommunication[gActiveBank]++; - break; - case ACTION_SAFARI_ZONE_BALL: - gBattleCommunication[gActiveBank]++; - break; - case ACTION_POKEBLOCK_CASE: - if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) != 0) - { - gBattleCommunication[gActiveBank]++; - } - else - { - gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN; - } - break; - case ACTION_GO_NEAR: - gBattleCommunication[gActiveBank]++; - break; - case ACTION_SAFARI_ZONE_RUN: - gHitMarker |= HITMARKER_RUN; - gBattleCommunication[gActiveBank]++; - break; - case ACTION_9: - gBattleCommunication[gActiveBank]++; - break; - } - } - break; - case STATE_WAIT_ACTION_CONFIRMED_STANDBY: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - i = (sub_803CDB8() != 0); - - if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) - || (identity & BIT_MON) - || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(identity ^ BIT_MON)])) - { - EmitLinkStandbyMsg(0, 0, i); - } - else - { - EmitLinkStandbyMsg(0, 1, i); - } - MarkBufferBankForExecution(gActiveBank); - gBattleCommunication[gActiveBank]++; - } - break; - case STATE_WAIT_ACTION_CONFIRMED: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++; - } - break; - case STATE_SELECTION_SCRIPT: - if (*(gBattleStruct->selectionScriptFinished + gActiveBank)) - { - gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank); - } - else - { - gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); - } - gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; - } - break; - case STATE_WAIT_SET_BEFORE_ACTION: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - gBattleCommunication[gActiveBank] = 1; - } - break; - case STATE_SELECTION_SCRIPT_MAY_RUN: - if (*(gBattleStruct->selectionScriptFinished + gActiveBank)) - { - if (gBattleBufferB[gActiveBank][1] == 13) - { - gHitMarker |= HITMARKER_RUN; - gActionForBanks[gActiveBank] = ACTION_RUN; - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; - } - else - { - RecordedBattle_ClearBankAction(gActiveBank, 1); - gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank); - } - } - else - { - gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) - { - gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); - } - gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; - } - break; - } - } - - // check if everyone chose actions - if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattleBanksCount) - { - sub_818603C(1); - gBattleMainFunc = SetActionsAndBanksTurnOrder; - - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) - { - for (i = 0; i < gBattleBanksCount; i++) - { - if (gActionForBanks[i] == ACTION_SWITCH) - sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i)); - } - } - } -} - -static bool8 sub_803CDB8(void) -{ - s32 i, var; - - for (var = 0, i = 0; i < gBattleBanksCount; i++) - { - if (gBattleCommunication[i] == 5) - var++; - } - - if (var + 1 == gBattleBanksCount) - return TRUE; - else - return FALSE; -} - -static void sub_803CDF8(void) -{ - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1]; - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); - - if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0); - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3]; - - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4; - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3]; - } -} - -void SwapTurnOrder(u8 id1, u8 id2) -{ - u32 temp = gActionsByTurnOrder[id1]; - gActionsByTurnOrder[id1] = gActionsByTurnOrder[id2]; - gActionsByTurnOrder[id2] = temp; - - temp = gBanksByTurnOrder[id1]; - gBanksByTurnOrder[id1] = gBanksByTurnOrder[id2]; - gBanksByTurnOrder[id2] = temp; -} - -u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) -{ - u8 strikesFirst = 0; - u8 speedMultiplierBank1 = 0, speedMultiplierBank2 = 0; - u32 speedBank1 = 0, speedBank2 = 0; - u8 holdEffect = 0; - u8 holdEffectParam = 0; - u16 moveBank1 = 0, moveBank2 = 0; - - if (WEATHER_HAS_EFFECT) - { - if ((gBattleMons[bank1].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY) - || (gBattleMons[bank1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)) - speedMultiplierBank1 = 2; - else - speedMultiplierBank1 = 1; - - if ((gBattleMons[bank2].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY) - || (gBattleMons[bank2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)) - speedMultiplierBank2 = 2; - else - speedMultiplierBank2 = 1; - } - else - { - speedMultiplierBank1 = 1; - speedMultiplierBank2 = 1; - } - - speedBank1 = (gBattleMons[bank1].speed * speedMultiplierBank1) - * (gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][0]) - / (gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][1]); - - if (gBattleMons[bank1].item == ITEM_ENIGMA_BERRY) - { - holdEffect = gEnigmaBerries[bank1].holdEffect; - holdEffectParam = gEnigmaBerries[bank1].holdEffectParam; - } - else - { - holdEffect = ItemId_GetHoldEffect(gBattleMons[bank1].item); - holdEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank1].item); - } - - // badge boost - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) - && FlagGet(FLAG_BADGE03_GET) - && GetBankSide(bank1) == SIDE_PLAYER) - { - speedBank1 = (speedBank1 * 110) / 100; - } - - if (holdEffect == HOLD_EFFECT_MACHO_BRACE) - speedBank1 /= 2; - - if (gBattleMons[bank1].status1 & STATUS1_PARALYSIS) - speedBank1 /= 4; - - if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) - speedBank1 = UINT_MAX; - - // check second bank's speed - - speedBank2 = (gBattleMons[bank2].speed * speedMultiplierBank2) - * (gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][0]) - / (gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][1]); - - if (gBattleMons[bank2].item == ITEM_ENIGMA_BERRY) - { - holdEffect = gEnigmaBerries[bank2].holdEffect; - holdEffectParam = gEnigmaBerries[bank2].holdEffectParam; - } - else - { - holdEffect = ItemId_GetHoldEffect(gBattleMons[bank2].item); - holdEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank2].item); - } - - // badge boost - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) - && FlagGet(FLAG_BADGE03_GET) - && GetBankSide(bank2) == SIDE_PLAYER) - { - speedBank2 = (speedBank2 * 110) / 100; - } - - if (holdEffect == HOLD_EFFECT_MACHO_BRACE) - speedBank2 /= 2; - - if (gBattleMons[bank2].status1 & STATUS1_PARALYSIS) - speedBank2 /= 4; - - if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) - speedBank2 = UINT_MAX; - - if (ignoreChosenMoves) - { - moveBank1 = MOVE_NONE; - moveBank2 = MOVE_NONE; - } - else - { - if (gActionForBanks[bank1] == ACTION_USE_MOVE) - { - if (gProtectStructs[bank1].onlyStruggle) - moveBank1 = MOVE_STRUGGLE; - else - moveBank1 = gBattleMons[bank1].moves[*(gBattleStruct->chosenMovePositions + bank1)]; - } - else - moveBank1 = MOVE_NONE; - - if (gActionForBanks[bank2] == ACTION_USE_MOVE) - { - if (gProtectStructs[bank2].onlyStruggle) - moveBank2 = MOVE_STRUGGLE; - else - moveBank2 = gBattleMons[bank2].moves[*(gBattleStruct->chosenMovePositions + bank2)]; - } - else - moveBank2 = MOVE_NONE; - } - - // both move priorities are different than 0 - if (gBattleMoves[moveBank1].priority != 0 || gBattleMoves[moveBank2].priority != 0) - { - // both priorities are the same - if (gBattleMoves[moveBank1].priority == gBattleMoves[moveBank2].priority) - { - if (speedBank1 == speedBank2 && Random() & 1) - strikesFirst = 2; // same speeds, same priorities - else if (speedBank1 < speedBank2) - strikesFirst = 1; // bank2 has more speed - - // else bank1 has more speed - } - else if (gBattleMoves[moveBank1].priority < gBattleMoves[moveBank2].priority) - strikesFirst = 1; // bank2's move has greater priority - - // else bank1's move has greater priority - } - // both priorities are equal to 0 - else - { - if (speedBank1 == speedBank2 && Random() & 1) - strikesFirst = 2; // same speeds, same priorities - else if (speedBank1 < speedBank2) - strikesFirst = 1; // bank2 has more speed - - // else bank1 has more speed - } - - return strikesFirst; -} - -static void SetActionsAndBanksTurnOrder(void) -{ - s32 var = 0; - s32 i, j; - - if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; - var++; - } - } - else - { - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (gActionForBanks[gActiveBank] == ACTION_RUN) - { - var = 5; - break; - } - } - } - else - { - if (gActionForBanks[0] == ACTION_RUN) - { - gActiveBank = 0; - var = 5; - } - if (gActionForBanks[2] == ACTION_RUN) - { - gActiveBank = 2; - var = 5; - } - } - - if (var == 5) - { - gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[0] = gActiveBank; - var = 1; - for (i = 0; i < gBattleBanksCount; i++) - { - if (i != gActiveBank) - { - gActionsByTurnOrder[var] = gActionForBanks[i]; - gBanksByTurnOrder[var] = i; - var++; - } - } - gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; - gBattleStruct->focusPunchBank = 0; - return; - } - else - { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) - { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; - var++; - } - } - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) - { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; - var++; - } - } - for (i = 0; i < gBattleBanksCount - 1; i++) - { - for (j = i + 1; j < gBattleBanksCount; j++) - { - u8 bank1 = gBanksByTurnOrder[i]; - u8 bank2 = gBanksByTurnOrder[j]; - if (gActionsByTurnOrder[i] != ACTION_USE_ITEM - && gActionsByTurnOrder[j] != ACTION_USE_ITEM - && gActionsByTurnOrder[i] != ACTION_SWITCH - && gActionsByTurnOrder[j] != ACTION_SWITCH) - { - if (GetWhoStrikesFirst(bank1, bank2, FALSE)) - SwapTurnOrder(i, j); - } - } - } - } - } - gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; - gBattleStruct->focusPunchBank = 0; -} - -static void TurnValuesCleanUp(bool8 var0) -{ - s32 i; - u8 *dataPtr; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (var0) - { - gProtectStructs[gActiveBank].protected = 0; - gProtectStructs[gActiveBank].endured = 0; - } - else - { - dataPtr = (u8*)(&gProtectStructs[gActiveBank]); - for (i = 0; i < sizeof(struct ProtectStruct); i++) - dataPtr[i] = 0; - - if (gDisableStructs[gActiveBank].isFirstTurn) - gDisableStructs[gActiveBank].isFirstTurn--; - - if (gDisableStructs[gActiveBank].rechargeCounter) - { - gDisableStructs[gActiveBank].rechargeCounter--; - if (gDisableStructs[gActiveBank].rechargeCounter == 0) - gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE); - } - } - - if (gDisableStructs[gActiveBank].substituteHP == 0) - gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE); - } - - gSideTimers[0].followmeTimer = 0; - gSideTimers[1].followmeTimer = 0; -} - -static void SpecialStatusesClear(void) -{ - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - s32 i; - u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); - - for (i = 0; i < sizeof(struct SpecialStatus); i++) - dataPtr[i] = 0; - } -} - -static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) -{ - if (!(gHitMarker & HITMARKER_RUN)) - { - while (gBattleStruct->focusPunchBank < gBattleBanksCount) - { - gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank; - gBattleStruct->focusPunchBank++; - if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH - && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) - && !(gDisableStructs[gBankAttacker].truantCounter) - && !(gProtectStructs[gActiveBank].onlyStruggle)) - { - BattleScriptExecute(BattleScript_FocusPunchSetUp); - return; - } - } - } - - TryClearRageStatuses(); - gCurrentTurnActionNumber = 0; -{ - // something stupid needed to match - u8 zero; - gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)]; -} - gDynamicBasePower = 0; - gBattleStruct->dynamicMoveType = 0; - gBattleMainFunc = RunTurnActionsFunctions; - gBattleCommunication[3] = 0; - gBattleCommunication[4] = 0; - gBattleScripting.multihitMoveEffect = 0; - gBattleResources->battleScriptsStack->size = 0; -} - -static void RunTurnActionsFunctions(void) -{ - if (gBattleOutcome != 0) - gCurrentActionFuncId = 12; - - *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber; - sTurnActionsFuncsTable[gCurrentActionFuncId](); - - if (gCurrentTurnActionNumber >= gBattleBanksCount) // everyone did their actions, turn finished - { - gHitMarker &= ~(HITMARKER_x100000); - gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; - } - else - { - if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank - { - gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); - gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); - } - } -} - -static void HandleEndTurn_BattleWon(void) -{ - gCurrentActionFuncId = 0; - - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - { - gSpecialVar_Result = gBattleOutcome; - gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); - gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; - gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); - } - else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER - && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER)) - { - BattleStopLowHpSound(); - gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon; - - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE) - PlayBGM(MUS_KACHI3); - else - PlayBGM(MUS_KACHI1); - } - else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) - { - BattleStopLowHpSound(); - gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon; - - switch (gTrainers[gTrainerBattleOpponent_A].trainerClass) - { - case TRAINER_CLASS_ELITE_FOUR: - case TRAINER_CLASS_CHAMPION: - PlayBGM(MUS_KACHI5); - break; - case TRAINER_CLASS_TEAM_AQUA: - case TRAINER_CLASS_TEAM_MAGMA: - case TRAINER_CLASS_AQUA_ADMIN: - case TRAINER_CLASS_AQUA_LEADER: - case TRAINER_CLASS_MAGMA_ADMIN: - case TRAINER_CLASS_MAGMA_LEADER: - PlayBGM(MUS_KACHI4); - break; - case TRAINER_CLASS_LEADER: - PlayBGM(MUS_KACHI3); - break; - default: - PlayBGM(MUS_KACHI1); - break; - } - } - else - { - gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems; - } - - gBattleMainFunc = HandleEndTurn_FinishBattle; -} - -static void HandleEndTurn_BattleLost(void) -{ - gCurrentActionFuncId = 0; - - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - { - if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) - { - if (gBattleOutcome & B_OUTCOME_LINK_BATTLE_RAN) - { - gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle; - gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); - gSaveBlock2Ptr->field_CA9_b = 1; - } - else - { - gBattlescriptCurrInstr = BattleScript_82DAA0B; - gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); - } - } - else - { - gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); - gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; - gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); - } - } - else - { - gBattlescriptCurrInstr = BattleScript_LocalBattleLost; - } - - gBattleMainFunc = HandleEndTurn_FinishBattle; -} - -static void HandleEndTurn_RanFromBattle(void) -{ - gCurrentActionFuncId = 0; - - if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) - { - gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; - gBattleOutcome = B_OUTCOME_FORFEITED; - gSaveBlock2Ptr->field_CA9_b = 1; - } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) - { - gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; - gBattleOutcome = B_OUTCOME_FORFEITED; - } - else - { - switch (gProtectStructs[gBankAttacker].fleeFlag) - { - default: - gBattlescriptCurrInstr = BattleScript_GotAwaySafely; - break; - case 1: - gBattlescriptCurrInstr = BattleScript_SmokeBallEscape; - break; - case 2: - gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility; - break; - } - } - - gBattleMainFunc = HandleEndTurn_FinishBattle; -} - -static void HandleEndTurn_MonFled(void) -{ - gCurrentActionFuncId = 0; - - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]); - gBattlescriptCurrInstr = BattleScript_WildMonFled; - - gBattleMainFunc = HandleEndTurn_FinishBattle; -} - -static void HandleEndTurn_FinishBattle(void) -{ - if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) - { - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_FIRST_BATTLE - | BATTLE_TYPE_SAFARI - | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_WALLY_TUTORIAL - | BATTLE_TYPE_FRONTIER))) - { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - { - if (gBattleResults.playerMon1Species == SPECIES_NONE) - { - gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name); - } - else - { - gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name); - } - } - } - PutPokemonTodayCaughtOnAir(); - } - - if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK - | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_TRAINER - | BATTLE_TYPE_FIRST_BATTLE - | BATTLE_TYPE_SAFARI - | BATTLE_TYPE_FRONTIER - | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_WALLY_TUTORIAL)) - && gBattleResults.unk5_6) - { - sub_80EE184(); - } - - sub_8186444(); - BeginFastPaletteFade(3); - FadeOutMapMusic(5); - gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions; - gCB2_AfterEvolution = BattleMainCB2; - } - else - { - if (gBattleExecBuffer == 0) - gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); - } -} - -static void FreeResetData_ReturnToOvOrDoEvolutions(void) -{ - if (!gPaletteFade.active) - { - ResetSpriteData(); - if (gLeveledUpInBattle == 0 || gBattleOutcome != B_OUTCOME_WON) - { - gBattleMainFunc = ReturnFromBattleToOverworld; - return; - } - else - { - gBattleMainFunc = TryEvolvePokemon; - } - } - - FreeAllWindowBuffers(); - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) - { - FreeMonSpritesGfx(); - FreeBattleResources(); - FreeBattleSpritesData(); - } -} - -static void TryEvolvePokemon(void) -{ - s32 i; - - while (gLeveledUpInBattle != 0) - { - for (i = 0; i < 6; i++) - { - if (gLeveledUpInBattle & gBitTable[i]) - { - u16 species; - u8 levelUpBits = gLeveledUpInBattle; - - levelUpBits &= ~(gBitTable[i]); - gLeveledUpInBattle = levelUpBits; - - species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits); - if (species != SPECIES_NONE) - { - FreeAllWindowBuffers(); - gBattleMainFunc = WaitForEvoSceneToFinish; - EvolutionScene(&gPlayerParty[i], species, TRUE, i); - return; - } - } - } - } - - gBattleMainFunc = ReturnFromBattleToOverworld; -} - -static void WaitForEvoSceneToFinish(void) -{ - if (gMain.callback2 == BattleMainCB2) - gBattleMainFunc = TryEvolvePokemon; -} - -static void ReturnFromBattleToOverworld(void) -{ - if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) - { - RandomlyGivePartyPokerus(gPlayerParty); - PartySpreadPokerus(gPlayerParty); - } - - if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0) - return; - - gSpecialVar_Result = gBattleOutcome; - gMain.inBattle = 0; - gMain.callback1 = gPreBattleCallback1; - - if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) - { - UpdateRoamerHPStatus(&gEnemyParty[0]); - if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT_POKE) - SetRoamerInactive(); - } - - m4aSongNumStop(0x5A); - SetMainCallback2(gMain.savedCallback); -} - -void RunBattleScriptCommands_PopCallbacksStack(void) -{ - if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) - { - if (BATTLE_CALLBACKS_STACK->size != 0) - BATTLE_CALLBACKS_STACK->size--; - gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size]; - } - else - { - if (gBattleExecBuffer == 0) - gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); - } -} - -void RunBattleScriptCommands(void) -{ - if (gBattleExecBuffer == 0) - gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); -} - -static void HandleAction_UseMove(void) -{ - u8 side; - u8 var = 4; - - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - - if (*(&gBattleStruct->field_91) & gBitTable[gBankAttacker]) - { - gCurrentActionFuncId = ACTION_FINISHED; - return; - } - - gCritMultiplier = 1; - gBattleScripting.dmgMultiplier = 1; - gBattleStruct->atkCancellerTracker = 0; - gMoveResultFlags = 0; - gMultiHitCounter = 0; - gBattleCommunication[6] = 0; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker); - - // choose move - if (gProtectStructs[gBankAttacker].onlyStruggle) - { - gProtectStructs[gBankAttacker].onlyStruggle = 0; - gCurrentMove = gChosenMove = MOVE_STRUGGLE; - gHitMarker |= HITMARKER_NO_PPDEDUCT; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); - } - else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) - { - gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; - } - // encore forces you to use the same move - else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) - { - gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); - } - // check if the encored move wasn't overwritten - else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) - { - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; - gDisableStructs[gBankAttacker].encoredMovePos = 0; - gDisableStructs[gBankAttacker].encoreTimer1 = 0; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); - } - else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) - { - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); - } - else - { - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - } - - if (gBattleMons[gBankAttacker].hp != 0) - { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBattleResults.lastUsedMovePlayer = gCurrentMove; - else - gBattleResults.lastUsedMoveOpponent = gCurrentMove; - } - - // choose target - side = GetBankSide(gBankAttacker) ^ BIT_SIDE; - if (gSideTimers[side].followmeTimer != 0 - && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) - && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) - { - gBankDefender = gSideTimers[side].followmeTarget; - } - else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - && gSideTimers[side].followmeTimer == 0 - && (gBattleMoves[gCurrentMove].power != 0 - || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) - && gBattleMons[*(gBattleStruct->moveTarget + gBankAttacker)].ability != ABILITY_LIGHTNING_ROD - && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) - { - side = GetBankSide(gBankAttacker); - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (side != GetBankSide(gActiveBank) - && *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank - && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD - && BankGetTurnOrder(gActiveBank) < var) - { - var = BankGetTurnOrder(gActiveBank); - } - } - if (var == 4) - { - if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) - { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - { - if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - else - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); - } - else - { - if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); - else - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); - } - } - else - { - gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); - } - - if (gAbsentBankFlags & gBitTable[gBankDefender]) - { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) - { - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); - } - else - { - gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); - } - } - } - else - { - gActiveBank = gBanksByTurnOrder[var]; - RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); - gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; - gBankDefender = gActiveBank; - } - } - else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) - { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - { - if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - else - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); - } - else - { - if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); - else - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); - } - - if (gAbsentBankFlags & gBitTable[gBankDefender] - && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) - { - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); - } - } - else - { - gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) - { - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); - } - else - { - gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); - } - } - } - - // choose battlescript - if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gProtectStructs[gBankAttacker].flag_x10) - { - if (gBattleMons[gBankAttacker].hp == 0) - { - gCurrentActionFuncId = 12; - return; - } - else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker]; - gPalaceSelectionBattleScripts[gBankAttacker] = NULL; - } - else - { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - } - } - else - { - gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - } - - if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A56E8(gBankAttacker); - - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; -} - -static void HandleAction_Switch(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gActionSelectionCursor[gBankAttacker] = 0; - gMoveSelectionCursor[gBankAttacker] = 0; - - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, *(gBattleStruct->field_58 + gBankAttacker)) - - gBattleScripting.bank = gBankAttacker; - gBattlescriptCurrInstr = BattleScript_ActionSwitch; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; - - if (gBattleResults.playerSwitchesCounter < 255) - gBattleResults.playerSwitchesCounter++; -} - -static void HandleAction_UseItem(void) -{ - gBankAttacker = gBankDefender = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - ClearFuryCutterDestinyBondGrudge(gBankAttacker); - gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8); - - if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball - { - gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem]; - } - else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL) - { - gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; - } - else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - { - gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; - } - else - { - gBattleScripting.bank = gBankAttacker; - - switch (*(gBattleStruct->AI_itemType + (gBankAttacker >> 1))) - { - case AI_ITEM_FULL_RESTORE: - case AI_ITEM_HEAL_HP: - break; - case AI_ITEM_CURE_CONDITION: - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1) - { - if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 0x3E) - gBattleCommunication[MULTISTRING_CHOOSER] = 5; - } - else - { - while (!(*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1)) - { - *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; - gBattleCommunication[MULTISTRING_CHOOSER]++; - } - } - break; - case AI_ITEM_X_STAT: - gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1)) & 0x80) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 5; - } - else - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) - PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) - - while (!((*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1))) & 1)) - { - *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; - gBattleTextBuff1[2]++; - } - - gBattleScripting.animArg1 = gBattleTextBuff1[2] + 14; - gBattleScripting.animArg2 = 0; - } - break; - case AI_ITEM_GUARD_SPECS: - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - gBattleCommunication[MULTISTRING_CHOOSER] = 2; - else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - break; - } - - gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBankAttacker / 2)]; - } - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; -} - -bool8 TryRunFromBattle(u8 bank) -{ - bool8 effect = FALSE; - u8 holdEffect; - u8 pyramidMultiplier; - u8 speedVar; - - if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[bank].holdEffect; - else - holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); - - gStringBank = bank; - - if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) - { - gLastUsedItem = gBattleMons[bank].item ; - gProtectStructs[bank].fleeFlag = 1; - effect++; - } - else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY) - { - if (InBattlePyramid()) - { - gBattleStruct->runTries++; - pyramidMultiplier = sub_81A9E28(); - speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); - if (speedVar > (Random() & 0xFF)) - { - gLastUsedAbility = ABILITY_RUN_AWAY; - gProtectStructs[bank].fleeFlag = 2; - effect++; - } - } - else - { - gLastUsedAbility = ABILITY_RUN_AWAY; - gProtectStructs[bank].fleeFlag = 2; - effect++; - } - } - else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleTypeFlags & BATTLE_TYPE_TRAINER) - { - effect++; - } - else - { - if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - { - if (InBattlePyramid()) - { - pyramidMultiplier = sub_81A9E28(); - speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); - if (speedVar > (Random() & 0xFF)) - effect++; - } - else if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed) - { - speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); - if (speedVar > (Random() & 0xFF)) - effect++; - } - else // same speed or faster - { - effect++; - } - } - - gBattleStruct->runTries++; - } - - if (effect) - { - gCurrentTurnActionNumber = gBattleBanksCount; - gBattleOutcome = B_OUTCOME_RAN; - } - - return effect; -} - -static void HandleAction_Run(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - { - gCurrentTurnActionNumber = gBattleBanksCount; - - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - { - if (gActionForBanks[gActiveBank] == ACTION_RUN) - gBattleOutcome |= B_OUTCOME_LOST; - } - else - { - if (gActionForBanks[gActiveBank] == ACTION_RUN) - gBattleOutcome |= B_OUTCOME_WON; - } - } - - gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN; - gSaveBlock2Ptr->field_CA9_b = 1; - } - else - { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - { - if (!TryRunFromBattle(gBankAttacker)) // failed to run away - { - ClearFuryCutterDestinyBondGrudge(gBankAttacker); - gBattleCommunication[MULTISTRING_CHOOSER] = 3; - gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; - } - } - else - { - if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; - } - else - { - gCurrentTurnActionNumber = gBattleBanksCount; - gBattleOutcome = B_OUTCOME_POKE_FLED; - } - } - } -} - -static void HandleAction_WatchesCarefully(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; -} - -static void HandleAction_SafariZoneBallThrow(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gNumSafariBalls--; - gLastUsedItem = ITEM_SAFARI_BALL; - gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; -} - -static void HandleAction_ThrowPokeblock(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1; - gLastUsedItem = gBattleBufferB[gBankAttacker][2]; - - if (gBattleResults.field_1F < 0xFF) - gBattleResults.field_1F++; - if (gBattleStruct->field_7A < 3) - gBattleStruct->field_7A++; - if (gBattleStruct->field_7B > 1) - { - if (gBattleStruct->field_7B < sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]]) - gBattleStruct->field_7B = 1; - else - gBattleStruct->field_7B -= sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]]; - } - - gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; -} - -static void HandleAction_GoNear(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - - gBattleStruct->field_7C += sUnknown_0831BCEF[gBattleStruct->field_79]; - if (gBattleStruct->field_7C > 20) - gBattleStruct->field_7C = 20; - - gBattleStruct->field_7B +=sUnknown_0831BCF3[gBattleStruct->field_79]; - if (gBattleStruct->field_7B > 20) - gBattleStruct->field_7B = 20; - - if (gBattleStruct->field_79 < 3) - { - gBattleStruct->field_79++; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - } - else - { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - } - gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; -} - -static void HandleAction_SafriZoneRun(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - PlaySE(SE_NIGERU); - gCurrentTurnActionNumber = gBattleBanksCount; - gBattleOutcome = B_OUTCOME_RAN; -} - -static void HandleAction_Action9(void) -{ - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; - gBattle_BG0_X = 0; - gBattle_BG0_Y = 0; - - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) - - gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; - gActionsByTurnOrder[1] = ACTION_FINISHED; -} - -static void HandleAction_Action11(void) -{ - if (!HandleFaintedMonActions()) - { - gBattleStruct->faintedActionsState = 0; - gCurrentActionFuncId = ACTION_FINISHED; - } -} - -static void HandleAction_NothingIsFainted(void) -{ - gCurrentTurnActionNumber++; - gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; - gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED - | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR - | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000 - | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT - | HITMARKER_x8000000 | HITMARKER_x4000000); -} - -static void HandleAction_ActionFinished(void) -{ - *(gBattleStruct->monToSwitchIntoId + gBanksByTurnOrder[gCurrentTurnActionNumber]) = 6; - gCurrentTurnActionNumber++; - gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; - SpecialStatusesClear(); - gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED - | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR - | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000 - | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT - | HITMARKER_x8000000 | HITMARKER_x4000000); - - gCurrentMove = 0; - gBattleMoveDamage = 0; - gMoveResultFlags = 0; - gBattleScripting.animTurn = 0; - gBattleScripting.animTargetsHit = 0; - gLastLandedMoves[gBankAttacker] = 0; - gLastHitByType[gBankAttacker] = 0; - gBattleStruct->dynamicMoveType = 0; - gDynamicBasePower = 0; - gBattleScripting.atk49_state = 0; - gBattleCommunication[3] = 0; - gBattleCommunication[4] = 0; - gBattleScripting.multihitMoveEffect = 0; - gBattleResources->battleScriptsStack->size = 0; -} diff --git a/src/battle_main.c b/src/battle_main.c new file mode 100644 index 000000000..b19dcace1 --- /dev/null +++ b/src/battle_main.c @@ -0,0 +1,5612 @@ +#include "global.h" +#include "battle.h" +#include "recorded_battle.h" +#include "main.h" +#include "load_save.h" +#include "gpu_regs.h" +#include "unknown_task.h" +#include "battle_setup.h" +#include "battle_scripts.h" +#include "pokemon.h" +#include "palette.h" +#include "task.h" +#include "event_data.h" +#include "constants/species.h" +#include "berry.h" +#include "text.h" +#include "item.h" +#include "constants/items.h" +#include "constants/hold_effects.h" +#include "constants/trainers.h" +#include "link.h" +#include "bg.h" +#include "dma3.h" +#include "string_util.h" +#include "malloc.h" +#include "event_data.h" +#include "m4a.h" +#include "window.h" +#include "random.h" +#include "constants/songs.h" +#include "sound.h" +#include "battle_message.h" +#include "sprite.h" +#include "util.h" +#include "trig.h" +#include "battle_ai_script_commands.h" +#include "constants/battle_move_effects.h" +#include "battle_controllers.h" +#include "pokedex.h" +#include "constants/abilities.h" +#include "constants/moves.h" +#include "evolution_scene.h" +#include "roamer.h" +#include "tv.h" +#include "safari_zone.h" +#include "battle_string_ids.h" +#include "data2.h" + +struct UnknownStruct6 +{ + u16 unk0[0xA0]; + u8 fillerA0[0x640]; + u16 unk780[0xA0]; +}; + +struct UnknownPokemonStruct2 +{ + /*0x00*/ u16 species; + /*0x02*/ u16 heldItem; + /*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; + /*0x0F*/ u8 level; + /*0x10*/ u16 hp; + /*0x12*/ u16 maxhp; + /*0x14*/ u32 status; + /*0x18*/ u32 personality; + /*0x1C*/ u8 gender; + /*0x1D*/ u8 language; +}; + +extern u8 gBattleCommunication[]; +extern u8 gBattleTerrain; +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; +extern u16 gPartnerTrainerId; +extern u16 gBattle_WIN0H; +extern u16 gBattle_WIN0V; +extern u16 gBattle_WIN1H; +extern u16 gBattle_WIN1V; +extern u16 gTrainerBattleOpponent_A; +extern u16 gTrainerBattleOpponent_B; +extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; +extern void (*gPreBattleCallback1)(void); +extern void (*gBattleMainFunc)(void); +extern void (*gCB2_AfterEvolution)(void); +extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for? +extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for? +extern u8 gUnknown_02039B28[]; // possibly a struct? +extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document +extern struct MusicPlayerInfo gMPlayInfo_SE1; +extern struct MusicPlayerInfo gMPlayInfo_SE2; +extern u8 gDecompressionBuffer[]; +extern u16 gUnknown_020243FC; +extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; +extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u8 gStringBank; +extern u32 gUnknown_02022F88; +extern u32 gHitMarker; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; +extern u16 gPaydayMoney; +extern u16 gBattleWeather; +extern u16 gPauseCounterBattle; +extern u16 gRandomTurnNumber; +extern u8 gActiveBank; +extern u8 gBattleBanksCount; +extern u8 gBankAttacker; +extern u8 gBankDefender; +extern u8 gLeveledUpInBattle; +extern u8 gAbsentBankFlags; +extern u32 gBattleExecBuffer; +extern u8 gMultiHitCounter; +extern u8 gMoveResultFlags; +extern s32 gBattleMoveDamage; +extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastHitByType[BATTLE_BANKS_COUNT]; +extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT]; +extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; +extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; +extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern u16 gSideStatuses[2]; +extern u16 gCurrentMove; +extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; +extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gActionForBanks[BATTLE_BANKS_COUNT]; +extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; +extern u8 gCurrentActionFuncId; +extern u8 gLastUsedAbility; +extern u8 gUnknown_0203CF00[]; +extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern const u8* gBattlescriptCurrInstr; +extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gCurrentTurnActionNumber; +extern u16 gDynamicBasePower; +extern u8 gCritMultiplier; +extern u8 gCurrMovePos; +extern u8 gUnknown_020241E9; +extern u16 gChosenMove; + +extern const struct BattleMove gBattleMoves[]; +extern const u16 gBattleTextboxPalette[]; // battle textbox palette +extern const struct BgTemplate gUnknown_0831AA08[]; +extern const struct WindowTemplate * const gUnknown_0831ABA0[]; +extern const u8 gUnknown_0831ACE0[]; +extern const u8 gStatStageRatios[][2]; +extern const u8 * const gBattleScriptsForMoveEffects[]; +extern const u8 * const gBattlescriptsForBallThrow[]; +extern const u8 * const gBattlescriptsForRunningByItem[]; +extern const u8 * const gBattlescriptsForUsingItem[]; +extern const u8 * const gBattlescriptsForSafariActions[]; + +// strings +extern const u8 gText_LinkStandby3[]; +extern const u8 gText_RecordBattleToPass[]; +extern const u8 gText_BattleYesNoChoice[]; +extern const u8 gText_BattleRecordCouldntBeSaved[]; +extern const u8 gText_BattleRecordedOnPass[]; +extern const u8 gText_ShedinjaJapaneseName[]; +extern const u8 gText_EmptyString3[]; +extern const u8 gText_Poison[]; +extern const u8 gText_Sleep[]; +extern const u8 gText_Paralysis[]; +extern const u8 gText_Burn[]; +extern const u8 gText_Ice[]; +extern const u8 gText_Confusion[]; +extern const u8 gText_Love[]; + +// functions +extern void dp12_8087EA4(void); +extern void sub_80356D0(void); +extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower +extern void sub_8166188(void); // battle tower, sets link battle mons level but why? +extern void sub_8165B88(u8* dst, u16 trainerId); // battle tower, gets language +extern void PadNameString(u8* dst, u8 arg2); // +extern void sub_81B9150(void); +extern void sub_800AC34(void); +extern void sub_80B3AF8(u8 taskId); // cable club +extern void sub_8076918(u8 bank); +extern void SetHealthboxSpriteVisible(u8 healthoxSpriteId); +extern void sub_81A56B4(void); // battle frontier 2 +extern u8 sub_81A9E28(void); // battle frontier 2 +extern void sub_81A56E8(u8 bank); // battle frontier 2 +extern void sub_81B8FB0(u8, u8); // party menu +extern u8 pokemon_order_func(u8); // party menu +extern bool8 InBattlePyramid(void); + +// this file's functions +static void CB2_InitBattleInternal(void); +static void CB2_PreInitMultiBattle(void); +static void CB2_PreInitIngamePlayerPartnerBattle(void); +static void CB2_HandleStartMultiPartnerBattle(void); +static void CB2_HandleStartMultiBattle(void); +static void CB2_HandleStartBattle(void); +static void TryCorrectShedinjaLanguage(struct Pokemon *mon); +static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer); +static void BattleMainCB1(void); +static void sub_8038538(struct Sprite *sprite); +static void sub_8038F14(void); +static void sub_8038F34(void); +static void sub_80392A8(void); +static void sub_803937C(void); +static void sub_803939C(void); +static void sub_803980C(struct Sprite *sprite); +static void sub_8039838(struct Sprite *sprite); +static void sub_8039894(struct Sprite *sprite); +static void sub_80398D0(struct Sprite *sprite); +static void sub_8039A48(struct Sprite *sprite); +static void sub_8039AF4(struct Sprite *sprite); +static void SpriteCallbackDummy_3(struct Sprite *sprite); +static void oac_poke_ally_(struct Sprite *sprite); +static void SpecialStatusesClear(void); +static void TurnValuesCleanUp(bool8 var0); +static void SpriteCB_HealthBoxBounce(struct Sprite *sprite); +static void BattleStartClearSetData(void); +static void BattleIntroGetMonsData(void); +static void BattleIntroPrepareBackgroundSlide(void); +static void BattleIntroDrawTrainersOrMonsSprites(void); +static void BattleIntroDrawPartySummaryScreens(void); +static void BattleIntroPrintTrainerWantsToBattle(void); +static void BattleIntroPrintWildMonAttacked(void); +static void BattleIntroPrintOpponentSendsOut(void); +static void BattleIntroPrintPlayerSendsOut(void); +static void BattleIntroOpponent1SendsOutMonAnimation(void); +static void BattleIntroOpponent2SendsOutMonAnimation(void); +static void BattleIntroRecordMonsToDex(void); +static void BattleIntroPlayer1SendsOutMonAnimation(void); +static void TryDoEventsBeforeFirstTurn(void); +static void HandleTurnActionSelectionState(void); +static void RunTurnActionsFunctions(void); +static void SetActionsAndBanksTurnOrder(void); +static void sub_803CDF8(void); +static bool8 sub_803CDB8(void); +static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); +static void FreeResetData_ReturnToOvOrDoEvolutions(void); +static void ReturnFromBattleToOverworld(void); +static void TryEvolvePokemon(void); +static void WaitForEvoSceneToFinish(void); +static void HandleEndTurn_ContinueBattle(void); +static void HandleEndTurn_BattleWon(void); +static void HandleEndTurn_BattleLost(void); +static void HandleEndTurn_RanFromBattle(void); +static void HandleEndTurn_MonFled(void); +static void HandleEndTurn_FinishBattle(void); +static void HandleAction_UseMove(void); +static void HandleAction_Switch(void); +static void HandleAction_UseItem(void); +static void HandleAction_Run(void); +static void HandleAction_WatchesCarefully(void); +static void HandleAction_SafariZoneBallThrow(void); +static void HandleAction_ThrowPokeblock(void); +static void HandleAction_GoNear(void); +static void HandleAction_SafriZoneRun(void); +static void HandleAction_Action9(void); +static void HandleAction_Action11(void); +static void HandleAction_NothingIsFainted(void); +static void HandleAction_ActionFinished(void); + +// rom const data +static void (* const sTurnActionsFuncsTable[])(void) = +{ + HandleAction_UseMove, // ACTION_USE_MOVE + HandleAction_UseItem, // ACTION_USE_ITEM + HandleAction_Switch, // ACTION_SWITCH + HandleAction_Run, // ACTION_RUN + HandleAction_WatchesCarefully, // ACTION_WATCHES_CAREFULLY + HandleAction_SafariZoneBallThrow, // ACTION_SAFARI_ZONE_BALL + HandleAction_ThrowPokeblock, // ACTION_POKEBLOCK_CASE + HandleAction_GoNear, // ACTION_GO_NEAR + HandleAction_SafriZoneRun, // ACTION_SAFARI_ZONE_RUN + HandleAction_Action9, // ACTION_9 + HandleAction_RunBattleScript, // ACTION_RUN_BATTLESCRIPT + HandleAction_Action11, // not sure about this one + HandleAction_ActionFinished, // ACTION_FINISHED + HandleAction_NothingIsFainted, // ACTION_NOTHING_FAINTED +}; + +static void (* const sEndTurnFuncsTable[])(void) = +{ + HandleEndTurn_ContinueBattle, // battle outcome 0 + HandleEndTurn_BattleWon, // B_OUTCOME_WON + HandleEndTurn_BattleLost, // B_OUTCOME_LOST + HandleEndTurn_BattleLost, // B_OUTCOME_DREW + HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN + HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED + HandleEndTurn_MonFled, // B_OUTCOME_POKE_FLED + HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT_POKE + HandleEndTurn_FinishBattle, // battle outcome 8 + HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED + HandleEndTurn_FinishBattle, // B_OUTCOME_POKE_TELEPORTED +}; + +const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$"); +const u8 gStatusConditionString_SleepJpn[8] = _("ねむり$$$$"); +const u8 gStatusConditionString_ParalysisJpn[8] = _("まひ$$$$$"); +const u8 gStatusConditionString_BurnJpn[8] = _("やけど$$$$"); +const u8 gStatusConditionString_IceJpn[8] = _("こおり$$$$"); +const u8 gStatusConditionString_ConfusionJpn[8] = _("こんらん$$$"); +const u8 gStatusConditionString_LoveJpn[8] = _("メロメロ$$$"); + +const u8 * const gStatusConditionStringsTable[7][2] = +{ + {gStatusConditionString_PoisonJpn, gText_Poison}, + {gStatusConditionString_SleepJpn, gText_Sleep}, + {gStatusConditionString_ParalysisJpn, gText_Paralysis}, + {gStatusConditionString_BurnJpn, gText_Burn}, + {gStatusConditionString_IceJpn, gText_Ice}, + {gStatusConditionString_ConfusionJpn, gText_Confusion}, + {gStatusConditionString_LoveJpn, gText_Love} +}; + +static const u8 sUnknown_0831BCE0[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}}; +static const u8 sUnknown_0831BCEF[] = {4, 3, 2, 1}; +static const u8 sUnknown_0831BCF3[] = {4, 4, 4, 4}; + +void CB2_InitBattle(void) +{ + MoveSaveBlocks_ResetHeap(); + AllocateBattleResources(); + AllocateBattleSpritesData(); + AllocateMonSpritesGfx(); + sub_8185F84(); + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + { + CB2_InitBattleInternal(); + } + else if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) + { + HandleLinkBattleSetup(); + SetMainCallback2(CB2_PreInitMultiBattle); + } + else + { + SetMainCallback2(CB2_PreInitIngamePlayerPartnerBattle); + } + gBattleCommunication[MULTIUSE_STATE] = 0; + } + else + { + CB2_InitBattleInternal(); + } +} + +static void CB2_InitBattleInternal(void) +{ + s32 i; + + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + + CpuFill32(0, (void*)(VRAM), VRAM_SIZE); + + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 240); + SetGpuReg(REG_OFFSET_WIN0V, 0x5051); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + + gBattle_WIN0H = 240; + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != STEVEN_PARTNER_ID) + { + gBattle_WIN0V = 159; + gBattle_WIN1H = 240; + gBattle_WIN1V = 32; + } + else + { + gBattle_WIN0V = 0x5051; + dp12_8087EA4(); + + for (i = 0; i < 80; i++) + { + gUnknown_02038C28.unk0[i] = 0xF0; + gUnknown_02038C28.unk780[i] = 0xF0; + } + for (i = 80; i < 160; i++) + { + #ifndef NONMATCHING + asm(""::"r"(i)); // needed to match + #endif // NONMATCHING + + gUnknown_02038C28.unk0[i] = 0xFF10; + gUnknown_02038C28.unk780[i] = 0xFF10; + } + + sub_80BA038(gUnknown_0831AC70); + } + + ResetPaletteFade(); + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + + gBattleTerrain = BattleSetup_GetTerrainId(); + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + gBattleTerrain = BATTLE_TERRAIN_BUILDING; + + sub_80356D0(); + LoadBattleTextboxAndBackground(); + ResetSpriteData(); + ResetTasks(); + LoadBattleEntryBackground(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + SetVBlankCallback(VBlankCB_Battle); + SetUpBattleVarsAndBirchZigzagoon(); + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + SetMainCallback2(CB2_HandleStartMultiPartnerBattle); + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + SetMainCallback2(CB2_HandleStartMultiPartnerBattle); + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + SetMainCallback2(CB2_HandleStartMultiBattle); + else + SetMainCallback2(CB2_HandleStartBattle); + + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED))) + { + CreateNPCTrainerParty(&gEnemyParty[0], gTrainerBattleOpponent_A, TRUE); + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + CreateNPCTrainerParty(&gEnemyParty[3], gTrainerBattleOpponent_B, FALSE); + SetWildMonHeldItem(); + } + + gMain.inBattle = TRUE; + gSaveBlock2Ptr->field_CA9_b = 0; + + for (i = 0; i < 6; i++) + AdjustFriendship(&gPlayerParty[i], 3); + + gBattleCommunication[MULTIUSE_STATE] = 0; +} + +static void sub_8036A5C(void) +{ + u16 r6 = 0; + u16 species = 0; + u16 hp = 0; + u32 status = 0; + s32 i; + + for (i = 0; i < PARTY_SIZE; i++) + { + species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); + status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); + + if (species == SPECIES_NONE) + continue; + if (species != SPECIES_EGG && hp != 0 && status == 0) + r6 |= 1 << i * 2; + + if (species == SPECIES_NONE) + continue; + if (hp != 0 && (species == SPECIES_EGG || status != 0)) + r6 |= 2 << i * 2; + + if (species == SPECIES_NONE) + continue; + if (species != SPECIES_EGG && hp == 0) + r6 |= 3 << i * 2; + } + + gBattleStruct->field_182 = r6; + *(&gBattleStruct->field_183) = r6 >> 8; + gBattleStruct->field_183 |= FlagGet(FLAG_SYS_FRONTIER_PASS) << 7; +} + +static void SetPlayerBerryDataInBattleStruct(void) +{ + s32 i; + struct BattleStruct *battleStruct = gBattleStruct; + struct BattleEnigmaBerry *battleBerry = &battleStruct->battleEnigmaBerry; + + if (IsEnigmaBerryValid() == TRUE) + { + for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + battleBerry->name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; + battleBerry->name[i] = EOS; + + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) + battleBerry->itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; + + battleBerry->holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; + battleBerry->holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; + } + else + { + const struct Berry* berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); + + for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + battleBerry->name[i] = berryData->name[i]; + battleBerry->name[i] = EOS; + + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) + battleBerry->itemEffect[i] = 0; + + battleBerry->holdEffect = HOLD_EFFECT_NONE; + battleBerry->holdEffectParam = 0; + } +} + +static void SetAllPlayersBerryData(void) +{ + s32 i; + s32 j; + + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) + { + if (IsEnigmaBerryValid() == TRUE) + { + for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + { + gEnigmaBerries[0].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; + gEnigmaBerries[2].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; + } + gEnigmaBerries[0].name[i] = EOS; + gEnigmaBerries[2].name[i] = EOS; + + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) + { + gEnigmaBerries[0].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; + gEnigmaBerries[2].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; + } + + gEnigmaBerries[0].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; + gEnigmaBerries[2].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; + gEnigmaBerries[0].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; + gEnigmaBerries[2].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; + } + else + { + const struct Berry* berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); + + for (i = 0; i < BERRY_NAME_COUNT - 1; i++) + { + gEnigmaBerries[0].name[i] = berryData->name[i]; + gEnigmaBerries[2].name[i] = berryData->name[i]; + } + gEnigmaBerries[0].name[i] = EOS; + gEnigmaBerries[2].name[i] = EOS; + + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) + { + gEnigmaBerries[0].itemEffect[i] = 0; + gEnigmaBerries[2].itemEffect[i] = 0; + } + + gEnigmaBerries[0].holdEffect = 0; + gEnigmaBerries[2].holdEffect = 0; + gEnigmaBerries[0].holdEffectParam = 0; + gEnigmaBerries[2].holdEffectParam = 0; + } + } + else + { + s32 numPlayers; + struct BattleEnigmaBerry *src; + u8 r4; + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + numPlayers = 2; + else + numPlayers = 4; + + for (i = 0; i < numPlayers; i++) + { + src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); + r4 = gLinkPlayers[i].lp_field_18; + + for (j = 0; j < BERRY_NAME_COUNT - 1; j++) + gEnigmaBerries[r4].name[j] = src->name[j]; + gEnigmaBerries[r4].name[j] = EOS; + + for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; j++) + gEnigmaBerries[r4].itemEffect[j] = src->itemEffect[j]; + + gEnigmaBerries[r4].holdEffect = src->holdEffect; + gEnigmaBerries[r4].holdEffectParam = src->holdEffectParam; + } + } + else + { + for (i = 0; i < 2; i++) + { + src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); + + for (j = 0; j < BERRY_NAME_COUNT - 1; j++) + { + gEnigmaBerries[i].name[j] = src->name[j]; + gEnigmaBerries[i + 2].name[j] = src->name[j]; + } + gEnigmaBerries[i].name[j] = EOS; + gEnigmaBerries[i + 2].name[j] = EOS; + + for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; j++) + { + gEnigmaBerries[i].itemEffect[j] = src->itemEffect[j]; + gEnigmaBerries[i + 2].itemEffect[j] = src->itemEffect[j]; + } + + gEnigmaBerries[i].holdEffect = src->holdEffect; + gEnigmaBerries[i + 2].holdEffect = src->holdEffect; + gEnigmaBerries[i].holdEffectParam = src->holdEffectParam; + gEnigmaBerries[i + 2].holdEffectParam = src->holdEffectParam; + } + } + } +} + +static void sub_8036EB8(u8 arg0, u8 arg1) +{ + u8 var = 0; + + if (gBlockRecvBuffer[0][0] == 256) + { + if (arg1 == 0) + gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; + else + gBattleTypeFlags |= BATTLE_TYPE_TRAINER; + var++; + } + + if (var == 0) + { + s32 i; + + for (i = 0; i < arg0; i++) + { + if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0]) + break; + } + + if (i == arg0) + { + if (arg1 == 0) + gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; + else + gBattleTypeFlags |= BATTLE_TYPE_TRAINER; + var++; + } + + if (var == 0) + { + for (i = 0; i < arg0; i++) + { + if (gBlockRecvBuffer[i][0] == 0x300) + { + if (i != arg1 && i < arg1) + break; + } + if (gBlockRecvBuffer[i][0] > 0x300 && i != arg1) + break; + } + + if (i == arg0) + gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; + else + gBattleTypeFlags |= BATTLE_TYPE_TRAINER; + } + } +} + +static void CB2_HandleStartBattle(void) +{ + u8 playerMultiplayerId; + u8 enemyMultiplayerId; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + + playerMultiplayerId = GetMultiplayerId(); + gBattleScripting.multiplayerId = playerMultiplayerId; + enemyMultiplayerId = playerMultiplayerId ^ BIT_SIDE; + + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + sub_805EF14(); + gBattleCommunication[MULTIUSE_STATE] = 1; + } + if (gLinkVSyncDisabled) + sub_800E0E8(); + break; + case 1: + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + if (gReceivedRemoteLinkPlayers != 0) + { + if (sub_800A520()) + { + *(&gBattleStruct->field_180) = 0; + *(&gBattleStruct->field_181) = 3; + sub_8036A5C(); + SetPlayerBerryDataInBattleStruct(); + + if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + { + gLinkPlayers[0].lp_field_18 = 0; + gLinkPlayers[1].lp_field_18 = 1; + } + + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); + gBattleCommunication[MULTIUSE_STATE] = 2; + } + if (gLinkVSyncDisabled) + sub_800DFB4(0, 0); + } + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + gBattleTypeFlags |= BATTLE_TYPE_WILD; + gBattleCommunication[MULTIUSE_STATE] = 15; + SetAllPlayersBerryData(); + } + break; + case 2: + if ((GetBlockReceivedStatus() & 3) == 3) + { + u8 taskId; + + ResetBlockReceivedFlags(); + sub_8036EB8(2, playerMultiplayerId); + SetAllPlayersBerryData(); + taskId = CreateTask(sub_8035D74, 0); + gTasks[taskId].data[1] = 0x10E; + gTasks[taskId].data[2] = 0x5A; + gTasks[taskId].data[5] = 0; + gTasks[taskId].data[3] = gBattleStruct->field_182 | (gBattleStruct->field_183 << 8); + gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1]; + sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]); + sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]); + sub_8068AA4(); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 3: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 4: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + memcpy(gEnemyParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 7: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 8: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + memcpy(gEnemyParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 11: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 12: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + memcpy(gEnemyParty + 4, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); + TryCorrectShedinjaLanguage(&gEnemyParty[0]); + TryCorrectShedinjaLanguage(&gEnemyParty[1]); + TryCorrectShedinjaLanguage(&gEnemyParty[2]); + TryCorrectShedinjaLanguage(&gEnemyParty[3]); + TryCorrectShedinjaLanguage(&gEnemyParty[4]); + TryCorrectShedinjaLanguage(&gEnemyParty[5]); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 15: + sub_8032768(); + sub_8184E58(); + gBattleCommunication[SPRITES_INIT_STATE1] = 0; + gBattleCommunication[SPRITES_INIT_STATE2] = 0; + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + s32 i; + + for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++); + + if (i == 2) + gBattleCommunication[MULTIUSE_STATE] = 16; + else + gBattleCommunication[MULTIUSE_STATE] = 18; + } + else + { + gBattleCommunication[MULTIUSE_STATE] = 18; + } + break; + case 16: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), &gRecordedBattleRngSeed, sizeof(gRecordedBattleRngSeed)); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 17: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + memcpy(&gRecordedBattleRngSeed, gBlockRecvBuffer[enemyMultiplayerId], sizeof(gRecordedBattleRngSeed)); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 18: + if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2])) + { + gPreBattleCallback1 = gMain.callback1; + gMain.callback1 = BattleMainCB1; + SetMainCallback2(BattleMainCB2); + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gBattleTypeFlags |= BATTLE_TYPE_20; + } + } + break; + case 5: + case 9: + case 13: + gBattleCommunication[MULTIUSE_STATE]++; + gBattleCommunication[1] = 1; + case 6: + case 10: + case 14: + if (--gBattleCommunication[1] == 0) + gBattleCommunication[MULTIUSE_STATE]++; + break; + } +} + +static void CB2_HandleStartMultiPartnerBattle(void) +{ + u8 playerMultiplayerId; + u8 enemyMultiplayerId; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + + playerMultiplayerId = GetMultiplayerId(); + gBattleScripting.multiplayerId = playerMultiplayerId; + enemyMultiplayerId = playerMultiplayerId ^ BIT_SIDE; + + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + sub_805EF14(); + gBattleCommunication[MULTIUSE_STATE] = 1; + } + if (gLinkVSyncDisabled) + sub_800E0E8(); + // fall through + case 1: + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + if (gReceivedRemoteLinkPlayers != 0) + { + u8 language; + + gLinkPlayers[0].lp_field_18 = 0; + gLinkPlayers[1].lp_field_18 = 2; + gLinkPlayers[2].lp_field_18 = 1; + gLinkPlayers[3].lp_field_18 = 3; + GetFrontierTrainerName(gLinkPlayers[2].name, gTrainerBattleOpponent_A); + GetFrontierTrainerName(gLinkPlayers[3].name, gTrainerBattleOpponent_B); + sub_8165B88(&language, gTrainerBattleOpponent_A); + gLinkPlayers[2].language = language; + sub_8165B88(&language, gTrainerBattleOpponent_B); + gLinkPlayers[3].language = language; + + if (sub_800A520()) + { + *(&gBattleStruct->field_180) = 0; + *(&gBattleStruct->field_181) = 3; + sub_8036A5C(); + SetPlayerBerryDataInBattleStruct(); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); + gBattleCommunication[MULTIUSE_STATE] = 2; + } + + if (gLinkVSyncDisabled) + sub_800DFB4(0, 0); + } + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + gBattleTypeFlags |= BATTLE_TYPE_WILD; + gBattleCommunication[MULTIUSE_STATE] = 13; + SetAllPlayersBerryData(); + } + break; + case 2: + if ((GetBlockReceivedStatus() & 3) == 3) + { + u8 taskId; + + ResetBlockReceivedFlags(); + sub_8036EB8(2, playerMultiplayerId); + SetAllPlayersBerryData(); + taskId = CreateTask(sub_8035D74, 0); + gTasks[taskId].data[1] = 0x10E; + gTasks[taskId].data[2] = 0x5A; + gTasks[taskId].data[5] = 0; + gTasks[taskId].data[3] = 0x145; + gTasks[taskId].data[4] = 0x145; + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 3: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 4: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (gLinkPlayers[playerMultiplayerId].lp_field_18 != 0) + { + memcpy(gPlayerParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); + memcpy(gPlayerParty + 3, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2); + } + else + { + memcpy(gPlayerParty, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2); + memcpy(gPlayerParty + 3, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 5: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon)); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 6: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (gLinkPlayers[playerMultiplayerId].lp_field_18 != 0) + { + memcpy(gPlayerParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon)); + memcpy(gPlayerParty + 5, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon)); + } + else + { + memcpy(gPlayerParty + 2, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon)); + memcpy(gPlayerParty + 5, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon)); + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 7: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gEnemyParty, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 8: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (GetMultiplayerId() != 0) + { + memcpy(gEnemyParty, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2); + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 9: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gEnemyParty + 2, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 10: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (GetMultiplayerId() != 0) + { + memcpy(gEnemyParty + 2, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2); + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 11: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gEnemyParty + 4, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 12: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (GetMultiplayerId() != 0) + memcpy(gEnemyParty + 4, gBlockRecvBuffer[0], sizeof(struct Pokemon) * 2); + TryCorrectShedinjaLanguage(&gPlayerParty[0]); + TryCorrectShedinjaLanguage(&gPlayerParty[1]); + TryCorrectShedinjaLanguage(&gPlayerParty[2]); + TryCorrectShedinjaLanguage(&gPlayerParty[3]); + TryCorrectShedinjaLanguage(&gPlayerParty[4]); + TryCorrectShedinjaLanguage(&gPlayerParty[5]); + TryCorrectShedinjaLanguage(&gEnemyParty[0]); + TryCorrectShedinjaLanguage(&gEnemyParty[1]); + TryCorrectShedinjaLanguage(&gEnemyParty[2]); + TryCorrectShedinjaLanguage(&gEnemyParty[3]); + TryCorrectShedinjaLanguage(&gEnemyParty[4]); + TryCorrectShedinjaLanguage(&gEnemyParty[5]); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 13: + sub_8032768(); + sub_8184E58(); + gBattleCommunication[SPRITES_INIT_STATE1] = 0; + gBattleCommunication[SPRITES_INIT_STATE2] = 0; + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gBattleCommunication[MULTIUSE_STATE] = 14; + } + else + { + gBattleCommunication[MULTIUSE_STATE] = 16; + } + break; + case 14: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), &gRecordedBattleRngSeed, sizeof(gRecordedBattleRngSeed)); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 15: + if ((GetBlockReceivedStatus() & 3) == 3) + { + ResetBlockReceivedFlags(); + if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + memcpy(&gRecordedBattleRngSeed, gBlockRecvBuffer[enemyMultiplayerId], sizeof(gRecordedBattleRngSeed)); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 16: + if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2])) + { + sub_8166188(); + gPreBattleCallback1 = gMain.callback1; + gMain.callback1 = BattleMainCB1; + SetMainCallback2(BattleMainCB2); + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gBattleTypeFlags |= BATTLE_TYPE_20; + } + } + break; + } +} + +static void sub_80379F8(u8 arrayIdPlus) +{ + s32 i; + + for (i = 0; i < 3; i++) + { + gUnknown_02022FF8[i].species = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_SPECIES); + gUnknown_02022FF8[i].heldItem = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HELD_ITEM); + GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_NICKNAME, gUnknown_02022FF8[i].nickname); + gUnknown_02022FF8[i].level = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LEVEL); + gUnknown_02022FF8[i].hp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HP); + gUnknown_02022FF8[i].maxhp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_MAX_HP); + gUnknown_02022FF8[i].status = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_STATUS); + gUnknown_02022FF8[i].personality = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_PERSONALITY); + gUnknown_02022FF8[i].gender = GetMonGender(&gPlayerParty[arrayIdPlus + i]); + StripExtCtrlCodes(gUnknown_02022FF8[i].nickname); + if (GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE) + PadNameString(gUnknown_02022FF8[i].nickname, CHAR_SPACE); + } + memcpy(gUnknown_02023058, gUnknown_02022FF8, sizeof(gUnknown_02022FF8)); +} + +static void CB2_PreInitMultiBattle(void) +{ + s32 i; + u8 playerMultiplierId; + s32 numPlayers = 4; + u8 r4 = 0xF; + u32* savedBattleTypeFlags; + void (**savedCallback)(void); + + if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + { + numPlayers = 2; + r4 = 3; + } + + playerMultiplierId = GetMultiplayerId(); + gBattleScripting.multiplayerId = playerMultiplierId; + savedCallback = &gBattleStruct->savedCallback; + savedBattleTypeFlags = &gBattleStruct->savedBattleTypeFlags; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + if (gReceivedRemoteLinkPlayers != 0 && sub_800A520()) + { + gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3); + sub_80379F8(0); + SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct2) * 3); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 1: + if ((GetBlockReceivedStatus() & r4) == r4) + { + ResetBlockReceivedFlags(); + for (i = 0; i < numPlayers; i++) + { + if (i == playerMultiplierId) + continue; + + if (numPlayers == 4) + { + if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplierId].lp_field_18 & 1)) + || (gLinkPlayers[i].lp_field_18 & 1 && gLinkPlayers[playerMultiplierId].lp_field_18 & 1)) + { + memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3); + } + } + else + { + memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3); + } + } + gBattleCommunication[MULTIUSE_STATE]++; + *savedCallback = gMain.savedCallback; + *savedBattleTypeFlags = gBattleTypeFlags; + gMain.savedCallback = CB2_PreInitMultiBattle; + sub_81B9150(); + } + break; + case 2: + if (sub_800A520() && !gPaletteFade.active) + { + gBattleCommunication[MULTIUSE_STATE]++; + if (gLinkVSyncDisabled) + sub_800ADF8(); + else + sub_800AC34(); + } + break; + case 3: + if (gLinkVSyncDisabled) + { + if (sub_8010500()) + { + gBattleTypeFlags = *savedBattleTypeFlags; + gMain.savedCallback = *savedCallback; + SetMainCallback2(CB2_InitBattleInternal); + Free(gUnknown_02023058); + gUnknown_02023058 = NULL; + } + } + else if (gReceivedRemoteLinkPlayers == 0) + { + gBattleTypeFlags = *savedBattleTypeFlags; + gMain.savedCallback = *savedCallback; + SetMainCallback2(CB2_InitBattleInternal); + Free(gUnknown_02023058); + gUnknown_02023058 = NULL; + } + break; + } +} + +static void CB2_PreInitIngamePlayerPartnerBattle(void) +{ + u32* savedBattleTypeFlags; + void (**savedCallback)(void); + + savedCallback = &gBattleStruct->savedCallback; + savedBattleTypeFlags = &gBattleStruct->savedBattleTypeFlags; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3); + sub_80379F8(3); + gBattleCommunication[MULTIUSE_STATE]++; + *savedCallback = gMain.savedCallback; + *savedBattleTypeFlags = gBattleTypeFlags; + gMain.savedCallback = CB2_PreInitIngamePlayerPartnerBattle; + sub_81B9150(); + break; + case 1: + if (!gPaletteFade.active) + { + gBattleCommunication[MULTIUSE_STATE] = 2; + gBattleTypeFlags = *savedBattleTypeFlags; + gMain.savedCallback = *savedCallback; + SetMainCallback2(CB2_InitBattleInternal); + Free(gUnknown_02023058); + gUnknown_02023058 = NULL; + } + break; + } +} + +static void CB2_HandleStartMultiBattle(void) +{ + u8 playerMultiplayerId; + s32 id; + u8 var; + + playerMultiplayerId = GetMultiplayerId(); + gBattleScripting.multiplayerId = playerMultiplayerId; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + sub_805EF14(); + gBattleCommunication[MULTIUSE_STATE] = 1; + } + if (gLinkVSyncDisabled) + sub_800E0E8(); + break; + case 1: + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + if (gReceivedRemoteLinkPlayers != 0) + { + if (sub_800A520()) + { + *(&gBattleStruct->field_180) = 0; + *(&gBattleStruct->field_181) = 3; + sub_8036A5C(); + SetPlayerBerryDataInBattleStruct(); + + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32); + gBattleCommunication[MULTIUSE_STATE]++; + } + if (gLinkVSyncDisabled) + sub_800DFB4(0, 0); + } + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + gBattleTypeFlags |= BATTLE_TYPE_WILD; + gBattleCommunication[MULTIUSE_STATE] = 7; + SetAllPlayersBerryData(); + } + break; + case 2: + if ((GetBlockReceivedStatus() & 0xF) == 0xF) + { + ResetBlockReceivedFlags(); + sub_8036EB8(4, playerMultiplayerId); + SetAllPlayersBerryData(); + sub_8068AA4(); + var = CreateTask(sub_8035D74, 0); + gTasks[var].data[1] = 0x10E; + gTasks[var].data[2] = 0x5A; + gTasks[var].data[5] = 0; + gTasks[var].data[3] = 0; + gTasks[var].data[4] = 0; + + for (id = 0; id < MAX_LINK_PLAYERS; id++) + { + sub_8185F90(gBlockRecvBuffer[id][1]); + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + gTasks[var].data[3] |= gBlockRecvBuffer[id][1] & 0x3F; + break; + case 1: + gTasks[var].data[4] |= gBlockRecvBuffer[id][1] & 0x3F; + break; + case 2: + gTasks[var].data[3] |= (gBlockRecvBuffer[id][1] & 0x3F) << 6; + break; + case 3: + gTasks[var].data[4] |= (gBlockRecvBuffer[id][1] & 0x3F) << 6; + break; + } + } + ZeroEnemyPartyMons(); + gBattleCommunication[MULTIUSE_STATE]++; + } + else + break; + // fall through + case 3: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 4: + if ((GetBlockReceivedStatus() & 0xF) == 0xF) + { + ResetBlockReceivedFlags(); + for (id = 0; id < MAX_LINK_PLAYERS; id++) + { + if (id == playerMultiplayerId) + { + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + case 3: + memcpy(gPlayerParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); + break; + case 1: + case 2: + memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); + break; + } + } + else + { + if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplayerId].lp_field_18 & 1)) + || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerMultiplayerId].lp_field_18 & 1))) + { + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + case 3: + memcpy(gPlayerParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); + break; + case 1: + case 2: + memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); + break; + } + } + else + { + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + case 3: + memcpy(gEnemyParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); + break; + case 1: + case 2: + memcpy(gEnemyParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2); + break; + } + } + } + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 5: + if (sub_800A520()) + { + SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon)); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 6: + if ((GetBlockReceivedStatus() & 0xF) == 0xF) + { + ResetBlockReceivedFlags(); + for (id = 0; id < MAX_LINK_PLAYERS; id++) + { + if (id == playerMultiplayerId) + { + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + case 3: + memcpy(gPlayerParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon)); + break; + case 1: + case 2: + memcpy(gPlayerParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon)); + break; + } + } + else + { + if ((!(gLinkPlayers[id].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplayerId].lp_field_18 & 1)) + || ((gLinkPlayers[id].lp_field_18 & 1) && (gLinkPlayers[playerMultiplayerId].lp_field_18 & 1))) + { + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + case 3: + memcpy(gPlayerParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon)); + break; + case 1: + case 2: + memcpy(gPlayerParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon)); + break; + } + } + else + { + switch (gLinkPlayers[id].lp_field_18) + { + case 0: + case 3: + memcpy(gEnemyParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon)); + break; + case 1: + case 2: + memcpy(gEnemyParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon)); + break; + } + } + } + } + TryCorrectShedinjaLanguage(&gPlayerParty[0]); + TryCorrectShedinjaLanguage(&gPlayerParty[1]); + TryCorrectShedinjaLanguage(&gPlayerParty[2]); + TryCorrectShedinjaLanguage(&gPlayerParty[3]); + TryCorrectShedinjaLanguage(&gPlayerParty[4]); + TryCorrectShedinjaLanguage(&gPlayerParty[5]); + + TryCorrectShedinjaLanguage(&gEnemyParty[0]); + TryCorrectShedinjaLanguage(&gEnemyParty[1]); + TryCorrectShedinjaLanguage(&gEnemyParty[2]); + TryCorrectShedinjaLanguage(&gEnemyParty[3]); + TryCorrectShedinjaLanguage(&gEnemyParty[4]); + TryCorrectShedinjaLanguage(&gEnemyParty[5]); + + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 7: + sub_8032768(); + sub_8184E58(); + gBattleCommunication[SPRITES_INIT_STATE1] = 0; + gBattleCommunication[SPRITES_INIT_STATE2] = 0; + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + for (id = 0; id < 4 && (gLinkPlayers[id].version & 0xFF) == 3; id++); + + if (id == 4) + gBattleCommunication[MULTIUSE_STATE] = 8; + else + gBattleCommunication[MULTIUSE_STATE] = 10; + } + else + { + gBattleCommunication[MULTIUSE_STATE] = 10; + } + break; + case 8: + if (sub_800A520()) + { + u32* ptr = (u32*)(&gBattleStruct->field_180); + ptr[0] = gBattleTypeFlags; + ptr[1] = gRecordedBattleRngSeed; // UB: overwrites berry data + SendBlock(bitmask_all_link_players_but_self(), ptr, 8); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 9: + if ((GetBlockReceivedStatus() & 0xF) == 0xF) + { + ResetBlockReceivedFlags(); + for (var = 0; var < 4; var++) + { + u32 blockValue = gBlockRecvBuffer[var][0]; + if (blockValue & 4) + { + memcpy(&gRecordedBattleRngSeed, &gBlockRecvBuffer[var][2], sizeof(gRecordedBattleRngSeed)); + break; + } + } + + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 10: + if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2])) + { + gPreBattleCallback1 = gMain.callback1; + gMain.callback1 = BattleMainCB1; + SetMainCallback2(BattleMainCB2); + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gTrainerBattleOpponent_A = TRAINER_OPPONENT_800; + gBattleTypeFlags |= BATTLE_TYPE_20; + } + } + break; + } +} + +void BattleMainCB2(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); + + if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450()) + { + gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; + ResetPaletteFadeControl(); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + SetMainCallback2(CB2_QuitRecordedBattle); + } +} + +static void FreeRestoreBattleData(void) +{ + gMain.callback1 = gPreBattleCallback1; + gUnknown_02039B28[0x15] = 3; + gMain.inBattle = 0; + ZeroEnemyPartyMons(); + m4aSongNumStop(0x5A); + FreeMonSpritesGfx(); + FreeBattleSpritesData(); + FreeBattleResources(); +} + +void CB2_QuitRecordedBattle(void) +{ + UpdatePaletteFade(); + if (!gPaletteFade.active) + { + m4aMPlayStop(&gMPlayInfo_SE1); + m4aMPlayStop(&gMPlayInfo_SE2); + FreeRestoreBattleData(); + FreeAllWindowBuffers(); + SetMainCallback2(gMain.savedCallback); + } +} + +void sub_8038528(struct Sprite* sprite) +{ + sprite->data[0] = 0; + sprite->callback = sub_8038538; +} + +static void sub_8038538(struct Sprite *sprite) +{ + u16 *arr = (u16*)(gDecompressionBuffer); + + switch (sprite->data[0]) + { + case 0: + sprite->data[0]++; + sprite->data[1] = 0; + sprite->data[2] = 0x281; + sprite->data[3] = 0; + sprite->data[4] = 1; + // fall through + case 1: + sprite->data[4]--; + if (sprite->data[4] == 0) + { + s32 i; + s32 r2; + s32 r0; + + sprite->data[4] = 2; + r2 = sprite->data[1] + sprite->data[3] * 32; + r0 = sprite->data[2] - sprite->data[3] * 32; + for (i = 0; i < 29; i += 2) + { + arr[r2 + i] = 0x3D; + arr[r0 + i] = 0x3D; + } + sprite->data[3]++; + if (sprite->data[3] == 21) + { + sprite->data[0]++; + sprite->data[1] = 32; + } + } + break; + case 2: + sprite->data[1]--; + if (sprite->data[1] == 20) + SetMainCallback2(CB2_InitBattle); + break; + } +} + +static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 firstTrainer) +{ + u32 nameHash = 0; + u32 personalityValue; + u8 fixedIV; + s32 i, j; + u8 monsCount; + + if (trainerNum == SECRET_BASE_OPPONENT) + return 0; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_x4000000))) + { + if (firstTrainer == TRUE) + ZeroEnemyPartyMons(); + + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + { + if (gTrainers[trainerNum].partySize > 3) + monsCount = 3; + else + monsCount = gTrainers[trainerNum].partySize; + } + else + { + monsCount = gTrainers[trainerNum].partySize; + } + + for (i = 0; i < monsCount; i++) + { + + if (gTrainers[trainerNum].doubleBattle == TRUE) + personalityValue = 0x80; + else if (gTrainers[trainerNum].encounterMusic_gender & 0x80) + personalityValue = 0x78; + else + personalityValue = 0x88; + + for (j = 0; gTrainers[trainerNum].trainerName[j] != 0xFF; j++) + nameHash += gTrainers[trainerNum].trainerName[j]; + + switch (gTrainers[trainerNum].partyFlags) + { + case 0: + { + const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves; + + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) + nameHash += gSpeciesNames[partyData[i].species][j]; + + personalityValue += nameHash << 8; + fixedIV = partyData[i].iv * 31 / 255; + CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); + break; + } + case F_TRAINER_PARTY_CUSTOM_MOVESET: + { + const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves; + + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) + nameHash += gSpeciesNames[partyData[i].species][j]; + + personalityValue += nameHash << 8; + fixedIV = partyData[i].iv * 31 / 255; + CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0); + + for (j = 0; j < 4; j++) + { + SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); + SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); + } + break; + } + case F_TRAINER_PARTY_HELD_ITEM: + { + const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves; + + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) + nameHash += gSpeciesNames[partyData[i].species][j]; + + personalityValue += nameHash << 8; + fixedIV = partyData[i].iv * 31 / 255; + CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0); + + SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); + break; + } + case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM: + { + const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves; + + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) + nameHash += gSpeciesNames[partyData[i].species][j]; + + personalityValue += nameHash << 8; + fixedIV = partyData[i].iv * 31 / 255; + CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0); + + SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); + + for (j = 0; j < 4; j++) + { + SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); + SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); + } + break; + } + } + } + + gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle; + } + + return gTrainers[trainerNum].partySize; +} + +void sub_8038A04(void) // unused +{ + if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F) + SetGpuReg(REG_OFFSET_BG0CNT, 0x9800); +} + +void VBlankCB_Battle(void) +{ + // change gRngSeed every vblank unless the battle could be recorded + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED))) + Random(); + + SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); + SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); + SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); + SetGpuReg(REG_OFFSET_BG3HOFS, gBattle_BG3_X); + SetGpuReg(REG_OFFSET_BG3VOFS, gBattle_BG3_Y); + SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); + SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); + SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H); + SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + sub_80BA0A8(); +} + +void nullsub_17(void) +{ + +} + +static void sub_8038B04(struct Sprite *sprite) +{ + if (sprite->data[0] != 0) + sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); + else + sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); + + sprite->data[2] += 0x180; + + if (sprite->affineAnimEnded) + { + FreeSpriteTilesByTag(0x2710); + FreeSpritePaletteByTag(0x2710); + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +void sub_8038B74(struct Sprite *sprite) +{ + StartSpriteAffineAnim(sprite, 1); + sprite->callback = sub_8038B04; + PlaySE(SE_BT_START); +} + +static void sub_8038B94(u8 taskId) +{ + struct Pokemon *sp4 = NULL; + struct Pokemon *sp8 = NULL; + u8 r2 = gBattleScripting.multiplayerId; + u32 r7; + s32 i; + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + switch (gLinkPlayers[r2].lp_field_18) + { + case 0: + case 2: + sp4 = gPlayerParty; + sp8 = gEnemyParty; + break; + case 1: + case 3: + sp4 = gEnemyParty; + sp8 = gPlayerParty; + break; + } + } + else + { + sp4 = gPlayerParty; + sp8 = gEnemyParty; + } + + r7 = 0; + for (i = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2); + u16 hp = GetMonData(&sp4[i], MON_DATA_HP); + u32 status = GetMonData(&sp4[i], MON_DATA_STATUS); + + if (species == SPECIES_NONE) + continue; + if (species != SPECIES_EGG && hp != 0 && status == 0) + r7 |= 1 << i * 2; + + if (species == 0) + continue; + if (hp != 0 && (species == SPECIES_EGG || status != 0)) + r7 |= 2 << i * 2; + + if (species == 0) + continue; + if (species != SPECIES_EGG && hp == 0) + r7 |= 3 << i * 2; + } + gTasks[taskId].data[3] = r7; + + r7 = 0; + for (i = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2); + u16 hp = GetMonData(&sp8[i], MON_DATA_HP); + u32 status = GetMonData(&sp8[i], MON_DATA_STATUS); + + if (species == SPECIES_NONE) + continue; + if (species != SPECIES_EGG && hp != 0 && status == 0) + r7 |= 1 << i * 2; + + if (species == SPECIES_NONE) + continue; + if (hp != 0 && (species == SPECIES_EGG || status != 0)) + r7 |= 2 << i * 2; + + if (species == SPECIES_NONE) + continue; + if (species != SPECIES_EGG && hp == 0) + r7 |= 3 << i * 2; + } + gTasks[taskId].data[4] = r7; +} + +void sub_8038D64(void) +{ + s32 i; + u8 taskId; + + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + gBattleTypeFlags &= ~(BATTLE_TYPE_20); + + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + SetMainCallback2(gMain.savedCallback); + FreeBattleResources(); + FreeBattleSpritesData(); + FreeMonSpritesGfx(); + } + else + { + CpuFill32(0, (void*)(VRAM), VRAM_SIZE); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0V, 0x5051); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + gBattle_WIN0H = 0xF0; + gBattle_WIN0V = 0x5051; + dp12_8087EA4(); + + for (i = 0; i < 80; i++) + { + gUnknown_02038C28.unk0[i] = 0xF0; + gUnknown_02038C28.unk780[i] = 0xF0; + } + for (i = 80; i < 160; i++) + { + asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter + gUnknown_02038C28.unk0[i] = 0xFF10; + gUnknown_02038C28.unk780[i] = 0xFF10; + } + + ResetPaletteFade(); + + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + + sub_80356D0(); + LoadCompressedPalette(gBattleTextboxPalette, 0, 64); + ApplyPlayerChosenFrameToBattleMenu(); + ResetSpriteData(); + ResetTasks(); + LoadBattleEntryBackground(); + SetGpuReg(REG_OFFSET_WINOUT, 0x37); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + SetVBlankCallback(VBlankCB_Battle); + + taskId = CreateTask(sub_8035D74, 0); + gTasks[taskId].data[1] = 0x10E; + gTasks[taskId].data[2] = 0x5A; + gTasks[taskId].data[5] = 1; + sub_8038B94(taskId); + SetMainCallback2(sub_8038F14); + gBattleCommunication[MULTIUSE_STATE] = 0; + } +} + +static void sub_8038F14(void) +{ + sub_8038F34(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +static void sub_8038F34(void) +{ + s32 i; + + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + ShowBg(0); + ShowBg(1); + ShowBg(2); + gBattleCommunication[1] = 0xFF; + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 1: + if (--gBattleCommunication[1] == 0) + { + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 2: + if (!gPaletteFade.active) + { + u8 monsCount; + + gMain.field_439_x4 = sub_8185FAC(); + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + monsCount = 4; + else + monsCount = 2; + + for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++); + + if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount) + { + if (FlagGet(FLAG_SYS_FRONTIER_PASS)) + { + FreeAllWindowBuffers(); + SetMainCallback2(sub_80392A8); + } + else if (!gMain.field_439_x4) + { + SetMainCallback2(gMain.savedCallback); + FreeBattleResources(); + FreeBattleSpritesData(); + FreeMonSpritesGfx(); + } + else if (gReceivedRemoteLinkPlayers == 0) + { + CreateTask(sub_80B3AF8, 5); + gBattleCommunication[MULTIUSE_STATE]++; + } + else + { + gBattleCommunication[MULTIUSE_STATE]++; + } + } + else + { + SetMainCallback2(gMain.savedCallback); + FreeBattleResources(); + FreeBattleSpritesData(); + FreeMonSpritesGfx(); + } + } + break; + case 3: + CpuFill32(0, (void*)(VRAM), VRAM_SIZE); + + for (i = 0; i < 2; i++) + LoadChosenBattleElement(i); + + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 4: + if (!gPaletteFade.active) + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 5: + if (!FuncIsActiveTask(sub_80B3AF8)) + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 6: + if (sub_800A520() == TRUE) + { + sub_800ADF8(); + BattleHandleAddTextPrinter(gText_LinkStandby3, 0); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 7: + if (!IsTextPrinterActive(0)) + { + if (sub_800A520() == TRUE) + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 8: + if (!gLinkVSyncDisabled) + sub_800AC34(); + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 9: + if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1) + { + gMain.field_439_x4 = 0; + SetMainCallback2(gMain.savedCallback); + FreeBattleResources(); + FreeBattleSpritesData(); + FreeMonSpritesGfx(); + } + break; + } +} + +u32 sub_80391E0(u8 arrayId, u8 caseId) +{ + u32 ret = 0; + + switch (caseId) + { + case 0: + ret = gUnknown_0831AA08[arrayId].bg; + break; + case 1: + ret = gUnknown_0831AA08[arrayId].charBaseIndex; + break; + case 2: + ret = gUnknown_0831AA08[arrayId].mapBaseIndex; + break; + case 3: + ret = gUnknown_0831AA08[arrayId].screenSize; + break; + case 4: + ret = gUnknown_0831AA08[arrayId].paletteMode; + break; + case 5: + ret = gUnknown_0831AA08[arrayId].priority; + break; + case 6: + ret = gUnknown_0831AA08[arrayId].baseTile; + break; + } + + return ret; +} + +static void sub_80392A8(void) +{ + s32 i; + + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void*)(VRAM), VRAM_SIZE); + ResetPaletteFade(); + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + sub_80356D0(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ApplyPlayerChosenFrameToBattleMenu(); + + for (i = 0; i < 2; i++) + LoadChosenBattleElement(i); + + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + SetVBlankCallback(VBlankCB_Battle); + SetMainCallback2(sub_803937C); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + gBattleCommunication[MULTIUSE_STATE] = 0; +} + +static void sub_803937C(void) +{ + sub_803939C(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +static void sub_803939C(void) +{ + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + ShowBg(0); + ShowBg(1); + ShowBg(2); + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 1: + if (gMain.field_439_x4 && gReceivedRemoteLinkPlayers == 0) + CreateTask(sub_80B3AF8, 5); + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 2: + if (!FuncIsActiveTask(sub_80B3AF8)) + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 3: + if (!gPaletteFade.active) + { + BattleHandleAddTextPrinter(gText_RecordBattleToPass, 0); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 4: + if (!IsTextPrinterActive(0)) + { + HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0); + BattleHandleAddTextPrinter(gText_BattleYesNoChoice, 0xC); + gBattleCommunication[CURSOR_POSITION] = 1; + BattleCreateYesNoCursorAt(1); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 5: + if (gMain.newKeys & DPAD_UP) + { + if (gBattleCommunication[CURSOR_POSITION] != 0) + { + PlaySE(SE_SELECT); + BattleDestroyYesNoCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 0; + BattleCreateYesNoCursorAt(0); + } + } + else if (gMain.newKeys & DPAD_DOWN) + { + if (gBattleCommunication[CURSOR_POSITION] == 0) + { + PlaySE(SE_SELECT); + BattleDestroyYesNoCursorAt(gBattleCommunication[CURSOR_POSITION]); + gBattleCommunication[CURSOR_POSITION] = 1; + BattleCreateYesNoCursorAt(1); + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gBattleCommunication[CURSOR_POSITION] == 0) + { + HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); + gBattleCommunication[1] = MoveRecordedBattleToSaveData(); + gBattleCommunication[MULTIUSE_STATE] = 10; + } + else + { + gBattleCommunication[MULTIUSE_STATE]++; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 6: + if (sub_800A520() == TRUE) + { + HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); + if (gMain.field_439_x4) + { + sub_800ADF8(); + BattleHandleAddTextPrinter(gText_LinkStandby3, 0); + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 8: + if (--gBattleCommunication[1] == 0) + { + if (gMain.field_439_x4 && !gLinkVSyncDisabled) + sub_800AC34(); + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 9: + if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1) + { + gMain.field_439_x4 = 0; + if (!gPaletteFade.active) + { + SetMainCallback2(gMain.savedCallback); + FreeBattleResources(); + FreeBattleSpritesData(); + FreeMonSpritesGfx(); + } + } + break; + case 10: + if (gBattleCommunication[1] == 1) + { + PlaySE(SE_SAVE); + BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordedOnPass); + BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); + gBattleCommunication[1] = 0x80; + gBattleCommunication[MULTIUSE_STATE]++; + } + else + { + BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordCouldntBeSaved); + BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); + gBattleCommunication[1] = 0x80; + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 11: + if (sub_800A520() == TRUE && !IsTextPrinterActive(0) && --gBattleCommunication[1] == 0) + { + if (gMain.field_439_x4) + { + sub_800ADF8(); + BattleHandleAddTextPrinter(gText_LinkStandby3, 0); + } + gBattleCommunication[MULTIUSE_STATE]++; + } + break; + case 12: + case 7: + if (!IsTextPrinterActive(0)) + { + if (gMain.field_439_x4) + { + if (sub_800A520() == TRUE) + { + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gBattleCommunication[1] = 0x20; + gBattleCommunication[MULTIUSE_STATE] = 8; + } + + } + else + { + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gBattleCommunication[1] = 0x20; + gBattleCommunication[MULTIUSE_STATE] = 8; + } + } + break; + } +} + +static void TryCorrectShedinjaLanguage(struct Pokemon *mon) +{ + u8 nickname[POKEMON_NAME_LENGTH + 1]; + u8 language = LANGUAGE_JAPANESE; + + if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA + && GetMonData(mon, MON_DATA_LANGUAGE) != language) + { + GetMonData(mon, MON_DATA_NICKNAME, nickname); + if (StringCompareWithoutExtCtrlCodes(nickname, gText_ShedinjaJapaneseName) == 0) + SetMonData(mon, MON_DATA_LANGUAGE, &language); + } +} + +u32 sub_80397C4(u32 setId, u32 tableId) +{ + return gUnknown_0831ABA0[setId][tableId].width * 8; +} + +#define tBank data[0] +#define tSpeciesId data[2] + +void oac_poke_opponent(struct Sprite *sprite) +{ + sprite->callback = sub_803980C; + StartSpriteAnimIfDifferent(sprite, 0); + BeginNormalPaletteFade(0x20000, 0, 10, 10, 0x2108); +} + +static void sub_803980C(struct Sprite *sprite) +{ + if ((gUnknown_020243FC & 1) == 0) + { + sprite->pos2.x += 2; + if (sprite->pos2.x == 0) + { + sprite->callback = sub_8039838; + } + } +} + +static void sub_8039838(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + sub_8076918(sprite->tBank); + SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]); + sprite->callback = sub_8039894; + StartSpriteAnimIfDifferent(sprite, 0); + BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108); + } +} + +static void sub_8039894(struct Sprite *sprite) +{ + if (!gPaletteFade.active) + { + BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, FALSE, 1); + } +} + +void SpriteCallbackDummy_2(struct Sprite *sprite) +{ + +} + +static void sub_80398BC(struct Sprite *sprite) // unused? +{ + sprite->data[3] = 6; + sprite->data[4] = 1; + sprite->callback = sub_80398D0; +} + +static void sub_80398D0(struct Sprite *sprite) +{ + sprite->data[4]--; + if (sprite->data[4] == 0) + { + sprite->data[4] = 8; + sprite->invisible ^= 1; + sprite->data[3]--; + if (sprite->data[3] == 0) + { + sprite->invisible = FALSE; + sprite->callback = SpriteCallbackDummy_2; + gUnknown_02022F88 = 0; + } + } +} + +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct MonCoords gCastformFrontSpriteCoords[]; + +void sub_8039934(struct Sprite *sprite) +{ + u8 bank = sprite->tBank; + u16 species; + u8 yOffset; + + if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != 0) + species = gBattleSpritesDataPtr->bankData[bank].transformSpecies; + else + species = sprite->tSpeciesId; + + GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); // Unused return value + + if (species == SPECIES_UNOWN) + { + u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); + u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); + u16 unownSpecies; + + if (unownForm == 0) + unownSpecies = SPECIES_UNOWN; // Use the A Unown form + else + unownSpecies = NUM_SPECIES + unownForm; // Use one of the other Unown letters + + yOffset = gMonFrontPicCoords[unownSpecies].y_offset; + } + else if (species == SPECIES_CASTFORM) + { + yOffset = gCastformFrontSpriteCoords[gBattleMonForms[bank]].y_offset; + } + else if (species > NUM_SPECIES) + { + yOffset = gMonFrontPicCoords[SPECIES_NONE].y_offset; + } + else + { + yOffset = gMonFrontPicCoords[species].y_offset; + } + + sprite->data[3] = 8 - yOffset / 8; + sprite->data[4] = 1; + sprite->callback = sub_8039A48; +} + +static void sub_8039A48(struct Sprite *sprite) +{ + s32 i; + + sprite->data[4]--; + if (sprite->data[4] == 0) + { + sprite->data[4] = 2; + sprite->pos2.y += 8; + sprite->data[3]--; + if (sprite->data[3] < 0) + { + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } + else + { + u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankPosition(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); + + for (i = 0; i < 0x100; i++) + *(dst++) = 0; + + StartSpriteAnim(sprite, gBattleMonForms[sprite->tBank]); + } + } +} + +void sub_8039AD8(struct Sprite *sprite) +{ + sprite->data[3] = 8; + sprite->data[4] = sprite->invisible; + sprite->callback = sub_8039AF4; +} + +static void sub_8039AF4(struct Sprite *sprite) +{ + sprite->data[3]--; + if (sprite->data[3] == 0) + { + sprite->invisible ^= 1; + sprite->data[3] = 8; + } +} + +void sub_8039B2C(struct Sprite *sprite) +{ + sprite->invisible = sprite->data[4]; + sprite->data[4] = FALSE; + sprite->callback = SpriteCallbackDummy_2; +} + +void sub_8039B58(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + { + if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (HasTwoFramesAnimation(sprite->tSpeciesId)) + StartSpriteAnim(sprite, 1); + } + BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, TRUE, 1); + } +} + +void sub_8039BB4(struct Sprite *sprite) +{ + sprite->callback = oac_poke_ally_; +} + +static void oac_poke_ally_(struct Sprite *sprite) +{ + if ((gUnknown_020243FC & 1) == 0) + { + sprite->pos2.x -= 2; + if (sprite->pos2.x == 0) + { + sprite->callback = SpriteCallbackDummy_3; + sprite->data[1] = 0; + } + } +} + +void sub_80105DC(struct Sprite *sprite) +{ + sprite->callback = SpriteCallbackDummy_3; +} + +static void SpriteCallbackDummy_3(struct Sprite *sprite) +{ +} + +void sub_8039C00(struct Sprite *sprite) +{ + if (!(gUnknown_020243FC & 1)) + { + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; + } +} + +void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) +{ + u8 bounceHealthBoxSpriteId; + u8 spriteId2; + + if (b) + { + if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) + return; + } + else + { + if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) + return; + } + + bounceHealthBoxSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HealthBoxBounce); + if (b == TRUE) + { + spriteId2 = gHealthBoxesIds[bank]; + gBattleSpritesDataPtr->healthBoxesData[bank].field_2 = bounceHealthBoxSpriteId; + gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 1; + gSprites[bounceHealthBoxSpriteId].data[0] = 0x80; + } + else + { + spriteId2 = gBankSpriteIds[bank]; + gBattleSpritesDataPtr->healthBoxesData[bank].field_3 = bounceHealthBoxSpriteId; + gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 1; + gSprites[bounceHealthBoxSpriteId].data[0] = 0xC0; + } + gSprites[bounceHealthBoxSpriteId].data[1] = c; + gSprites[bounceHealthBoxSpriteId].data[2] = d; + gSprites[bounceHealthBoxSpriteId].data[3] = spriteId2; + gSprites[bounceHealthBoxSpriteId].data[4] = b; + gSprites[spriteId2].pos2.x = 0; + gSprites[spriteId2].pos2.y = 0; +} + +void dp11b_obj_free(u8 bank, bool8 b) +{ + u8 r4; + + if (b == TRUE) + { + if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) + return; + + r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2].data[3]; + DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2]); + gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 0; + } + else + { + if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) + return; + + r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3].data[3]; + DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3]); + gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 0; + } + gSprites[r4].pos2.x = 0; + gSprites[r4].pos2.y = 0; +} + +static void SpriteCB_HealthBoxBounce(struct Sprite *sprite) +{ + u8 spriteId = sprite->data[3]; + s32 var; + + if (sprite->data[4] == 1) + var = sprite->data[0]; + else + var = sprite->data[0]; + + gSprites[spriteId].pos2.y = Sin(var, sprite->data[2]) + sprite->data[2]; + sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; +} + +void sub_8039E44(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + BattleAnimateBackSprite(sprite, sprite->tSpeciesId); +} + +void sub_8039E60(struct Sprite *sprite) +{ + sub_8039E9C(sprite); + if (sprite->animEnded) + sprite->callback = SpriteCallbackDummy_3; +} + +void sub_8039E84(struct Sprite *sprite) +{ + StartSpriteAnim(sprite, 1); + sprite->callback = sub_8039E60; +} + +void sub_8039E9C(struct Sprite *sprite) +{ + if (sprite->animDelayCounter == 0) + sprite->centerToCornerVecX = gUnknown_0831ACE0[sprite->animCmdIndex]; +} + +void nullsub_20(void) +{ + +} + +void BeginBattleIntro(void) +{ + BattleStartClearSetData(); + gBattleCommunication[1] = 0; + gBattleMainFunc = BattleIntroGetMonsData; +} + +static void BattleMainCB1(void) +{ + gBattleMainFunc(); + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + gBattleBankFunc[gActiveBank](); +} + +static void BattleStartClearSetData(void) +{ + s32 i; + u32 j; + u8 *dataPtr; + + TurnValuesCleanUp(FALSE); + SpecialStatusesClear(); + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + gStatuses3[i] = 0; + + dataPtr = (u8 *)&gDisableStructs[i]; + for (j = 0; j < sizeof(struct DisableStruct); j++) + dataPtr[j] = 0; + + gDisableStructs[i].isFirstTurn = 2; + gUnknown_02024284[i] = 0; + gLastMoves[i] = 0; + gLastLandedMoves[i] = 0; + gLastHitByType[i] = 0; + gLastResultingMoves[i] = 0; + gLastHitBy[i] = 0xFF; + gLockedMoves[i] = 0; + gLastPrintedMoves[i] = 0; + gBattleResources->flags->flags[i] = 0; + gPalaceSelectionBattleScripts[i] = 0; + } + + for (i = 0; i < 2; i++) + { + gSideStatuses[i] = 0; + + dataPtr = (u8 *)&gSideTimers[i]; + for (j = 0; j < sizeof(struct SideTimer); j++) + dataPtr[j] = 0; + } + + gBankAttacker = 0; + gBankDefender = 0; + gBattleWeather = 0; + + dataPtr = (u8 *)&gWishFutureKnock; + for (i = 0; i < sizeof(struct WishFutureKnock); i++) + dataPtr[i] = 0; + + gHitMarker = 0; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gSaveBlock2Ptr->optionsBattleSceneOff == TRUE) + gHitMarker |= HITMARKER_NO_ANIMATIONS; + } + else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && GetBattleStyleInRecordedBattle()) + gHitMarker |= HITMARKER_NO_ANIMATIONS; + + gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; + + gMultiHitCounter = 0; + gBattleOutcome = 0; + gBattleExecBuffer = 0; + gPaydayMoney = 0; + gBattleResources->battleScriptsStack->size = 0; + gBattleResources->battleCallbackStack->size = 0; + + for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) + gBattleCommunication[i] = 0; + + gPauseCounterBattle = 0; + gBattleMoveDamage = 0; + gUnknown_020243FC = 0; + gBattleScripting.animTurn = 0; + gBattleScripting.animTargetsHit = 0; + gLeveledUpInBattle = 0; + gAbsentBankFlags = 0; + gBattleStruct->runTries = 0; + gBattleStruct->field_79 = 0; + gBattleStruct->field_7A = 0; + *(&gBattleStruct->field_7C) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; + gBattleStruct->field_7B = 3; + gBattleStruct->wildVictorySong = 0; + gBattleStruct->moneyMultiplier = 1; + + for (i = 0; i < 8; i++) + { + *((u8 *)gBattleStruct->mirrorMoves + i) = 0; + *((u8 *)gBattleStruct->usedHeldItems + i) = 0; + *((u8 *)gBattleStruct->choicedMove + i) = 0; + *((u8 *)gBattleStruct->changedItems + i) = 0; + *(i + 0 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i + 1 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i + 2 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + } + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + *(gBattleStruct->AI_monToSwitchIntoId + i) = 6; + } + + gBattleStruct->field_DF = 0; + gBattleStruct->field_92 = 0; + + gRandomTurnNumber = Random(); + + dataPtr = (u8 *)(&gBattleResults); + for (i = 0; i < sizeof(struct BattleResults); i++) + dataPtr[i] = 0; + + gBattleResults.unk5_6 = IsMonShiny(&gEnemyParty[0]); + + gBattleStruct->field_2A0 = 0; + gBattleStruct->field_2A1 = 0; +} + +void SwitchInClearSetData(void) +{ + struct DisableStruct disableStructCopy = gDisableStructs[gActiveBank]; + s32 i; + u8 *ptr; + + if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) + { + for (i = 0; i < BATTLE_STATS_NO; i++) + gBattleMons[gActiveBank].statStages[i] = 6; + for (i = 0; i < gBattleBanksCount; i++) + { + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) + gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; + if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBank) + { + gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; + gDisableStructs[i].bankWithSureHit = 0; + } + } + } + if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) + { + gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); + gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); + + for (i = 0; i < gBattleBanksCount; i++) + { + if (GetBankSide(gActiveBank) != GetBankSide(i) + && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 + && (gDisableStructs[i].bankWithSureHit == gActiveBank)) + { + gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[i] |= 0x10; + } + } + } + else + { + gBattleMons[gActiveBank].status2 = 0; + gStatuses3[gActiveBank] = 0; + } + + for (i = 0; i < gBattleBanksCount; i++) + { + if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) + gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); + if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank) + gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); + } + + gActionSelectionCursor[gActiveBank] = 0; + gMoveSelectionCursor[gActiveBank] = 0; + + ptr = (u8 *)&gDisableStructs[gActiveBank]; + for (i = 0; i < sizeof(struct DisableStruct); i++) + ptr[i] = 0; + + if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) + { + gDisableStructs[gActiveBank].substituteHP = disableStructCopy.substituteHP; + gDisableStructs[gActiveBank].bankWithSureHit = disableStructCopy.bankWithSureHit; + gDisableStructs[gActiveBank].perishSongTimer1 = disableStructCopy.perishSongTimer1; + gDisableStructs[gActiveBank].perishSongTimer2 = disableStructCopy.perishSongTimer2; + gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape; + } + + gMoveResultFlags = 0; + gDisableStructs[gActiveBank].isFirstTurn = 2; + gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; + gLastMoves[gActiveBank] = 0; + gLastLandedMoves[gActiveBank] = 0; + gLastHitByType[gActiveBank] = 0; + gLastResultingMoves[gActiveBank] = 0; + gLastPrintedMoves[gActiveBank] = 0; + gLastHitBy[gActiveBank] = 0xFF; + + *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; + *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; + *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + + gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); + + for (i = 0; i < gBattleBanksCount; i++) + { + if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) + { + *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0; + *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0; + } + *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + } + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; + + gBattleResources->flags->flags[gActiveBank] = 0; + gCurrentMove = 0; + gBattleStruct->field_DA = 0xFF; + + ClearBankMoveHistory(gActiveBank); + ClearBankAbilityHistory(gActiveBank); +} + +void FaintClearSetData(void) +{ + s32 i; + u8 *ptr; + + for (i = 0; i < BATTLE_STATS_NO; i++) + gBattleMons[gActiveBank].statStages[i] = 6; + + gBattleMons[gActiveBank].status2 = 0; + gStatuses3[gActiveBank] = 0; + + for (i = 0; i < gBattleBanksCount; i++) + { + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) + gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; + if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) + gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); + if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank) + gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); + } + + gActionSelectionCursor[gActiveBank] = 0; + gMoveSelectionCursor[gActiveBank] = 0; + + ptr = (u8 *)&gDisableStructs[gActiveBank]; + for (i = 0; i < sizeof(struct DisableStruct); i++) + ptr[i] = 0; + + gProtectStructs[gActiveBank].protected = 0; + gProtectStructs[gActiveBank].endured = 0; + gProtectStructs[gActiveBank].onlyStruggle = 0; + gProtectStructs[gActiveBank].helpingHand = 0; + gProtectStructs[gActiveBank].bounceMove = 0; + gProtectStructs[gActiveBank].stealMove = 0; + gProtectStructs[gActiveBank].flag0Unknown = 0; + gProtectStructs[gActiveBank].prlzImmobility = 0; + gProtectStructs[gActiveBank].confusionSelfDmg = 0; + gProtectStructs[gActiveBank].targetNotAffected = 0; + gProtectStructs[gActiveBank].chargingTurn = 0; + gProtectStructs[gActiveBank].fleeFlag = 0; + gProtectStructs[gActiveBank].usedImprisionedMove = 0; + gProtectStructs[gActiveBank].loveImmobility = 0; + gProtectStructs[gActiveBank].usedDisabledMove = 0; + gProtectStructs[gActiveBank].usedTauntedMove = 0; + gProtectStructs[gActiveBank].flag2Unknown = 0; + gProtectStructs[gActiveBank].flinchImmobility = 0; + gProtectStructs[gActiveBank].notFirstStrike = 0; + + gDisableStructs[gActiveBank].isFirstTurn = 2; + + gLastMoves[gActiveBank] = 0; + gLastLandedMoves[gActiveBank] = 0; + gLastHitByType[gActiveBank] = 0; + gLastResultingMoves[gActiveBank] = 0; + gLastPrintedMoves[gActiveBank] = 0; + gLastHitBy[gActiveBank] = 0xFF; + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; + + *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; + *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; + *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + + gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); + + for (i = 0; i < gBattleBanksCount; i++) + { + if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) + { + *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0; + *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0; + } + *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + } + + gBattleResources->flags->flags[gActiveBank] = 0; + + gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; + gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; + + ClearBankMoveHistory(gActiveBank); + ClearBankAbilityHistory(gActiveBank); +} + +static void BattleIntroGetMonsData(void) +{ + switch (gBattleCommunication[MULTIUSE_STATE]) + { + case 0: + gActiveBank = gBattleCommunication[1]; + EmitGetMonData(0, 0, 0); + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[MULTIUSE_STATE]++; + break; + case 1: + if (gBattleExecBuffer == 0) + { + gBattleCommunication[1]++; + if (gBattleCommunication[1] == gBattleBanksCount) + gBattleMainFunc = BattleIntroPrepareBackgroundSlide; + else + gBattleCommunication[MULTIUSE_STATE] = 0; + } + break; + } +} + +static void BattleIntroPrepareBackgroundSlide(void) +{ + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBankByPosition(0); + EmitIntroSlide(0, gBattleTerrain); + MarkBufferBankForExecution(gActiveBank); + gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; + gBattleCommunication[0] = 0; + gBattleCommunication[1] = 0; + } +} + +static void BattleIntroDrawTrainersOrMonsSprites(void) +{ + u8 *ptr; + s32 i; + + if (gBattleExecBuffer) + return; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) + && GetBankSide(gActiveBank) == SIDE_PLAYER) + { + ptr = (u8 *)&gBattleMons[gActiveBank]; + for (i = 0; i < sizeof(struct BattlePokemon); i++) + ptr[i] = 0; + } + else + { + u16* hpOnSwitchout; + + ptr = (u8 *)&gBattleMons[gActiveBank]; + for (i = 0; i < sizeof(struct BattlePokemon); i++) + ptr[i] = gBattleBufferB[gActiveBank][4 + i]; + + gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; + gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; + gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); + hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(gActiveBank)]; + *hpOnSwitchout = gBattleMons[gActiveBank].hp; + for (i = 0; i < BATTLE_STATS_NO; i++) + gBattleMons[gActiveBank].statStages[i] = 6; + gBattleMons[gActiveBank].status2 = 0; + } + + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) + { + EmitDrawTrainerPic(0); + MarkBufferBankForExecution(gActiveBank); + } + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) + { + EmitDrawTrainerPic(0); + MarkBufferBankForExecution(gActiveBank); + } + if (GetBankSide(gActiveBank) == SIDE_OPPONENT + && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_x4000000))) + { + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + } + } + else + { + if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + { + if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_x4000000))) + { + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + } + EmitLoadMonSprite(0); + MarkBufferBankForExecution(gActiveBank); + gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); + } + } + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT + || GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) + { + EmitDrawTrainerPic(0); + MarkBufferBankForExecution(gActiveBank); + } + } + + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) + { + EmitDrawTrainerPic(0); + MarkBufferBankForExecution(gActiveBank); + } + + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + sub_81A56B4(); + } + gBattleMainFunc = BattleIntroDrawPartySummaryScreens; +} + +static void BattleIntroDrawPartySummaryScreens(void) +{ + s32 i; + struct HpAndStatus hpStatus[6]; + + if (gBattleExecBuffer) + return; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + { + hpStatus[i].hp = 0xFFFF; + hpStatus[i].status = 0; + } + else + { + hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP); + hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); + } + } + gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + EmitDrawPartyStatusSummary(0, hpStatus, 0x80); + MarkBufferBankForExecution(gActiveBank); + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + { + hpStatus[i].hp = 0xFFFF; + hpStatus[i].status = 0; + } + else + { + hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); + hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); + } + } + gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); + EmitDrawPartyStatusSummary(0, hpStatus, 0x80); + MarkBufferBankForExecution(gActiveBank); + + gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle; + } + else + { + // The struct gets set here, but nothing is ever done with it since + // wild battles don't show the party summary. + // Still, there's no point in having dead code. + + for (i = 0; i < 6; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + { + hpStatus[i].hp = 0xFFFF; + hpStatus[i].status = 0; + } + else + { + hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); + hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); + } + } + + gBattleMainFunc = BattleIntroPrintWildMonAttacked; + } + +} + +static void BattleIntroPrintTrainerWantsToBattle(void) +{ + if (gBattleExecBuffer == 0) + { + gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); + gBattleMainFunc = BattleIntroPrintOpponentSendsOut; + } +} + +static void BattleIntroPrintWildMonAttacked(void) +{ + if (gBattleExecBuffer == 0) + { + gBattleMainFunc = BattleIntroPrintPlayerSendsOut; + PrepareStringBattle(STRINGID_INTROMSG, 0); + } +} + +static void BattleIntroPrintOpponentSendsOut(void) +{ + u32 identity; + + if (gBattleExecBuffer) + return; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + identity = B_POSITION_OPPONENT_LEFT; + else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + identity = B_POSITION_OPPONENT_LEFT; + else + identity = B_POSITION_PLAYER_LEFT; + } + else + identity = B_POSITION_OPPONENT_LEFT; + + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); + gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; +} + +static void BattleIntroOpponent2SendsOutMonAnimation(void) +{ + u32 identity; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + identity = B_POSITION_OPPONENT_RIGHT; + else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + identity = B_POSITION_OPPONENT_RIGHT; + else + identity = B_POSITION_PLAYER_RIGHT; + } + else + identity = B_POSITION_OPPONENT_RIGHT; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankPosition(gActiveBank) == identity) + { + EmitIntroTrainerBallThrow(0); + MarkBufferBankForExecution(gActiveBank); + } + } + + gBattleMainFunc = BattleIntroRecordMonsToDex; +} + +#ifdef NONMATCHING +static void BattleIntroOpponent1SendsOutMonAnimation(void) +{ + u32 identity; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + identity = B_POSITION_OPPONENT_LEFT; + else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + identity = B_POSITION_OPPONENT_LEFT; + else + identity = B_POSITION_PLAYER_LEFT; + } + else + identity = B_POSITION_OPPONENT_LEFT; + + if (gBattleExecBuffer) + return; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankPosition(gActiveBank) == identity) + { + EmitIntroTrainerBallThrow(0); + MarkBufferBankForExecution(gActiveBank); + if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) + { + gBattleMainFunc = BattleIntroOpponent2SendsOutMonAnimation; + return; + } + } + } + + gBattleMainFunc = BattleIntroRecordMonsToDex; +} + +#else +__attribute__((naked)) +static void BattleIntroOpponent1SendsOutMonAnimation(void) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r2, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 17\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0803B298\n\ + movs r0, 0x80\n\ + lsls r0, 18\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0803B298\n\ + movs r1, 0x80\n\ + lsls r1, 24\n\ + ands r1, r2\n\ + negs r0, r1\n\ + orrs r0, r1\n\ + lsrs r5, r0, 31\n\ + b _0803B29A\n\ + .pool\n\ +_0803B288:\n\ + ldr r1, =gBattleMainFunc\n\ + ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\ + b _0803B2F0\n\ + .pool\n\ +_0803B298:\n\ + movs r5, 0x1\n\ +_0803B29A:\n\ + ldr r0, =gBattleExecBuffer\n\ + ldr r2, [r0]\n\ + cmp r2, 0\n\ + bne _0803B2F2\n\ + ldr r0, =gActiveBank\n\ + strb r2, [r0]\n\ + ldr r1, =gBattleBanksCount\n\ + adds r4, r0, 0\n\ + ldrb r1, [r1]\n\ + cmp r2, r1\n\ + bcs _0803B2EC\n\ + adds r6, r4, 0\n\ +_0803B2B2:\n\ + ldrb r0, [r4]\n\ + bl GetBankPosition\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, r5\n\ + bne _0803B2D8\n\ + movs r0, 0\n\ + bl EmitIntroTrainerBallThrow\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00008040\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803B288\n\ +_0803B2D8:\n\ + ldrb r0, [r6]\n\ + adds r0, 0x1\n\ + strb r0, [r6]\n\ + ldr r1, =gBattleBanksCount\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r4, =gActiveBank\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc _0803B2B2\n\ +_0803B2EC:\n\ + ldr r1, =gBattleMainFunc\n\ + ldr r0, =BattleIntroRecordMonsToDex\n\ +_0803B2F0:\n\ + str r0, [r1]\n\ +_0803B2F2:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +#endif // NONMATCHING + +static void BattleIntroRecordMonsToDex(void) +{ + if (gBattleExecBuffer == 0) + { + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankSide(gActiveBank) == SIDE_OPPONENT + && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_x4000000))) + { + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + } + } + gBattleMainFunc = BattleIntroPrintPlayerSendsOut; + } +} + +void sub_803B3AC(void) // unused +{ + if (gBattleExecBuffer == 0) + gBattleMainFunc = BattleIntroPrintPlayerSendsOut; +} + +static void BattleIntroPrintPlayerSendsOut(void) +{ + if (gBattleExecBuffer == 0) + { + u8 identity; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + identity = B_POSITION_PLAYER_LEFT; + else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + identity = B_POSITION_PLAYER_LEFT; + else + identity = B_POSITION_OPPONENT_LEFT; + } + else + identity = B_POSITION_PLAYER_LEFT; + + if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); + + gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; + } +} + +static void BattleIntroPlayer2SendsOutMonAnimation(void) +{ + u32 identity; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + identity = B_POSITION_PLAYER_RIGHT; + else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + identity = B_POSITION_PLAYER_RIGHT; + else + identity = B_POSITION_OPPONENT_RIGHT; + } + else + identity = B_POSITION_PLAYER_RIGHT; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankPosition(gActiveBank) == identity) + { + EmitIntroTrainerBallThrow(0); + MarkBufferBankForExecution(gActiveBank); + } + } + + gBattleStruct->switchInAbilitiesCounter = 0; + gBattleStruct->switchInItemsCounter = 0; + gBattleStruct->overworldWeatherDone = FALSE; + + gBattleMainFunc = TryDoEventsBeforeFirstTurn; +} + +static void BattleIntroPlayer1SendsOutMonAnimation(void) +{ + u32 identity; + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + identity = B_POSITION_PLAYER_LEFT; + else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_x80000000) + identity = B_POSITION_PLAYER_LEFT; + else + identity = B_POSITION_OPPONENT_LEFT; + } + else + identity = B_POSITION_PLAYER_LEFT; + + if (gBattleExecBuffer) + return; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankPosition(gActiveBank) == identity) + { + EmitIntroTrainerBallThrow(0); + MarkBufferBankForExecution(gActiveBank); + if (gBattleTypeFlags & (BATTLE_TYPE_MULTI)) + { + gBattleMainFunc = BattleIntroPlayer2SendsOutMonAnimation; + return; + } + } + } + + gBattleStruct->switchInAbilitiesCounter = 0; + gBattleStruct->switchInItemsCounter = 0; + gBattleStruct->overworldWeatherDone = FALSE; + + gBattleMainFunc = TryDoEventsBeforeFirstTurn; +} + +void sub_803B598(void) // unused +{ + if (gBattleExecBuffer == 0) + { + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], FALSE); + MarkBufferBankForExecution(gActiveBank); + } + } + + gBattleStruct->switchInAbilitiesCounter = 0; + gBattleStruct->switchInItemsCounter = 0; + gBattleStruct->overworldWeatherDone = FALSE; + + gBattleMainFunc = TryDoEventsBeforeFirstTurn; + } +} + +static void TryDoEventsBeforeFirstTurn(void) +{ + s32 i; + s32 j; + u8 effect = 0; + + if (gBattleExecBuffer) + return; + + if (gBattleStruct->switchInAbilitiesCounter == 0) + { + for (i = 0; i < gBattleBanksCount; i++) + gBanksByTurnOrder[i] = i; + for (i = 0; i < gBattleBanksCount - 1; i++) + { + for (j = i + 1; j < gBattleBanksCount; j++) + { + if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0) + SwapTurnOrder(i, j); + } + } + } + if (!gBattleStruct->overworldWeatherDone + && AbilityBattleEffects(0, 0, 0, ABILITYEFFECT_SWITCH_IN_WEATHER, 0) != 0) + { + gBattleStruct->overworldWeatherDone = TRUE; + return; + } + // check all switch in abilities happening from the fastest mon to slowest + while (gBattleStruct->switchInAbilitiesCounter < gBattleBanksCount) + { + if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) + effect++; + + gBattleStruct->switchInAbilitiesCounter++; + + if (effect) + return; + } + if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) != 0) + return; + if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) + return; + // check all switch in items having effect from the fastest mon to slowest + while (gBattleStruct->switchInItemsCounter < gBattleBanksCount) + { + if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) + effect++; + + gBattleStruct->switchInItemsCounter++; + + if (effect) + return; + } + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + *(gBattleStruct->monToSwitchIntoId + i) = 6; + gActionForBanks[i] = ACTION_INIT_VALUE; + gChosenMovesByBanks[i] = MOVE_NONE; + } + TurnValuesCleanUp(FALSE); + SpecialStatusesClear(); + *(&gBattleStruct->field_91) = gAbsentBankFlags; + BattleHandleAddTextPrinter(gText_EmptyString3, 0); + gBattleMainFunc = HandleTurnActionSelectionState; + ResetSentPokesToOpponentValue(); + + for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) + gBattleCommunication[i] = 0; + + for (i = 0; i < gBattleBanksCount; i++) + gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); + + *(&gBattleStruct->turnEffectsTracker) = 0; + *(&gBattleStruct->turnEffectsBank) = 0; + *(&gBattleStruct->wishPerishSongState) = 0; + *(&gBattleStruct->wishPerishSongBank) = 0; + gBattleScripting.atk49_state = 0; + gBattleStruct->faintedActionsState = 0; + gBattleStruct->turncountersTracker = 0; + gMoveResultFlags = 0; + + gRandomTurnNumber = Random(); + + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + { + StopCryAndClearCrySongs(); + BattleScriptExecute(BattleScript_82DB8BE); + } +} + +static void HandleEndTurn_ContinueBattle(void) +{ + s32 i; + + if (gBattleExecBuffer == 0) + { + gBattleMainFunc = BattleTurnPassed; + for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) + gBattleCommunication[i] = 0; + for (i = 0; i < gBattleBanksCount; i++) + { + gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); + if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) + CancelMultiTurnMoves(i); + } + gBattleStruct->turnEffectsTracker = 0; + gBattleStruct->turnEffectsBank = 0; + gBattleStruct->wishPerishSongState = 0; + gBattleStruct->wishPerishSongBank = 0; + gBattleStruct->turncountersTracker = 0; + gMoveResultFlags = 0; + } +} + +void BattleTurnPassed(void) +{ + s32 i; + + TurnValuesCleanUp(TRUE); + if (gBattleOutcome == 0) + { + if (UpdateTurnCounters() != 0) + return; + if (TurnBasedEffects() != 0) + return; + } + if (HandleFaintedMonActions() != 0) + return; + gBattleStruct->faintedActionsState = 0; + if (HandleWishPerishSongOnTurnEnd() != 0) + return; + + TurnValuesCleanUp(FALSE); + gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); + gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); + gHitMarker &= ~(HITMARKER_x400000); + gHitMarker &= ~(HITMARKER_x100000); + gBattleScripting.animTurn = 0; + gBattleScripting.animTargetsHit = 0; + gBattleScripting.atk49_state = 0; + gBattleMoveDamage = 0; + gMoveResultFlags = 0; + + for (i = 0; i < 5; i++) + gBattleCommunication[i] = 0; + + if (gBattleOutcome != 0) + { + gCurrentActionFuncId = 12; + gBattleMainFunc = RunTurnActionsFunctions; + return; + } + + if (gBattleResults.battleTurnCounter < 0xFF) + { + gBattleResults.battleTurnCounter++; + gBattleStruct->field_DA++; + } + + for (i = 0; i < gBattleBanksCount; i++) + { + gActionForBanks[i] = ACTION_INIT_VALUE; + gChosenMovesByBanks[i] = MOVE_NONE; + } + + for (i = 0; i < 4; i++) + *(gBattleStruct->monToSwitchIntoId + i) = 6; + + *(&gBattleStruct->field_91) = gAbsentBankFlags; + BattleHandleAddTextPrinter(gText_EmptyString3, 0); + gBattleMainFunc = HandleTurnActionSelectionState; + gRandomTurnNumber = Random(); + + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + BattleScriptExecute(BattleScript_82DB881); + else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) + BattleScriptExecute(BattleScript_82DB8BE); +} + +u8 IsRunningFromBattleImpossible(void) +{ + u8 holdEffect; + u8 side; + s32 i; + + if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gActiveBank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); + + gStringBank = gActiveBank; + + if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) + return 0; + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + return 0; + if (gBattleMons[gActiveBank].ability == ABILITY_RUN_AWAY) + return 0; + + side = GetBankSide(gActiveBank); + + for (i = 0; i < gBattleBanksCount; i++) + { + if (side != GetBankSide(i) + && gBattleMons[i].ability == ABILITY_SHADOW_TAG) + { + gBattleScripting.bank = i; + gLastUsedAbility = gBattleMons[i].ability; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + return 2; + } + if (side != GetBankSide(i) + && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE + && gBattleMons[gActiveBank].type1 != TYPE_FLYING + && gBattleMons[gActiveBank].type2 != TYPE_FLYING + && gBattleMons[i].ability == ABILITY_ARENA_TRAP) + { + gBattleScripting.bank = i; + gLastUsedAbility = gBattleMons[i].ability; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + return 2; + } + } + i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0); + if (i != 0 && (gBattleMons[gActiveBank].type1 == TYPE_STEEL || gBattleMons[gActiveBank].type2 == TYPE_STEEL)) + { + gBattleScripting.bank = i - 1; + gLastUsedAbility = gBattleMons[i - 1].ability; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + return 2; + } + if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) + || (gStatuses3[gActiveBank] & STATUS3_ROOTED)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + return 1; + } + if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + return 1; + } + return 0; +} + +void sub_803BDA0(u8 bank) +{ + s32 i; + u8 r4; + u8 r1; + + // gBattleStruct->field_60[bank][i] + + for (i = 0; i < 3; i++) + gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60)); + + r4 = pokemon_order_func(gBattlePartyID[bank]); + r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + bank)); + sub_81B8FB0(r4, r1); + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + for (i = 0; i < 3; i++) + { + *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + *((bank ^ BIT_MON) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + } + } + else + { + for (i = 0; i < 3; i++) + { + *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + } + } +} + +enum +{ + STATE_TURN_START_RECORD, + STATE_BEFORE_ACTION_CHOSEN, + STATE_WAIT_ACTION_CHOSEN, + STATE_WAIT_ACTION_CASE_CHOSEN, + STATE_WAIT_ACTION_CONFIRMED_STANDBY, + STATE_WAIT_ACTION_CONFIRMED, + STATE_SELECTION_SCRIPT, + STATE_WAIT_SET_BEFORE_ACTION, + STATE_SELECTION_SCRIPT_MAY_RUN +}; + +static void HandleTurnActionSelectionState(void) +{ + s32 i; + + gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + u8 identity = GetBankPosition(gActiveBank); + switch (gBattleCommunication[gActiveBank]) + { + case STATE_TURN_START_RECORD: // recorded battle related on start of every turn + RecordedBattle_CopyBankMoves(); + gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN; + break; + case STATE_BEFORE_ACTION_CHOSEN: // choose an action + *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; + if (gBattleTypeFlags & BATTLE_TYPE_MULTI + || !(identity & BIT_MON) + || gBattleStruct->field_91 & gBitTable[GetBankByPosition(identity ^ BIT_MON)] + || gBattleCommunication[GetBankByPosition(identity ^ BIT_MON)] == 5) + { + if (gBattleStruct->field_91 & gBitTable[gActiveBank]) + { + gActionForBanks[gActiveBank] = ACTION_NOTHING_FAINTED; + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED; + else + gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + } + else + { + if (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[gActiveBank].status2 & STATUS2_RECHARGE) + { + gActionForBanks[gActiveBank] = ACTION_USE_MOVE; + gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + } + else + { + EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[gActiveBank]++; + } + } + } + break; + case STATE_WAIT_ACTION_CHOSEN: // try to perform an action + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); + gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1]; + + switch (gBattleBufferB[gActiveBank][1]) + { + case ACTION_USE_MOVE: + if (AreAllMovesUnusable()) + { + gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3]; + return; + } + else if (gDisableStructs[gActiveBank].encoredMove != 0) + { + gChosenMovesByBanks[gActiveBank] = gDisableStructs[gActiveBank].encoredMove; + *(gBattleStruct->chosenMovePositions + gActiveBank) = gDisableStructs[gActiveBank].encoredMovePos; + gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + return; + } + else + { + struct ChooseMoveStruct moveInfo; + + moveInfo.species = gBattleMons[gActiveBank].species; + moveInfo.monType1 = gBattleMons[gActiveBank].type1; + moveInfo.monType2 = gBattleMons[gActiveBank].type2; + + for (i = 0; i < 4; i++) + { + moveInfo.moves[i] = gBattleMons[gActiveBank].moves[i]; + moveInfo.currentPp[i] = gBattleMons[gActiveBank].pp[i]; + moveInfo.maxPp[i] = CalculatePPWithBonus( + gBattleMons[gActiveBank].moves[i], + gBattleMons[gActiveBank].ppBonuses, + i); + } + + EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo); + MarkBufferBankForExecution(gActiveBank); + } + break; + case ACTION_USE_ITEM: + if (gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_FRONTIER_NO_PYRAMID + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_x2000000)) + { + RecordedBattle_ClearBankAction(gActiveBank, 1); + gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; + gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + return; + } + else + { + EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]); + MarkBufferBankForExecution(gActiveBank); + } + break; + case ACTION_SWITCH: + *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; + if (gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) + || gBattleTypeFlags & BATTLE_TYPE_ARENA + || gStatuses3[gActiveBank] & STATUS3_ROOTED) + { + EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + } + else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) + || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) + && gBattleMons[gActiveBank].type1 != TYPE_FLYING + && gBattleMons[gActiveBank].type2 != TYPE_FLYING + && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) + || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0)) + && (gBattleMons[gActiveBank].type1 == TYPE_STEEL + || gBattleMons[gActiveBank].type2 == TYPE_STEEL))) + { + EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBank]); + } + else + { + if (gActiveBank == 2 && gActionForBanks[0] == ACTION_SWITCH) + EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + else if (gActiveBank == 3 && gActionForBanks[1] == ACTION_SWITCH) + EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + else + EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + } + MarkBufferBankForExecution(gActiveBank); + break; + case ACTION_SAFARI_ZONE_BALL: + if (IsPlayerPartyAndPokemonStorageFull()) + { + gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox; + gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + return; + } + break; + case ACTION_POKEBLOCK_CASE: + EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]); + MarkBufferBankForExecution(gActiveBank); + break; + case ACTION_CANCEL_PARTNER: + gBattleCommunication[gActiveBank] = 7; + gBattleCommunication[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; + RecordedBattle_ClearBankAction(gActiveBank, 1); + if (gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) + { + EmitCmd50(0); + MarkBufferBankForExecution(gActiveBank); + return; + } + else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) + { + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 2); + } + else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) + { + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + } + else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE + && (gProtectStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle + || gDisableStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) + { + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + } + else if (gBattleTypeFlags & BATTLE_TYPE_PALACE + && gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) + { + gRngValue = gBattlePalaceMoveSelectionRngValue; + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + } + else + { + RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 3); + } + EmitCmd50(0); + MarkBufferBankForExecution(gActiveBank); + return; + } + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER + && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) + && gBattleBufferB[gActiveBank][1] == ACTION_RUN) + { + gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch; + gBattleCommunication[gActiveBank] = 8; + *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + return; + } + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER + && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + && gBattleBufferB[gActiveBank][1] == ACTION_RUN) + { + BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); + gBattleCommunication[gActiveBank] = 1; + } + else if (IsRunningFromBattleImpossible() + && gBattleBufferB[gActiveBank][1] == ACTION_RUN) + { + gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle; + gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + return; + } + else + { + gBattleCommunication[gActiveBank]++; + } + } + break; + case STATE_WAIT_ACTION_CASE_CHOSEN: + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + switch (gActionForBanks[gActiveBank]) + { + case ACTION_USE_MOVE: + switch (gBattleBufferB[gActiveBank][1]) + { + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1]; + return; + case 15: + gActionForBanks[gActiveBank] = ACTION_SWITCH; + sub_803CDF8(); + return; + default: + sub_818603C(2); + if ((gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)) == 0xFFFF) + { + gBattleCommunication[gActiveBank] = 1; + RecordedBattle_ClearBankAction(gActiveBank, 1); + } + else if (TrySetCantSelectMoveBattleScript()) + { + RecordedBattle_ClearBankAction(gActiveBank, 1); + gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; + gBattleBufferB[gActiveBank][1] = 0; + *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CHOSEN; + return; + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_PALACE)) + { + RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][2]); + RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][3]); + } + *(gBattleStruct->chosenMovePositions + gActiveBank) = gBattleBufferB[gActiveBank][2]; + gChosenMovesByBanks[gActiveBank] = gBattleMons[gActiveBank].moves[*(gBattleStruct->chosenMovePositions + gActiveBank)]; + *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3]; + gBattleCommunication[gActiveBank]++; + } + break; + } + break; + case ACTION_USE_ITEM: + if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) == 0) + { + gBattleCommunication[gActiveBank] = 1; + } + else + { + gLastUsedItem = (gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)); + gBattleCommunication[gActiveBank]++; + } + break; + case ACTION_SWITCH: + if (gBattleBufferB[gActiveBank][1] == 6) + { + gBattleCommunication[gActiveBank] = 1; + RecordedBattle_ClearBankAction(gActiveBank, 1); + } + else + { + sub_803CDF8(); + gBattleCommunication[gActiveBank]++; + } + break; + case ACTION_RUN: + gHitMarker |= HITMARKER_RUN; + gBattleCommunication[gActiveBank]++; + break; + case ACTION_WATCHES_CAREFULLY: + gBattleCommunication[gActiveBank]++; + break; + case ACTION_SAFARI_ZONE_BALL: + gBattleCommunication[gActiveBank]++; + break; + case ACTION_POKEBLOCK_CASE: + if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) != 0) + { + gBattleCommunication[gActiveBank]++; + } + else + { + gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN; + } + break; + case ACTION_GO_NEAR: + gBattleCommunication[gActiveBank]++; + break; + case ACTION_SAFARI_ZONE_RUN: + gHitMarker |= HITMARKER_RUN; + gBattleCommunication[gActiveBank]++; + break; + case ACTION_9: + gBattleCommunication[gActiveBank]++; + break; + } + } + break; + case STATE_WAIT_ACTION_CONFIRMED_STANDBY: + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + i = (sub_803CDB8() != 0); + + if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) + || (identity & BIT_MON) + || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(identity ^ BIT_MON)])) + { + EmitLinkStandbyMsg(0, 0, i); + } + else + { + EmitLinkStandbyMsg(0, 1, i); + } + MarkBufferBankForExecution(gActiveBank); + gBattleCommunication[gActiveBank]++; + } + break; + case STATE_WAIT_ACTION_CONFIRMED: + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++; + } + break; + case STATE_SELECTION_SCRIPT: + if (*(gBattleStruct->selectionScriptFinished + gActiveBank)) + { + gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank); + } + else + { + gBankAttacker = gActiveBank; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); + } + gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; + } + break; + case STATE_WAIT_SET_BEFORE_ACTION: + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + gBattleCommunication[gActiveBank] = 1; + } + break; + case STATE_SELECTION_SCRIPT_MAY_RUN: + if (*(gBattleStruct->selectionScriptFinished + gActiveBank)) + { + if (gBattleBufferB[gActiveBank][1] == 13) + { + gHitMarker |= HITMARKER_RUN; + gActionForBanks[gActiveBank] = ACTION_RUN; + gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + } + else + { + RecordedBattle_ClearBankAction(gActiveBank, 1); + gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank); + } + } + else + { + gBankAttacker = gActiveBank; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; + if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + { + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); + } + gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; + } + break; + } + } + + // check if everyone chose actions + if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattleBanksCount) + { + sub_818603C(1); + gBattleMainFunc = SetActionsAndBanksTurnOrder; + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + { + for (i = 0; i < gBattleBanksCount; i++) + { + if (gActionForBanks[i] == ACTION_SWITCH) + sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i)); + } + } + } +} + +static bool8 sub_803CDB8(void) +{ + s32 i, var; + + for (var = 0, i = 0; i < gBattleBanksCount; i++) + { + if (gBattleCommunication[i] == 5) + var++; + } + + if (var + 1 == gBattleBanksCount) + return TRUE; + else + return FALSE; +} + +static void sub_803CDF8(void) +{ + *(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1]; + RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); + + if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; + *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0); + *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3]; + + *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); + *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4; + *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3]; + } +} + +void SwapTurnOrder(u8 id1, u8 id2) +{ + u32 temp = gActionsByTurnOrder[id1]; + gActionsByTurnOrder[id1] = gActionsByTurnOrder[id2]; + gActionsByTurnOrder[id2] = temp; + + temp = gBanksByTurnOrder[id1]; + gBanksByTurnOrder[id1] = gBanksByTurnOrder[id2]; + gBanksByTurnOrder[id2] = temp; +} + +u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) +{ + u8 strikesFirst = 0; + u8 speedMultiplierBank1 = 0, speedMultiplierBank2 = 0; + u32 speedBank1 = 0, speedBank2 = 0; + u8 holdEffect = 0; + u8 holdEffectParam = 0; + u16 moveBank1 = 0, moveBank2 = 0; + + if (WEATHER_HAS_EFFECT) + { + if ((gBattleMons[bank1].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY) + || (gBattleMons[bank1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)) + speedMultiplierBank1 = 2; + else + speedMultiplierBank1 = 1; + + if ((gBattleMons[bank2].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY) + || (gBattleMons[bank2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)) + speedMultiplierBank2 = 2; + else + speedMultiplierBank2 = 1; + } + else + { + speedMultiplierBank1 = 1; + speedMultiplierBank2 = 1; + } + + speedBank1 = (gBattleMons[bank1].speed * speedMultiplierBank1) + * (gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][0]) + / (gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][1]); + + if (gBattleMons[bank1].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[bank1].holdEffect; + holdEffectParam = gEnigmaBerries[bank1].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[bank1].item); + holdEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank1].item); + } + + // badge boost + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) + && FlagGet(FLAG_BADGE03_GET) + && GetBankSide(bank1) == SIDE_PLAYER) + { + speedBank1 = (speedBank1 * 110) / 100; + } + + if (holdEffect == HOLD_EFFECT_MACHO_BRACE) + speedBank1 /= 2; + + if (gBattleMons[bank1].status1 & STATUS1_PARALYSIS) + speedBank1 /= 4; + + if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) + speedBank1 = UINT_MAX; + + // check second bank's speed + + speedBank2 = (gBattleMons[bank2].speed * speedMultiplierBank2) + * (gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][0]) + / (gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][1]); + + if (gBattleMons[bank2].item == ITEM_ENIGMA_BERRY) + { + holdEffect = gEnigmaBerries[bank2].holdEffect; + holdEffectParam = gEnigmaBerries[bank2].holdEffectParam; + } + else + { + holdEffect = ItemId_GetHoldEffect(gBattleMons[bank2].item); + holdEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank2].item); + } + + // badge boost + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) + && FlagGet(FLAG_BADGE03_GET) + && GetBankSide(bank2) == SIDE_PLAYER) + { + speedBank2 = (speedBank2 * 110) / 100; + } + + if (holdEffect == HOLD_EFFECT_MACHO_BRACE) + speedBank2 /= 2; + + if (gBattleMons[bank2].status1 & STATUS1_PARALYSIS) + speedBank2 /= 4; + + if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100) + speedBank2 = UINT_MAX; + + if (ignoreChosenMoves) + { + moveBank1 = MOVE_NONE; + moveBank2 = MOVE_NONE; + } + else + { + if (gActionForBanks[bank1] == ACTION_USE_MOVE) + { + if (gProtectStructs[bank1].onlyStruggle) + moveBank1 = MOVE_STRUGGLE; + else + moveBank1 = gBattleMons[bank1].moves[*(gBattleStruct->chosenMovePositions + bank1)]; + } + else + moveBank1 = MOVE_NONE; + + if (gActionForBanks[bank2] == ACTION_USE_MOVE) + { + if (gProtectStructs[bank2].onlyStruggle) + moveBank2 = MOVE_STRUGGLE; + else + moveBank2 = gBattleMons[bank2].moves[*(gBattleStruct->chosenMovePositions + bank2)]; + } + else + moveBank2 = MOVE_NONE; + } + + // both move priorities are different than 0 + if (gBattleMoves[moveBank1].priority != 0 || gBattleMoves[moveBank2].priority != 0) + { + // both priorities are the same + if (gBattleMoves[moveBank1].priority == gBattleMoves[moveBank2].priority) + { + if (speedBank1 == speedBank2 && Random() & 1) + strikesFirst = 2; // same speeds, same priorities + else if (speedBank1 < speedBank2) + strikesFirst = 1; // bank2 has more speed + + // else bank1 has more speed + } + else if (gBattleMoves[moveBank1].priority < gBattleMoves[moveBank2].priority) + strikesFirst = 1; // bank2's move has greater priority + + // else bank1's move has greater priority + } + // both priorities are equal to 0 + else + { + if (speedBank1 == speedBank2 && Random() & 1) + strikesFirst = 2; // same speeds, same priorities + else if (speedBank1 < speedBank2) + strikesFirst = 1; // bank2 has more speed + + // else bank1 has more speed + } + + return strikesFirst; +} + +static void SetActionsAndBanksTurnOrder(void) +{ + s32 var = 0; + s32 i, j; + + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + { + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[var] = gActiveBank; + var++; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (gActionForBanks[gActiveBank] == ACTION_RUN) + { + var = 5; + break; + } + } + } + else + { + if (gActionForBanks[0] == ACTION_RUN) + { + gActiveBank = 0; + var = 5; + } + if (gActionForBanks[2] == ACTION_RUN) + { + gActiveBank = 2; + var = 5; + } + } + + if (var == 5) + { + gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[0] = gActiveBank; + var = 1; + for (i = 0; i < gBattleBanksCount; i++) + { + if (i != gActiveBank) + { + gActionsByTurnOrder[var] = gActionForBanks[i]; + gBanksByTurnOrder[var] = i; + var++; + } + } + gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; + gBattleStruct->focusPunchBank = 0; + return; + } + else + { + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) + { + gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[var] = gActiveBank; + var++; + } + } + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) + { + gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[var] = gActiveBank; + var++; + } + } + for (i = 0; i < gBattleBanksCount - 1; i++) + { + for (j = i + 1; j < gBattleBanksCount; j++) + { + u8 bank1 = gBanksByTurnOrder[i]; + u8 bank2 = gBanksByTurnOrder[j]; + if (gActionsByTurnOrder[i] != ACTION_USE_ITEM + && gActionsByTurnOrder[j] != ACTION_USE_ITEM + && gActionsByTurnOrder[i] != ACTION_SWITCH + && gActionsByTurnOrder[j] != ACTION_SWITCH) + { + if (GetWhoStrikesFirst(bank1, bank2, FALSE)) + SwapTurnOrder(i, j); + } + } + } + } + } + gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; + gBattleStruct->focusPunchBank = 0; +} + +static void TurnValuesCleanUp(bool8 var0) +{ + s32 i; + u8 *dataPtr; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (var0) + { + gProtectStructs[gActiveBank].protected = 0; + gProtectStructs[gActiveBank].endured = 0; + } + else + { + dataPtr = (u8*)(&gProtectStructs[gActiveBank]); + for (i = 0; i < sizeof(struct ProtectStruct); i++) + dataPtr[i] = 0; + + if (gDisableStructs[gActiveBank].isFirstTurn) + gDisableStructs[gActiveBank].isFirstTurn--; + + if (gDisableStructs[gActiveBank].rechargeCounter) + { + gDisableStructs[gActiveBank].rechargeCounter--; + if (gDisableStructs[gActiveBank].rechargeCounter == 0) + gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE); + } + } + + if (gDisableStructs[gActiveBank].substituteHP == 0) + gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE); + } + + gSideTimers[0].followmeTimer = 0; + gSideTimers[1].followmeTimer = 0; +} + +static void SpecialStatusesClear(void) +{ + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + s32 i; + u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); + + for (i = 0; i < sizeof(struct SpecialStatus); i++) + dataPtr[i] = 0; + } +} + +static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) +{ + if (!(gHitMarker & HITMARKER_RUN)) + { + while (gBattleStruct->focusPunchBank < gBattleBanksCount) + { + gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank; + gBattleStruct->focusPunchBank++; + if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH + && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) + && !(gDisableStructs[gBankAttacker].truantCounter) + && !(gProtectStructs[gActiveBank].onlyStruggle)) + { + BattleScriptExecute(BattleScript_FocusPunchSetUp); + return; + } + } + } + + TryClearRageStatuses(); + gCurrentTurnActionNumber = 0; +{ + // something stupid needed to match + u8 zero; + gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)]; +} + gDynamicBasePower = 0; + gBattleStruct->dynamicMoveType = 0; + gBattleMainFunc = RunTurnActionsFunctions; + gBattleCommunication[3] = 0; + gBattleCommunication[4] = 0; + gBattleScripting.multihitMoveEffect = 0; + gBattleResources->battleScriptsStack->size = 0; +} + +static void RunTurnActionsFunctions(void) +{ + if (gBattleOutcome != 0) + gCurrentActionFuncId = 12; + + *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber; + sTurnActionsFuncsTable[gCurrentActionFuncId](); + + if (gCurrentTurnActionNumber >= gBattleBanksCount) // everyone did their actions, turn finished + { + gHitMarker &= ~(HITMARKER_x100000); + gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; + } + else + { + if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank + { + gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); + gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); + } + } +} + +static void HandleEndTurn_BattleWon(void) +{ + gCurrentActionFuncId = 0; + + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + gSpecialVar_Result = gBattleOutcome; + gBattleTextBuff1[0] = gBattleOutcome; + gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); + } + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER + && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER)) + { + BattleStopLowHpSound(); + gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon; + + if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE) + PlayBGM(MUS_KACHI3); + else + PlayBGM(MUS_KACHI1); + } + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) + { + BattleStopLowHpSound(); + gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon; + + switch (gTrainers[gTrainerBattleOpponent_A].trainerClass) + { + case TRAINER_CLASS_ELITE_FOUR: + case TRAINER_CLASS_CHAMPION: + PlayBGM(MUS_KACHI5); + break; + case TRAINER_CLASS_TEAM_AQUA: + case TRAINER_CLASS_TEAM_MAGMA: + case TRAINER_CLASS_AQUA_ADMIN: + case TRAINER_CLASS_AQUA_LEADER: + case TRAINER_CLASS_MAGMA_ADMIN: + case TRAINER_CLASS_MAGMA_LEADER: + PlayBGM(MUS_KACHI4); + break; + case TRAINER_CLASS_LEADER: + PlayBGM(MUS_KACHI3); + break; + default: + PlayBGM(MUS_KACHI1); + break; + } + } + else + { + gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems; + } + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +static void HandleEndTurn_BattleLost(void) +{ + gCurrentActionFuncId = 0; + + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + if (gBattleOutcome & B_OUTCOME_LINK_BATTLE_RAN) + { + gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle; + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); + gSaveBlock2Ptr->field_CA9_b = 1; + } + else + { + gBattlescriptCurrInstr = BattleScript_82DAA0B; + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); + } + } + else + { + gBattleTextBuff1[0] = gBattleOutcome; + gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; + gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); + } + } + else + { + gBattlescriptCurrInstr = BattleScript_LocalBattleLost; + } + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +static void HandleEndTurn_RanFromBattle(void) +{ + gCurrentActionFuncId = 0; + + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; + gBattleOutcome = B_OUTCOME_FORFEITED; + gSaveBlock2Ptr->field_CA9_b = 1; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; + gBattleOutcome = B_OUTCOME_FORFEITED; + } + else + { + switch (gProtectStructs[gBankAttacker].fleeFlag) + { + default: + gBattlescriptCurrInstr = BattleScript_GotAwaySafely; + break; + case 1: + gBattlescriptCurrInstr = BattleScript_SmokeBallEscape; + break; + case 2: + gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility; + break; + } + } + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +static void HandleEndTurn_MonFled(void) +{ + gCurrentActionFuncId = 0; + + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]); + gBattlescriptCurrInstr = BattleScript_WildMonFled; + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +static void HandleEndTurn_FinishBattle(void) +{ + if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) + { + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_FIRST_BATTLE + | BATTLE_TYPE_SAFARI + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_WALLY_TUTORIAL + | BATTLE_TYPE_FRONTIER))) + { + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (gBattleResults.playerMon1Species == SPECIES_NONE) + { + gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name); + } + else + { + gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name); + } + } + } + PutPokemonTodayCaughtOnAir(); + } + + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_x2000000 + | BATTLE_TYPE_TRAINER + | BATTLE_TYPE_FIRST_BATTLE + | BATTLE_TYPE_SAFARI + | BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_WALLY_TUTORIAL)) + && gBattleResults.unk5_6) + { + sub_80EE184(); + } + + sub_8186444(); + BeginFastPaletteFade(3); + FadeOutMapMusic(5); + gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions; + gCB2_AfterEvolution = BattleMainCB2; + } + else + { + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); + } +} + +static void FreeResetData_ReturnToOvOrDoEvolutions(void) +{ + if (!gPaletteFade.active) + { + ResetSpriteData(); + if (gLeveledUpInBattle == 0 || gBattleOutcome != B_OUTCOME_WON) + { + gBattleMainFunc = ReturnFromBattleToOverworld; + return; + } + else + { + gBattleMainFunc = TryEvolvePokemon; + } + } + + FreeAllWindowBuffers(); + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) + { + FreeMonSpritesGfx(); + FreeBattleResources(); + FreeBattleSpritesData(); + } +} + +static void TryEvolvePokemon(void) +{ + s32 i; + + while (gLeveledUpInBattle != 0) + { + for (i = 0; i < 6; i++) + { + if (gLeveledUpInBattle & gBitTable[i]) + { + u16 species; + u8 levelUpBits = gLeveledUpInBattle; + + levelUpBits &= ~(gBitTable[i]); + gLeveledUpInBattle = levelUpBits; + + species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits); + if (species != SPECIES_NONE) + { + FreeAllWindowBuffers(); + gBattleMainFunc = WaitForEvoSceneToFinish; + EvolutionScene(&gPlayerParty[i], species, TRUE, i); + return; + } + } + } + } + + gBattleMainFunc = ReturnFromBattleToOverworld; +} + +static void WaitForEvoSceneToFinish(void) +{ + if (gMain.callback2 == BattleMainCB2) + gBattleMainFunc = TryEvolvePokemon; +} + +static void ReturnFromBattleToOverworld(void) +{ + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) + { + RandomlyGivePartyPokerus(gPlayerParty); + PartySpreadPokerus(gPlayerParty); + } + + if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0) + return; + + gSpecialVar_Result = gBattleOutcome; + gMain.inBattle = 0; + gMain.callback1 = gPreBattleCallback1; + + if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) + { + UpdateRoamerHPStatus(&gEnemyParty[0]); + if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT_POKE) + SetRoamerInactive(); + } + + m4aSongNumStop(0x5A); + SetMainCallback2(gMain.savedCallback); +} + +void RunBattleScriptCommands_PopCallbacksStack(void) +{ + if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) + { + if (BATTLE_CALLBACKS_STACK->size != 0) + BATTLE_CALLBACKS_STACK->size--; + gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size]; + } + else + { + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); + } +} + +void RunBattleScriptCommands(void) +{ + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); +} + +static void HandleAction_UseMove(void) +{ + u8 side; + u8 var = 4; + + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + + if (*(&gBattleStruct->field_91) & gBitTable[gBankAttacker]) + { + gCurrentActionFuncId = ACTION_FINISHED; + return; + } + + gCritMultiplier = 1; + gBattleScripting.dmgMultiplier = 1; + gBattleStruct->atkCancellerTracker = 0; + gMoveResultFlags = 0; + gMultiHitCounter = 0; + gBattleCommunication[6] = 0; + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker); + + // choose move + if (gProtectStructs[gBankAttacker].onlyStruggle) + { + gProtectStructs[gBankAttacker].onlyStruggle = 0; + gCurrentMove = gChosenMove = MOVE_STRUGGLE; + gHitMarker |= HITMARKER_NO_PPDEDUCT; + *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + } + else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + { + gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; + } + // encore forces you to use the same move + else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + { + gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; + *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + } + // check if the encored move wasn't overwritten + else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + { + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; + gDisableStructs[gBankAttacker].encoredMovePos = 0; + gDisableStructs[gBankAttacker].encoreTimer1 = 0; + *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + } + else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) + { + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + } + else + { + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + } + + if (gBattleMons[gBankAttacker].hp != 0) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + gBattleResults.lastUsedMovePlayer = gCurrentMove; + else + gBattleResults.lastUsedMoveOpponent = gCurrentMove; + } + + // choose target + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + if (gSideTimers[side].followmeTimer != 0 + && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED + && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) + && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) + { + gBankDefender = gSideTimers[side].followmeTarget; + } + else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + && gSideTimers[side].followmeTimer == 0 + && (gBattleMoves[gCurrentMove].power != 0 + || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) + && gBattleMons[*(gBattleStruct->moveTarget + gBankAttacker)].ability != ABILITY_LIGHTNING_ROD + && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + { + side = GetBankSide(gBankAttacker); + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (side != GetBankSide(gActiveBank) + && *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank + && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD + && BankGetTurnOrder(gActiveBank) < var) + { + var = BankGetTurnOrder(gActiveBank); + } + } + if (var == 4) + { + if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (Random() & 1) + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + else + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + } + else + { + if (Random() & 1) + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); + else + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + } + } + else + { + gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); + } + + if (gAbsentBankFlags & gBitTable[gBankDefender]) + { + if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) + { + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + } + else + { + gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + } + } + } + else + { + gActiveBank = gBanksByTurnOrder[var]; + RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); + gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; + gBankDefender = gActiveBank; + } + } + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (Random() & 1) + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + else + gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + } + else + { + if (Random() & 1) + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); + else + gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + } + + if (gAbsentBankFlags & gBitTable[gBankDefender] + && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) + { + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + } + } + else + { + gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + { + if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) + { + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + } + else + { + gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + } + } + } + + // choose battlescript + if (gBattleTypeFlags & BATTLE_TYPE_PALACE + && gProtectStructs[gBankAttacker].flag_x10) + { + if (gBattleMons[gBankAttacker].hp == 0) + { + gCurrentActionFuncId = 12; + return; + } + else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker]; + gPalaceSelectionBattleScripts[gBankAttacker] = NULL; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + } + } + else + { + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; + } + + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + sub_81A56E8(gBankAttacker); + + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +static void HandleAction_Switch(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gActionSelectionCursor[gBankAttacker] = 0; + gMoveSelectionCursor[gBankAttacker] = 0; + + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, *(gBattleStruct->field_58 + gBankAttacker)) + + gBattleScripting.bank = gBankAttacker; + gBattlescriptCurrInstr = BattleScript_ActionSwitch; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + + if (gBattleResults.playerSwitchesCounter < 255) + gBattleResults.playerSwitchesCounter++; +} + +static void HandleAction_UseItem(void) +{ + gBankAttacker = gBankDefender = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + ClearFuryCutterDestinyBondGrudge(gBankAttacker); + gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8); + + if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball + { + gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem]; + } + else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL) + { + gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; + } + else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; + } + else + { + gBattleScripting.bank = gBankAttacker; + + switch (*(gBattleStruct->AI_itemType + (gBankAttacker >> 1))) + { + case AI_ITEM_FULL_RESTORE: + case AI_ITEM_HEAL_HP: + break; + case AI_ITEM_CURE_CONDITION: + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1) + { + if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 0x3E) + gBattleCommunication[MULTISTRING_CHOOSER] = 5; + } + else + { + while (!(*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1)) + { + *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; + gBattleCommunication[MULTISTRING_CHOOSER]++; + } + } + break; + case AI_ITEM_X_STAT: + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + if (*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1)) & 0x80) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 5; + } + else + { + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) + PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) + + while (!((*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1))) & 1)) + { + *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; + gBattleTextBuff1[2]++; + } + + gBattleScripting.animArg1 = gBattleTextBuff1[2] + 14; + gBattleScripting.animArg2 = 0; + } + break; + case AI_ITEM_GUARD_SPECS: + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + break; + } + + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBankAttacker / 2)]; + } + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +bool8 TryRunFromBattle(u8 bank) +{ + bool8 effect = FALSE; + u8 holdEffect; + u8 pyramidMultiplier; + u8 speedVar; + + if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[bank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); + + gStringBank = bank; + + if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) + { + gLastUsedItem = gBattleMons[bank].item ; + gProtectStructs[bank].fleeFlag = 1; + effect++; + } + else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY) + { + if (InBattlePyramid()) + { + gBattleStruct->runTries++; + pyramidMultiplier = sub_81A9E28(); + speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); + if (speedVar > (Random() & 0xFF)) + { + gLastUsedAbility = ABILITY_RUN_AWAY; + gProtectStructs[bank].fleeFlag = 2; + effect++; + } + } + else + { + gLastUsedAbility = ABILITY_RUN_AWAY; + gProtectStructs[bank].fleeFlag = 2; + effect++; + } + } + else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + effect++; + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + if (InBattlePyramid()) + { + pyramidMultiplier = sub_81A9E28(); + speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); + if (speedVar > (Random() & 0xFF)) + effect++; + } + else if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed) + { + speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); + if (speedVar > (Random() & 0xFF)) + effect++; + } + else // same speed or faster + { + effect++; + } + } + + gBattleStruct->runTries++; + } + + if (effect) + { + gCurrentTurnActionNumber = gBattleBanksCount; + gBattleOutcome = B_OUTCOME_RAN; + } + + return effect; +} + +static void HandleAction_Run(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + gCurrentTurnActionNumber = gBattleBanksCount; + + for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + { + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (gActionForBanks[gActiveBank] == ACTION_RUN) + gBattleOutcome |= B_OUTCOME_LOST; + } + else + { + if (gActionForBanks[gActiveBank] == ACTION_RUN) + gBattleOutcome |= B_OUTCOME_WON; + } + } + + gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN; + gSaveBlock2Ptr->field_CA9_b = 1; + } + else + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (!TryRunFromBattle(gBankAttacker)) // failed to run away + { + ClearFuryCutterDestinyBondGrudge(gBankAttacker); + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + } + } + else + { + if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + } + else + { + gCurrentTurnActionNumber = gBattleBanksCount; + gBattleOutcome = B_OUTCOME_POKE_FLED; + } + } + } +} + +static void HandleAction_WatchesCarefully(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +static void HandleAction_SafariZoneBallThrow(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gNumSafariBalls--; + gLastUsedItem = ITEM_SAFARI_BALL; + gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +static void HandleAction_ThrowPokeblock(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1; + gLastUsedItem = gBattleBufferB[gBankAttacker][2]; + + if (gBattleResults.field_1F < 0xFF) + gBattleResults.field_1F++; + if (gBattleStruct->field_7A < 3) + gBattleStruct->field_7A++; + if (gBattleStruct->field_7B > 1) + { + if (gBattleStruct->field_7B < sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]]) + gBattleStruct->field_7B = 1; + else + gBattleStruct->field_7B -= sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]]; + } + + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +static void HandleAction_GoNear(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + + gBattleStruct->field_7C += sUnknown_0831BCEF[gBattleStruct->field_79]; + if (gBattleStruct->field_7C > 20) + gBattleStruct->field_7C = 20; + + gBattleStruct->field_7B +=sUnknown_0831BCF3[gBattleStruct->field_79]; + if (gBattleStruct->field_7B > 20) + gBattleStruct->field_7B = 20; + + if (gBattleStruct->field_79 < 3) + { + gBattleStruct->field_79++; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +static void HandleAction_SafriZoneRun(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + PlaySE(SE_NIGERU); + gCurrentTurnActionNumber = gBattleBanksCount; + gBattleOutcome = B_OUTCOME_RAN; +} + +static void HandleAction_Action9(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gActionsByTurnOrder[1] = ACTION_FINISHED; +} + +static void HandleAction_Action11(void) +{ + if (!HandleFaintedMonActions()) + { + gBattleStruct->faintedActionsState = 0; + gCurrentActionFuncId = ACTION_FINISHED; + } +} + +static void HandleAction_NothingIsFainted(void) +{ + gCurrentTurnActionNumber++; + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; + gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED + | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR + | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000 + | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT + | HITMARKER_x8000000 | HITMARKER_x4000000); +} + +static void HandleAction_ActionFinished(void) +{ + *(gBattleStruct->monToSwitchIntoId + gBanksByTurnOrder[gCurrentTurnActionNumber]) = 6; + gCurrentTurnActionNumber++; + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; + SpecialStatusesClear(); + gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED + | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR + | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000 + | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT + | HITMARKER_x8000000 | HITMARKER_x4000000); + + gCurrentMove = 0; + gBattleMoveDamage = 0; + gMoveResultFlags = 0; + gBattleScripting.animTurn = 0; + gBattleScripting.animTargetsHit = 0; + gLastLandedMoves[gBankAttacker] = 0; + gLastHitByType[gBankAttacker] = 0; + gBattleStruct->dynamicMoveType = 0; + gDynamicBasePower = 0; + gBattleScripting.atk49_state = 0; + gBattleCommunication[3] = 0; + gBattleCommunication[4] = 0; + gBattleScripting.multihitMoveEffect = 0; + gBattleResources->battleScriptsStack->size = 0; +} -- cgit v1.2.3 From a78b0636f50c012c3618d55a9b83f834319de6e0 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 16 Jan 2018 16:42:31 -0600 Subject: more renaming --- src/battle_ai_script_commands.c | 6 +-- src/battle_anim.c | 24 ++++++------ src/battle_gfx_sfx_util.c | 48 +++++++++++------------ src/battle_main.c | 84 ++++++++++++++++++++--------------------- 4 files changed, 81 insertions(+), 81 deletions(-) diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 07bedb113..5dd9ecdc0 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1314,10 +1314,10 @@ static void BattleAICmd_count_usable_party_mons(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - u32 identity; + u32 position; bankOnField1 = gBattlePartyID[bank]; - identity = GetBankPosition(bank) ^ BIT_MON; - bankOnField2 = gBattlePartyID[GetBankByPosition(identity)]; + position = GetBankPosition(bank) ^ BIT_MON; + bankOnField2 = gBattlePartyID[GetBankByPosition(position)]; } else // in singles there's only one bank by side { diff --git a/src/battle_anim.c b/src/battle_anim.c index 76da24383..c1051f93a 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -613,8 +613,8 @@ static void ScriptCmd_monbg(void) if (IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankPosition(bank); - if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) + u8 position = GetBankPosition(bank); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -632,8 +632,8 @@ static void ScriptCmd_monbg(void) bank ^= BIT_MON; if (IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankPosition(bank); - if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) + u8 position = GetBankPosition(bank); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -893,8 +893,8 @@ static void sub_80A4980(u8 taskId) if (gTasks[taskId].data[1] != 1) { u8 to_BG2; - u8 identity = GetBankPosition(gTasks[taskId].data[2]); - if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) + u8 position = GetBankPosition(gTasks[taskId].data[2]); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) to_BG2 = FALSE; else to_BG2 = TRUE; @@ -937,8 +937,8 @@ static void ScriptCmd_monbg_22(void) if (IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankPosition(bank); - if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) + u8 position = GetBankPosition(bank); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -949,8 +949,8 @@ static void ScriptCmd_monbg_22(void) bank ^= BIT_MON; if (animBankId > 1 && IsAnimBankSpriteVisible(bank)) { - u8 identity = GetBankPosition(bank); - if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) + u8 position = GetBankPosition(bank); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; @@ -1001,8 +1001,8 @@ static void sub_80A4BB0(u8 taskId) { bool8 toBG_2; u8 bank = gTasks[taskId].data[2]; - u8 identity = GetBankPosition(bank); - if (identity == B_POSITION_OPPONENT_LEFT || identity == B_POSITION_PLAYER_RIGHT || IsContest()) + u8 position = GetBankPosition(bank); + if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else toBG_2 = TRUE; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index d6a52b898..4bfbebf98 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -543,7 +543,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) { u32 monsPersonality, currentPersonality, otId; u16 species; - u8 identity; + u8 position; u16 paletteOffset; const void *lzPaletteData; @@ -561,9 +561,9 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) } otId = GetMonData(mon, MON_DATA_OT_ID); - identity = GetBankPosition(bank); + position = GetBankPosition(bank); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], species, currentPersonality); paletteOffset = 0x100 + bank * 16; @@ -596,7 +596,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) { u32 monsPersonality, currentPersonality, otId; u16 species; - u8 identity; + u8 position; u16 paletteOffset; const void *lzPaletteData; @@ -614,18 +614,18 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) } otId = GetMonData(mon, MON_DATA_OT_ID); - identity = GetBankPosition(bank); + position = GetBankPosition(bank); if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) { HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], species, currentPersonality); } else { HandleLoadSpecialPokePic(&gMonBackPicTable[species], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], species, currentPersonality); } @@ -665,18 +665,18 @@ void nullsub_24(u16 species) void DecompressTrainerFrontPic(u16 frontPicId, u8 bank) { - u8 identity = GetBankPosition(bank); + u8 position = GetBankPosition(bank); DecompressPicFromTable_2(&gTrainerFrontPicTable[frontPicId], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], SPECIES_NONE); LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[frontPicId]); } void DecompressTrainerBackPic(u16 backPicId, u8 bank) { - u8 identity = GetBankPosition(bank); + u8 position = GetBankPosition(bank); DecompressPicFromTable_2(&gTrainerBackPicTable[backPicId], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], SPECIES_NONE); LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data, 0x100 + 16 * bank, 0x20); @@ -885,7 +885,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) u16 paletteOffset; u32 personalityValue; u32 otId; - u8 identity; + u8 position; const u8 *lzPaletteData; if (notTransform) @@ -909,7 +909,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) if (IsContest()) { - identity = 0; + position = 0; targetSpecies = gContestResources->field_18->field_2; personalityValue = gContestResources->field_18->field_8; otId = gContestResources->field_18->field_C; @@ -921,7 +921,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) } else { - identity = GetBankPosition(bankAtk); + position = GetBankPosition(bankAtk); if (GetBankSide(bankDef) == SIDE_OPPONENT) targetSpecies = GetMonData(&gEnemyParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES); @@ -934,7 +934,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) otId = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], targetSpecies, gTransformedPersonalities[bankAtk]); } @@ -944,13 +944,13 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) otId = GetMonData(&gEnemyParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[targetSpecies], - gMonSpritesGfxPtr->sprites[identity], + gMonSpritesGfxPtr->sprites[position], targetSpecies, gTransformedPersonalities[bankAtk]); } } - src = gMonSpritesGfxPtr->sprites[identity]; + src = gMonSpritesGfxPtr->sprites[position]; dst = (void *)(VRAM + 0x10000 + gSprites[gBankSpriteIds[bankAtk]].oam.tileNum * 32); DmaCopy32(3, src, dst, 0x800); paletteOffset = 0x100 + bankAtk * 16; @@ -981,7 +981,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite) { - u8 identity; + u8 position; s32 i; u32 var; const void *substitutePal; @@ -989,23 +989,23 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite) if (!loadMonSprite) { if (IsContest()) - identity = 0; + position = 0; else - identity = GetBankPosition(bank); + position = GetBankPosition(bank); if (IsContest()) - LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[identity]); + LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]); else if (GetBankSide(bank) != SIDE_PLAYER) - LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[identity]); + LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[position]); else - LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[identity]); + LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]); i = 1; var = bank * 16; substitutePal = gSubstituteDollPal; for (; i < 4; i++) { - register void *dmaSrc asm("r0") = gMonSpritesGfxPtr->sprites[identity]; + register void *dmaSrc asm("r0") = gMonSpritesGfxPtr->sprites[position]; void *dmaDst = (i * 0x800) + dmaSrc; u32 dmaSize = 0x800; DmaCopy32(3, dmaSrc, dmaDst, dmaSize); diff --git a/src/battle_main.c b/src/battle_main.c index b19dcace1..0fd823fa1 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3274,46 +3274,46 @@ static void BattleIntroPrintWildMonAttacked(void) static void BattleIntroPrintOpponentSendsOut(void) { - u32 identity; + u32 position; if (gBattleExecBuffer) return; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; else - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; } else - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(position)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; } static void BattleIntroOpponent2SendsOutMonAnimation(void) { - u32 identity; + u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_OPPONENT_RIGHT; + position = B_POSITION_OPPONENT_RIGHT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_OPPONENT_RIGHT; + position = B_POSITION_OPPONENT_RIGHT; else - identity = B_POSITION_PLAYER_RIGHT; + position = B_POSITION_PLAYER_RIGHT; } else - identity = B_POSITION_OPPONENT_RIGHT; + position = B_POSITION_OPPONENT_RIGHT; for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { - if (GetBankPosition(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == position) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3326,26 +3326,26 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) #ifdef NONMATCHING static void BattleIntroOpponent1SendsOutMonAnimation(void) { - u32 identity; + u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; else - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; } else - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; if (gBattleExecBuffer) return; for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { - if (GetBankPosition(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == position) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3479,22 +3479,22 @@ static void BattleIntroPrintPlayerSendsOut(void) { if (gBattleExecBuffer == 0) { - u8 identity; + u8 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; else - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; } else - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(position)); gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; } @@ -3502,23 +3502,23 @@ static void BattleIntroPrintPlayerSendsOut(void) static void BattleIntroPlayer2SendsOutMonAnimation(void) { - u32 identity; + u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_PLAYER_RIGHT; + position = B_POSITION_PLAYER_RIGHT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_PLAYER_RIGHT; + position = B_POSITION_PLAYER_RIGHT; else - identity = B_POSITION_OPPONENT_RIGHT; + position = B_POSITION_OPPONENT_RIGHT; } else - identity = B_POSITION_PLAYER_RIGHT; + position = B_POSITION_PLAYER_RIGHT; for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { - if (GetBankPosition(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == position) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3534,26 +3534,26 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) static void BattleIntroPlayer1SendsOutMonAnimation(void) { - u32 identity; + u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; else if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_x80000000) - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; else - identity = B_POSITION_OPPONENT_LEFT; + position = B_POSITION_OPPONENT_LEFT; } else - identity = B_POSITION_PLAYER_LEFT; + position = B_POSITION_PLAYER_LEFT; if (gBattleExecBuffer) return; for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { - if (GetBankPosition(gActiveBank) == identity) + if (GetBankPosition(gActiveBank) == position) { EmitIntroTrainerBallThrow(0); MarkBufferBankForExecution(gActiveBank); @@ -3891,7 +3891,7 @@ static void HandleTurnActionSelectionState(void) gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) { - u8 identity = GetBankPosition(gActiveBank); + u8 position = GetBankPosition(gActiveBank); switch (gBattleCommunication[gActiveBank]) { case STATE_TURN_START_RECORD: // recorded battle related on start of every turn @@ -3901,9 +3901,9 @@ static void HandleTurnActionSelectionState(void) case STATE_BEFORE_ACTION_CHOSEN: // choose an action *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; if (gBattleTypeFlags & BATTLE_TYPE_MULTI - || !(identity & BIT_MON) - || gBattleStruct->field_91 & gBitTable[GetBankByPosition(identity ^ BIT_MON)] - || gBattleCommunication[GetBankByPosition(identity ^ BIT_MON)] == 5) + || !(position & BIT_MON) + || gBattleStruct->field_91 & gBitTable[GetBankByPosition(position ^ BIT_MON)] + || gBattleCommunication[GetBankByPosition(position ^ BIT_MON)] == 5) { if (gBattleStruct->field_91 & gBitTable[gActiveBank]) { @@ -4225,8 +4225,8 @@ static void HandleTurnActionSelectionState(void) i = (sub_803CDB8() != 0); if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) - || (identity & BIT_MON) - || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(identity ^ BIT_MON)])) + || (position & BIT_MON) + || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(position ^ BIT_MON)])) { EmitLinkStandbyMsg(0, 0, i); } -- cgit v1.2.3 From 19864d3cd93e57880da1430489c365907fb0a7a3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 21 Jan 2018 19:16:15 -0500 Subject: Fix for windows --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 37344066e..c38d8fe76 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,11 @@ LDFLAGS = -Map ../../$(MAP) OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy -LIB := -L ../../tools/agbcc/lib -lgcc -lc +ifeq ($(OS),Windows_NT) + LIB := ../../tools/agbcc/lib/libgcc.a ../../tools/agbcc/lib/libc.a +else + LIB := -L ../../tools/agbcc/lib -lgcc -lc +endif SHA1 := sha1sum -c -- cgit v1.2.3 From ad73f920612f747a963d9aed8867aa930ebc8173 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 22 Jan 2018 21:32:50 +0100 Subject: start decompiling pokemon animation --- asm/pokemon_animation.s | 538 ----------------------- data/pokemon_animation.s | 198 --------- include/pokemon_animation.h | 4 +- include/sprite.h | 1 + ld_script.txt | 2 + src/pokemon_animation.c | 1015 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 1020 insertions(+), 738 deletions(-) create mode 100644 src/pokemon_animation.c diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index a625f8511..7f0d24cd0 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -4,547 +4,9 @@ .syntax unified .text - - thumb_func_start nullsub_69 -nullsub_69: @ 817F3EC - bx lr - thumb_func_end nullsub_69 - thumb_func_start sub_817F3F0 -sub_817F3F0: @ 817F3F0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r9, r0 - mov r8, r1 - adds r5, r2, 0 - adds r4, r3, 0 - lsls r5, 16 - negs r5, r5 - lsls r4, 16 - negs r4, r4 - lsrs r4, 16 - mov r0, r8 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - asrs r5, 16 - adds r1, r5, 0 - bl Cos - adds r6, r0, 0 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - bl Sin - subs r6, r0 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - adds r1, r4, 0 - bl Cos - adds r2, r0, 0 - mov r0, r8 - adds r1, r5, 0 - str r2, [sp] - bl Sin - ldr r2, [sp] - adds r2, r0 - negs r5, r5 - negs r4, r4 - lsls r6, 16 - asrs r6, 16 - lsls r5, 16 - asrs r5, 16 - adds r6, r5 - mov r0, r9 - strh r6, [r0, 0x24] - lsls r2, 16 - asrs r2, 16 - lsls r4, 16 - asrs r4, 16 - adds r2, r4 - strh r2, [r0, 0x26] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_817F3F0 - thumb_func_start GetSpeciesBackAnimId -GetSpeciesBackAnimId: @ 817F474 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_0860A8C8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0817F48C - movs r0, 0 - b _0817F492 - .pool -_0817F48C: - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_0817F492: - pop {r1} - bx r1 - thumb_func_end GetSpeciesBackAnimId - - thumb_func_start sub_817F498 -sub_817F498: @ 817F498 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0xA - ldrsh r0, [r2, r3] - lsls r3, r0, 16 - movs r4, 0xC - ldrsh r0, [r2, r4] - orrs r3, r0 - movs r0, 0x8 - ldrsh r4, [r2, r0] - mov r8, r1 - ldr r0, =SpriteCallbackDummy - mov r12, r0 - cmp r4, 0 - bne _0817F508 - ldrh r0, [r3, 0x2E] - strh r0, [r2, 0x10] - ldrh r0, [r3, 0x32] - strh r0, [r2, 0x12] - movs r0, 0x1 - strh r0, [r3, 0x30] - strh r4, [r3, 0x2E] - movs r0, 0x2 - adds r1, r6, 0 - ldr r6, =gUnknown_0860AA88 - ldr r7, =gUnknown_03001274 - movs r4, 0 - adds r2, r3, 0 - adds r2, 0x32 -_0817F4E2: - strh r4, [r2] - adds r2, 0x2 - adds r0, 0x1 - cmp r0, 0x7 - bls _0817F4E2 - adds r1, r5 - lsls r1, 3 - add r1, r8 - movs r2, 0xE - ldrsh r0, [r1, r2] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - str r0, [r3, 0x1C] - movs r0, 0 - str r0, [r7] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_0817F508: - ldr r0, [r3, 0x1C] - cmp r0, r12 - bne _0817F528 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - add r0, r8 - ldrh r1, [r0, 0x10] - movs r2, 0 - strh r1, [r3, 0x2E] - ldrh r0, [r0, 0x12] - strh r0, [r3, 0x32] - strh r2, [r3, 0x30] - adds r0, r5, 0 - bl DestroyTask -_0817F528: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817F498 - - thumb_func_start LaunchAnimationTaskForFrontSprite -LaunchAnimationTaskForFrontSprite: @ 817F544 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r0, =sub_817F498 - movs r1, 0x80 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsrs r0, r5, 16 - strh r0, [r1, 0xA] - strh r5, [r1, 0xC] - strh r4, [r1, 0xE] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end LaunchAnimationTaskForFrontSprite - - thumb_func_start sub_817F578 -sub_817F578: @ 817F578 - lsls r1, 24 - ldr r3, =gUnknown_03001274 - movs r2, 0x1 - str r2, [r3] - ldr r2, =gUnknown_0860AA88 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - str r1, [r0, 0x1C] - bx lr - .pool - thumb_func_end sub_817F578 - - thumb_func_start LaunchAnimationTaskForBackSprite -LaunchAnimationTaskForBackSprite: @ 817F594 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r6, r1, 24 - lsrs r6, 24 - ldr r0, =sub_817F498 - movs r1, 0x80 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - lsrs r0, r5, 16 - strh r0, [r4, 0xA] - strh r5, [r4, 0xC] - ldrh r0, [r5, 0x2E] - lsls r0, 24 - ldr r1, =gBattlePartyID - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - lsls r1, r6, 1 - ldr r2, =gUnknown_0860AD2F - adds r0, r2 - adds r1, r6 - ldrb r0, [r0] - adds r1, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =gUnknown_0860ACE4 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end LaunchAnimationTaskForBackSprite - - thumb_func_start sub_817F60C -sub_817F60C: @ 817F60C - ldr r1, =nullsub_69 - str r1, [r0, 0x1C] - bx lr - .pool - thumb_func_end sub_817F60C - - thumb_func_start sub_817F618 -sub_817F618: @ 817F618 - push {r4,r5,lr} - sub sp, 0x10 - lsls r1, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r4, =0xffff0000 - lsls r2, 16 - lsrs r1, 16 - orrs r1, r2 - str r1, [sp] - ldr r1, [sp, 0x4] - ands r1, r4 - orrs r1, r3 - str r1, [sp, 0x4] - ldrb r4, [r0, 0x3] - lsls r4, 26 - lsrs r4, 27 - add r5, sp, 0x8 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - ldr r0, =gOamMatrices - lsls r4, 3 - adds r4, r0 - ldrh r0, [r5] - strh r0, [r4] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x6] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817F618 - - thumb_func_start sub_817F670 -sub_817F670: @ 817F670 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, =gSpriteAffineAnimTable_860AD68 - str r0, [r4, 0x10] - ldr r0, =gUnknown_03001274 - ldr r0, [r0] - cmp r0, 0x1 - bne _0817F68E - adds r0, r4, 0 - bl InitSpriteAffineAnim -_0817F68E: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817F6A8 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _0817F6B0 - .pool -_0817F6A8: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim -_0817F6B0: - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F670 - - thumb_func_start sub_817F6D4 -sub_817F6D4: @ 817F6D4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - movs r5, 0x30 - ldrsh r0, [r4, r5] - cmp r0, 0 - bne _0817F6F8 - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 - negs r0, r3 - lsls r0, 16 - lsrs r3, r0, 16 -_0817F6F8: - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - bl sub_817F618 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_817F6D4 - - thumb_func_start sub_817F70C -sub_817F70C: @ 817F70C - push {lr} - adds r1, r0, 0 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0817F720 - movs r2, 0x24 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x24] -_0817F720: - pop {r0} - bx r0 - thumb_func_end sub_817F70C - - thumb_func_start sub_817F724 -sub_817F724: @ 817F724 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bhi _0817F750 - ldr r1, =gUnknown_03001240 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r2, 0 - strh r2, [r0, 0x6] - strh r2, [r0] - movs r1, 0x1 - strh r1, [r0, 0x4] - strh r2, [r0, 0x2] - strh r2, [r0, 0x8] - movs r0, 0x1 - b _0817F752 - .pool -_0817F750: - movs r0, 0 -_0817F752: - pop {r1} - bx r1 - thumb_func_end sub_817F724 - - thumb_func_start sub_817F758 -sub_817F758: @ 817F758 - push {r4,lr} - ldr r4, =gUnknown_03001270 - ldrb r1, [r4] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 2 - lsls r0, 2 - subs r0, r2, r0 - strb r0, [r4] - ldrb r0, [r4] - bl sub_817F724 - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_817F758 - - thumb_func_start sub_817F77C -sub_817F77C: @ 817F77C - push {r4,r5,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - movs r3, 0x4 - negs r3, r3 - ands r3, r0 - movs r5, 0x1 - orrs r3, r5 - strb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - ldr r0, =gUnknown_03001274 - ldr r0, [r0] - cmp r0, 0x1 - bne _0817F800 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817F7C0 - adds r1, r4, 0 - adds r1, 0x3F - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r5, r1, 0 - b _0817F7D0 - .pool -_0817F7C0: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r2, [r0] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r5, r0, 0 -_0817F7D0: - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r2, [r4, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - ldrb r0, [r5] - lsls r0, 31 - lsrs r0, 31 - lsls r0, 3 - orrs r1, r0 - lsls r1, 1 - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_0817F800: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_817F77C thumb_func_start pokemonanimfunc_01 pokemonanimfunc_01: @ 817F808 diff --git a/data/pokemon_animation.s b/data/pokemon_animation.s index 535c91b2d..ef9a35a49 100644 --- a/data/pokemon_animation.s +++ b/data/pokemon_animation.s @@ -3,204 +3,6 @@ .section .rodata -gUnknown_0860A8C8:: @ 860A8C8 - .byte 0x00, 0x13, 0x02, 0x08, 0x12, 0x15, 0x17, 0x12, 0x12, 0x19, 0x02, 0x13, 0x11, 0x02, 0x13, 0x01, 0x0f, 0x15, 0x0f, 0x0a, 0x0a, 0x0f, 0x15, 0x0f, 0x09, 0x16, 0x16, 0x12, 0x10, 0x12, 0x15, 0x09 - .byte 0x12, 0x15, 0x09, 0x13, 0x13, 0x10, 0x01, 0x13, 0x06, 0x11, 0x09, 0x02, 0x02, 0x14, 0x02, 0x08, 0x0a, 0x11, 0x09, 0x09, 0x10, 0x0f, 0x02, 0x14, 0x10, 0x10, 0x15, 0x15, 0x12, 0x09, 0x0e, 0x14 - .byte 0x14, 0x0d, 0x15, 0x09, 0x09, 0x0b, 0x0b, 0x0b, 0x02, 0x02, 0x0e, 0x08, 0x08, 0x17, 0x15, 0x02, 0x13, 0x0f, 0x0f, 0x02, 0x0f, 0x15, 0x13, 0x02, 0x0b, 0x0c, 0x13, 0x0f, 0x01, 0x01, 0x14, 0x09 - .byte 0x13, 0x14, 0x0a, 0x09, 0x15, 0x15, 0x02, 0x10, 0x15, 0x10, 0x02, 0x0f, 0x02, 0x06, 0x06, 0x0e, 0x0e, 0x12, 0x0b, 0x12, 0x13, 0x11, 0x11, 0x11, 0x13, 0x19, 0x14, 0x0f, 0x13, 0x16, 0x17, 0x0e - .byte 0x0e, 0x10, 0x09, 0x19, 0x05, 0x12, 0x19, 0x16, 0x17, 0x01, 0x13, 0x13, 0x13, 0x15, 0x15, 0x13, 0x19, 0x16, 0x17, 0x02, 0x0f, 0x09, 0x0d, 0x12, 0x12, 0x02, 0x09, 0x12, 0x15, 0x17, 0x15, 0x15 - .byte 0x09, 0x12, 0x10, 0x11, 0x0f, 0x0a, 0x11, 0x0a, 0x02, 0x0f, 0x0b, 0x16, 0x12, 0x13, 0x13, 0x13, 0x11, 0x12, 0x14, 0x12, 0x13, 0x16, 0x11, 0x12, 0x13, 0x02, 0x10, 0x11, 0x11, 0x11, 0x10, 0x13 - .byte 0x02, 0x11, 0x0b, 0x02, 0x14, 0x14, 0x12, 0x13, 0x01, 0x14, 0x0b, 0x14, 0x08, 0x09, 0x0f, 0x05, 0x09, 0x15, 0x09, 0x0d, 0x15, 0x13, 0x15, 0x0f, 0x13, 0x09, 0x17, 0x17, 0x0a, 0x08, 0x02, 0x02 - .byte 0x05, 0x0f, 0x02, 0x15, 0x09, 0x09, 0x19, 0x15, 0x0e, 0x01, 0x13, 0x02, 0x0f, 0x07, 0x02, 0x08, 0x17, 0x02, 0x13, 0x16, 0x17, 0x19, 0x0e, 0x09, 0x0e, 0x19, 0x17, 0x18, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x15, 0x09, 0x12, 0x10, 0x17, 0x02, 0x12, 0x19, 0x12, 0x08 - .byte 0x0f, 0x15, 0x0b, 0x08, 0x11, 0x08, 0x0f, 0x02, 0x10, 0x10, 0x13, 0x09, 0x14, 0x0a, 0x01, 0x14, 0x12, 0x15, 0x13, 0x15, 0x07, 0x11, 0x11, 0x03, 0x11, 0x19, 0x19, 0x13, 0x12, 0x01, 0x13, 0x14 - .byte 0x0e, 0x17, 0x01, 0x0b, 0x09, 0x04, 0x0f, 0x15, 0x03, 0x19, 0x04, 0x15, 0x13, 0x01, 0x0f, 0x0e, 0x0e, 0x15, 0x09, 0x0e, 0x17, 0x13, 0x09, 0x09, 0x0a, 0x08, 0x0f, 0x0f, 0x13, 0x13, 0x10, 0x10 - .byte 0x14, 0x12, 0x12, 0x09, 0x14, 0x14, 0x11, 0x11, 0x12, 0x01, 0x01, 0x18, 0x02, 0x10, 0x08, 0x0b, 0x0b, 0x0e, 0x13, 0x09, 0x0d, 0x13, 0x11, 0x11, 0x14, 0x01, 0x01, 0x0b, 0x15, 0x02, 0x15, 0x09 - .byte 0x0e, 0x11, 0x11, 0x11, 0x0c, 0x0b, 0x0f, 0x09, 0x14, 0x14, 0x14, 0x09, 0x09, 0x08, 0x0f, 0x15, 0x09, 0x09, 0x09, 0x09, 0x19, 0x17, 0x0d, 0x01, 0x01, 0x11, 0x14, 0x11 - -gUnknown_0860AA64:: @ 860AA64 - .byte 0x00, 0x05, 0x01, 0x01, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x00, 0xff - -gUnknown_0860AA80:: @ 860AA80 - .byte 0x06, 0x1e, 0xfe, 0x0f, 0x06, 0x1e, 0xff, 0x00 - - .align 2 -gUnknown_0860AA88:: @ 860AA88 - .4byte pokemonanimfunc_00 - .4byte pokemonanimfunc_01 - .4byte pokemonanimfunc_02 - .4byte pokemonanimfunc_03 - .4byte pokemonanimfunc_04 - .4byte pokemonanimfunc_05 - .4byte pokemonanimfunc_06 - .4byte pokemonanimfunc_07 - .4byte pokemonanimfunc_08 - .4byte pokemonanimfunc_09 - .4byte pokemonanimfunc_0A - .4byte pokemonanimfunc_0B - .4byte pokemonanimfunc_0C - .4byte pokemonanimfunc_0D - .4byte pokemonanimfunc_0E - .4byte pokemonanimfunc_0F - .4byte pokemonanimfunc_10 - .4byte pokemonanimfunc_11 - .4byte pokemonanimfunc_12 - .4byte pokemonanimfunc_13 - .4byte pokemonanimfunc_14 - .4byte pokemonanimfunc_15 - .4byte pokemonanimfunc_16 - .4byte pokemonanimfunc_17 - .4byte pokemonanimfunc_18 - .4byte pokemonanimfunc_19 - .4byte pokemonanimfunc_1A - .4byte pokemonanimfunc_1B - .4byte pokemonanimfunc_1C - .4byte pokemonanimfunc_1D - .4byte pokemonanimfunc_1E - .4byte pokemonanimfunc_1F - .4byte pokemonanimfunc_20 - .4byte pokemonanimfunc_21 - .4byte pokemonanimfunc_22 - .4byte pokemonanimfunc_23 - .4byte pokemonanimfunc_24 - .4byte pokemonanimfunc_25 - .4byte pokemonanimfunc_26 - .4byte pokemonanimfunc_27 - .4byte pokemonanimfunc_28 - .4byte pokemonanimfunc_29 - .4byte pokemonanimfunc_2A - .4byte pokemonanimfunc_2B - .4byte pokemonanimfunc_2C - .4byte pokemonanimfunc_2D - .4byte pokemonanimfunc_2E - .4byte pokemonanimfunc_2F - .4byte pokemonanimfunc_30 - .4byte pokemonanimfunc_31 - .4byte pokemonanimfunc_32 - .4byte pokemonanimfunc_33 - .4byte pokemonanimfunc_34 - .4byte pokemonanimfunc_35 - .4byte pokemonanimfunc_36 - .4byte pokemonanimfunc_37 - .4byte pokemonanimfunc_38 - .4byte pokemonanimfunc_39 - .4byte pokemonanimfunc_3A - .4byte pokemonanimfunc_3B - .4byte pokemonanimfunc_3C - .4byte pokemonanimfunc_3D - .4byte pokemonanimfunc_3E - .4byte pokemonanimfunc_3F - .4byte pokemonanimfunc_40 - .4byte pokemonanimfunc_41 - .4byte pokemonanimfunc_42 - .4byte pokemonanimfunc_43 - .4byte pokemonanimfunc_44 - .4byte pokemonanimfunc_45 - .4byte pokemonanimfunc_46 - .4byte pokemonanimfunc_47 - .4byte pokemonanimfunc_48 - .4byte pokemonanimfunc_49 - .4byte pokemonanimfunc_4A - .4byte pokemonanimfunc_4B - .4byte pokemonanimfunc_4C - .4byte pokemonanimfunc_4D - .4byte pokemonanimfunc_4E - .4byte pokemonanimfunc_4F - .4byte pokemonanimfunc_50 - .4byte pokemonanimfunc_51 - .4byte pokemonanimfunc_52 - .4byte pokemonanimfunc_53 - .4byte pokemonanimfunc_54 - .4byte pokemonanimfunc_55 - .4byte pokemonanimfunc_56 - .4byte pokemonanimfunc_57 - .4byte pokemonanimfunc_58 - .4byte pokemonanimfunc_59 - .4byte pokemonanimfunc_5A - .4byte pokemonanimfunc_5B - .4byte pokemonanimfunc_5C - .4byte pokemonanimfunc_5D - .4byte pokemonanimfunc_5E - .4byte pokemonanimfunc_5F - .4byte pokemonanimfunc_60 - .4byte pokemonanimfunc_61 - .4byte pokemonanimfunc_62 - .4byte pokemonanimfunc_63 - .4byte pokemonanimfunc_64 - .4byte pokemonanimfunc_65 - .4byte pokemonanimfunc_66 - .4byte pokemonanimfunc_67 - .4byte pokemonanimfunc_68 - .4byte pokemonanimfunc_69 - .4byte pokemonanimfunc_6A - .4byte pokemonanimfunc_6B - .4byte pokemonanimfunc_6C - .4byte pokemonanimfunc_6D - .4byte pokemonanimfunc_6E - .4byte pokemonanimfunc_6F - .4byte pokemonanimfunc_70 - .4byte pokemonanimfunc_71 - .4byte pokemonanimfunc_72 - .4byte pokemonanimfunc_73 - .4byte pokemonanimfunc_74 - .4byte pokemonanimfunc_75 - .4byte pokemonanimfunc_76 - .4byte pokemonanimfunc_77 - .4byte pokemonanimfunc_78 - .4byte pokemonanimfunc_79 - .4byte pokemonanimfunc_7A - .4byte pokemonanimfunc_7B - .4byte pokemonanimfunc_7C - .4byte pokemonanimfunc_7D - .4byte pokemonanimfunc_7E - .4byte pokemonanimfunc_7F - .4byte pokemonanimfunc_80 - .4byte pokemonanimfunc_81 - .4byte pokemonanimfunc_82 - .4byte pokemonanimfunc_83 - .4byte pokemonanimfunc_84 - .4byte pokemonanimfunc_85 - .4byte pokemonanimfunc_86 - .4byte pokemonanimfunc_87 - .4byte pokemonanimfunc_88 - .4byte pokemonanimfunc_89 - .4byte pokemonanimfunc_8A - .4byte pokemonanimfunc_8B - .4byte pokemonanimfunc_8C - .4byte pokemonanimfunc_8D - .4byte pokemonanimfunc_8E - .4byte pokemonanimfunc_8F - .4byte pokemonanimfunc_90 - .4byte pokemonanimfunc_91 - .4byte pokemonanimfunc_92 - .4byte pokemonanimfunc_93 - .4byte pokemonanimfunc_94 - .4byte pokemonanimfunc_95 - .4byte pokemonanimfunc_96 - -gUnknown_0860ACE4:: @ 860ACE4 - .byte 0x60, 0x5f, 0x02, 0x5e, 0x03, 0x46, 0x6d, 0x3e, 0x6e, 0x6f, 0x70, 0x3f, 0x71, 0x13, 0x72, 0x6c, 0x6b, 0x3a, 0x64, 0x14, 0x4f, 0x5d, 0x0f, 0x4c, 0x61, 0x57, 0x58, 0x67, 0x66, 0x59, 0x74, 0x73 - .byte 0x5a, 0x75, 0x76, 0x5b, 0x77, 0x78, 0x65, 0x63, 0x5c, 0x62, 0x6a, 0x69, 0x68, 0x7b, 0x7a, 0x79, 0x7e, 0x7d, 0x7c, 0x81, 0x80, 0x7f, 0x84, 0x82, 0x83, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b - .byte 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96 - -gUnknown_0860AD2F:: @ 860AD2F - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01 - - .align 2 -gSpriteAffineAnim_860AD48:: @ 860AD48 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_860AD58:: @ 860AD58 - obj_rot_scal_anim_frame -0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_860AD68:: @ 860AD68 - .4byte gSpriteAffineAnim_860AD48 - .4byte gSpriteAffineAnim_860AD58 - gUnknown_0860AD70:: @ 860AD70 .byte 0xff, 0xff, 0x06, 0x02, 0x00, 0x06, 0xfe, 0x02, 0x06, 0x02, 0x00, 0x06, 0xfe, 0xfe, 0x06, 0x02, 0x00, 0x06, 0xfe, 0x02, 0x06, 0x02, 0x00, 0x06, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00 diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index 42fc10809..b6d8c868e 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -1,7 +1,7 @@ #ifndef GUARD_POKEMON_ANIMATION_H #define GUARD_POKEMON_ANIMATION_H -void LaunchAnimationTaskForFrontSprite(struct Sprite* sprite, u8 frontAnimId); -void LaunchAnimationTaskForBackSprite(struct Sprite* sprite, u8 backAnimId); +void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId); +void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimId); #endif // GUARD_POKEMON_ANIMATION_H diff --git a/include/sprite.h b/include/sprite.h index d5c6bc402..b5a1b6ae5 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -233,6 +233,7 @@ extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; extern struct Sprite gSprites[]; +extern struct OamMatrix gOamMatrices[]; void ResetSpriteData(void); void AnimateSprites(void); diff --git a/ld_script.txt b/ld_script.txt index 2e52eb343..f21991734 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -240,6 +240,7 @@ SECTIONS { src/bard_music.o(.text); src/fldeff_teleport.o(.text); asm/battle_link_817C95C.o(.text); + src/pokemon_animation.o(.text); asm/pokemon_animation.o(.text); src/recorded_battle.o(.text); src/battle_controller_recorded_opponent.o(.text); @@ -514,6 +515,7 @@ SECTIONS { src/evolution_graphics.o(.rodata); src/bard_music.o(.rodata); data/battle_link_817C95C.o(.rodata); + src/pokemon_animation.o(.rodata); data/pokemon_animation.o(.rodata); src/battle_controller_recorded_opponent.o(.rodata); src/battle_controller_recorded_player.o(.rodata); diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c new file mode 100644 index 000000000..960b42dd1 --- /dev/null +++ b/src/pokemon_animation.c @@ -0,0 +1,1015 @@ +#include "global.h" +#include "pokemon.h" +#include "sprite.h" +#include "pokemon_animation.h" +#include "trig.h" +#include "task.h" + +struct UnkAnimStruct +{ + s16 field_0; + s16 field_2; + s16 field_4; + s16 field_6; + s16 field_8; +}; + +extern u16 gBattlePartyID[]; +extern bool32 gUnknown_03001274; +extern struct UnkAnimStruct gUnknown_03001240[]; +extern u8 gUnknown_03001270; + +// this file's functions +void pokemonanimfunc_00(struct Sprite *sprite); +void pokemonanimfunc_01(struct Sprite *sprite); +void pokemonanimfunc_02(struct Sprite *sprite); +void pokemonanimfunc_03(struct Sprite *sprite); +void pokemonanimfunc_04(struct Sprite *sprite); +void pokemonanimfunc_05(struct Sprite *sprite); +void pokemonanimfunc_06(struct Sprite *sprite); +void pokemonanimfunc_07(struct Sprite *sprite); +void pokemonanimfunc_08(struct Sprite *sprite); +void pokemonanimfunc_09(struct Sprite *sprite); +void pokemonanimfunc_0A(struct Sprite *sprite); +void pokemonanimfunc_0B(struct Sprite *sprite); +void pokemonanimfunc_0C(struct Sprite *sprite); +void pokemonanimfunc_0D(struct Sprite *sprite); +void pokemonanimfunc_0E(struct Sprite *sprite); +void pokemonanimfunc_0F(struct Sprite *sprite); +void pokemonanimfunc_10(struct Sprite *sprite); +void pokemonanimfunc_11(struct Sprite *sprite); +void pokemonanimfunc_12(struct Sprite *sprite); +void pokemonanimfunc_13(struct Sprite *sprite); +void pokemonanimfunc_14(struct Sprite *sprite); +void pokemonanimfunc_15(struct Sprite *sprite); +void pokemonanimfunc_16(struct Sprite *sprite); +void pokemonanimfunc_17(struct Sprite *sprite); +void pokemonanimfunc_18(struct Sprite *sprite); +void pokemonanimfunc_19(struct Sprite *sprite); +void pokemonanimfunc_1A(struct Sprite *sprite); +void pokemonanimfunc_1B(struct Sprite *sprite); +void pokemonanimfunc_1C(struct Sprite *sprite); +void pokemonanimfunc_1D(struct Sprite *sprite); +void pokemonanimfunc_1E(struct Sprite *sprite); +void pokemonanimfunc_1F(struct Sprite *sprite); +void pokemonanimfunc_20(struct Sprite *sprite); +void pokemonanimfunc_21(struct Sprite *sprite); +void pokemonanimfunc_22(struct Sprite *sprite); +void pokemonanimfunc_23(struct Sprite *sprite); +void pokemonanimfunc_24(struct Sprite *sprite); +void pokemonanimfunc_25(struct Sprite *sprite); +void pokemonanimfunc_26(struct Sprite *sprite); +void pokemonanimfunc_27(struct Sprite *sprite); +void pokemonanimfunc_28(struct Sprite *sprite); +void pokemonanimfunc_29(struct Sprite *sprite); +void pokemonanimfunc_2A(struct Sprite *sprite); +void pokemonanimfunc_2B(struct Sprite *sprite); +void pokemonanimfunc_2C(struct Sprite *sprite); +void pokemonanimfunc_2D(struct Sprite *sprite); +void pokemonanimfunc_2E(struct Sprite *sprite); +void pokemonanimfunc_2F(struct Sprite *sprite); +void pokemonanimfunc_30(struct Sprite *sprite); +void pokemonanimfunc_31(struct Sprite *sprite); +void pokemonanimfunc_32(struct Sprite *sprite); +void pokemonanimfunc_33(struct Sprite *sprite); +void pokemonanimfunc_34(struct Sprite *sprite); +void pokemonanimfunc_35(struct Sprite *sprite); +void pokemonanimfunc_36(struct Sprite *sprite); +void pokemonanimfunc_37(struct Sprite *sprite); +void pokemonanimfunc_38(struct Sprite *sprite); +void pokemonanimfunc_39(struct Sprite *sprite); +void pokemonanimfunc_3A(struct Sprite *sprite); +void pokemonanimfunc_3B(struct Sprite *sprite); +void pokemonanimfunc_3C(struct Sprite *sprite); +void pokemonanimfunc_3D(struct Sprite *sprite); +void pokemonanimfunc_3E(struct Sprite *sprite); +void pokemonanimfunc_3F(struct Sprite *sprite); +void pokemonanimfunc_40(struct Sprite *sprite); +void pokemonanimfunc_41(struct Sprite *sprite); +void pokemonanimfunc_42(struct Sprite *sprite); +void pokemonanimfunc_43(struct Sprite *sprite); +void pokemonanimfunc_44(struct Sprite *sprite); +void pokemonanimfunc_45(struct Sprite *sprite); +void pokemonanimfunc_46(struct Sprite *sprite); +void pokemonanimfunc_47(struct Sprite *sprite); +void pokemonanimfunc_48(struct Sprite *sprite); +void pokemonanimfunc_49(struct Sprite *sprite); +void pokemonanimfunc_4A(struct Sprite *sprite); +void pokemonanimfunc_4B(struct Sprite *sprite); +void pokemonanimfunc_4C(struct Sprite *sprite); +void pokemonanimfunc_4D(struct Sprite *sprite); +void pokemonanimfunc_4E(struct Sprite *sprite); +void pokemonanimfunc_4F(struct Sprite *sprite); +void pokemonanimfunc_50(struct Sprite *sprite); +void pokemonanimfunc_51(struct Sprite *sprite); +void pokemonanimfunc_52(struct Sprite *sprite); +void pokemonanimfunc_53(struct Sprite *sprite); +void pokemonanimfunc_54(struct Sprite *sprite); +void pokemonanimfunc_55(struct Sprite *sprite); +void pokemonanimfunc_56(struct Sprite *sprite); +void pokemonanimfunc_57(struct Sprite *sprite); +void pokemonanimfunc_58(struct Sprite *sprite); +void pokemonanimfunc_59(struct Sprite *sprite); +void pokemonanimfunc_5A(struct Sprite *sprite); +void pokemonanimfunc_5B(struct Sprite *sprite); +void pokemonanimfunc_5C(struct Sprite *sprite); +void pokemonanimfunc_5D(struct Sprite *sprite); +void pokemonanimfunc_5E(struct Sprite *sprite); +void pokemonanimfunc_5F(struct Sprite *sprite); +void pokemonanimfunc_60(struct Sprite *sprite); +void pokemonanimfunc_61(struct Sprite *sprite); +void pokemonanimfunc_62(struct Sprite *sprite); +void pokemonanimfunc_63(struct Sprite *sprite); +void pokemonanimfunc_64(struct Sprite *sprite); +void pokemonanimfunc_65(struct Sprite *sprite); +void pokemonanimfunc_66(struct Sprite *sprite); +void pokemonanimfunc_67(struct Sprite *sprite); +void pokemonanimfunc_68(struct Sprite *sprite); +void pokemonanimfunc_69(struct Sprite *sprite); +void pokemonanimfunc_6A(struct Sprite *sprite); +void pokemonanimfunc_6B(struct Sprite *sprite); +void pokemonanimfunc_6C(struct Sprite *sprite); +void pokemonanimfunc_6D(struct Sprite *sprite); +void pokemonanimfunc_6E(struct Sprite *sprite); +void pokemonanimfunc_6F(struct Sprite *sprite); +void pokemonanimfunc_70(struct Sprite *sprite); +void pokemonanimfunc_71(struct Sprite *sprite); +void pokemonanimfunc_72(struct Sprite *sprite); +void pokemonanimfunc_73(struct Sprite *sprite); +void pokemonanimfunc_74(struct Sprite *sprite); +void pokemonanimfunc_75(struct Sprite *sprite); +void pokemonanimfunc_76(struct Sprite *sprite); +void pokemonanimfunc_77(struct Sprite *sprite); +void pokemonanimfunc_78(struct Sprite *sprite); +void pokemonanimfunc_79(struct Sprite *sprite); +void pokemonanimfunc_7A(struct Sprite *sprite); +void pokemonanimfunc_7B(struct Sprite *sprite); +void pokemonanimfunc_7C(struct Sprite *sprite); +void pokemonanimfunc_7D(struct Sprite *sprite); +void pokemonanimfunc_7E(struct Sprite *sprite); +void pokemonanimfunc_7F(struct Sprite *sprite); +void pokemonanimfunc_80(struct Sprite *sprite); +void pokemonanimfunc_81(struct Sprite *sprite); +void pokemonanimfunc_82(struct Sprite *sprite); +void pokemonanimfunc_83(struct Sprite *sprite); +void pokemonanimfunc_84(struct Sprite *sprite); +void pokemonanimfunc_85(struct Sprite *sprite); +void pokemonanimfunc_86(struct Sprite *sprite); +void pokemonanimfunc_87(struct Sprite *sprite); +void pokemonanimfunc_88(struct Sprite *sprite); +void pokemonanimfunc_89(struct Sprite *sprite); +void pokemonanimfunc_8A(struct Sprite *sprite); +void pokemonanimfunc_8B(struct Sprite *sprite); +void pokemonanimfunc_8C(struct Sprite *sprite); +void pokemonanimfunc_8D(struct Sprite *sprite); +void pokemonanimfunc_8E(struct Sprite *sprite); +void pokemonanimfunc_8F(struct Sprite *sprite); +void pokemonanimfunc_90(struct Sprite *sprite); +void pokemonanimfunc_91(struct Sprite *sprite); +void pokemonanimfunc_92(struct Sprite *sprite); +void pokemonanimfunc_93(struct Sprite *sprite); +void pokemonanimfunc_94(struct Sprite *sprite); +void pokemonanimfunc_95(struct Sprite *sprite); +void pokemonanimfunc_96(struct Sprite *sprite); + +// const rom data +static const u8 sSpeciesToBackAnimId[] = +{ + 0x00, // SPECIES_NONE + 0x13, // SPECIES_BULBASAUR + 0x02, // SPECIES_IVYSAUR + 0x08, // SPECIES_VENUSAUR + 0x12, // SPECIES_CHARMANDER + 0x15, // SPECIES_CHARMELEON + 0x17, // SPECIES_CHARIZARD + 0x12, // SPECIES_SQUIRTLE + 0x12, // SPECIES_WARTORTLE + 0x19, // SPECIES_BLASTOISE + 0x02, // SPECIES_CATERPIE + 0x13, // SPECIES_METAPOD + 0x11, // SPECIES_BUTTERFREE + 0x02, // SPECIES_WEEDLE + 0x13, // SPECIES_KAKUNA + 0x01, // SPECIES_BEEDRILL + 0x0f, // SPECIES_PIDGEY + 0x15, // SPECIES_PIDGEOTTO + 0x0f, // SPECIES_PIDGEOT + 0x0a, // SPECIES_RATTATA + 0x0a, // SPECIES_RATICATE + 0x0f, // SPECIES_SPEAROW + 0x15, // SPECIES_FEAROW + 0x0f, // SPECIES_EKANS + 0x09, // SPECIES_ARBOK + 0x16, // SPECIES_PIKACHU + 0x16, // SPECIES_RAICHU + 0x12, // SPECIES_SANDSHREW + 0x10, // SPECIES_SANDSLASH + 0x12, // SPECIES_NIDORAN_F + 0x15, // SPECIES_NIDORINA + 0x09, // SPECIES_NIDOQUEEN + 0x12, // SPECIES_NIDORAN_M + 0x15, // SPECIES_NIDORINO + 0x09, // SPECIES_NIDOKING + 0x13, // SPECIES_CLEFAIRY + 0x13, // SPECIES_CLEFABLE + 0x10, // SPECIES_VULPIX + 0x01, // SPECIES_NINETALES + 0x13, // SPECIES_JIGGLYPUFF + 0x06, // SPECIES_WIGGLYTUFF + 0x11, // SPECIES_ZUBAT + 0x09, // SPECIES_GOLBAT + 0x02, // SPECIES_ODDISH + 0x02, // SPECIES_GLOOM + 0x14, // SPECIES_VILEPLUME + 0x02, // SPECIES_PARAS + 0x08, // SPECIES_PARASECT + 0x0a, // SPECIES_VENONAT + 0x11, // SPECIES_VENOMOTH + 0x09, // SPECIES_DIGLETT + 0x09, // SPECIES_DUGTRIO + 0x10, // SPECIES_MEOWTH + 0x0f, // SPECIES_PERSIAN + 0x02, // SPECIES_PSYDUCK + 0x14, // SPECIES_GOLDUCK + 0x10, // SPECIES_MANKEY + 0x10, // SPECIES_PRIMEAPE + 0x15, // SPECIES_GROWLITHE + 0x15, // SPECIES_ARCANINE + 0x12, // SPECIES_POLIWAG + 0x09, // SPECIES_POLIWHIRL + 0x0e, // SPECIES_POLIWRATH + 0x14, // SPECIES_ABRA + 0x14, // SPECIES_KADABRA + 0x0d, // SPECIES_ALAKAZAM + 0x15, // SPECIES_MACHOP + 0x09, // SPECIES_MACHOKE + 0x09, // SPECIES_MACHAMP + 0x0b, // SPECIES_BELLSPROUT + 0x0b, // SPECIES_WEEPINBELL + 0x0b, // SPECIES_VICTREEBEL + 0x02, // SPECIES_TENTACOOL + 0x02, // SPECIES_TENTACRUEL + 0x0e, // SPECIES_GEODUDE + 0x08, // SPECIES_GRAVELER + 0x08, // SPECIES_GOLEM + 0x17, // SPECIES_PONYTA + 0x15, // SPECIES_RAPIDASH + 0x02, // SPECIES_SLOWPOKE + 0x13, // SPECIES_SLOWBRO + 0x0f, // SPECIES_MAGNEMITE + 0x0f, // SPECIES_MAGNETON + 0x02, // SPECIES_FARFETCHD + 0x0f, // SPECIES_DODUO + 0x15, // SPECIES_DODRIO + 0x13, // SPECIES_SEEL + 0x02, // SPECIES_DEWGONG + 0x0b, // SPECIES_GRIMER + 0x0c, // SPECIES_MUK + 0x13, // SPECIES_SHELLDER + 0x0f, // SPECIES_CLOYSTER + 0x01, // SPECIES_GASTLY + 0x01, // SPECIES_HAUNTER + 0x14, // SPECIES_GENGAR + 0x09, // SPECIES_ONIX + 0x13, // SPECIES_DROWZEE + 0x14, // SPECIES_HYPNO + 0x0a, // SPECIES_KRABBY + 0x09, // SPECIES_KINGLER + 0x15, // SPECIES_VOLTORB + 0x15, // SPECIES_ELECTRODE + 0x02, // SPECIES_EXEGGCUTE + 0x10, // SPECIES_EXEGGUTOR + 0x15, // SPECIES_CUBONE + 0x10, // SPECIES_MAROWAK + 0x02, // SPECIES_HITMONLEE + 0x0f, // SPECIES_HITMONCHAN + 0x02, // SPECIES_LICKITUNG + 0x06, // SPECIES_KOFFING + 0x06, // SPECIES_WEEZING + 0x0e, // SPECIES_RHYHORN + 0x0e, // SPECIES_RHYDON + 0x12, // SPECIES_CHANSEY + 0x0b, // SPECIES_TANGELA + 0x12, // SPECIES_KANGASKHAN + 0x13, // SPECIES_HORSEA + 0x11, // SPECIES_SEADRA + 0x11, // SPECIES_GOLDEEN + 0x11, // SPECIES_SEAKING + 0x13, // SPECIES_STARYU + 0x19, // SPECIES_STARMIE + 0x14, // SPECIES_MR_MIME + 0x0f, // SPECIES_SCYTHER + 0x13, // SPECIES_JYNX + 0x16, // SPECIES_ELECTABUZZ + 0x17, // SPECIES_MAGMAR + 0x0e, // SPECIES_PINSIR + 0x0e, // SPECIES_TAUROS + 0x10, // SPECIES_MAGIKARP + 0x09, // SPECIES_GYARADOS + 0x19, // SPECIES_LAPRAS + 0x05, // SPECIES_DITTO + 0x12, // SPECIES_EEVEE + 0x19, // SPECIES_VAPOREON + 0x16, // SPECIES_JOLTEON + 0x17, // SPECIES_FLAREON + 0x01, // SPECIES_PORYGON + 0x13, // SPECIES_OMANYTE + 0x13, // SPECIES_OMASTAR + 0x13, // SPECIES_KABUTO + 0x15, // SPECIES_KABUTOPS + 0x15, // SPECIES_AERODACTYL + 0x13, // SPECIES_SNORLAX + 0x19, // SPECIES_ARTICUNO + 0x16, // SPECIES_ZAPDOS + 0x17, // SPECIES_MOLTRES + 0x02, // SPECIES_DRATINI + 0x0f, // SPECIES_DRAGONAIR + 0x09, // SPECIES_DRAGONITE + 0x0d, // SPECIES_MEWTWO + 0x12, // SPECIES_MEW + 0x12, // SPECIES_CHIKORITA + 0x02, // SPECIES_BAYLEEF + 0x09, // SPECIES_MEGANIUM + 0x12, // SPECIES_CYNDAQUIL + 0x15, // SPECIES_QUILAVA + 0x17, // SPECIES_TYPHLOSION + 0x15, // SPECIES_TOTODILE + 0x15, // SPECIES_CROCONAW + 0x09, // SPECIES_FERALIGATR + 0x12, // SPECIES_SENTRET + 0x10, // SPECIES_FURRET + 0x11, // SPECIES_HOOTHOOT + 0x0f, // SPECIES_NOCTOWL + 0x0a, // SPECIES_LEDYBA + 0x11, // SPECIES_LEDIAN + 0x0a, // SPECIES_SPINARAK + 0x02, // SPECIES_ARIADOS + 0x0f, // SPECIES_CROBAT + 0x0b, // SPECIES_CHINCHOU + 0x16, // SPECIES_LANTURN + 0x12, // SPECIES_PICHU + 0x13, // SPECIES_CLEFFA + 0x13, // SPECIES_IGGLYBUFF + 0x13, // SPECIES_TOGEPI + 0x11, // SPECIES_TOGETIC + 0x12, // SPECIES_NATU + 0x14, // SPECIES_XATU + 0x12, // SPECIES_MAREEP + 0x13, // SPECIES_FLAAFFY + 0x16, // SPECIES_AMPHAROS + 0x11, // SPECIES_BELLOSSOM + 0x12, // SPECIES_MARILL + 0x13, // SPECIES_AZUMARILL + 0x02, // SPECIES_SUDOWOODO + 0x10, // SPECIES_POLITOED + 0x11, // SPECIES_HOPPIP + 0x11, // SPECIES_SKIPLOOM + 0x11, // SPECIES_JUMPLUFF + 0x10, // SPECIES_AIPOM + 0x13, // SPECIES_SUNKERN + 0x02, // SPECIES_SUNFLORA + 0x11, // SPECIES_YANMA + 0x0b, // SPECIES_WOOPER + 0x02, // SPECIES_QUAGSIRE + 0x14, // SPECIES_ESPEON + 0x14, // SPECIES_UMBREON + 0x12, // SPECIES_MURKROW + 0x13, // SPECIES_SLOWKING + 0x01, // SPECIES_MISDREAVUS + 0x14, // SPECIES_UNOWN + 0x0b, // SPECIES_WOBBUFFET + 0x14, // SPECIES_GIRAFARIG + 0x08, // SPECIES_PINECO + 0x09, // SPECIES_FORRETRESS + 0x0f, // SPECIES_DUNSPARCE + 0x05, // SPECIES_GLIGAR + 0x09, // SPECIES_STEELIX + 0x15, // SPECIES_SNUBBULL + 0x09, // SPECIES_GRANBULL + 0x0d, // SPECIES_QWILFISH + 0x15, // SPECIES_SCIZOR + 0x13, // SPECIES_SHUCKLE + 0x15, // SPECIES_HERACROSS + 0x0f, // SPECIES_SNEASEL + 0x13, // SPECIES_TEDDIURSA + 0x09, // SPECIES_URSARING + 0x17, // SPECIES_SLUGMA + 0x17, // SPECIES_MAGCARGO + 0x0a, // SPECIES_SWINUB + 0x08, // SPECIES_PILOSWINE + 0x02, // SPECIES_CORSOLA + 0x02, // SPECIES_REMORAID + 0x05, // SPECIES_OCTILLERY + 0x0f, // SPECIES_DELIBIRD + 0x02, // SPECIES_MANTINE + 0x15, // SPECIES_SKARMORY + 0x09, // SPECIES_HOUNDOUR + 0x09, // SPECIES_HOUNDOOM + 0x19, // SPECIES_KINGDRA + 0x15, // SPECIES_PHANPY + 0x0e, // SPECIES_DONPHAN + 0x01, // SPECIES_PORYGON2 + 0x13, // SPECIES_STANTLER + 0x02, // SPECIES_SMEARGLE + 0x0f, // SPECIES_TYROGUE + 0x07, // SPECIES_HITMONTOP + 0x02, // SPECIES_SMOOCHUM + 0x08, // SPECIES_ELEKID + 0x17, // SPECIES_MAGBY + 0x02, // SPECIES_MILTANK + 0x13, // SPECIES_BLISSEY + 0x16, // SPECIES_RAIKOU + 0x17, // SPECIES_ENTEI + 0x19, // SPECIES_SUICUNE + 0x0e, // SPECIES_LARVITAR + 0x09, // SPECIES_PUPITAR + 0x0e, // SPECIES_TYRANITAR + 0x19, // SPECIES_LUGIA + 0x17, // SPECIES_HO_OH + 0x18, // SPECIES_CELEBI + 0x00, // SPECIES_OLD_UNOWN_B + 0x00, // SPECIES_OLD_UNOWN_C + 0x00, // SPECIES_OLD_UNOWN_D + 0x00, // SPECIES_OLD_UNOWN_E + 0x00, // SPECIES_OLD_UNOWN_F + 0x00, // SPECIES_OLD_UNOWN_G + 0x00, // SPECIES_OLD_UNOWN_H + 0x00, // SPECIES_OLD_UNOWN_I + 0x00, // SPECIES_OLD_UNOWN_J + 0x00, // SPECIES_OLD_UNOWN_K + 0x00, // SPECIES_OLD_UNOWN_L + 0x00, // SPECIES_OLD_UNOWN_M + 0x00, // SPECIES_OLD_UNOWN_N + 0x00, // SPECIES_OLD_UNOWN_O + 0x00, // SPECIES_OLD_UNOWN_P + 0x00, // SPECIES_OLD_UNOWN_Q + 0x00, // SPECIES_OLD_UNOWN_R + 0x00, // SPECIES_OLD_UNOWN_S + 0x00, // SPECIES_OLD_UNOWN_T + 0x00, // SPECIES_OLD_UNOWN_U + 0x00, // SPECIES_OLD_UNOWN_V + 0x00, // SPECIES_OLD_UNOWN_W + 0x00, // SPECIES_OLD_UNOWN_X + 0x00, // SPECIES_OLD_UNOWN_Y + 0x00, // SPECIES_OLD_UNOWN_Z + 0x10, // SPECIES_TREECKO + 0x15, // SPECIES_GROVYLE + 0x09, // SPECIES_SCEPTILE + 0x12, // SPECIES_TORCHIC + 0x10, // SPECIES_COMBUSKEN + 0x17, // SPECIES_BLAZIKEN + 0x02, // SPECIES_MUDKIP + 0x12, // SPECIES_MARSHTOMP + 0x19, // SPECIES_SWAMPERT + 0x12, // SPECIES_POOCHYENA + 0x08, // SPECIES_MIGHTYENA + 0x0f, // SPECIES_ZIGZAGOON + 0x15, // SPECIES_LINOONE + 0x0b, // SPECIES_WURMPLE + 0x08, // SPECIES_SILCOON + 0x11, // SPECIES_BEAUTIFLY + 0x08, // SPECIES_CASCOON + 0x0f, // SPECIES_DUSTOX + 0x02, // SPECIES_LOTAD + 0x10, // SPECIES_LOMBRE + 0x10, // SPECIES_LUDICOLO + 0x13, // SPECIES_SEEDOT + 0x09, // SPECIES_NUZLEAF + 0x14, // SPECIES_SHIFTRY + 0x0a, // SPECIES_NINCADA + 0x01, // SPECIES_NINJASK + 0x14, // SPECIES_SHEDINJA + 0x12, // SPECIES_TAILLOW + 0x15, // SPECIES_SWELLOW + 0x13, // SPECIES_SHROOMISH + 0x15, // SPECIES_BRELOOM + 0x07, // SPECIES_SPINDA + 0x11, // SPECIES_WINGULL + 0x11, // SPECIES_PELIPPER + 0x03, // SPECIES_SURSKIT + 0x11, // SPECIES_MASQUERAIN + 0x19, // SPECIES_WAILMER + 0x19, // SPECIES_WAILORD + 0x13, // SPECIES_SKITTY + 0x12, // SPECIES_DELCATTY + 0x01, // SPECIES_KECLEON + 0x13, // SPECIES_BALTOY + 0x14, // SPECIES_CLAYDOL + 0x0e, // SPECIES_NOSEPASS + 0x17, // SPECIES_TORKOAL + 0x01, // SPECIES_SABLEYE + 0x0b, // SPECIES_BARBOACH + 0x09, // SPECIES_WHISCASH + 0x04, // SPECIES_LUVDISC + 0x0f, // SPECIES_CORPHISH + 0x15, // SPECIES_CRAWDAUNT + 0x03, // SPECIES_FEEBAS + 0x19, // SPECIES_MILOTIC + 0x04, // SPECIES_CARVANHA + 0x15, // SPECIES_SHARPEDO + 0x13, // SPECIES_TRAPINCH + 0x01, // SPECIES_VIBRAVA + 0x0f, // SPECIES_FLYGON + 0x0e, // SPECIES_MAKUHITA + 0x0e, // SPECIES_HARIYAMA + 0x15, // SPECIES_ELECTRIKE + 0x09, // SPECIES_MANECTRIC + 0x0e, // SPECIES_NUMEL + 0x17, // SPECIES_CAMERUPT + 0x13, // SPECIES_SPHEAL + 0x09, // SPECIES_SEALEO + 0x09, // SPECIES_WALREIN + 0x0a, // SPECIES_CACNEA + 0x08, // SPECIES_CACTURNE + 0x0f, // SPECIES_SNORUNT + 0x0f, // SPECIES_GLALIE + 0x13, // SPECIES_LUNATONE + 0x13, // SPECIES_SOLROCK + 0x10, // SPECIES_AZURILL + 0x10, // SPECIES_SPOINK + 0x14, // SPECIES_GRUMPIG + 0x12, // SPECIES_PLUSLE + 0x12, // SPECIES_MINUN + 0x09, // SPECIES_MAWILE + 0x14, // SPECIES_MEDITITE + 0x14, // SPECIES_MEDICHAM + 0x11, // SPECIES_SWABLU + 0x11, // SPECIES_ALTARIA + 0x12, // SPECIES_WYNAUT + 0x01, // SPECIES_DUSKULL + 0x01, // SPECIES_DUSCLOPS + 0x18, // SPECIES_ROSELIA + 0x02, // SPECIES_SLAKOTH + 0x10, // SPECIES_VIGOROTH + 0x08, // SPECIES_SLAKING + 0x0b, // SPECIES_GULPIN + 0x0b, // SPECIES_SWALOT + 0x0e, // SPECIES_TROPIUS + 0x13, // SPECIES_WHISMUR + 0x09, // SPECIES_LOUDRED + 0x0d, // SPECIES_EXPLOUD + 0x13, // SPECIES_CLAMPERL + 0x11, // SPECIES_HUNTAIL + 0x11, // SPECIES_GOREBYSS + 0x14, // SPECIES_ABSOL + 0x01, // SPECIES_SHUPPET + 0x01, // SPECIES_BANETTE + 0x0b, // SPECIES_SEVIPER + 0x15, // SPECIES_ZANGOOSE + 0x02, // SPECIES_RELICANTH + 0x15, // SPECIES_ARON + 0x09, // SPECIES_LAIRON + 0x0e, // SPECIES_AGGRON + 0x11, // SPECIES_CASTFORM + 0x11, // SPECIES_VOLBEAT + 0x11, // SPECIES_ILLUMISE + 0x0c, // SPECIES_LILEEP + 0x0b, // SPECIES_CRADILY + 0x0f, // SPECIES_ANORITH + 0x09, // SPECIES_ARMALDO + 0x14, // SPECIES_RALTS + 0x14, // SPECIES_KIRLIA + 0x14, // SPECIES_GARDEVOIR + 0x09, // SPECIES_BAGON + 0x09, // SPECIES_SHELGON + 0x08, // SPECIES_SALAMENCE + 0x0f, // SPECIES_BELDUM + 0x15, // SPECIES_METANG + 0x09, // SPECIES_METAGROSS + 0x09, // SPECIES_REGIROCK + 0x09, // SPECIES_REGICE + 0x09, // SPECIES_REGISTEEL + 0x19, // SPECIES_KYOGRE + 0x17, // SPECIES_GROUDON + 0x0d, // SPECIES_RAYQUAZA + 0x01, // SPECIES_LATIAS + 0x01, // SPECIES_LATIOS + 0x11, // SPECIES_JIRACHI + 0x14, // SPECIES_DEOXYS + 0x11, // SPECIES_CHIMECHO +}; + +const u8 gUnknown_0860AA64[] = {0x00, 0x05, 0x01, 0x01, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x00, 0xff}; + +const u8 gUnknown_0860AA80[] = {0x06, 0x1e, 0xfe, 0x0f, 0x06, 0x1e, 0xff, 0x00}; + +static void (* const sMonAnimFunctions[])(struct Sprite *sprite) = +{ + pokemonanimfunc_00, + pokemonanimfunc_01, + pokemonanimfunc_02, + pokemonanimfunc_03, + pokemonanimfunc_04, + pokemonanimfunc_05, + pokemonanimfunc_06, + pokemonanimfunc_07, + pokemonanimfunc_08, + pokemonanimfunc_09, + pokemonanimfunc_0A, + pokemonanimfunc_0B, + pokemonanimfunc_0C, + pokemonanimfunc_0D, + pokemonanimfunc_0E, + pokemonanimfunc_0F, + pokemonanimfunc_10, + pokemonanimfunc_11, + pokemonanimfunc_12, + pokemonanimfunc_13, + pokemonanimfunc_14, + pokemonanimfunc_15, + pokemonanimfunc_16, + pokemonanimfunc_17, + pokemonanimfunc_18, + pokemonanimfunc_19, + pokemonanimfunc_1A, + pokemonanimfunc_1B, + pokemonanimfunc_1C, + pokemonanimfunc_1D, + pokemonanimfunc_1E, + pokemonanimfunc_1F, + pokemonanimfunc_20, + pokemonanimfunc_21, + pokemonanimfunc_22, + pokemonanimfunc_23, + pokemonanimfunc_24, + pokemonanimfunc_25, + pokemonanimfunc_26, + pokemonanimfunc_27, + pokemonanimfunc_28, + pokemonanimfunc_29, + pokemonanimfunc_2A, + pokemonanimfunc_2B, + pokemonanimfunc_2C, + pokemonanimfunc_2D, + pokemonanimfunc_2E, + pokemonanimfunc_2F, + pokemonanimfunc_30, + pokemonanimfunc_31, + pokemonanimfunc_32, + pokemonanimfunc_33, + pokemonanimfunc_34, + pokemonanimfunc_35, + pokemonanimfunc_36, + pokemonanimfunc_37, + pokemonanimfunc_38, + pokemonanimfunc_39, + pokemonanimfunc_3A, + pokemonanimfunc_3B, + pokemonanimfunc_3C, + pokemonanimfunc_3D, + pokemonanimfunc_3E, + pokemonanimfunc_3F, + pokemonanimfunc_40, + pokemonanimfunc_41, + pokemonanimfunc_42, + pokemonanimfunc_43, + pokemonanimfunc_44, + pokemonanimfunc_45, + pokemonanimfunc_46, + pokemonanimfunc_47, + pokemonanimfunc_48, + pokemonanimfunc_49, + pokemonanimfunc_4A, + pokemonanimfunc_4B, + pokemonanimfunc_4C, + pokemonanimfunc_4D, + pokemonanimfunc_4E, + pokemonanimfunc_4F, + pokemonanimfunc_50, + pokemonanimfunc_51, + pokemonanimfunc_52, + pokemonanimfunc_53, + pokemonanimfunc_54, + pokemonanimfunc_55, + pokemonanimfunc_56, + pokemonanimfunc_57, + pokemonanimfunc_58, + pokemonanimfunc_59, + pokemonanimfunc_5A, + pokemonanimfunc_5B, + pokemonanimfunc_5C, + pokemonanimfunc_5D, + pokemonanimfunc_5E, + pokemonanimfunc_5F, + pokemonanimfunc_60, + pokemonanimfunc_61, + pokemonanimfunc_62, + pokemonanimfunc_63, + pokemonanimfunc_64, + pokemonanimfunc_65, + pokemonanimfunc_66, + pokemonanimfunc_67, + pokemonanimfunc_68, + pokemonanimfunc_69, + pokemonanimfunc_6A, + pokemonanimfunc_6B, + pokemonanimfunc_6C, + pokemonanimfunc_6D, + pokemonanimfunc_6E, + pokemonanimfunc_6F, + pokemonanimfunc_70, + pokemonanimfunc_71, + pokemonanimfunc_72, + pokemonanimfunc_73, + pokemonanimfunc_74, + pokemonanimfunc_75, + pokemonanimfunc_76, + pokemonanimfunc_77, + pokemonanimfunc_78, + pokemonanimfunc_79, + pokemonanimfunc_7A, + pokemonanimfunc_7B, + pokemonanimfunc_7C, + pokemonanimfunc_7D, + pokemonanimfunc_7E, + pokemonanimfunc_7F, + pokemonanimfunc_80, + pokemonanimfunc_81, + pokemonanimfunc_82, + pokemonanimfunc_83, + pokemonanimfunc_84, + pokemonanimfunc_85, + pokemonanimfunc_86, + pokemonanimfunc_87, + pokemonanimfunc_88, + pokemonanimfunc_89, + pokemonanimfunc_8A, + pokemonanimfunc_8B, + pokemonanimfunc_8C, + pokemonanimfunc_8D, + pokemonanimfunc_8E, + pokemonanimfunc_8F, + pokemonanimfunc_90, + pokemonanimfunc_91, + pokemonanimfunc_92, + pokemonanimfunc_93, + pokemonanimfunc_94, + pokemonanimfunc_95, + pokemonanimfunc_96 +}; + +// counting from Id 1, because 0 in sSpeciesToBackAnimId is used for mons with no back animation +static const u8 sBackAnimationIds[] = +{ + 0x60, 0x5f, 0x02, // 1 + 0x5e, 0x03, 0x46, // 2 + 0x6d, 0x3e, 0x6e, // 3 + 0x6f, 0x70, 0x3f, // 4 + 0x71, 0x13, 0x72, // 5 + 0x6c, 0x6b, 0x3a, // 6 + 0x64, 0x14, 0x4f, // 7 + 0x5d, 0x0f, 0x4c, // 8 + 0x61, 0x57, 0x58, // 9 + 0x67, 0x66, 0x59, // 0xA + 0x74, 0x73, 0x5a, // 0xB + 0x75, 0x76, 0x5b, // 0xC + 0x77, 0x78, 0x65, // 0xD + 0x63, 0x5c, 0x62, // 0xE + 0x6a, 0x69, 0x68, // 0xF + 0x7b, 0x7a, 0x79, // 0x10 + 0x7e, 0x7d, 0x7c, // 0x11 + 0x81, 0x80, 0x7f, // 0x12 + 0x84, 0x82, 0x83, // 0x13 + 0x85, 0x86, 0x87, // 0x14 + 0x88, 0x89, 0x8a, // 0x15 + 0x8b, 0x8c, 0x8d, // 0x16 + 0x8e, 0x8f, 0x90, // 0x17 + 0x91, 0x92, 0x93, // 0x18 + 0x94, 0x95, 0x96, // 0x19 +}; + +static const u8 sBackAnimNatureModTable[] = +{ + 0x00, // NATURE_HARDY + 0x02, // NATURE_LONELY + 0x00, // NATURE_BRAVE + 0x00, // NATURE_ADAMANT + 0x00, // NATURE_NAUGHTY + 0x01, // NATURE_BOLD + 0x01, // NATURE_DOCILE + 0x01, // NATURE_RELAXED + 0x00, // NATURE_IMPISH + 0x01, // NATURE_LAX + 0x02, // NATURE_TIMID + 0x00, // NATURE_HASTY + 0x01, // NATURE_SERIOUS + 0x00, // NATURE_JOLLY + 0x00, // NATURE_NAIVE + 0x02, // NATURE_MODEST + 0x02, // NATURE_MILD + 0x02, // NATURE_QUIET + 0x02, // NATURE_BASHFUL + 0x01, // NATURE_RASH + 0x01, // NATURE_CALM + 0x02, // NATURE_GENTLE + 0x01, // NATURE_SASSY + 0x02, // NATURE_CAREFUL + 0x01, // NATURE_QUIRKY +}; + +static const union AffineAnimCmd gSpriteAffineAnim_860AD48[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMDTYPE_END +}; + +static const union AffineAnimCmd gSpriteAffineAnim_860AD58[] = +{ + AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), + AFFINEANIMCMDTYPE_END +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_860AD68[] = +{ + gSpriteAffineAnim_860AD48, + gSpriteAffineAnim_860AD58 +}; + +// code +void MonAnimDummySpriteCallback(struct Sprite *sprite) +{ +} + +void sub_817F3F0(struct Sprite *sprite, s16 index, s16 amplitudeX, s16 amplitudeY) +{ + s16 xAdder, yAdder; + + amplitudeX *= -1; + amplitudeY *= -1; + + xAdder = Cos(index, amplitudeX) - Sin(index, amplitudeY); + yAdder = Cos(index, amplitudeY) + Sin(index, amplitudeX); + + amplitudeX *= -1; + amplitudeY *= -1; + + sprite->pos2.x = xAdder + amplitudeX; + sprite->pos2.y = yAdder + amplitudeY; +} + +u8 GetSpeciesBackAnimId(u16 species) +{ + if (sSpeciesToBackAnimId[species] != 0) + return sSpeciesToBackAnimId[species] - 1; + else + return 0; +} + +void sub_817F498(u8 taskId) +{ + u32 i; + struct Sprite *sprite = (struct Sprite*)(u32)((gTasks[taskId].data[1] << 0x10) | (gTasks[taskId].data[2])); + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[4] = sprite->data[0]; + gTasks[taskId].data[5] = sprite->data[2]; + sprite->data[1] = 1; + sprite->data[0] = 0; + + for (i = 2; i < 8; i++) + sprite->data[i] = 0; + + sprite->callback = sMonAnimFunctions[gTasks[taskId].data[3]]; + gUnknown_03001274 = FALSE; + + gTasks[taskId].data[0]++; + } + if (sprite->callback == SpriteCallbackDummy) + { + sprite->data[0] = gTasks[taskId].data[4]; + sprite->data[2] = gTasks[taskId].data[5]; + sprite->data[1] = 0; + + DestroyTask(taskId); + } +} + +void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId) +{ + u8 taskId = CreateTask(sub_817F498, 128); + gTasks[taskId].data[1] = (u32)(sprite) >> 0x10; + gTasks[taskId].data[2] = (u32)(sprite); + gTasks[taskId].data[3] = frontAnimId; +} + +void sub_817F578(struct Sprite *sprite, u8 frontAnimId) +{ + gUnknown_03001274 = TRUE; + sprite->callback = sMonAnimFunctions[frontAnimId]; +} + +void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimId) +{ + u8 nature, taskId, animId, bank; + + taskId = CreateTask(sub_817F498, 128); + gTasks[taskId].data[1] = (u32)(sprite) >> 0x10; + gTasks[taskId].data[2] = (u32)(sprite); + + bank = sprite->data[0]; + nature = GetNature(&gPlayerParty[gBattlePartyID[bank]]); + + animId = 3 * backAnimId + sBackAnimNatureModTable[nature]; + gTasks[taskId].data[3] = sBackAnimationIds[animId]; +} + +void sub_817F60C(struct Sprite *sprite) +{ + sprite->callback = MonAnimDummySpriteCallback; +} + +void sub_817F618(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +{ + u8 matrixNum; + struct ObjAffineSrcData affineSrcData; + struct OamMatrix dest; + + affineSrcData.xScale = xScale; + affineSrcData.yScale = yScale; + affineSrcData.rotation = rotation; + + matrixNum = sprite->oam.matrixNum; + + ObjAffineSet(&affineSrcData, &dest, 1, 2); + gOamMatrices[matrixNum].a = dest.a; + gOamMatrices[matrixNum].b = dest.b; + gOamMatrices[matrixNum].c = dest.c; + gOamMatrices[matrixNum].d = dest.d; +} + +void sub_817F670(struct Sprite *sprite) +{ + sprite->oam.affineMode = 3; + sprite->affineAnims = gSpriteAffineAnimTable_860AD68; + + if (gUnknown_03001274 == TRUE) + InitSpriteAffineAnim(sprite); + + if (!sprite->data[1]) + StartSpriteAffineAnim(sprite, 1); + else + StartSpriteAffineAnim(sprite, 0); + + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + sprite->affineAnimPaused = 1; +} + +void sub_817F6D4(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +{ + if (!sprite->data[1]) + { + xScale *= -1; + rotation *= -1; + } + + sub_817F618(sprite, xScale, yScale, rotation); +} + +void sub_817F70C(struct Sprite *sprite) +{ + if (!sprite->data[1]) + sprite->pos2.x *= -1; +} + +bool32 sub_817F724(u8 id) +{ + if (id >= 4) + { + return FALSE; + } + else + { + gUnknown_03001240[id].field_6 = 0; + gUnknown_03001240[id].field_0 = 0; + gUnknown_03001240[id].field_4 = 1; + gUnknown_03001240[id].field_2 = 0; + gUnknown_03001240[id].field_8 = 0; + return TRUE; + } +} + +u8 sub_817F758(void) +{ + gUnknown_03001270 = (gUnknown_03001270 + 1) % 4; + sub_817F724(gUnknown_03001270); + return gUnknown_03001270; +} + +void sub_817F77C(struct Sprite *sprite) +{ + sprite->oam.affineMode = 1; + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + + if (gUnknown_03001274 == TRUE) + { + if (!sprite->data[1]) + sprite->hFlip = 1; + else + sprite->hFlip = 0; + + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.matrixNum |= (sprite->hFlip << 3); + sprite->oam.affineMode = 0; + } +} -- cgit v1.2.3 From 4e43a251b002c91074ae066849437700b4f724e9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 24 Jan 2018 19:37:30 +0100 Subject: more pokemon anim funcs --- asm/pokemon_animation.s | 2337 ++++------------------------------------------- src/pokemon_animation.c | 827 ++++++++++++++++- 2 files changed, 1011 insertions(+), 2153 deletions(-) diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index 7f0d24cd0..b45d5258b 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -7,1963 +7,6 @@ - - thumb_func_start pokemonanimfunc_01 -pokemonanimfunc_01: @ 817F808 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0817F81A - adds r0, r6, 0 - bl sub_817F670 -_0817F81A: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x28 - ble _0817F840 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _0817F88C - .pool -_0817F840: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 9 - movs r1, 0x28 - bl __divsi3 - adds r4, r0, 0 - cmp r0, 0 - bge _0817F854 - adds r4, 0xFF -_0817F854: - asrs r4, 8 - lsls r4, 8 - subs r4, r0, r4 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x20 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x20 - bl Cos - adds r0, r5 - strh r0, [r6, 0x38] - movs r0, 0x36 - ldrsh r1, [r6, r0] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl sub_817F6D4 -_0817F88C: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_01 - - thumb_func_start pokemonanimfunc_02 -pokemonanimfunc_02: @ 817F898 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x28 - ble _0817F8B4 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817F8EE - .pool -_0817F8B4: - movs r0, 0x1 - ands r0, r1 - movs r5, 0xFF - cmp r0, 0 - bne _0817F8C0 - movs r5, 0x1 -_0817F8C0: - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817F8D4 - adds r0, 0xFF -_0817F8D4: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin - lsls r1, r5, 24 - asrs r1, 24 - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 -_0817F8EE: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_02 - - thumb_func_start sub_817F8FC -sub_817F8FC: @ 817F8FC - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0817F91C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817F946 - .pool -_0817F91C: - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 7 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817F936 - adds r0, 0xFF -_0817F936: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin -_0817F946: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F8FC - - thumb_func_start pokemonanimfunc_03 -pokemonanimfunc_03: @ 817F95C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x28 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F8FC - ldr r0, =sub_817F8FC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_03 - - thumb_func_start sub_817F978 -sub_817F978: @ 817F978 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0817F998 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817F9C4 - .pool -_0817F998: - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 7 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817F9B2 - adds r0, 0xFF -_0817F9B2: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin - negs r0, r0 -_0817F9C4: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F978 - - thumb_func_start pokemonanimfunc_04 -pokemonanimfunc_04: @ 817F9D8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x28 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F978 - ldr r0, =sub_817F978 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_04 - - thumb_func_start sub_817F9F4 -sub_817F9F4: @ 817F9F4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - ble _0817FA14 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0817FA5E - .pool -_0817FA14: - adds r0, r1, 0 - cmp r1, 0 - bge _0817FA1C - adds r0, 0x7F -_0817FA1C: - asrs r2, r0, 7 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0 - blt _0817FA60 - cmp r0, 0x1 - ble _0817FA48 - cmp r0, 0x3 - bgt _0817FA60 - ldr r2, =0xffffff00 - adds r1, r2 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x2E - ldrsh r2, [r4, r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 16 - b _0817FA56 - .pool -_0817FA48: - lsls r0, r2, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r1, 17 -_0817FA56: - asrs r1, 16 - bl Sin - negs r0, r0 -_0817FA5E: - strh r0, [r4, 0x26] -_0817FA60: - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817F9F4 - - thumb_func_start pokemonanimfunc_1E -pokemonanimfunc_1E: @ 817FA6C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F9F4 - ldr r0, =sub_817F9F4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1E - - thumb_func_start pokemonanimfunc_06 -pokemonanimfunc_06: @ 817FA88 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r0, 0xC0 - lsls r0, 2 - cmp r2, r0 - ble _0817FAA8 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0817FB56 - .pool -_0817FAA8: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FAB0 - adds r0, 0x7F -_0817FAB0: - lsls r0, 9 - asrs r0, 16 - cmp r0, 0x5 - bhi _0817FB3C - lsls r0, 2 - ldr r1, =_0817FAC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0817FAC8: - .4byte _0817FAE0 - .4byte _0817FAE0 - .4byte _0817FAE4 - .4byte _0817FAE8 - .4byte _0817FB04 - .4byte _0817FB1E -_0817FAE0: - movs r0, 0 - b _0817FB3A -_0817FAE4: - movs r2, 0 - b _0817FB3C -_0817FAE8: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FAF0 - adds r0, 0x7F -_0817FAF0: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - lsls r0, 3 - negs r0, r0 - cmp r0, 0 - bge _0817FB00 - adds r0, 0x7F -_0817FB00: - asrs r0, 7 - b _0817FB3A -_0817FB04: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FB0C - adds r0, 0x7F -_0817FB0C: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - cmp r0, 0 - bge _0817FB18 - adds r0, 0x7 -_0817FB18: - asrs r0, 3 - subs r0, 0x8 - b _0817FB3A -_0817FB1E: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FB26 - adds r0, 0x7F -_0817FB26: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - lsls r0, 3 - negs r0, r0 - cmp r0, 0 - bge _0817FB36 - adds r0, 0x7F -_0817FB36: - asrs r0, 7 - adds r0, 0x8 -_0817FB3A: - strh r0, [r4, 0x24] -_0817FB3C: - adds r0, r2, 0 - cmp r2, 0 - bge _0817FB44 - adds r0, 0x7F -_0817FB44: - asrs r0, 7 - lsls r0, 7 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 -_0817FB56: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_06 - - thumb_func_start pokemonanimfunc_09 -pokemonanimfunc_09: @ 817FB64 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0817FB76 - adds r0, r6, 0 - bl sub_817F670 -_0817FB76: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x28 - ble _0817FB9C - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _0817FC12 - .pool -_0817FB9C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 8 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0817FBB0 - adds r0, 0xFF -_0817FBB0: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r0, [r6, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0817FBE0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x20 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x20 - b _0817FBFA -_0817FBE0: - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x8 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x8 -_0817FBFA: - bl Sin - adds r0, r5 - strh r0, [r6, 0x38] - movs r0, 0x36 - ldrsh r1, [r6, r0] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl sub_817F6D4 -_0817FC12: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_09 - - thumb_func_start sub_817FC20 -sub_817FC20: @ 817FC20 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817FC32 - strh r0, [r4, 0x34] -_0817FC32: - ldr r2, =gUnknown_0860AD70 - movs r5, 0x34 - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r2, 0x2 - adds r3, r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - movs r5, 0x32 - ldrsh r0, [r4, r5] - cmp r1, r0 - bne _0817FC6A - adds r0, r1, 0 - cmp r0, 0 - bne _0817FC60 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FC6A - .pool -_0817FC60: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x34] - strh r1, [r4, 0x32] -_0817FC6A: - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r1, r0, r1 - adds r0, r2, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _0817FC8C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FCBE - .pool -_0817FC8C: - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r5, 0x34 - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C -_0817FCBE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_817FC20 - - thumb_func_start pokemonanimfunc_0A -pokemonanimfunc_0A: @ 817FCC4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817FC20 - ldr r0, =sub_817FC20 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0A - - thumb_func_start sub_817FCDC -sub_817FCDC: @ 817FCDC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x90 - lsls r0, 4 - cmp r1, r0 - ble _0817FCF8 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817FD12 - .pool -_0817FCF8: - adds r0, r1, 0 - cmp r1, 0 - bge _0817FD00 - adds r0, 0xFF -_0817FD00: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin -_0817FD12: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817FCDC - - thumb_func_start pokemonanimfunc_0F -pokemonanimfunc_0F: @ 817FD24 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3C - strh r0, [r4, 0x2E] - movs r0, 0x3 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817FCDC - ldr r0, =sub_817FCDC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0F - - thumb_func_start sub_817FD44 -sub_817FD44: @ 817FD44 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x90 - lsls r0, 4 - cmp r1, r0 - ble _0817FD60 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - b _0817FD78 - .pool -_0817FD60: - adds r0, r1, 0 - cmp r1, 0 - bge _0817FD68 - adds r0, 0xFF -_0817FD68: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl Sin -_0817FD78: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_817FD44 - - thumb_func_start pokemonanimfunc_10 -pokemonanimfunc_10: @ 817FD88 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3C - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817FD44 - ldr r0, =sub_817FD44 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_10 - - thumb_func_start pokemonanimfunc_11 -pokemonanimfunc_11: @ 817FDA4 - push {r4-r7,lr} - adds r7, r0, 0 - ldrh r2, [r7, 0x32] - movs r0, 0x32 - ldrsh r1, [r7, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _0817FDC8 - ldr r0, =sub_8184D88 - str r0, [r7, 0x1C] - movs r0, 0 - strh r0, [r7, 0x24] - strh r0, [r7, 0x26] - b _0817FE24 - .pool -_0817FDC8: - movs r0, 0x1 - ands r0, r2 - movs r5, 0xFF - cmp r0, 0 - bne _0817FDD4 - movs r5, 0x1 -_0817FDD4: - movs r1, 0x32 - ldrsh r0, [r7, r1] - cmp r0, 0 - bge _0817FDDE - adds r0, 0x3 -_0817FDDE: - asrs r0, 2 - movs r1, 0x8 - bl Sin - lsls r0, 16 - asrs r6, r0, 16 - movs r0, 0x32 - ldrsh r1, [r7, r0] - adds r4, r1, 0 - cmp r1, 0 - bge _0817FDF6 - adds r4, 0xFF -_0817FDF6: - asrs r4, 8 - lsls r4, 8 - subs r4, r1, r4 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - adds r1, r6, 0 - bl Sin - lsls r5, 24 - asrs r5, 24 - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, 0 - strh r0, [r7, 0x26] - adds r0, r4, 0 - adds r1, r6, 0 - bl Cos - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, 0 - strh r0, [r7, 0x24] -_0817FE24: - ldrh r0, [r7, 0x32] - adds r0, 0x9 - strh r0, [r7, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_11 - - thumb_func_start sub_817FE30 -sub_817FE30: @ 817FE30 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r2, =gUnknown_03001240 - ldrh r6, [r4, 0x2E] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - ldrh r0, [r5] - cmp r0, 0 - beq _0817FE54 - subs r0, 0x1 - strh r0, [r5] - b _0817FEF8 - .pool -_0817FE54: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817FE70 - movs r2, 0x8 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0817FE70 - adds r0, r4, 0 - bl sub_817F670 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0817FE70: - ldr r2, =gUnknown_03001240 - lsls r1, r6, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x6 - ldrsh r0, [r5, r2] - cmp r1, r0 - ble _0817FEC4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - ldrh r1, [r5, 0x4] - movs r2, 0x4 - ldrsh r0, [r5, r2] - cmp r0, 0x1 - ble _0817FEB4 - subs r0, r1, 0x1 - movs r1, 0 - strh r0, [r5, 0x4] - movs r0, 0xA - strh r0, [r5] - strh r1, [r4, 0x32] - b _0817FEF2 - .pool -_0817FEB4: - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FEF2 - .pool -_0817FEC4: - movs r0, 0x32 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _0817FED0 - adds r0, 0xFF -_0817FED0: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x80 - lsls r1, 5 - bl Sin - strh r0, [r4, 0x3A] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3A] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 -_0817FEF2: - ldrh r0, [r4, 0x32] - adds r0, 0x10 - strh r0, [r4, 0x32] -_0817FEF8: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_817FE30 - - thumb_func_start pokemonanimfunc_12 -pokemonanimfunc_12: @ 817FF00 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 2 - strh r0, [r1, 0x6] - strh r3, [r1] - adds r0, r4, 0 - bl sub_817FE30 - ldr r0, =sub_817FE30 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_12 - - thumb_func_start sub_817FF3C -sub_817FF3C: @ 817FF3C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0817FF54 - adds r0, r4, 0 - bl sub_817F670 -_0817FF54: - movs r2, 0x32 - ldrsh r6, [r4, r2] - ldr r1, =gUnknown_03001240 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - cmp r6, r1 - ble _0817FF8C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _0817FFAA - .pool -_0817FF8C: - movs r2, 0x8 - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - muls r0, r6 - strh r0, [r4, 0x3A] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3A] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 -_0817FFAA: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_817FF3C - - thumb_func_start pokemonanimfunc_1F -pokemonanimfunc_1F: @ 817FFB8 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3C - strh r0, [r1] - movs r0, 0x14 - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_817FF3C - ldr r0, =sub_817FF3C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1F - - thumb_func_start sub_817FFF0 -sub_817FFF0: @ 817FFF0 - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - bl sub_817F70C - ldr r1, =gUnknown_03001240 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r6, r0, r1 - movs r0, 0x32 - ldrsh r1, [r5, r0] - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0818002C - movs r0, 0 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - ldr r0, =sub_8184D88 - str r0, [r5, 0x1C] - b _0818006A - .pool -_0818002C: - movs r0, 0x32 - ldrsh r1, [r5, r0] - adds r0, r1, 0 - adds r0, 0xC0 - adds r4, r0, 0 - cmp r0, 0 - bge _0818003E - ldr r2, =0x000001bf - adds r4, r1, r2 -_0818003E: - asrs r4, 8 - lsls r4, 8 - subs r4, r0, r4 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r1, 17 - asrs r1, 16 - adds r0, r4, 0 - bl Cos - negs r0, r0 - strh r0, [r5, 0x24] - movs r2, 0x8 - ldrsh r1, [r6, r2] - adds r0, r4, 0 - bl Sin - ldrh r1, [r6, 0x8] - adds r0, r1 - strh r0, [r5, 0x26] -_0818006A: - ldr r0, =gUnknown_03001240 - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - adds r0, r5, 0 - bl sub_817F70C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817FFF0 - - thumb_func_start pokemonanimfunc_14 -pokemonanimfunc_14: @ 8180090 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 2 - strh r0, [r1, 0x6] - movs r0, 0x6 - strh r0, [r1, 0x8] - movs r0, 0x18 - strh r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_817FFF0 - ldr r0, =sub_817FFF0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_14 - - thumb_func_start pokemonanimfunc_15 -pokemonanimfunc_15: @ 81800D0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081800EC - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_081800EC: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _0818010C - ldrh r0, [r4, 0x3C] - movs r1, 0x10 - movs r2, 0 - movs r3, 0 - bl BlendPalette - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - b _08180128 - .pool -_0818010C: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x10 - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x10 - movs r3, 0 - bl BlendPalette -_08180128: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_15 - - thumb_func_start pokemonanimfunc_16 -pokemonanimfunc_16: @ 8180134 - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08180148 - adds r0, r6, 0 - bl sub_817F670 -_08180148: - ldrh r5, [r6, 0x32] - movs r2, 0x32 - ldrsh r0, [r6, r2] - cmp r0, 0x28 - ble _08180170 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _08180204 - .pool -_08180170: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - subs r0, 0xA - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bhi _08180196 - ldrh r0, [r6, 0x3C] - adds r0, 0x33 - strh r0, [r6, 0x3C] - movs r7, 0xFF - ands r7, r0 -_08180196: - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _081801C4 - lsls r5, r4, 16 - asrs r0, r5, 16 - movs r1, 0x28 - bl Sin - adds r4, r0, 0 - adds r0, r7, 0 - movs r1, 0x10 - bl Sin - ldr r1, =0xffffff00 - adds r0, r1 - adds r4, r0 - strh r4, [r6, 0x36] - adds r4, r5, 0 - b _081801E4 - .pool -_081801C4: - adds r0, r7, 0 - movs r1, 0x10 - bl Sin - adds r5, r0, 0 - lsls r4, 16 - asrs r0, r4, 16 - movs r1, 0x28 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r5 - subs r1, r0 - strh r1, [r6, 0x36] -_081801E4: - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x38] - movs r2, 0x36 - ldrsh r1, [r6, r2] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl sub_817F618 -_08180204: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_16 - - thumb_func_start pokemonanimfunc_17 -pokemonanimfunc_17: @ 8180210 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - movs r7, 0 - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0818022C - adds r0, r5, 0 - bl sub_817F670 -_0818022C: - ldrh r6, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _08180258 - movs r2, 0x80 - lsls r2, 1 - adds r0, r5, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r5, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r5, 0x1C] - mov r0, r8 - strh r0, [r5, 0x26] - b _0818030A - .pool -_08180258: - movs r1, 0x32 - ldrsh r0, [r5, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r6, 0 - subs r0, 0xA - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x13 - bhi _0818027E - ldrh r0, [r5, 0x3C] - adds r0, 0x33 - strh r0, [r5, 0x3C] - movs r7, 0xFF - ands r7, r0 -_0818027E: - movs r2, 0x30 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _081802A0 - lsls r4, 16 - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - ldr r2, =0xffffff00 - adds r1, r2, 0 - subs r1, r0 - strh r1, [r5, 0x36] - b _081802B2 - .pool -_081802A0: - lsls r4, 16 - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r5, 0x36] -_081802B2: - adds r6, r4, 0 - adds r0, r7, 0 - movs r1, 0x8 - bl Sin - adds r4, r0, 0 - asrs r0, r6, 16 - movs r1, 0x28 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r4, r1, r4 - subs r4, r0 - strh r4, [r5, 0x38] - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - cmp r4, r1 - beq _081802F0 - movs r2, 0x38 - ldrsh r0, [r5, r2] - subs r0, r1, r0 - cmp r0, 0 - bge _081802EA - adds r0, 0x7 -_081802EA: - lsls r0, 13 - lsrs r0, 16 - mov r8, r0 -_081802F0: - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r5, 0x26] - movs r2, 0x36 - ldrsh r1, [r5, r2] - movs r0, 0x38 - ldrsh r2, [r5, r0] - adds r0, r5, 0 - movs r3, 0 - bl sub_817F618 -_0818030A: - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_17 - - thumb_func_start sub_818031C -sub_818031C: @ 818031C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gUnknown_0860AA80 - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r0, r2 - ldrb r5, [r1] - adds r2, 0x1 - adds r0, r2 - ldrb r6, [r0] - movs r1, 0 - cmp r5, 0xFE - beq _08180358 - subs r0, r6, r7 - muls r0, r5 - adds r1, r6, 0 - bl __divsi3 - lsls r0, 24 - lsrs r1, r0, 24 -_08180358: - cmp r5, 0xFF - bne _08180370 - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x26] - b _08180394 - .pool -_08180370: - mov r0, r8 - bl Sin - strh r0, [r4, 0x26] - cmp r7, r6 - bne _08180386 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r0, 0 - b _08180392 -_08180386: - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_08180392: - strh r0, [r4, 0x3A] -_08180394: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_818031C - - thumb_func_start pokemonanimfunc_19 -pokemonanimfunc_19: @ 81803A0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_818031C - ldr r0, =sub_818031C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_19 - - thumb_func_start pokemonanimfunc_1A -pokemonanimfunc_1A: @ 81803BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x32] - lsls r7, r0, 24 - lsrs r5, r7, 24 - mov r8, r5 - cmp r0, 0 - bne _081803DA - adds r0, r4, 0 - bl sub_817F670 -_081803DA: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x23 - ble _08180404 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0818045E - .pool -_08180404: - adds r6, r5, 0 - subs r6, 0xA - lsls r0, r6, 7 - movs r1, 0x14 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r5, 0x9 - bhi _0818042A - movs r2, 0x80 - lsls r2, 1 - lsrs r3, r7, 25 - lsls r3, 9 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 - b _0818045E -_0818042A: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08180442 - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x5 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - b _0818045E -_08180442: - movs r2, 0x80 - lsls r2, 1 - movs r3, 0x23 - mov r0, r8 - subs r3, r0 - lsrs r0, r3, 31 - adds r3, r0 - asrs r3, 1 - lsls r3, 26 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_817F6D4 -_0818045E: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_1A - - thumb_func_start pokemonanimfunc_1B -pokemonanimfunc_1B: @ 8180474 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08180486 - adds r0, r6, 0 - bl sub_817F670 -_08180486: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x64 - ble _081804B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - movs r0, 0 - strh r0, [r6, 0x26] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _081804E8 - .pool -_081804B0: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl Sin - strh r0, [r6, 0x26] - movs r5, 0x80 - lsls r5, 1 - ldr r1, =0x00000ccc - adds r0, r4, 0 - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r5, 0 - bl sub_817F6D4 -_081804E8: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1B - - thumb_func_start sub_81804F8 -sub_81804F8: @ 81804F8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0818050C - adds r0, r6, 0 - bl sub_817F670 -_0818050C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x64 - ble _08180534 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - strh r5, [r6, 0x26] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _08180582 - .pool -_08180534: - movs r0, 0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 9 - adds r0, r5, 0 - movs r1, 0x64 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0xFF - ands r5, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2E - ldrsh r1, [r6, r0] - adds r0, r4, 0 - bl Sin - strh r0, [r6, 0x26] - movs r4, 0x80 - lsls r4, 1 - adds r0, r5, 0 - ldr r1, =0x00000ccc - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_817F6D4 -_08180582: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81804F8 - - thumb_func_start pokemonanimfunc_1C -pokemonanimfunc_1C: @ 8180594 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_81804F8 - ldr r0, =sub_81804F8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1C - - thumb_func_start sub_81805B0 -sub_81805B0: @ 81805B0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _081805C4 - adds r0, r6, 0 - bl sub_817F670 -_081805C4: - movs r2, 0x32 - ldrsh r0, [r6, r2] - cmp r0, 0x64 - ble _081805EC - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - strh r5, [r6, 0x26] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _08180644 - .pool -_081805EC: - movs r0, 0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 9 - adds r0, r5, 0 - movs r1, 0x64 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0xFF - ands r5, r0 - lsls r4, 16 - asrs r0, r4, 16 - lsrs r4, 31 - adds r0, r4 - asrs r0, 1 - movs r2, 0x2E - ldrsh r1, [r6, r2] - lsls r1, 17 - asrs r1, 16 - bl Sin - negs r0, r0 - strh r0, [r6, 0x26] - movs r4, 0x80 - lsls r4, 1 - adds r0, r5, 0 - ldr r1, =0x00000ccc - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_817F6D4 -_08180644: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81805B0 - - thumb_func_start pokemonanimfunc_18 -pokemonanimfunc_18: @ 8180654 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_81805B0 - ldr r0, =sub_81805B0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_18 - - thumb_func_start pokemonanimfunc_1D -pokemonanimfunc_1D: @ 8180670 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_817F70C - movs r5, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08180688 - adds r0, r6, 0 - bl sub_817F670 -_08180688: - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x64 - ble _081806B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl sub_817F6D4 - strh r5, [r6, 0x24] - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =sub_8184D88 - str r0, [r6, 0x1C] - b _081806FC - .pool -_081806B0: - movs r0, 0x32 - ldrsh r5, [r6, r0] - lsls r0, r5, 8 - movs r1, 0x64 - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 9 - adds r0, r5, 0 - movs r1, 0x64 - bl __divsi3 - adds r5, r0, 0 - movs r0, 0xFF - ands r5, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x8 - bl Sin - strh r0, [r6, 0x24] - movs r4, 0x80 - lsls r4, 1 - adds r0, r5, 0 - ldr r1, =0x00000ccc - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_817F6D4 -_081806FC: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - adds r0, r6, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_1D - thumb_func_start sub_8180714 sub_8180714: @ 8180714 push {r4-r6,lr} @@ -1974,7 +17,7 @@ sub_8180714: @ 8180714 cmp r0, 0 bne _0818072A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r6, [r4, 0x34] _0818072A: adds r0, r4, 0 @@ -1992,11 +35,11 @@ _0818072A: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r6, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081807FE .pool @@ -2064,7 +107,7 @@ _081807B0: asrs r2, r5, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -2122,11 +165,11 @@ sub_8180828: @ 8180828 adds r0, r5, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r6, [r5, 0x26] adds r0, r5, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] b _081808D0 .pool @@ -2172,7 +215,7 @@ _08180894: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] @@ -2197,7 +240,7 @@ pokemonanimfunc_13: @ 81808D8 cmp r0, 0 bne _081808F2 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x3 strh r0, [r4, 0x3C] movs r0, 0x8 @@ -2260,7 +303,7 @@ sub_8180900: @ 8180900 cmp r0, 0 bne _0818096C adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -2282,12 +325,12 @@ _0818096C: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r5, [r4, 0x24] strh r5, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180A3A .pool @@ -2338,7 +381,7 @@ _08180A04: lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 1 @@ -2427,7 +470,7 @@ _08180AA8: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180AE8 .pool @@ -2480,7 +523,7 @@ _08180B14: movs r2, 0 movs r3, 0x1F bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180B50 .pool @@ -2533,7 +576,7 @@ _08180B78: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180BB6 .pool @@ -2586,7 +629,7 @@ _08180BE0: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180C20 .pool @@ -2639,7 +682,7 @@ _08180C4C: movs r1, 0x10 movs r2, 0 bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08180C8C .pool @@ -2670,7 +713,7 @@ _08180C8C: pokemonanimfunc_25: @ 8180C9C push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_8180CB4 str r0, [r4, 0x1C] pop {r4} @@ -2792,7 +835,7 @@ _08180D84: lsls r3, r5, 8 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x24 ldrsh r0, [r4, r1] movs r1, 0x8 @@ -2842,7 +885,7 @@ _08180DE2: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 @@ -2885,7 +928,7 @@ sub_8180E28: @ 8180E28 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08180E4A: adds r0, r4, 0 @@ -2900,7 +943,7 @@ _08180E4A: pokemonanimfunc_26: @ 8180E5C push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x34] ldr r0, =sub_8180E78 @@ -3041,7 +1084,7 @@ _08180F44: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x20 @@ -3050,7 +1093,7 @@ _08180F44: strh r5, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08180F96: adds r0, r4, 0 @@ -3105,7 +1148,7 @@ _08180FC6: ands r1, r0 mov r2, r12 strb r1, [r2] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r3, 0x1C] _08180FFC: movs r0, 0x2 @@ -3121,7 +1164,7 @@ _08180FFE: pokemonanimfunc_28: @ 818100C push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_8181024 str r0, [r4, 0x1C] pop {r4} @@ -3192,7 +1235,7 @@ sub_8181068: @ 8181068 lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x20 @@ -3224,7 +1267,7 @@ sub_81810C4: @ 81810C4 bgt _081810E8 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _081810E8: adds r0, r4, 0 @@ -3239,7 +1282,7 @@ _081810E8: pokemonanimfunc_29: @ 81810F8 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_8181110 str r0, [r4, 0x1C] pop {r4} @@ -3315,7 +1358,7 @@ _08181186: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -3342,7 +1385,7 @@ sub_81811A4: @ 81811A4 strh r2, [r4, 0x26] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _081811CE: adds r0, r4, 0 @@ -3407,7 +1450,7 @@ _08181238: adds r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r2, 0x2E ldrsh r1, [r4, r2] lsls r0, r1, 1 @@ -3519,7 +1562,7 @@ _081812DA: _08181328: adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08181332: movs r2, 0x80 @@ -3529,7 +1572,7 @@ _08181332: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C _0818134A: @@ -3543,7 +1586,7 @@ _0818134A: pokemonanimfunc_2B: @ 8181354 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x3A] strh r0, [r4, 0x3C] @@ -3606,7 +1649,7 @@ _081813BA: adds r0, r4, 0 _081813D2: movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] @@ -3623,10 +1666,10 @@ _081813DE: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08181404: adds r0, r4, 0 @@ -3670,7 +1713,7 @@ _08181442: ldrb r0, [r0] cmp r0, 0xFF bne _08181464 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081814CE .pool @@ -3739,7 +1782,7 @@ sub_81814D4: @ 81814D4 cmp r0, 0 bne _081814E6 adds r0, r6, 0 - bl sub_817F670 + bl HandleStartAffineAnim _081814E6: adds r0, r6, 0 bl sub_817F70C @@ -3761,7 +1804,7 @@ _081814E6: adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r3, 0 strh r3, [r6, 0x24] movs r0, 0x2E @@ -3783,7 +1826,7 @@ _081814E6: _0818153C: adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _08181588 .pool @@ -3813,7 +1856,7 @@ _0818154C: adds r0, r6, 0 adds r1, r5, 0 adds r2, r5, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08181588: ldrh r0, [r6, 0x32] adds r0, 0x1 @@ -3860,7 +1903,7 @@ sub_81815D4: @ 81815D4 cmp r0, 0 bne _081815E6 adds r0, r6, 0 - bl sub_817F670 + bl HandleStartAffineAnim _081815E6: adds r0, r6, 0 bl sub_817F70C @@ -3882,7 +1925,7 @@ _081815E6: adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r3, 0 strh r3, [r6, 0x24] movs r0, 0x2E @@ -3904,7 +1947,7 @@ _081815E6: _0818163C: adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _0818168A .pool @@ -3935,7 +1978,7 @@ _0818164C: adds r0, r6, 0 adds r1, r5, 0 adds r2, r5, 0 - bl sub_817F6D4 + bl HandleSetAffineData _0818168A: ldrh r0, [r6, 0x32] adds r0, 0x1 @@ -3977,7 +2020,7 @@ pokemonanimfunc_2E: @ 81816A0 pokemonanimfunc_2F: @ 81816D4 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim adds r0, r4, 0 adds r0, 0x28 movs r1, 0 @@ -4030,7 +2073,7 @@ sub_8181708: @ 8181708 lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x78 @@ -4104,7 +2147,7 @@ sub_8181794: @ 8181794 adds r0, r4, 0 adds r1, r5, 0 adds r2, r5, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x7F @@ -4115,7 +2158,7 @@ sub_8181794: @ 8181794 adds r1, r5, 0 adds r2, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData strh r6, [r4, 0x32] adds r0, r4, 0 bl sub_817F77C @@ -4155,7 +2198,7 @@ _08181834: cmp r0, 0 bne _0818184A adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r6, [r5, 0x36] strh r6, [r5, 0x38] movs r0, 0x1 @@ -4192,7 +2235,7 @@ _0818184A: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r3, 0x36 ldrsh r0, [r5, r3] cmp r0, 0x80 @@ -4233,7 +2276,7 @@ _081818A2: asrs r2, 16 adds r0, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x36 ldrsh r0, [r5, r1] cmp r0, 0x80 @@ -4268,10 +2311,10 @@ _08181922: adds r0, r5, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r5, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] _0818193A: ldr r2, =gUnknown_03001240 @@ -4329,7 +2372,7 @@ pokemonanimfunc_31: @ 8181994 lsls r0, 2 cmp r4, r0 ble _081819B8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] movs r0, 0 strh r0, [r5, 0x24] @@ -4466,7 +2509,7 @@ pokemonanimfunc_32: @ 8181A78 ldr r0, =0x0000ffff strh r0, [r1, 0x8] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r5, [r4, 0x34] adds r0, r4, 0 bl sub_8181ABC @@ -4568,7 +2611,7 @@ sub_8181B4C: @ 8181B4C adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r0, 0 strh r0, [r4, 0x26] strh r0, [r4, 0x32] @@ -4646,7 +2689,7 @@ _08181BD6: asrs r2, r6, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -4705,7 +2748,7 @@ sub_8181C2C: @ 8181C2C _08181C7C: adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd _08181C84: str r0, [r4, 0x1C] movs r0, 0 @@ -4768,7 +2811,7 @@ sub_8181CE8: @ 8181CE8 cmp r0, 0 bne _08181D00 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -4787,7 +2830,7 @@ _08181D00: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldr r2, =gUnknown_03001240 movs r0, 0x2E ldrsh r1, [r4, r0] @@ -4809,7 +2852,7 @@ _08181D00: _08181D48: adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08181D52: adds r0, r4, 0 @@ -4834,7 +2877,7 @@ _08181D60: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldr r2, =gUnknown_03001240 movs r0, 0x2E ldrsh r1, [r4, r0] @@ -4889,7 +2932,7 @@ pokemonanimfunc_34: @ 8181DE4 cmp r0, 0 bne _08181DFC adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -4908,10 +2951,10 @@ _08181DFC: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] adds r0, r4, 0 bl sub_817F70C @@ -4951,7 +2994,7 @@ _08181E4E: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r0, [r4, 0x3C] adds r0, 0x8 strh r0, [r4, 0x3C] @@ -5013,7 +3056,7 @@ _08181ED8: negs r1, r1 ands r1, r0 strb r1, [r2] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r3, 0x1C] _08181EEE: pop {r4,r5} @@ -5026,7 +3069,7 @@ _08181EEE: pokemonanimfunc_36: @ 8181EF8 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x3C] ldr r0, =sub_8181F14 @@ -5065,7 +3108,7 @@ _08181F38: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4} pop {r0} bx r0 @@ -5144,7 +3187,7 @@ sub_8181FC0: @ 8181FC0 strh r1, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08181FFE .pool @@ -5165,7 +3208,7 @@ _08181FFE: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5182,7 +3225,7 @@ pokemonanimfunc_37: @ 818201C cmp r5, 0 bne _08182036 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -5201,7 +3244,7 @@ _08182036: strh r0, [r4, 0x3C] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081820A6 .pool @@ -5263,7 +3306,7 @@ _081820B2: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4,r5} @@ -5275,7 +3318,7 @@ _081820B2: pokemonanimfunc_38: @ 81820E0 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0 strh r0, [r4, 0x3C] strh r0, [r4, 0x36] @@ -5333,7 +3376,7 @@ _0818214A: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5380,7 +3423,7 @@ _081821AA: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5441,7 +3484,7 @@ _08182224: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5464,7 +3507,7 @@ sub_8182248: @ 8182248 strh r0, [r4, 0x3C] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818228E .pool @@ -5491,7 +3534,7 @@ _0818228E: lsrs r3, 16 adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F70C pop {r4} @@ -5509,7 +3552,7 @@ pokemonanimfunc_39: @ 81822B0 ldrsh r0, [r4, r2] cmp r0, 0x28 ble _081822D0 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] @@ -5609,7 +3652,7 @@ pokemonanimfunc_3A: @ 8182370 cmp r5, 0 bne _08182392 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r5, [r4, 0x38] strh r5, [r4, 0x3A] strh r5, [r4, 0x3C] @@ -5653,7 +3696,7 @@ _08182392: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData b _08182494 _081823E4: movs r2, 0x38 @@ -5671,10 +3714,10 @@ _081823E4: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08182410: movs r2, 0x3C @@ -5743,7 +3786,7 @@ _08182474: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182494: adds r0, r4, 0 bl sub_817F70C @@ -5761,7 +3804,7 @@ pokemonanimfunc_3B: @ 81824A0 cmp r5, 0 bne _081824BA adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -5780,10 +3823,10 @@ _081824BA: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08182540 .pool @@ -5830,7 +3873,7 @@ _08182518: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182540: pop {r4,r5} pop {r0} @@ -5846,7 +3889,7 @@ pokemonanimfunc_3C: @ 8182548 cmp r5, 0 bne _08182562 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -5864,10 +3907,10 @@ _08182562: adds r1, r5, 0 adds r2, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081825D4 .pool @@ -5903,7 +3946,7 @@ _081825AE: adds r0, r4, 0 adds r1, r5, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _081825D4: pop {r4,r5} pop {r0} @@ -5914,7 +3957,7 @@ _081825D4: pokemonanimfunc_3D: @ 81825DC push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldr r0, =sub_81825F8 str r0, [r4, 0x1C] movs r0, 0 @@ -5961,7 +4004,7 @@ _08182620: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4} pop {r0} bx r0 @@ -6041,7 +4084,7 @@ _081826C8: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r1, 0x3A ldrsh r0, [r4, r1] cmp r0, 0x3 @@ -6082,7 +4125,7 @@ sub_81826F8: @ 81826F8 ble _08182742 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x26] @@ -6091,7 +4134,7 @@ sub_81826F8: @ 81826F8 adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182742: movs r1, 0x80 lsls r1, 1 @@ -6102,7 +4145,7 @@ _08182742: asrs r2, 16 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4,r5} pop {r0} bx r0 @@ -6123,14 +4166,14 @@ sub_8182764: @ 8182764 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r2, 0x80 lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData b _081827F4 .pool _08182798: @@ -6178,7 +4221,7 @@ _081827CC: lsls r2, 1 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _081827F4: pop {r4} pop {r0} @@ -6194,7 +4237,7 @@ pokemonanimfunc_3E: @ 81827FC cmp r5, 0 bne _08182822 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6227,14 +4270,14 @@ sub_8182830: @ 8182830 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r2, 0x80 lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData b _081828C0 .pool _08182864: @@ -6282,7 +4325,7 @@ _08182898: lsls r2, 1 adds r0, r4, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _081828C0: pop {r4} pop {r0} @@ -6298,7 +4341,7 @@ pokemonanimfunc_3F: @ 81828C8 cmp r5, 0 bne _081828EE adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6327,7 +4370,7 @@ pokemonanimfunc_40: @ 81828FC cmp r5, 0 bne _0818291A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6348,8 +4391,8 @@ _0818291A: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 - ldr r0, =sub_8184D88 + bl HandleSetAffineData + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818299E .pool @@ -6395,7 +4438,7 @@ _08182978: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _0818299E: adds r0, r4, 0 bl sub_817F70C @@ -6414,7 +4457,7 @@ pokemonanimfunc_41: @ 81829AC cmp r5, 0 bne _081829CA adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6435,8 +4478,8 @@ _081829CA: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 - ldr r0, =sub_8184D88 + bl HandleSetAffineData + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08182A5E .pool @@ -6490,7 +4533,7 @@ _08182A30: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182A5E: adds r0, r4, 0 bl sub_817F70C @@ -6509,7 +4552,7 @@ pokemonanimfunc_42: @ 8182A6C cmp r5, 0 bne _08182A8A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -6530,8 +4573,8 @@ _08182A8A: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 - ldr r0, =sub_8184D88 + bl HandleSetAffineData + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08182B16 .pool @@ -6581,7 +4624,7 @@ _08182AEA: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08182B16: adds r0, r4, 0 bl sub_817F70C @@ -6601,7 +4644,7 @@ pokemonanimfunc_43: @ 8182B24 lsls r0, 4 cmp r1, r0 ble _08182B48 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -6843,7 +4886,7 @@ _08182D08: movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _08182D12: adds r0, r4, 0 @@ -7220,7 +5263,7 @@ pokemonanimfunc_56: @ 8182FB8 movs r0, 0x2 strh r0, [r1, 0x4] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r5, [r4, 0x34] adds r0, r4, 0 bl sub_8181ABC @@ -7398,7 +5441,7 @@ sub_8183140: @ 8183140 lsls r0, 4 cmp r2, r0 ble _0818315C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 b _08183180 @@ -7481,7 +5524,7 @@ pokemonanimfunc_59: @ 81831D4 lsls r0, 4 cmp r1, r0 ble _081831F8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -7625,7 +5668,7 @@ sub_81832C8: @ 81832C8 adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r1, [r6, 0x36] movs r2, 0x36 ldrsh r0, [r6, r2] @@ -7633,7 +5676,7 @@ sub_81832C8: @ 81832C8 bgt _08183310 adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _081833DC .pool @@ -7733,7 +5776,7 @@ _08183392: asrs r2, 16 adds r0, r6, 0 movs r3, 0 - bl sub_817F618 + bl SetAffineData ldrh r0, [r6, 0x38] adds r0, 0x1 strh r0, [r6, 0x38] @@ -7757,7 +5800,7 @@ pokemonanimfunc_5A: @ 81833E8 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x3A] @@ -7794,7 +5837,7 @@ sub_8183418: @ 8183418 adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r1, [r6, 0x36] movs r2, 0x36 ldrsh r0, [r6, r2] @@ -7802,7 +5845,7 @@ sub_8183418: @ 8183418 bgt _08183460 adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _08183538 .pool @@ -7906,7 +5949,7 @@ _08183522: lsls r2, 1 adds r0, r6, 0 movs r3, 0 - bl sub_817F618 + bl SetAffineData ldrh r0, [r6, 0x38] adds r0, 0x1 strh r0, [r6, 0x38] @@ -7930,7 +5973,7 @@ pokemonanimfunc_5B: @ 8183544 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x3A] @@ -7989,7 +6032,7 @@ _081835A6: _081835C2: cmp r5, 0xFF bne _081835D8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x26] @@ -8092,7 +6135,7 @@ pokemonanimfunc_5F: @ 8183674 ldrsh r0, [r4, r2] cmp r0, 0x28 ble _08183690 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 b _081836CA @@ -8146,7 +6189,7 @@ pokemonanimfunc_60: @ 81836D8 ldrsh r0, [r4, r2] cmp r0, 0x28 ble _081836F4 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 b _0818372E @@ -8297,7 +6340,7 @@ sub_81837DC: @ 81837DC adds r0, r7, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData ldrh r1, [r7, 0x36] movs r2, 0x36 ldrsh r0, [r7, r2] @@ -8305,7 +6348,7 @@ sub_81837DC: @ 81837DC bgt _08183824 adds r0, r7, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r7, 0x1C] b _0818392C .pool @@ -8431,7 +6474,7 @@ _081838EA: asrs r2, 16 adds r0, r7, 0 movs r3, 0 - bl sub_817F618 + bl SetAffineData ldrh r0, [r7, 0x38] adds r0, 0x1 strh r0, [r7, 0x38] @@ -8456,7 +6499,7 @@ pokemonanimfunc_65: @ 818393C movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x28 strh r0, [r5, 0x3A] @@ -8482,7 +6525,7 @@ pokemonanimfunc_66: @ 818396C lsls r0, 4 cmp r1, r0 ble _08183990 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -8614,7 +6657,7 @@ pokemonanimfunc_67: @ 8183A60 lsls r0, 4 cmp r1, r0 ble _08183A84 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3A] @@ -8784,7 +6827,7 @@ _08183B8C: lsls r0, 16 cmp r0, 0 bne _08183BC8 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08183C06 .pool @@ -8894,14 +6937,14 @@ sub_8183C6C: @ 8183C6C bgt _08183CA4 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r2, 0x80 lsls r2, 1 adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData b _08183CE8 .pool _08183CA4: @@ -8938,7 +6981,7 @@ _08183CC2: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08183CE8: pop {r4,r5} pop {r0} @@ -8955,7 +6998,7 @@ pokemonanimfunc_6B: @ 8183CF0 cmp r5, 0 bne _08183D16 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -8984,7 +7027,7 @@ pokemonanimfunc_6C: @ 8183D28 cmp r5, 0 bne _08183D4E adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9012,7 +7055,7 @@ pokemonanimfunc_6D: @ 8183D60 cmp r5, 0 bne _08183D88 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9041,7 +7084,7 @@ pokemonanimfunc_6E: @ 8183D94 cmp r5, 0 bne _08183DBA adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9069,7 +7112,7 @@ pokemonanimfunc_6F: @ 8183DC8 cmp r5, 0 bne _08183DF0 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9098,7 +7141,7 @@ pokemonanimfunc_70: @ 8183DFC cmp r5, 0 bne _08183E22 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] @@ -9126,7 +7169,7 @@ pokemonanimfunc_71: @ 8183E30 cmp r0, 0 bne _08183E4A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x5 strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9148,7 +7191,7 @@ pokemonanimfunc_72: @ 8183E58 cmp r0, 0 bne _08183E72 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x3 strh r0, [r4, 0x3C] movs r0, 0x4 @@ -9172,7 +7215,7 @@ pokemonanimfunc_73: @ 8183E80 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x1E strh r0, [r5, 0x3A] @@ -9198,7 +7241,7 @@ pokemonanimfunc_74: @ 8183EB0 movs r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x2 strh r0, [r4, 0x36] movs r0, 0x14 @@ -9225,7 +7268,7 @@ pokemonanimfunc_75: @ 8183EE0 movs r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x2 strh r0, [r4, 0x36] movs r0, 0x14 @@ -9253,7 +7296,7 @@ pokemonanimfunc_76: @ 8183F14 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x1E strh r0, [r5, 0x3A] @@ -9280,7 +7323,7 @@ pokemonanimfunc_77: @ 8183F44 movs r0, 0x1 strh r0, [r4, 0x32] adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x2 strh r0, [r4, 0x36] movs r0, 0x14 @@ -9308,7 +7351,7 @@ pokemonanimfunc_78: @ 8183F78 movs r4, 0x1 strh r4, [r5, 0x32] adds r0, r5, 0 - bl sub_817F670 + bl HandleStartAffineAnim strh r4, [r5, 0x36] movs r0, 0x1E strh r0, [r5, 0x3A] @@ -9337,7 +7380,7 @@ sub_8183FA8: @ 8183FA8 ldrsh r0, [r4, r3] cmp r0, 0x1 bgt _08183FD0 - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] @@ -9499,7 +7542,7 @@ sub_81840C4: @ 81840C4 ldrsh r0, [r5, r3] cmp r1, r0 bgt _081840EC - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r5, 0x1C] b _081840F4 .pool @@ -9772,7 +7815,7 @@ sub_8184290: @ 8184290 ldrh r3, [r4, 0x3A] adds r0, r4, 0 adds r1, r2, 0 - bl sub_817F6D4 + bl HandleSetAffineData pop {r4} pop {r0} bx r0 @@ -9787,7 +7830,7 @@ pokemonanimfunc_82: @ 81842DC cmp r5, 0 bne _08184300 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x3C strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9809,7 +7852,7 @@ _08184300: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r2, 0 strh r2, [r4, 0x24] strh r2, [r4, 0x26] @@ -9824,7 +7867,7 @@ _08184300: bgt _08184348 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08184358 .pool @@ -9853,7 +7896,7 @@ pokemonanimfunc_83: @ 8184360 cmp r5, 0 bne _08184384 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x5A strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9875,7 +7918,7 @@ _08184384: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r2, 0 strh r2, [r4, 0x24] strh r2, [r4, 0x26] @@ -9890,7 +7933,7 @@ _08184384: bgt _081843CC adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _081843DC .pool @@ -9919,7 +7962,7 @@ pokemonanimfunc_84: @ 81843E4 cmp r5, 0 bne _08184408 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r0, 0x1E strh r0, [r4, 0x3C] movs r0, 0x8 @@ -9941,7 +7984,7 @@ _08184408: adds r0, r4, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData movs r2, 0 strh r2, [r4, 0x24] strh r2, [r4, 0x26] @@ -9956,7 +7999,7 @@ _08184408: bgt _08184450 adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _08184460 .pool @@ -9993,10 +8036,10 @@ sub_8184468: @ 8184468 adds r0, r6, 0 adds r1, r2, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData adds r0, r6, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r6, 0x1C] b _08184544 .pool @@ -10080,7 +8123,7 @@ _08184530: ldrsh r2, [r6, r0] adds r0, r6, 0 movs r3, 0 - bl sub_817F6D4 + bl HandleSetAffineData _08184544: ldrh r0, [r6, 0x32] adds r0, 0x1 @@ -10099,7 +8142,7 @@ pokemonanimfunc_85: @ 8184550 cmp r0, 0 bne _08184570 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] @@ -10124,7 +8167,7 @@ pokemonanimfunc_86: @ 818457C cmp r0, 0 bne _0818459A adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] @@ -10148,7 +8191,7 @@ pokemonanimfunc_87: @ 81845A8 cmp r0, 0 bne _081845C6 adds r0, r4, 0 - bl sub_817F670 + bl HandleStartAffineAnim ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] @@ -10299,7 +8342,7 @@ sub_81846B8: @ 81846B8 strh r0, [r4, 0x24] adds r0, r4, 0 bl sub_817F77C - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] _081846DA: adds r0, r4, 0 @@ -10314,7 +8357,7 @@ _081846DA: pokemonanimfunc_88: @ 81846EC push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r2, 0 movs r1, 0x4 strh r1, [r4, 0x3C] @@ -10338,7 +8381,7 @@ pokemonanimfunc_88: @ 81846EC pokemonanimfunc_89: @ 8184718 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r2, 0 movs r1, 0x2 strh r1, [r4, 0x3C] @@ -10362,7 +8405,7 @@ pokemonanimfunc_89: @ 8184718 pokemonanimfunc_8A: @ 8184744 push {r4,lr} adds r4, r0, 0 - bl sub_817F670 + bl HandleStartAffineAnim movs r1, 0 strh r1, [r4, 0x3C] movs r0, 0x6 @@ -10427,7 +8470,7 @@ sub_8184798: @ 8184798 bne _081847D0 movs r0, 0 strh r0, [r4, 0x24] - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818482E .pool @@ -10594,7 +8637,7 @@ sub_81848E0: @ 81848E0 movs r2, 0 movs r3, 0x1F bl BlendPalette - ldr r0, =sub_8184D88 + ldr r0, =SpriteCB_SetDummyOnAnimEnd str r0, [r4, 0x1C] b _0818492A .pool @@ -11223,8 +9266,8 @@ _08184D7A: bx r0 thumb_func_end pokemonanimfunc_96 - thumb_func_start sub_8184D88 -sub_8184D88: @ 8184D88 + thumb_func_start SpriteCB_SetDummyOnAnimEnd +SpriteCB_SetDummyOnAnimEnd: @ 8184D88 push {lr} adds r2, r0, 0 adds r0, 0x3F @@ -11239,6 +9282,6 @@ _08184D9C: pop {r0} bx r0 .pool - thumb_func_end sub_8184D88 + thumb_func_end SpriteCB_SetDummyOnAnimEnd .align 2, 0 @ Don't pad with nop. diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 960b42dd1..1cac2c473 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -4,10 +4,11 @@ #include "pokemon_animation.h" #include "trig.h" #include "task.h" +#include "blend_palette.h" struct UnkAnimStruct { - s16 field_0; + u16 field_0; s16 field_2; s16 field_4; s16 field_6; @@ -172,6 +173,8 @@ void pokemonanimfunc_94(struct Sprite *sprite); void pokemonanimfunc_95(struct Sprite *sprite); void pokemonanimfunc_96(struct Sprite *sprite); +void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite); + // const rom data static const u8 sSpeciesToBackAnimId[] = { @@ -591,7 +594,13 @@ static const u8 sSpeciesToBackAnimId[] = const u8 gUnknown_0860AA64[] = {0x00, 0x05, 0x01, 0x01, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x00, 0xff}; -const u8 gUnknown_0860AA80[] = {0x06, 0x1e, 0xfe, 0x0f, 0x06, 0x1e, 0xff, 0x00}; +const u8 gUnknown_0860AA80[][2] = +{ + {6, 30}, + {0xFE, 15}, + {6, 30}, + {0xFF, 0} +}; static void (* const sMonAnimFunctions[])(struct Sprite *sprite) = { @@ -825,6 +834,8 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_860AD68[] = gSpriteAffineAnim_860AD58 }; +extern const s8 gUnknown_0860AD70[][3]; + // code void MonAnimDummySpriteCallback(struct Sprite *sprite) { @@ -919,7 +930,7 @@ void sub_817F60C(struct Sprite *sprite) sprite->callback = MonAnimDummySpriteCallback; } -void sub_817F618(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { u8 matrixNum; struct ObjAffineSrcData affineSrcData; @@ -938,7 +949,7 @@ void sub_817F618(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) gOamMatrices[matrixNum].d = dest.d; } -void sub_817F670(struct Sprite *sprite) +void HandleStartAffineAnim(struct Sprite *sprite) { sprite->oam.affineMode = 3; sprite->affineAnims = gSpriteAffineAnimTable_860AD68; @@ -955,7 +966,7 @@ void sub_817F670(struct Sprite *sprite) sprite->affineAnimPaused = 1; } -void sub_817F6D4(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { if (!sprite->data[1]) { @@ -963,7 +974,7 @@ void sub_817F6D4(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) rotation *= -1; } - sub_817F618(sprite, xScale, yScale, rotation); + SetAffineData(sprite, xScale, yScale, rotation); } void sub_817F70C(struct Sprite *sprite) @@ -1013,3 +1024,807 @@ void sub_817F77C(struct Sprite *sprite) sprite->oam.affineMode = 0; } } + +void pokemonanimfunc_01(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 var = (sprite->data[2] * 512 / 40) % 256; + + sprite->data[4] = Sin(var, 32) + 256; + sprite->data[5] = Cos(var, 32) + 256; + HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_02(struct Sprite *sprite) +{ + if (sprite->data[2] > 40) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s8 var; + + if (!(sprite->data[2] & 1)) + var = 1; + else + var = -1; + + sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * var; + } + + sprite->data[2]++; +} + +void sub_817F8FC(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[2] > sprite->data[0]) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + sprite->pos2.x = Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_03(struct Sprite *sprite) +{ + sprite->data[0] = 40; + sub_817F8FC(sprite); + sprite->callback = sub_817F8FC; +} + +void sub_817F978(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[2] > sprite->data[0]) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = -(Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6)); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_04(struct Sprite *sprite) +{ + sprite->data[0] = 40; + sub_817F978(sprite); + sprite->callback = sub_817F978; +} + +#ifdef NONMATCHING +void sub_817F9F4(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 384) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s32 divCounter = counter / 128; + + switch (divCounter) + { + case 0: + case 1: + sprite->pos2.y = -(Sin(counter % 128, sprite->data[0] * 2)); + break; + case 2: + case 3: + sprite->pos2.y = -(Sin(counter - 256, sprite->data[0] * 3)); + break; + } + } + + sprite->data[2] += 12; +} + +#else +__attribute__((naked)) +void sub_817F9F4(struct Sprite *sprite) +{ + asm(".syntax unified\n\ + push {r4,lr}\n\ + adds r4, r0, 0\n\ + movs r0, 0x32\n\ + ldrsh r1, [r4, r0]\n\ + movs r0, 0xC0\n\ + lsls r0, 1\n\ + cmp r1, r0\n\ + ble _0817FA14\n\ + ldr r0, =SpriteCB_SetDummyOnAnimEnd\n\ + str r0, [r4, 0x1C]\n\ + movs r0, 0\n\ + strh r0, [r4, 0x24]\n\ + b _0817FA5E\n\ + .pool\n\ +_0817FA14:\n\ + adds r0, r1, 0\n\ + cmp r1, 0\n\ + bge _0817FA1C\n\ + adds r0, 0x7F\n\ +_0817FA1C:\n\ + asrs r2, r0, 7\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + cmp r0, 0\n\ + blt _0817FA60\n\ + cmp r0, 0x1\n\ + ble _0817FA48\n\ + cmp r0, 0x3\n\ + bgt _0817FA60\n\ + ldr r2, =0xffffff00\n\ + adds r1, r2\n\ + lsls r0, r1, 16\n\ + asrs r0, 16\n\ + movs r1, 0x2E\n\ + ldrsh r2, [r4, r1]\n\ + lsls r1, r2, 1\n\ + adds r1, r2\n\ + lsls r1, 16\n\ + b _0817FA56\n\ + .pool\n\ +_0817FA48:\n\ + lsls r0, r2, 7\n\ + subs r0, r1, r0\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + movs r2, 0x2E\n\ + ldrsh r1, [r4, r2]\n\ + lsls r1, 17\n\ +_0817FA56:\n\ + asrs r1, 16\n\ + bl Sin\n\ + negs r0, r0\n\ +_0817FA5E:\n\ + strh r0, [r4, 0x26]\n\ +_0817FA60:\n\ + ldrh r0, [r4, 0x32]\n\ + adds r0, 0xC\n\ + strh r0, [r4, 0x32]\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +#endif // NONMATCHING + +void pokemonanimfunc_1E(struct Sprite *sprite) +{ + sprite->data[0] = 4; + sub_817F9F4(sprite); + sprite->callback = sub_817F9F4; +} + +void pokemonanimfunc_06(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 768) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s16 divCounter = counter / 128; + + switch (divCounter) + { + case 0: + case 1: + sprite->pos2.x = 0; + break; + case 2: + counter = 0; + break; + case 3: + sprite->pos2.x = -(counter % 128 * 8) / 128; + break; + case 4: + sprite->pos2.x = (counter % 128) / 8 - 8; + break; + case 5: + sprite->pos2.x = -(counter % 128 * 8) / 128 + 8; + break; + } + + sprite->pos2.y = -(Sin(counter % 128, 8)); + } + + sprite->data[2] += 12; +} + +void pokemonanimfunc_09(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 index = (sprite->data[2] * 256 / 40) % 256; + + if (sprite->data[2] % 2 == 0) + { + sprite->data[4] = Sin(index, 32) + 256; + sprite->data[5] = Sin(index, 32) + 256; + } + else + { + sprite->data[4] = Sin(index, 8) + 256; + sprite->data[5] = Sin(index, 8) + 256; + } + + HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void sub_817FC20(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[2] == 0) + sprite->data[3] = 0; + + if (gUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2]) + { + if (gUnknown_0860AD70[sprite->data[3]][2] == 0) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[3]++; + sprite->data[2] = 0; + } + } + + if (gUnknown_0860AD70[sprite->data[3]][2] == 0) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->pos2.x += gUnknown_0860AD70[sprite->data[3]][0]; + sprite->pos2.y += gUnknown_0860AD70[sprite->data[3]][1]; + sprite->data[2]++; + sub_817F70C(sprite); + } +} + +void pokemonanimfunc_0A(struct Sprite *sprite) +{ + sub_817FC20(sprite); + sprite->callback = sub_817FC20; +} + +void sub_817FCDC(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 2304) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + sprite->pos2.x = Sin(counter % 256, sprite->data[7]); + } + + sprite->data[2] += sprite->data[0]; +} + +void pokemonanimfunc_0F(struct Sprite *sprite) +{ + sprite->data[0] = 60; + sprite->data[7] = 3; + sub_817FCDC(sprite); + sprite->callback = sub_817FCDC; +} + +void sub_817FD44(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + + if (counter > 2304) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = Sin(counter % 256, 3); + } + + sprite->data[2] += sprite->data[0]; +} + +void pokemonanimfunc_10(struct Sprite *sprite) +{ + sprite->data[0] = 60; + sub_817FD44(sprite); + sprite->callback = sub_817FD44; +} + +void pokemonanimfunc_11(struct Sprite *sprite) +{ + if (sprite->data[2] > 512) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s8 var; + s32 index, amplitude; + + if (!(sprite->data[2] & 1)) + var = 1; + else + var = -1; + + amplitude = Sin(sprite->data[2] / 4, 8); + index = sprite->data[2] % 256; + + sprite->pos2.y = Sin(index, amplitude) * var; + sprite->pos2.x = Cos(index, amplitude) * var; + } + + sprite->data[2] += 9; +} + +void sub_817FE30(struct Sprite *sprite) +{ + s16 id = sprite->data[0]; + + if (gUnknown_03001240[id].field_0 != 0) + { + gUnknown_03001240[id].field_0--; + } + else + { + if (sprite->data[2] == 0 && gUnknown_03001240[id].field_8 == 0) + { + HandleStartAffineAnim(sprite); + gUnknown_03001240[id].field_8++; + } + + if (sprite->data[2] > gUnknown_03001240[id].field_6) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + + if (gUnknown_03001240[id].field_4 > 1) + { + gUnknown_03001240[id].field_4--; + gUnknown_03001240[id].field_0 = 10; + sprite->data[2] = 0; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + else + { + sprite->data[6] = Sin(sprite->data[2] % 256, 4096); + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6]); + } + + sprite->data[2] += 16; + } +} + +void pokemonanimfunc_12(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 512; + gUnknown_03001240[id].field_0 = 0; + sub_817FE30(sprite); + sprite->callback = sub_817FE30; +} + +void sub_817FF3C(struct Sprite *sprite) +{ + u8 id = sprite->data[0]; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > gUnknown_03001240[id].field_0) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = (65536 / gUnknown_03001240[id].field_8) * sprite->data[2]; + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6]); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_1F(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_0 = 60; + gUnknown_03001240[id].field_8 = 20; + sub_817FF3C(sprite); + sprite->callback = sub_817FF3C; +} + +void sub_817FFF0(struct Sprite *sprite) +{ + u8 id = sprite->data[0]; + + sub_817F70C(sprite); + + if (sprite->data[2] > gUnknown_03001240[id].field_6) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 index = (sprite->data[2] + 192) % 256; + + sprite->pos2.x = -(Cos(index, gUnknown_03001240[id].field_8 * 2)); + sprite->pos2.y = Sin(index, gUnknown_03001240[id].field_8) + gUnknown_03001240[id].field_8; + } + + sprite->data[2] += gUnknown_03001240[id].field_2; + sub_817F70C(sprite); +} + +void pokemonanimfunc_14(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 512; + gUnknown_03001240[id].field_8 = 6; + gUnknown_03001240[id].field_2 = 24; + sub_817FFF0(sprite); + sprite->callback = sub_817FFF0; +} + +void pokemonanimfunc_15(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 16); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_16(struct Sprite *sprite) +{ + s16 index1 = 0, index2 = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + index2 = (sprite->data[2] * 128) / 40; + + if (sprite->data[2] >= 10 && sprite->data[2] <= 29) + { + sprite->data[7] += 51; + index1 = 0xFF & sprite->data[7]; + } + + if (sprite->data[1] == 0) + sprite->data[4] = (Sin(index2, 40) - 256) + Sin(index1, 16); + else + sprite->data[4] = (256 - Sin(index2, 40)) - Sin(index1, 16); + + sprite->data[5] = Sin(index2, 16) + 256; + SetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_17(struct Sprite *sprite) +{ + s16 posY = 0, index1 = 0, index2 = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 40) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = posY; + } + else + { + index2 = (sprite->data[2] * 128) / 40; + + if (sprite->data[2] >= 10 && sprite->data[2] <= 29) + { + sprite->data[7] += 51; + index1 = 0xFF & sprite->data[7]; + } + + if (sprite->data[1] == 0) + sprite->data[4] = -(Sin(index2, 16)) - 256; + else + sprite->data[4] = Sin(index2, 16) + 256; + + sprite->data[5] = (256 - Sin(index2, 40)) - Sin(index1, 8); + + if (sprite->data[5] != 256) + posY = (256 - sprite->data[5]) / 8; + + sprite->pos2.y = -(posY); + SetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +void sub_818031C(struct Sprite *sprite) +{ + u8 index = sprite->data[2]; + u8 var7 = sprite->data[6]; + u8 var5 = gUnknown_0860AA80[sprite->data[5]][0]; + u8 var6 = gUnknown_0860AA80[sprite->data[5]][1]; + u8 amplitude = 0; + + if (var5 != 0xFE) + amplitude = (var6 - var7) * var5 / var6; + else + amplitude = 0; + + if (var5 == 0xFF) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = Sin(index, amplitude); + + if (var7 == var6) + { + sprite->data[5]++; + sprite->data[6] = 0; + } + else + { + sprite->data[2] += sprite->data[0]; + sprite->data[6]++; + } + } +} + +void pokemonanimfunc_19(struct Sprite *sprite) +{ + sprite->data[0] = 48; + sub_818031C(sprite); + sprite->callback = sub_818031C; +} + +void pokemonanimfunc_1A(struct Sprite *sprite) +{ + u8 counter = 0; + + sub_817F70C(sprite); + counter = sprite->data[2]; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 35) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s16 index = ((counter - 10) * 128) / 20; + + if (counter < 10) + HandleSetAffineData(sprite, 0x100, 0x100, counter / 2 * 512); + else if (counter >= 10 && counter <= 29) + sprite->pos2.x = -(Sin(index, 5)); + else + HandleSetAffineData(sprite, 0x100, 0x100, (35 - counter) / 2 * 1024); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_1B(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 index = (sprite->data[2] * 256) / 100; + sprite->pos2.y = Sin(index, 10); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(index, 3276)); + } + + sprite->data[2]++; +} + +void sub_81804F8(struct Sprite *sprite) +{ + s32 var = 0; + s16 index = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + index = (sprite->data[2] * 256) / 100; + var = (sprite->data[2] * 512) / 100; + var &= 0xFF; + sprite->pos2.y = Sin(index, sprite->data[0]); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_1C(struct Sprite *sprite) +{ + sprite->data[0] = 10; + sub_81804F8(sprite); + sprite->callback = sub_81804F8; +} + +void sub_81805B0(struct Sprite *sprite) +{ + s32 var = 0; + s16 index = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + index = (sprite->data[2] * 256) / 100; + var = (sprite->data[2] * 512) / 100; + var &= 0xFF; + sprite->pos2.y = -(Sin(index / 2, sprite->data[0] * 2)); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + } + + sprite->data[2]++; +} + +void pokemonanimfunc_18(struct Sprite *sprite) +{ + sprite->data[0] = 5; + sub_81805B0(sprite); + sprite->callback = sub_81805B0; +} + +void pokemonanimfunc_1D(struct Sprite *sprite) +{ + s32 var; + s16 index = 0; + + sub_817F70C(sprite); + var = 0; + + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + if (sprite->data[2] > 100) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 toDiv = 100; + + index = (sprite->data[2] * 256) / toDiv; + var = (sprite->data[2] * 512) / toDiv; + var &= 0xFF; + sprite->pos2.x = Sin(index, 8); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} -- cgit v1.2.3 From 7231aa2658e9c38f14ba3f319f45f83c9da0dea5 Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Wed, 24 Jan 2018 16:45:37 -0500 Subject: got it almost matching --- src/text.c | 4117 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 2211 insertions(+), 1906 deletions(-) diff --git a/src/text.c b/src/text.c index 5db3ba308..6be46b7b1 100644 --- a/src/text.c +++ b/src/text.c @@ -1,6 +1,9 @@ #include "global.h" +#include "battle.h" #include "main.h" +#include "m4a.h" #include "palette.h" +#include "sound.h" #include "string_util.h" #include "window.h" #include "text.h" @@ -14,6 +17,7 @@ extern u16 Font6Func(struct TextPrinter *textPrinter); extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); extern void PlaySE(u16 songNum); extern u8* UnkTextUtil_GetPtrI(u8 a1); +extern int sub_8197964(); EWRAM_DATA struct TextPrinter gTempTextPrinter = {0}; EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0}; @@ -24,6 +28,7 @@ static u16 gLastTextFgColor; static u16 gLastTextShadowColor; extern struct Main gMain; +extern struct MusicPlayerInfo gMPlayInfo_BGM; const struct FontInfo *gFonts; u8 gUnknown_03002F84; @@ -35,22 +40,22 @@ u8 gGlyphDimensions[0x2]; TextFlags gTextFlags; const u8 gFontHalfRowOffsets[] = { - 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, + 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, 0x09, 0x0A, 0x0B, 0x09, 0x0C, 0x0D, 0x0E, 0x0C, 0x0F, 0x10, 0x11, 0x0F, 0x09, 0x0A, 0x0B, 0x09, 0x12, 0x13, 0x14, 0x12, 0x15, 0x16, 0x17, 0x15, 0x18, 0x19, 0x1A, 0x18, 0x12, 0x13, 0x14, 0x12, - 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, + 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, 0x1B, 0x1C, 0x1D, 0x1B, 0x1E, 0x1F, 0x20, 0x1E, 0x21, 0x22, 0x23, 0x21, 0x1B, 0x1C, 0x1D, 0x1B, 0x24, 0x25, 0x26, 0x24, 0x27, 0x28, 0x29, 0x27, 0x2A, 0x2B, 0x2C, 0x2A, 0x24, 0x25, 0x26, 0x24, - 0x2D, 0x2E, 0x2F, 0x2D, 0x30, 0x31, 0x32, 0x30, 0x33, 0x34, 0x35, 0x33, 0x2D, 0x2E, 0x2F, 0x2D, + 0x2D, 0x2E, 0x2F, 0x2D, 0x30, 0x31, 0x32, 0x30, 0x33, 0x34, 0x35, 0x33, 0x2D, 0x2E, 0x2F, 0x2D, 0x1B, 0x1C, 0x1D, 0x1B, 0x1E, 0x1F, 0x20, 0x1E, 0x21, 0x22, 0x23, 0x21, 0x1B, 0x1C, 0x1D, 0x1B, 0x36, 0x37, 0x38, 0x36, 0x39, 0x3A, 0x3B, 0x39, 0x3C, 0x3D, 0x3E, 0x3C, 0x36, 0x37, 0x38, 0x36, - 0x3F, 0x40, 0x41, 0x3F, 0x42, 0x43, 0x44, 0x42, 0x45, 0x46, 0x47, 0x45, 0x3F, 0x40, 0x41, 0x3F, + 0x3F, 0x40, 0x41, 0x3F, 0x42, 0x43, 0x44, 0x42, 0x45, 0x46, 0x47, 0x45, 0x3F, 0x40, 0x41, 0x3F, 0x48, 0x49, 0x4A, 0x48, 0x4B, 0x4C, 0x4D, 0x4B, 0x4E, 0x4F, 0x50, 0x4E, 0x48, 0x49, 0x4A, 0x48, 0x36, 0x37, 0x38, 0x36, 0x39, 0x3A, 0x3B, 0x39, 0x3C, 0x3D, 0x3E, 0x3C, 0x36, 0x37, 0x38, 0x36, - 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, + 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00, 0x09, 0x0A, 0x0B, 0x09, 0x0C, 0x0D, 0x0E, 0x0C, 0x0F, 0x10, 0x11, 0x0F, 0x09, 0x0A, 0x0B, 0x09, 0x12, 0x13, 0x14, 0x12, 0x15, 0x16, 0x17, 0x15, 0x18, 0x19, 0x1A, 0x18, 0x12, 0x13, 0x14, 0x12, - 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00 + 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00 }; const u8 gDownArrowTiles[] = INCBIN_U8("data/graphics/fonts/down_arrow.4bpp"); @@ -378,460 +383,460 @@ __attribute__((naked)) void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) { asm("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, #0x24\n\ - lsl r0, #24\n\ - lsr r0, #24\n\ - lsl r1, #24\n\ - lsr r1, #24\n\ - lsl r2, #24\n\ - lsr r2, #24\n\ - ldr r3, =gFontHalfRowLookupTable\n\ - ldr r4, =gLastTextBgColor\n\ - strh r1, [r4]\n\ - ldr r4, =gLastTextFgColor\n\ - strh r0, [r4]\n\ - ldr r4, =gLastTextShadowColor\n\ - strh r2, [r4]\n\ - lsl r5, r1, #12\n\ - lsl r6, r0, #12\n\ - lsl r4, r2, #12\n\ - mov r8, r4\n\ - lsl r7, r1, #8\n\ - str r7, [sp]\n\ - lsl r4, r1, #4\n\ - mov r9, r4\n\ - orr r7, r4\n\ - str r7, [sp, #0x4]\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - lsl r7, r0, #8\n\ - mov r10, r7\n\ - mov r4, r10\n\ - mov r7, r9\n\ - orr r4, r7\n\ - str r4, [sp, #0x8]\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - lsl r7, r2, #8\n\ - mov r12, r7\n\ - mov r4, r12\n\ - mov r7, r9\n\ - orr r4, r7\n\ - str r4, [sp, #0xC]\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - lsl r7, r0, #4\n\ - mov r9, r7\n\ - ldr r4, [sp]\n\ - orr r4, r7\n\ - str r4, [sp, #0x10]\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - mov r7, r10\n\ - add r4, r7, #0\n\ - mov r7, r9\n\ - orr r4, r7\n\ - str r4, [sp, #0x14]\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - mov r7, r12\n\ - add r4, r7, #0\n\ - mov r7, r9\n\ - orr r4, r7\n\ - str r4, [sp, #0x18]\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - lsl r7, r2, #4\n\ - mov r9, r7\n\ - mov r4, r9\n\ - ldr r7, [sp]\n\ - orr r7, r4\n\ - str r7, [sp, #0x1C]\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - mov r7, r9\n\ - mov r4, r10\n\ - orr r4, r7\n\ - str r4, [sp, #0x20]\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r4, r5, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - add r4, r6, #0\n\ - orr r4, r7\n\ - strh r4, [r3]\n\ - add r3, #0x2\n\ - mov r4, r8\n\ - orr r7, r4\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - mov r4, r12\n\ - mov r7, r9\n\ - orr r4, r7\n\ - add r7, r4, #0\n\ - orr r7, r1\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x4]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x8]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0xC]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x10]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x14]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x18]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x1C]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - ldr r7, [sp, #0x20]\n\ - orr r7, r0\n\ - add r1, r5, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - add r1, r6, #0\n\ - orr r1, r7\n\ - strh r1, [r3]\n\ - add r3, #0x2\n\ - mov r1, r8\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r4, #0\n\ - orr r7, r0\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r0, [sp, #0x4]\n\ - orr r7, r0\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - orr r7, r1\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0x8]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0xC]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0x10]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0x14]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0x18]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0x1C]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - ldr r1, [sp, #0x20]\n\ - orr r7, r1\n\ - add r0, r5, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - add r0, r6, #0\n\ - orr r0, r7\n\ - strh r0, [r3]\n\ - add r3, #0x2\n\ - mov r0, r8\n\ - orr r7, r0\n\ - strh r7, [r3]\n\ - add r3, #0x2\n\ - add r7, r2, #0\n\ - orr r7, r4\n\ - orr r5, r7\n\ - strh r5, [r3]\n\ - add r3, #0x2\n\ - orr r6, r7\n\ - strh r6, [r3]\n\ - orr r0, r7\n\ - strh r0, [r3, #0x2]\n\ - add sp, #0x24\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, #0x24\n\ + lsl r0, #24\n\ + lsr r0, #24\n\ + lsl r1, #24\n\ + lsr r1, #24\n\ + lsl r2, #24\n\ + lsr r2, #24\n\ + ldr r3, =gFontHalfRowLookupTable\n\ + ldr r4, =gLastTextBgColor\n\ + strh r1, [r4]\n\ + ldr r4, =gLastTextFgColor\n\ + strh r0, [r4]\n\ + ldr r4, =gLastTextShadowColor\n\ + strh r2, [r4]\n\ + lsl r5, r1, #12\n\ + lsl r6, r0, #12\n\ + lsl r4, r2, #12\n\ + mov r8, r4\n\ + lsl r7, r1, #8\n\ + str r7, [sp]\n\ + lsl r4, r1, #4\n\ + mov r9, r4\n\ + orr r7, r4\n\ + str r7, [sp, #0x4]\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + lsl r7, r0, #8\n\ + mov r10, r7\n\ + mov r4, r10\n\ + mov r7, r9\n\ + orr r4, r7\n\ + str r4, [sp, #0x8]\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + lsl r7, r2, #8\n\ + mov r12, r7\n\ + mov r4, r12\n\ + mov r7, r9\n\ + orr r4, r7\n\ + str r4, [sp, #0xC]\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + lsl r7, r0, #4\n\ + mov r9, r7\n\ + ldr r4, [sp]\n\ + orr r4, r7\n\ + str r4, [sp, #0x10]\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + mov r7, r10\n\ + add r4, r7, #0\n\ + mov r7, r9\n\ + orr r4, r7\n\ + str r4, [sp, #0x14]\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + mov r7, r12\n\ + add r4, r7, #0\n\ + mov r7, r9\n\ + orr r4, r7\n\ + str r4, [sp, #0x18]\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + lsl r7, r2, #4\n\ + mov r9, r7\n\ + mov r4, r9\n\ + ldr r7, [sp]\n\ + orr r7, r4\n\ + str r7, [sp, #0x1C]\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + mov r7, r9\n\ + mov r4, r10\n\ + orr r4, r7\n\ + str r4, [sp, #0x20]\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r4, r5, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + add r4, r6, #0\n\ + orr r4, r7\n\ + strh r4, [r3]\n\ + add r3, #0x2\n\ + mov r4, r8\n\ + orr r7, r4\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + mov r4, r12\n\ + mov r7, r9\n\ + orr r4, r7\n\ + add r7, r4, #0\n\ + orr r7, r1\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x4]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x8]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0xC]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x10]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x14]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x18]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x1C]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + ldr r7, [sp, #0x20]\n\ + orr r7, r0\n\ + add r1, r5, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + add r1, r6, #0\n\ + orr r1, r7\n\ + strh r1, [r3]\n\ + add r3, #0x2\n\ + mov r1, r8\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r4, #0\n\ + orr r7, r0\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r0, [sp, #0x4]\n\ + orr r7, r0\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + orr r7, r1\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0x8]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0xC]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0x10]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0x14]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0x18]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0x1C]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + ldr r1, [sp, #0x20]\n\ + orr r7, r1\n\ + add r0, r5, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + add r0, r6, #0\n\ + orr r0, r7\n\ + strh r0, [r3]\n\ + add r3, #0x2\n\ + mov r0, r8\n\ + orr r7, r0\n\ + strh r7, [r3]\n\ + add r3, #0x2\n\ + add r7, r2, #0\n\ + orr r7, r4\n\ + orr r5, r7\n\ + strh r5, [r3]\n\ + add r3, #0x2\n\ + orr r6, r7\n\ + strh r6, [r3]\n\ + orr r0, r7\n\ + strh r0, [r3, #0x2]\n\ + add sp, #0x24\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); } #endif @@ -874,165 +879,165 @@ __attribute__((naked)) void DecompressGlyphTile(const u16 *src, u16 *dest) { asm("push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - ldrh r7, [r0]\n\ - ldr r5, =gFontHalfRowLookupTable\n\ - ldr r4, =gFontHalfRowOffsets\n\ - mov r2, #0xFF\n\ - mov r8, r2\n\ - add r2, r7, #0\n\ - mov r3, r8\n\ - and r2, r3\n\ - add r2, r4\n\ - ldrb r2, [r2]\n\ - lsl r2, #1\n\ - add r2, r5\n\ - ldrh r3, [r2]\n\ - lsl r3, #16\n\ - lsr r2, r7, #8\n\ - add r2, r4\n\ - ldrb r2, [r2]\n\ - lsl r2, #1\n\ - add r2, r5\n\ - ldrh r2, [r2]\n\ - orr r3, r2\n\ - add r6, r1, #0\n\ - stmia r6!, {r3}\n\ - ldrh r7, [r0, #0x2]\n\ - add r0, #0x4\n\ - add r2, r7, #0\n\ - mov r3, r8\n\ - and r2, r3\n\ - add r2, r4\n\ - ldrb r2, [r2]\n\ - lsl r2, #1\n\ - add r2, r5\n\ - ldrh r3, [r2]\n\ - lsl r3, #16\n\ - lsr r2, r7, #8\n\ - add r2, r4\n\ - ldrb r2, [r2]\n\ - lsl r2, #1\n\ - add r2, r5\n\ - ldrh r2, [r2]\n\ - orr r3, r2\n\ - str r3, [r1, #0x4]\n\ - add r6, #0x4\n\ - ldrh r7, [r0]\n\ - add r0, #0x2\n\ - add r1, r7, #0\n\ - mov r2, r8\n\ - and r1, r2\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r2, [r1]\n\ - lsl r2, #16\n\ - lsr r1, r7, #8\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r1, [r1]\n\ - orr r2, r1\n\ - stmia r6!, {r2}\n\ - ldrh r7, [r0]\n\ - add r0, #0x2\n\ - add r1, r7, #0\n\ - mov r3, r8\n\ - and r1, r3\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r2, [r1]\n\ - lsl r2, #16\n\ - lsr r1, r7, #8\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r1, [r1]\n\ - orr r2, r1\n\ - stmia r6!, {r2}\n\ - ldrh r7, [r0]\n\ - add r0, #0x2\n\ - add r1, r7, #0\n\ - and r1, r3\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r2, [r1]\n\ - lsl r2, #16\n\ - lsr r1, r7, #8\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r1, [r1]\n\ - orr r2, r1\n\ - stmia r6!, {r2}\n\ - ldrh r7, [r0]\n\ - add r0, #0x2\n\ - add r1, r7, #0\n\ - and r1, r3\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r2, [r1]\n\ - lsl r2, #16\n\ - lsr r1, r7, #8\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r1, [r1]\n\ - orr r2, r1\n\ - stmia r6!, {r2}\n\ - ldrh r7, [r0]\n\ - add r1, r7, #0\n\ - and r1, r3\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r2, [r1]\n\ - lsl r2, #16\n\ - lsr r1, r7, #8\n\ - add r1, r4\n\ - ldrb r1, [r1]\n\ - lsl r1, #1\n\ - add r1, r5\n\ - ldrh r1, [r1]\n\ - orr r2, r1\n\ - stmia r6!, {r2}\n\ - ldrh r7, [r0, #0x2]\n\ - add r0, r7, #0\n\ - and r0, r3\n\ - add r0, r4\n\ - ldrb r0, [r0]\n\ - lsl r0, #1\n\ - add r0, r5\n\ - ldrh r1, [r0]\n\ - lsl r1, #16\n\ - lsr r0, r7, #8\n\ - add r0, r4\n\ - ldrb r0, [r0]\n\ - lsl r0, #1\n\ - add r0, r5\n\ - ldrh r0, [r0]\n\ - orr r1, r0\n\ - str r1, [r6]\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); + mov r7, r8\n\ + push {r7}\n\ + ldrh r7, [r0]\n\ + ldr r5, =gFontHalfRowLookupTable\n\ + ldr r4, =gFontHalfRowOffsets\n\ + mov r2, #0xFF\n\ + mov r8, r2\n\ + add r2, r7, #0\n\ + mov r3, r8\n\ + and r2, r3\n\ + add r2, r4\n\ + ldrb r2, [r2]\n\ + lsl r2, #1\n\ + add r2, r5\n\ + ldrh r3, [r2]\n\ + lsl r3, #16\n\ + lsr r2, r7, #8\n\ + add r2, r4\n\ + ldrb r2, [r2]\n\ + lsl r2, #1\n\ + add r2, r5\n\ + ldrh r2, [r2]\n\ + orr r3, r2\n\ + add r6, r1, #0\n\ + stmia r6!, {r3}\n\ + ldrh r7, [r0, #0x2]\n\ + add r0, #0x4\n\ + add r2, r7, #0\n\ + mov r3, r8\n\ + and r2, r3\n\ + add r2, r4\n\ + ldrb r2, [r2]\n\ + lsl r2, #1\n\ + add r2, r5\n\ + ldrh r3, [r2]\n\ + lsl r3, #16\n\ + lsr r2, r7, #8\n\ + add r2, r4\n\ + ldrb r2, [r2]\n\ + lsl r2, #1\n\ + add r2, r5\n\ + ldrh r2, [r2]\n\ + orr r3, r2\n\ + str r3, [r1, #0x4]\n\ + add r6, #0x4\n\ + ldrh r7, [r0]\n\ + add r0, #0x2\n\ + add r1, r7, #0\n\ + mov r2, r8\n\ + and r1, r2\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r2, [r1]\n\ + lsl r2, #16\n\ + lsr r1, r7, #8\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r1, [r1]\n\ + orr r2, r1\n\ + stmia r6!, {r2}\n\ + ldrh r7, [r0]\n\ + add r0, #0x2\n\ + add r1, r7, #0\n\ + mov r3, r8\n\ + and r1, r3\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r2, [r1]\n\ + lsl r2, #16\n\ + lsr r1, r7, #8\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r1, [r1]\n\ + orr r2, r1\n\ + stmia r6!, {r2}\n\ + ldrh r7, [r0]\n\ + add r0, #0x2\n\ + add r1, r7, #0\n\ + and r1, r3\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r2, [r1]\n\ + lsl r2, #16\n\ + lsr r1, r7, #8\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r1, [r1]\n\ + orr r2, r1\n\ + stmia r6!, {r2}\n\ + ldrh r7, [r0]\n\ + add r0, #0x2\n\ + add r1, r7, #0\n\ + and r1, r3\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r2, [r1]\n\ + lsl r2, #16\n\ + lsr r1, r7, #8\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r1, [r1]\n\ + orr r2, r1\n\ + stmia r6!, {r2}\n\ + ldrh r7, [r0]\n\ + add r1, r7, #0\n\ + and r1, r3\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r2, [r1]\n\ + lsl r2, #16\n\ + lsr r1, r7, #8\n\ + add r1, r4\n\ + ldrb r1, [r1]\n\ + lsl r1, #1\n\ + add r1, r5\n\ + ldrh r1, [r1]\n\ + orr r2, r1\n\ + stmia r6!, {r2}\n\ + ldrh r7, [r0, #0x2]\n\ + add r0, r7, #0\n\ + and r0, r3\n\ + add r0, r4\n\ + ldrb r0, [r0]\n\ + lsl r0, #1\n\ + add r0, r5\n\ + ldrh r1, [r0]\n\ + lsl r1, #16\n\ + lsr r0, r7, #8\n\ + add r0, r4\n\ + ldrb r0, [r0]\n\ + lsl r0, #1\n\ + add r0, r5\n\ + ldrh r0, [r0]\n\ + orr r1, r0\n\ + str r1, [r6]\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); } #endif @@ -1055,703 +1060,703 @@ __attribute__((naked)) void CopyGlyphToWindow(struct TextPrinter *x) { asm("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, #0x8C\n\ - add r3, r0, #0\n\ - ldrb r1, [r3, #0x4]\n\ - lsl r0, r1, #1\n\ - add r0, r1\n\ - lsl r0, #2\n\ - ldr r1, =gWindows\n\ - add r1, r0, r1\n\ - add r2, r1, #0\n\ - ldrb r7, [r1, #0x3]\n\ - lsl r0, r7, #3\n\ - ldrb r6, [r3, #0x8]\n\ - sub r4, r0, r6\n\ - ldr r5, =gUnknown_03002F90\n\ - add r0, r5, #0\n\ - add r0, #0x80\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - ble _08004DD2\n\ - add r4, r0, #0\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, #0x8C\n\ + add r3, r0, #0\n\ + ldrb r1, [r3, #0x4]\n\ + lsl r0, r1, #1\n\ + add r0, r1\n\ + lsl r0, #2\n\ + ldr r1, =gWindows\n\ + add r1, r0, r1\n\ + add r2, r1, #0\n\ + ldrb r7, [r1, #0x3]\n\ + lsl r0, r7, #3\n\ + ldrb r6, [r3, #0x8]\n\ + sub r4, r0, r6\n\ + ldr r5, =gUnknown_03002F90\n\ + add r0, r5, #0\n\ + add r0, #0x80\n\ + ldrb r0, [r0]\n\ + cmp r4, r0\n\ + ble _08004DD2\n\ + add r4, r0, #0\n\ _08004DD2:\n\ - ldrb r0, [r1, #0x4]\n\ - lsl r0, #3\n\ - ldrb r3, [r3, #0x9]\n\ - sub r0, r3\n\ - add r1, r5, #0\n\ - add r1, #0x81\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - ble _08004DE6\n\ - add r0, r1, #0\n\ + ldrb r0, [r1, #0x4]\n\ + lsl r0, #3\n\ + ldrb r3, [r3, #0x9]\n\ + sub r0, r3\n\ + add r1, r5, #0\n\ + add r1, #0x81\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + ble _08004DE6\n\ + add r0, r1, #0\n\ _08004DE6:\n\ - str r6, [sp]\n\ - mov r8, r3\n\ - add r3, r5, #0\n\ - ldr r2, [r2, #0x8]\n\ - mov r9, r2\n\ - lsl r1, r7, #5\n\ - str r1, [sp, #0x4]\n\ - cmp r4, #0x8\n\ - ble _08004DFA\n\ - b _08004F94\n\ + str r6, [sp]\n\ + mov r8, r3\n\ + add r3, r5, #0\n\ + ldr r2, [r2, #0x8]\n\ + mov r9, r2\n\ + lsl r1, r7, #5\n\ + str r1, [sp, #0x4]\n\ + cmp r4, #0x8\n\ + ble _08004DFA\n\ + b _08004F94\n\ _08004DFA:\n\ - cmp r0, #0x8\n\ - bgt _08004E84\n\ - mov r1, r8\n\ - str r3, [sp, #0x8]\n\ - add r2, r6, #0\n\ - add r2, r4\n\ - mov r8, r2\n\ - add r0, r1, r0\n\ - str r0, [sp, #0xC]\n\ - str r6, [sp, #0x10]\n\ - cmp r1, r0\n\ - bcc _08004E14\n\ - b _080052AA\n\ + cmp r0, #0x8\n\ + bgt _08004E84\n\ + mov r1, r8\n\ + str r3, [sp, #0x8]\n\ + add r2, r6, #0\n\ + add r2, r4\n\ + mov r8, r2\n\ + add r0, r1, r0\n\ + str r0, [sp, #0xC]\n\ + str r6, [sp, #0x10]\n\ + cmp r1, r0\n\ + bcc _08004E14\n\ + b _080052AA\n\ _08004E14:\n\ - ldr r3, [sp, #0x8]\n\ - ldm r3!, {r5}\n\ - str r3, [sp, #0x8]\n\ - ldr r4, [sp, #0x10]\n\ - add r0, r1, #0x1\n\ - mov r10, r0\n\ - cmp r4, r8\n\ - bcs _08004E72\n\ - mov r2, #0x7\n\ - mov r12, r2\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, r12\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ + ldr r3, [sp, #0x8]\n\ + ldm r3!, {r5}\n\ + str r3, [sp, #0x8]\n\ + ldr r4, [sp, #0x10]\n\ + add r0, r1, #0x1\n\ + mov r10, r0\n\ + cmp r4, r8\n\ + bcs _08004E72\n\ + mov r2, #0x7\n\ + mov r12, r2\n\ + lsr r0, r1, #3\n\ + ldr r2, [sp, #0x4]\n\ + add r3, r0, #0\n\ + mul r3, r2\n\ + add r7, r3, #0\n\ + mov r3, r12\n\ + and r1, r3\n\ + lsl r6, r1, #2\n\ _08004E38:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _08004E6A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r0, #0xF\n\ + and r3, r0\n\ + cmp r3, #0\n\ + beq _08004E6A\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r12\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _08004E6A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08004E38\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r8\n\ + bcc _08004E38\n\ _08004E72:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0xC]\n\ - cmp r1, r2\n\ - bcc _08004E14\n\ - b _080052AA\n\ - .pool\n\ + mov r1, r10\n\ + ldr r2, [sp, #0xC]\n\ + cmp r1, r2\n\ + bcc _08004E14\n\ + b _080052AA\n\ + .pool\n\ _08004E84:\n\ - mov r1, r8\n\ - str r3, [sp, #0x14]\n\ - ldr r3, [sp]\n\ - add r3, r4\n\ - mov r12, r3\n\ - add r2, r1, #0\n\ - add r2, #0x8\n\ - str r2, [sp, #0x18]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x1C]\n\ - mov r2, r12\n\ - str r2, [sp, #0x74]\n\ - ldr r3, [sp, #0x18]\n\ - str r3, [sp, #0x88]\n\ - sub r0, #0x8\n\ - str r0, [sp, #0x80]\n\ - cmp r1, r3\n\ - bcs _08004F0E\n\ + mov r1, r8\n\ + str r3, [sp, #0x14]\n\ + ldr r3, [sp]\n\ + add r3, r4\n\ + mov r12, r3\n\ + add r2, r1, #0\n\ + add r2, #0x8\n\ + str r2, [sp, #0x18]\n\ + ldr r3, [sp]\n\ + str r3, [sp, #0x1C]\n\ + mov r2, r12\n\ + str r2, [sp, #0x74]\n\ + ldr r3, [sp, #0x18]\n\ + str r3, [sp, #0x88]\n\ + sub r0, #0x8\n\ + str r0, [sp, #0x80]\n\ + cmp r1, r3\n\ + bcs _08004F0E\n\ _08004EA8:\n\ - ldr r0, [sp, #0x14]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x14]\n\ - ldr r4, [sp, #0x1C]\n\ - add r2, r1, #0x1\n\ - mov r8, r2\n\ - cmp r4, r12\n\ - bcs _08004F06\n\ - mov r3, #0x7\n\ - mov r10, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r10\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ + ldr r0, [sp, #0x14]\n\ + ldm r0!, {r5}\n\ + str r0, [sp, #0x14]\n\ + ldr r4, [sp, #0x1C]\n\ + add r2, r1, #0x1\n\ + mov r8, r2\n\ + cmp r4, r12\n\ + bcs _08004F06\n\ + mov r3, #0x7\n\ + mov r10, r3\n\ + lsr r0, r1, #3\n\ + ldr r3, [sp, #0x4]\n\ + add r2, r0, #0\n\ + mul r2, r3\n\ + add r7, r2, #0\n\ + mov r0, r10\n\ + and r1, r0\n\ + lsl r6, r1, #2\n\ _08004ECC:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _08004EFE\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r10\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r1, #0xF\n\ + and r3, r1\n\ + cmp r3, #0\n\ + beq _08004EFE\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r10\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _08004EFE:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _08004ECC\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r12\n\ + bcc _08004ECC\n\ _08004F06:\n\ - mov r1, r8\n\ - ldr r2, [sp, #0x18]\n\ - cmp r1, r2\n\ - bcc _08004EA8\n\ + mov r1, r8\n\ + ldr r2, [sp, #0x18]\n\ + cmp r1, r2\n\ + bcc _08004EA8\n\ _08004F0E:\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002FD0\n\ - str r3, [sp, #0x20]\n\ - ldr r0, [sp, #0x74]\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x24]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x28]\n\ - cmp r1, r2\n\ - bcc _08004F28\n\ - b _080052AA\n\ + ldr r1, [sp, #0x88]\n\ + ldr r3, =gUnknown_03002FD0\n\ + str r3, [sp, #0x20]\n\ + ldr r0, [sp, #0x74]\n\ + mov r8, r0\n\ + ldr r2, [sp, #0x80]\n\ + add r2, r1, r2\n\ + str r2, [sp, #0x24]\n\ + ldr r3, [sp]\n\ + str r3, [sp, #0x28]\n\ + cmp r1, r2\n\ + bcc _08004F28\n\ + b _080052AA\n\ _08004F28:\n\ - ldr r0, [sp, #0x20]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x20]\n\ - ldr r4, [sp, #0x28]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r8\n\ - bcs _08004F86\n\ - mov r3, #0x7\n\ - mov r12, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ + ldr r0, [sp, #0x20]\n\ + ldm r0!, {r5}\n\ + str r0, [sp, #0x20]\n\ + ldr r4, [sp, #0x28]\n\ + add r2, r1, #0x1\n\ + mov r10, r2\n\ + cmp r4, r8\n\ + bcs _08004F86\n\ + mov r3, #0x7\n\ + mov r12, r3\n\ + lsr r0, r1, #3\n\ + ldr r3, [sp, #0x4]\n\ + add r2, r0, #0\n\ + mul r2, r3\n\ + add r7, r2, #0\n\ + mov r0, r12\n\ + and r1, r0\n\ + lsl r6, r1, #2\n\ _08004F4C:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _08004F7E\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r1, #0xF\n\ + and r3, r1\n\ + cmp r3, #0\n\ + beq _08004F7E\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r12\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _08004F7E:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08004F4C\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r8\n\ + bcc _08004F4C\n\ _08004F86:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x24]\n\ - cmp r1, r2\n\ - bcc _08004F28\n\ - b _080052AA\n\ - .pool\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x24]\n\ + cmp r1, r2\n\ + bcc _08004F28\n\ + b _080052AA\n\ + .pool\n\ _08004F94:\n\ - cmp r0, #0x8\n\ - ble _08004F9A\n\ - b _080050A4\n\ + cmp r0, #0x8\n\ + ble _08004F9A\n\ + b _080050A4\n\ _08004F9A:\n\ - mov r1, r8\n\ - str r3, [sp, #0x2C]\n\ - ldr r3, [sp]\n\ - add r3, #0x8\n\ - mov r12, r3\n\ - add r0, r8\n\ - str r0, [sp, #0x30]\n\ - ldr r0, [sp]\n\ - str r0, [sp, #0x34]\n\ - ldr r2, [sp, #0x30]\n\ - str r2, [sp, #0x78]\n\ - str r3, [sp, #0x84]\n\ - sub r4, #0x8\n\ - str r4, [sp, #0x7C]\n\ - cmp r8, r2\n\ - bcs _0800501C\n\ + mov r1, r8\n\ + str r3, [sp, #0x2C]\n\ + ldr r3, [sp]\n\ + add r3, #0x8\n\ + mov r12, r3\n\ + add r0, r8\n\ + str r0, [sp, #0x30]\n\ + ldr r0, [sp]\n\ + str r0, [sp, #0x34]\n\ + ldr r2, [sp, #0x30]\n\ + str r2, [sp, #0x78]\n\ + str r3, [sp, #0x84]\n\ + sub r4, #0x8\n\ + str r4, [sp, #0x7C]\n\ + cmp r8, r2\n\ + bcs _0800501C\n\ _08004FBA:\n\ - ldr r0, [sp, #0x2C]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x2C]\n\ - ldr r4, [sp, #0x34]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r12\n\ - bcs _08005014\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, #0x7\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ + ldr r0, [sp, #0x2C]\n\ + ldm r0!, {r5}\n\ + str r0, [sp, #0x2C]\n\ + ldr r4, [sp, #0x34]\n\ + add r2, r1, #0x1\n\ + mov r10, r2\n\ + cmp r4, r12\n\ + bcs _08005014\n\ + lsr r0, r1, #3\n\ + ldr r2, [sp, #0x4]\n\ + add r3, r0, #0\n\ + mul r3, r2\n\ + add r7, r3, #0\n\ + mov r3, #0x7\n\ + and r1, r3\n\ + lsl r6, r1, #2\n\ _08004FDA:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _0800500C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, #0x7\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r0, #0xF\n\ + and r3, r0\n\ + cmp r3, #0\n\ + beq _0800500C\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, #0x7\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _0800500C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _08004FDA\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r12\n\ + bcc _08004FDA\n\ _08005014:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x30]\n\ - cmp r1, r2\n\ - bcc _08004FBA\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x30]\n\ + cmp r1, r2\n\ + bcc _08004FBA\n\ _0800501C:\n\ - mov r1, r8\n\ - ldr r3, =gUnknown_03002FB0\n\ - str r3, [sp, #0x38]\n\ - ldr r0, [sp, #0x84]\n\ - ldr r2, [sp, #0x7C]\n\ - add r0, r2\n\ - mov r8, r0\n\ - ldr r3, [sp, #0x78]\n\ - str r3, [sp, #0x3C]\n\ - ldr r0, [sp, #0x84]\n\ - str r0, [sp, #0x40]\n\ - cmp r1, r3\n\ - bcc _08005038\n\ - b _080052AA\n\ + mov r1, r8\n\ + ldr r3, =gUnknown_03002FB0\n\ + str r3, [sp, #0x38]\n\ + ldr r0, [sp, #0x84]\n\ + ldr r2, [sp, #0x7C]\n\ + add r0, r2\n\ + mov r8, r0\n\ + ldr r3, [sp, #0x78]\n\ + str r3, [sp, #0x3C]\n\ + ldr r0, [sp, #0x84]\n\ + str r0, [sp, #0x40]\n\ + cmp r1, r3\n\ + bcc _08005038\n\ + b _080052AA\n\ _08005038:\n\ - ldr r2, [sp, #0x38]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x38]\n\ - ldr r4, [sp, #0x40]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r8\n\ - bcs _08005096\n\ - mov r0, #0x7\n\ - mov r12, r0\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ + ldr r2, [sp, #0x38]\n\ + ldm r2!, {r5}\n\ + str r2, [sp, #0x38]\n\ + ldr r4, [sp, #0x40]\n\ + add r3, r1, #0x1\n\ + mov r10, r3\n\ + cmp r4, r8\n\ + bcs _08005096\n\ + mov r0, #0x7\n\ + mov r12, r0\n\ + lsr r0, r1, #3\n\ + ldr r3, [sp, #0x4]\n\ + add r2, r0, #0\n\ + mul r2, r3\n\ + add r7, r2, #0\n\ + mov r0, r12\n\ + and r1, r0\n\ + lsl r6, r1, #2\n\ _0800505C:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800508E\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r1, #0xF\n\ + and r3, r1\n\ + cmp r3, #0\n\ + beq _0800508E\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r12\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _0800508E:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _0800505C\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r8\n\ + bcc _0800505C\n\ _08005096:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x3C]\n\ - cmp r1, r2\n\ - bcc _08005038\n\ - b _080052AA\n\ - .pool\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x3C]\n\ + cmp r1, r2\n\ + bcc _08005038\n\ + b _080052AA\n\ + .pool\n\ _080050A4:\n\ - mov r1, r8\n\ - str r5, [sp, #0x44]\n\ - ldr r3, [sp]\n\ - add r3, #0x8\n\ - mov r12, r3\n\ - mov r2, r8\n\ - add r2, #0x8\n\ - str r2, [sp, #0x48]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x4C]\n\ - str r2, [sp, #0x88]\n\ - sub r0, #0x8\n\ - str r0, [sp, #0x80]\n\ - mov r0, r12\n\ - str r0, [sp, #0x84]\n\ - sub r4, #0x8\n\ - str r4, [sp, #0x7C]\n\ - cmp r8, r2\n\ - bcs _0800512C\n\ + mov r1, r8\n\ + str r5, [sp, #0x44]\n\ + ldr r3, [sp]\n\ + add r3, #0x8\n\ + mov r12, r3\n\ + mov r2, r8\n\ + add r2, #0x8\n\ + str r2, [sp, #0x48]\n\ + ldr r3, [sp]\n\ + str r3, [sp, #0x4C]\n\ + str r2, [sp, #0x88]\n\ + sub r0, #0x8\n\ + str r0, [sp, #0x80]\n\ + mov r0, r12\n\ + str r0, [sp, #0x84]\n\ + sub r4, #0x8\n\ + str r4, [sp, #0x7C]\n\ + cmp r8, r2\n\ + bcs _0800512C\n\ _080050CA:\n\ - ldr r2, [sp, #0x44]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x44]\n\ - ldr r4, [sp, #0x4C]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r12\n\ - bcs _08005124\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, #0x7\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ + ldr r2, [sp, #0x44]\n\ + ldm r2!, {r5}\n\ + str r2, [sp, #0x44]\n\ + ldr r4, [sp, #0x4C]\n\ + add r3, r1, #0x1\n\ + mov r10, r3\n\ + cmp r4, r12\n\ + bcs _08005124\n\ + lsr r0, r1, #3\n\ + ldr r3, [sp, #0x4]\n\ + add r2, r0, #0\n\ + mul r2, r3\n\ + add r7, r2, #0\n\ + mov r0, #0x7\n\ + and r1, r0\n\ + lsl r6, r1, #2\n\ _080050EA:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800511C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, #0x7\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r1, #0xF\n\ + and r3, r1\n\ + cmp r3, #0\n\ + beq _0800511C\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, #0x7\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _0800511C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r12\n\ - bcc _080050EA\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r12\n\ + bcc _080050EA\n\ _08005124:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x48]\n\ - cmp r1, r2\n\ - bcc _080050CA\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x48]\n\ + cmp r1, r2\n\ + bcc _080050CA\n\ _0800512C:\n\ - mov r1, r8\n\ - ldr r3, =gUnknown_03002FB0\n\ - str r3, [sp, #0x50]\n\ - ldr r0, [sp, #0x84]\n\ - ldr r2, [sp, #0x7C]\n\ - add r0, r2\n\ - mov r8, r0\n\ - ldr r3, [sp, #0x88]\n\ - str r3, [sp, #0x54]\n\ - ldr r0, [sp, #0x84]\n\ - str r0, [sp, #0x58]\n\ - cmp r1, r3\n\ - bcs _080051AC\n\ + mov r1, r8\n\ + ldr r3, =gUnknown_03002FB0\n\ + str r3, [sp, #0x50]\n\ + ldr r0, [sp, #0x84]\n\ + ldr r2, [sp, #0x7C]\n\ + add r0, r2\n\ + mov r8, r0\n\ + ldr r3, [sp, #0x88]\n\ + str r3, [sp, #0x54]\n\ + ldr r0, [sp, #0x84]\n\ + str r0, [sp, #0x58]\n\ + cmp r1, r3\n\ + bcs _080051AC\n\ _08005146:\n\ - ldr r2, [sp, #0x50]\n\ - ldm r2!, {r5}\n\ - str r2, [sp, #0x50]\n\ - ldr r4, [sp, #0x58]\n\ - add r3, r1, #0x1\n\ - mov r10, r3\n\ - cmp r4, r8\n\ - bcs _080051A4\n\ - mov r0, #0x7\n\ - mov r12, r0\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ + ldr r2, [sp, #0x50]\n\ + ldm r2!, {r5}\n\ + str r2, [sp, #0x50]\n\ + ldr r4, [sp, #0x58]\n\ + add r3, r1, #0x1\n\ + mov r10, r3\n\ + cmp r4, r8\n\ + bcs _080051A4\n\ + mov r0, #0x7\n\ + mov r12, r0\n\ + lsr r0, r1, #3\n\ + ldr r3, [sp, #0x4]\n\ + add r2, r0, #0\n\ + mul r2, r3\n\ + add r7, r2, #0\n\ + mov r0, r12\n\ + and r1, r0\n\ + lsl r6, r1, #2\n\ _0800516A:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800519C\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r1, #0xF\n\ + and r3, r1\n\ + cmp r3, #0\n\ + beq _0800519C\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r12\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _0800519C:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _0800516A\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r8\n\ + bcc _0800516A\n\ _080051A4:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x54]\n\ - cmp r1, r2\n\ - bcc _08005146\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x54]\n\ + cmp r1, r2\n\ + bcc _08005146\n\ _080051AC:\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002FD0\n\ - str r3, [sp, #0x5C]\n\ - ldr r0, [sp, #0x84]\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x60]\n\ - ldr r3, [sp]\n\ - str r3, [sp, #0x64]\n\ - cmp r1, r2\n\ - bcs _0800522A\n\ + ldr r1, [sp, #0x88]\n\ + ldr r3, =gUnknown_03002FD0\n\ + str r3, [sp, #0x5C]\n\ + ldr r0, [sp, #0x84]\n\ + mov r8, r0\n\ + ldr r2, [sp, #0x80]\n\ + add r2, r1, r2\n\ + str r2, [sp, #0x60]\n\ + ldr r3, [sp]\n\ + str r3, [sp, #0x64]\n\ + cmp r1, r2\n\ + bcs _0800522A\n\ _080051C4:\n\ - ldr r0, [sp, #0x5C]\n\ - ldm r0!, {r5}\n\ - str r0, [sp, #0x5C]\n\ - ldr r4, [sp, #0x64]\n\ - add r2, r1, #0x1\n\ - mov r10, r2\n\ - cmp r4, r8\n\ - bcs _08005222\n\ - mov r3, #0x7\n\ - mov r12, r3\n\ - lsr r0, r1, #3\n\ - ldr r3, [sp, #0x4]\n\ - add r2, r0, #0\n\ - mul r2, r3\n\ - add r7, r2, #0\n\ - mov r0, r12\n\ - and r1, r0\n\ - lsl r6, r1, #2\n\ + ldr r0, [sp, #0x5C]\n\ + ldm r0!, {r5}\n\ + str r0, [sp, #0x5C]\n\ + ldr r4, [sp, #0x64]\n\ + add r2, r1, #0x1\n\ + mov r10, r2\n\ + cmp r4, r8\n\ + bcs _08005222\n\ + mov r3, #0x7\n\ + mov r12, r3\n\ + lsr r0, r1, #3\n\ + ldr r3, [sp, #0x4]\n\ + add r2, r0, #0\n\ + mul r2, r3\n\ + add r7, r2, #0\n\ + mov r0, r12\n\ + and r1, r0\n\ + lsl r6, r1, #2\n\ _080051E8:\n\ - add r3, r5, #0\n\ - mov r1, #0xF\n\ - and r3, r1\n\ - cmp r3, #0\n\ - beq _0800521A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r1, #0xF\n\ + and r3, r1\n\ + cmp r3, #0\n\ + beq _0800521A\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r12\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _0800521A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _080051E8\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r8\n\ + bcc _080051E8\n\ _08005222:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x60]\n\ - cmp r1, r2\n\ - bcc _080051C4\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x60]\n\ + cmp r1, r2\n\ + bcc _080051C4\n\ _0800522A:\n\ - ldr r4, [sp, #0x84]\n\ - ldr r1, [sp, #0x88]\n\ - ldr r3, =gUnknown_03002FF0\n\ - str r3, [sp, #0x68]\n\ - ldr r0, [sp, #0x7C]\n\ - add r0, r4\n\ - mov r8, r0\n\ - ldr r2, [sp, #0x80]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x6C]\n\ - str r4, [sp, #0x70]\n\ - cmp r1, r2\n\ - bcs _080052AA\n\ + ldr r4, [sp, #0x84]\n\ + ldr r1, [sp, #0x88]\n\ + ldr r3, =gUnknown_03002FF0\n\ + str r3, [sp, #0x68]\n\ + ldr r0, [sp, #0x7C]\n\ + add r0, r4\n\ + mov r8, r0\n\ + ldr r2, [sp, #0x80]\n\ + add r2, r1, r2\n\ + str r2, [sp, #0x6C]\n\ + str r4, [sp, #0x70]\n\ + cmp r1, r2\n\ + bcs _080052AA\n\ _08005244:\n\ - ldr r3, [sp, #0x68]\n\ - ldm r3!, {r5}\n\ - str r3, [sp, #0x68]\n\ - ldr r4, [sp, #0x70]\n\ - add r0, r1, #0x1\n\ - mov r10, r0\n\ - cmp r4, r8\n\ - bcs _080052A2\n\ - mov r2, #0x7\n\ - mov r12, r2\n\ - lsr r0, r1, #3\n\ - ldr r2, [sp, #0x4]\n\ - add r3, r0, #0\n\ - mul r3, r2\n\ - add r7, r3, #0\n\ - mov r3, r12\n\ - and r1, r3\n\ - lsl r6, r1, #2\n\ + ldr r3, [sp, #0x68]\n\ + ldm r3!, {r5}\n\ + str r3, [sp, #0x68]\n\ + ldr r4, [sp, #0x70]\n\ + add r0, r1, #0x1\n\ + mov r10, r0\n\ + cmp r4, r8\n\ + bcs _080052A2\n\ + mov r2, #0x7\n\ + mov r12, r2\n\ + lsr r0, r1, #3\n\ + ldr r2, [sp, #0x4]\n\ + add r3, r0, #0\n\ + mul r3, r2\n\ + add r7, r3, #0\n\ + mov r3, r12\n\ + and r1, r3\n\ + lsl r6, r1, #2\n\ _08005268:\n\ - add r3, r5, #0\n\ - mov r0, #0xF\n\ - and r3, r0\n\ - cmp r3, #0\n\ - beq _0800529A\n\ - lsr r2, r4, #3\n\ - lsl r2, #5\n\ - add r2, r9\n\ - add r0, r4, #0\n\ - mov r1, r12\n\ - and r0, r1\n\ - lsr r0, #1\n\ - add r2, r0\n\ - add r2, r7\n\ - add r2, r6\n\ - mov r1, #0x1\n\ - and r1, r4\n\ - lsl r1, #2\n\ - lsl r3, r1\n\ - mov r0, #0xF0\n\ - asr r0, r1\n\ - ldrb r1, [r2]\n\ - and r0, r1\n\ - orr r3, r0\n\ - strb r3, [r2]\n\ + add r3, r5, #0\n\ + mov r0, #0xF\n\ + and r3, r0\n\ + cmp r3, #0\n\ + beq _0800529A\n\ + lsr r2, r4, #3\n\ + lsl r2, #5\n\ + add r2, r9\n\ + add r0, r4, #0\n\ + mov r1, r12\n\ + and r0, r1\n\ + lsr r0, #1\n\ + add r2, r0\n\ + add r2, r7\n\ + add r2, r6\n\ + mov r1, #0x1\n\ + and r1, r4\n\ + lsl r1, #2\n\ + lsl r3, r1\n\ + mov r0, #0xF0\n\ + asr r0, r1\n\ + ldrb r1, [r2]\n\ + and r0, r1\n\ + orr r3, r0\n\ + strb r3, [r2]\n\ _0800529A:\n\ - lsr r5, #4\n\ - add r4, #0x1\n\ - cmp r4, r8\n\ - bcc _08005268\n\ + lsr r5, #4\n\ + add r4, #0x1\n\ + cmp r4, r8\n\ + bcc _08005268\n\ _080052A2:\n\ - mov r1, r10\n\ - ldr r2, [sp, #0x6C]\n\ - cmp r1, r2\n\ - bcc _08005244\n\ + mov r1, r10\n\ + ldr r2, [sp, #0x6C]\n\ + cmp r1, r2\n\ + bcc _08005244\n\ _080052AA:\n\ - add sp, #0x8C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); + add sp, #0x8C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); } void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) @@ -2046,733 +2051,1033 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c } } } - +#ifdef NONMATCHING +u16 RenderText(struct TextPrinter *textPrinter) +{ + struct TextPrinterSubStruct* r4 = &textPrinter->sub_union.sub; + int temp; + int r4two; + int jpnvar; + u8* tempTwo; + u16 songId; + int dummy; + u8 dummyTwo; + + switch (textPrinter->state) // _080057C4 + { + case 0: // _080057F0 + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON)) && r4->font_type_upper) + textPrinter->delayCounter = 0; + if (textPrinter->delayCounter && textPrinter->text_speed) //_0800580A + { + textPrinter->delayCounter--; + if (gTextFlags.flag_0 && (gMain.newKeys & (A_BUTTON | B_BUTTON))) + { + r4->font_type_upper = 1; + textPrinter->delayCounter = 0; + } + return 3; + } + else // _0800584C + { + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED) && gTextFlags.flag_2) + textPrinter->delayCounter = 3; + else + textPrinter->delayCounter = textPrinter->text_speed; + temp = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + switch (temp) //_0800588A + { + case 0xF8+6: //_080058B8 + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY += (gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing); + return 2; + case 0xF8+5: //_080058DC + textPrinter->subPrinter.current_text_offset++; + return 2; + case 0xF8+4: //_080058E0 + temp = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + switch (temp) // _080058F0 + { + + case 1: // _08005960 + textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 2: // _08005982 + textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 3: // _080059A6 + textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 4: // _080059C0 + textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 5: // _08005A0E + textPrinter->subPrinter.current_text_offset++; + return 2; + case 6: //_08005A12 + r4->font_type = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 7: // _08005A0A + return 2; + case 8: // _08005A2A + textPrinter->delayCounter = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + textPrinter->state = 6; + return 2; + case 9: // _08005A3A + textPrinter->state = 1; + if (gTextFlags.flag_2) + r4->frames_visible_counter = 0; + return 3; + case 10: // _08005A58 + textPrinter->state = 5; + return 3; + case 11: // _08005A5C + songId = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + songId |= *textPrinter->subPrinter.current_text_offset << 8; + textPrinter->subPrinter.current_text_offset++; + PlayBGM(songId); + return 2; + case 16: // _08005A76 + songId = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + songId |= (*textPrinter->subPrinter.current_text_offset << 8); + textPrinter->subPrinter.current_text_offset++; + PlaySE(songId); + return 2; + case 13: // _08005A90 + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x + *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 14: // _08005A98 + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y + *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 15: // _08005AA4 + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, textPrinter->subPrinter.bgColor | textPrinter->subPrinter.bgColor << 4); + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; + return 2; + case 23: // _08005ABE + m4aMPlayStop(&gMPlayInfo_BGM); + return 2; + case 24: // _08005ACC + m4aMPlayContinue(&gMPlayInfo_BGM); + return 2; + case 17: // _08005AD8 + temp = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + if (temp > 0) + { + ClearTextSpan(textPrinter, temp); + textPrinter->subPrinter.currentX += temp; + return 0; + } + return 2; + case 18: // _08005AF2 + textPrinter->subPrinter.currentX = *textPrinter->subPrinter.current_text_offset + textPrinter->subPrinter.x; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 19: // _08005B02 + temp = *textPrinter->subPrinter.current_text_offset; + temp += textPrinter->subPrinter.x; + textPrinter->subPrinter.current_text_offset++; + r4two = temp - textPrinter->subPrinter.currentX; + if (temp - textPrinter->subPrinter.currentX > 0) + { + ClearTextSpan(textPrinter, r4two); + textPrinter->subPrinter.currentX += r4two; + return 0; + } + return 2; + case 20: // _08005B26 + textPrinter->minLetterSpacing = *textPrinter->subPrinter.current_text_offset++; + return 2; + case 21: // _08005B36 + textPrinter->japanese = 1; + return 2; + case 22: // _08005B3E + textPrinter->japanese = 0; + return 2; + case 12: // _08005B5A + dummyTwo = *textPrinter->subPrinter.current_text_offset; + dummy = 0x100; + temp = dummy | dummyTwo; + textPrinter->subPrinter.current_text_offset++; + break; + } + break; + case 0xF8+3: // _08005B48 + textPrinter->state = 2; + TextPrinterInitDownArrowCounters(textPrinter); + return 3; + case 0xF8+2: // _08005B4C + textPrinter->state = 3; + TextPrinterInitDownArrowCounters(textPrinter); + return 3; + case 0xF8+1: // _08005B5A + dummyTwo = *textPrinter->subPrinter.current_text_offset; + dummy = 0x100; + temp = dummy | dummyTwo; + textPrinter->subPrinter.current_text_offset++; + break; + case 0xF8+0: // _08005B6C + temp = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + gUnknown_03002F90[0x80] = DrawKeypadIcon(textPrinter->subPrinter.windowId, temp, textPrinter->subPrinter.currentX, textPrinter->subPrinter.currentY); + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing; + return 0; + case 0xF8+7: // _08005D6C + return 1; + } + + } + switch (r4->font_type) // _08005B90 + { + case 0: // _08005BCC + jpnvar = textPrinter->japanese; + DecompressGlyphFont0(temp, jpnvar); + break; + case 1: // _08005BDA + jpnvar = textPrinter->japanese; + DecompressGlyphFont1(temp, jpnvar); + break; + case 2: + case 3: + case 4: + case 5: // _08005BE8 + jpnvar = textPrinter->japanese; + DecompressGlyphFont2(temp, jpnvar); + break; + case 7: // _08005BF6 + jpnvar = textPrinter->japanese; + DecompressGlyphFont7(temp, jpnvar); + break; + case 8: // _08005C04 + jpnvar = textPrinter->japanese; + DecompressGlyphFont8(temp, jpnvar); + break; + case 6: // _08005C10 + break; + } + CopyGlyphToWindow(textPrinter); // _08005C10 + if (textPrinter->minLetterSpacing) + { + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80]; + r4two = textPrinter->minLetterSpacing - gUnknown_03002F90[0x80]; + if (r4two > 0) + { + ClearTextSpan(textPrinter, r4two); + textPrinter->subPrinter.currentX += r4two; + } + } + else // _08005C48 + { + if (textPrinter->japanese) + textPrinter->subPrinter.currentX += (gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing); + else + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80]; + } + return 0; + case 1: // _08005C78 + if (TextPrinterWait(textPrinter)) + textPrinter->state = 0; + return 3; + case 2: // _08005C8C + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, (textPrinter->subPrinter.bgColor << 4) | textPrinter->subPrinter.bgColor); + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; + textPrinter->state = 0; + } + return 3; + case 3: // _08005CB8 + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + TextPrinterClearDownArrow(textPrinter); + textPrinter->scrollDistance = gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->state = 4; + } + return 3; + case 4: // _08005CF0 + if (textPrinter->scrollDistance) + { + int scrollSpeed = sub_8197964(); + int r4two = gWindowVerticalScrollSpeeds[scrollSpeed]; + if (textPrinter->scrollDistance < r4two) + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor); + textPrinter->scrollDistance = 0; + } + else + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, (int)r4two, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor); + textPrinter->scrollDistance -= r4two; + } + CopyWindowToVram(textPrinter->subPrinter.windowId, 2); + } + else + textPrinter->state = 0; + return 3; + case 5: // _08005D48 + if (!IsSEPlaying()) + textPrinter->state = 0; + return 3; + case 6: // _08005D5A + if (textPrinter->delayCounter != 0) + textPrinter->delayCounter--; + else + textPrinter->state = 0; + return 3; + } + return 1; +} +#else __attribute__((naked)) -u16 RenderText(struct TextPrinter *textPrinter) // 80057B4 +u16 RenderText(struct TextPrinter *textPrinter) { asm("push {r4-r6,lr}\n\ - add r6, r0, #0\n\ - add r4, r6, #0\n\ - add r4, #0x14\n\ - ldrb r0, [r6, #0x1C]\n\ - cmp r0, #0x6\n\ - bls _080057C4\n\ - b _08005D6C\n\ + add r6, r0, #0\n\ + add r4, r6, #0\n\ + add r4, #0x14\n\ + ldrb r0, [r6, #0x1C]\n\ + cmp r0, #0x6\n\ + bls _080057C4\n\ + b _08005D6C\n\ _080057C4:\n\ - lsl r0, #2\n\ - ldr r1, =_080057D4\n\ - add r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ + lsl r0, #2\n\ + ldr r1, =_080057D4\n\ + add r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ _080057D4:\n\ - .4byte _080057F0\n\ - .4byte _08005C78\n\ - .4byte _08005C8C\n\ - .4byte _08005CB8\n\ - .4byte _08005CF0\n\ - .4byte _08005D48\n\ - .4byte _08005D5A\n\ + .4byte _080057F0\n\ + .4byte _08005C78\n\ + .4byte _08005C8C\n\ + .4byte _08005CB8\n\ + .4byte _08005CF0\n\ + .4byte _08005D48\n\ + .4byte _08005D5A\n\ _080057F0:\n\ - ldr r2, =gMain\n\ - ldrh r1, [r2, #0x2C]\n\ - mov r0, #0x3\n\ - and r0, r1\n\ - cmp r0, #0\n\ - beq _0800580A\n\ - ldrb r1, [r4]\n\ - mov r0, #0x10\n\ - and r0, r1\n\ - cmp r0, #0\n\ - beq _0800580A\n\ - mov r0, #0\n\ - strb r0, [r6, #0x1E]\n\ + ldr r2, =gMain\n\ + ldrh r1, [r2, #0x2C]\n\ + mov r0, #0x3\n\ + and r0, r1\n\ + cmp r0, #0\n\ + beq _0800580A\n\ + ldrb r1, [r4]\n\ + mov r0, #0x10\n\ + and r0, r1\n\ + cmp r0, #0\n\ + beq _0800580A\n\ + mov r0, #0\n\ + strb r0, [r6, #0x1E]\n\ _0800580A:\n\ - ldrb r1, [r6, #0x1E]\n\ - cmp r1, #0\n\ - beq _0800584C\n\ - ldrb r0, [r6, #0x1D]\n\ - cmp r0, #0\n\ - beq _0800584C\n\ - sub r0, r1, #0x1\n\ - strb r0, [r6, #0x1E]\n\ - ldr r0, =gTextFlags\n\ - ldrb r1, [r0]\n\ - mov r0, #0x1\n\ - and r0, r1\n\ - cmp r0, #0\n\ - bne _08005828\n\ - b _08005B56\n\ + ldrb r1, [r6, #0x1E]\n\ + cmp r1, #0\n\ + beq _0800584C\n\ + ldrb r0, [r6, #0x1D]\n\ + cmp r0, #0\n\ + beq _0800584C\n\ + sub r0, r1, #0x1\n\ + strb r0, [r6, #0x1E]\n\ + ldr r0, =gTextFlags\n\ + ldrb r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r1\n\ + cmp r0, #0\n\ + bne _08005828\n\ + b _08005B56\n\ _08005828:\n\ - ldrh r1, [r2, #0x2E]\n\ - mov r0, #0x3\n\ - and r0, r1\n\ - cmp r0, #0\n\ - bne _08005834\n\ - b _08005B56\n\ + ldrh r1, [r2, #0x2E]\n\ + mov r0, #0x3\n\ + and r0, r1\n\ + cmp r0, #0\n\ + bne _08005834\n\ + b _08005B56\n\ _08005834:\n\ - ldrb r0, [r4]\n\ - mov r1, #0x10\n\ - orr r0, r1\n\ - strb r0, [r4]\n\ - mov r0, #0\n\ - strb r0, [r6, #0x1E]\n\ - b _08005B56\n\ - .pool\n\ + ldrb r0, [r4]\n\ + mov r1, #0x10\n\ + orr r0, r1\n\ + strb r0, [r4]\n\ + mov r0, #0\n\ + strb r0, [r6, #0x1E]\n\ + b _08005B56\n\ + .pool\n\ _0800584C:\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - mov r1, #0x80\n\ - lsl r1, #17\n\ - and r0, r1\n\ - cmp r0, #0\n\ - bne _08005874\n\ - ldr r0, =gTextFlags\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r1\n\ - cmp r0, #0\n\ - beq _08005874\n\ - mov r0, #0x3\n\ - b _08005876\n\ - .pool\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + mov r1, #0x80\n\ + lsl r1, #17\n\ + and r0, r1\n\ + cmp r0, #0\n\ + bne _08005874\n\ + ldr r0, =gTextFlags\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r1\n\ + cmp r0, #0\n\ + beq _08005874\n\ + mov r0, #0x3\n\ + b _08005876\n\ + .pool\n\ _08005874:\n\ - ldrb r0, [r6, #0x1D]\n\ + ldrb r0, [r6, #0x1D]\n\ _08005876:\n\ - strb r0, [r6, #0x1E]\n\ - ldr r0, [r6]\n\ - ldrb r3, [r0]\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - add r0, r3, #0\n\ - sub r0, #0xF8\n\ - cmp r0, #0x7\n\ - bls _0800588A\n\ - b _08005B90\n\ + strb r0, [r6, #0x1E]\n\ + ldr r0, [r6]\n\ + ldrb r3, [r0]\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + add r0, r3, #0\n\ + sub r0, #0xF8\n\ + cmp r0, #0x7\n\ + bls _0800588A\n\ + b _08005B90\n\ _0800588A:\n\ - lsl r0, #2\n\ - ldr r1, =_08005898\n\ - add r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ + lsl r0, #2\n\ + ldr r1, =_08005898\n\ + add r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ _08005898:\n\ - .4byte _08005B6C\n\ - .4byte _08005B5A\n\ - .4byte _08005B4C\n\ - .4byte _08005B48\n\ - .4byte _080058E0\n\ - .4byte _080058DC\n\ - .4byte _080058B8\n\ - .4byte _08005D6C\n\ + .4byte _08005B6C\n\ + .4byte _08005B5A\n\ + .4byte _08005B4C\n\ + .4byte _08005B48\n\ + .4byte _080058E0\n\ + .4byte _080058DC\n\ + .4byte _080058B8\n\ + .4byte _08005D6C\n\ _080058B8:\n\ - ldrb r0, [r6, #0x6]\n\ - strb r0, [r6, #0x8]\n\ - ldrb r1, [r6, #0x5]\n\ - ldr r0, =gFonts\n\ - ldr r2, [r0]\n\ - lsl r0, r1, #1\n\ - add r0, r1\n\ - lsl r0, #2\n\ - add r0, r2\n\ - ldrb r1, [r6, #0xB]\n\ - ldrb r0, [r0, #0x5]\n\ - add r1, r0\n\ - ldrb r0, [r6, #0x9]\n\ - add r0, r1\n\ - b _08005ABA\n\ - .pool\n\ + ldrb r0, [r6, #0x6]\n\ + strb r0, [r6, #0x8]\n\ + ldrb r1, [r6, #0x5]\n\ + ldr r0, =gFonts\n\ + ldr r2, [r0]\n\ + lsl r0, r1, #1\n\ + add r0, r1\n\ + lsl r0, #2\n\ + add r0, r2\n\ + ldrb r1, [r6, #0xB]\n\ + ldrb r0, [r0, #0x5]\n\ + add r1, r0\n\ + ldrb r0, [r6, #0x9]\n\ + add r0, r1\n\ + b _08005ABA\n\ + .pool\n\ _080058DC:\n\ - ldr r0, [r6]\n\ - b _08005B30\n\ + ldr r0, [r6]\n\ + b _08005B30\n\ _080058E0:\n\ - ldr r0, [r6]\n\ - ldrb r3, [r0]\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - sub r0, r3, #0x1\n\ - cmp r0, #0x17\n\ - bls _080058F0\n\ - b _08005B90\n\ + ldr r0, [r6]\n\ + ldrb r3, [r0]\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + sub r0, r3, #0x1\n\ + cmp r0, #0x17\n\ + bls _080058F0\n\ + b _08005B90\n\ _080058F0:\n\ - lsl r0, #2\n\ - ldr r1, =_08005900\n\ - add r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ + lsl r0, #2\n\ + ldr r1, =_08005900\n\ + add r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ _08005900:\n\ - .4byte _08005960\n\ - .4byte _08005982\n\ - .4byte _080059A6\n\ - .4byte _080059C0\n\ - .4byte _08005A0E\n\ - .4byte _08005A12\n\ - .4byte _08005A0A\n\ - .4byte _08005A2A\n\ - .4byte _08005A3A\n\ - .4byte _08005A58\n\ - .4byte _08005A5C\n\ - .4byte _08005B5A\n\ - .4byte _08005A90\n\ - .4byte _08005A98\n\ - .4byte _08005AA4\n\ - .4byte _08005A76\n\ - .4byte _08005AD8\n\ - .4byte _08005AF2\n\ - .4byte _08005B02\n\ - .4byte _08005B26\n\ - .4byte _08005B36\n\ - .4byte _08005B3E\n\ - .4byte _08005ABE\n\ - .4byte _08005ACC\n\ + .4byte _08005960 @0\n\ + .4byte _08005982 @1\n\ + .4byte _080059A6 @2\n\ + .4byte _080059C0 @3\n\ + .4byte _08005A0E @4\n\ + .4byte _08005A12 @5\n\ + .4byte _08005A0A @6\n\ + .4byte _08005A2A @7\n\ + .4byte _08005A3A @8\n\ + .4byte _08005A58 @9\n\ + .4byte _08005A5C @10\n\ + .4byte _08005B5A @11\n\ + .4byte _08005A90 @12\n\ + .4byte _08005A98 @13\n\ + .4byte _08005AA4 @14\n\ + .4byte _08005A76 @15\n\ + .4byte _08005AD8 @16\n\ + .4byte _08005AF2 @17\n\ + .4byte _08005B02 @18\n\ + .4byte _08005B26 @19\n\ + .4byte _08005B36 @20\n\ + .4byte _08005B3E @21\n\ + .4byte _08005ABE @22\n\ + .4byte _08005ACC @23\n\ _08005960:\n\ - ldr r2, [r6]\n\ - ldrb r1, [r2]\n\ - lsl r1, #4\n\ - ldrb r3, [r6, #0xC]\n\ - mov r0, #0xF\n\ - and r0, r3\n\ - orr r0, r1\n\ - strb r0, [r6, #0xC]\n\ - add r2, #0x1\n\ - str r2, [r6]\n\ - lsl r0, #24\n\ - lsr r0, #28\n\ - ldrb r2, [r6, #0xD]\n\ - lsl r1, r2, #28\n\ - lsr r1, #28\n\ - lsr r2, #4\n\ - b _08005A06\n\ + ldr r2, [r6]\n\ + ldrb r1, [r2]\n\ + lsl r1, #4\n\ + ldrb r3, [r6, #0xC]\n\ + mov r0, #0xF\n\ + and r0, r3\n\ + orr r0, r1\n\ + strb r0, [r6, #0xC]\n\ + add r2, #0x1\n\ + str r2, [r6]\n\ + lsl r0, #24\n\ + lsr r0, #28\n\ + ldrb r2, [r6, #0xD]\n\ + lsl r1, r2, #28\n\ + lsr r1, #28\n\ + lsr r2, #4\n\ + b _08005A06\n\ _08005982:\n\ - ldr r1, [r6]\n\ - ldrb r2, [r1]\n\ - mov r0, #0xF\n\ - and r0, r2\n\ - ldrb r3, [r6, #0xD]\n\ - mov r2, #0x10\n\ - neg r2, r2\n\ - and r2, r3\n\ - orr r2, r0\n\ - strb r2, [r6, #0xD]\n\ - add r1, #0x1\n\ - str r1, [r6]\n\ - ldrb r0, [r6, #0xC]\n\ - lsr r0, #4\n\ - lsl r1, r2, #28\n\ - lsr r1, #28\n\ - lsr r2, #4\n\ - b _08005A06\n\ + ldr r1, [r6]\n\ + ldrb r2, [r1]\n\ + mov r0, #0xF\n\ + and r0, r2\n\ + ldrb r3, [r6, #0xD]\n\ + mov r2, #0x10\n\ + neg r2, r2\n\ + and r2, r3\n\ + orr r2, r0\n\ + strb r2, [r6, #0xD]\n\ + add r1, #0x1\n\ + str r1, [r6]\n\ + ldrb r0, [r6, #0xC]\n\ + lsr r0, #4\n\ + lsl r1, r2, #28\n\ + lsr r1, #28\n\ + lsr r2, #4\n\ + b _08005A06\n\ _080059A6:\n\ - ldr r1, [r6]\n\ - ldrb r0, [r1]\n\ - lsl r0, #4\n\ - ldrb r3, [r6, #0xD]\n\ - mov r2, #0xF\n\ - and r2, r3\n\ - orr r2, r0\n\ - strb r2, [r6, #0xD]\n\ - add r1, #0x1\n\ - str r1, [r6]\n\ - ldrb r0, [r6, #0xC]\n\ - lsr r0, #4\n\ - b _080059FE\n\ + ldr r1, [r6]\n\ + ldrb r0, [r1]\n\ + lsl r0, #4\n\ + ldrb r3, [r6, #0xD]\n\ + mov r2, #0xF\n\ + and r2, r3\n\ + orr r2, r0\n\ + strb r2, [r6, #0xD]\n\ + add r1, #0x1\n\ + str r1, [r6]\n\ + ldrb r0, [r6, #0xC]\n\ + lsr r0, #4\n\ + b _080059FE\n\ _080059C0:\n\ - ldr r3, [r6]\n\ - ldrb r1, [r3]\n\ - lsl r1, #4\n\ - ldrb r4, [r6, #0xC]\n\ - mov r2, #0xF\n\ - add r0, r2, #0\n\ - and r0, r4\n\ - orr r0, r1\n\ - strb r0, [r6, #0xC]\n\ - add r5, r3, #0x1\n\ - str r5, [r6]\n\ - ldrb r3, [r3, #0x1]\n\ - add r1, r2, #0\n\ - and r1, r3\n\ - ldrb r4, [r6, #0xD]\n\ - mov r3, #0x10\n\ - neg r3, r3\n\ - and r3, r4\n\ - orr r3, r1\n\ - strb r3, [r6, #0xD]\n\ - add r4, r5, #0x1\n\ - str r4, [r6]\n\ - ldrb r1, [r5, #0x1]\n\ - lsl r1, #4\n\ - and r2, r3\n\ - orr r2, r1\n\ - strb r2, [r6, #0xD]\n\ - add r4, #0x1\n\ - str r4, [r6]\n\ - lsl r0, #24\n\ - lsr r0, #28\n\ + ldr r3, [r6]\n\ + ldrb r1, [r3]\n\ + lsl r1, #4\n\ + ldrb r4, [r6, #0xC]\n\ + mov r2, #0xF\n\ + add r0, r2, #0\n\ + and r0, r4\n\ + orr r0, r1\n\ + strb r0, [r6, #0xC]\n\ + add r5, r3, #0x1\n\ + str r5, [r6]\n\ + ldrb r3, [r3, #0x1]\n\ + add r1, r2, #0\n\ + and r1, r3\n\ + ldrb r4, [r6, #0xD]\n\ + mov r3, #0x10\n\ + neg r3, r3\n\ + and r3, r4\n\ + orr r3, r1\n\ + strb r3, [r6, #0xD]\n\ + add r4, r5, #0x1\n\ + str r4, [r6]\n\ + ldrb r1, [r5, #0x1]\n\ + lsl r1, #4\n\ + and r2, r3\n\ + orr r2, r1\n\ + strb r2, [r6, #0xD]\n\ + add r4, #0x1\n\ + str r4, [r6]\n\ + lsl r0, #24\n\ + lsr r0, #28\n\ _080059FE:\n\ - lsl r1, r2, #28\n\ - lsr r1, #28\n\ - lsl r2, #24\n\ - lsr r2, #28\n\ + lsl r1, r2, #28\n\ + lsr r1, #28\n\ + lsl r2, #24\n\ + lsr r2, #28\n\ _08005A06:\n\ - bl GenerateFontHalfRowLookupTable\n\ + bl GenerateFontHalfRowLookupTable\n\ _08005A0A:\n\ - mov r0, #0x2\n\ - b _08005D6E\n\ + mov r0, #0x2\n\ + b _08005D6E\n\ _08005A0E:\n\ - ldr r0, [r6]\n\ - b _08005B30\n\ + ldr r0, [r6]\n\ + b _08005B30\n\ _08005A12:\n\ - ldr r0, [r6]\n\ - ldrb r0, [r0]\n\ - mov r1, #0xF\n\ - and r1, r0\n\ - ldrb r2, [r4]\n\ - mov r0, #0x10\n\ - neg r0, r0\n\ - and r0, r2\n\ - orr r0, r1\n\ - strb r0, [r4]\n\ - ldr r0, [r6]\n\ - b _08005B30\n\ + ldr r0, [r6]\n\ + ldrb r0, [r0]\n\ + mov r1, #0xF\n\ + and r1, r0\n\ + ldrb r2, [r4]\n\ + mov r0, #0x10\n\ + neg r0, r0\n\ + and r0, r2\n\ + orr r0, r1\n\ + strb r0, [r4]\n\ + ldr r0, [r6]\n\ + b _08005B30\n\ _08005A2A:\n\ - ldr r0, [r6]\n\ - ldrb r1, [r0]\n\ - strb r1, [r6, #0x1E]\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - mov r0, #0x6\n\ - strb r0, [r6, #0x1C]\n\ - b _08005A0A\n\ + ldr r0, [r6]\n\ + ldrb r1, [r0]\n\ + strb r1, [r6, #0x1E]\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + mov r0, #0x6\n\ + strb r0, [r6, #0x1C]\n\ + b _08005A0A\n\ _08005A3A:\n\ - mov r0, #0x1\n\ - strb r0, [r6, #0x1C]\n\ - ldr r0, =gTextFlags\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r1\n\ - cmp r0, #0\n\ - bne _08005A4C\n\ - b _08005B56\n\ + mov r0, #0x1\n\ + strb r0, [r6, #0x1C]\n\ + ldr r0, =gTextFlags\n\ + ldrb r1, [r0]\n\ + mov r0, #0x4\n\ + and r0, r1\n\ + cmp r0, #0\n\ + bne _08005A4C\n\ + b _08005B56\n\ _08005A4C:\n\ - mov r0, #0\n\ - strb r0, [r4, #0x2]\n\ - b _08005B56\n\ - .pool\n\ + mov r0, #0\n\ + strb r0, [r4, #0x2]\n\ + b _08005B56\n\ + .pool\n\ _08005A58:\n\ - mov r0, #0x5\n\ - b _08005D56\n\ + mov r0, #0x5\n\ + b _08005D56\n\ _08005A5C:\n\ - ldr r0, [r6]\n\ - ldrb r3, [r0]\n\ - add r1, r0, #0x1\n\ - str r1, [r6]\n\ - ldrb r0, [r0, #0x1]\n\ - lsl r0, #8\n\ - orr r3, r0\n\ - add r1, #0x1\n\ - str r1, [r6]\n\ - add r0, r3, #0\n\ - bl PlayBGM\n\ - b _08005A0A\n\ + ldr r0, [r6]\n\ + ldrb r3, [r0]\n\ + add r1, r0, #0x1\n\ + str r1, [r6]\n\ + ldrb r0, [r0, #0x1]\n\ + lsl r0, #8\n\ + orr r3, r0\n\ + add r1, #0x1\n\ + str r1, [r6]\n\ + add r0, r3, #0\n\ + bl PlayBGM\n\ + b _08005A0A\n\ _08005A76:\n\ - ldr r0, [r6]\n\ - ldrb r3, [r0]\n\ - add r1, r0, #0x1\n\ - str r1, [r6]\n\ - ldrb r0, [r0, #0x1]\n\ - lsl r0, #8\n\ - orr r3, r0\n\ - add r1, #0x1\n\ - str r1, [r6]\n\ - add r0, r3, #0\n\ - bl PlaySE\n\ - b _08005A0A\n\ + ldr r0, [r6]\n\ + ldrb r3, [r0]\n\ + add r1, r0, #0x1\n\ + str r1, [r6]\n\ + ldrb r0, [r0, #0x1]\n\ + lsl r0, #8\n\ + orr r3, r0\n\ + add r1, #0x1\n\ + str r1, [r6]\n\ + add r0, r3, #0\n\ + bl PlaySE\n\ + b _08005A0A\n\ _08005A90:\n\ - ldr r1, [r6]\n\ - ldrb r0, [r1]\n\ - ldrb r3, [r6, #0x6]\n\ - b _08005AF8\n\ + ldr r1, [r6]\n\ + ldrb r0, [r1]\n\ + ldrb r3, [r6, #0x6]\n\ + b _08005AF8\n\ _08005A98:\n\ - ldr r1, [r6]\n\ - ldrb r0, [r1]\n\ - ldrb r2, [r6, #0x7]\n\ - add r0, r2\n\ - strb r0, [r6, #0x9]\n\ - b _08005AFC\n\ + ldr r1, [r6]\n\ + ldrb r0, [r1]\n\ + ldrb r2, [r6, #0x7]\n\ + add r0, r2\n\ + strb r0, [r6, #0x9]\n\ + b _08005AFC\n\ _08005AA4:\n\ - ldrb r0, [r6, #0x4]\n\ - ldrb r2, [r6, #0xD]\n\ - lsl r2, #28\n\ - lsr r1, r2, #4\n\ - orr r1, r2\n\ - lsr r1, #24\n\ - bl FillWindowPixelBuffer\n\ - ldrb r0, [r6, #0x6]\n\ - strb r0, [r6, #0x8]\n\ - ldrb r0, [r6, #0x7]\n\ + ldrb r0, [r6, #0x4]\n\ + ldrb r2, [r6, #0xD]\n\ + lsl r2, #28\n\ + lsr r1, r2, #4\n\ + orr r1, r2\n\ + lsr r1, #24\n\ + bl FillWindowPixelBuffer\n\ + ldrb r0, [r6, #0x6]\n\ + strb r0, [r6, #0x8]\n\ + ldrb r0, [r6, #0x7]\n\ _08005ABA:\n\ - strb r0, [r6, #0x9]\n\ - b _08005A0A\n\ + strb r0, [r6, #0x9]\n\ + b _08005A0A\n\ _08005ABE:\n\ - ldr r0, =gMPlayInfo_BGM\n\ - bl m4aMPlayStop\n\ - b _08005A0A\n\ - .pool\n\ + ldr r0, =gMPlayInfo_BGM\n\ + bl m4aMPlayStop\n\ + b _08005A0A\n\ + .pool\n\ _08005ACC:\n\ - ldr r0, =gMPlayInfo_BGM\n\ - bl m4aMPlayContinue\n\ - b _08005A0A\n\ - .pool\n\ + ldr r0, =gMPlayInfo_BGM\n\ + bl m4aMPlayContinue\n\ + b _08005A0A\n\ + .pool\n\ _08005AD8:\n\ - ldr r0, [r6]\n\ - ldrb r4, [r0]\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - cmp r4, #0\n\ - ble _08005A0A\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - bl ClearTextSpan\n\ - ldrb r0, [r6, #0x8]\n\ - add r0, r4\n\ - b _08005C6E\n\ + ldr r0, [r6]\n\ + ldrb r4, [r0]\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + cmp r4, #0\n\ + ble _08005A0A\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + bl ClearTextSpan\n\ + ldrb r0, [r6, #0x8]\n\ + add r0, r4\n\ + b _08005C6E\n\ _08005AF2:\n\ - ldr r1, [r6]\n\ - ldrb r0, [r6, #0x6]\n\ - ldrb r3, [r1]\n\ + ldr r1, [r6]\n\ + ldrb r0, [r6, #0x6]\n\ + ldrb r3, [r1]\n\ _08005AF8:\n\ - add r0, r3\n\ - strb r0, [r6, #0x8]\n\ + add r0, r3\n\ + strb r0, [r6, #0x8]\n\ _08005AFC:\n\ - add r1, #0x1\n\ - str r1, [r6]\n\ - b _08005A0A\n\ + add r1, #0x1\n\ + str r1, [r6]\n\ + b _08005A0A\n\ _08005B02:\n\ - ldr r0, [r6]\n\ - ldrb r2, [r0]\n\ - ldrb r1, [r6, #0x6]\n\ - add r2, r1\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - ldrb r0, [r6, #0x8]\n\ - sub r4, r2, r0\n\ - cmp r4, #0\n\ - bgt _08005B18\n\ - b _08005A0A\n\ + ldr r0, [r6]\n\ + ldrb r2, [r0]\n\ + ldrb r1, [r6, #0x6]\n\ + add r2, r1\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + ldrb r0, [r6, #0x8]\n\ + sub r4, r2, r0\n\ + cmp r4, #0\n\ + bgt _08005B18\n\ + b _08005A0A\n\ _08005B18:\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - bl ClearTextSpan\n\ - ldrb r0, [r6, #0x8]\n\ - add r0, r4\n\ - b _08005C6E\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + bl ClearTextSpan\n\ + ldrb r0, [r6, #0x8]\n\ + add r0, r4\n\ + b _08005C6E\n\ _08005B26:\n\ - ldr r0, [r6]\n\ - ldrb r2, [r0]\n\ - add r1, r6, #0\n\ - add r1, #0x20\n\ - strb r2, [r1]\n\ + ldr r0, [r6]\n\ + ldrb r2, [r0]\n\ + add r1, r6, #0\n\ + add r1, #0x20\n\ + strb r2, [r1]\n\ _08005B30:\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - b _08005A0A\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + b _08005A0A\n\ _08005B36:\n\ - add r1, r6, #0\n\ - add r1, #0x21\n\ - mov r0, #0x1\n\ - b _08005B44\n\ + add r1, r6, #0\n\ + add r1, #0x21\n\ + mov r0, #0x1\n\ + b _08005B44\n\ _08005B3E:\n\ - add r1, r6, #0\n\ - add r1, #0x21\n\ - mov r0, #0\n\ + add r1, r6, #0\n\ + add r1, #0x21\n\ + mov r0, #0\n\ _08005B44:\n\ - strb r0, [r1]\n\ - b _08005A0A\n\ + strb r0, [r1]\n\ + b _08005A0A\n\ _08005B48:\n\ - mov r0, #0x2\n\ - b _08005B4E\n\ + mov r0, #0x2\n\ + b _08005B4E\n\ _08005B4C:\n\ - mov r0, #0x3\n\ + mov r0, #0x3\n\ _08005B4E:\n\ - strb r0, [r6, #0x1C]\n\ - add r0, r6, #0\n\ - bl TextPrinterInitDownArrowCounters\n\ + strb r0, [r6, #0x1C]\n\ + add r0, r6, #0\n\ + bl TextPrinterInitDownArrowCounters\n\ _08005B56:\n\ - mov r0, #0x3\n\ - b _08005D6E\n\ + mov r0, #0x3\n\ + b _08005D6E\n\ _08005B5A:\n\ - ldr r0, [r6]\n\ - ldrb r3, [r0]\n\ - mov r2, #0x80\n\ - lsl r2, #1\n\ - add r1, r2, #0\n\ - orr r3, r1\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - b _08005B90\n\ + ldr r0, [r6]\n\ + ldrb r3, [r0]\n\ + mov r2, #0x80\n\ + lsl r2, #1\n\ + add r1, r2, #0\n\ + orr r3, r1\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + b _08005B90\n\ _08005B6C:\n\ - ldr r0, [r6]\n\ - ldrb r3, [r0]\n\ - add r0, #0x1\n\ - str r0, [r6]\n\ - ldrb r0, [r6, #0x4]\n\ - add r1, r3, #0\n\ - ldrb r2, [r6, #0x8]\n\ - ldrb r3, [r6, #0x9]\n\ - bl DrawKeypadIcon\n\ - ldr r1, =gUnknown_03002F90\n\ - add r1, #0x80\n\ - strb r0, [r1]\n\ - ldrb r3, [r6, #0xA]\n\ - add r0, r3\n\ - b _08005C6A\n\ - .pool\n\ + ldr r0, [r6]\n\ + ldrb r3, [r0]\n\ + add r0, #0x1\n\ + str r0, [r6]\n\ + ldrb r0, [r6, #0x4]\n\ + add r1, r3, #0\n\ + ldrb r2, [r6, #0x8]\n\ + ldrb r3, [r6, #0x9]\n\ + bl DrawKeypadIcon\n\ + ldr r1, =gUnknown_03002F90\n\ + add r1, #0x80\n\ + strb r0, [r1]\n\ + ldrb r3, [r6, #0xA]\n\ + add r0, r3\n\ + b _08005C6A\n\ + .pool\n\ _08005B90:\n\ - ldr r0, [r4]\n\ - lsl r0, #28\n\ - lsr r0, #28\n\ - cmp r0, #0x8\n\ - bhi _08005C10\n\ - lsl r0, #2\n\ - ldr r1, =_08005BA8\n\ - add r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ + ldr r0, [r4]\n\ + lsl r0, #28\n\ + lsr r0, #28\n\ + cmp r0, #0x8\n\ + bhi _08005C10\n\ + lsl r0, #2\n\ + ldr r1, =_08005BA8\n\ + add r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ _08005BA8:\n\ - .4byte _08005BCC\n\ - .4byte _08005BDA\n\ - .4byte _08005BE8\n\ - .4byte _08005BE8\n\ - .4byte _08005BE8\n\ - .4byte _08005BE8\n\ - .4byte _08005C10\n\ - .4byte _08005BF6\n\ - .4byte _08005C04\n\ + .4byte _08005BCC\n\ + .4byte _08005BDA\n\ + .4byte _08005BE8\n\ + .4byte _08005BE8\n\ + .4byte _08005BE8\n\ + .4byte _08005BE8\n\ + .4byte _08005C10\n\ + .4byte _08005BF6\n\ + .4byte _08005C04\n\ _08005BCC:\n\ - add r0, r6, #0\n\ - add r0, #0x21\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - bl DecompressGlyphFont0\n\ - b _08005C10\n\ + add r0, r6, #0\n\ + add r0, #0x21\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + bl DecompressGlyphFont0\n\ + b _08005C10\n\ _08005BDA:\n\ - add r0, r6, #0\n\ - add r0, #0x21\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - bl DecompressGlyphFont1\n\ - b _08005C10\n\ + add r0, r6, #0\n\ + add r0, #0x21\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + bl DecompressGlyphFont1\n\ + b _08005C10\n\ _08005BE8:\n\ - add r0, r6, #0\n\ - add r0, #0x21\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - bl DecompressGlyphFont2\n\ - b _08005C10\n\ + add r0, r6, #0\n\ + add r0, #0x21\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + bl DecompressGlyphFont2\n\ + b _08005C10\n\ _08005BF6:\n\ - add r0, r6, #0\n\ - add r0, #0x21\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - bl DecompressGlyphFont7\n\ - b _08005C10\n\ + add r0, r6, #0\n\ + add r0, #0x21\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + bl DecompressGlyphFont7\n\ + b _08005C10\n\ _08005C04:\n\ - add r0, r6, #0\n\ - add r0, #0x21\n\ - ldrb r1, [r0]\n\ - add r0, r3, #0\n\ - bl DecompressGlyphFont8\n\ + add r0, r6, #0\n\ + add r0, #0x21\n\ + ldrb r1, [r0]\n\ + add r0, r3, #0\n\ + bl DecompressGlyphFont8\n\ _08005C10:\n\ - add r0, r6, #0\n\ - bl CopyGlyphToWindow\n\ - add r2, r6, #0\n\ - add r2, #0x20\n\ - ldrb r0, [r2]\n\ - cmp r0, #0\n\ - beq _08005C48\n\ - ldr r1, =gUnknown_03002F90\n\ - add r1, #0x80\n\ - ldrb r0, [r1]\n\ - ldrb r3, [r6, #0x8]\n\ - add r0, r3\n\ - strb r0, [r6, #0x8]\n\ - ldrb r2, [r2]\n\ - ldrb r0, [r1]\n\ - sub r4, r2, r0\n\ - cmp r4, #0\n\ - ble _08005C70\n\ - add r0, r6, #0\n\ - add r1, r4, #0\n\ - bl ClearTextSpan\n\ - ldrb r0, [r6, #0x8]\n\ - add r0, r4\n\ - b _08005C6E\n\ - .pool\n\ + add r0, r6, #0\n\ + bl CopyGlyphToWindow\n\ + add r2, r6, #0\n\ + add r2, #0x20\n\ + ldrb r0, [r2]\n\ + cmp r0, #0\n\ + beq _08005C48\n\ + ldr r1, =gUnknown_03002F90\n\ + add r1, #0x80\n\ + ldrb r0, [r1]\n\ + ldrb r3, [r6, #0x8]\n\ + add r0, r3\n\ + strb r0, [r6, #0x8]\n\ + ldrb r2, [r2]\n\ + ldrb r0, [r1]\n\ + sub r4, r2, r0\n\ + cmp r4, #0\n\ + ble _08005C70\n\ + add r0, r6, #0\n\ + add r1, r4, #0\n\ + bl ClearTextSpan\n\ + ldrb r0, [r6, #0x8]\n\ + add r0, r4\n\ + b _08005C6E\n\ + .pool\n\ _08005C48:\n\ - add r0, r6, #0\n\ - add r0, #0x21\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq _08005C64\n\ - ldr r0, =gUnknown_03002F90\n\ - add r0, #0x80\n\ - ldrb r1, [r6, #0xA]\n\ - ldrb r0, [r0]\n\ - add r1, r0\n\ - ldrb r0, [r6, #0x8]\n\ - b _08005C6C\n\ - .pool\n\ + add r0, r6, #0\n\ + add r0, #0x21\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq _08005C64\n\ + ldr r0, =gUnknown_03002F90\n\ + add r0, #0x80\n\ + ldrb r1, [r6, #0xA]\n\ + ldrb r0, [r0]\n\ + add r1, r0\n\ + ldrb r0, [r6, #0x8]\n\ + b _08005C6C\n\ + .pool\n\ _08005C64:\n\ - ldr r0, =gUnknown_03002F90\n\ - add r0, #0x80\n\ - ldrb r0, [r0]\n\ + ldr r0, =gUnknown_03002F90\n\ + add r0, #0x80\n\ + ldrb r0, [r0]\n\ _08005C6A:\n\ - ldrb r1, [r6, #0x8]\n\ + ldrb r1, [r6, #0x8]\n\ _08005C6C:\n\ - add r0, r1\n\ + add r0, r1\n\ _08005C6E:\n\ - strb r0, [r6, #0x8]\n\ + strb r0, [r6, #0x8]\n\ _08005C70:\n\ - mov r0, #0\n\ - b _08005D6E\n\ - .pool\n\ + mov r0, #0\n\ + b _08005D6E\n\ + .pool\n\ _08005C78:\n\ - add r0, r6, #0\n\ - bl TextPrinterWait\n\ - lsl r0, #16\n\ - cmp r0, #0\n\ - bne _08005C86\n\ - b _08005B56\n\ + add r0, r6, #0\n\ + bl TextPrinterWait\n\ + lsl r0, #16\n\ + cmp r0, #0\n\ + bne _08005C86\n\ + b _08005B56\n\ _08005C86:\n\ - mov r0, #0\n\ - strb r0, [r6, #0x1C]\n\ - b _08005B56\n\ + mov r0, #0\n\ + strb r0, [r6, #0x1C]\n\ + b _08005B56\n\ _08005C8C:\n\ - add r0, r6, #0\n\ - bl TextPrinterWaitWithDownArrow\n\ - lsl r0, #16\n\ - cmp r0, #0\n\ - bne _08005C9A\n\ - b _08005B56\n\ + add r0, r6, #0\n\ + bl TextPrinterWaitWithDownArrow\n\ + lsl r0, #16\n\ + cmp r0, #0\n\ + bne _08005C9A\n\ + b _08005B56\n\ _08005C9A:\n\ - ldrb r0, [r6, #0x4]\n\ - ldrb r2, [r6, #0xD]\n\ - lsl r2, #28\n\ - lsr r1, r2, #4\n\ - orr r1, r2\n\ - lsr r1, #24\n\ - bl FillWindowPixelBuffer\n\ - ldrb r0, [r6, #0x6]\n\ - mov r1, #0\n\ - strb r0, [r6, #0x8]\n\ - ldrb r0, [r6, #0x7]\n\ - strb r0, [r6, #0x9]\n\ - strb r1, [r6, #0x1C]\n\ - b _08005B56\n\ + ldrb r0, [r6, #0x4]\n\ + ldrb r2, [r6, #0xD]\n\ + lsl r2, #28\n\ + lsr r1, r2, #4\n\ + orr r1, r2\n\ + lsr r1, #24\n\ + bl FillWindowPixelBuffer\n\ + ldrb r0, [r6, #0x6]\n\ + mov r1, #0\n\ + strb r0, [r6, #0x8]\n\ + ldrb r0, [r6, #0x7]\n\ + strb r0, [r6, #0x9]\n\ + strb r1, [r6, #0x1C]\n\ + b _08005B56\n\ _08005CB8:\n\ - add r0, r6, #0\n\ - bl TextPrinterWaitWithDownArrow\n\ - lsl r0, #16\n\ - cmp r0, #0\n\ - bne _08005CC6\n\ - b _08005B56\n\ + add r0, r6, #0\n\ + bl TextPrinterWaitWithDownArrow\n\ + lsl r0, #16\n\ + cmp r0, #0\n\ + bne _08005CC6\n\ + b _08005B56\n\ _08005CC6:\n\ - add r0, r6, #0\n\ - bl TextPrinterClearDownArrow\n\ - ldrb r1, [r6, #0x5]\n\ - ldr r0, =gFonts\n\ - ldr r2, [r0]\n\ - lsl r0, r1, #1\n\ - add r0, r1\n\ - lsl r0, #2\n\ - add r0, r2\n\ - ldrb r1, [r6, #0xB]\n\ - ldrb r0, [r0, #0x5]\n\ - add r1, r0\n\ - strb r1, [r6, #0x1F]\n\ - ldrb r0, [r6, #0x6]\n\ - strb r0, [r6, #0x8]\n\ - mov r0, #0x4\n\ - strb r0, [r6, #0x1C]\n\ - b _08005B56\n\ - .pool\n\ + add r0, r6, #0\n\ + bl TextPrinterClearDownArrow\n\ + ldrb r1, [r6, #0x5]\n\ + ldr r0, =gFonts\n\ + ldr r2, [r0]\n\ + lsl r0, r1, #1\n\ + add r0, r1\n\ + lsl r0, #2\n\ + add r0, r2\n\ + ldrb r1, [r6, #0xB]\n\ + ldrb r0, [r0, #0x5]\n\ + add r1, r0\n\ + strb r1, [r6, #0x1F]\n\ + ldrb r0, [r6, #0x6]\n\ + strb r0, [r6, #0x8]\n\ + mov r0, #0x4\n\ + strb r0, [r6, #0x1C]\n\ + b _08005B56\n\ + .pool\n\ _08005CF0:\n\ - ldrb r0, [r6, #0x1F]\n\ - cmp r0, #0\n\ - beq _08005D44\n\ - bl sub_8197964\n\ - ldr r1, =gWindowVerticalScrollSpeeds\n\ - add r0, r1\n\ - ldrb r4, [r0]\n\ - ldrb r2, [r6, #0x1F]\n\ - cmp r2, r4\n\ - bge _08005D20\n\ - ldrb r0, [r6, #0x4]\n\ - ldrb r1, [r6, #0xD]\n\ - lsl r1, #28\n\ - lsr r3, r1, #4\n\ - orr r3, r1\n\ - lsr r3, #24\n\ - mov r1, #0\n\ - bl ScrollWindow\n\ - mov r0, #0\n\ - b _08005D38\n\ - .pool\n\ + ldrb r0, [r6, #0x1F]\n\ + cmp r0, #0\n\ + beq _08005D44\n\ + bl sub_8197964\n\ + ldr r1, =gWindowVerticalScrollSpeeds\n\ + add r0, r1\n\ + ldrb r4, [r0]\n\ + ldrb r2, [r6, #0x1F]\n\ + cmp r2, r4\n\ + bge _08005D20\n\ + ldrb r0, [r6, #0x4]\n\ + ldrb r1, [r6, #0xD]\n\ + lsl r1, #28\n\ + lsr r3, r1, #4\n\ + orr r3, r1\n\ + lsr r3, #24\n\ + mov r1, #0\n\ + bl ScrollWindow\n\ + mov r0, #0\n\ + b _08005D38\n\ + .pool\n\ _08005D20:\n\ - ldrb r0, [r6, #0x4]\n\ - ldrb r1, [r6, #0xD]\n\ - lsl r1, #28\n\ - lsr r3, r1, #4\n\ - orr r3, r1\n\ - lsr r3, #24\n\ - mov r1, #0\n\ - add r2, r4, #0\n\ - bl ScrollWindow\n\ - ldrb r0, [r6, #0x1F]\n\ - sub r0, r4\n\ + ldrb r0, [r6, #0x4]\n\ + ldrb r1, [r6, #0xD]\n\ + lsl r1, #28\n\ + lsr r3, r1, #4\n\ + orr r3, r1\n\ + lsr r3, #24\n\ + mov r1, #0\n\ + add r2, r4, #0\n\ + bl ScrollWindow\n\ + ldrb r0, [r6, #0x1F]\n\ + sub r0, r4\n\ _08005D38:\n\ - strb r0, [r6, #0x1F]\n\ - ldrb r0, [r6, #0x4]\n\ - mov r1, #0x2\n\ - bl CopyWindowToVram\n\ - b _08005B56\n\ + strb r0, [r6, #0x1F]\n\ + ldrb r0, [r6, #0x4]\n\ + mov r1, #0x2\n\ + bl CopyWindowToVram\n\ + b _08005B56\n\ _08005D44:\n\ - strb r0, [r6, #0x1C]\n\ - b _08005B56\n\ + strb r0, [r6, #0x1C]\n\ + b _08005B56\n\ _08005D48:\n\ - bl IsSEPlaying\n\ - lsl r0, #24\n\ - lsr r0, #24\n\ - cmp r0, #0\n\ - beq _08005D56\n\ - b _08005B56\n\ + bl IsSEPlaying\n\ + lsl r0, #24\n\ + lsr r0, #24\n\ + cmp r0, #0\n\ + beq _08005D56\n\ + b _08005B56\n\ _08005D56:\n\ - strb r0, [r6, #0x1C]\n\ - b _08005B56\n\ + strb r0, [r6, #0x1C]\n\ + b _08005B56\n\ _08005D5A:\n\ - ldrb r0, [r6, #0x1E]\n\ - add r1, r0, #0\n\ - cmp r1, #0\n\ - beq _08005D68\n\ - sub r0, #0x1\n\ - strb r0, [r6, #0x1E]\n\ - b _08005B56\n\ + ldrb r0, [r6, #0x1E]\n\ + add r1, r0, #0\n\ + cmp r1, #0\n\ + beq _08005D68\n\ + sub r0, #0x1\n\ + strb r0, [r6, #0x1E]\n\ + b _08005B56\n\ _08005D68:\n\ - strb r1, [r6, #0x1C]\n\ - b _08005B56\n\ + strb r1, [r6, #0x1C]\n\ + b _08005B56\n\ _08005D6C:\n\ - mov r0, #0x1\n\ + mov r0, #0x1\n\ _08005D6E:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1"); + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1\n"); } +#endif u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) { -- cgit v1.2.3 From 95827ab64bc2fe148a3c52b0c341002deec72b0e Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 27 Jan 2018 11:57:46 +0100 Subject: more pokemon anim functions decompiled --- asm/pokemon_animation.s | 3209 ---------------------------------------------- data/pokemon_animation.s | 10 - include/blend_palette.h | 10 +- src/pokemon_animation.c | 1310 ++++++++++++++++++- 4 files changed, 1309 insertions(+), 3230 deletions(-) diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index b45d5258b..562300f3f 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -7,3215 +7,6 @@ - thumb_func_start sub_8180714 -sub_8180714: @ 8180714 - push {r4-r6,lr} - adds r4, r0, 0 - movs r6, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0818072A - adds r0, r4, 0 - bl HandleStartAffineAnim - strh r6, [r4, 0x34] -_0818072A: - adds r0, r4, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - cmp r2, r0 - ble _08180760 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - strh r6, [r4, 0x26] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _081807FE - .pool -_08180760: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08180796 - adds r2, r0, 0 - lsls r0, r2, 1 - cmp r1, r0 - bge _08180796 - movs r0, 0x80 - adds r1, r2, 0 - bl __divsi3 - ldrh r1, [r4, 0x34] - adds r1, r0 - strh r1, [r4, 0x34] -_08180796: - lsls r0, r5, 16 - asrs r1, r0, 16 - movs r2, 0x80 - lsls r2, 1 - adds r5, r0, 0 - cmp r1, r2 - ble _081807B0 - subs r0, r2, r1 - cmp r0, 0 - bge _081807AC - adds r0, 0x7 -_081807AC: - lsls r0, 13 - lsrs r6, r0, 16 -_081807B0: - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - negs r0, r0 - lsls r1, r6, 16 - asrs r1, 16 - subs r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0x20 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - asrs r2, r5, 16 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x80 - bl __divsi3 - ldrh r1, [r4, 0x36] - adds r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x36] -_081807FE: - adds r0, r4, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8180714 - - thumb_func_start pokemonanimfunc_00 -pokemonanimfunc_00: @ 818080C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x10 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8180714 - ldr r0, =sub_8180714 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_00 - - thumb_func_start sub_8180828 -sub_8180828: @ 8180828 - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 - movs r0, 0x32 - ldrsh r4, [r5, r0] - movs r2, 0x3A - ldrsh r1, [r5, r2] - movs r0, 0x80 - bl __divsi3 - movs r2, 0x3C - ldrsh r1, [r5, r2] - muls r0, r1 - cmp r4, r0 - ble _08180868 - movs r2, 0x80 - lsls r2, 1 - adds r0, r5, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - strh r6, [r5, 0x26] - adds r0, r5, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r5, 0x1C] - b _081808D0 - .pool -_08180868: - movs r1, 0x36 - ldrsh r0, [r5, r1] - movs r1, 0x20 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - ble _08180894 - subs r0, r1, r0 - cmp r0, 0 - bge _08180890 - adds r0, 0x7 -_08180890: - lsls r0, 13 - lsrs r6, r0, 16 -_08180894: - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r5, 0x26] - movs r1, 0x36 - ldrsh r0, [r5, r1] - movs r1, 0x30 - bl Sin - adds r1, r0, 0 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - lsls r2, r4, 16 - asrs r2, 16 - adds r0, r5, 0 - movs r3, 0 - bl HandleSetAffineData - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x3A] - ldrh r1, [r5, 0x36] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x36] -_081808D0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8180828 - - thumb_func_start pokemonanimfunc_13 -pokemonanimfunc_13: @ 81808D8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081808F2 - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x3 - strh r0, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x3A] -_081808F2: - adds r0, r4, 0 - bl sub_8180828 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_13 - - thumb_func_start sub_8180900 -sub_8180900: @ 8180900 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x2E] - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_03001240 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x6] - str r1, [sp] - ldr r5, =gUnknown_0860AD8E - movs r3, 0x36 - ldrsh r2, [r4, r3] - lsls r1, r2, 1 - adds r1, r2 - movs r3, 0x8 - ldrsh r2, [r0, r3] - lsls r0, r2, 1 - adds r0, r2 - lsls r6, r0, 3 - adds r1, r6 - adds r2, r1, r5 - adds r0, r5, 0x1 - adds r1, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - mov r9, r2 - subs r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldrh r7, [r4, 0x34] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0818096C - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_0818096C: - movs r2, 0x36 - ldrsh r1, [r4, r2] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r6 - adds r5, 0x2 - mov r8, r5 - adds r1, r0, r5 - movs r5, 0 - ldrsb r5, [r1, r5] - cmp r5, 0 - bne _081809B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08180A3A - .pool -_081809B0: - lsls r0, r7, 16 - asrs r5, r0, 16 - lsls r0, r5, 7 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - movs r1, 0xA - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - mov r3, r10 - lsls r0, r3, 16 - asrs r0, 16 - muls r0, r5 - movs r1, 0x36 - ldrsh r2, [r4, r1] - lsls r1, r2, 1 - adds r1, r2 - adds r1, r6 - add r1, r8 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - bl __divsi3 - add r0, r9 - strh r0, [r4, 0x24] - ldr r2, [sp] - lsls r0, r2, 16 - asrs r0, 16 - movs r3, 0x24 - ldrsh r1, [r4, r3] - muls r0, r1 - negs r0, r0 - cmp r0, 0 - bge _08180A04 - adds r0, 0x7 -_08180A04: - lsls r3, r0, 13 - lsrs r3, 16 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r6 - add r0, r8 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _08180A34 - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r0, 0 - b _08180A38 -_08180A34: - ldrh r0, [r4, 0x34] - adds r0, 0x1 -_08180A38: - strh r0, [r4, 0x34] -_08180A3A: - adds r0, r4, 0 - bl sub_817F70C - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8180900 - - thumb_func_start pokemonanimfunc_05 -pokemonanimfunc_05: @ 8180A50 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 5 - strh r0, [r1, 0x6] - ldrh r0, [r4, 0x3A] - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_8180900 - ldr r0, =sub_8180900 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_05 - - thumb_func_start pokemonanimfunc_20 -pokemonanimfunc_20: @ 8180A8C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08180AA8 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_08180AA8: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _08180ACC - ldrh r0, [r4, 0x3C] - ldr r3, =0x000002df - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08180AE8 - .pool -_08180ACC: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0xC - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - ldr r3, =0x000002df - movs r1, 0x10 - bl BlendPalette -_08180AE8: - ldrh r0, [r4, 0x32] - adds r0, 0x2 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_20 - - thumb_func_start pokemonanimfunc_21 -pokemonanimfunc_21: @ 8180AF8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08180B14 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_08180B14: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _08180B34 - ldrh r0, [r4, 0x3C] - movs r1, 0x10 - movs r2, 0 - movs r3, 0x1F - bl BlendPalette - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08180B50 - .pool -_08180B34: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0xC - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x10 - movs r3, 0x1F - bl BlendPalette -_08180B50: - ldrh r0, [r4, 0x32] - adds r0, 0x2 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_21 - - thumb_func_start pokemonanimfunc_22 -pokemonanimfunc_22: @ 8180B5C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08180B78 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_08180B78: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _08180B98 - ldrh r0, [r4, 0x3C] - movs r3, 0xF8 - lsls r3, 7 - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08180BB6 - .pool -_08180B98: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0xC - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0xF8 - lsls r3, 7 - movs r1, 0x10 - bl BlendPalette -_08180BB6: - ldrh r0, [r4, 0x32] - adds r0, 0x2 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_22 - - thumb_func_start pokemonanimfunc_23 -pokemonanimfunc_23: @ 8180BC4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08180BE0 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_08180BE0: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _08180C04 - ldrh r0, [r4, 0x3C] - ldr r3, =0x000003ff - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08180C20 - .pool -_08180C04: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0xC - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - ldr r3, =0x000003ff - movs r1, 0x10 - bl BlendPalette -_08180C20: - ldrh r0, [r4, 0x32] - adds r0, 0x2 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_23 - - thumb_func_start pokemonanimfunc_24 -pokemonanimfunc_24: @ 8180C30 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08180C4C - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - adds r0, r1 - strh r0, [r4, 0x3C] -_08180C4C: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x80 - ble _08180C70 - ldrh r0, [r4, 0x3C] - ldr r3, =0x00006018 - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08180C8C - .pool -_08180C70: - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0xC - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - ldr r3, =0x00006018 - movs r1, 0x10 - bl BlendPalette -_08180C8C: - ldrh r0, [r4, 0x32] - adds r0, 0x2 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_24 - - thumb_func_start pokemonanimfunc_25 -pokemonanimfunc_25: @ 8180C9C - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - ldr r0, =sub_8180CB4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_25 - - thumb_func_start sub_8180CB4 -sub_8180CB4: @ 8180CB4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08180CD6 - movs r0, 0x8 - strh r0, [r4, 0x24] - movs r0, 0x2 - strh r0, [r4, 0x3C] - ldr r0, =sub_8180CE8 - str r0, [r4, 0x1C] -_08180CD6: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180CB4 - - thumb_func_start sub_8180CE8 -sub_8180CE8: @ 8180CE8 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x3C] - subs r1, r0 - strh r1, [r4, 0x24] - adds r0, 0x1 - adds r2, r0, 0 - strh r0, [r4, 0x3C] - lsls r1, 16 - cmp r1, 0 - bgt _08180D32 - lsls r0, r2, 24 - lsrs r2, r0, 24 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x24] - ldr r5, =sub_8180D44 - movs r3, 0x8 - negs r3, r3 -_08180D14: - subs r0, r1, r2 - lsls r0, 16 - ldrh r1, [r4, 0x3A] - adds r1, 0x1 - strh r1, [r4, 0x3A] - adds r1, r2, 0x1 - lsls r1, 24 - lsrs r2, r1, 24 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, r3 - bgt _08180D14 - movs r0, 0x1 - strh r0, [r4, 0x38] - str r5, [r4, 0x1C] -_08180D32: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180CE8 - - thumb_func_start sub_8180D44 -sub_8180D44: @ 8180D44 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x3C] - subs r0, r1 - strh r0, [r4, 0x24] - adds r1, 0x1 - strh r1, [r4, 0x3C] - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl __divsi3 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x3A] - movs r3, 0x3A - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _08180D84 - strh r2, [r4, 0x38] -_08180D84: - movs r2, 0x80 - lsls r2, 1 - lsls r3, r5, 8 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r1, 0x8 - negs r1, r1 - cmp r0, r1 - bge _08180DAE - strh r1, [r4, 0x24] - movs r0, 0x2 - strh r0, [r4, 0x36] - movs r0, 0 - strh r0, [r4, 0x34] - strh r5, [r4, 0x32] - ldr r0, =sub_8180DC0 - str r0, [r4, 0x1C] -_08180DAE: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180D44 - - thumb_func_start sub_8180DC0 -sub_8180DC0: @ 8180DC0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0xB - ble _08180E08 - ldrh r0, [r4, 0x32] - subs r0, 0x2 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bge _08180DE2 - movs r0, 0 - strh r0, [r4, 0x32] -_08180DE2: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x32] - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08180E1C - ldr r0, =sub_8180E28 - str r0, [r4, 0x1C] - b _08180E1C - .pool -_08180E08: - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r2, 0x36 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x36] - adds r0, r1, 0x1 - strh r0, [r4, 0x34] -_08180E1C: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8180DC0 - - thumb_func_start sub_8180E28 -sub_8180E28: @ 8180E28 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - adds r0, 0x2 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _08180E4A - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08180E4A: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180E28 - - thumb_func_start pokemonanimfunc_26 -pokemonanimfunc_26: @ 8180E5C - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r0, 0 - strh r0, [r4, 0x34] - ldr r0, =sub_8180E78 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_26 - - thumb_func_start sub_8180E78 -sub_8180E78: @ 8180E78 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r0, 0x1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x24] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08180EA2 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _08180EA2 - movs r0, 0xA - strh r0, [r4, 0x34] -_08180EA2: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - ble _08180EBA - movs r1, 0 - movs r0, 0x8 - strh r0, [r4, 0x24] - ldr r0, =0x0000fff8 - strh r0, [r4, 0x26] - strh r1, [r4, 0x36] - ldr r0, =sub_8180ED0 - str r0, [r4, 0x1C] -_08180EBA: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180E78 - - thumb_func_start sub_8180ED0 -sub_8180ED0: @ 8180ED0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Cos - subs r0, 0x8 - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - subs r0, 0x8 - strh r0, [r4, 0x26] - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x3F - ble _08180F08 - movs r0, 0xA0 - strh r0, [r4, 0x32] - movs r0, 0xA - strh r0, [r4, 0x34] - ldr r0, =sub_8180F2C - str r0, [r4, 0x1C] -_08180F08: - ldrh r0, [r4, 0x36] - adds r0, 0x8 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _08180F1A - movs r0, 0x40 - strh r0, [r4, 0x36] -_08180F1A: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180ED0 - - thumb_func_start sub_8180F2C -sub_8180F2C: @ 8180F2C - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08180F44 - subs r0, r1, 0x1 - strh r0, [r4, 0x34] - b _08180F96 -_08180F44: - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Cos - subs r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x5 - bl Sin - negs r0, r0 - adds r0, 0x4 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - subs r0, 0x4 - strh r0, [r4, 0x32] - movs r0, 0x32 - ldrsh r3, [r4, r0] - subs r3, 0x20 - movs r2, 0x80 - lsls r2, 1 - lsls r3, 25 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bgt _08180F96 - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08180F96: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8180F2C - - thumb_func_start pokemonanimfunc_27 -pokemonanimfunc_27: @ 8180FA8 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _08180FBA - subs r0, r1, 0x1 - b _08180FFE -_08180FBA: - movs r2, 0 - movs r1, 0x36 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08180FC6 - movs r2, 0x1 -_08180FC6: - strh r2, [r3, 0x36] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - lsls r2, 2 - ldrb r1, [r0] - movs r4, 0x5 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - orrs r0, r2 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _08180FFC - ldrb r0, [r1] - adds r1, r4, 0 - ands r1, r0 - mov r2, r12 - strb r1, [r2] - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r3, 0x1C] -_08180FFC: - movs r0, 0x2 -_08180FFE: - strh r0, [r3, 0x34] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_27 - - thumb_func_start pokemonanimfunc_28 -pokemonanimfunc_28: @ 818100C - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - ldr r0, =sub_8181024 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_28 - - thumb_func_start sub_8181024 -sub_8181024: @ 8181024 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x26] - adds r1, 0x1 - strh r1, [r4, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _08181054 - ldr r0, =0x0000fff0 - strh r0, [r4, 0x24] - movs r0, 0x10 - strh r0, [r4, 0x26] - ldr r0, =sub_8181068 - str r0, [r4, 0x1C] - movs r0, 0xA0 - strh r0, [r4, 0x32] -_08181054: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181024 - - thumb_func_start sub_8181068 -sub_8181068: @ 8181068 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x32] - subs r0, 0x4 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x16 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x16 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r0, 0x32 - ldrsh r3, [r4, r0] - subs r3, 0x20 - movs r2, 0x80 - lsls r2, 1 - lsls r3, 25 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bgt _081810B2 - ldr r0, =sub_81810C4 - str r0, [r4, 0x1C] -_081810B2: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181068 - - thumb_func_start sub_81810C4 -sub_81810C4: @ 81810C4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x24] - subs r1, 0x1 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - lsls r1, 16 - cmp r1, 0 - bgt _081810E8 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_081810E8: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81810C4 - - thumb_func_start pokemonanimfunc_29 -pokemonanimfunc_29: @ 81810F8 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - ldr r0, =sub_8181110 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_29 - - thumb_func_start sub_8181110 -sub_8181110: @ 8181110 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x24] - adds r1, 0x1 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r0, 0x1 - strh r0, [r4, 0x26] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0xF - ble _08181134 - movs r0, 0 - strh r0, [r4, 0x32] - ldr r0, =sub_8181144 - str r0, [r4, 0x1C] -_08181134: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181110 - - thumb_func_start sub_8181144 -sub_8181144: @ 8181144 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x32] - adds r0, 0x10 - strh r0, [r4, 0x32] - ldrh r2, [r4, 0x24] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bgt _0818117C - ldr r0, =0x0000fff0 - strh r0, [r4, 0x24] - movs r0, 0x10 - strh r0, [r4, 0x26] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r0, =sub_81811A4 - str r0, [r4, 0x1C] - b _08181186 - .pool -_0818117C: - subs r0, r2, 0x2 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x2 - strh r0, [r4, 0x26] -_08181186: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x32] - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8181144 - - thumb_func_start sub_81811A4 -sub_81811A4: @ 81811A4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x24] - adds r1, 0x1 - movs r2, 0 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r0, 0x1 - strh r0, [r4, 0x26] - lsls r1, 16 - cmp r1, 0 - blt _081811CE - strh r2, [r4, 0x24] - strh r2, [r4, 0x26] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_081811CE: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81811A4 - - thumb_func_start pokemonanimfunc_2A -pokemonanimfunc_2A: @ 81811E0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x2 - strh r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_8181214 - ldr r0, =sub_8181214 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_2A - - thumb_func_start sub_8181214 -sub_8181214: @ 8181214 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, =gUnknown_03001240 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, 0 - beq _08181238 - subs r0, 0x1 - strh r0, [r1] - b _0818134A - .pool -_08181238: - adds r0, r4, 0 - bl sub_817F70C - ldrh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r5, [r4, r1] - cmp r5, 0 - bne _08181270 - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0, 0x2] - strh r0, [r4, 0x3C] - ldr r0, =0x0000ffff - strh r0, [r4, 0x34] - movs r0, 0x1 - negs r0, r0 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] - strh r5, [r4, 0x3A] -_08181270: - movs r3, 0x3C - ldrsh r1, [r4, r3] - movs r6, 0x34 - ldrsh r0, [r4, r6] - lsls r0, 1 - muls r1, r0 - ldrh r0, [r4, 0x24] - adds r1, r0 - strh r1, [r4, 0x24] - ldrh r2, [r4, 0x3C] - ldrh r0, [r4, 0x36] - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrh r6, [r4, 0x26] - adds r2, r0, r6 - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x3A] - adds r0, 0x8 - strh r0, [r4, 0x3A] - adds r1, 0xF - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x1E - bls _081812B8 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 4 - strh r0, [r4, 0x24] - movs r2, 0x34 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x34] - b _081812D4 - .pool -_081812B8: - adds r0, r2, 0 - adds r0, 0xF - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bls _081812DA - movs r3, 0x36 - ldrsh r0, [r4, r3] - lsls r0, 4 - strh r0, [r4, 0x26] - movs r6, 0x36 - ldrsh r0, [r4, r6] - negs r0, r0 - strh r0, [r4, 0x36] -_081812D4: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] -_081812DA: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _08181332 - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - bgt _08181332 - movs r3, 0 - strh r3, [r4, 0x24] - strh r3, [r4, 0x26] - ldr r5, =gUnknown_03001240 - movs r6, 0x2E - ldrsh r0, [r4, r6] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r2, [r1, 0x4] - movs r6, 0x4 - ldrsh r0, [r1, r6] - cmp r0, 0x1 - ble _08181328 - subs r0, r2, 0x1 - strh r0, [r1, 0x4] - strh r3, [r4, 0x38] - strh r3, [r4, 0x3A] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0xA - strh r1, [r0] - b _08181332 - .pool -_08181328: - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08181332: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3A] - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C -_0818134A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181214 - - thumb_func_start pokemonanimfunc_2B -pokemonanimfunc_2B: @ 8181354 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r0, 0 - strh r0, [r4, 0x3A] - strh r0, [r4, 0x3C] - ldr r0, =sub_8181370 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_2B - - thumb_func_start sub_8181370 -sub_8181370: @ 8181370 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x3A] - adds r0, 0x4 - strh r0, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - movs r1, 0xFF - ands r0, r1 - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0xC0 - ble _081813BA - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081813BA - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - b _081813D2 -_081813BA: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x40 - ble _081813DE - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081813DE - ldr r1, =0xffffff00 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 -_081813D2: - movs r3, 0 - bl HandleSetAffineData - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_081813DE: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _08181404 - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08181404: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181370 - - thumb_func_start pokemonanimfunc_2C -pokemonanimfunc_2C: @ 8181418 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08181442 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - strh r2, [r4, 0x3A] - strh r2, [r4, 0x38] - strh r2, [r4, 0x36] -_08181442: - ldr r1, =gUnknown_0860AA64 - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r2, r0, 1 - adds r0, r1, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08181464 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _081814CE - .pool -_08181464: - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _0818149A - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08181488 - ldrh r0, [r4, 0x3C] - ldr r3, =0x000003ff - movs r1, 0x10 - movs r2, 0x10 - bl BlendPalette - b _08181494 - .pool -_08181488: - ldrh r0, [r4, 0x3C] - ldr r3, =0x000003ff - movs r1, 0x10 - movs r2, 0 - bl BlendPalette -_08181494: - movs r0, 0 - strh r0, [r4, 0x36] - ldr r1, =gUnknown_0860AA64 -_0818149A: - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _081814C8 - movs r1, 0 - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - b _081814CE - .pool -_081814C8: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] -_081814CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_2C - - thumb_func_start sub_81814D4 -sub_81814D4: @ 81814D4 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _081814E6 - adds r0, r6, 0 - bl HandleStartAffineAnim -_081814E6: - adds r0, r6, 0 - bl sub_817F70C - ldr r4, =gUnknown_03001240 - movs r3, 0x2E - ldrsh r1, [r6, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r4 - movs r0, 0x32 - ldrsh r1, [r6, r0] - movs r3, 0x8 - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _0818154C - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - movs r3, 0 - strh r3, [r6, 0x24] - movs r0, 0x2E - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrh r2, [r1, 0x4] - movs r4, 0x4 - ldrsh r0, [r1, r4] - cmp r0, 0x1 - ble _0818153C - subs r0, r2, 0x1 - strh r0, [r1, 0x4] - strh r3, [r6, 0x32] - b _08181588 - .pool -_0818153C: - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r6, 0x1C] - b _08181588 - .pool -_0818154C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 8 - movs r3, 0x8 - ldrsh r1, [r2, r3] - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl Sin - negs r0, r0 - strh r0, [r6, 0x24] - movs r5, 0x80 - lsls r5, 1 - ldr r1, =0x00000ccc - adds r0, r4, 0 - bl Sin - adds r3, r0, 0 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r5, 0 - bl HandleSetAffineData -_08181588: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - adds r0, r6, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81814D4 - - thumb_func_start pokemonanimfunc_2D -pokemonanimfunc_2D: @ 81815A0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x32 - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_81814D4 - ldr r0, =sub_81814D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_2D - - thumb_func_start sub_81815D4 -sub_81815D4: @ 81815D4 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _081815E6 - adds r0, r6, 0 - bl HandleStartAffineAnim -_081815E6: - adds r0, r6, 0 - bl sub_817F70C - ldr r4, =gUnknown_03001240 - movs r3, 0x2E - ldrsh r1, [r6, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r4 - movs r0, 0x32 - ldrsh r1, [r6, r0] - movs r3, 0x8 - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _0818164C - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - movs r3, 0 - strh r3, [r6, 0x24] - movs r0, 0x2E - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrh r2, [r1, 0x4] - movs r4, 0x4 - ldrsh r0, [r1, r4] - cmp r0, 0x1 - ble _0818163C - subs r0, r2, 0x1 - strh r0, [r1, 0x4] - strh r3, [r6, 0x32] - b _0818168A - .pool -_0818163C: - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r6, 0x1C] - b _0818168A - .pool -_0818164C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r0, 8 - movs r3, 0x8 - ldrsh r1, [r2, r3] - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl Sin - negs r0, r0 - strh r0, [r6, 0x24] - movs r5, 0x80 - lsls r5, 1 - ldr r1, =0x00000ccc - adds r0, r4, 0 - bl Sin - adds r3, r0, 0 - negs r3, r3 - lsls r3, 16 - lsrs r3, 16 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r5, 0 - bl HandleSetAffineData -_0818168A: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - adds r0, r6, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81815D4 - - thumb_func_start pokemonanimfunc_2E -pokemonanimfunc_2E: @ 81816A0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x32 - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_81815D4 - ldr r0, =sub_81815D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_2E - - thumb_func_start pokemonanimfunc_2F -pokemonanimfunc_2F: @ 81816D4 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - adds r0, r4, 0 - adds r0, 0x28 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - movs r1, 0xA - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x3A] - movs r0, 0x80 - strh r0, [r4, 0x3C] - ldr r0, =sub_8181708 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_2F - - thumb_func_start sub_8181708 -sub_8181708: @ 8181708 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - subs r3, 0x80 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x78 - bgt _08181760 - movs r0, 0x78 - strh r0, [r4, 0x3C] - movs r0, 0 - strh r0, [r4, 0x34] - ldr r0, =sub_8181770 - str r0, [r4, 0x1C] -_08181760: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181708 - - thumb_func_start sub_8181770 -sub_8181770: @ 8181770 - push {lr} - adds r1, r0, 0 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x14 - bne _08181784 - ldr r0, =sub_8181794 - str r0, [r1, 0x1C] - movs r0, 0 - strh r0, [r1, 0x34] -_08181784: - ldrh r0, [r1, 0x34] - adds r0, 0x1 - strh r0, [r1, 0x34] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181770 - - thumb_func_start sub_8181794 -sub_8181794: @ 8181794 - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x3C] - adds r0, 0x2 - movs r6, 0 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r5, 0x80 - lsls r5, 1 - ldrh r3, [r4, 0x3C] - subs r3, 0x80 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r5, 0 - bl HandleSetAffineData - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _08181800 - strh r6, [r4, 0x24] - strh r6, [r4, 0x26] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r5, 0 - movs r3, 0 - bl HandleSetAffineData - strh r6, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =pokemonanimfunc_10 - str r0, [r4, 0x1C] -_08181800: - adds r0, r4, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181794 - - thumb_func_start sub_8181810 -sub_8181810: @ 8181810 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, =gUnknown_03001240 - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrh r0, [r1] - adds r6, r0, 0 - cmp r6, 0 - beq _08181834 - subs r0, 0x1 - strh r0, [r1] - b _08181950 - .pool -_08181834: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0818184A - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r6, [r5, 0x36] - strh r6, [r5, 0x38] - movs r0, 0x1 - strh r0, [r5, 0x32] -_0818184A: - movs r3, 0x38 - ldrsh r0, [r5, r3] - cmp r0, 0 - bne _081818A2 - movs r1, 0x36 - ldrsh r0, [r5, r1] - movs r4, 0x80 - lsls r4, 1 - adds r1, r4, 0 - bl Sin - strh r0, [r5, 0x3C] - movs r3, 0x36 - ldrsh r0, [r5, r3] - movs r1, 0x10 - bl Sin - strh r0, [r5, 0x26] - movs r1, 0x36 - ldrsh r0, [r5, r1] - movs r1, 0x20 - bl Sin - adds r1, r0, 0 - strh r1, [r5, 0x3A] - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r5, 0x3C] - adds r2, r4 - lsls r2, 16 - asrs r2, 16 - adds r0, r5, 0 - movs r3, 0 - bl HandleSetAffineData - movs r3, 0x36 - ldrsh r0, [r5, r3] - cmp r0, 0x80 - bne _0818193A - strh r6, [r5, 0x36] - movs r0, 0x1 - strh r0, [r5, 0x38] - b _0818193A -_081818A2: - cmp r0, 0x1 - bne _0818193A - movs r1, 0x36 - ldrsh r0, [r5, r1] - movs r1, 0x20 - bl Sin - strh r0, [r5, 0x3C] - movs r3, 0x36 - ldrsh r0, [r5, r3] - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r5, 0x26] - movs r1, 0x36 - ldrsh r0, [r5, r1] - movs r1, 0x80 - bl Sin - adds r1, r0, 0 - strh r1, [r5, 0x3A] - movs r3, 0x80 - lsls r3, 1 - adds r2, r3, 0 - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - ldrh r0, [r5, 0x3C] - subs r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r5, 0 - movs r3, 0 - bl HandleSetAffineData - movs r1, 0x36 - ldrsh r0, [r5, r1] - cmp r0, 0x80 - bne _0818193A - movs r3, 0x2E - ldrsh r0, [r5, r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r1, 0x4] - movs r3, 0x4 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - ble _08181922 - subs r0, r2, 0x1 - strh r0, [r1, 0x4] - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xA - strh r1, [r0] - strh r6, [r5, 0x36] - strh r6, [r5, 0x38] - b _0818193A -_08181922: - movs r2, 0x80 - lsls r2, 1 - adds r0, r5, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r5, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r5, 0x1C] -_0818193A: - ldr r2, =gUnknown_03001240 - movs r3, 0x2E - ldrsh r1, [r5, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] -_08181950: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181810 - - thumb_func_start pokemonanimfunc_30 -pokemonanimfunc_30: @ 8181960 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x4 - strh r0, [r1, 0x6] - adds r0, r4, 0 - bl sub_8181810 - ldr r0, =sub_8181810 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_30 - - thumb_func_start pokemonanimfunc_31 -pokemonanimfunc_31: @ 8181994 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r4, [r5, r0] - adds r0, r5, 0 - bl sub_817F70C - movs r0, 0x80 - lsls r0, 2 - cmp r4, r0 - ble _081819B8 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r5, 0x1C] - movs r0, 0 - strh r0, [r5, 0x24] - b _08181A62 - .pool -_081819B8: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0 - bge _081819C2 - adds r0, 0x7F -_081819C2: - asrs r0, 7 - cmp r0, 0x1 - beq _081819F8 - cmp r0, 0x1 - bgt _081819D2 - cmp r0, 0 - beq _081819DC - b _08181A48 -_081819D2: - cmp r0, 0x2 - beq _08181A12 - cmp r0, 0x3 - beq _08181A2A - b _08181A48 -_081819DC: - adds r0, r4, 0 - cmp r4, 0 - bge _081819E4 - adds r0, 0x7F -_081819E4: - asrs r0, 7 - lsls r0, 7 - subs r0, r4, r0 - lsls r0, 3 - negs r0, r0 - cmp r0, 0 - bge _081819F4 - adds r0, 0x7F -_081819F4: - asrs r0, 7 - b _08181A46 -_081819F8: - adds r0, r4, 0 - cmp r4, 0 - bge _08181A00 - adds r0, 0x7F -_08181A00: - asrs r0, 7 - lsls r0, 7 - subs r0, r4, r0 - cmp r0, 0 - bge _08181A0C - adds r0, 0xF -_08181A0C: - asrs r0, 4 - subs r0, 0x8 - b _08181A46 -_08181A12: - adds r0, r4, 0 - cmp r4, 0 - bge _08181A1A - adds r0, 0x7F -_08181A1A: - asrs r0, 7 - lsls r0, 7 - subs r0, r4, r0 - cmp r0, 0 - bge _08181A26 - adds r0, 0xF -_08181A26: - asrs r0, 4 - b _08181A46 -_08181A2A: - adds r0, r4, 0 - cmp r4, 0 - bge _08181A32 - adds r0, 0x7F -_08181A32: - asrs r0, 7 - lsls r0, 7 - subs r0, r4, r0 - lsls r0, 3 - negs r0, r0 - cmp r0, 0 - bge _08181A42 - adds r0, 0x7F -_08181A42: - asrs r0, 7 - adds r0, 0x8 -_08181A46: - strh r0, [r5, 0x24] -_08181A48: - adds r0, r4, 0 - cmp r4, 0 - bge _08181A50 - adds r0, 0x7F -_08181A50: - asrs r0, 7 - lsls r0, 7 - subs r0, r4, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 -_08181A62: - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x32] - adds r0, 0xC - strh r0, [r5, 0x32] - adds r0, r5, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_31 - - thumb_func_start pokemonanimfunc_32 -pokemonanimfunc_32: @ 8181A78 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, =0x0000ffff - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl HandleStartAffineAnim - strh r5, [r4, 0x34] - adds r0, r4, 0 - bl sub_8181ABC - ldr r0, =sub_8181ABC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_32 - - thumb_func_start sub_8181ABC -sub_8181ABC: @ 8181ABC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, =gUnknown_03001240 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - ldrh r0, [r1] - adds r5, r0, 0 - cmp r5, 0 - beq _08181AE0 - subs r0, 0x1 - strh r0, [r1] - b _08181B44 - .pool -_08181AE0: - adds r0, r4, 0 - bl sub_817F70C - movs r1, 0x32 - ldrsh r2, [r4, r1] - adds r0, r2, 0 - cmp r0, 0x80 - ble _08181AFC - strh r5, [r4, 0x32] - ldr r0, =sub_8181B4C - str r0, [r4, 0x1C] - b _08181B3E - .pool -_08181AFC: - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r3, r0, 3 - adds r0, r2, 0 - cmp r2, 0 - bge _08181B16 - adds r0, 0x7F -_08181B16: - asrs r0, 7 - lsls r0, 7 - subs r1, r2, r0 - adds r0, r3, 0 - muls r0, r1 - cmp r0, 0 - bge _08181B26 - adds r0, 0x7F -_08181B26: - asrs r0, 7 - strh r0, [r4, 0x24] - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] -_08181B3E: - adds r0, r4, 0 - bl sub_817F70C -_08181B44: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8181ABC - - thumb_func_start sub_8181B4C -sub_8181B4C: @ 8181B4C - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x30 - ble _08181B7C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - movs r0, 0 - strh r0, [r4, 0x26] - strh r0, [r4, 0x32] - ldr r0, =sub_8181C2C - str r0, [r4, 0x1C] - b _08181C1A - .pool -_08181B7C: - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0x40 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r6, r1, 0 - adds r0, r6 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r4, 0x32] - subs r0, 0x10 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF - bhi _08181BBA - ldrh r0, [r4, 0x34] - adds r0, 0x8 - strh r0, [r4, 0x34] - ldr r2, =gUnknown_03001240 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x24] - ldrh r0, [r0, 0x8] - subs r1, r0 - strh r1, [r4, 0x24] -_08181BBA: - movs r5, 0 - lsls r1, r3, 16 - asrs r2, r1, 16 - lsls r0, r6, 16 - asrs r0, 16 - adds r6, r1, 0 - cmp r2, r0 - ble _08181BD6 - subs r0, r2 - cmp r0, 0 - bge _08181BD2 - adds r0, 0x7 -_08181BD2: - lsls r0, 13 - lsrs r5, r0, 16 -_08181BD6: - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - negs r0, r0 - lsls r1, r5, 16 - asrs r1, 16 - subs r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0x20 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - asrs r2, r6, 16 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x36] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x36] -_08181C1A: - adds r0, r4, 0 - bl sub_817F70C - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181B4C - - thumb_func_start sub_8181C2C -sub_8181C2C: @ 8181C2C - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r3, [r4, r0] - cmp r3, 0x80 - ble _08181C90 - ldr r3, =gUnknown_03001240 - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x4] - movs r5, 0x4 - ldrsh r0, [r1, r5] - cmp r0, 0x1 - ble _08181C7C - subs r0, r2, 0x1 - movs r2, 0 - strh r0, [r1, 0x4] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0xA - strh r1, [r0] - strh r2, [r4, 0x34] - strh r2, [r4, 0x32] - strh r2, [r4, 0x36] - ldr r0, =sub_8181ABC - b _08181C84 - .pool -_08181C7C: - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd -_08181C84: - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _08181CD0 - .pool -_08181C90: - ldr r2, =gUnknown_03001240 - movs r5, 0x2E - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x8 - ldrsh r5, [r0, r1] - lsls r1, r5, 3 - adds r0, r3, 0 - cmp r3, 0 - bge _08181CAC - adds r0, 0x7F -_08181CAC: - asrs r0, 7 - lsls r0, 7 - subs r2, r3, r0 - adds r0, r1, 0 - muls r0, r2 - cmp r0, 0 - bge _08181CBC - adds r0, 0x7F -_08181CBC: - asrs r0, 7 - lsls r1, r5, 3 - subs r0, r1 - strh r0, [r4, 0x24] - lsls r0, r2, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 -_08181CD0: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181C2C - - thumb_func_start sub_8181CE8 -sub_8181CE8: @ 8181CE8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08181D00 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_08181D00: - adds r0, r4, 0 - bl sub_817F70C - movs r3, 0x3C - ldrsh r0, [r4, r3] - cmp r0, 0xFE - ble _08181D60 - movs r5, 0 - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldr r2, =gUnknown_03001240 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r2, [r1, 0x4] - movs r3, 0x4 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - ble _08181D48 - subs r0, r2, 0x1 - strh r0, [r1, 0x4] - strh r5, [r4, 0x32] - strh r5, [r4, 0x3C] - b _08181D52 - .pool -_08181D48: - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08181D52: - adds r0, r4, 0 - bl sub_817F70C - b _08181DA6 - .pool -_08181D60: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r3, 0x3C - ldrsh r0, [r4, r3] - movs r1, 0x20 - bl Sin - adds r3, r0, 0 - movs r2, 0x80 - lsls r2, 1 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - ldr r2, =gUnknown_03001240 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x6] - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817F70C -_08181DA6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181CE8 - - thumb_func_start pokemonanimfunc_33 -pokemonanimfunc_33: @ 8181DB0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x4 - strh r0, [r1, 0x6] - adds r0, r4, 0 - bl sub_8181CE8 - ldr r0, =sub_8181CE8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_33 - - thumb_func_start pokemonanimfunc_34 -pokemonanimfunc_34: @ 8181DE4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08181DFC - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_08181DFC: - adds r0, r4, 0 - bl sub_817F70C - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0xFE - ble _08181E34 - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - adds r0, r4, 0 - bl sub_817F70C - b _08181E8A - .pool -_08181E34: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08181E4E - adds r0, 0x7F -_08181E4E: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - adds r3, r0, 0 - movs r2, 0x80 - lsls r2, 1 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817F70C -_08181E8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_34 - - thumb_func_start pokemonanimfunc_35 -pokemonanimfunc_35: @ 8181E90 - push {r4,r5,lr} - adds r3, r0, 0 - movs r1, 0x32 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08181E9E - strh r0, [r3, 0x3C] -_08181E9E: - ldrh r4, [r3, 0x32] - movs r5, 0x32 - ldrsh r1, [r3, r5] - ldrh r2, [r3, 0x3C] - movs r5, 0x3C - ldrsh r0, [r3, r5] - cmp r1, r0 - bne _08181EC8 - movs r0, 0 - strh r0, [r3, 0x3C] - adds r0, r4, 0x1 - strh r0, [r3, 0x32] - adds r1, r3, 0 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r2, r1, 0 - b _08181ED8 -_08181EC8: - adds r0, r2, 0x1 - strh r0, [r3, 0x3C] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08181ED8: - movs r1, 0x32 - ldrsh r0, [r3, r1] - cmp r0, 0xA - ble _08181EEE - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r3, 0x1C] -_08181EEE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_35 - - thumb_func_start pokemonanimfunc_36 -pokemonanimfunc_36: @ 8181EF8 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r0, 0 - strh r0, [r4, 0x3C] - ldr r0, =sub_8181F14 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_36 - - thumb_func_start sub_8181F14 -sub_8181F14: @ 8181F14 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x1F - ble _08181F34 - movs r0, 0 - movs r1, 0x20 - strh r1, [r4, 0x3C] - strh r0, [r4, 0x32] - ldr r0, =sub_8181F50 - str r0, [r4, 0x1C] - b _08181F38 - .pool -_08181F34: - adds r0, r1, 0x4 - strh r0, [r4, 0x3C] -_08181F38: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8181F14 - - thumb_func_start sub_8181F50 -sub_8181F50: @ 8181F50 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _08181F74 - ldr r0, =sub_8181FC0 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3A] - b _08181FAE - .pool -_08181F74: - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsls r0, 4 - negs r0, r0 - cmp r0, 0 - bge _08181F84 - ldr r1, =0x000001ff - adds r0, r1 -_08181F84: - asrs r0, 9 - strh r0, [r4, 0x24] - movs r0, 0x32 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08181F94 - adds r0, 0x7F -_08181F94: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0xC - strh r0, [r4, 0x32] -_08181FAE: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8181F50 - - thumb_func_start sub_8181FC0 -sub_8181FC0: @ 8181FC0 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x3C] - subs r0, 0x2 - movs r1, 0 - strh r0, [r4, 0x3C] - lsls r0, 16 - cmp r0, 0 - bge _08181FEC - strh r1, [r4, 0x3C] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08181FFE - .pool -_08181FEC: - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsls r0, 17 - asrs r0, 16 - movs r1, 0x10 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] -_08181FFE: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8181FC0 - thumb_func_start pokemonanimfunc_37 pokemonanimfunc_37: @ 818201C push {r4,r5,lr} diff --git a/data/pokemon_animation.s b/data/pokemon_animation.s index ef9a35a49..08254b40d 100644 --- a/data/pokemon_animation.s +++ b/data/pokemon_animation.s @@ -3,16 +3,6 @@ .section .rodata -gUnknown_0860AD70:: @ 860AD70 - .byte 0xff, 0xff, 0x06, 0x02, 0x00, 0x06, 0xfe, 0x02, 0x06, 0x02, 0x00, 0x06, 0xfe, 0xfe, 0x06, 0x02, 0x00, 0x06, 0xfe, 0x02, 0x06, 0x02, 0x00, 0x06, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00 - -gUnknown_0860AD8E:: @ 860AD8E - .byte 0x00, 0x08, 0x08, 0x08, 0xf8, 0x0c, 0xf8, 0x08, 0x0c, 0x08, 0xf8, 0x0c, 0xf8, 0x08, 0x0c, 0x08, 0xf8, 0x0c, 0xf8, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x08, 0xf8, 0x18, 0xf8, 0x08 - .byte 0x18, 0x08, 0xf8, 0x18, 0xf8, 0x08, 0x18, 0x08, 0xf8, 0x18, 0xf8, 0x00, 0x18, 0x00, 0x00, 0x00 - -gUnknown_0860ADBE:: @ 860ADBE - .byte 0x01, 0x01, 0x0c, 0xfe, 0x00, 0x0c, 0x01, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 - gUnknown_0860ADCC:: @ 860ADCC .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 .byte 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 diff --git a/include/blend_palette.h b/include/blend_palette.h index 1db3f4eb0..a00847bc3 100644 --- a/include/blend_palette.h +++ b/include/blend_palette.h @@ -1,12 +1,6 @@ #ifndef GUARD_BLEND_PALETTE_H #define GUARD_BLEND_PALETTE_H -// Exported type declarations +void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor); -// Exported RAM declarations - -// Exported ROM declarations - -void BlendPalette(u16, u16, u8, u16); - -#endif //GUARD_BLEND_PALETTE_H +#endif // GUARD_BLEND_PALETTE_H diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 1cac2c473..87949e88b 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -592,7 +592,23 @@ static const u8 sSpeciesToBackAnimId[] = 0x11, // SPECIES_CHIMECHO }; -const u8 gUnknown_0860AA64[] = {0x00, 0x05, 0x01, 0x01, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x00, 0xff}; +const u8 gUnknown_0860AA64[][2] = +{ + {0, 5}, + {1, 1}, + {0, 15}, + {1, 4}, + {0, 2}, + {1, 2}, + {0, 2}, + {1, 2}, + {0, 2}, + {1, 2}, + {0, 2}, + {1, 2}, + {0, 2}, + {0, 0xFF} +}; const u8 gUnknown_0860AA80[][2] = { @@ -834,8 +850,6 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_860AD68[] = gSpriteAffineAnim_860AD58 }; -extern const s8 gUnknown_0860AD70[][3]; - // code void MonAnimDummySpriteCallback(struct Sprite *sprite) { @@ -1301,6 +1315,20 @@ void pokemonanimfunc_09(struct Sprite *sprite) sprite->data[2]++; } +static const s8 gUnknown_0860AD70[][3] = +{ + {-1, -1, 6}, + {2, 0, 6}, + {-2, 2, 6}, + {2, 0, 6}, + {-2, -2, 6}, + {2, 0, 6}, + {-2, 2, 6}, + {2, 0, 6}, + {-1, -1, 6}, + {0, 0, 0}, +}; + void sub_817FC20(struct Sprite *sprite) { sub_817F70C(sprite); @@ -1828,3 +1856,1279 @@ void pokemonanimfunc_1D(struct Sprite *sprite) sprite->data[2]++; sub_817F70C(sprite); } + +void sub_8180714(struct Sprite *sprite) +{ + s16 posY = 0; + + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[3] = 0; + } + + sub_817F70C(sprite); + + if (sprite->data[2] > sprite->data[0] * 3) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 yScale = Sin(sprite->data[4], 32) + 256; + + if (sprite->data[2] > sprite->data[0] && sprite->data[2] < sprite->data[0] * 2) + sprite->data[3] += (128 / sprite->data[0]); + if (yScale > 256) + posY = (256 - yScale) / 8; + + sprite->pos2.y = -(Sin(sprite->data[3], 10)) - posY; + HandleSetAffineData(sprite, 0x100 - Sin(sprite->data[4], 32), yScale, 0); + sprite->data[2]++; + sprite->data[4] = (sprite->data[4] + 128 / sprite->data[0]) & 0xFF; + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_00(struct Sprite *sprite) +{ + sprite->data[0] = 16; + sub_8180714(sprite); + sprite->callback = sub_8180714; +} + +void sub_8180828(struct Sprite *sprite) +{ + s16 posY = 0; + + if (sprite->data[2] > (128 / sprite->data[6]) * sprite->data[7]) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 yScale = Sin(sprite->data[4], 32) + 256; + + if (yScale > 256) + posY = (256 - yScale) / 8; + + sprite->pos2.y = -(posY); + HandleSetAffineData(sprite, Sin(sprite->data[4], 48) + 256, yScale, 0); + sprite->data[2]++; + sprite->data[4] = (sprite->data[4] + sprite->data[6]) & 0xFF; + } +} + +void pokemonanimfunc_13(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[7] = 3; + sprite->data[6] = 8; + } + + sub_8180828(sprite); +} + +static const s8 gUnknown_0860AD8E[][8][3] = +{ + { + {0, 8, 8}, + {8, -8, 12}, + {-8, 8, 12}, + {8, -8, 12}, + {-8, 8, 12}, + {8, -8, 12}, + {-8, 0, 12}, + {0, 0, 0} + }, + { + {0, 8, 16}, + {8, -8, 24}, + {-8, 8, 24}, + {8, -8, 24}, + {-8, 8, 24}, + {8, -8, 24}, + {-8, 0, 24}, + {0, 0, 0} + }, +}; + +void sub_8180900(struct Sprite *sprite) +{ + s16 var; + u8 structId; + s8 r9; + s16 r10; + s16 r7; + u32 arrId; + + sub_817F70C(sprite); + structId = sprite->data[0]; + var = gUnknown_03001240[structId].field_6; + r9 = gUnknown_0860AD8E[gUnknown_03001240[structId].field_8][sprite->data[4]][0]; + r10 = gUnknown_0860AD8E[gUnknown_03001240[structId].field_8][sprite->data[4]][1] - r9; + arrId = gUnknown_03001240[structId].field_8; + r7 = sprite->data[3]; + + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + } + + if (gUnknown_0860AD8E[arrId][sprite->data[4]][2] == 0) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + u16 rotation; + + sprite->pos2.y = -(Sin(r7 * 128 / gUnknown_0860AD8E[arrId][sprite->data[4]][2], 10)); + sprite->pos2.x = (r10 * r7 / gUnknown_0860AD8E[arrId][sprite->data[4]][2]) + r9; + + rotation = -(var * sprite->pos2.x) / 8; + HandleSetAffineData(sprite, 0x100, 0x100, rotation); + + if (r7 == gUnknown_0860AD8E[arrId][sprite->data[4]][2]) + { + sprite->data[4]++; + sprite->data[3] = 0; + } + else + { + sprite->data[3]++; + } + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_05(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_6 = 4096; + gUnknown_03001240[id].field_8 = sprite->data[6]; + sub_8180900(sprite); + sprite->callback = sub_8180900; +} + +const u8 gUnknown_0860ADBE[] = {0x01, 0x01, 0x0c, 0xfe, 0x00, 0x0c, 0x01, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00}; + +void pokemonanimfunc_20(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0x2DF); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 12); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x2DF); + } + + sprite->data[2] += 2; +} + +void pokemonanimfunc_21(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0x1F); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 12); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x1F); + } + + sprite->data[2] += 2; +} + +void pokemonanimfunc_22(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0x7C00); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 12); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x7C00); + } + + sprite->data[2] += 2; +} + +void pokemonanimfunc_23(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 12); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x3FF); + } + + sprite->data[2] += 2; +} + +void pokemonanimfunc_24(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + + if (sprite->data[2] > 128) + { + BlendPalette(sprite->data[7], 0x10, 0, 0x6018); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 12); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x6018); + } + + sprite->data[2] += 2; +} + +void sub_8180CB4(struct Sprite *sprite); +void sub_8180CE8(struct Sprite *sprite); +void sub_8180D44(struct Sprite *sprite); +void sub_8180DC0(struct Sprite *sprite); +void sub_8180E28(struct Sprite *sprite); + +void pokemonanimfunc_25(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->callback = sub_8180CB4; +} + +void sub_8180CB4(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (++sprite->pos2.x > 7) + { + sprite->pos2.x = 8; + sprite->data[7] = 2; + sprite->callback = sub_8180CE8; + } + sub_817F70C(sprite); +} + +void sub_8180CE8(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + sprite->pos2.x -= sprite->data[7]; + sprite->data[7]++; + if (sprite->pos2.x <= 0) + { + s16 subResult; + u8 var = sprite->data[7]; + sprite->data[6] = 0; + subResult = sprite->pos2.x; + + do + { + subResult -= var; + sprite->data[6]++; + var++; + } + while (subResult > -8); + + sprite->data[5] = 1; + sprite->callback = sub_8180D44; + } + + sub_817F70C(sprite); +} + +void sub_8180D44(struct Sprite *sprite) +{ + u8 rotation; + + sub_817F70C(sprite); + sprite->pos2.x -= sprite->data[7]; + sprite->data[7]++; + rotation = (sprite->data[5] * 6) / sprite->data[6]; + + if (++sprite->data[5] > sprite->data[6]) + sprite->data[5] = sprite->data[6]; + + HandleSetAffineData(sprite, 0x100, 0x100, rotation * 256); + + if (sprite->pos2.x < -8) + { + sprite->pos2.x = -8; + sprite->data[4] = 2; + sprite->data[3] = 0; + sprite->data[2] = rotation; + sprite->callback = sub_8180DC0; + } + + sub_817F70C(sprite); +} + +void sub_8180DC0(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[3] > 11) + { + sprite->data[2] -= 2; + if (sprite->data[2] < 0) + sprite->data[2] = 0; + + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[2] << 8); + if (sprite->data[2] == 0) + sprite->callback = sub_8180E28; + } + else + { + sprite->pos2.x += sprite->data[4]; + sprite->data[4] *= -1; + sprite->data[3]++; + } + + sub_817F70C(sprite); +} + +void sub_8180E28(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + sprite->pos2.x += 2; + if (sprite->pos2.x > 0) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + + sub_817F70C(sprite); +} + +void sub_8180E78(struct Sprite *sprite); +void sub_8180ED0(struct Sprite *sprite); +void sub_8180F2C(struct Sprite *sprite); + +void pokemonanimfunc_26(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[3] = 0; + sprite->callback = sub_8180E78; +} + +void sub_8180E78(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x++; + sprite->pos2.y--; + + if (sprite->pos2.x % 2 == 0 && sprite->data[3] <= 0) + sprite->data[3] = 10; + if (sprite->pos2.x > 7) + { + sprite->pos2.x = 8; + sprite->pos2.y = -8; + sprite->data[4] = 0; + sprite->callback = sub_8180ED0; + } + + sub_817F70C(sprite); +} + +void sub_8180ED0(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x = Cos(sprite->data[4], 16) - 8; + sprite->pos2.y = Sin(sprite->data[4], 16) - 8; + + if (sprite->data[4] > 63) + { + sprite->data[2] = 160; + sprite->data[3] = 10; + sprite->callback = sub_8180F2C; + } + sprite->data[4] += 8; + if (sprite->data[4] > 64) + sprite->data[4] = 64; + + sub_817F70C(sprite); +} + +void sub_8180F2C(struct Sprite *sprite) +{ + sub_817F70C(sprite); + + if (sprite->data[3] > 0) + { + sprite->data[3]--; + } + else + { + u32 rotation; + + sprite->pos2.x = Cos(sprite->data[2], 5) - 4; + sprite->pos2.y = -(Sin(sprite->data[2], 5)) + 4; + sprite->data[2] -= 4; + rotation = sprite->data[2] - 32; + HandleSetAffineData(sprite, 0x100, 0x100, rotation * 512); + + if (sprite->data[2] <= 32) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_27(struct Sprite *sprite) +{ + if (sprite->data[3] > 0) + { + sprite->data[3]--; + } + else + { + sprite->data[4] = (sprite->data[4] == 0) ? 1 : 0; + sprite->invisible = sprite->data[4]; + if (++sprite->data[2] > 19) + { + sprite->invisible = 0; + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + sprite->data[3] = 2; + } +} + +void sub_8181024(struct Sprite *sprite); +void sub_8181068(struct Sprite *sprite); +void sub_81810C4(struct Sprite *sprite); + +void pokemonanimfunc_28(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->callback = sub_8181024; +} + +void sub_8181024(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x--; + sprite->pos2.y++; + + if (sprite->pos2.x <= -16) + { + sprite->pos2.x = -16; + sprite->pos2.y = 16; + sprite->callback = sub_8181068; + sprite->data[2] = 160; + } + + sub_817F70C(sprite); +} + +void sub_8181068(struct Sprite *sprite) +{ + u32 rotation; + + sub_817F70C(sprite); + sprite->data[2] -= 4; + sprite->pos2.x = Cos(sprite->data[2], 22); + sprite->pos2.y = -(Sin(sprite->data[2], 22)); + rotation = sprite->data[2] - 32; + HandleSetAffineData(sprite, 0x100, 0x100, rotation * 512); + + if (sprite->data[2] <= 32) + sprite->callback = sub_81810C4; + + sub_817F70C(sprite); +} + +void sub_81810C4(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x--; + sprite->pos2.y++; + + if (sprite->pos2.x <= 0) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + + sub_817F70C(sprite); +} + +void sub_8181110(struct Sprite *sprite); +void sub_8181144(struct Sprite *sprite); +void sub_81811A4(struct Sprite *sprite); + +void pokemonanimfunc_29(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->callback = sub_8181110; +} + +void sub_8181110(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x++; + sprite->pos2.y--; + + if (sprite->pos2.x > 15) + { + sprite->data[2] = 0; + sprite->callback = sub_8181144; + } + + sub_817F70C(sprite); +} + +void sub_8181144(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->data[2] += 16; + + if (sprite->pos2.x <= -16) + { + sprite->pos2.x = -16; + sprite->pos2.y = 16; + sprite->data[2] = 0; + sprite->callback = sub_81811A4; + } + else + { + sprite->pos2.x -= 2; + sprite->pos2.y += 2; + } + + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[2] << 8); + sub_817F70C(sprite); +} + +void sub_81811A4(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x++; + sprite->pos2.y--;; + + if (sprite->pos2.x >= 0) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + + sub_817F70C(sprite); +} + +void sub_8181214(struct Sprite *sprite); + +void pokemonanimfunc_2A(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_2 = 2; + sub_8181214(sprite); + sprite->callback = sub_8181214; +} + +void sub_8181214(struct Sprite *sprite) +{ + if (gUnknown_03001240[sprite->data[0]].field_0 != 0) + { + gUnknown_03001240[sprite->data[0]].field_0--; + } + else + { + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + sprite->data[2]++; + HandleStartAffineAnim(sprite); + sprite->data[7] = gUnknown_03001240[sprite->data[0]].field_2; + sprite->data[3] = -1; + sprite->data[4] = -1; + sprite->data[5] = 0; + sprite->data[6] = 0; + } + + sprite->pos2.x += (sprite->data[7] * 2 * sprite->data[3]); + sprite->pos2.y += (sprite->data[7] * sprite->data[4]); + sprite->data[6] += 8; + if (sprite->pos2.x <= -16 || sprite->pos2.x >= 16) + { + sprite->pos2.x = sprite->data[3] * 16; + sprite->data[3] *= -1; + sprite->data[5]++; + } + else if (sprite->pos2.y <= -16 || sprite->pos2.y >= 16) + { + sprite->pos2.y = sprite->data[4] * 16; + sprite->data[4] *= -1; + sprite->data[5]++; + } + + if (sprite->data[5] > 5 && sprite->pos2.x <= 0) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + { + gUnknown_03001240[sprite->data[0]].field_4--; + sprite->data[5] = 0; + sprite->data[6] = 0; + gUnknown_03001240[sprite->data[0]].field_0 = 10; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6] << 8); + sub_817F70C(sprite); + } +} + +void sub_8181370(struct Sprite *sprite); + +void pokemonanimfunc_2B(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[6] = 0; + sprite->data[7] = 0; + sprite->callback = sub_8181370; +} + +void sub_8181370(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->data[6] += 4; + sprite->pos2.x = -(Sin(sprite->data[6], 16)); + sprite->pos2.y = -(Sin((sprite->data[6] * 2) & 0xFF, 8)); + if (sprite->data[6] > 192 && sprite->data[7] == 1) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->data[7]++; + } + else if (sprite->data[6] > 64 && sprite->data[7] == 0) + { + HandleSetAffineData(sprite, -0x100, 0x100, 0); + sprite->data[7]++; + } + + if (sprite->data[6] > 255) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + sub_817F70C(sprite); +} + +void pokemonanimfunc_2C(struct Sprite *sprite) +{ + if (++sprite->data[2] == 1) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[6] = 0; + sprite->data[5] = 0; + sprite->data[4] = 0; + } + + if (gUnknown_0860AA64[sprite->data[6]][1] == 0xFF) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + if (sprite->data[4] == 1) + { + if (gUnknown_0860AA64[sprite->data[6]][0] != 0) + BlendPalette(sprite->data[7], 0x10, 0x10, 0x3FF); + else + BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); + + sprite->data[4] = 0; + } + + if (gUnknown_0860AA64[sprite->data[6]][1] == sprite->data[5]) + { + sprite->data[4] = 1; + sprite->data[5] = 0; + sprite->data[6]++; + } + else + { + sprite->data[5]++; + } + } +} + +void sub_81814D4(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + sub_817F70C(sprite); + if (sprite->data[2] > gUnknown_03001240[sprite->data[0]].field_8) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.x = 0; + if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + { + gUnknown_03001240[sprite->data[0]].field_4--; + sprite->data[2] = 0; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + else + { + s16 index = (sprite->data[2] * 256) / gUnknown_03001240[sprite->data[0]].field_8; + sprite->pos2.x = -(Sin(index, 10)); + HandleSetAffineData(sprite, 0x100, 0x100, Sin(index, 3276)); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_2D(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_8 = 50; + sub_81814D4(sprite); + sprite->callback = sub_81814D4; +} + +void sub_81815D4(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + HandleStartAffineAnim(sprite); + + sub_817F70C(sprite); + if (sprite->data[2] > gUnknown_03001240[sprite->data[0]].field_8) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.x = 0; + if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + { + gUnknown_03001240[sprite->data[0]].field_4--; + sprite->data[2] = 0; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + else + { + s16 index = (sprite->data[2] * 256) / gUnknown_03001240[sprite->data[0]].field_8; + sprite->pos2.x = -(Sin(index, 10)); + HandleSetAffineData(sprite, 0x100, 0x100, -(Sin(index, 3276))); + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_2E(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_8 = 50; + sub_81815D4(sprite); + sprite->callback = sub_81815D4; +} + +void sub_8181708(struct Sprite *sprite); +void sub_8181770(struct Sprite *sprite); +void sub_8181794(struct Sprite *sprite); + +void pokemonanimfunc_2F(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[6] = -(14 * sprite->centerToCornerVecX / 10); + sprite->data[7] = 128; + sprite->callback = sub_8181708; +} + +void sub_8181708(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->data[7]--; + sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6]; + + sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match + + HandleSetAffineData(sprite, 0x100, 0x100, (sprite->data[7] - 128) << 8); + if (sprite->data[7] <= 120) + { + sprite->data[7] = 120; + sprite->data[3] = 0; + sprite->callback = sub_8181770; + } + + sub_817F70C(sprite); +} + +void sub_8181770(struct Sprite *sprite) +{ + if (sprite->data[3] == 20) + { + sprite->callback = sub_8181794; + sprite->data[3] = 0; + } + + sprite->data[3]++; +} + +void sub_8181794(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->data[7] += 2; + sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6]; + + sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match + + HandleSetAffineData(sprite, 0x100, 0x100, (sprite->data[7] - 128) << 8); + if (sprite->data[7] >= 128) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->data[2] = 0; + sub_817F77C(sprite); + sprite->callback = pokemonanimfunc_10; + } + + sub_817F70C(sprite); +} + +void sub_8181810(struct Sprite *sprite) +{ + if (gUnknown_03001240[sprite->data[0]].field_0 != 0) + { + gUnknown_03001240[sprite->data[0]].field_0--; + } + else + { + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[4] = 0; + sprite->data[5] = 0; + sprite->data[2] = 1; + } + + if (sprite->data[5] == 0) + { + sprite->data[7] = Sin(sprite->data[4], 256); + sprite->pos2.y = Sin(sprite->data[4], 16); + sprite->data[6] = Sin(sprite->data[4], 32); + HandleSetAffineData(sprite, 0x100 - sprite->data[6], 0x100 + sprite->data[7], 0); + if (sprite->data[4] == 128) + { + sprite->data[4] = 0; + sprite->data[5] = 1; + } + } + else if (sprite->data[5] == 1) + { + sprite->data[7] = Sin(sprite->data[4], 32); + sprite->pos2.y = -(Sin(sprite->data[4], 8)); + sprite->data[6] = Sin(sprite->data[4], 128); + HandleSetAffineData(sprite, 0x100 + sprite->data[6], 0x100 - sprite->data[7], 0); + if (sprite->data[4] == 128) + { + if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + { + gUnknown_03001240[sprite->data[0]].field_4--; + gUnknown_03001240[sprite->data[0]].field_0 = 10; + sprite->data[4] = 0; + sprite->data[5] = 0; + } + else + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + } + } + + sprite->data[4] += gUnknown_03001240[sprite->data[0]].field_6; + } +} + +void pokemonanimfunc_30(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_6 = 4; + sub_8181810(sprite); + sprite->callback = sub_8181810; +} + +void pokemonanimfunc_31(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + sub_817F70C(sprite); + if (counter > 512) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + switch (sprite->data[2] / 128) + { + case 0: + sprite->pos2.x = -(counter % 128 * 8) / 128; + break; + case 1: + sprite->pos2.x = (counter % 128 / 16) - 8; + break; + case 2: + sprite->pos2.x = (counter % 128 / 16); + break; + case 3: + sprite->pos2.x = -(counter % 128 * 8) / 128 + 8; + break; + } + + sprite->pos2.y = -(Sin(counter % 128, 8)); + } + + sprite->data[2] += 12; + sub_817F70C(sprite); +} + +void sub_8181ABC(struct Sprite *sprite); +void sub_8181B4C(struct Sprite *sprite); +void sub_8181C2C(struct Sprite *sprite); + +void pokemonanimfunc_32(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_8 = -1; + HandleStartAffineAnim(sprite); + sprite->data[3] = 0; + sub_8181ABC(sprite); + sprite->callback = sub_8181ABC; +} + +void sub_8181ABC(struct Sprite *sprite) +{ + if (gUnknown_03001240[sprite->data[0]].field_0 != 0) + { + gUnknown_03001240[sprite->data[0]].field_0--; + } + else + { + s32 counter; + + sub_817F70C(sprite); + counter = sprite->data[2]; + if (sprite->data[2] > 128) + { + sprite->data[2] = 0; + sprite->callback = sub_8181B4C; + } + else + { + s32 var = 8 * gUnknown_03001240[sprite->data[0]].field_8; + sprite->pos2.x = var * (counter % 128) / 128; + sprite->pos2.y = -(Sin(counter % 128, 8)); + sprite->data[2] += 12; + } + + sub_817F70C(sprite); + } +} + +void sub_8181B4C(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 48) + { + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->pos2.y = 0; + sprite->data[2] = 0; + sprite->callback = sub_8181C2C; + } + else + { + s16 yDelta; + s16 yScale = Sin(sprite->data[4], 64) + 256; + if (sprite->data[2] >= 16 && sprite->data[2] <= 31) + { + sprite->data[3] += 8; + sprite->pos2.x -= gUnknown_03001240[sprite->data[0]].field_8; + } + + yDelta = 0; + if (yScale > 256) + yDelta = (256 - yScale) / 8; + + sprite->pos2.y = -(Sin(sprite->data[3], 20)) - yDelta; + HandleSetAffineData(sprite, 256 - Sin(sprite->data[4], 32), yScale, 0); + sprite->data[2]++; + sprite->data[4] += 8; + sprite->data[4] &= 0xFF; + } + + sub_817F70C(sprite); +} + +void sub_8181C2C(struct Sprite *sprite) +{ + s32 counter; + + sub_817F70C(sprite); + counter = sprite->data[2]; + if (counter > 128) + { + if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + { + gUnknown_03001240[sprite->data[0]].field_4--; + gUnknown_03001240[sprite->data[0]].field_0 = 10; + sprite->data[3] = 0; + sprite->data[2] = 0; + sprite->data[4] = 0; + sprite->callback = sub_8181ABC; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + register s32 var asm("r4") = gUnknown_03001240[sprite->data[0]].field_8; + + sprite->pos2.x = (var << 3) * (counter % 128) / 128 - (gUnknown_03001240[sprite->data[0]].field_8 * 8); + sprite->pos2.y = -(Sin(counter % 128, 8)); + } + + sprite->data[2] += 12; + sub_817F70C(sprite); +} + +void sub_8181CE8(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + } + + sub_817F70C(sprite); + if (sprite->data[7] > 254) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + { + gUnknown_03001240[sprite->data[0]].field_4--; + sprite->data[2] = 0; + sprite->data[7] = 0; + } + else + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + + sub_817F70C(sprite); + } + else + { + u16 rotation; + + sprite->pos2.x = -(Sin(sprite->data[7], 16)); + rotation = Sin(sprite->data[7], 32); + HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8); + sprite->data[7] += gUnknown_03001240[sprite->data[0]].field_6; + sub_817F70C(sprite); + } +} + +void pokemonanimfunc_33(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + gUnknown_03001240[id].field_6 = 4; + sub_8181CE8(sprite); + sprite->callback = sub_8181CE8; +} + +void pokemonanimfunc_34(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + } + + sub_817F70C(sprite); + if (sprite->data[7] > 254) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sub_817F70C(sprite); + } + else + { + u16 rotation; + + sprite->pos2.x = -(Sin(sprite->data[7], 16)); + sprite->pos2.y = -(Sin(sprite->data[7] % 128, 16)); + rotation = Sin(sprite->data[7], 32); + HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8); + sprite->data[7] += 8; + sub_817F70C(sprite); + } +} + +void pokemonanimfunc_35(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[7] = 0; + + if (sprite->data[2] == sprite->data[7]) + { + sprite->data[7] = 0; + sprite->data[2]++; + sprite->invisible = 0; + } + else + { + sprite->data[7]++; + sprite->invisible = 1; + } + + if (sprite->data[2] > 10) + { + sprite->invisible = 0; + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } +} + +void sub_8181F14(struct Sprite *sprite); +void sub_8181F50(struct Sprite *sprite); +void sub_8181FC0(struct Sprite *sprite); + +void pokemonanimfunc_36(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[7] = 0; + sprite->callback = sub_8181F14; +} + +void sub_8181F14(struct Sprite *sprite) +{ + if (sprite->data[7] > 31) + { + sprite->data[7] = 32; + sprite->data[2] = 0; + sprite->callback = sub_8181F50; + } + else + { + sprite->data[7] += 4; + } + + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[7] << 8); +} + +void sub_8181F50(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 512) + { + sprite->callback = sub_8181FC0; + sprite->data[6] = 0; + } + else + { + sprite->pos2.x = -(sprite->data[2] * 16) / 512; + sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4)); + sprite->data[2] += 12; + } + + sub_817F70C(sprite); +} + +void sub_8181FC0(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->data[7] -= 2; + if (sprite->data[7] < 0) + { + sprite->data[7] = 0; + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->pos2.x = -(Sin(sprite->data[7] * 2, 16)); + } + + HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[7] << 8); + sub_817F70C(sprite); +} -- cgit v1.2.3 From 8ca9bbe425ef909716317fb7d8751886f8db8c3b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 27 Jan 2018 21:10:00 +0100 Subject: more pokemon anim functions decompiled --- asm/pokemon_animation.s | 2860 +---------------------------------------------- src/pokemon_animation.c | 1082 +++++++++++++++++- 2 files changed, 1073 insertions(+), 2869 deletions(-) diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index 562300f3f..96ec4f77a 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -5,2865 +5,7 @@ .text - - - thumb_func_start pokemonanimfunc_37 -pokemonanimfunc_37: @ 818201C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08182036 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] -_08182036: - adds r0, r4, 0 - bl sub_817F70C - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xFF - ble _08182060 - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _081820A6 - .pool -_08182060: - adds r0, r1, 0 - adds r0, 0x10 - strh r0, [r4, 0x3C] - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182072 - adds r0, 0x7F -_08182072: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r1, [r4, r2] - adds r0, r1, 0 - cmp r1, 0 - bge _08182092 - adds r0, 0x7F -_08182092: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] -_081820A6: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _081820B2 - adds r0, 0x7F -_081820B2: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - bl Sin - adds r3, r0, 0 - movs r2, 0x80 - lsls r2, 1 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_37 - - thumb_func_start pokemonanimfunc_38 -pokemonanimfunc_38: @ 81820E0 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r0, 0 - strh r0, [r4, 0x3C] - strh r0, [r4, 0x36] - ldr r0, =sub_81820FC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_38 - - thumb_func_start sub_81820FC -sub_81820FC: @ 81820FC - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x18 - ble _0818212C - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0818214A - movs r0, 0 - strh r0, [r4, 0x36] - ldr r0, =sub_818216C - str r0, [r4, 0x1C] - b _0818214A - .pool -_0818212C: - adds r0, r1, 0x2 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] -_0818214A: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - negs r3, r3 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81820FC - - thumb_func_start sub_818216C -sub_818216C: @ 818216C - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x20 - ble _0818218C - movs r0, 0x1 - strh r0, [r4, 0x3A] - ldr r0, =sub_81821CC - str r0, [r4, 0x1C] - b _081821AA - .pool -_0818218C: - adds r0, r1, 0x2 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] -_081821AA: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - negs r3, r3 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818216C - - thumb_func_start sub_81821CC -sub_81821CC: @ 81821CC - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 2 - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x9 - ble _081821F0 - movs r0, 0x20 - strh r0, [r4, 0x3C] - ldr r0, =sub_8182248 - str r0, [r4, 0x1C] -_081821F0: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1D - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _08182224 - movs r1, 0x3A - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] -_08182224: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - negs r3, r3 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81821CC - - thumb_func_start sub_8182248 -sub_8182248: @ 8182248 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bgt _08182270 - movs r0, 0 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _0818228E - .pool -_08182270: - subs r0, r1, 0x2 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] -_0818228E: - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3C] - negs r3, r3 - lsls r3, 24 - lsrs r3, 16 - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8182248 - - thumb_func_start pokemonanimfunc_39 -pokemonanimfunc_39: @ 81822B0 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x28 - ble _081822D0 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - b _0818235C - .pool -_081822D0: - movs r0, 0x1 - ands r0, r1 - movs r5, 0xFF - cmp r0, 0 - bne _081822DC - movs r5, 0x1 -_081822DC: - movs r0, 0x32 - ldrsh r2, [r4, r0] - adds r0, r2, 0 - cmp r2, 0 - bge _081822E8 - adds r0, r2, 0x3 -_081822E8: - asrs r0, 2 - lsls r0, 2 - subs r0, r2, r0 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - cmp r1, 0 - bne _0818232C - lsls r0, r2, 7 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0818230C - adds r0, 0xFF -_0818230C: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - bl Sin - lsls r1, r5, 24 - asrs r1, 24 - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - strh r0, [r4, 0x24] - negs r0, r0 - b _0818235A -_0818232C: - lsls r0, r2, 7 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _0818233C - adds r0, 0xFF -_0818233C: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - bl Sin - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - lsls r1, r5, 24 - asrs r1, 24 - muls r0, r1 - strh r0, [r4, 0x24] -_0818235A: - strh r0, [r4, 0x26] -_0818235C: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_39 - - thumb_func_start pokemonanimfunc_3A -pokemonanimfunc_3A: @ 8182370 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08182392 - adds r0, r4, 0 - bl HandleStartAffineAnim - strh r5, [r4, 0x38] - strh r5, [r4, 0x3A] - strh r5, [r4, 0x3C] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_08182392: - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _081823E4 - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - beq _08182494 - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 3 - movs r1, 0x14 - bl __divsi3 - adds r1, r0, 0 - ldrh r0, [r4, 0x3C] - lsls r1, 16 - asrs r1, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x40 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r2, r1, 0 - lsls r0, 16 - asrs r0, 16 - subs r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - b _08182494 -_081823E4: - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - bne _08182424 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x3F - ble _08182410 - movs r0, 0x40 - strh r0, [r4, 0x3C] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08182410: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r1, 0x40 - bl Cos - lsls r0, 16 - lsrs r3, r0, 16 - b _08182474 - .pool -_08182424: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x40 - bl Sin - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x3F - ble _08182448 - movs r0, 0 - movs r1, 0x3 - strh r1, [r4, 0x38] - movs r1, 0xA - strh r1, [r4, 0x3A] - strh r0, [r4, 0x3C] - b _08182474 -_08182448: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x30 - ble _0818245C - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0818245C - movs r0, 0x2 - b _0818246E -_0818245C: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _08182474 - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08182474 - movs r0, 0x1 -_0818246E: - strh r0, [r4, 0x38] - movs r0, 0x14 - strh r0, [r4, 0x3A] -_08182474: - ldrh r0, [r4, 0x3C] - adds r0, 0x2 - strh r0, [r4, 0x3C] - movs r0, 0x80 - lsls r0, 1 - adds r2, r0, 0 - lsls r0, r3, 16 - asrs r0, 16 - subs r2, r0 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData -_08182494: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_3A - - thumb_func_start pokemonanimfunc_3B -pokemonanimfunc_3B: @ 81824A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081824BA - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] -_081824BA: - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _081824E8 - movs r0, 0 - strh r0, [r4, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08182540 - .pool -_081824E8: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _081824F4 - adds r0, 0xFF -_081824F4: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - strh r0, [r4, 0x3C] - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182518 - adds r0, 0x7F -_08182518: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x60 - bl Sin - adds r2, r0, 0 - movs r1, 0x80 - lsls r1, 1 - lsls r2, 16 - asrs r2, 16 - adds r2, r1 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData -_08182540: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_3B - - thumb_func_start pokemonanimfunc_3C -pokemonanimfunc_3C: @ 8182548 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08182562 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] -_08182562: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r5, 0x80 - lsls r5, 1 - cmp r0, r5 - ble _08182590 - movs r0, 0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r5, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _081825D4 - .pool -_08182590: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x4 - strh r0, [r4, 0x3C] - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _081825AE - adds r0, 0x3F -_081825AE: - asrs r0, 6 - lsls r0, 6 - subs r0, r1, r0 - lsls r0, 17 - asrs r0, 16 - movs r1, 0x80 - bl Sin - adds r2, r0, 0 - lsls r2, 16 - asrs r2, 16 - adds r2, r5 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0 - bl HandleSetAffineData -_081825D4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_3C - - thumb_func_start pokemonanimfunc_3D -pokemonanimfunc_3D: @ 81825DC - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - ldr r0, =sub_81825F8 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_3D - - thumb_func_start sub_81825F8 -sub_81825F8: @ 81825F8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - movs r1, 0 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _0818261C - strh r1, [r4, 0x3C] - strh r1, [r4, 0x3A] - ldr r0, =sub_8182648 - str r0, [r4, 0x1C] - movs r0, 0x40 - b _08182620 - .pool -_0818261C: - movs r1, 0x3C - ldrsh r0, [r4, r1] -_08182620: - movs r1, 0x80 - bl Sin - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x80 - lsls r1, 1 - lsls r2, r0, 16 - asrs r2, 16 - adds r2, r1 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81825F8 - - thumb_func_start sub_8182648 -sub_8182648: @ 8182648 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x4 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5F - ble _08182672 - movs r0, 0 - movs r1, 0x80 - bl Cos - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - strh r0, [r4, 0x3C] - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - b _081826C8 -_08182672: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - movs r2, 0x3A - ldrsh r1, [r4, r2] - lsls r1, 2 - negs r1, r1 - subs r1, r0 - strh r1, [r4, 0x26] - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x3F - ble _081826A4 - ldr r5, =0x0000ffff - adds r0, r1, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - b _081826A8 - .pool -_081826A4: - movs r5, 0x1 - movs r0, 0 -_081826A8: - lsls r0, 16 - asrs r0, 15 - ldrh r1, [r4, 0x3C] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x80 - bl Cos - lsls r1, r5, 16 - asrs r1, 16 - adds r2, r1, 0 - muls r2, r0 - adds r0, r2, 0 - lsls r0, 16 - lsrs r2, r0, 16 -_081826C8: - movs r1, 0x80 - lsls r1, 1 - lsls r2, 16 - asrs r2, 16 - adds r2, r1 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _081826EE - movs r0, 0 - strh r0, [r4, 0x3C] - ldr r0, =sub_81826F8 - str r0, [r4, 0x1C] -_081826EE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8182648 - - thumb_func_start sub_81826F8 -sub_81826F8: @ 81826F8 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x80 - bl Cos - lsls r0, 16 - lsrs r5, r0, 16 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x3F - ble _08182742 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData -_08182742: - movs r1, 0x80 - lsls r1, 1 - lsls r2, r5, 16 - asrs r2, 16 - adds r2, r1 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81826F8 - - thumb_func_start sub_8182764 -sub_8182764: @ 8182764 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08182798 - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - b _081827F4 - .pool -_08182798: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _081827A4 - adds r0, 0xFF -_081827A4: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - movs r2, 0x3C - ldrsh r1, [r4, r2] - adds r0, r1, 0 - cmp r1, 0 - bge _081827CC - adds r0, 0x7F -_081827CC: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x60 - bl Sin - adds r1, r0, 0 - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - asrs r1, 16 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData -_081827F4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8182764 - - thumb_func_start pokemonanimfunc_3E -pokemonanimfunc_3E: @ 81827FC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08182822 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r1, 0x8 - strh r1, [r4, 0x3A] - movs r0, 0x80 - lsls r0, 2 - strh r0, [r4, 0x38] - strh r1, [r4, 0x36] -_08182822: - adds r0, r4, 0 - bl sub_8182764 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_3E - - thumb_func_start sub_8182830 -sub_8182830: @ 8182830 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08182864 - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - b _081828C0 - .pool -_08182864: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182870 - adds r0, 0xFF -_08182870: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - movs r2, 0x3C - ldrsh r1, [r4, r2] - adds r0, r1, 0 - cmp r1, 0 - bge _08182898 - adds r0, 0x3F -_08182898: - asrs r0, 6 - lsls r0, 6 - subs r0, r1, r0 - lsls r0, 17 - asrs r0, 16 - movs r1, 0x80 - bl Sin - adds r1, r0, 0 - lsls r1, 16 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - asrs r1, 16 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - movs r3, 0 - bl HandleSetAffineData -_081828C0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8182830 - - thumb_func_start pokemonanimfunc_3F -pokemonanimfunc_3F: @ 81828C8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081828EE - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r0, 0x4 - strh r0, [r4, 0x3A] - adds r0, 0xFC - strh r0, [r4, 0x38] - movs r0, 0x10 - strh r0, [r4, 0x36] -_081828EE: - adds r0, r4, 0 - bl sub_8182830 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_3F - - thumb_func_start pokemonanimfunc_40 -pokemonanimfunc_40: @ 81828FC - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _0818291A - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] -_0818291A: - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _08182948 - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _0818299E - .pool -_08182948: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182954 - adds r0, 0xFF -_08182954: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - strh r0, [r4, 0x3C] - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182978 - adds r0, 0x7F -_08182978: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x60 - bl Sin - adds r2, r0, 0 - lsls r2, 16 - movs r0, 0x80 - lsls r0, 17 - adds r2, r0 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData -_0818299E: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_40 - - thumb_func_start pokemonanimfunc_41 -pokemonanimfunc_41: @ 81829AC - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081829CA - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] -_081829CA: - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _081829F8 - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08182A5E - .pool -_081829F8: - movs r1, 0x3C - ldrsh r0, [r4, r1] - adds r1, r0, 0 - cmp r0, 0 - bge _08182A04 - adds r1, 0xFF -_08182A04: - asrs r1, 8 - lsls r1, 8 - subs r1, r0, r1 - lsls r1, 16 - asrs r0, r1, 16 - lsrs r1, 31 - adds r0, r1 - asrs r0, 1 - movs r1, 0x10 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - adds r1, r0, 0 - cmp r0, 0 - bge _08182A30 - adds r1, 0xFF -_08182A30: - asrs r1, 8 - lsls r1, 8 - subs r1, r0, r1 - lsls r1, 16 - asrs r0, r1, 16 - lsrs r1, 31 - adds r0, r1 - asrs r0, 1 - movs r1, 0x40 - bl Sin - adds r2, r0, 0 - negs r2, r2 - lsls r2, 16 - movs r0, 0x80 - lsls r0, 17 - adds r2, r0 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData -_08182A5E: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_41 - - thumb_func_start pokemonanimfunc_42 -pokemonanimfunc_42: @ 8182A6C - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08182A8A - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] -_08182A8A: - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 2 - cmp r1, r0 - ble _08182AB8 - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08182B16 - .pool -_08182AB8: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182AC4 - adds r0, 0xFF -_08182AC4: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3C] - adds r0, 0x8 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - adds r1, r0, 0 - cmp r0, 0 - bge _08182AEA - adds r1, 0xFF -_08182AEA: - asrs r1, 8 - lsls r1, 8 - subs r1, r0, r1 - lsls r1, 16 - asrs r0, r1, 16 - lsrs r1, 31 - adds r0, r1 - asrs r0, 1 - movs r1, 0x60 - bl Sin - adds r2, r0, 0 - lsls r2, 16 - movs r0, 0x80 - lsls r0, 17 - adds r2, r0 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData -_08182B16: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_42 - - thumb_func_start pokemonanimfunc_43 -pokemonanimfunc_43: @ 8182B24 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - ble _08182B48 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3A] - b _08182C08 - .pool -_08182B48: - movs r1, 0x32 - ldrsh r2, [r4, r1] - adds r0, r2, 0 - cmp r2, 0 - bge _08182B56 - ldr r1, =0x000001ff - adds r0, r2, r1 -_08182B56: - asrs r3, r0, 9 - adds r1, r3, 0 - adds r0, r1, 0 - cmp r1, 0 - bge _08182B62 - adds r0, r1, 0x3 -_08182B62: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _08182BA4 - cmp r0, 0x1 - bgt _08182B80 - cmp r0, 0 - beq _08182B8A - b _08182BE2 - .pool -_08182B80: - cmp r0, 0x2 - beq _08182BB8 - cmp r0, 0x3 - beq _08182BCA - b _08182BE2 -_08182B8A: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _08182B9C - ldr r1, =0x000001ff - adds r0, r1 -_08182B9C: - asrs r0, 9 - b _08182BE0 - .pool -_08182BA4: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08182BB2 - adds r0, 0x1F -_08182BB2: - asrs r0, 5 - subs r0, 0x10 - b _08182BE0 -_08182BB8: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08182BC6 - adds r0, 0x1F -_08182BC6: - asrs r0, 5 - b _08182BE0 -_08182BCA: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _08182BDC - ldr r1, =0x000001ff - adds r0, r1 -_08182BDC: - asrs r0, 9 - adds r0, 0x10 -_08182BE0: - strh r0, [r4, 0x24] -_08182BE2: - movs r0, 0x32 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08182BEE - adds r0, 0x7F -_08182BEE: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x18 - strh r0, [r4, 0x32] -_08182C08: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_43 - - thumb_func_start pokemonanimfunc_44 -pokemonanimfunc_44: @ 8182C18 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08182C34 - strh r0, [r4, 0x3A] - movs r0, 0x40 - strh r0, [r4, 0x3C] - adds r0, r1, 0x1 - strh r0, [r4, 0x32] -_08182C34: - ldrh r0, [r4, 0x3C] - adds r1, r0, 0 - adds r1, 0x8 - movs r3, 0 - strh r1, [r4, 0x3C] - ldrh r2, [r4, 0x3A] - movs r5, 0x3A - ldrsh r0, [r4, r5] - cmp r0, 0x4 - bne _08182C52 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _08182C60 - b _08182C5A -_08182C52: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7F - ble _08182C60 -_08182C5A: - strh r3, [r4, 0x3C] - adds r0, r2, 0x1 - strh r0, [r4, 0x3A] -_08182C60: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _08182D08 - lsls r0, 2 - ldr r1, =_08182C78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08182C78: - .4byte _08182CEC - .4byte _08182C8C - .4byte _08182CAA - .4byte _08182CCC - .4byte _08182CEC -_08182C8C: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r1, 0x8 - bl Cos - negs r0, r0 - strh r0, [r4, 0x24] - movs r5, 0x3C - ldrsh r0, [r4, r5] - movs r1, 0x8 - bl Sin - subs r0, 0x8 - strh r0, [r4, 0x26] - b _08182D12 -_08182CAA: - ldrh r0, [r4, 0x3C] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - adds r0, 0x8 - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - b _08182D12 -_08182CCC: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3C] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - adds r0, 0x8 - strh r0, [r4, 0x26] - b _08182D12 -_08182CEC: - movs r5, 0x3C - ldrsh r0, [r4, r5] - movs r1, 0x8 - bl Sin - subs r0, 0x8 - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - b _08182D12 -_08182D08: - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_08182D12: - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_44 - - thumb_func_start pokemonanimfunc_45 -pokemonanimfunc_45: @ 8182D24 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x20 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8180714 - ldr r0, =sub_8180714 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_45 - - thumb_func_start pokemonanimfunc_46 -pokemonanimfunc_46: @ 8182D40 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F8FC - ldr r0, =sub_817F8FC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_46 - - thumb_func_start pokemonanimfunc_47 -pokemonanimfunc_47: @ 8182D5C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F978 - ldr r0, =sub_817F978 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_47 - - thumb_func_start pokemonanimfunc_48 -pokemonanimfunc_48: @ 8182D78 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x6] - ldrh r0, [r4, 0x3A] - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_8180900 - ldr r0, =sub_8180900 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_48 - - thumb_func_start pokemonanimfunc_49 -pokemonanimfunc_49: @ 8182DB4 - push {lr} - movs r1, 0x1 - strh r1, [r0, 0x3A] - bl pokemonanimfunc_05 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_49 - - thumb_func_start pokemonanimfunc_4A -pokemonanimfunc_4A: @ 8182DC4 - push {lr} - movs r1, 0x1 - strh r1, [r0, 0x3A] - bl pokemonanimfunc_48 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_4A - - thumb_func_start pokemonanimfunc_4B -pokemonanimfunc_4B: @ 8182DD4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08182DE2 - strh r0, [r4, 0x2E] -_08182DE2: - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bgt _08182DF6 - adds r0, r4, 0 - bl sub_817FC20 - movs r0, 0x1 - b _08182DF8 -_08182DF6: - subs r0, r1, 0x1 -_08182DF8: - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_4B - - thumb_func_start pokemonanimfunc_4C -pokemonanimfunc_4C: @ 8182E00 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1E - strh r0, [r4, 0x2E] - movs r0, 0x3 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817FCDC - ldr r0, =sub_817FCDC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_4C - - thumb_func_start pokemonanimfunc_4D -pokemonanimfunc_4D: @ 8182E20 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1E - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817FD44 - ldr r0, =sub_817FD44 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_4D - - thumb_func_start pokemonanimfunc_4E -pokemonanimfunc_4E: @ 8182E3C - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 3 - strh r0, [r1, 0x6] - strh r3, [r1] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_817FE30 - ldr r0, =sub_817FE30 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_4E - - thumb_func_start pokemonanimfunc_4F -pokemonanimfunc_4F: @ 8182E7C - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 2 - strh r0, [r1, 0x6] - movs r0, 0x3 - strh r0, [r1, 0x8] - movs r0, 0xC - strh r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_817FFF0 - ldr r0, =sub_817FFF0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_4F - - thumb_func_start pokemonanimfunc_50 -pokemonanimfunc_50: @ 8182EBC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x18 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_818031C - ldr r0, =sub_818031C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_50 - - thumb_func_start pokemonanimfunc_51 -pokemonanimfunc_51: @ 8182ED8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_81804F8 - ldr r0, =sub_81804F8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_51 - - thumb_func_start pokemonanimfunc_52 -pokemonanimfunc_52: @ 8182EF4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F9F4 - ldr r0, =sub_817F9F4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_52 - - thumb_func_start pokemonanimfunc_53 -pokemonanimfunc_53: @ 8182F10 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3C - strh r0, [r1] - movs r0, 0x1E - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_817FF3C - ldr r0, =sub_817FF3C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_53 - - thumb_func_start pokemonanimfunc_54 -pokemonanimfunc_54: @ 8182F48 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x2] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_8181214 - ldr r0, =sub_8181214 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_54 - - thumb_func_start pokemonanimfunc_55 -pokemonanimfunc_55: @ 8182F80 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x4 - strh r0, [r1, 0x6] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_8181810 - ldr r0, =sub_8181810 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_55 - - thumb_func_start pokemonanimfunc_56 -pokemonanimfunc_56: @ 8182FB8 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl HandleStartAffineAnim - strh r5, [r4, 0x34] - adds r0, r4, 0 - bl sub_8181ABC - ldr r0, =sub_8181ABC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_56 - - thumb_func_start pokemonanimfunc_07 -pokemonanimfunc_07: @ 8182FFC - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x2 - strh r0, [r1, 0x6] - adds r0, r4, 0 - bl sub_8181CE8 - ldr r0, =sub_8181CE8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_07 - - thumb_func_start pokemonanimfunc_08 -pokemonanimfunc_08: @ 8183030 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x4 - strh r0, [r1, 0x6] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_8181CE8 - ldr r0, =sub_8181CE8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_08 - - thumb_func_start pokemonanimfunc_0B -pokemonanimfunc_0B: @ 8183068 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x64 - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_81814D4 - ldr r0, =sub_81814D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0B - - thumb_func_start pokemonanimfunc_0C -pokemonanimfunc_0C: @ 818309C - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x32 - strh r0, [r1, 0x8] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81814D4 - ldr r0, =sub_81814D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0C - - thumb_func_start pokemonanimfunc_0D -pokemonanimfunc_0D: @ 81830D4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x64 - strh r0, [r1, 0x8] - adds r0, r4, 0 - bl sub_81815D4 - ldr r0, =sub_81815D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0D - - thumb_func_start pokemonanimfunc_0E -pokemonanimfunc_0E: @ 8183108 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x32 - strh r0, [r1, 0x8] - movs r0, 0x2 - strh r0, [r1, 0x4] - adds r0, r4, 0 - bl sub_81815D4 - ldr r0, =sub_81815D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_0E - - thumb_func_start sub_8183140 -sub_8183140: @ 8183140 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r0, 0x90 - lsls r0, 4 - cmp r2, r0 - ble _0818315C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - b _08183180 - .pool -_0818315C: - adds r1, r2, 0 - adds r1, 0xC0 - adds r0, r1, 0 - cmp r1, 0 - bge _0818316A - ldr r3, =0x000001bf - adds r0, r2, r3 -_0818316A: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x3C] - adds r0, r1 -_08183180: - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - ldrh r3, [r4, 0x32] - adds r0, r3 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8183140 - - thumb_func_start pokemonanimfunc_57 -pokemonanimfunc_57: @ 8183194 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3C - strh r0, [r4, 0x2E] - movs r0, 0x3 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_8183140 - ldr r0, =sub_8183140 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_57 - - thumb_func_start pokemonanimfunc_58 -pokemonanimfunc_58: @ 81831B4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1E - strh r0, [r4, 0x2E] - movs r0, 0x3 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_8183140 - ldr r0, =sub_8183140 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_58 - - thumb_func_start pokemonanimfunc_59 -pokemonanimfunc_59: @ 81831D4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - ble _081831F8 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3A] - b _081832BC - .pool -_081831F8: - movs r1, 0x32 - ldrsh r2, [r4, r1] - adds r0, r2, 0 - cmp r2, 0 - bge _08183206 - ldr r1, =0x000001ff - adds r0, r2, r1 -_08183206: - asrs r3, r0, 9 - adds r1, r3, 0 - adds r0, r1, 0 - cmp r1, 0 - bge _08183212 - adds r0, r1, 0x3 -_08183212: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _08183268 - cmp r0, 0x1 - bgt _08183230 - cmp r0, 0 - beq _0818323A - b _08183298 - .pool -_08183230: - cmp r0, 0x2 - beq _0818324C - cmp r0, 0x3 - beq _08183284 - b _08183298 -_0818323A: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08183248 - adds r0, 0x1F -_08183248: - asrs r0, 5 - b _08183296 -_0818324C: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _0818325E - ldr r1, =0x000001ff - adds r0, r1 -_0818325E: - asrs r0, 9 - b _08183296 - .pool -_08183268: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _0818327A - ldr r1, =0x000001ff - adds r0, r1 -_0818327A: - asrs r0, 9 - adds r0, 0x10 - b _08183296 - .pool -_08183284: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08183292 - adds r0, 0x1F -_08183292: - asrs r0, 5 - subs r0, 0x10 -_08183296: - strh r0, [r4, 0x24] -_08183298: - movs r0, 0x32 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _081832A4 - adds r0, 0x7F -_081832A4: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x18 - strh r0, [r4, 0x32] -_081832BC: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_59 - - thumb_func_start sub_81832C8 -sub_81832C8: @ 81832C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - movs r0, 0 - mov r8, r0 - movs r2, 0x38 - ldrsh r1, [r6, r2] - movs r2, 0x3A - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0818331A - mov r0, r8 - strh r0, [r6, 0x26] - strh r0, [r6, 0x38] - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldrh r1, [r6, 0x36] - movs r2, 0x36 - ldrsh r0, [r6, r2] - cmp r0, 0x1 - bgt _08183310 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r6, 0x1C] - b _081833DC - .pool -_08183310: - subs r0, r1, 0x1 - strh r0, [r6, 0x36] - mov r0, r8 - strh r0, [r6, 0x3C] - b _081833DC -_0818331A: - movs r1, 0x38 - ldrsh r5, [r6, r1] - lsls r0, r5, 7 - movs r2, 0x3A - ldrsh r4, [r6, r2] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r4, 0 - bge _08183334 - adds r4, 0x3 -_08183334: - asrs r1, r4, 2 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r1 - blt _08183358 - cmp r5, r0 - bge _08183358 - ldrh r0, [r6, 0x3C] - adds r0, 0x33 - strh r0, [r6, 0x3C] - movs r1, 0xFF - mov r8, r1 - ands r1, r0 - mov r8, r1 -_08183358: - movs r1, 0x30 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0818337C - lsls r4, r2, 16 - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - ldr r2, =0xffffff00 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - b _08183392 - .pool -_0818337C: - lsls r4, r2, 16 - asrs r0, r4, 16 - movs r1, 0x10 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 -_08183392: - adds r7, r4, 0 - ldrh r4, [r6, 0x34] - lsls r4, 24 - lsrs r4, 24 - mov r5, r8 - adds r0, r4, 0 - movs r1, 0x5 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl Sin - adds r5, r0, 0 - asrs r0, r7, 16 - adds r1, r4, 0 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r2, r1, 0 - subs r2, r5 - subs r2, r0 - mov r0, r9 - lsls r1, r0, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r6, 0 - movs r3, 0 - bl SetAffineData - ldrh r0, [r6, 0x38] - adds r0, 0x1 - strh r0, [r6, 0x38] -_081833DC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81832C8 - - thumb_func_start pokemonanimfunc_5A -pokemonanimfunc_5A: @ 81833E8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _0818340A - movs r4, 0x1 - strh r4, [r5, 0x32] - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r4, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x3A] - strh r0, [r5, 0x34] - strh r6, [r5, 0x38] - strh r6, [r5, 0x3C] -_0818340A: - adds r0, r5, 0 - bl sub_81832C8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_5A - - thumb_func_start sub_8183418 -sub_8183418: @ 8183418 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - movs r0, 0 - mov r8, r0 - movs r2, 0x38 - ldrsh r1, [r6, r2] - movs r2, 0x3A - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0818346A - mov r0, r8 - strh r0, [r6, 0x38] - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldrh r1, [r6, 0x36] - movs r2, 0x36 - ldrsh r0, [r6, r2] - cmp r0, 0x1 - bgt _08183460 - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r6, 0x1C] - b _08183538 - .pool -_08183460: - subs r0, r1, 0x1 - strh r0, [r6, 0x36] - mov r0, r8 - strh r0, [r6, 0x3C] - b _08183538 -_0818346A: - movs r1, 0x38 - ldrsh r5, [r6, r1] - lsls r0, r5, 7 - movs r2, 0x3A - ldrsh r4, [r6, r2] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r4, 0 - bge _08183486 - adds r4, 0x3 -_08183486: - asrs r1, r4, 2 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r1 - blt _081834AC - cmp r5, r0 - bge _081834AC - ldrh r0, [r6, 0x3C] - adds r0, 0x33 - strh r0, [r6, 0x3C] - movs r1, 0xFF - mov r8, r1 - mov r2, r8 - ands r2, r0 - mov r8, r2 -_081834AC: - ldrh r0, [r6, 0x34] - lsls r0, 24 - lsrs r7, r0, 24 - movs r1, 0x30 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _081834F0 - mov r2, r9 - lsls r0, r2, 16 - asrs r0, 16 - adds r1, r7, 0 - bl Sin - adds r4, r0, 0 - mov r5, r8 - adds r0, r7, 0 - movs r1, 0x5 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 23 - adds r0, r5, 0 - bl Sin - ldr r1, =0xffffff00 - adds r0, r1 - adds r4, r0 - lsls r4, 16 - lsrs r1, r4, 16 - b _08183522 - .pool -_081834F0: - mov r4, r8 - adds r0, r7, 0 - movs r1, 0x5 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 23 - adds r0, r4, 0 - bl Sin - adds r4, r0, 0 - mov r2, r9 - lsls r0, r2, 16 - asrs r0, 16 - adds r1, r7, 0 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r4 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 -_08183522: - lsls r1, 16 - asrs r1, 16 - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - movs r3, 0 - bl SetAffineData - ldrh r0, [r6, 0x38] - adds r0, 0x1 - strh r0, [r6, 0x38] -_08183538: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8183418 - - thumb_func_start pokemonanimfunc_5B -pokemonanimfunc_5B: @ 8183544 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _08183566 - movs r4, 0x1 - strh r4, [r5, 0x32] - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r4, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x3A] - strh r0, [r5, 0x34] - strh r6, [r5, 0x38] - strh r6, [r5, 0x3C] -_08183566: - adds r0, r5, 0 - bl sub_8183418 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_5B - - thumb_func_start sub_8183574 -sub_8183574: @ 8183574 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r3, =gUnknown_0860AA80 - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r0, r1, r3 - ldrb r5, [r0] - adds r2, r5, 0 - cmp r5, 0xFF - beq _081835A6 - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r5, r0, 24 -_081835A6: - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r6, [r0] - movs r7, 0 - cmp r2, 0xFE - beq _081835C2 - mov r1, r9 - subs r0, r6, r1 - muls r0, r5 - adds r1, r6, 0 - bl __divsi3 - lsls r0, 24 - lsrs r7, r0, 24 -_081835C2: - cmp r5, 0xFF - bne _081835D8 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x26] - b _0818360A - .pool -_081835D8: - mov r1, r8 - adds r1, 0xC0 - adds r0, r1, 0 - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - adds r1, r7, 0 - bl Sin - adds r0, r7 - strh r0, [r4, 0x26] - cmp r9, r6 - bne _081835FC - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r0, 0 - b _08183608 -_081835FC: - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_08183608: - strh r0, [r4, 0x3A] -_0818360A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8183574 + thumb_func_start pokemonanimfunc_5C pokemonanimfunc_5C: @ 8183618 diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 87949e88b..1496069df 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -1071,14 +1071,13 @@ void pokemonanimfunc_02(struct Sprite *sprite) } else { - s8 var; - + s8 sign; if (!(sprite->data[2] & 1)) - var = 1; + sign = 1; else - var = -1; + sign = -1; - sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * var; + sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * sign; } sprite->data[2]++; @@ -1427,19 +1426,19 @@ void pokemonanimfunc_11(struct Sprite *sprite) } else { - s8 var; + s8 sign; s32 index, amplitude; if (!(sprite->data[2] & 1)) - var = 1; + sign = 1; else - var = -1; + sign = -1; amplitude = Sin(sprite->data[2] / 4, 8); index = sprite->data[2] % 256; - sprite->pos2.y = Sin(index, amplitude) * var; - sprite->pos2.x = Cos(index, amplitude) * var; + sprite->pos2.y = Sin(index, amplitude) * sign; + sprite->pos2.x = Cos(index, amplitude) * sign; } sprite->data[2] += 9; @@ -3132,3 +3131,1066 @@ void sub_8181FC0(struct Sprite *sprite) HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[7] << 8); sub_817F70C(sprite); } + +void pokemonanimfunc_37(struct Sprite *sprite) +{ + u16 rotation; + + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + } + + sub_817F70C(sprite); + if (sprite->data[7] > 255) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[7] = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[7] += 16; + sprite->pos2.x = -(Sin(sprite->data[7] % 128, 8)); + sprite->pos2.y = -(Sin(sprite->data[7] % 128, 8)); + } + + rotation = Sin(sprite->data[7] % 128, 16); + HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8); + sub_817F70C(sprite); +} + +void sub_81820FC(struct Sprite *sprite); +void sub_818216C(struct Sprite *sprite); +void sub_81821CC(struct Sprite *sprite); +void sub_8182248(struct Sprite *sprite); + +void pokemonanimfunc_38(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[7] = 0; + sprite->data[4] = 0; + sprite->callback = sub_81820FC; +} + +void sub_81820FC(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[7] > 24) + { + if (++sprite->data[4] > 4) + { + sprite->data[4] = 0; + sprite->callback = sub_818216C; + } + } + else + { + sprite->data[7] += 2; + sprite->pos2.x = Sin(sprite->data[7], 8); + sprite->pos2.y = -(Sin(sprite->data[7], 8)); + } + + HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + sub_817F70C(sprite); +} + +void sub_818216C(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[7] > 32) + { + sprite->data[6] = 1; + sprite->callback = sub_81821CC; + } + else + { + sprite->data[7] += 2; + sprite->pos2.x = Sin(sprite->data[7], 8); + sprite->pos2.y = -(Sin(sprite->data[7], 8)); + } + + HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + sub_817F70C(sprite); +} + +void sub_81821CC(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->data[7] += (sprite->data[6] * 4); + if (sprite->data[5] > 9) + { + sprite->data[7] = 32; + sprite->callback = sub_8182248; + } + + sprite->pos2.x = Sin(sprite->data[7], 8); + sprite->pos2.y = -(Sin(sprite->data[7], 8)); + if (sprite->data[7] <= 28 || sprite->data[7] >= 36) + { + sprite->data[6] *= -1; + sprite->data[5]++; + } + + HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + sub_817F70C(sprite); +} + +void sub_8182248(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[7] <= 0) + { + sprite->data[7] = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[7] -= 2; + sprite->pos2.x = Sin(sprite->data[7], 8); + sprite->pos2.y = -(Sin(sprite->data[7], 8)); + } + + HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + sub_817F70C(sprite); +} + +void pokemonanimfunc_39(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 40) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s8 sign; + if (!(sprite->data[2] & 1)) + sign = 1; + else + sign = -1; + + if ((sprite->data[2] % 4) / 2 == 0) + { + sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 16) * sign; + sprite->pos2.y = -(sprite->pos2.x); + } + else + { + sprite->pos2.x = -(Sin((sprite->data[2] * 128 / 40) % 256, 16)) * sign; + sprite->pos2.y = sprite->pos2.x; + } + } + + sprite->data[2]++; + sub_817F70C(sprite); +} + +void pokemonanimfunc_3A(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[5] = 0; + sprite->data[6] = 0; + sprite->data[7] = 0; + sprite->data[2]++; + } + + if (sprite->data[6] > 0) + { + sprite->data[6]--; + if (sprite->data[5] != 3) + { + s16 scale = (8 * sprite->data[6]) / 20; + scale = Sin(sprite->data[7] - scale, 64); + HandleSetAffineData(sprite, 0x100 - scale, 0x100 - scale, 0); + } + } + else + { + s16 var; + + if (sprite->data[5] == 3) + { + if (sprite->data[7] > 63) + { + sprite->data[7] = 64; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + var = Cos(sprite->data[7], 64); + } + else + { + var = Sin(sprite->data[7], 64); + if (sprite->data[7] > 63) + { + sprite->data[5] = 3; + sprite->data[6] = 10; + sprite->data[7] = 0; + } + else + { + if (var > 48 && sprite->data[5] == 1) + { + sprite->data[5] = 2; + sprite->data[6] = 20; + } + else if (var > 16 && sprite->data[5] == 0) + { + sprite->data[5] = 1; + sprite->data[6] = 20; + } + } + } + + sprite->data[7] += 2; + HandleSetAffineData(sprite, 0x100 - var, 0x100 - var, 0); + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_3B(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + } + + if (sprite->data[7] > 512) + { + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 yScale; + + sprite->pos2.y = Sin(sprite->data[7] % 256, 8); + sprite->data[7] += 8; + yScale = Sin(sprite->data[7] % 128, 96); + HandleSetAffineData(sprite, 0x100, yScale + 0x100, 0); + } +} + +void pokemonanimfunc_3C(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + } + + if (sprite->data[7] > 256) + { + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 yScale; + + sprite->pos2.y = Sin(sprite->data[7], 16); + sprite->data[7] += 4; + yScale = Sin((sprite->data[7] % 64) * 2, 128); + HandleSetAffineData(sprite, 0x100, yScale + 0x100, 0); + } +} + +void sub_81825F8(struct Sprite *sprite); +void sub_8182648(struct Sprite *sprite); +void sub_81826F8(struct Sprite *sprite); + +void pokemonanimfunc_3D(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->callback = sub_81825F8; + sprite->data[7] = 0; +} + +void sub_81825F8(struct Sprite *sprite) +{ + s16 yScale; + + sprite->data[7] += 8; + if (sprite->data[7] > 63) + { + sprite->data[7] = 0; + sprite->data[6] = 0; + sprite->callback = sub_8182648; + yScale = Sin(64, 128); // 128 * 1 = 128 + } + else + { + yScale = Sin(sprite->data[7], 128); + } + + HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0); +} + +void sub_8182648(struct Sprite *sprite) +{ + s16 yScale; + + sprite->data[7] += 4; + if (sprite->data[7] > 95) + { + yScale = Cos(0, 128); // 128 * (-1) = -128 + sprite->data[7] = 0; + sprite->data[6]++; + } + else + { + s16 sign, index; + + sprite->pos2.y = -(sprite->data[6] * 4) - Sin(sprite->data[7], 8); + if (sprite->data[7] > 63) + { + sign = -1; + index = sprite->data[7] - 64; + } + else + { + sign = 1; + index = 0; + } + + yScale = Cos((index * 2) + sprite->data[7], 128) * sign; + } + + HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0); + if (sprite->data[6] == 3) + { + sprite->data[7] = 0; + sprite->callback = sub_81826F8; + } +} + +void sub_81826F8(struct Sprite *sprite) +{ + s16 yScale; + + sprite->data[7] += 8; + yScale = Cos(sprite->data[7], 128); + sprite->pos2.y = -(Cos(sprite->data[7], 12)); + if (sprite->data[7] > 63) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + } + + HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0); +} + +void sub_8182764(struct Sprite *sprite) +{ + if (sprite->data[7] > sprite->data[5]) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + } + else + { + s16 xScale; + + sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]); + sprite->data[7] += sprite->data[6]; + xScale = Sin(sprite->data[7] % 128, 96); + HandleSetAffineData(sprite, 0x100 + xScale, 0x100, 0); + } +} + +void pokemonanimfunc_3E(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 8; + sprite->data[5] = 512; + sprite->data[4] = 8; + } + + sub_8182764(sprite); +} + +void sub_8182830(struct Sprite *sprite) +{ + if (sprite->data[7] > sprite->data[5]) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + } + else + { + s16 xScale; + + sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]); + sprite->data[7] += sprite->data[6]; + xScale = Sin((sprite->data[7] % 64) * 2, 128); + HandleSetAffineData(sprite, 0x100 + xScale, 0x100, 0); + } +} + +void pokemonanimfunc_3F(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 4; + sprite->data[5] = 256; + sprite->data[4] = 16; + } + + sub_8182830(sprite); +} + +void pokemonanimfunc_40(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + } + + if (sprite->data[7] > 512) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 scale; + + sprite->pos2.x = Sin(sprite->data[7] % 256, 8); + sprite->data[7] += 8; + scale = Sin(sprite->data[7] % 128, 96); + HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0); + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_41(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + } + + if (sprite->data[7] > 512) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 scale; + + sprite->pos2.x = -(Sin((sprite->data[7] % 256) / 2, 16)); + sprite->data[7] += 8; + scale = -(Sin((sprite->data[7] % 256) / 2, 64)); + HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0); + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_42(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + } + + if (sprite->data[7] > 512) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + HandleSetAffineData(sprite, 0x100, 0x100, 0); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + s16 scale; + + sprite->pos2.x = -(Sin(sprite->data[7] % 256 , 8)); + sprite->data[7] += 8; + scale = Sin((sprite->data[7] % 256) / 2, 96); + HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0); + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_43(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 2048) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->data[6] = 0; + } + else + { + s16 caseVar = (sprite->data[2] / 512) % 4; + switch (caseVar) + { + case 0: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + break; + case 1: + sprite->pos2.x = (sprite->data[2] % 512 / 32) - 16; + break; + case 2: + sprite->pos2.x = (sprite->data[2] % 512) / 32; + break; + case 3: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + break; + } + + sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4)); + sprite->data[2] += 24; + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_44(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + sprite->data[6] = 0; + sprite->data[7] = 64; + sprite->data[2]++; + } + + sprite->data[7] += 8; + if (sprite->data[6] == 4) + { + if (sprite->data[7] > 63) + { + sprite->data[7] = 0; + sprite->data[6]++; + } + } + else + { + if (sprite->data[7] > 127) + { + sprite->data[7] = 0; + sprite->data[6]++; + } + } + + switch (sprite->data[6]) + { + case 1: + sprite->pos2.x = -(Cos(sprite->data[7], 8)); + sprite->pos2.y = Sin(sprite->data[7], 8) - 8; + break; + case 2: + sprite->pos2.x = Sin(sprite->data[7] + 128, 8) + 8; + sprite->pos2.y = -(Cos(sprite->data[7], 8)); + break; + case 3: + sprite->pos2.x = Cos(sprite->data[7], 8); + sprite->pos2.y = Sin(sprite->data[7] + 128, 8) + 8; + break; + case 0: + case 4: + sprite->pos2.x = Sin(sprite->data[7], 8) - 8; + sprite->pos2.y = Cos(sprite->data[7], 8); + break; + default: + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + break; + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_45(struct Sprite *sprite) +{ + sprite->data[0] = 32; + sub_8180714(sprite); + sprite->callback = sub_8180714; +} + +void pokemonanimfunc_46(struct Sprite *sprite) +{ + sprite->data[0] = 80; + sub_817F8FC(sprite); + sprite->callback = sub_817F8FC; +} + +void pokemonanimfunc_47(struct Sprite *sprite) +{ + sprite->data[0] = 80; + sub_817F978(sprite); + sprite->callback = sub_817F978; +} + +void pokemonanimfunc_48(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 2048; + gUnknown_03001240[id].field_8 = sprite->data[6]; + sub_8180900(sprite); + sprite->callback = sub_8180900; +} + +void pokemonanimfunc_49(struct Sprite *sprite) +{ + sprite->data[6] = 1; + pokemonanimfunc_05(sprite); +} + +void pokemonanimfunc_4A(struct Sprite *sprite) +{ + sprite->data[6] = 1; + pokemonanimfunc_48(sprite); +} + +void pokemonanimfunc_4B(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + sprite->data[0] = 0; + + if (sprite->data[0] <= 0) + { + sub_817FC20(sprite); + sprite->data[0] = 1; + } + else + { + sprite->data[0]--; + } +} + +void pokemonanimfunc_4C(struct Sprite *sprite) +{ + sprite->data[0] = 30; + sprite->data[7] = 3; + sub_817FCDC(sprite); + sprite->callback = sub_817FCDC; +} + +void pokemonanimfunc_4D(struct Sprite *sprite) +{ + sprite->data[0] = 30; + sub_817FD44(sprite); + sprite->callback = sub_817FD44; +} + +void pokemonanimfunc_4E(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 1024; + gUnknown_03001240[id].field_0 = 0; + gUnknown_03001240[id].field_4 = 2; + sub_817FE30(sprite); + sprite->callback = sub_817FE30; +} + +void pokemonanimfunc_4F(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 512; + gUnknown_03001240[id].field_8 = 3; + gUnknown_03001240[id].field_2 = 12; + sub_817FFF0(sprite); + sprite->callback = sub_817FFF0; +} + +void pokemonanimfunc_50(struct Sprite *sprite) +{ + sprite->data[0] = 24; + sub_818031C(sprite); + sprite->callback = sub_818031C; +} + +void pokemonanimfunc_51(struct Sprite *sprite) +{ + sprite->data[0] = 5; + sub_81804F8(sprite); + sprite->callback = sub_81804F8; +} + +void pokemonanimfunc_52(struct Sprite *sprite) +{ + sprite->data[0] = 3; + sub_817F9F4(sprite); + sprite->callback = sub_817F9F4; +} + +void pokemonanimfunc_53(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_0 = 60; + gUnknown_03001240[id].field_8 = 30; + sub_817FF3C(sprite); + sprite->callback = sub_817FF3C; +} + +void pokemonanimfunc_54(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_2 = 1; + gUnknown_03001240[id].field_4 = 2; + sub_8181214(sprite); + sprite->callback = sub_8181214; +} + +void pokemonanimfunc_55(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 4; + gUnknown_03001240[id].field_4 = 2; + sub_8181810(sprite); + sprite->callback = sub_8181810; +} + +void pokemonanimfunc_56(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_8 = 1; + gUnknown_03001240[id].field_4 = 2; + HandleStartAffineAnim(sprite); + sprite->data[3] = 0; + sub_8181ABC(sprite); + sprite->callback = sub_8181ABC; +} + +void pokemonanimfunc_07(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 2; + sub_8181CE8(sprite); + sprite->callback = sub_8181CE8; +} + +void pokemonanimfunc_08(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 4; + gUnknown_03001240[id].field_4 = 2; + sub_8181CE8(sprite); + sprite->callback = sub_8181CE8; +} + +void pokemonanimfunc_0B(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_8 = 100; + sub_81814D4(sprite); + sprite->callback = sub_81814D4; +} + +void pokemonanimfunc_0C(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_8 = 50; + gUnknown_03001240[id].field_4 = 2; + sub_81814D4(sprite); + sprite->callback = sub_81814D4; +} + +void pokemonanimfunc_0D(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_8 = 100; + sub_81815D4(sprite); + sprite->callback = sub_81815D4; +} + +void pokemonanimfunc_0E(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_8 = 50; + gUnknown_03001240[id].field_4 = 2; + sub_81815D4(sprite); + sprite->callback = sub_81815D4; +} + +void sub_8183140(struct Sprite *sprite) +{ + s32 counter = sprite->data[2]; + if (counter > 2304) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = Sin((counter + 192) % 256, sprite->data[7]) + sprite->data[7]; + } + + sprite->data[2] += sprite->data[0]; +} + +void pokemonanimfunc_57(struct Sprite *sprite) +{ + sprite->data[0] = 60; + sprite->data[7] = 3; + sub_8183140(sprite); + sprite->callback = sub_8183140; +} + +void pokemonanimfunc_58(struct Sprite *sprite) +{ + sprite->data[0] = 30; + sprite->data[7] = 3; + sub_8183140(sprite); + sprite->callback = sub_8183140; +} + +void pokemonanimfunc_59(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 2048) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->data[6] = 0; + } + else + { + s16 divCase = (sprite->data[2] / 512) % 4; + switch (divCase) + { + case 0: + sprite->pos2.x = (sprite->data[2] % 512) / 32; + break; + case 2: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + break; + case 1: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + break; + case 3: + sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16; + break; + } + + sprite->pos2.y = Sin(sprite->data[2] % 128, 4); + sprite->data[2] += 24; + } + + sub_817F70C(sprite); +} + +void sub_81832C8(struct Sprite *sprite) +{ + s16 index1 = 0, index2 = 0; + + if (sprite->data[5] > sprite->data[6]) + { + sprite->pos2.y = 0; + sprite->data[5] = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + if (sprite->data[4] <= 1) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[4]--; + sprite->data[7] = 0; + } + } + else + { + u8 amplitude, cmpVal1, cmpVal2; + s16 xScale, yScale; + + index2 = (sprite->data[5] * 128) / sprite->data[6]; + cmpVal1 = sprite->data[6] / 4; + cmpVal2 = cmpVal1 * 3; + if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2) + { + sprite->data[7] += 51; + index1 = sprite->data[7] & 0xFF; + } + + if (sprite->data[1] == 0) + xScale = -0x100 - Sin(index2, 16); + else + xScale = 0x100 + Sin(index2, 16); + + amplitude = sprite->data[3]; + yScale = 0x100 - Sin(index2, amplitude) - Sin(index1, amplitude / 5); + SetAffineData(sprite, xScale, yScale, 0); + sprite->data[5]++; + } +} + +void pokemonanimfunc_5A(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 1; + sprite->data[6] = 40; + sprite->data[3] = 40; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_81832C8(sprite); +} + +void sub_8183418(struct Sprite *sprite) +{ + s16 index1 = 0, index2; + + if (sprite->data[5] > sprite->data[6]) + { + sprite->data[5] = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + if (sprite->data[4] <= 1) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[4]--; + sprite->data[7] = 0; + } + } + else + { + u8 amplitude, cmpVal1, cmpVal2; + s16 xScale; + + index2 = (sprite->data[5] * 128) / sprite->data[6]; + cmpVal1 = sprite->data[6] / 4; + cmpVal2 = cmpVal1 * 3; + if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2) + { + sprite->data[7] += 51; + index1 = sprite->data[7] & 0xFF; + } + + amplitude = sprite->data[3]; + + if (sprite->data[1] == 0) + xScale = -0x100 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2); + else + xScale = 0x100 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2); + + SetAffineData(sprite, xScale, 0x100, 0); + sprite->data[5]++; + } +} + +void pokemonanimfunc_5B(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 1; + sprite->data[6] = 40; + sprite->data[3] = 40; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_8183418(sprite); +} + +void sub_8183574(struct Sprite *sprite) +{ + u8 var6, var7; + u8 var8 = sprite->data[2]; + u8 var9 = sprite->data[6]; + u8 var5 = gUnknown_0860AA80[sprite->data[5]][0]; + u8 var2 = var5; + if (var5 != 0xFF) + var5 = sprite->data[7]; + else + var5 = 0xFF; // needed to match + + var6 = gUnknown_0860AA80[sprite->data[5]][1]; + var7 = 0; + if (var2 != 0xFE) + var7 = (var6 - var9) * var5 / var6; + + if (var5 == 0xFF) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.y = Sin((var8 + 192) % 256, var7) + var7; + if (var9 == var6) + { + sprite->data[5]++; + sprite->data[6] = 0; + } + else + { + sprite->data[2] += sprite->data[0]; + sprite->data[6]++; + } + } +} -- cgit v1.2.3 From 16c46905ff08ab61fbd36c9e30e8d18aa7a03467 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 28 Jan 2018 00:51:20 +0100 Subject: more pokemon animation functions --- asm/pokemon_animation.s | 1450 ---------------------------------------------- data/pokemon_animation.s | 1 + src/pokemon_animation.c | 606 ++++++++++++++++++- 3 files changed, 605 insertions(+), 1452 deletions(-) diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index 96ec4f77a..919c1a31e 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -5,1458 +5,8 @@ .text - - thumb_func_start pokemonanimfunc_5C -pokemonanimfunc_5C: @ 8183618 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x28 - strh r0, [r4, 0x2E] - movs r0, 0x6 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_8183574 - ldr r0, =sub_8183574 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_5C - - thumb_func_start pokemonanimfunc_5D -pokemonanimfunc_5D: @ 8183638 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x46 - strh r0, [r4, 0x2E] - movs r0, 0x6 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_817FCDC - ldr r0, =sub_817FCDC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_5D - - thumb_func_start pokemonanimfunc_5E -pokemonanimfunc_5E: @ 8183658 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x14 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_817F8FC - ldr r0, =sub_817F8FC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_5E - - thumb_func_start pokemonanimfunc_5F -pokemonanimfunc_5F: @ 8183674 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x28 - ble _08183690 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - b _081836CA - .pool -_08183690: - movs r0, 0x1 - ands r0, r1 - movs r5, 0xFF - cmp r0, 0 - bne _0818369C - movs r5, 0x1 -_0818369C: - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _081836B0 - adds r0, 0xFF -_081836B0: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x9 - bl Sin - lsls r1, r5, 24 - asrs r1, 24 - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 -_081836CA: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_5F - - thumb_func_start pokemonanimfunc_60 -pokemonanimfunc_60: @ 81836D8 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x28 - ble _081836F4 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - b _0818372E - .pool -_081836F4: - movs r0, 0x1 - ands r0, r1 - movs r5, 0xFF - cmp r0, 0 - bne _08183700 - movs r5, 0x1 -_08183700: - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r1, 0x28 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _08183714 - adds r0, 0xFF -_08183714: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0xC - bl Sin - lsls r1, r5, 24 - asrs r1, 24 - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 -_0818372E: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_60 - - thumb_func_start pokemonanimfunc_61 -pokemonanimfunc_61: @ 818373C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x46 - strh r0, [r4, 0x2E] - movs r0, 0x6 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_8183140 - ldr r0, =sub_8183140 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_61 - - thumb_func_start pokemonanimfunc_62 -pokemonanimfunc_62: @ 818375C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x18 - strh r0, [r4, 0x2E] - movs r0, 0x6 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_8183574 - ldr r0, =sub_8183574 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_62 - - thumb_func_start pokemonanimfunc_63 -pokemonanimfunc_63: @ 818377C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x38 - strh r0, [r4, 0x2E] - movs r0, 0x9 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - bl sub_8183574 - ldr r0, =sub_8183574 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_63 - - thumb_func_start pokemonanimfunc_64 -pokemonanimfunc_64: @ 818379C - push {r4,lr} - adds r4, r0, 0 - bl sub_817F758 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, =gUnknown_03001240 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x80 - lsls r0, 3 - strh r0, [r1, 0x6] - movs r0, 0x6 - strh r0, [r1, 0x8] - movs r0, 0x18 - strh r0, [r1, 0x2] - adds r0, r4, 0 - bl sub_817FFF0 - ldr r0, =sub_817FFF0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_64 - - thumb_func_start sub_81837DC -sub_81837DC: @ 81837DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - movs r5, 0 - movs r0, 0x38 - ldrsh r1, [r7, r0] - movs r2, 0x3A - ldrsh r0, [r7, r2] - cmp r1, r0 - ble _0818382C - strh r5, [r7, 0x26] - strh r5, [r7, 0x38] - movs r2, 0x80 - lsls r2, 1 - adds r0, r7, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - ldrh r1, [r7, 0x36] - movs r2, 0x36 - ldrsh r0, [r7, r2] - cmp r0, 0x1 - bgt _08183824 - adds r0, r7, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r7, 0x1C] - b _0818392C - .pool -_08183824: - subs r0, r1, 0x1 - strh r0, [r7, 0x36] - strh r5, [r7, 0x3C] - b _0818392C -_0818382C: - movs r0, 0x38 - ldrsh r6, [r7, r0] - lsls r0, r6, 7 - movs r1, 0x3A - ldrsh r4, [r7, r1] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r4, 0 - bge _08183846 - adds r4, 0x3 -_08183846: - asrs r1, r4, 2 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r6, r1 - blt _08183866 - cmp r6, r0 - bge _08183866 - ldrh r0, [r7, 0x3C] - adds r0, 0x33 - strh r0, [r7, 0x3C] - movs r5, 0xFF - ands r5, r0 -_08183866: - ldrh r0, [r7, 0x34] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r1, 0x30 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _081838B0 - lsls r2, 16 - mov r8, r2 - asrs r0, r2, 16 - mov r1, r9 - bl Sin - adds r4, r0, 0 - lsls r6, r5, 16 - asrs r5, r6, 16 - mov r0, r9 - movs r1, 0x5 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 23 - adds r0, r5, 0 - bl Sin - ldr r2, =0xffffff00 - adds r4, r2 - adds r0, r4 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, r8 - b _081838EA - .pool -_081838B0: - lsls r2, 16 - mov r8, r2 - asrs r0, r2, 16 - mov r1, r9 - bl Sin - adds r6, r0, 0 - lsls r5, 16 - asrs r4, r5, 16 - mov r0, r9 - movs r1, 0x5 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 23 - adds r0, r4, 0 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r6 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - mov r0, r8 - adds r6, r5, 0 -_081838EA: - asrs r0, 16 - mov r1, r9 - bl Sin - adds r5, r0, 0 - asrs r4, r6, 16 - mov r0, r9 - movs r1, 0x5 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r2, r1, 0 - subs r2, r5 - subs r2, r0 - mov r0, r10 - lsls r1, r0, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r7, 0 - movs r3, 0 - bl SetAffineData - ldrh r0, [r7, 0x38] - adds r0, 0x1 - strh r0, [r7, 0x38] -_0818392C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81837DC - - thumb_func_start pokemonanimfunc_65 -pokemonanimfunc_65: @ 818393C - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _0818395E - movs r4, 0x1 - strh r4, [r5, 0x32] - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r4, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x3A] - strh r0, [r5, 0x34] - strh r6, [r5, 0x38] - strh r6, [r5, 0x3C] -_0818395E: - adds r0, r5, 0 - bl sub_81837DC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_65 - - thumb_func_start pokemonanimfunc_66 -pokemonanimfunc_66: @ 818396C - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - ble _08183990 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3A] - b _08183A54 - .pool -_08183990: - movs r1, 0x32 - ldrsh r2, [r4, r1] - adds r0, r2, 0 - cmp r2, 0 - bge _0818399E - ldr r1, =0x000001ff - adds r0, r2, r1 -_0818399E: - asrs r3, r0, 9 - adds r1, r3, 0 - adds r0, r1, 0 - cmp r1, 0 - bge _081839AA - adds r0, r1, 0x3 -_081839AA: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _08183A00 - cmp r0, 0x1 - bgt _081839C8 - cmp r0, 0 - beq _081839D2 - b _08183A30 - .pool -_081839C8: - cmp r0, 0x2 - beq _081839E4 - cmp r0, 0x3 - beq _08183A1C - b _08183A30 -_081839D2: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _081839E0 - adds r0, 0x1F -_081839E0: - asrs r0, 5 - b _08183A2E -_081839E4: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _081839F6 - ldr r1, =0x000001ff - adds r0, r1 -_081839F6: - asrs r0, 9 - b _08183A2E - .pool -_08183A00: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _08183A12 - ldr r1, =0x000001ff - adds r0, r1 -_08183A12: - asrs r0, 9 - adds r0, 0x10 - b _08183A2E - .pool -_08183A1C: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08183A2A - adds r0, 0x1F -_08183A2A: - asrs r0, 5 - subs r0, 0x10 -_08183A2E: - strh r0, [r4, 0x24] -_08183A30: - movs r0, 0x32 - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08183A3C - adds r0, 0x7F -_08183A3C: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x30 - strh r0, [r4, 0x32] -_08183A54: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_66 - - thumb_func_start pokemonanimfunc_67 -pokemonanimfunc_67: @ 8183A60 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - ble _08183A84 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3A] - b _08183B40 - .pool -_08183A84: - movs r1, 0x32 - ldrsh r2, [r4, r1] - adds r0, r2, 0 - cmp r2, 0 - bge _08183A92 - ldr r1, =0x000001ff - adds r0, r2, r1 -_08183A92: - asrs r3, r0, 9 - adds r1, r3, 0 - adds r0, r1, 0 - cmp r1, 0 - bge _08183A9E - adds r0, r1, 0x3 -_08183A9E: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _08183AF4 - cmp r0, 0x1 - bgt _08183ABC - cmp r0, 0 - beq _08183AC6 - b _08183B24 - .pool -_08183ABC: - cmp r0, 0x2 - beq _08183AD8 - cmp r0, 0x3 - beq _08183B10 - b _08183B24 -_08183AC6: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08183AD4 - adds r0, 0x1F -_08183AD4: - asrs r0, 5 - b _08183B22 -_08183AD8: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _08183AEA - ldr r1, =0x000001ff - adds r0, r1 -_08183AEA: - asrs r0, 9 - b _08183B22 - .pool -_08183AF4: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 12 - negs r0, r0 - cmp r0, 0 - bge _08183B06 - ldr r1, =0x000001ff - adds r0, r1 -_08183B06: - asrs r0, 9 - adds r0, 0x10 - b _08183B22 - .pool -_08183B10: - lsls r0, r3, 9 - subs r0, r2, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08183B1E - adds r0, 0x1F -_08183B1E: - asrs r0, 5 - subs r0, 0x10 -_08183B22: - strh r0, [r4, 0x24] -_08183B24: - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x60 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x40 - strh r0, [r4, 0x32] -_08183B40: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_67 - - thumb_func_start sub_8183B4C -sub_8183B4C: @ 8183B4C - push {r4-r7,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08183B5E - strh r0, [r4, 0x34] -_08183B5E: - ldr r7, =gUnknown_0860ADBE - movs r2, 0x34 - ldrsh r1, [r4, r2] - lsls r0, r1, 1 - adds r0, r1 - adds r5, r7, 0x2 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl __divsi3 - movs r2, 0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08183B8C - ldrh r0, [r4, 0x34] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x34] - strh r1, [r4, 0x32] -_08183B8C: - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r6, r0, r1 - adds r0, r6, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x38 - ldrsh r5, [r4, r1] - adds r1, r5, 0 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bne _08183BCC - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - cmp r0, 0 - bne _08183BC8 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08183C06 - .pool -_08183BC8: - strh r1, [r4, 0x32] - b _08183C06 -_08183BCC: - adds r0, r6, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r5 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r7, 0x1 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrh r0, [r4, 0x38] - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl sub_817F70C -_08183C06: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8183B4C - - thumb_func_start pokemonanimfunc_68 -pokemonanimfunc_68: @ 8183C0C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x38] - strh r0, [r4, 0x3A] - adds r0, r4, 0 - bl sub_8183B4C - ldr r0, =sub_8183B4C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_68 - - thumb_func_start pokemonanimfunc_69 -pokemonanimfunc_69: @ 8183C2C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2 - strh r0, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x3A] - adds r0, r4, 0 - bl sub_8183B4C - ldr r0, =sub_8183B4C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_69 - - thumb_func_start pokemonanimfunc_6A -pokemonanimfunc_6A: @ 8183C4C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2 - strh r0, [r4, 0x38] - strh r0, [r4, 0x3A] - adds r0, r4, 0 - bl sub_8183B4C - ldr r0, =sub_8183B4C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_6A - - thumb_func_start sub_8183C6C -sub_8183C6C: @ 8183C6C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xFF - ble _08183CAE - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _08183CA4 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - b _08183CE8 - .pool -_08183CA4: - subs r0, r1, 0x1 - movs r1, 0 - strh r0, [r4, 0x38] - strh r1, [r4, 0x3C] - b _08183CE8 -_08183CAE: - ldrh r0, [r4, 0x3A] - adds r0, r1, r0 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x80 - lsls r5, 1 - cmp r0, r5 - ble _08183CC2 - strh r5, [r4, 0x3C] -_08183CC2: - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r1, 0x40 - bl Sin - adds r2, r0, 0 - lsls r2, 16 - asrs r2, 16 - subs r2, r5, r2 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData -_08183CE8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8183C6C - - thumb_func_start pokemonanimfunc_6B -pokemonanimfunc_6B: @ 8183CF0 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183D16 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r0, 0x4 - strh r0, [r4, 0x3A] - movs r0, 0x1 - strh r0, [r4, 0x38] -_08183D16: - adds r0, r4, 0 - bl sub_8183C6C - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6B - - thumb_func_start pokemonanimfunc_6C -pokemonanimfunc_6C: @ 8183D28 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_817F70C - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183D4E - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x3A] - movs r0, 0x2 - strh r0, [r4, 0x38] -_08183D4E: - adds r0, r4, 0 - bl sub_8183C6C - adds r0, r4, 0 - bl sub_817F70C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6C - - thumb_func_start pokemonanimfunc_6D -pokemonanimfunc_6D: @ 8183D60 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183D88 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x3A] - movs r0, 0x80 - lsls r0, 2 - strh r0, [r4, 0x38] - movs r0, 0x10 - strh r0, [r4, 0x36] -_08183D88: - adds r0, r4, 0 - bl sub_8182764 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6D - - thumb_func_start pokemonanimfunc_6E -pokemonanimfunc_6E: @ 8183D94 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183DBA - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r0, 0x4 - strh r0, [r4, 0x3A] - adds r0, 0xFC - strh r0, [r4, 0x38] - movs r0, 0x10 - strh r0, [r4, 0x36] -_08183DBA: - adds r0, r4, 0 - bl sub_8182764 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6E - - thumb_func_start pokemonanimfunc_6F -pokemonanimfunc_6F: @ 8183DC8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183DF0 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x3A] - movs r0, 0x80 - lsls r0, 2 - strh r0, [r4, 0x38] - movs r0, 0x10 - strh r0, [r4, 0x36] -_08183DF0: - adds r0, r4, 0 - bl sub_8182830 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_6F - - thumb_func_start pokemonanimfunc_70 -pokemonanimfunc_70: @ 8183DFC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183E22 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - strh r5, [r4, 0x3C] - movs r1, 0x8 - strh r1, [r4, 0x3A] - movs r0, 0x80 - lsls r0, 2 - strh r0, [r4, 0x38] - strh r1, [r4, 0x36] -_08183E22: - adds r0, r4, 0 - bl sub_8182830 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_70 - - thumb_func_start pokemonanimfunc_71 -pokemonanimfunc_71: @ 8183E30 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08183E4A - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x5 - strh r0, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x3A] -_08183E4A: - adds r0, r4, 0 - bl sub_8180828 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_71 - - thumb_func_start pokemonanimfunc_72 -pokemonanimfunc_72: @ 8183E58 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08183E72 - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x3 - strh r0, [r4, 0x3C] - movs r0, 0x4 - strh r0, [r4, 0x3A] -_08183E72: - adds r0, r4, 0 - bl sub_8180828 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_72 - - thumb_func_start pokemonanimfunc_73 -pokemonanimfunc_73: @ 8183E80 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _08183EA2 - movs r4, 0x1 - strh r4, [r5, 0x32] - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r4, [r5, 0x36] - movs r0, 0x1E - strh r0, [r5, 0x3A] - movs r0, 0x3C - strh r0, [r5, 0x34] - strh r6, [r5, 0x3C] -_08183EA2: - adds r0, r5, 0 - bl sub_81832C8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_73 - - thumb_func_start pokemonanimfunc_74 -pokemonanimfunc_74: @ 8183EB0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183ED4 - movs r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x2 - strh r0, [r4, 0x36] - movs r0, 0x14 - strh r0, [r4, 0x3A] - movs r0, 0x46 - strh r0, [r4, 0x34] - strh r5, [r4, 0x3C] -_08183ED4: - adds r0, r4, 0 - bl sub_81832C8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_74 - - thumb_func_start pokemonanimfunc_75 -pokemonanimfunc_75: @ 8183EE0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183F06 - movs r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x2 - strh r0, [r4, 0x36] - movs r0, 0x14 - strh r0, [r4, 0x3A] - movs r0, 0x46 - strh r0, [r4, 0x34] - strh r5, [r4, 0x38] - strh r5, [r4, 0x3C] -_08183F06: - adds r0, r4, 0 - bl sub_8183418 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_75 - - thumb_func_start pokemonanimfunc_76 -pokemonanimfunc_76: @ 8183F14 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _08183F38 - movs r4, 0x1 - strh r4, [r5, 0x32] - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r4, [r5, 0x36] - movs r0, 0x1E - strh r0, [r5, 0x3A] - movs r0, 0x3C - strh r0, [r5, 0x34] - strh r6, [r5, 0x38] - strh r6, [r5, 0x3C] -_08183F38: - adds r0, r5, 0 - bl sub_8183418 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_76 - - thumb_func_start pokemonanimfunc_77 -pokemonanimfunc_77: @ 8183F44 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08183F6A - movs r0, 0x1 - strh r0, [r4, 0x32] - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x2 - strh r0, [r4, 0x36] - movs r0, 0x14 - strh r0, [r4, 0x3A] - movs r0, 0x46 - strh r0, [r4, 0x34] - strh r5, [r4, 0x38] - strh r5, [r4, 0x3C] -_08183F6A: - adds r0, r4, 0 - bl sub_81837DC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_77 - - thumb_func_start pokemonanimfunc_78 -pokemonanimfunc_78: @ 8183F78 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x32 - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _08183F9C - movs r4, 0x1 - strh r4, [r5, 0x32] - adds r0, r5, 0 - bl HandleStartAffineAnim - strh r4, [r5, 0x36] - movs r0, 0x1E - strh r0, [r5, 0x3A] - movs r0, 0x3C - strh r0, [r5, 0x34] - strh r6, [r5, 0x38] - strh r6, [r5, 0x3C] -_08183F9C: - adds r0, r5, 0 - bl sub_81837DC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_78 - - thumb_func_start sub_8183FA8 -sub_8183FA8: @ 8183FA8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _08183FEA - ldrh r2, [r4, 0x3A] - movs r3, 0x3A - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bgt _08183FD0 - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - b _0818403E - .pool -_08183FD0: - movs r0, 0x3C - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08183FDC - adds r0, 0xFF -_08183FDC: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x3C] - subs r0, r2, 0x1 - strh r0, [r4, 0x3A] - b _0818403E -_08183FEA: - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r3, 0x3C - ldrsh r2, [r4, r3] - adds r1, r2, 0 - adds r1, 0xC0 - adds r0, r1, 0 - cmp r1, 0 - bge _0818400C - ldr r3, =0x000001bf - adds r0, r2, r3 -_0818400C: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - ble _0818402E - movs r3, 0x26 - ldrsh r0, [r4, r3] - negs r0, r0 - strh r0, [r4, 0x26] -_0818402E: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x3C] - adds r0, r2 - strh r0, [r4, 0x3C] -_0818403E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8183FA8 - - thumb_func_start pokemonanimfunc_79 -pokemonanimfunc_79: @ 8184048 - push {lr} - adds r1, r0, 0 - movs r0, 0x32 - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _08184066 - movs r0, 0x1 - strh r0, [r1, 0x32] - strh r0, [r1, 0x3A] - strh r2, [r1, 0x3C] - movs r0, 0xC - strh r0, [r1, 0x38] - strh r0, [r1, 0x36] - movs r0, 0x4 - strh r0, [r1, 0x34] -_08184066: - adds r0, r1, 0 - bl sub_8183FA8 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_79 - - thumb_func_start pokemonanimfunc_7A -pokemonanimfunc_7A: @ 8184070 - push {lr} - adds r1, r0, 0 - movs r0, 0x32 - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _0818408E - movs r0, 0x1 - strh r0, [r1, 0x32] - strh r0, [r1, 0x3A] - strh r2, [r1, 0x3C] - movs r0, 0xC - strh r0, [r1, 0x38] - strh r0, [r1, 0x36] - movs r0, 0x6 - strh r0, [r1, 0x34] -_0818408E: - adds r0, r1, 0 - bl sub_8183FA8 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7A - thumb_func_start pokemonanimfunc_7B -pokemonanimfunc_7B: @ 8184098 - push {lr} - adds r1, r0, 0 - movs r0, 0x32 - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _081840B8 - movs r0, 0x1 - strh r0, [r1, 0x32] - movs r0, 0x2 - strh r0, [r1, 0x3A] - strh r2, [r1, 0x3C] - movs r0, 0xC - strh r0, [r1, 0x38] - strh r0, [r1, 0x36] - movs r0, 0x8 - strh r0, [r1, 0x34] -_081840B8: - adds r0, r1, 0 - bl sub_8183FA8 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7B thumb_func_start sub_81840C4 sub_81840C4: @ 81840C4 diff --git a/data/pokemon_animation.s b/data/pokemon_animation.s index 08254b40d..cbab5295f 100644 --- a/data/pokemon_animation.s +++ b/data/pokemon_animation.s @@ -3,6 +3,7 @@ .section .rodata + .align 2 gUnknown_0860ADCC:: @ 860ADCC .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 .byte 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 1496069df..67915d228 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -2025,8 +2025,6 @@ void pokemonanimfunc_05(struct Sprite *sprite) sprite->callback = sub_8180900; } -const u8 gUnknown_0860ADBE[] = {0x01, 0x01, 0x0c, 0xfe, 0x00, 0x0c, 0x01, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00}; - void pokemonanimfunc_20(struct Sprite *sprite) { if (sprite->data[2] == 0) @@ -4194,3 +4192,607 @@ void sub_8183574(struct Sprite *sprite) } } } + +void pokemonanimfunc_5C(struct Sprite *sprite) +{ + sprite->data[0] = 40; + sprite->data[7] = 6; + sub_8183574(sprite); + sprite->callback = sub_8183574; +} + +void pokemonanimfunc_5D(struct Sprite *sprite) +{ + sprite->data[0] = 70; + sprite->data[7] = 6; + sub_817FCDC(sprite); + sprite->callback = sub_817FCDC; +} + +void pokemonanimfunc_5E(struct Sprite *sprite) +{ + sprite->data[0] = 20; + sub_817F8FC(sprite); + sprite->callback = sub_817F8FC; +} + +void pokemonanimfunc_5F(struct Sprite *sprite) +{ + if (sprite->data[2] > 40) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s8 sign; + if (!(sprite->data[2] & 1)) + sign = 1; + else + sign = -1; + + sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 9) * sign; + } + + sprite->data[2]++; +} + +void pokemonanimfunc_60(struct Sprite *sprite) +{ + if (sprite->data[2] > 40) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + } + else + { + s8 sign; + if (!(sprite->data[2] & 1)) + sign = 1; + else + sign = -1; + + sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 12) * sign; + } + + sprite->data[2]++; +} + +void pokemonanimfunc_61(struct Sprite *sprite) +{ + sprite->data[0] = 70; + sprite->data[7] = 6; + sub_8183140(sprite); + sprite->callback = sub_8183140; +} + +void pokemonanimfunc_62(struct Sprite *sprite) +{ + sprite->data[0] = 24; + sprite->data[7] = 6; + sub_8183574(sprite); + sprite->callback = sub_8183574; +} + +void pokemonanimfunc_63(struct Sprite *sprite) +{ + sprite->data[0] = 56; + sprite->data[7] = 9; + sub_8183574(sprite); + sprite->callback = sub_8183574; +} + +void pokemonanimfunc_64(struct Sprite *sprite) +{ + u8 id = sprite->data[0] = sub_817F758(); + + gUnknown_03001240[id].field_6 = 1024; + gUnknown_03001240[id].field_8 = 6; + gUnknown_03001240[id].field_2 = 24; + sub_817FFF0(sprite); + sprite->callback = sub_817FFF0; +} + +void sub_81837DC(struct Sprite *sprite) +{ + s16 index1 = 0, index2 = 0; + if (sprite->data[5] > sprite->data[6]) + { + sprite->pos2.y = 0; + sprite->data[5] = 0; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + if (sprite->data[4] <= 1) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[4]--; + sprite->data[7] = 0; + } + } + else + { + u8 amplitude, cmpVal1, cmpVal2; + s16 xScale, yScale; + + index2 = (sprite->data[5] * 128) / sprite->data[6]; + cmpVal1 = sprite->data[6] / 4; + cmpVal2 = cmpVal1 * 3; + if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2) + { + sprite->data[7] += 51; + index1 = sprite->data[7] & 0xFF; + } + + amplitude = sprite->data[3]; + + if (sprite->data[1] == 0) + xScale = Sin(index2, amplitude) + (Sin(index1, amplitude / 5 * 2) - 0x100); + else + xScale = 0x100 - Sin(index1, amplitude / 5 * 2) - Sin(index2, amplitude); + + yScale = 0x100 - Sin(index1, amplitude / 5) - Sin(index2, amplitude); + SetAffineData(sprite, xScale, yScale, 0); + sprite->data[5]++; + } +} + +void pokemonanimfunc_65(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 1; + sprite->data[6] = 40; + sprite->data[3] = 40; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_81837DC(sprite); +} + +void pokemonanimfunc_66(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 2048) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->data[6] = 0; + } + else + { + s16 divCase = (sprite->data[2] / 512) % 4; + switch (divCase) + { + case 0: + sprite->pos2.x = (sprite->data[2] % 512) / 32; + break; + case 2: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + break; + case 1: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + break; + case 3: + sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16; + break; + } + + sprite->pos2.y = Sin(sprite->data[2] % 128, 4); + sprite->data[2] += 48; + } + + sub_817F70C(sprite); +} + +void pokemonanimfunc_67(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] > 2048) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->data[6] = 0; + } + else + { + s16 divCase = (sprite->data[2] / 512) % 4; + switch (divCase) + { + case 0: + sprite->pos2.x = (sprite->data[2] % 512) / 32; + break; + case 2: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512; + break; + case 1: + sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16; + break; + case 3: + sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16; + break; + } + + sprite->pos2.y = Sin(sprite->data[2] % 96, 4); + sprite->data[2] += 64; + } + + sub_817F70C(sprite); +} + +static const s8 gUnknown_0860ADBE[][3] = +{ +// x y timer + {1, 1, 12}, + {-2, 0, 12}, + {1, -1, 12}, + {0, 0, 0} +}; + +void sub_8183B4C(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + sprite->data[3] = 0; + + if (gUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == sprite->data[2]) + { + sprite->data[3]++; + sprite->data[2] = 0; + } + + if (gUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == 0) + { + if (--sprite->data[6] == 0) + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + else + sprite->data[2] = 0; + } + else + { + s32 amplitude = sprite->data[5]; + sprite->pos2.x += (gUnknown_0860ADBE[sprite->data[3]][0] * amplitude); + sprite->pos2.y += (gUnknown_0860ADBE[sprite->data[3]][1] * sprite->data[5]); // what's the point of the var if you're not reusing it? + sprite->data[2]++; + sub_817F70C(sprite); + } +} + +void pokemonanimfunc_68(struct Sprite *sprite) +{ + sprite->data[5] = 1; + sprite->data[6] = 1; + sub_8183B4C(sprite); + sprite->callback = sub_8183B4C; +} + +void pokemonanimfunc_69(struct Sprite *sprite) +{ + sprite->data[5] = 2; + sprite->data[6] = 1; + sub_8183B4C(sprite); + sprite->callback = sub_8183B4C; +} + +void pokemonanimfunc_6A(struct Sprite *sprite) +{ + sprite->data[5] = 2; + sprite->data[6] = 2; + sub_8183B4C(sprite); + sprite->callback = sub_8183B4C; +} + +void sub_8183C6C(struct Sprite *sprite) +{ + if (sprite->data[7] > 255) + { + if (sprite->data[5] <= 1) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + HandleSetAffineData(sprite, 0x100, 0x100, 0); + } + else + { + sprite->data[5]--; + sprite->data[7] = 0; + } + } + else + { + s16 scale; + + sprite->data[7] += sprite->data[6]; + if (sprite->data[7] > 256) + sprite->data[7] = 256; + + scale = Sin(sprite->data[7] / 2, 64); + HandleSetAffineData(sprite, 0x100 - scale, 0x100 - scale, 0); + } +} + +void pokemonanimfunc_6B(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 4; + sprite->data[5] = 1; + } + + sub_8183C6C(sprite); + sub_817F70C(sprite); +} + +void pokemonanimfunc_6C(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 8; + sprite->data[5] = 2; + } + + sub_8183C6C(sprite); + sub_817F70C(sprite); +} + +void pokemonanimfunc_6D(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 8; + sprite->data[5] = 512; + sprite->data[4] = 16; + } + + sub_8182764(sprite); +} + +void pokemonanimfunc_6E(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 4; + sprite->data[5] = 256; + sprite->data[4] = 16; + } + + sub_8182764(sprite); +} + +void pokemonanimfunc_6F(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 8; + sprite->data[5] = 512; + sprite->data[4] = 16; + } + + sub_8182830(sprite); +} + +void pokemonanimfunc_70(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[2]++; + sprite->data[7] = 0; + sprite->data[6] = 8; + sprite->data[5] = 512; + sprite->data[4] = 8; + } + + sub_8182830(sprite); +} + +void pokemonanimfunc_71(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[7] = 5; + sprite->data[6] = 8; + } + + sub_8180828(sprite); +} + +void pokemonanimfunc_72(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[7] = 3; + sprite->data[6] = 4; + } + + sub_8180828(sprite); +} + +void pokemonanimfunc_73(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 1; + sprite->data[6] = 30; + sprite->data[3] = 60; + sprite->data[7] = 0; + } + + sub_81832C8(sprite); +} + +void pokemonanimfunc_74(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 2; + sprite->data[6] = 20; + sprite->data[3] = 70; + sprite->data[7] = 0; + } + + sub_81832C8(sprite); +} + +void pokemonanimfunc_75(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 2; + sprite->data[6] = 20; + sprite->data[3] = 70; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_8183418(sprite); +} + +void pokemonanimfunc_76(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 1; + sprite->data[6] = 30; + sprite->data[3] = 60; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_8183418(sprite); +} + +void pokemonanimfunc_77(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 2; + sprite->data[6] = 20; + sprite->data[3] = 70; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_81837DC(sprite); +} + +void pokemonanimfunc_78(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + HandleStartAffineAnim(sprite); + sprite->data[4] = 1; + sprite->data[6] = 30; + sprite->data[3] = 60; + sprite->data[5] = 0; + sprite->data[7] = 0; + } + + sub_81837DC(sprite); +} + +void sub_8183FA8(struct Sprite *sprite) +{ + if (sprite->data[7] > 255) + { + if (sprite->data[6] <= 1) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + sprite->data[7] %= 256; + sprite->data[6]--; + } + } + else + { + sprite->pos2.x = -(Sin(sprite->data[7], sprite->data[5])); + sprite->pos2.y = Sin((sprite->data[7] + 192) % 256, sprite->data[4]); + if (sprite->pos2.y > 0) + sprite->pos2.y *= -1; + + sprite->pos2.y += sprite->data[4]; + sprite->data[7] += sprite->data[3]; + } +} + +void pokemonanimfunc_79(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 1; + sprite->data[7] = 0; + sprite->data[5] = 12; + sprite->data[4] = 12; + sprite->data[3] = 4; + } + + sub_8183FA8(sprite); +} + +void pokemonanimfunc_7A(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 1; + sprite->data[7] = 0; + sprite->data[5] = 12; + sprite->data[4] = 12; + sprite->data[3] = 6; + } + + sub_8183FA8(sprite); +} + +void pokemonanimfunc_7B(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 2; + sprite->data[7] = 0; + sprite->data[5] = 12; + sprite->data[4] = 12; + sprite->data[3] = 8; + } + + sub_8183FA8(sprite); +} -- cgit v1.2.3 From b377112cd6cf91ad01e8c469328d120d93ed2edc Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Sat, 27 Jan 2018 22:58:44 -0500 Subject: decompile item_use --- asm/item_use.s | 2863 -------------------------------------------------------- ld_script.txt | 2 +- src/item_use.c | 1271 +++++++++++++++++++++++++ 3 files changed, 1272 insertions(+), 2864 deletions(-) delete mode 100644 asm/item_use.s create mode 100755 src/item_use.c diff --git a/asm/item_use.s b/asm/item_use.s deleted file mode 100644 index 0d9f30ec3..000000000 --- a/asm/item_use.s +++ /dev/null @@ -1,2863 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetUpItemUseCallback -@ void SetUpItemUseCallback(u8 taskId) -SetUpItemUseCallback: @ 80FD060 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gSpecialVar_ItemId - ldrh r0, [r1] - cmp r0, 0xAF - bne _080FD084 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x10] - b _080FD08A - .pool -_080FD084: - ldrh r0, [r1] - bl ItemId_GetType -_080FD08A: - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FD0B8 - ldr r0, =gUnknown_0203CE54 - ldr r2, [r0] - ldr r1, =gUnknown_085920D8 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, 0 - bl unknown_ItemMenu_Confirm - b _080FD0CC - .pool -_080FD0B8: - ldr r0, =gUnknown_0203CF2C - ldr r2, [r0] - ldr r1, =gUnknown_085920D8 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, 0 - bl sub_81C5B14 -_080FD0CC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end SetUpItemUseCallback - - thumb_func_start SetUpItemUseOnFieldCallback -@ void SetUpItemUseOnFieldCallback() -SetUpItemUseOnFieldCallback: @ 80FD0DC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080FD110 - ldr r1, =gFieldCallback - ldr r0, =MapPostLoadHook_UseItem - str r0, [r1] - adds r0, r2, 0 - bl SetUpItemUseCallback - b _080FD11A - .pool -_080FD110: - ldr r0, =gUnknown_0203A0F4 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_080FD11A: - pop {r0} - bx r0 - .pool - thumb_func_end SetUpItemUseOnFieldCallback - - thumb_func_start MapPostLoadHook_UseItem -@ void MapPostLoadHook_UseItem() -MapPostLoadHook_UseItem: @ 80FD124 - push {lr} - bl pal_fill_black - ldr r0, =Task_CallItemUseOnFieldCallback - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end MapPostLoadHook_UseItem - - thumb_func_start Task_CallItemUseOnFieldCallback -@ void Task_CallItemUseOnFieldCallback(u8 taskId) -Task_CallItemUseOnFieldCallback: @ 80FD13C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80ABDFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FD158 - ldr r0, =gUnknown_0203A0F4 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080FD158: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Task_CallItemUseOnFieldCallback - - thumb_func_start DisplayCannotUseItemMessage -@ void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, u8 *str) -DisplayCannotUseItemMessage: @ 80FD164 - push {r4-r6,lr} - adds r4, r1, 0 - adds r1, r2, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r6, =gStringVar4 - adds r0, r6, 0 - bl StringExpandPlaceholders - cmp r4, 0 - bne _080FD1B4 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FD1A0 - ldr r3, =bag_menu_inits_lists_menu - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r6, 0 - bl DisplayItemMessage - b _080FD1BE - .pool -_080FD1A0: - ldr r1, =gText_DadsAdvice - ldr r2, =sub_81C6714 - adds r0, r5, 0 - bl DisplayItemMessageInBattlePyramid - b _080FD1BE - .pool -_080FD1B4: - ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField - adds r0, r5, 0 - adds r1, r6, 0 - bl DisplayItemMessageOnField -_080FD1BE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DisplayCannotUseItemMessage - - thumb_func_start DisplayDadsAdviceCannotUseItemMessage -@ void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) -DisplayDadsAdviceCannotUseItemMessage: @ 80FD1C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gText_DadsAdvice - bl DisplayCannotUseItemMessage - pop {r0} - bx r0 - .pool - thumb_func_end DisplayDadsAdviceCannotUseItemMessage - - thumb_func_start DisplayCannotDismountBikeMessage -@ void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) -DisplayCannotDismountBikeMessage: @ 80FD1E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gText_CantDismountBike - bl DisplayCannotUseItemMessage - pop {r0} - bx r0 - .pool - thumb_func_end DisplayCannotDismountBikeMessage - - thumb_func_start CleanUpAfterFailingToUseRegisteredKeyItemOnField -@ void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId) -CleanUpAfterFailingToUseRegisteredKeyItemOnField: @ 80FD1F8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - adds r0, r4, 0 - bl DestroyTask - bl sub_80984F4 - bl ScriptContext2_Disable - pop {r4} - pop {r0} - bx r0 - thumb_func_end CleanUpAfterFailingToUseRegisteredKeyItemOnField - - thumb_func_start CheckIfItemIsTMHMOrEvolutionStone -@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) -CheckIfItemIsTMHMOrEvolutionStone: @ 80FD21C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl ItemId_GetFieldFunc - ldr r1, =ItemUseOutOfBattle_TMHM - cmp r0, r1 - bne _080FD238 - movs r0, 0x1 - b _080FD24E - .pool -_080FD238: - adds r0, r4, 0 - bl ItemId_GetFieldFunc - ldr r1, =ItemUseOutOfBattle_EvolutionStone - cmp r0, r1 - beq _080FD24C - movs r0, 0 - b _080FD24E - .pool -_080FD24C: - movs r0, 0x2 -_080FD24E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckIfItemIsTMHMOrEvolutionStone - - thumb_func_start sub_80FD254 -sub_80FD254: @ 80FD254 - push {lr} - sub sp, 0x24 - mov r1, sp - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, =bag_menu_mail_related - mov r0, sp - movs r2, 0 - bl ReadMail - add sp, 0x24 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FD254 - - thumb_func_start ItemUseOutOfBattle_Mail -@ void ItemUseOutOfBattle_Mail(int taskId) -ItemUseOutOfBattle_Mail: @ 80FD278 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_0203CE54 - ldr r2, [r1] - ldr r1, =sub_80FD254 - str r1, [r2] - bl unknown_ItemMenu_Confirm - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_Mail - - thumb_func_start ItemUseOutOfBattle_Bike -@ void ItemUseOutOfBattle_Bike(int taskId) -ItemUseOutOfBattle_Bike: @ 80FD298 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =0x0000088b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FD30E - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FD30E - adds r0, r4, 0 - bl MetatileBehavior_IsHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FD30E - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FD30E - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FD320 -_080FD30E: - ldrb r1, [r6, 0x6] - adds r0, r5, 0 - bl DisplayCannotDismountBikeMessage - b _080FD350 - .pool -_080FD320: - bl sav1_map_is_biking_allowed - cmp r0, 0x1 - bne _080FD348 - bl IsBikingDisallowedByPlayer - lsls r0, 24 - cmp r0, 0 - bne _080FD348 - ldr r1, =gUnknown_0203A0F4 - ldr r0, =ItemUseOnFieldCB_Bike - str r0, [r1] - adds r0, r5, 0 - bl SetUpItemUseOnFieldCallback - b _080FD350 - .pool -_080FD348: - ldrb r1, [r6, 0x6] - adds r0, r5, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FD350: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ItemUseOutOfBattle_Bike - - thumb_func_start ItemUseOnFieldCB_Bike -ItemUseOnFieldCB_Bike: @ 80FD358 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetSecondaryId - lsls r0, 24 - cmp r0, 0 - bne _080FD378 - movs r0, 0x2 - bl GetOnOffBike - b _080FD37E - .pool -_080FD378: - movs r0, 0x4 - bl GetOnOffBike -_080FD37E: - bl sub_80984F4 - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemUseOnFieldCB_Bike - - thumb_func_start CanFish -@ bool8 CanFish() -CanFish: @ 80FD394 - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080FD41C - movs r0, 0x10 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080FD41C - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080FD3EC - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080FD41C -_080FD3E8: - movs r0, 0x1 - b _080FD41E -_080FD3EC: - adds r0, r5, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - beq _080FD40C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridIsImpassableAt - lsls r0, 24 - cmp r0, 0 - beq _080FD3E8 -_080FD40C: - lsls r0, r6, 24 - lsrs r0, 24 - bl MetatileBehavior_8089510 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FD3E8 -_080FD41C: - movs r0, 0 -_080FD41E: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CanFish - - thumb_func_start ItemUseOutOfBattle_Rod -ItemUseOutOfBattle_Rod: @ 80FD428 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CanFish - cmp r0, 0x1 - bne _080FD44C - ldr r1, =gUnknown_0203A0F4 - ldr r0, =ItemUseOnFieldCB_Rod - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080FD45E - .pool -_080FD44C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FD45E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_Rod - - thumb_func_start ItemUseOnFieldCB_Rod -ItemUseOnFieldCB_Rod: @ 80FD468 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetSecondaryId - lsls r0, 24 - lsrs r0, 24 - bl StartFishing - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOnFieldCB_Rod - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 80FD490 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x27 - bl IncrementGameStat - ldr r1, =gUnknown_0203A0F4 - ldr r0, =ItemUseOnFieldCB_Itemfinder - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start ItemUseOnFieldCB_Itemfinder -ItemUseOnFieldCB_Itemfinder: @ 80FD4B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMapHeader - ldr r0, [r0, 0x4] - adds r1, r4, 0 - bl ItemfinderCheckForHiddenItems - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FD4EC - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80FD504 - str r0, [r1] - b _080FD4F6 - .pool -_080FD4EC: - ldr r1, =gText_ItemFinderNothing - ldr r2, =sub_80FD5CC - adds r0, r4, 0 - bl DisplayItemMessageOnField -_080FD4F6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOnFieldCB_Itemfinder - - thumb_func_start sub_80FD504 -sub_80FD504: @ 80FD504 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r8, r0 - adds r4, r7, r0 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080FD5B8 - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - bne _080FD5AC - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_80FD9B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080FD564 - ldr r1, =gUnknown_085920E4 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80FDA24 - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =sub_80FDA94 - str r1, [r0] - b _080FD5C2 - .pool -_080FD564: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - adds r3, r6, 0 - ldr r7, =gUnknown_085920E4 - movs r6, 0x3 -_080FD574: - adds r0, r1, r7 - adds r1, 0x1 - ldrb r0, [r0] - cmp r2, r0 - bne _080FD584 - adds r0, r1, 0 - ands r0, r6 - strh r0, [r4, 0xA] -_080FD584: - lsls r0, r1, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080FD574 - ldr r1, =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80FDADC - str r1, [r0] - movs r0, 0 - strh r0, [r4, 0x6] - strh r0, [r4, 0x4] - b _080FD5C2 - .pool -_080FD5AC: - movs r0, 0x48 - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080FD5B8: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r4, 0x6] -_080FD5C2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FD504 - - thumb_func_start sub_80FD5CC -sub_80FD5CC: @ 80FD5CC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - bl sub_80984F4 - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FD5CC - - thumb_func_start ItemfinderCheckForHiddenItems -@ bool8 ItemfinderCheckForHiddenItems(struct map_events *events, u8 taskId) -ItemfinderCheckForHiddenItems: @ 80FD5F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - movs r3, 0 - mov r9, r4 - ldrb r0, [r5, 0x3] - cmp r3, r0 - bge _080FD6A4 - subs r1, 0x5 - mov r8, r1 -_080FD628: - lsls r3, 16 - asrs r1, r3, 16 - ldr r2, [r5, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r4, r0, 2 - adds r1, r4, r2 - ldrb r0, [r1, 0x5] - adds r7, r3, 0 - cmp r0, 0x7 - bne _080FD694 - movs r2, 0xFA - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r1, 0xA] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080FD694 - ldr r1, [r5, 0x10] - adds r1, r4, r1 - ldrh r2, [r1] - adds r2, 0x7 - mov r0, sp - ldrh r0, [r0] - subs r2, r0 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - mov r3, r9 - ldrh r1, [r3] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r2, r3 - lsrs r2, 16 - cmp r2, 0xE - bhi _080FD694 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, r8 - blt _080FD694 - cmp r2, 0x5 - bgt _080FD694 - adds r0, r6, 0 - bl sub_80FD8E0 -_080FD694: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r3, r0, 16 - asrs r0, 16 - ldrb r2, [r5, 0x3] - cmp r0, r2 - blt _080FD628 -_080FD6A4: - adds r0, r6, 0 - bl sub_80FD7C8 - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080FD6C4 - movs r0, 0 - b _080FD6C6 - .pool -_080FD6C4: - movs r0, 0x1 -_080FD6C6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ItemfinderCheckForHiddenItems - - thumb_func_start sub_80FD6D4 -sub_80FD6D4: @ 80FD6D4 - push {r4-r6,lr} - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - ldrb r2, [r0, 0x3] - ldr r5, [r0, 0x10] - movs r1, 0 - cmp r1, r2 - bge _080FD728 - lsls r0, r3, 16 - asrs r6, r0, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - adds r3, r5, 0 -_080FD6F2: - ldrb r0, [r3, 0x5] - cmp r0, 0x7 - bne _080FD720 - ldrh r0, [r3] - cmp r6, r0 - bne _080FD720 - ldrh r0, [r3, 0x2] - cmp r4, r0 - bne _080FD720 - movs r1, 0xFA - lsls r1, 1 - adds r0, r1, 0 - ldrh r3, [r3, 0xA] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080FD728 - movs r0, 0x1 - b _080FD72A -_080FD720: - adds r3, 0xC - adds r1, 0x1 - cmp r1, r2 - blt _080FD6F2 -_080FD728: - movs r0, 0 -_080FD72A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FD6D4 - - thumb_func_start sub_80FD730 -sub_80FD730: @ 80FD730 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl mapconnection_get_mapheader - adds r3, r0, 0 - ldrb r0, [r4] - cmp r0, 0x2 - beq _080FD758 - cmp r0, 0x2 - bgt _080FD74E - cmp r0, 0x1 - beq _080FD76C - b _080FD7AC -_080FD74E: - cmp r0, 0x3 - beq _080FD784 - cmp r0, 0x4 - beq _080FD78E - b _080FD7AC -_080FD758: - ldr r0, [r4, 0x4] - adds r0, 0x7 - subs r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, [r3] - ldr r0, [r0, 0x4] - subs r0, 0x7 - adds r0, r6 - b _080FD7A2 -_080FD76C: - ldr r0, [r4, 0x4] - adds r0, 0x7 - subs r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x4] - b _080FD79E - .pool -_080FD784: - ldr r0, [r3] - ldr r0, [r0] - subs r0, 0x7 - adds r0, r5 - b _080FD798 -_080FD78E: - ldr r0, =gMapHeader - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x7 - subs r0, r5, r0 -_080FD798: - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, [r4, 0x4] -_080FD79E: - adds r0, 0x7 - subs r0, r6, r0 -_080FD7A2: - lsls r0, 16 - lsrs r2, r0, 16 - b _080FD7B0 - .pool -_080FD7AC: - movs r0, 0 - b _080FD7C2 -_080FD7B0: - ldr r0, [r3, 0x4] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - bl sub_80FD6D4 - lsls r0, 24 - lsrs r0, 24 -_080FD7C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FD730 - - thumb_func_start sub_80FD7C8 -sub_80FD7C8: @ 80FD7C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, =gMapHeader - ldr r1, [r0] - ldr r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldr r0, [r1, 0x4] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - adds r1, 0x7 - cmp r0, r1 - bgt _080FD8CC -_080FD816: - mov r5, sp - ldrh r0, [r5, 0x2] - subs r0, 0x5 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r2, r4, 16 - asrs r1, r2, 16 - movs r6, 0x2 - ldrsh r0, [r5, r6] - adds r0, 0x5 - lsls r3, 16 - mov r8, r3 - cmp r1, r0 - bgt _080FD8B6 - movs r0, 0x7 - str r0, [sp, 0x10] - mov r1, r8 - asrs r1, 16 - mov r9, r1 - mov r10, r0 -_080FD83E: - ldr r3, [sp, 0x10] - cmp r3, r9 - bgt _080FD860 - ldr r5, [sp, 0x8] - lsls r0, r5, 16 - asrs r0, 16 - cmp r9, r0 - bge _080FD860 - asrs r1, r2, 16 - cmp r10, r1 - bgt _080FD860 - ldr r6, [sp, 0xC] - lsls r0, r6, 16 - asrs r0, 16 - lsls r7, r4, 16 - cmp r1, r0 - blt _080FD89E -_080FD860: - mov r0, r8 - asrs r5, r0, 16 - lsls r4, 16 - asrs r6, r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8088A8C - adds r7, r4, 0 - cmp r0, 0 - beq _080FD89E - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80FD730 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FD89E - mov r0, sp - ldrh r1, [r0] - subs r1, r5, r1 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r0, 0x2] - subs r2, r6, r2 - lsls r2, 16 - asrs r2, 16 - ldr r0, [sp, 0x4] - bl sub_80FD8E0 -_080FD89E: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r4, r0, 16 - lsls r2, r4, 16 - asrs r1, r2, 16 - mov r3, sp - movs r5, 0x2 - ldrsh r0, [r3, r5] - adds r0, 0x5 - cmp r1, r0 - ble _080FD83E -_080FD8B6: - movs r1, 0x80 - lsls r1, 9 - add r1, r8 - lsrs r3, r1, 16 - asrs r1, 16 - mov r0, sp - movs r6, 0 - ldrsh r0, [r0, r6] - adds r0, 0x7 - cmp r1, r0 - ble _080FD816 -_080FD8CC: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FD7C8 - - thumb_func_start sub_80FD8E0 -sub_80FD8E0: @ 80FD8E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r12, r2 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r3, r1, r0 - movs r1, 0x4 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080FD918 - strh r7, [r3] - mov r0, r12 - strh r0, [r3, 0x2] - movs r0, 0x1 - strh r0, [r3, 0x4] - b _080FD9A2 - .pool -_080FD918: - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080FD928 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - b _080FD92A -_080FD928: - ldrh r4, [r3] -_080FD92A: - movs r1, 0x2 - ldrsh r0, [r3, r1] - ldrh r1, [r3, 0x2] - mov r9, r1 - cmp r0, 0 - bge _080FD93E - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 - b _080FD940 -_080FD93E: - ldrh r2, [r3, 0x2] -_080FD940: - lsls r1, r7, 16 - asrs r0, r1, 16 - cmp r0, 0 - bge _080FD950 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FD952 -_080FD950: - lsrs r6, r1, 16 -_080FD952: - mov r1, r12 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r8, r0 - cmp r1, 0 - bge _080FD964 - negs r0, r1 - lsls r0, 16 - b _080FD966 -_080FD964: - mov r0, r8 -_080FD966: - lsrs r5, r0, 16 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r2, 16 - asrs r2, r1, 16 - adds r4, r0, r2 - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - adds r0, r1 - cmp r4, r0 - ble _080FD988 - strh r7, [r3] - mov r1, r12 - strh r1, [r3, 0x2] - b _080FD9A2 -_080FD988: - cmp r4, r0 - bne _080FD9A2 - cmp r2, r1 - bgt _080FD99C - cmp r2, r1 - bne _080FD9A2 - mov r1, r9 - lsls r0, r1, 16 - cmp r0, r8 - bge _080FD9A2 -_080FD99C: - strh r7, [r3] - mov r0, r12 - strh r0, [r3, 0x2] -_080FD9A2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FD8E0 - - thumb_func_start sub_80FD9B0 -sub_80FD9B0: @ 80FD9B0 - push {r4,r5,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bne _080FD9C2 - cmp r1, 0 - beq _080FDA1C -_080FD9C2: - lsls r0, r2, 16 - asrs r2, r0, 16 - adds r5, r0, 0 - cmp r2, 0 - bge _080FD9D4 - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - b _080FD9D6 -_080FD9D4: - lsrs r4, r5, 16 -_080FD9D6: - lsls r0, r1, 16 - asrs r2, r0, 16 - adds r1, r0, 0 - cmp r2, 0 - bge _080FD9E8 - negs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - b _080FD9EA -_080FD9E8: - lsrs r3, r1, 16 -_080FD9EA: - lsls r0, r4, 16 - asrs r2, r0, 16 - lsls r0, r3, 16 - asrs r0, 16 - cmp r2, r0 - ble _080FDA02 - cmp r5, 0 - bge _080FD9FE - movs r0, 0x4 - b _080FDA1E -_080FD9FE: - movs r0, 0x2 - b _080FDA1E -_080FDA02: - cmp r2, r0 - bge _080FDA0C - cmp r1, 0 - blt _080FDA14 - b _080FDA18 -_080FDA0C: - cmp r2, r0 - bne _080FDA1C - cmp r1, 0 - bge _080FDA18 -_080FDA14: - movs r0, 0x1 - b _080FDA1E -_080FDA18: - movs r0, 0x3 - b _080FDA1E -_080FDA1C: - movs r0, 0 -_080FDA1E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FD9B0 - - thumb_func_start sub_80FDA24 -sub_80FDA24: @ 80FDA24 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r4, =gMapObjects - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnim - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl npc_sync_anim_pause_bits - adds r0, r5, 0 - bl PlayerTurnInPlace - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDA24 - - thumb_func_start sub_80FDA94 -sub_80FDA94: @ 80FDA94 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FDACA - ldr r1, =gText_ItemFinderNearby - ldr r2, =sub_80FD5CC - adds r0, r4, 0 - bl DisplayItemMessageOnField -_080FDACA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDA94 - - thumb_func_start sub_80FDADC -sub_80FDADC: @ 80FDADC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FDB1C - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080FDB50 -_080FDB1C: - ldr r1, =gUnknown_085920E4 - movs r2, 0xA - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - bl sub_80FDA24 - movs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080FDB50 - ldr r1, =gText_ItemFinderOnTop - ldr r2, =sub_80FD5CC - adds r0, r5, 0 - bl DisplayItemMessageOnField -_080FDB50: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDADC - - thumb_func_start ItemUseOutOfBattle_PokeblockCase -ItemUseOutOfBattle_PokeblockCase: @ 80FDB6C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FDB98 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage - b _080FDBDA - .pool -_080FDB98: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r5, r1, r0 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080FDBC8 - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - ldr r0, =sub_80FDBEC - str r0, [r1] - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080FDBDA - .pool -_080FDBC8: - ldr r0, =gFieldCallback - ldr r1, =sub_80AF6D4 - str r1, [r0] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, =sub_80FDC00 - str r0, [r5] -_080FDBDA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_PokeblockCase - - thumb_func_start sub_80FDBEC -sub_80FDBEC: @ 80FDBEC - push {lr} - ldr r1, =bag_menu_mail_related - movs r0, 0 - bl OpenPokeblockCase - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDBEC - - thumb_func_start sub_80FDC00 -sub_80FDC00: @ 80FDC00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080FDC24 - bl overworld_free_bg_tilemaps - ldr r1, =c2_exit_to_overworld_2_switch - movs r0, 0 - bl OpenPokeblockCase - adds r0, r4, 0 - bl DestroyTask -_080FDC24: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDC00 - - thumb_func_start ItemUseOutOfBattle_CoinCase -ItemUseOutOfBattle_CoinCase: @ 80FDC34 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gStringVar1 - bl GetCoins - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_CoinCase - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080FDC90 - ldr r3, =bag_menu_inits_lists_menu - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage - b _080FDC9A - .pool -_080FDC90: - ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_080FDC9A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_CoinCase - - thumb_func_start ItemUseOutOfBattle_PowderJar -ItemUseOutOfBattle_PowderJar: @ 80FDCA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gStringVar1 - bl sub_80247BC - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_PowderQty - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080FDCFC - ldr r3, =bag_menu_inits_lists_menu - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage - b _080FDD06 - .pool -_080FDCFC: - ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField - adds r0, r5, 0 - adds r1, r4, 0 - bl DisplayItemMessageOnField -_080FDD06: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_PowderJar - - thumb_func_start sub_80FDD10 -sub_80FDD10: @ 80FDD10 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPlayerFacingPlantedBerryTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FDD58 - ldr r1, =gUnknown_0203A0F4 - ldr r0, =sub_80FDD74 - str r0, [r1] - ldr r1, =gFieldCallback - ldr r0, =MapPostLoadHook_UseItem - str r0, [r1] - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - ldr r0, =c2_exit_to_overworld_2_switch - str r0, [r1] - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080FDD68 - .pool -_080FDD58: - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetFieldFunc - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 -_080FDD68: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDD10 - - thumb_func_start sub_80FDD74 -sub_80FDD74: @ 80FDD74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem - bl ScriptContext2_Enable - ldr r0, =Route102_EventScript_274482 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDD74 - - thumb_func_start ItemUseOutOfBattle_WailmerPail -ItemUseOutOfBattle_WailmerPail: @ 80FDDA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_80FDE2C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FDDC8 - ldr r1, =gUnknown_0203A0F4 - ldr r0, =sub_80FDE7C - b _080FDDD8 - .pool -_080FDDC8: - bl TryToWaterBerryTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FDDEC - ldr r1, =gUnknown_0203A0F4 - ldr r0, =sub_80FDE08 -_080FDDD8: - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080FDDFE - .pool -_080FDDEC: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r5, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FDDFE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_WailmerPail - - thumb_func_start sub_80FDE08 -sub_80FDE08: @ 80FDE08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - ldr r0, =Route102_EventScript_2744C0 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDE08 - - thumb_func_start sub_80FDE2C -sub_80FDE2C: @ 80FDE2C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - bl PlayerGetZCoord - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, sp - ldrh r0, [r0] - ldrh r1, [r4] - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - beq _080FDE68 - ldr r0, =gMapObjects - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x5] - cmp r0, 0xE4 - beq _080FDE70 -_080FDE68: - movs r0, 0 - b _080FDE72 - .pool -_080FDE70: - movs r0, 0x1 -_080FDE72: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FDE2C - - thumb_func_start sub_80FDE7C -sub_80FDE7C: @ 80FDE7C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - ldr r0, =BattleFrontier_OutsideEast_EventScript_242CFC - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDE7C - - thumb_func_start ItemUseOutOfBattle_Medicine -ItemUseOutOfBattle_Medicine: @ 80FDEA0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =ItemUseCB_Medicine - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_Medicine - - thumb_func_start ItemUseOutOfBattle_ReduceEV -ItemUseOutOfBattle_ReduceEV: @ 80FDEBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =sub_81B67C8 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_ReduceEV - - thumb_func_start ItemUseOutOfBattle_SacredAsh -ItemUseOutOfBattle_SacredAsh: @ 80FDED8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =sub_81B79E8 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_SacredAsh - - thumb_func_start ItemUseOutOfBattle_PPRecovery -ItemUseOutOfBattle_PPRecovery: @ 80FDEF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =dp05_ether - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_PPRecovery - - thumb_func_start ItemUseOutOfBattle_PPUp -ItemUseOutOfBattle_PPUp: @ 80FDF10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =dp05_pp_up - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_PPUp - - thumb_func_start ItemUseOutOfBattle_RareCandy -ItemUseOutOfBattle_RareCandy: @ 80FDF2C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =dp05_rare_candy - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_RareCandy - - thumb_func_start ItemUseOutOfBattle_TMHM -ItemUseOutOfBattle_TMHM: @ 80FDF48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r1, [r0] - movs r0, 0xA9 - lsls r0, 1 - cmp r1, r0 - bls _080FDF74 - ldr r2, =gText_BootedUpHM - ldr r3, =sub_80FDF90 - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FDF80 - .pool -_080FDF74: - ldr r2, =gText_BootedUpTM - ldr r3, =sub_80FDF90 - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage -_080FDF80: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_TMHM - - thumb_func_start sub_80FDF90 -sub_80FDF90: @ 80FDF90 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - bl PlaySE - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task08_0809AD8C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FDF90 - - thumb_func_start task08_0809AD8C -task08_0809AD8C: @ 80FDFBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080FE000 - ldr r4, =gStringVar1 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_TMHMContainedVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, =sub_80FE024 - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl DisplayItemMessage -_080FE000: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task08_0809AD8C - - thumb_func_start sub_80FE024 -sub_80FE024: @ 80FE024 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_085920E8 - movs r1, 0x6 - bl bag_menu_yes_no - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE024 - - thumb_func_start sub_80FE03C -sub_80FE03C: @ 80FE03C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =sub_81B6DC4 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE03C - - thumb_func_start sub_80FE058 -sub_80FE058: @ 80FE058 - push {r4,lr} - ldr r4, =gSpecialVar_ItemId - ldrh r0, [r4] - movs r1, 0x1 - bl RemoveBagItem - ldrh r0, [r4] - ldr r1, =gStringVar2 - bl CopyItemName - ldr r0, =gStringVar4 - ldr r1, =gText_PlayerUsedVar2 - bl StringExpandPlaceholders - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE0AC - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - bl sub_81AB9A8 - ldrh r0, [r4] - bl ItemId_GetPocket - lsls r0, 24 - lsrs r0, 24 - bl sub_81ABA88 - b _080FE0B4 - .pool -_080FE0AC: - bl sub_81C5924 - bl sub_81C59BC -_080FE0B4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FE058 - - thumb_func_start ItemUseOutOfBattle_Repel -ItemUseOutOfBattle_Repel: @ 80FE0BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, =0x00004021 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080FE0EC - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80FE124 - str r0, [r1] - b _080FE116 - .pool -_080FE0EC: - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE10C - ldr r2, =gText_RepelEffectsLingered - ldr r3, =bag_menu_inits_lists_menu - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE116 - .pool -_080FE10C: - ldr r1, =gText_RepelEffectsLingered - ldr r2, =sub_81C6714 - adds r0, r5, 0 - bl DisplayItemMessageInBattlePyramid -_080FE116: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_Repel - - thumb_func_start sub_80FE124 -sub_80FE124: @ 80FE124 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r5, =gTasks + 0x8 - adds r1, r4, r5 - ldrh r0, [r1, 0x10] - adds r0, 0x1 - strh r0, [r1, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080FE156 - movs r0, 0 - strh r0, [r1, 0x10] - movs r0, 0x2F - bl PlaySE - adds r0, r5, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, =sub_80FE164 - str r1, [r0] -_080FE156: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE124 - - thumb_func_start sub_80FE164 -sub_80FE164: @ 80FE164 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _080FE1C2 - ldr r4, =0x00004021 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetHoldEffectParam - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl VarSet - bl sub_80FE058 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE1B8 - ldr r2, =gStringVar4 - ldr r3, =bag_menu_inits_lists_menu - adds r0, r5, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE1C2 - .pool -_080FE1B8: - ldr r1, =gStringVar4 - ldr r2, =sub_81C6714 - adds r0, r6, 0 - bl DisplayItemMessageInBattlePyramid -_080FE1C2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE164 - - thumb_func_start sub_80FE1D0 -sub_80FE1D0: @ 80FE1D0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080FE226 - movs r0, 0x75 - bl PlaySE - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE21C - ldr r2, =gStringVar4 - ldr r3, =bag_menu_inits_lists_menu - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE226 - .pool -_080FE21C: - ldr r1, =gStringVar4 - ldr r2, =sub_81C6714 - adds r0, r5, 0 - bl DisplayItemMessageInBattlePyramid -_080FE226: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE1D0 - - thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute -ItemUseOutOfBattle_BlackWhiteFlute: @ 80FE234 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gSpecialVar_ItemId - ldrh r0, [r4] - ldr r1, =gStringVar2 - bl CopyItemName - ldrh r0, [r4] - cmp r0, 0x2B - bne _080FE278 - ldr r0, =0x000008ad - bl FlagSet - ldr r0, =0x000008ae - bl FlagClear - ldr r0, =gStringVar4 - ldr r1, =gText_UsedVar2WildLured - bl StringExpandPlaceholders - b _080FE28C - .pool -_080FE278: - ldr r0, =0x000008ae - bl FlagSet - ldr r0, =0x000008ad - bl FlagClear - ldr r0, =gStringVar4 - ldr r1, =gText_UsedVar2WildRepelled - bl StringExpandPlaceholders -_080FE28C: - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x18] - ldr r1, =sub_80FE1D0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute - - thumb_func_start task08_080A1C44 -task08_080A1C44: @ 80FE2BC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl player_avatar_init_params_reset - bl sub_80B7CC8 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end task08_080A1C44 - - thumb_func_start re_escape_rope -re_escape_rope: @ 80FE2D8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl flagmods_08054D70 - bl sub_80FE058 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, =gStringVar4 - ldr r2, =task08_080A1C44 - adds r0, r4, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end re_escape_rope - - thumb_func_start sub_80FE314 -sub_80FE314: @ 80FE314 - push {lr} - ldr r0, =gMapHeader - ldrb r1, [r0, 0x1A] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080FE32C - movs r0, 0 - b _080FE32E - .pool -_080FE32C: - movs r0, 0x1 -_080FE32E: - pop {r1} - bx r1 - thumb_func_end sub_80FE314 - - thumb_func_start ItemUseOutOfBattle_EscapeRope -ItemUseOutOfBattle_EscapeRope: @ 80FE334 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80FE314 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FE35C - ldr r1, =gUnknown_0203A0F4 - ldr r0, =re_escape_rope - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080FE36E - .pool -_080FE35C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FE36E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_EscapeRope - - thumb_func_start ItemUseOutOfBattle_EvolutionStone -ItemUseOutOfBattle_EvolutionStone: @ 80FE378 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =sub_81B7C74 - str r1, [r2] - bl SetUpItemUseCallback - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_EvolutionStone - - thumb_func_start ItemUseInBattle_PokeBall -ItemUseInBattle_PokeBall: @ 80FE394 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl IsPlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - bne _080FE3D0 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE3C8 - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080FE3FA - .pool -_080FE3C8: - adds r0, r4, 0 - bl sub_81C5B14 - b _080FE3FA -_080FE3D0: - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE3F0 - ldr r2, =gText_BoxFull - ldr r3, =bag_menu_inits_lists_menu - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE3FA - .pool -_080FE3F0: - ldr r1, =gText_BoxFull - ldr r2, =sub_81C6714 - adds r0, r5, 0 - bl DisplayItemMessageInBattlePyramid -_080FE3FA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseInBattle_PokeBall - - thumb_func_start sub_80FE408 -sub_80FE408: @ 80FE408 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080FE43A - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE434 - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080FE43A - .pool -_080FE434: - adds r0, r5, 0 - bl sub_81C5B14 -_080FE43A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE408 - - thumb_func_start sub_80FE440 -sub_80FE440: @ 80FE440 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080FE4AC - movs r0, 0x1 - bl PlaySE - ldr r4, =gSpecialVar_ItemId - ldrh r0, [r4] - movs r1, 0x1 - bl RemoveBagItem - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE49C - ldrh r0, [r4] - bl sub_806CF78 - adds r2, r0, 0 - ldr r3, =sub_80FE408 - adds r0, r5, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE4AC - .pool -_080FE49C: - ldrh r0, [r4] - bl sub_806CF78 - adds r1, r0, 0 - ldr r2, =sub_80FE408 - adds r0, r6, 0 - bl DisplayItemMessageInBattlePyramid -_080FE4AC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE440 - - thumb_func_start ItemUseInBattle_StatIncrease -ItemUseInBattle_StatIncrease: @ 80FE4B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gBattlePartyID - ldr r0, =gBankInMenu - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gSpecialVar_ItemId - ldrh r1, [r1] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - bl ExecuteTableBasedItemEffect_ - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080FE52C - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE518 - ldr r2, =gText_WontHaveEffect - ldr r3, =bag_menu_inits_lists_menu - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE53C - .pool -_080FE518: - ldr r1, =gText_WontHaveEffect - ldr r2, =sub_81C6714 - adds r0, r4, 0 - bl DisplayItemMessageInBattlePyramid - b _080FE53C - .pool -_080FE52C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80FE440 - str r0, [r1] - strh r2, [r1, 0x18] -_080FE53C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseInBattle_StatIncrease - - thumb_func_start sub_80FE54C -sub_80FE54C: @ 80FE54C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE574 - ldr r0, =gUnknown_0203CE54 - ldr r1, [r0] - ldr r0, =sub_81B89F0 - str r0, [r1] - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080FE582 - .pool -_080FE574: - ldr r0, =gUnknown_0203CF2C - ldr r1, [r0] - ldr r0, =sub_81B89F0 - str r0, [r1] - adds r0, r4, 0 - bl sub_81C5B14 -_080FE582: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE54C - - thumb_func_start ItemUseInBattle_Medicine -ItemUseInBattle_Medicine: @ 80FE590 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =ItemUseCB_Medicine - str r1, [r2] - bl sub_80FE54C - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseInBattle_Medicine - - thumb_func_start sub_80FE5AC -sub_80FE5AC: @ 80FE5AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =sub_81B79E8 - str r1, [r2] - bl sub_80FE54C - pop {r0} - bx r0 - .pool - thumb_func_end sub_80FE5AC - - thumb_func_start ItemUseInBattle_PPRecovery -ItemUseInBattle_PPRecovery: @ 80FE5C8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_03006328 - ldr r1, =dp05_ether - str r1, [r2] - bl sub_80FE54C - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseInBattle_PPRecovery - - thumb_func_start ItemUseInBattle_Escape -ItemUseInBattle_Escape: @ 80FE5E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080FE634 - bl sub_80FE058 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080FE620 - ldr r2, =gStringVar4 - ldr r3, =unknown_ItemMenu_Confirm - adds r0, r4, 0 - movs r1, 0x1 - bl DisplayItemMessage - b _080FE646 - .pool -_080FE620: - ldr r1, =gStringVar4 - ldr r2, =sub_81C5B14 - adds r0, r4, 0 - bl DisplayItemMessageInBattlePyramid - b _080FE646 - .pool -_080FE634: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xE] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080FE646: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseInBattle_Escape - - thumb_func_start ItemUseOutOfBattle_EnigmaBerry -ItemUseOutOfBattle_EnigmaBerry: @ 80FE650 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x14 - bls _080FE66A - b _080FE75C -_080FE66A: - lsls r0, 2 - ldr r1, =_080FE67C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080FE67C: - .4byte _080FE708 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE75C - .4byte _080FE75C - .4byte _080FE6EC - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE6D0 - .4byte _080FE75C - .4byte _080FE724 - .4byte _080FE724 - .4byte _080FE740 -_080FE6D0: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl ItemUseOutOfBattle_Medicine - b _080FE770 - .pool -_080FE6EC: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl ItemUseOutOfBattle_SacredAsh - b _080FE770 - .pool -_080FE708: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl ItemUseOutOfBattle_RareCandy - b _080FE770 - .pool -_080FE724: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl ItemUseOutOfBattle_PPUp - b _080FE770 - .pool -_080FE740: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl ItemUseOutOfBattle_PPRecovery - b _080FE770 - .pool -_080FE75C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x4 - strh r0, [r1, 0x10] - adds r0, r4, 0 - bl ItemUseOutOfBattle_CannotUse -_080FE770: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_EnigmaBerry - - thumb_func_start ItemUseInBattle_EnigmaBerry -ItemUseInBattle_EnigmaBerry: @ 80FE77C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - bhi _080FE814 - lsls r0, 2 - ldr r1, =_080FE7A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080FE7A4: - .4byte _080FE7FC - .4byte _080FE814 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE804 - .4byte _080FE814 - .4byte _080FE804 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE814 - .4byte _080FE80C -_080FE7FC: - adds r0, r4, 0 - bl ItemUseInBattle_StatIncrease - b _080FE81A -_080FE804: - adds r0, r4, 0 - bl ItemUseInBattle_Medicine - b _080FE81A -_080FE80C: - adds r0, r4, 0 - bl ItemUseInBattle_PPRecovery - b _080FE81A -_080FE814: - adds r0, r4, 0 - bl ItemUseOutOfBattle_CannotUse -_080FE81A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemUseInBattle_EnigmaBerry - - thumb_func_start ItemUseOutOfBattle_CannotUse -ItemUseOutOfBattle_CannotUse: @ 80FE820 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r1, [r1, 0xE] - bl DisplayDadsAdviceCannotUseItemMessage - pop {r0} - bx r0 - .pool - thumb_func_end ItemUseOutOfBattle_CannotUse - - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index f2a9d8196..efeb8f322 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -162,7 +162,7 @@ SECTIONS { asm/rotating_gate.o(.text); src/safari_zone.o(.text); asm/contest_link_80FC4F4.o(.text); - asm/item_use.o(.text); + src/item_use.o(.text); asm/battle_anim_80FE840.o(.text); src/bike.o(.text); asm/easy_chat.o(.text); diff --git a/src/item_use.c b/src/item_use.c new file mode 100755 index 000000000..8c24e4a71 --- /dev/null +++ b/src/item_use.c @@ -0,0 +1,1271 @@ +#include "global.h" +#include "battle.h" +#include "berry.h" +#include "bike.h" +#include "coins.h" +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/songs.h" +#include "constants/vars.h" +#include "data2.h" +#include "event_data.h" +#include "fieldmap.h" +#include "field_map_obj.h" +#include "field_player_avatar.h" +#include "field_screen.h" +#include "field_weather.h" +#include "item.h" +#include "map_obj_8097404.h" +#include "mail.h" +#include "metatile_behavior.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon.h" +#include "rom_818CFC8.h" +#include "script.h" +#include "sound.h" +#include "string_util.h" +#include "task.h" +#include "text.h" + +extern u16 gSpecialVar_ItemId; +extern void(**gUnknown_0203CE54)(void); +extern void(**gUnknown_0203CF2C)(void); +extern void(*gUnknown_0203A0F4)(u8 taskId); +extern void(*gUnknown_085920D8[])(void); +extern void (*gUnknown_03006328)(u8, u16, TaskFunc); +extern void unknown_ItemMenu_Confirm(u8 taskId); +extern void sub_81C5B14(u8 taskId); +extern u8 gText_DadsAdvice[]; +extern u8 gText_CantDismountBike[]; +extern void sub_8197434(u8 a, u8 b); +extern void sub_80984F4(void); +extern void ItemUseOutOfBattle_TMHM(u8 a); +extern void ItemUseOutOfBattle_EvolutionStone(u8 b); +extern void bag_menu_mail_related(void); +extern void OpenPokeblockCase(u8 a, void(*b)(void)); +extern void overworld_free_bg_tilemaps(void); +extern bool32 sav1_map_is_biking_allowed(void); +extern bool8 IsPlayerFacingSurfableFishableWater(void); +extern bool8 sub_81221AC(void); +extern u8 gText_ItemFinderNothing[]; +extern u8 gText_ItemFinderNearby[]; +extern u8 gText_ItemFinderOnTop[]; +extern u8 gText_CoinCase[]; +extern u8 gText_PowderQty[]; +extern u8 gUnknown_085920E4[]; +extern u8 Route102_EventScript_274482[]; +extern u8 Route102_EventScript_2744C0[]; +extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; +extern u8 gText_BootedUpHM[]; +extern u8 gText_BootedUpTM[]; +extern u8 gText_TMHMContainedVar1[]; +extern u8 gText_PlayerUsedVar2[]; +extern u8 gText_RepelEffectsLingered[]; +extern u8 gText_UsedVar2WildLured[]; +extern u8 gText_UsedVar2WildRepelled[]; +extern u8 gText_BoxFull[]; +extern u8 gText_WontHaveEffect[]; +extern int sub_80247BC(void); +extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); +extern void SetUpItemUseCallback(u8 taskId); +extern void ItemUseCB_Medicine(u8, u16, TaskFunc); +extern void sub_81B67C8(u8, u16, TaskFunc); +extern void sub_81B79E8(u8, u16, TaskFunc); +extern void dp05_ether(u8, u16, TaskFunc); +extern void dp05_pp_up(u8, u16, TaskFunc); +extern void dp05_rare_candy(u8, u16, TaskFunc); +extern void sub_81B6DC4(u8, u16, TaskFunc); +extern void sub_81B7C74(u8, u16, TaskFunc); +extern u16 ItemIdToBattleMoveId(u16); +extern void bag_menu_yes_no(u8, u8, void(**)(u8 taskId)); +extern void (*gUnknown_085920E8[])(u8 taskId); +extern void sub_81C5924(void); +extern void sub_81C59BC(void); +extern void sub_81AB9A8(u8); +extern void sub_81ABA88(u8); +extern void sub_80B7CC8(void); +extern void flagmods_08054D70(void); +extern u8* sub_806CF78(u16); +extern bool8 ExecuteTableBasedItemEffect_(struct Pokemon*, u16, u8, u8); +extern u8 gBankInMenu; +extern u16 gBattlePartyID[]; +extern void sub_81B89F0(void); +extern u8 GetItemEffectType(u16); + +void MapPostLoadHook_UseItem(void); +extern void sub_80AF6D4(void); +void Task_CallItemUseOnFieldCallback(u8 taskId); +void bag_menu_inits_lists_menu(u8 taskId); +void ItemUseOnFieldCB_Bike(u8 taskId); +void ItemUseOnFieldCB_Rod(u8 taskId); +void ItemUseOnFieldCB_Itemfinder(u8 taskId); +void sub_80FD504(u8 taskId); +void sub_80FD5CC(u8 taskId); +void sub_80FDA94(u8 taskId); +void sub_80FDADC(u8 taskId); +void sub_80FD7C8(u8 taskId); +void sub_80FDC00(u8 taskId); +void sub_80FDD74(u8 taskId); +void sub_80FDE08(u8 taskId); +void sub_80FDE7C(u8 taskId); +void sub_80FDF90(u8 taskId); +void task08_0809AD8C(u8 taskId); +void sub_80FE024(u8 taskId); +void sub_80FE124(u8 taskId); +void sub_80FE164(u8 taskId); + +void DisplayItemMessage(u8 taskId, u8 a, u8* str, void(*callback)(u8 taskId)); +void DisplayItemMessageInBattlePyramid(u8 taskId, u8* str, void(*callback)(u8 taskId)); +void DisplayItemMessageOnField(u8 taskId, u8* str, void(*callback)(u8 taskId)); +void sub_81C6714(u8 taskId); +void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId); +void StartFishing(u8 a); +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8); +u8 sub_80FD9B0(s16 a, s16 b); +void sub_80FDA24(u8 a); +void sub_80FD8E0(u8 taskId, s16 x, s16 y); +void sub_80FDBEC(void); +bool8 sub_80FDE2C(void); +void ItemUseOutOfBattle_CannotUse(u8 taskId); + +void SetUpItemUseCallback(u8 taskId) +{ + u8 type; + if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY) + type = gTasks[taskId].data[4] - 1; + else + type = ItemId_GetType(gSpecialVar_ItemId) - 1; + if (!InBattlePyramid()) + { + *gUnknown_0203CE54 = gUnknown_085920D8[type]; + unknown_ItemMenu_Confirm(taskId); + } + else + { + *gUnknown_0203CF2C = gUnknown_085920D8[type]; + sub_81C5B14(taskId); + } +} + +void SetUpItemUseOnFieldCallback(u8 taskId) +{ + if (gTasks[taskId].data[3] != 1) + { + gFieldCallback = MapPostLoadHook_UseItem; + SetUpItemUseCallback(taskId); + } + else + gUnknown_0203A0F4(taskId); +} + +void MapPostLoadHook_UseItem(void) +{ + pal_fill_black(); + CreateTask(Task_CallItemUseOnFieldCallback, 8); +} + +void Task_CallItemUseOnFieldCallback(u8 taskId) +{ + if (sub_80ABDFC() == 1) + gUnknown_0203A0F4(taskId); +} + +void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, u8 *str) +{ + StringExpandPlaceholders(gStringVar4, str); + if (!isUsingRegisteredKeyItemOnField) + { + if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu); + else + DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, sub_81C6714); + } + else + DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField); +} + +void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) +{ + DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_DadsAdvice); +} + +void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) +{ + DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_CantDismountBike); +} + +void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId) +{ + sub_8197434(0, 1); + DestroyTask(taskId); + sub_80984F4(); + ScriptContext2_Disable(); +} + +u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) +{ + if (ItemId_GetFieldFunc(itemId) == ItemUseOutOfBattle_TMHM) + return 1; + else if (ItemId_GetFieldFunc(itemId) == ItemUseOutOfBattle_EvolutionStone) + return 2; + else + return 0; +} + +void sub_80FD254() +{ + struct MailStruct mail; + mail.itemId = gSpecialVar_ItemId; + ReadMail(&mail, bag_menu_mail_related, 0); +} + +void ItemUseOutOfBattle_Mail(u8 taskId) +{ + *gUnknown_0203CE54 = sub_80FD254; + unknown_ItemMenu_Confirm(taskId); +} + +void ItemUseOutOfBattle_Bike(u8 taskId) +{ + s16* data = gTasks[taskId].data; + s16 coordsY; + s16 coordsX; + u8 behavior; + PlayerGetDestCoords(&coordsX, &coordsY); + behavior = MapGridGetMetatileBehaviorAt(coordsX, coordsY); + if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE || MetatileBehavior_IsVerticalRail(behavior) == TRUE || MetatileBehavior_IsHorizontalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE) + DisplayCannotDismountBikeMessage(taskId, data[3]); + else + { + if (sav1_map_is_biking_allowed() == TRUE && IsBikingDisallowedByPlayer() == 0) + { + gUnknown_0203A0F4 = ItemUseOnFieldCB_Bike; + SetUpItemUseOnFieldCallback(taskId); + } + else + DisplayDadsAdviceCannotUseItemMessage(taskId, data[3]); + } +} + +void ItemUseOnFieldCB_Bike(u8 taskId) +{ + if (!ItemId_GetSecondaryId(gSpecialVar_ItemId)) + GetOnOffBike(2); + else + GetOnOffBike(4); + sub_80984F4(); + ScriptContext2_Disable(); + DestroyTask(taskId); +} + +bool32 CanFish() +{ + s16 x, y; + u16 tileBehavior; + + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + tileBehavior = MapGridGetMetatileBehaviorAt(x, y); + + if (MetatileBehavior_IsWaterfall(tileBehavior)) + return FALSE; + + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_4)) + return FALSE; + + if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) + { + if (IsPlayerFacingSurfableFishableWater()) + return TRUE; + } + else + { + if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior) && !MapGridIsImpassableAt(x, y)) + return TRUE; + if (MetatileBehavior_8089510(tileBehavior) == TRUE) + return TRUE; + } + + return FALSE; +} + +void ItemUseOutOfBattle_Rod(u8 taskId) +{ + if (CanFish() == TRUE) + { + gUnknown_0203A0F4 = ItemUseOnFieldCB_Rod; + SetUpItemUseOnFieldCallback(taskId); + } + else + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); +} + +void ItemUseOnFieldCB_Rod(u8 taskId) +{ + StartFishing(ItemId_GetSecondaryId(gSpecialVar_ItemId)); + DestroyTask(taskId); +} + +void ItemUseOutOfBattle_Itemfinder(u8 var) +{ + IncrementGameStat(0x27); + gUnknown_0203A0F4 = ItemUseOnFieldCB_Itemfinder; + SetUpItemUseOnFieldCallback(var); +} + +void ItemUseOnFieldCB_Itemfinder(u8 taskId) +{ + if (ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE) + gTasks[taskId].func = sub_80FD504; + else + DisplayItemMessageOnField(taskId, gText_ItemFinderNothing, sub_80FD5CC); +} + +void sub_80FD504(u8 taskId) +{ + u8 playerDir; + u8 playerDirToItem; + u8 i; + s16* data = gTasks[taskId].data; + if (!data[3]) + { + if (data[4] == 4) + { + playerDirToItem = sub_80FD9B0(data[0], data[1]); + if (playerDirToItem) + { + sub_80FDA24(gUnknown_085920E4[playerDirToItem - 1]); + gTasks[taskId].func = sub_80FDA94; + } + else + { + playerDir = player_get_direction_lower_nybble(); + for (i = 0; i < 4; i++) + { + if (playerDir == gUnknown_085920E4[i]) + data[5] = (i + 1) & 3; + } + gTasks[taskId].func = sub_80FDADC; + data[3] = 0; + data[2] = 0; + } + return; + } + PlaySE(SE_DAUGI); + data[4]++; + } + data[3] = (data[3] + 1) & 0x1F; +} + +void sub_80FD5CC(u8 taskId) +{ + sub_8197434(0, 1); + sub_80984F4(); + ScriptContext2_Disable(); + DestroyTask(taskId); +} + +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId) +{ + int distanceX, distanceY; + s16 x, y, i, newDistanceX, newDistanceY; + PlayerGetDestCoords(&x, &y); + gTasks[taskId].data[2] = FALSE; + for (i = 0; i < events->bgEventCount; i++) + { + if (events->bgEvents[i].kind == 7 && !FlagGet(events->bgEvents[i].bgUnion.hiddenItem.hiddenItemId + 0x1F4)) + { + distanceX = (u16)events -> bgEvents[i].x + 7; + newDistanceX = distanceX - x; + distanceY = (u16)events -> bgEvents[i].y + 7; + newDistanceY = distanceY - y; + + if ((u16)(newDistanceX + 7) < 15 && (newDistanceY >= -5) && (newDistanceY < 6)) + sub_80FD8E0(taskId, newDistanceX, newDistanceY); + } + } + + sub_80FD7C8(taskId); + if (gTasks[taskId].data[2] == TRUE) + return TRUE; + else + return FALSE; +} + +bool8 sub_80FD6D4(struct MapEvents *events, s16 x, s16 y) +{ + u8 bgEventCount = events->bgEventCount; + struct BgEvent *bgEvent = events->bgEvents; + int i; + + for (i = 0; i < bgEventCount; i++) + { + if (bgEvent[i].kind == 7 && x == (u16)bgEvent[i].x && y == (u16)bgEvent[i].y) // hidden item and coordinates matches x and y passed? + { + if (!FlagGet(bgEvent[i].bgUnion.hiddenItem.hiddenItemId + 0x1F4)) + return TRUE; + else + return FALSE; + } + } + return FALSE; +} + +bool8 sub_80FD730(struct MapConnection *connection, int x, int y) +{ + struct MapHeader *mapHeader; + u16 localX, localY; + u32 localOffset; + s32 localLength; + + mapHeader = mapconnection_get_mapheader(connection); + + switch (connection->direction) + { + // same weird temp variable behavior seen in sub_80FD6D4 + case 2: + localOffset = connection->offset + 7; + localX = x - localOffset; + localLength = mapHeader->mapData->height - 7; + localY = localLength + y; // additions are reversed for some reason + break; + case 1: + localOffset = connection->offset + 7; + localX = x - localOffset; + localLength = gMapHeader.mapData->height + 7; + localY = y - localLength; + break; + case 3: + localLength = mapHeader->mapData->width - 7; + localX = localLength + x; // additions are reversed for some reason + localOffset = connection->offset + 7; + localY = y - localOffset; + break; + case 4: + localLength = gMapHeader.mapData->width + 7; + localX = x - localLength; + localOffset = connection->offset + 7; + localY = y - localOffset; + break; + default: + return FALSE; + } + return sub_80FD6D4(mapHeader->events, localX, localY); +} + +// weird math +#ifdef NONMATCHING +void sub_80FD7C8(u8 taskId) +{ + s16 x, y; + s16 curX, curY; + s16 width = gMapHeader.mapData->width + 7; + s16 height = gMapHeader.mapData->height + 7; + + PlayerGetDestCoords(&x, &y); + + for (curX = x - 7; curX <= x + 7; curX++) + { + for (curY = y - 5; curY <= y + 5; curY++) + { + if (7 > curX + || curX >= width + || 7 > curY + || curY >= height) + { + struct MapConnection *conn = sub_8088A8C(curX, curY); + if (conn && sub_80FD730(conn, curX, curY) == TRUE) + sub_80FD8E0(taskId, curX - x, curY - y); + } + } + } +} +#else +__attribute__((naked)) +void sub_80FD7C8(u8 taskId) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x4]\n\ + ldr r0, =gMapHeader\n\ + ldr r1, [r0]\n\ + ldr r0, [r1]\n\ + adds r0, 0x7\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x8]\n\ + ldr r0, [r1, 0x4]\n\ + adds r0, 0x7\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0xC]\n\ + mov r4, sp\n\ + adds r4, 0x2\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + bl PlayerGetDestCoords\n\ + mov r0, sp\n\ + ldrh r0, [r0]\n\ + subs r0, 0x7\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + asrs r0, 16\n\ + mov r1, sp\n\ + movs r2, 0\n\ + ldrsh r1, [r1, r2]\n\ + adds r1, 0x7\n\ + cmp r0, r1\n\ + bgt _080FD8CC\n\ +_080FD816:\n\ + mov r5, sp\n\ + ldrh r0, [r5, 0x2]\n\ + subs r0, 0x5\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + lsls r2, r4, 16\n\ + asrs r1, r2, 16\n\ + movs r6, 0x2\n\ + ldrsh r0, [r5, r6]\n\ + adds r0, 0x5\n\ + lsls r3, 16\n\ + mov r8, r3\n\ + cmp r1, r0\n\ + bgt _080FD8B6\n\ + movs r0, 0x7\n\ + str r0, [sp, 0x10]\n\ + mov r1, r8\n\ + asrs r1, 16\n\ + mov r9, r1\n\ + mov r10, r0\n\ +_080FD83E:\n\ + ldr r3, [sp, 0x10]\n\ + cmp r3, r9\n\ + bgt _080FD860\n\ + ldr r5, [sp, 0x8]\n\ + lsls r0, r5, 16\n\ + asrs r0, 16\n\ + cmp r9, r0\n\ + bge _080FD860\n\ + asrs r1, r2, 16\n\ + cmp r10, r1\n\ + bgt _080FD860\n\ + ldr r6, [sp, 0xC]\n\ + lsls r0, r6, 16\n\ + asrs r0, 16\n\ + lsls r7, r4, 16\n\ + cmp r1, r0\n\ + blt _080FD89E\n\ +_080FD860:\n\ + mov r0, r8\n\ + asrs r5, r0, 16\n\ + lsls r4, 16\n\ + asrs r6, r4, 16\n\ + adds r0, r5, 0\n\ + adds r1, r6, 0\n\ + bl sub_8088A8C\n\ + adds r7, r4, 0\n\ + cmp r0, 0\n\ + beq _080FD89E\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + bl sub_80FD730\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bne _080FD89E\n\ + mov r0, sp\n\ + ldrh r1, [r0]\n\ + subs r1, r5, r1\n\ + lsls r1, 16\n\ + asrs r1, 16\n\ + ldrh r2, [r0, 0x2]\n\ + subs r2, r6, r2\n\ + lsls r2, 16\n\ + asrs r2, 16\n\ + ldr r0, [sp, 0x4]\n\ + bl sub_80FD8E0\n\ +_080FD89E:\n\ + movs r1, 0x80\n\ + lsls r1, 9\n\ + adds r0, r7, r1\n\ + lsrs r4, r0, 16\n\ + lsls r2, r4, 16\n\ + asrs r1, r2, 16\n\ + mov r3, sp\n\ + movs r5, 0x2\n\ + ldrsh r0, [r3, r5]\n\ + adds r0, 0x5\n\ + cmp r1, r0\n\ + ble _080FD83E\n\ +_080FD8B6:\n\ + movs r1, 0x80\n\ + lsls r1, 9\n\ + add r1, r8\n\ + lsrs r3, r1, 16\n\ + asrs r1, 16\n\ + mov r0, sp\n\ + movs r6, 0\n\ + ldrsh r0, [r0, r6]\n\ + adds r0, 0x7\n\ + cmp r1, r0\n\ + ble _080FD816\n\ +_080FD8CC:\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_80FD8E0(u8 taskId, s16 x, s16 y) +{ + s16 *data = gTasks[taskId].data; + s16 var1, var2, var3, var4; + + if (data[2] == FALSE) + { + data[0] = x; + data[1] = y; + data[2] = TRUE; + } + else + { + // data[0] and data[1] contain the player's coordinates. + // x and y contain the item's coordinates. + if (data[0] < 0) + var1 = data[0] * -1; // item is to the left + else + var1 = data[0]; // item is to the right + + if (data[1] < 0) + var2 = data[1] * -1; // item is to the north + else + var2 = data[1]; // item is to the south + + if (x < 0) + var3 = x * -1; + else + var3 = x; + + if (y < 0) + var4 = y * -1; + else + var4 = y; + + if (var1 + var2 > var3 + var4) + { + data[0] = x; + data[1] = y; + } + else + { + if (var1 + var2 == var3 + var4 && (var2 > var4 || (var2 == var4 && data[1] < y))) + { + data[0] = x; + data[1] = y; + } + } + } +} + +u8 sub_80FD9B0(s16 itemX, s16 itemY) +{ + s16 abX, abY; + + if (itemX == 0 && itemY == 0) + return DIR_NONE; // player is standing on the item. + + // get absolute X distance. + if (itemX < 0) + abX = itemX * -1; + else + abX = itemX; + + // get absolute Y distance. + if (itemY < 0) + abY = itemY * -1; + else + abY = itemY; + + if (abX > abY) + { + if (itemX < 0) + return DIR_EAST; + else + return DIR_NORTH; + } + else + { + if (abX < abY) + { + if (itemY < 0) + return DIR_SOUTH; + else + return DIR_WEST; + } + if (abX == abY) + { + if (itemY < 0) + return DIR_SOUTH; + else + return DIR_WEST; + } + return DIR_NONE; // should never get here. return something so it doesnt crash. + } +} + +void sub_80FDA24(u8 direction) +{ + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]); + FieldObjectClearAnim(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]); + npc_sync_anim_pause_bits(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]); + PlayerTurnInPlace(direction); +} + +void sub_80FDA94(u8 taskId) +{ + if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]) == TRUE) + DisplayItemMessageOnField(taskId, gText_ItemFinderNearby, sub_80FD5CC); +} + +void sub_80FDADC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]) == TRUE + || data[2] == FALSE) + { + sub_80FDA24(gUnknown_085920E4[data[5]]); + data[2] = 1; + data[5] = (data[5] + 1) & 3; + data[3]++; + + if (data[3] == 4) + DisplayItemMessageOnField(taskId, gText_ItemFinderOnTop, sub_80FD5CC); + } +} + +void ItemUseOutOfBattle_PokeblockCase(u8 taskId) +{ + if (sub_81221AC() == TRUE) + { + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); + } + else if (gTasks[taskId].data[3] != TRUE) + { + *gUnknown_0203CE54 = sub_80FDBEC; + unknown_ItemMenu_Confirm(taskId); + } + else + { + gFieldCallback = sub_80AF6D4; + fade_screen(1, 0); + gTasks[taskId].func = sub_80FDC00; + } +} + +void sub_80FDBEC(void) +{ + OpenPokeblockCase(0, bag_menu_mail_related); +} + +void sub_80FDC00(u8 taskId) +{ + if (!gPaletteFade.active) + { + overworld_free_bg_tilemaps(); + OpenPokeblockCase(0, c2_exit_to_overworld_2_switch); + DestroyTask(taskId); + } +} + +void ItemUseOutOfBattle_CoinCase(u8 taskId) +{ + ConvertIntToDecimalStringN(gStringVar1, GetCoins(), 0, 4); + StringExpandPlaceholders(gStringVar4, gText_CoinCase); + + if (!gTasks[taskId].data[3]) + { + DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu); + } + else + { + DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField); + } +} + +void ItemUseOutOfBattle_PowderJar(u8 taskId) +{ + ConvertIntToDecimalStringN(gStringVar1, sub_80247BC(), 0, 5); + StringExpandPlaceholders(gStringVar4, gText_PowderQty); + + if (!gTasks[taskId].data[3]) + { + DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu); + } + else + { + DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField); + } +} + +void sub_80FDD10(u8 taskId) +{ + if (IsPlayerFacingPlantedBerryTree() == TRUE) + { + gUnknown_0203A0F4 = sub_80FDD74; + gFieldCallback = MapPostLoadHook_UseItem; + *gUnknown_0203CE54 = c2_exit_to_overworld_2_switch; + unknown_ItemMenu_Confirm(taskId); + } + else + { + ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); + } +} + +void sub_80FDD74(u8 taskId) +{ + RemoveBagItem(gSpecialVar_ItemId, 1); + ScriptContext2_Enable(); + ScriptContext1_SetupScript(Route102_EventScript_274482); + DestroyTask(taskId); +} + +void ItemUseOutOfBattle_WailmerPail(u8 taskId) +{ + if (sub_80FDE2C() == TRUE) + { + gUnknown_0203A0F4 = sub_80FDE7C; + SetUpItemUseOnFieldCallback(taskId); + } + else if (TryToWaterBerryTree() == TRUE) + { + gUnknown_0203A0F4 = sub_80FDE08; + SetUpItemUseOnFieldCallback(taskId); + } + else + { + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); + } +} + +void sub_80FDE08(u8 taskId) +{ + ScriptContext2_Enable(); + ScriptContext1_SetupScript(Route102_EventScript_2744C0); + DestroyTask(taskId); +} + +bool8 sub_80FDE2C(void) +{ + u16 x, y; + u8 z; + u8 objId; + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + z = PlayerGetZCoord(); + objId = GetFieldObjectIdByXYZ(x, y, z); + if (objId == 16 || gMapObjects[objId].graphicsId != 0xE4) + { + return FALSE; + } + else + return TRUE; +} + +void sub_80FDE7C(u8 taskId) +{ + ScriptContext2_Enable(); + ScriptContext1_SetupScript(BattleFrontier_OutsideEast_EventScript_242CFC); + DestroyTask(taskId); +} + +void ItemUseOutOfBattle_Medicine(u8 taskId) +{ + gUnknown_03006328 = ItemUseCB_Medicine; + SetUpItemUseCallback(taskId); +} + +void ItemUseOutOfBattle_ReduceEV(u8 taskId) +{ + gUnknown_03006328 = sub_81B67C8; + SetUpItemUseCallback(taskId); +} + +void ItemUseOutOfBattle_SacredAsh(u8 taskId) +{ + gUnknown_03006328 = sub_81B79E8; + SetUpItemUseCallback(taskId); +} + +void ItemUseOutOfBattle_PPRecovery(u8 taskId) +{ + gUnknown_03006328 = dp05_ether; + SetUpItemUseCallback(taskId); +} + +void ItemUseOutOfBattle_PPUp(u8 taskId) +{ + gUnknown_03006328 = dp05_pp_up; + SetUpItemUseCallback(taskId); +} + +void ItemUseOutOfBattle_RareCandy(u8 taskId) +{ + gUnknown_03006328 = dp05_rare_candy; + SetUpItemUseCallback(taskId); +} + +void ItemUseOutOfBattle_TMHM(u8 taskId) +{ + if (gSpecialVar_ItemId >= ITEM_HM01) + DisplayItemMessage(taskId, 1, gText_BootedUpHM, sub_80FDF90); // HM + else + DisplayItemMessage(taskId, 1, gText_BootedUpTM, sub_80FDF90); // TM +} + +void sub_80FDF90(u8 taskId) +{ + PlaySE(SE_PC_LOGIN); + gTasks[taskId].func = task08_0809AD8C; +} + +void task08_0809AD8C(u8 taskId) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_ItemId)]); + StringExpandPlaceholders(gStringVar4, gText_TMHMContainedVar1); + DisplayItemMessage(taskId, 1, gStringVar4, sub_80FE024); + } +} + +void sub_80FE024(u8 taskId) +{ + bag_menu_yes_no(taskId, 6, gUnknown_085920E8); +} + +void sub_80FE03C(u8 taskId) +{ + gUnknown_03006328 = sub_81B6DC4; + SetUpItemUseCallback(taskId); +} + +void sub_80FE058(void) +{ + RemoveBagItem(gSpecialVar_ItemId, 1); + CopyItemName(gSpecialVar_ItemId, gStringVar2); + StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2); + if (!InBattlePyramid()) + { + sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId)); + sub_81ABA88(ItemId_GetPocket(gSpecialVar_ItemId)); + } + else + { + sub_81C5924(); + sub_81C59BC(); + } +} + +void ItemUseOutOfBattle_Repel(u8 taskId) +{ + if (VarGet(VAR_REPEL_STEP_COUNT) == 0) + gTasks[taskId].func = sub_80FE124; + else if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gText_RepelEffectsLingered, bag_menu_inits_lists_menu); + else + DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, sub_81C6714); +} + +void sub_80FE124(u8 taskId) +{ + s16* data = gTasks[taskId].data; + + if (++data[8] > 7) + { + data[8] = 0; + PlaySE(SE_TU_SAA); + gTasks[taskId].func = sub_80FE164; + } +} + +void sub_80FE164(u8 taskId) +{ + if (!IsSEPlaying()) + { + VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); + sub_80FE058(); + if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu); + else + DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C6714); + } +} + +void sub_80FE1D0(u8 taskId) +{ + if(++gTasks[taskId].data[8] > 7) + { + PlaySE(SE_BIDORO); + if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu); + else + DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C6714); + } +} + +void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId) +{ + CopyItemName(gSpecialVar_ItemId, gStringVar2); + if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE) + { + FlagSet(FLAG_SYS_ENC_UP_ITEM); + FlagClear(FLAG_SYS_ENC_DOWN_ITEM); + StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildLured); + } + else + { + FlagSet(FLAG_SYS_ENC_DOWN_ITEM); + FlagClear(FLAG_SYS_ENC_UP_ITEM); + StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled); + } + gTasks[taskId].data[8] = 0; + gTasks[taskId].func = sub_80FE1D0; +} + +void task08_080A1C44(u8 taskId) +{ + player_avatar_init_params_reset(); + sub_80B7CC8(); + DestroyTask(taskId); +} + +void re_escape_rope(u8 taskId) +{ + flagmods_08054D70(); + sub_80FE058(); + gTasks[taskId].data[0] = 0; + DisplayItemMessageOnField(taskId, gStringVar4, task08_080A1C44); +} + +bool8 sub_80FE314(void) +{ + if (gMapHeader.flags & 2) + return TRUE; + else + return FALSE; +} + +void ItemUseOutOfBattle_EscapeRope(u8 taskId) +{ + if (sub_80FE314() == TRUE) + { + gUnknown_0203A0F4 = re_escape_rope; + SetUpItemUseOnFieldCallback(taskId); + } + else + { + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); + } +} + +void ItemUseOutOfBattle_EvolutionStone(u8 taskId) +{ + gUnknown_03006328 = sub_81B7C74; + SetUpItemUseCallback(taskId); +} + +void ItemUseInBattle_PokeBall(u8 taskId) +{ + if (IsPlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon? + { + RemoveBagItem(gSpecialVar_ItemId, 1); + if (!InBattlePyramid()) + unknown_ItemMenu_Confirm(taskId); + else + sub_81C5B14(taskId); + } + else if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gText_BoxFull, bag_menu_inits_lists_menu); + else + DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, sub_81C6714); +} + +void sub_80FE408(u8 taskId) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + if (!InBattlePyramid()) + unknown_ItemMenu_Confirm(taskId); + else + sub_81C5B14(taskId); + } +} + +void sub_80FE440(u8 taskId) +{ + if(++gTasks[taskId].data[8] > 7) + { + PlaySE(SE_KAIFUKU); + RemoveBagItem(gSpecialVar_ItemId, 1); + if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, sub_806CF78(gSpecialVar_ItemId), sub_80FE408); + else + DisplayItemMessageInBattlePyramid(taskId, sub_806CF78(gSpecialVar_ItemId), sub_80FE408); + } +} + +void ItemUseInBattle_StatIncrease(u8 taskId) +{ + u16 partyId = gBattlePartyID[gBankInMenu]; + + if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE) + { + if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gText_WontHaveEffect, bag_menu_inits_lists_menu); + else + DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, sub_81C6714); + } + else + { + gTasks[taskId].func = sub_80FE440; + gTasks[taskId].data[8] = 0; + } +} + +void sub_80FE54C(u8 taskId) +{ + if (!InBattlePyramid()) + { + *gUnknown_0203CE54 = sub_81B89F0; + unknown_ItemMenu_Confirm(taskId); + } + else + { + *gUnknown_0203CF2C = sub_81B89F0; + sub_81C5B14(taskId); + } +} + +void ItemUseInBattle_Medicine(u8 taskId) +{ + gUnknown_03006328 = ItemUseCB_Medicine; + sub_80FE54C(taskId); +} + +void sub_80FE5AC(u8 taskId) +{ + gUnknown_03006328 = sub_81B79E8; + sub_80FE54C(taskId); +} + +void ItemUseInBattle_PPRecovery(u8 taskId) +{ + gUnknown_03006328 = dp05_ether; + sub_80FE54C(taskId); +} + +void ItemUseInBattle_Escape(u8 taskId) +{ + + if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE) + { + sub_80FE058(); + if (!InBattlePyramid()) + DisplayItemMessage(taskId, 1, gStringVar4, unknown_ItemMenu_Confirm); + else + DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C5B14); + } + else + { + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); + } +} + +void ItemUseOutOfBattle_EnigmaBerry(u8 taskId) +{ + switch (GetItemEffectType(gSpecialVar_ItemId) - 1) + { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + gTasks[taskId].data[4] = 1; + ItemUseOutOfBattle_Medicine(taskId); + break; + case 9: + gTasks[taskId].data[4] = 1; + ItemUseOutOfBattle_SacredAsh(taskId); + break; + case 0: + gTasks[taskId].data[4] = 1; + ItemUseOutOfBattle_RareCandy(taskId); + break; + case 18: + case 19: + gTasks[taskId].data[4] = 1; + ItemUseOutOfBattle_PPUp(taskId); + break; + case 20: + gTasks[taskId].data[4] = 1; + ItemUseOutOfBattle_PPRecovery(taskId); + break; + default: + gTasks[taskId].data[4] = 4; + ItemUseOutOfBattle_CannotUse(taskId); + } +} + +void ItemUseInBattle_EnigmaBerry(u8 taskId) +{ + switch (GetItemEffectType(gSpecialVar_ItemId)) + { + case 0: + ItemUseInBattle_StatIncrease(taskId); + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 11: + ItemUseInBattle_Medicine(taskId); + break; + case 21: + ItemUseInBattle_PPRecovery(taskId); + break; + default: + ItemUseOutOfBattle_CannotUse(taskId); + } +} + +void ItemUseOutOfBattle_CannotUse(u8 taskId) +{ + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); +} -- cgit v1.2.3 From 2a16b7cb81419aed581a86a831d1e2413ad57b39 Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Sun, 28 Jan 2018 00:22:06 -0500 Subject: decompile field_message_box --- asm/field_message_box.s | 337 ------------------------------------------------ ld_script.txt | 2 +- src/field_message_box.c | 162 +++++++++++++++++++++++ 3 files changed, 163 insertions(+), 338 deletions(-) delete mode 100644 asm/field_message_box.s create mode 100755 src/field_message_box.c diff --git a/asm/field_message_box.s b/asm/field_message_box.s deleted file mode 100644 index 0c1fae6de..000000000 --- a/asm/field_message_box.s +++ /dev/null @@ -1,337 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8098128 -sub_8098128: @ 8098128 - ldr r1, =gUnknown_020375BC - movs r0, 0 - strb r0, [r1] - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - movs r1, 0x3 - negs r1, r1 - ands r0, r1 - subs r1, 0x2 - ands r0, r1 - subs r1, 0x4 - ands r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_8098128 - - thumb_func_start sub_8098154 -sub_8098154: @ 8098154 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08098188 - cmp r0, 0x1 - bgt _0809817C - cmp r0, 0 - beq _08098182 - b _080981B0 - .pool -_0809817C: - cmp r0, 0x2 - beq _08098198 - b _080981B0 -_08098182: - bl sub_81973A4 - b _08098190 -_08098188: - movs r0, 0 - movs r1, 0x1 - bl sub_81973C4 -_08098190: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080981B0 -_08098198: - bl sub_8197224 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080981B0 - ldr r1, =gUnknown_020375BC - movs r0, 0 - strb r0, [r1] - adds r0, r5, 0 - bl DestroyTask -_080981B0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098154 - - thumb_func_start task_add_textbox -task_add_textbox: @ 80981BC - push {lr} - ldr r0, =sub_8098154 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end task_add_textbox - - thumb_func_start task_del_textbox -task_del_textbox: @ 80981D0 - push {lr} - ldr r0, =sub_8098154 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080981E4 - bl DestroyTask -_080981E4: - pop {r0} - bx r0 - .pool - thumb_func_end task_del_textbox - - thumb_func_start ShowFieldMessage -ShowFieldMessage: @ 80981EC - push {r4,lr} - adds r1, r0, 0 - ldr r4, =gUnknown_020375BC - ldrb r0, [r4] - cmp r0, 0 - bne _0809820C - adds r0, r1, 0 - movs r1, 0x1 - bl textbox_fdecode_auto_and_task_add - movs r0, 0x2 - strb r0, [r4] - movs r0, 0x1 - b _0809820E - .pool -_0809820C: - movs r0, 0 -_0809820E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ShowFieldMessage - - thumb_func_start sub_8098214 -sub_8098214: @ 8098214 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8196094 - adds r1, r0, 0 - cmp r1, 0 - bne _0809822E - ldr r0, =gUnknown_020375BC - strb r1, [r0] - adds r0, r4, 0 - bl DestroyTask -_0809822E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098214 - - thumb_func_start sub_8098238 -sub_8098238: @ 8098238 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_020375BC - ldrb r0, [r5] - cmp r0, 0 - bne _08098270 - ldr r0, =gStringVar4 - adds r1, r4, 0 - bl StringExpandPlaceholders - ldr r0, =sub_8098214 - movs r1, 0 - bl CreateTask - adds r0, r4, 0 - bl sub_8196080 - movs r0, 0x2 - strb r0, [r5] - movs r0, 0x1 - b _08098272 - .pool -_08098270: - movs r0, 0 -_08098272: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8098238 - - thumb_func_start ShowFieldAutoScrollMessage -ShowFieldAutoScrollMessage: @ 8098278 - push {lr} - adds r1, r0, 0 - ldr r2, =gUnknown_020375BC - ldrb r0, [r2] - cmp r0, 0 - bne _08098298 - movs r0, 0x3 - strb r0, [r2] - adds r0, r1, 0 - movs r1, 0 - bl textbox_fdecode_auto_and_task_add - movs r0, 0x1 - b _0809829A - .pool -_08098298: - movs r0, 0 -_0809829A: - pop {r1} - bx r1 - thumb_func_end ShowFieldAutoScrollMessage - - thumb_func_start sub_80982A0 -sub_80982A0: @ 80982A0 - push {lr} - ldr r2, =gUnknown_020375BC - movs r1, 0x3 - strb r1, [r2] - movs r1, 0x1 - bl textbox_fdecode_auto_and_task_add - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80982A0 - - thumb_func_start sub_80982B8 -sub_80982B8: @ 80982B8 - push {lr} - ldr r1, =gUnknown_020375BC - ldrb r0, [r1] - cmp r0, 0 - bne _080982D4 - movs r0, 0x2 - strb r0, [r1] - bl textbox_auto_and_task_add - movs r0, 0x1 - b _080982D6 - .pool -_080982D4: - movs r0, 0 -_080982D6: - pop {r1} - bx r1 - thumb_func_end sub_80982B8 - - thumb_func_start textbox_fdecode_auto_and_task_add -textbox_fdecode_auto_and_task_add: @ 80982DC - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldr r0, =gStringVar4 - adds r1, r2, 0 - bl StringExpandPlaceholders - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl AddTextPrinterForMessage - bl task_add_textbox - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end textbox_fdecode_auto_and_task_add - - thumb_func_start textbox_auto_and_task_add -textbox_auto_and_task_add: @ 8098304 - push {lr} - movs r0, 0x1 - bl AddTextPrinterForMessage - bl task_add_textbox - pop {r0} - bx r0 - thumb_func_end textbox_auto_and_task_add - - thumb_func_start HideFieldMessageBox -HideFieldMessageBox: @ 8098314 - push {lr} - bl task_del_textbox - movs r0, 0 - movs r1, 0x1 - bl sub_8197434 - ldr r1, =gUnknown_020375BC - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end HideFieldMessageBox - - thumb_func_start textbox_any_visible -textbox_any_visible: @ 8098330 - ldr r0, =gUnknown_020375BC - ldrb r0, [r0] - bx lr - .pool - thumb_func_end textbox_any_visible - - thumb_func_start IsFieldMessageBoxHidden -IsFieldMessageBoxHidden: @ 809833C - push {lr} - ldr r0, =gUnknown_020375BC - ldrb r0, [r0] - cmp r0, 0 - beq _08098350 - movs r0, 0 - b _08098352 - .pool -_08098350: - movs r0, 0x1 -_08098352: - pop {r1} - bx r1 - thumb_func_end IsFieldMessageBoxHidden - - thumb_func_start sub_8098358 -sub_8098358: @ 8098358 - push {lr} - bl task_del_textbox - movs r0, 0 - movs r1, 0x1 - bl sub_81973FC - ldr r1, =gUnknown_020375BC - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098358 - - thumb_func_start sub_8098374 -sub_8098374: @ 8098374 - push {lr} - bl task_del_textbox - ldr r1, =gUnknown_020375BC - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098374 - - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index f2a9d8196..44b503c55 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -98,7 +98,7 @@ SECTIONS { src/field_map_obj.o(.text); asm/field_ground_effect.o(.text); asm/map_obj_8097404.o(.text); - asm/field_message_box.o(.text); + src/field_message_box.o(.text); asm/map_obj_lock.o(.text); src/text_window.o(.text); src/script.o(.text); diff --git a/src/field_message_box.c b/src/field_message_box.c new file mode 100755 index 000000000..fc51bc588 --- /dev/null +++ b/src/field_message_box.c @@ -0,0 +1,162 @@ +#include "global.h" +#include "string.h" +#include "string_util.h" +#include "task.h" +#include "text.h" + +extern void sub_81973A4(void); +extern void sub_81973C4(u8, u8); +extern u16 sub_8197224(void); +extern int sub_8196094(void); +extern void sub_8196080(u8*); +extern void AddTextPrinterForMessage(u8); +extern void sub_8197434(u8, u8); +extern void sub_81973FC(u8, u8); + +extern u8 gUnknown_020375BC; + +void textbox_fdecode_auto_and_task_add(u8*, int); +void textbox_auto_and_task_add(void); + +void sub_8098128(void) +{ + gUnknown_020375BC = 0; + gTextFlags.flag_0 = 0; + gTextFlags.flag_1 = 0; + gTextFlags.flag_2 = 0; + gTextFlags.flag_3 = 0; +} + +void sub_8098154(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_81973A4(); + task->data[0]++; + break; + case 1: + sub_81973C4(0, 1); + task->data[0]++; + break; + case 2: + if (sub_8197224() != 1) + { + gUnknown_020375BC = 0; + DestroyTask(taskId); + } + } +} + +void task_add_textbox(void) +{ + CreateTask(sub_8098154, 0x50); +} + +void task_del_textbox(void) +{ + u8 taskId = FindTaskIdByFunc(sub_8098154); + if (taskId != 0xFF) + DestroyTask(taskId); +} + +bool8 ShowFieldMessage(u8 *str) +{ + if (gUnknown_020375BC != 0) + return FALSE; + textbox_fdecode_auto_and_task_add(str, 1); + gUnknown_020375BC = 2; + return TRUE; +} + +void sub_8098214(u8 taskId) +{ + if (sub_8196094() == 0) + { + gUnknown_020375BC = 0; + DestroyTask(taskId); + } +} + +bool8 sub_8098238(u8 *str) +{ + if (gUnknown_020375BC != 0) + return FALSE; + StringExpandPlaceholders(gStringVar4, str); + CreateTask(sub_8098214, 0); + sub_8196080(str); + gUnknown_020375BC = 2; + return TRUE; +} + +bool8 ShowFieldAutoScrollMessage(u8 *str) +{ + if (gUnknown_020375BC != 0) + return FALSE; + gUnknown_020375BC = 3; + textbox_fdecode_auto_and_task_add(str, 0); + return TRUE; +} + +bool8 sub_80982A0(u8 *str) +{ + gUnknown_020375BC = 3; + textbox_fdecode_auto_and_task_add(str, 1); + return TRUE; +} + +bool8 sub_80982B8(void) +{ + if (gUnknown_020375BC != 0) + return FALSE; + gUnknown_020375BC = 2; + textbox_auto_and_task_add(); + return TRUE; +} + +void textbox_fdecode_auto_and_task_add(u8* str, int a) +{ + StringExpandPlaceholders(gStringVar4, str); + AddTextPrinterForMessage(a); + task_add_textbox(); +} + +void textbox_auto_and_task_add(void) +{ + AddTextPrinterForMessage(1); + task_add_textbox(); +} + +void HideFieldMessageBox(void) +{ + task_del_textbox(); + sub_8197434(0, 1); + gUnknown_020375BC = 0; +} + +u8 textbox_any_visible(void) +{ + return gUnknown_020375BC; +} + +bool8 IsFieldMessageBoxHidden(void) +{ + if (gUnknown_020375BC == 0) + return TRUE; + return FALSE; +} + +void sub_8098358(void) +{ + task_del_textbox(); + sub_81973FC(0, 1); + gUnknown_020375BC = 0; +} + +void sub_8098374(void) +{ + task_del_textbox(); + gUnknown_020375BC = 0; +} -- cgit v1.2.3 From 3eaaa59c047f529c81bcfe2cd0f5d0c8fdcc6bff Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 29 Jan 2018 04:13:15 -0500 Subject: start decompiling field_map_obj_helpers --- asm/link.s | 2 +- asm/map_obj_8097404.s | 1086 +------------------------------------------ asm/map_obj_lock.s | 16 +- asm/script_movement.s | 2 +- include/map_obj_8097404.h | 2 +- ld_script.txt | 1 + src/field_map_obj_helpers.c | 371 +++++++++++++++ src/trainer_see.c | 2 +- 8 files changed, 385 insertions(+), 1097 deletions(-) create mode 100755 src/field_map_obj_helpers.c diff --git a/asm/link.s b/asm/link.s index 1ad160340..44cb0d76f 100644 --- a/asm/link.s +++ b/asm/link.s @@ -31433,7 +31433,7 @@ _08019B84: b _08019B9C _08019B96: adds r0, r4, 0 - bl sub_8097404 + bl FreezeMapObject _08019B9C: movs r0, 0x1 _08019B9E: diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s index 4a6ae9945..3433f64f6 100644 --- a/asm/map_obj_8097404.s +++ b/asm/map_obj_8097404.s @@ -5,1090 +5,6 @@ .text - thumb_func_start sub_8097404 -@ bool8 sub_8097404(struct npc_state *fieldObject) -sub_8097404: @ 8097404 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0xA0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0809748C - ldrb r0, [r5, 0x1] - movs r4, 0x1 - orrs r0, r4 - strb r0, [r5, 0x1] - ldr r3, =gSprites - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x2C - ldrb r1, [r0] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 7 - ldrb r2, [r5, 0x2] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x2] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x2C - ldrb r1, [r0] - lsrs r1, 7 - ands r1, r4 - ldrb r2, [r5, 0x3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 - b _0809748E - .pool -_0809748C: - movs r0, 0x1 -_0809748E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8097404 - - thumb_func_start FreezeMapObjects -@ void FreezeMapObjects() -FreezeMapObjects: @ 8097494 - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gMapObjects -_0809749A: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _080974B8 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - cmp r4, r0 - beq _080974B8 - adds r0, r1, 0 - bl sub_8097404 -_080974B8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0809749A - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end FreezeMapObjects - - thumb_func_start sub_80974D0 -sub_80974D0: @ 80974D0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r6, =gMapObjects -_080974DA: - cmp r4, r5 - beq _080974FC - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r6 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _080974FC - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - cmp r4, r0 - beq _080974FC - adds r0, r1, 0 - bl sub_8097404 -_080974FC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080974DA - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80974D0 - - thumb_func_start npc_sync_anim_pause_bits -@ void npc_sync_anim_pause_bits(struct npc_state *fieldObject) -npc_sync_anim_pause_bits: @ 8097514 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r2, [r5] - ldr r1, =0x00000101 - adds r0, r1, 0 - ands r0, r2 - cmp r0, r1 - bne _0809756C - ldrb r1, [r5, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - ldr r4, =gSprites - ldrb r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r5, 0x2] - adds r1, 0x2C - lsrs r2, 7 - lsls r2, 6 - ldrb r3, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrb r1, [r5, 0x3] - lsls r1, 31 - lsrs r1, 31 - adds r2, 0x2C - lsls r1, 7 - ldrb r3, [r2] - movs r0, 0x7F - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_0809756C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end npc_sync_anim_pause_bits - - thumb_func_start UnfreezeMapObjects -UnfreezeMapObjects: @ 809757C - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gMapObjects -_08097582: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _08097598 - adds r0, r1, 0 - bl npc_sync_anim_pause_bits -_08097598: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08097582 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UnfreezeMapObjects - - thumb_func_start little_step -@ void little_step(struct obj *object, u8 direction) -little_step: @ 80975AC - lsls r1, 24 - ldr r2, =gUnknown_0850DB7C - lsrs r1, 22 - adds r1, r2 - ldrh r2, [r1] - ldrh r3, [r0, 0x20] - adds r2, r3 - strh r2, [r0, 0x20] - ldrh r1, [r1, 0x2] - ldrh r2, [r0, 0x22] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end little_step - - thumb_func_start double_little_steps -double_little_steps: @ 80975CC - lsls r1, 24 - ldr r2, =gUnknown_0850DB7C - lsrs r1, 22 - adds r1, r2 - ldrh r2, [r1] - lsls r2, 1 - ldrh r3, [r0, 0x20] - adds r2, r3 - strh r2, [r0, 0x20] - ldrh r1, [r1, 0x2] - lsls r1, 1 - ldrh r2, [r0, 0x22] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end double_little_steps - - thumb_func_start triple_little_steps -triple_little_steps: @ 80975F0 - lsls r1, 24 - ldr r2, =gUnknown_0850DB7C - lsrs r1, 22 - adds r1, r2 - ldrh r2, [r1] - lsls r3, r2, 1 - adds r2, r3 - ldrh r3, [r0, 0x20] - adds r2, r3 - strh r2, [r0, 0x20] - ldrh r1, [r1, 0x2] - lsls r2, r1, 1 - adds r1, r2 - ldrh r2, [r0, 0x22] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end triple_little_steps - - thumb_func_start quad_little_steps -quad_little_steps: @ 8097618 - lsls r1, 24 - ldr r2, =gUnknown_0850DB7C - lsrs r1, 22 - adds r1, r2 - ldrh r2, [r1] - lsls r2, 2 - ldrh r3, [r0, 0x20] - adds r2, r3 - strh r2, [r0, 0x20] - ldrh r1, [r1, 0x2] - lsls r1, 2 - ldrh r2, [r0, 0x22] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end quad_little_steps - - thumb_func_start oct_little_steps -@ void oct_little_steps(struct obj *object, u8 direction) -oct_little_steps: @ 809763C - lsls r1, 24 - ldr r2, =gUnknown_0850DB7C - lsrs r1, 22 - adds r1, r2 - ldrh r2, [r1] - lsls r2, 3 - ldrh r3, [r0, 0x20] - adds r2, r3 - strh r2, [r0, 0x20] - ldrh r1, [r1, 0x2] - lsls r1, 3 - ldrh r2, [r0, 0x22] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end oct_little_steps - - thumb_func_start oamt_npc_ministep_reset -@ void oamt_npc_ministep_reset(struct obj *object, u8 direction, u8 speed) -oamt_npc_ministep_reset: @ 8097660 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - strh r1, [r0, 0x34] - strh r2, [r0, 0x36] - strh r3, [r0, 0x38] - bx lr - thumb_func_end oamt_npc_ministep_reset - - thumb_func_start obj_npc_ministep -@ bool8 obj_npc_ministep(struct obj *object) -obj_npc_ministep: @ 8097674 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_0850E768 - movs r0, 0x36 - ldrsh r2, [r4, r0] - lsls r0, r2, 1 - adds r0, r5 - movs r3, 0x38 - ldrsh r1, [r4, r3] - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _080976D4 - ldr r1, =gUnknown_0850E754 - lsls r0, r2, 2 - adds r0, r1 - movs r1, 0x38 - ldrsh r2, [r4, r1] - ldr r0, [r0] - lsls r2, 2 - adds r2, r0 - ldrh r1, [r4, 0x34] - lsls r1, 24 - lsrs r1, 24 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r2, 0x36 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r1, r5 - lsls r0, 16 - asrs r0, 16 - movs r3, 0 - ldrsh r1, [r1, r3] - cmp r0, r1 - blt _080976D4 - movs r0, 0x1 - b _080976D6 - .pool -_080976D4: - movs r0, 0 -_080976D6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end obj_npc_ministep - - thumb_func_start sub_80976DC -@ void sub_80976DC(struct obj *object, u8 direction) -sub_80976DC: @ 80976DC - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - strh r1, [r0, 0x34] - strh r2, [r0, 0x36] - strh r2, [r0, 0x38] - bx lr - thumb_func_end sub_80976DC - - thumb_func_start sub_80976EC -@ bool8 sub_80976EC(struct obj *object) -sub_80976EC: @ 80976EC - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x36] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809770C - ldrh r1, [r4, 0x34] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl little_step - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] -_0809770C: - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0xF - bgt _0809771E - movs r0, 0 - b _08097720 -_0809771E: - movs r0, 0x1 -_08097720: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80976EC - - thumb_func_start sub_8097728 -sub_8097728: @ 8097728 - ldr r1, =gUnknown_0850E7BA - lsls r0, 16 - asrs r0, 16 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bx lr - .pool - thumb_func_end sub_8097728 - - thumb_func_start sub_809773C -sub_809773C: @ 809773C - ldr r1, =gUnknown_0850E772 - lsls r0, 16 - asrs r0, 16 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bx lr - .pool - thumb_func_end sub_809773C - - thumb_func_start sub_8097750 -sub_8097750: @ 8097750 - movs r1, 0 - strh r1, [r0, 0x3A] - strh r1, [r0, 0x3C] - bx lr - thumb_func_end sub_8097750 - - thumb_func_start sub_8097758 -sub_8097758: @ 8097758 - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0809778E - cmp r0, 0x1 - bgt _08097770 - cmp r0, 0 - beq _0809777A - b _080977F2 -_08097770: - cmp r0, 0x2 - beq _080977B6 - cmp r0, 0x3 - beq _080977CA - b _080977F2 -_0809777A: - movs r2, 0x3A - ldrsh r0, [r5, r2] - bl sub_809773C - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r2, 0x3A - ldrsh r0, [r5, r2] - b _080977E8 -_0809778E: - ldrh r0, [r5, 0x3A] - movs r4, 0x47 - subs r0, r4, r0 - lsls r0, 16 - asrs r0, 16 - bl sub_809773C - ldrh r1, [r5, 0x24] - subs r1, r0 - strh r1, [r5, 0x24] - ldrh r0, [r5, 0x3A] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_8097728 - ldrh r2, [r5, 0x26] - adds r0, r2 - b _080977F0 -_080977B6: - movs r1, 0x3A - ldrsh r0, [r5, r1] - bl sub_809773C - ldrh r1, [r5, 0x24] - subs r1, r0 - strh r1, [r5, 0x24] - movs r2, 0x3A - ldrsh r0, [r5, r2] - b _080977E8 -_080977CA: - ldrh r0, [r5, 0x3A] - movs r4, 0x47 - subs r0, r4, r0 - lsls r0, 16 - asrs r0, 16 - bl sub_809773C - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x3A] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 -_080977E8: - bl sub_8097728 - ldrh r1, [r5, 0x26] - adds r0, r1 -_080977F0: - strh r0, [r5, 0x26] -_080977F2: - ldrh r0, [r5, 0x3A] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x48 - bne _0809780A - strh r1, [r5, 0x3A] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] -_0809780A: - movs r2, 0x3C - ldrsh r0, [r5, r2] - cmp r0, 0x4 - bne _08097818 - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r6, 0x1 -_08097818: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8097758 - - thumb_func_start sub_8097820 -sub_8097820: @ 8097820 - lsls r1, 24 - ldr r2, =gUnknown_0850E834 - lsrs r1, 22 - adds r1, r2 - lsls r0, 16 - asrs r0, 16 - ldr r1, [r1] - adds r1, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - bx lr - .pool - thumb_func_end sub_8097820 - - thumb_func_start sub_809783C -sub_809783C: @ 809783C - push {r4,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - strh r1, [r0, 0x34] - strh r2, [r0, 0x36] - strh r3, [r0, 0x38] - strh r4, [r0, 0x3A] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809783C - - thumb_func_start sub_809785C -sub_809785C: @ 809785C - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r1, =gUnknown_0850E840 - mov r0, sp - movs r2, 0x6 - bl memcpy - add r5, sp, 0x8 - ldr r1, =gUnknown_0850E846 - adds r0, r5, 0 - movs r2, 0x3 - bl memcpy - movs r6, 0 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0809788E - ldrh r1, [r4, 0x34] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl little_step -_0809788E: - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - adds r1, r5, r1 - ldrb r1, [r1] - asrs r0, r1 - ldrh r1, [r4, 0x38] - lsls r1, 24 - lsrs r1, 24 - bl sub_8097820 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x3A] - adds r1, 0x1 - strh r1, [r4, 0x3A] - movs r2, 0x36 - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - lsls r0, 16 - asrs r2, r0, 16 - lsls r1, 16 - asrs r1, 16 - asrs r0, 17 - cmp r1, r0 - bne _080978C8 - movs r6, 0x1 -_080978C8: - cmp r1, r2 - blt _080978D2 - movs r0, 0 - strh r0, [r4, 0x26] - movs r6, 0xFF -_080978D2: - adds r0, r6, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809785C - - thumb_func_start sub_80978E4 -sub_80978E4: @ 80978E4 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - ldr r1, =gUnknown_0850E84A - mov r0, sp - movs r2, 0x6 - bl memcpy - add r4, sp, 0x8 - ldr r1, =gUnknown_0850E850 - adds r0, r4, 0 - movs r2, 0x3 - bl memcpy - movs r6, 0 - movs r1, 0x36 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08097920 - ldrh r1, [r5, 0x3A] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08097920 - ldrh r1, [r5, 0x34] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl little_step -_08097920: - movs r2, 0x3A - ldrsh r0, [r5, r2] - movs r2, 0x36 - ldrsh r1, [r5, r2] - adds r1, r4, r1 - ldrb r1, [r1] - asrs r0, r1 - ldrh r1, [r5, 0x38] - lsls r1, 24 - lsrs r1, 24 - bl sub_8097820 - strh r0, [r5, 0x26] - ldrh r1, [r5, 0x3A] - adds r1, 0x1 - strh r1, [r5, 0x3A] - movs r2, 0x36 - ldrsh r0, [r5, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - lsls r0, 16 - asrs r2, r0, 16 - lsls r1, 16 - asrs r1, 16 - asrs r0, 17 - cmp r1, r0 - bne _0809795A - movs r6, 0x1 -_0809795A: - cmp r1, r2 - blt _08097964 - movs r0, 0 - strh r0, [r5, 0x26] - movs r6, 0xFF -_08097964: - adds r0, r6, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80978E4 - - thumb_func_start SetFieldObjectStepTimer -@ void SetFieldObjectStepTimer(struct obj *object, u16 a2) -SetFieldObjectStepTimer: @ 8097978 - strh r1, [r0, 0x34] - bx lr - thumb_func_end SetFieldObjectStepTimer - - thumb_func_start RunFieldObjectStepTimer -@ bool8 RunFieldObjectStepTimer(struct obj *object) -RunFieldObjectStepTimer: @ 809797C - push {lr} - ldrh r1, [r0, 0x34] - subs r1, 0x1 - strh r1, [r0, 0x34] - lsls r1, 16 - cmp r1, 0 - beq _0809798E - movs r0, 0 - b _08097990 -_0809798E: - movs r0, 0x1 -_08097990: - pop {r1} - bx r1 - thumb_func_end RunFieldObjectStepTimer - - thumb_func_start obj_anim_image_set_and_seek -obj_anim_image_set_and_seek: @ 8097994 - push {r4,lr} - lsls r2, 24 - lsrs r2, 24 - adds r3, r0, 0 - adds r3, 0x2A - strb r1, [r3] - adds r4, r0, 0 - adds r4, 0x2C - ldrb r3, [r4] - movs r1, 0x41 - negs r1, r1 - ands r1, r3 - strb r1, [r4] - adds r1, r2, 0 - bl SeekSpriteAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end obj_anim_image_set_and_seek - - thumb_func_start sub_80979BC -sub_80979BC: @ 80979BC - push {lr} - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080979CE - movs r0, 0 - b _080979D0 -_080979CE: - movs r0, 0x1 -_080979D0: - pop {r1} - bx r1 - thumb_func_end sub_80979BC - - thumb_func_start sub_80979D4 -sub_80979D4: @ 80979D4 - push {r4-r6,lr} - mov r12, r0 - lsls r1, 24 - lsrs r1, 24 - mov r3, r12 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08097A3C - mov r0, r12 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - mov r4, r12 - adds r4, 0x28 - movs r0, 0 - ldrsb r0, [r4, r0] - ldr r2, =gSpriteCoordOffsetX - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r12 - ldrh r1, [r0, 0x26] - ldrh r2, [r0, 0x22] - adds r1, r2 - subs r3, 0x15 - movs r0, 0 - ldrsb r0, [r3, r0] - ldr r2, =gSpriteCoordOffsetY - adds r0, r1 - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r2, r3, 0 - b _08097A6A - .pool -_08097A3C: - mov r0, r12 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - mov r3, r12 - adds r3, 0x28 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r12 - ldrh r1, [r0, 0x26] - ldrh r2, [r0, 0x22] - adds r1, r2 - mov r2, r12 - adds r2, 0x29 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, r3, 0 -_08097A6A: - ldrb r0, [r4] - lsls r0, 24 - asrs r0, 25 - subs r0, r6, r0 - lsls r0, 16 - lsrs r3, r0, 16 - ldrb r0, [r2] - lsls r0, 24 - asrs r0, 25 - subs r0, r5, r0 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _08097A96 - lsls r0, r3, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _08097AA2 -_08097A96: - mov r4, r12 - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] -_08097AA2: - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0xAF - bgt _08097AB6 - lsls r0, r2, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _08097AC2 -_08097AB6: - mov r0, r12 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08097AC2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80979D4 - - thumb_func_start sub_8097AC8 -sub_8097AC8: @ 8097AC8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8097D68 - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0x1 - bl SetObjectSubpriorityByZCoord - ldrh r1, [r4, 0x32] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80979D4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8097AC8 - - thumb_func_start sub_8097AF0 -sub_8097AF0: @ 8097AF0 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0x3F -_08097AF6: - ldr r0, =gSprites - adds r2, r5, r0 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08097B16 - ldr r1, [r2, 0x1C] - ldr r0, =sub_8097AC8 - cmp r1, r0 - bne _08097B16 - adds r0, r2, 0 - bl DestroySprite -_08097B16: - adds r5, 0x44 - subs r4, 0x1 - cmp r4, 0 - bge _08097AF6 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097AF0 - - thumb_func_start sub_8097B2C -sub_8097B2C: @ 8097B2C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r6, =gSprites - movs r4, 0 -_08097B38: - adds r2, r4, r6 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08097B68 - ldr r1, [r2, 0x1C] - ldr r0, =sub_8097AC8 - cmp r1, r0 - bne _08097B68 - ldrh r0, [r2, 0x2E] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bne _08097B68 - adds r0, r3, 0 - b _08097B72 - .pool -_08097B68: - adds r4, 0x44 - adds r3, 0x1 - cmp r3, 0x3F - ble _08097B38 - movs r0, 0x40 -_08097B72: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8097B2C - - thumb_func_start sub_8097B78 -sub_8097B78: @ 8097B78 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - bl sub_8097B2C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08097BAA - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - adds r0, r5, 0 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_08097BAA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097B78 - thumb_func_start sub_8097BB4 sub_8097BB4: @ 8097BB4 push {r4,r5,lr} @@ -1776,7 +692,7 @@ _08098082: cmp r4, r0 beq _080980A8 adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject _080980A8: adds r0, r4, 0x1 lsls r0, 24 diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s index 3cf009175..97abc7fec 100644 --- a/asm/map_obj_lock.s +++ b/asm/map_obj_lock.s @@ -109,7 +109,7 @@ _0809842A: cmp r0, 0 blt _08098452 adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject movs r0, 0x1 strh r0, [r5, 0xA] _08098452: @@ -154,7 +154,7 @@ LockSelectedMapObject: @ 80984A0 push {r4,r5,lr} ldr r4, =gSelectedMapObject ldrb r0, [r4] - bl sub_80974D0 + bl FreezeMapObjectsExceptOne ldr r0, =sub_8098400 movs r1, 0x50 bl CreateTask @@ -171,7 +171,7 @@ LockSelectedMapObject: @ 80984A0 cmp r0, 0 blt _080984DE adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 @@ -317,7 +317,7 @@ _080985E8: cmp r0, 0 blt _0809860C adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject movs r0, 0x1 strh r0, [r5, 0xA] _0809860C: @@ -385,7 +385,7 @@ sub_8098630: @ 8098630 cmp r0, 0 blt _0809869A adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject movs r0, 0x1 strh r0, [r6, 0xA] _0809869A: @@ -410,14 +410,14 @@ _0809869A: cmp r0, 0 blt _0809871A adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject movs r0, 0x1 strh r0, [r4, 0xA] b _0809871A .pool _080986E0: adds r0, r4, 0 - bl sub_80974D0 + bl FreezeMapObjectsExceptOne ldr r0, =sub_80985BC movs r1, 0x50 bl CreateTask @@ -439,7 +439,7 @@ _080986E0: cmp r0, 0 blt _0809871A adds r0, r1, 0 - bl sub_8097404 + bl FreezeMapObject movs r0, 0x1 strh r0, [r5, 0xA] _0809871A: diff --git a/asm/script_movement.s b/asm/script_movement.s index 5f06fd179..8c6a6257c 100644 --- a/asm/script_movement.s +++ b/asm/script_movement.s @@ -553,7 +553,7 @@ _080D36DC: adds r1, r6, 0 bl sub_80D355C adds r0, r4, 0 - bl sub_8097404 + bl FreezeMapObject b _080D370E .pool _080D36F8: diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 0800b15b0..33694fe98 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -29,6 +29,6 @@ bool8 sub_8097758(struct Sprite *); void sub_8097FA4(struct MapObject *); void sub_8098044(u8); void UnfreezeMapObjects(void); -void sub_80974D0(u8 mapObjectId); +void FreezeMapObjectsExceptOne(u8 mapObjectId); #endif //GUARD_MAP_OBJ_8097404_H diff --git a/ld_script.txt b/ld_script.txt index f2a9d8196..eb682c035 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -97,6 +97,7 @@ SECTIONS { asm/field_player_avatar.o(.text); src/field_map_obj.o(.text); asm/field_ground_effect.o(.text); + src/field_map_obj_helpers.o(.text); asm/map_obj_8097404.o(.text); asm/field_message_box.o(.text); asm/map_obj_lock.o(.text); diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c new file mode 100755 index 000000000..1247a7cd7 --- /dev/null +++ b/src/field_map_obj_helpers.c @@ -0,0 +1,371 @@ +#include "global.h" +#include "field_ground_effect.h" +#include "field_map_obj.h" + +typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); + +extern const s8 gUnknown_0850E7BA[]; +extern const s8 gUnknown_0850E772[]; + +extern s16 gUnknown_0850E768[]; +extern SpriteStepFunc *const gUnknown_0850E754[]; +extern const struct Coords16 gUnknown_0850DB7C[4]; + +bool8 FreezeMapObject(struct MapObject *mapObject) +{ + if (mapObject->mapobj_bit_6 || mapObject->mapobj_bit_8) + { + return TRUE; + } + else + { + mapObject->mapobj_bit_8 = 1; + mapObject->mapobj_bit_23 = gSprites[mapObject->spriteId].animPaused; + mapObject->mapobj_bit_24 = gSprites[mapObject->spriteId].affineAnimPaused; + gSprites[mapObject->spriteId].animPaused = 1; + gSprites[mapObject->spriteId].affineAnimPaused = 1; + return FALSE; + } +} + +void FreezeMapObjects(void) +{ + u8 i; + for (i = 0; i < 16; i++) + if (gMapObjects[i].active && i != gPlayerAvatar.mapObjectId) + FreezeMapObject(&gMapObjects[i]); +} + +void FreezeMapObjectsExceptOne(u8 a1) +{ + u8 i; + for (i = 0; i < 16; i++) + if (i != a1 && gMapObjects[i].active && i != gPlayerAvatar.mapObjectId) + FreezeMapObject(&gMapObjects[i]); +} + +void npc_sync_anim_pause_bits(struct MapObject *mapObject) +{ + if (mapObject->active && mapObject->mapobj_bit_8) + { + mapObject->mapobj_bit_8 = 0; + gSprites[mapObject->spriteId].animPaused = mapObject->mapobj_bit_23; + gSprites[mapObject->spriteId].affineAnimPaused = mapObject->mapobj_bit_24; + } +} + +void UnfreezeMapObjects(void) +{ + u8 i; + for (i = 0; i < 16; i++) + if (gMapObjects[i].active) + npc_sync_anim_pause_bits(&gMapObjects[i]); +} + +void little_step(struct Sprite *sprite, u8 dir) +{ + sprite->pos1.x += gUnknown_0850DB7C[dir].x; + sprite->pos1.y += gUnknown_0850DB7C[dir].y; +} + +void double_little_steps(struct Sprite *sprite, u8 dir) +{ + sprite->pos1.x += 2 * (u16) gUnknown_0850DB7C[dir].x; + sprite->pos1.y += 2 * (u16) gUnknown_0850DB7C[dir].y; +} + +void triple_little_steps(struct Sprite *sprite, u8 dir) +{ + sprite->pos1.x += 2 * (u16) gUnknown_0850DB7C[dir].x + (u16) gUnknown_0850DB7C[dir].x; + sprite->pos1.y += 2 * (u16) gUnknown_0850DB7C[dir].y + (u16) gUnknown_0850DB7C[dir].y; +} + +void quad_little_steps(struct Sprite *sprite, u8 dir) +{ + sprite->pos1.x += 4 * (u16) gUnknown_0850DB7C[dir].x; + sprite->pos1.y += 4 * (u16) gUnknown_0850DB7C[dir].y; +} + +void oct_little_steps(struct Sprite *sprite, u8 dir) +{ + sprite->pos1.x += 8 * (u16) gUnknown_0850DB7C[dir].x; + sprite->pos1.y += 8 * (u16) gUnknown_0850DB7C[dir].y; +} + +void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3) +{ + sprite->data[3] = a2; + sprite->data[4] = a3; + sprite->data[5] = 0; +} + +bool8 obj_npc_ministep(struct Sprite *sprite) +{ + if (sprite->data[5] >= gUnknown_0850E768[sprite->data[4]]) + return FALSE; + + gUnknown_0850E754[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]); + + sprite->data[5]++; + + if (sprite->data[5] < gUnknown_0850E768[sprite->data[4]]) + return FALSE; + + return TRUE; +} + +void sub_80976DC(struct Sprite *sprite, u8 a2) +{ + sprite->data[3] = a2; + sprite->data[4] = 0; + sprite->data[5] = 0; +} + +bool8 sub_80976EC(struct Sprite *sprite) +{ + if (!(sprite->data[4] & 1)) + { + little_step(sprite, sprite->data[3]); + sprite->data[5]++; + } + + sprite->data[4]++; + + if (sprite->data[5] > 15) + return TRUE; + else + return FALSE; +} + +// new helper added here in the middle. Perhaps Game Freak kept these organized in alphebetical order or some other heirarchy? + +s16 sub_8097728(s16 a1) +{ + return gUnknown_0850E7BA[a1]; +} + +s16 sub_809773C(s16 a1) +{ + return gUnknown_0850E772[a1]; +} + +void sub_8097750(struct Sprite *sprite) +{ + sprite->data[6] = 0; + sprite->data[7] = 0; +} + +bool8 sub_8097758(struct Sprite *sprite) +{ + bool8 result = FALSE; + + switch(sprite->data[7]) + { + case 0: + sprite->pos2.x += sub_809773C(sprite->data[6]); + sprite->pos2.y += sub_8097728(sprite->data[6]); + break; + case 1: + sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]); + sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); + break; + case 2: + sprite->pos2.x -= sub_809773C(sprite->data[6]); + sprite->pos2.y += sub_8097728(sprite->data[6]); + break; + case 3: + sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]); + sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]); + break; + } + if(++sprite->data[6] == 0x48) + { + sprite->data[6] = 0; + sprite->data[7]++; + } + if(sprite->data[7] == 0x4) + { + sprite->pos2.y = 0; + sprite->pos2.x = 0; + result = TRUE; + } + return result; +} + +extern const s8 *const gUnknown_0850E834[]; +extern s16 gUnknown_0850E840[]; +extern u8 gUnknown_0850E846[]; + +s16 sub_8097820(s16 a1, u8 a2) +{ + return gUnknown_0850E834[a2][a1]; +} + +void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4) +{ + sprite->data[3] = a2; + sprite->data[4] = a3; + sprite->data[5] = a4; + sprite->data[6] = 0; +} + +u8 sub_809785C(struct Sprite *sprite) +{ + s16 v5[3]; + u8 v6[3]; + u8 v2; + + memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy + memcpy(v6, gUnknown_0850E846, 3); + v2 = 0; + + if (sprite->data[4]) + little_step(sprite, sprite->data[3]); + + sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]); + + sprite->data[6]++; + + if (sprite->data[6] == (v5[sprite->data[4]] >> 1)) + v2 = 1; + + if (sprite->data[6] >= v5[sprite->data[4]]) + { + sprite->pos2.y = 0; + v2 = -1; + } + + return v2; +} + +extern s16 gUnknown_0850E84A[]; +extern u8 gUnknown_0850E850[]; + +u8 sub_80978E4(struct Sprite *sprite) +{ + s16 v5[3]; + u8 v6[3]; + u8 v2; + + memcpy(v5, gUnknown_0850E84A, 6); + memcpy(v6, gUnknown_0850E850, 3); + v2 = 0; + + if (sprite->data[4] && !(sprite->data[6] & 1)) + little_step(sprite, sprite->data[3]); + + sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]); + + sprite->data[6]++; + + if (sprite->data[6] == (v5[sprite->data[4]] >> 1)) + v2 = 1; + + if (sprite->data[6] >= v5[sprite->data[4]]) + { + sprite->pos2.y = 0; + v2 = -1; + } + + return v2; +} + +void SetFieldObjectStepTimer(struct Sprite *sprite, u16 timer) +{ + sprite->data[3] = timer; +} + + +bool8 RunFieldObjectStepTimer(struct Sprite *sprite) +{ + sprite->data[3]--; + + if (sprite->data[3] == 0) + return TRUE; + else + return FALSE; +} + +void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3) +{ + sprite->animNum = a2; + sprite->animPaused = 0 ; + SeekSpriteAnim(sprite, a3); +} + +bool8 sub_80979BC(struct Sprite *sprite) +{ + if (sprite->animEnded) + return TRUE; + else + return FALSE; +} + +void sub_80979D4(struct Sprite *sprite, bool8 invisible) +{ + u16 x, y; + s16 x2, y2; + + sprite->invisible = invisible; + + if (sprite->coordOffsetEnabled) + { + x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; + y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY; + } + else + { + x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + } + + x2 = x - (sprite->centerToCornerVecX >> 1); + y2 = y - (sprite->centerToCornerVecY >> 1); + + if ((s16)x > 255 || x2 < -16) + sprite->invisible = 1; + if ((s16)y > 175 || y2 < -16) + sprite->invisible = 1; +} + +extern void sub_8097D68(struct Sprite *sprite); + +void sub_8097AC8(struct Sprite *sprite) +{ + sub_8097D68(sprite); + SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1); + sub_80979D4(sprite, sprite->data[2]); +} + +void sub_8097AF0(void) +{ + int i; + + for(i = 0; i < MAX_SPRITES; i++) + { + struct Sprite *sprite = &gSprites[i]; + if(sprite->inUse && sprite->callback == sub_8097AC8) + DestroySprite(sprite); + } +} + +int sub_8097B2C(u8 var) // this should return a u8, because all that call this shifts to u8, but it wont match because it doesnt shift u8 at the end. +{ + int i; + + for(i = 0; i < MAX_SPRITES; i++) + { + struct Sprite *sprite = &gSprites[i]; + if(sprite->inUse && sprite->callback == sub_8097AC8 && (u8)sprite->data[0] == var) + return i; + } + return MAX_SPRITES; +} + +void sub_8097B78(u8 var1, u8 var2) +{ + u8 spriteId = sub_8097B2C(var1); + + if(spriteId != MAX_SPRITES) + StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(var2)); +} diff --git a/src/trainer_see.c b/src/trainer_see.c index 53bc5cbbb..38773ec50 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -639,7 +639,7 @@ void sub_80B45D0(void) gApproachingTrainerId++; gSpecialVar_Result = 1; UnfreezeMapObjects(); - sub_80974D0(gApproachingTrainers[1].mapObjectId); + FreezeMapObjectsExceptOne(gApproachingTrainers[1].mapObjectId); } else { -- cgit v1.2.3 From ed546d680f726e068183f94d0104a251f75fbfe2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 12:36:56 +0100 Subject: pokemon animation is decompiled --- asm/pokemon_animation.s | 1770 ----------------------------------- data/pokemon_animation.s | 33 - include/pokemon_animation.h | 5 +- ld_script.txt | 2 - src/hall_of_fame.c | 3 +- src/pokemon_3.c | 11 +- src/pokemon_animation.c | 2135 ++++++++++++++++++++++++++++++------------- sym_bss.txt | 12 +- 8 files changed, 1508 insertions(+), 2463 deletions(-) delete mode 100644 asm/pokemon_animation.s delete mode 100644 data/pokemon_animation.s diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s deleted file mode 100644 index 919c1a31e..000000000 --- a/asm/pokemon_animation.s +++ /dev/null @@ -1,1770 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - - thumb_func_start sub_81840C4 -sub_81840C4: @ 81840C4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - ble _081840FC - movs r2, 0x3A - ldrsh r1, [r5, r2] - ldrh r2, [r5, 0x36] - movs r3, 0x36 - ldrsh r0, [r5, r3] - cmp r1, r0 - bgt _081840EC - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r5, 0x1C] - b _081840F4 - .pool -_081840EC: - adds r0, r2, 0x1 - movs r1, 0 - strh r0, [r5, 0x36] - strh r1, [r5, 0x3C] -_081840F4: - movs r0, 0 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - b _08184188 -_081840FC: - cmp r0, 0x9F - ble _08184126 - cmp r0, r1 - ble _08184106 - strh r1, [r5, 0x3C] -_08184106: - movs r0, 0x3C - ldrsh r1, [r5, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _08184112 - adds r0, 0xFF -_08184112: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - bl Sin - negs r0, r0 - b _08184154 -_08184126: - cmp r0, 0x5F - ble _0818414A - movs r0, 0x60 - movs r1, 0x6 - bl Sin - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - subs r0, 0x60 - lsls r0, 17 - asrs r0, 16 - movs r1, 0x4 - bl Sin - subs r4, r0 - strh r4, [r5, 0x26] - b _08184156 -_0818414A: - movs r2, 0x3C - ldrsh r0, [r5, r2] - movs r1, 0x6 - bl Sin -_08184154: - strh r0, [r5, 0x26] -_08184156: - movs r3, 0x3C - ldrsh r0, [r5, r3] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r2, 0x38 - ldrsh r1, [r5, r2] - bl Sin - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r5, 0x36] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0818417E - lsls r0, r2, 16 - negs r0, r0 - lsrs r2, r0, 16 -_0818417E: - strh r2, [r5, 0x24] - ldrh r0, [r5, 0x34] - ldrh r3, [r5, 0x3C] - adds r0, r3 - strh r0, [r5, 0x3C] -_08184188: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81840C4 - - thumb_func_start pokemonanimfunc_7C -pokemonanimfunc_7C: @ 8184190 - push {lr} - adds r2, r0, 0 - movs r0, 0x32 - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _081841B0 - movs r1, 0x1 - strh r1, [r2, 0x32] - movs r0, 0x2 - strh r0, [r2, 0x3A] - strh r3, [r2, 0x3C] - movs r0, 0x10 - strh r0, [r2, 0x38] - strh r1, [r2, 0x36] - movs r0, 0x4 - strh r0, [r2, 0x34] -_081841B0: - adds r0, r2, 0 - bl sub_81840C4 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7C - - thumb_func_start pokemonanimfunc_7D -pokemonanimfunc_7D: @ 81841BC - push {lr} - adds r2, r0, 0 - movs r0, 0x32 - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _081841DC - movs r1, 0x1 - strh r1, [r2, 0x32] - movs r0, 0x2 - strh r0, [r2, 0x3A] - strh r3, [r2, 0x3C] - movs r0, 0x10 - strh r0, [r2, 0x38] - strh r1, [r2, 0x36] - movs r0, 0x6 - strh r0, [r2, 0x34] -_081841DC: - adds r0, r2, 0 - bl sub_81840C4 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7D - - thumb_func_start pokemonanimfunc_7E -pokemonanimfunc_7E: @ 81841E8 - push {lr} - adds r2, r0, 0 - movs r0, 0x32 - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _08184208 - movs r1, 0x1 - strh r1, [r2, 0x32] - movs r0, 0x3 - strh r0, [r2, 0x3A] - strh r3, [r2, 0x3C] - movs r0, 0x10 - strh r0, [r2, 0x38] - strh r1, [r2, 0x36] - movs r0, 0x8 - strh r0, [r2, 0x34] -_08184208: - adds r0, r2, 0 - bl sub_81840C4 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7E - - thumb_func_start pokemonanimfunc_7F -pokemonanimfunc_7F: @ 8184214 - push {lr} - adds r2, r0, 0 - movs r0, 0x32 - ldrsh r1, [r2, r0] - cmp r1, 0 - bne _08184232 - movs r0, 0x1 - strh r0, [r2, 0x32] - strh r0, [r2, 0x3A] - strh r1, [r2, 0x3C] - movs r1, 0x4 - strh r1, [r2, 0x38] - movs r0, 0x6 - strh r0, [r2, 0x36] - strh r1, [r2, 0x34] -_08184232: - adds r0, r2, 0 - bl sub_8183FA8 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_7F - - thumb_func_start pokemonanimfunc_80 -pokemonanimfunc_80: @ 818423C - push {lr} - adds r1, r0, 0 - movs r0, 0x32 - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _0818425A - movs r0, 0x1 - strh r0, [r1, 0x32] - strh r0, [r1, 0x3A] - strh r2, [r1, 0x3C] - movs r0, 0x4 - strh r0, [r1, 0x38] - movs r0, 0x6 - strh r0, [r1, 0x36] - strh r0, [r1, 0x34] -_0818425A: - adds r0, r1, 0 - bl sub_8183FA8 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_80 - - thumb_func_start pokemonanimfunc_81 -pokemonanimfunc_81: @ 8184264 - push {lr} - adds r1, r0, 0 - movs r0, 0x32 - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _08184286 - movs r0, 0x1 - strh r0, [r1, 0x32] - movs r0, 0x2 - strh r0, [r1, 0x3A] - strh r2, [r1, 0x3C] - movs r0, 0x4 - strh r0, [r1, 0x38] - movs r0, 0x6 - strh r0, [r1, 0x36] - movs r0, 0x8 - strh r0, [r1, 0x34] -_08184286: - adds r0, r1, 0 - bl sub_8183FA8 - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_81 - - thumb_func_start sub_8184290 -sub_8184290: @ 8184290 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 8 - negs r0, r0 - strh r0, [r4, 0x3A] - movs r0, 0x36 - ldrsh r2, [r4, r0] - adds r0, r4, 0 - movs r3, 0 - bl sub_817F3F0 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x3A] - adds r0, r4, 0 - adds r1, r2, 0 - bl HandleSetAffineData - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8184290 - - thumb_func_start pokemonanimfunc_82 -pokemonanimfunc_82: @ 81842DC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08184300 - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x3C - strh r0, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x38] - ldr r0, =0x0000ffe0 - strh r0, [r4, 0x36] - movs r0, 0x1 - strh r0, [r4, 0x34] - strh r5, [r4, 0x2E] -_08184300: - movs r2, 0x32 - ldrsh r1, [r4, r2] - movs r3, 0x3C - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _0818434C - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - movs r2, 0 - strh r2, [r4, 0x24] - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r3, 0x34 - ldrsh r1, [r4, r3] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - bgt _08184348 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08184358 - .pool -_08184348: - strh r2, [r4, 0x32] - b _08184352 -_0818434C: - adds r0, r4, 0 - bl sub_8184290 -_08184352: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_08184358: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_82 - - thumb_func_start pokemonanimfunc_83 -pokemonanimfunc_83: @ 8184360 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08184384 - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x5A - strh r0, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x38] - ldr r0, =0x0000ffe0 - strh r0, [r4, 0x36] - movs r0, 0x1 - strh r0, [r4, 0x34] - strh r5, [r4, 0x2E] -_08184384: - movs r2, 0x32 - ldrsh r1, [r4, r2] - movs r3, 0x3C - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _081843D0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - movs r2, 0 - strh r2, [r4, 0x24] - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r3, 0x34 - ldrsh r1, [r4, r3] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - bgt _081843CC - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _081843DC - .pool -_081843CC: - strh r2, [r4, 0x32] - b _081843D6 -_081843D0: - adds r0, r4, 0 - bl sub_8184290 -_081843D6: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_081843DC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_83 - - thumb_func_start pokemonanimfunc_84 -pokemonanimfunc_84: @ 81843E4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _08184408 - adds r0, r4, 0 - bl HandleStartAffineAnim - movs r0, 0x1E - strh r0, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x38] - ldr r0, =0x0000ffe0 - strh r0, [r4, 0x36] - movs r0, 0x2 - strh r0, [r4, 0x34] - strh r5, [r4, 0x2E] -_08184408: - movs r2, 0x32 - ldrsh r1, [r4, r2] - movs r3, 0x3C - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _08184454 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - movs r2, 0 - strh r2, [r4, 0x24] - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r3, 0x34 - ldrsh r1, [r4, r3] - lsls r0, 16 - asrs r0, 16 - cmp r1, r0 - bgt _08184450 - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _08184460 - .pool -_08184450: - strh r2, [r4, 0x32] - b _0818445A -_08184454: - adds r0, r4, 0 - bl sub_8184290 -_0818445A: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_08184460: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_84 - - thumb_func_start sub_8184468 -sub_8184468: @ 8184468 - push {r4-r6,lr} - adds r6, r0, 0 - movs r0, 0x32 - ldrsh r1, [r6, r0] - movs r2, 0x3C - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _0818449C - movs r0, 0 - strh r0, [r6, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl HandleSetAffineData - adds r0, r6, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r6, 0x1C] - b _08184544 - .pool -_0818449C: - movs r1, 0x32 - ldrsh r0, [r6, r1] - movs r2, 0x3A - ldrsh r4, [r6, r2] - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r0, 16 - adds r1, r4, 0 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _081844BC - adds r0, 0xFF -_081844BC: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r0, [r6, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081844F8 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x20 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x20 - bl Sin - adds r0, r5 - strh r0, [r6, 0x38] - adds r0, r4, 0 - movs r1, 0x20 - b _0818451E -_081844F8: - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - movs r1, 0x8 - bl Sin - movs r2, 0x80 - lsls r2, 1 - adds r5, r2, 0 - adds r0, r5 - strh r0, [r6, 0x36] - adds r0, r4, 0 - movs r1, 0x8 - bl Sin - adds r0, r5 - strh r0, [r6, 0x38] - adds r0, r4, 0 - movs r1, 0x8 -_0818451E: - bl Sin - lsls r0, 24 - lsrs r0, 24 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _08184530 - adds r0, 0x7 -_08184530: - lsrs r0, 3 - strh r0, [r6, 0x26] - movs r0, 0x36 - ldrsh r1, [r6, r0] - movs r0, 0x38 - ldrsh r2, [r6, r0] - adds r0, r6, 0 - movs r3, 0 - bl HandleSetAffineData -_08184544: - ldrh r0, [r6, 0x32] - adds r0, 0x1 - strh r0, [r6, 0x32] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8184468 - - thumb_func_start pokemonanimfunc_85 -pokemonanimfunc_85: @ 8184550 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08184570 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x26] - adds r0, 0x2 - strh r0, [r4, 0x26] - movs r0, 0x28 - strh r0, [r4, 0x3A] - movs r0, 0x50 - strh r0, [r4, 0x3C] -_08184570: - adds r0, r4, 0 - bl sub_8184468 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_85 - - thumb_func_start pokemonanimfunc_86 -pokemonanimfunc_86: @ 818457C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0818459A - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x26] - adds r0, 0x2 - strh r0, [r4, 0x26] - movs r0, 0x28 - strh r0, [r4, 0x3A] - strh r0, [r4, 0x3C] -_0818459A: - adds r0, r4, 0 - bl sub_8184468 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_86 - - thumb_func_start pokemonanimfunc_87 -pokemonanimfunc_87: @ 81845A8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081845C6 - adds r0, r4, 0 - bl HandleStartAffineAnim - ldrh r0, [r4, 0x26] - adds r0, 0x2 - strh r0, [r4, 0x26] - movs r0, 0x50 - strh r0, [r4, 0x3A] - strh r0, [r4, 0x3C] -_081845C6: - adds r0, r4, 0 - bl sub_8184468 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_87 - - thumb_func_start sub_81845D4 -sub_81845D4: @ 81845D4 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x32] - subs r0, r1 - strh r0, [r4, 0x24] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmn r1, r0 - bgt _081845FE - ldrh r0, [r4, 0x3A] - negs r0, r0 - strh r0, [r4, 0x24] - movs r0, 0x2 - strh r0, [r4, 0x3C] - ldr r0, =sub_8184610 - str r0, [r4, 0x1C] -_081845FE: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81845D4 - - thumb_func_start sub_8184610 -sub_8184610: @ 8184610 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x3C] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r1, 16 - cmp r1, 0 - blt _0818462E - ldr r0, =sub_8184640 - str r0, [r4, 0x1C] -_0818462E: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8184610 - - thumb_func_start sub_8184640 -sub_8184640: @ 8184640 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x3C] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r4, 0x3A] - movs r3, 0x3A - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _08184668 - strh r2, [r4, 0x24] - ldr r0, =sub_8184678 - str r0, [r4, 0x1C] -_08184668: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8184640 - - thumb_func_start sub_8184678 -sub_8184678: @ 8184678 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r2, [r4, 0x34] - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _08184698 - ldr r0, =sub_81846B8 - str r0, [r4, 0x1C] - b _081846AC - .pool -_08184698: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r3, 0x36 - ldrsh r0, [r4, r3] - negs r0, r0 - strh r0, [r4, 0x36] - adds r0, r2, 0x1 - strh r0, [r4, 0x34] -_081846AC: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8184678 - - thumb_func_start sub_81846B8 -sub_81846B8: @ 81846B8 - push {r4,lr} - adds r4, r0, 0 - bl sub_817F70C - ldrh r0, [r4, 0x24] - subs r0, 0x2 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bgt _081846DA - movs r0, 0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - bl sub_817F77C - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] -_081846DA: - adds r0, r4, 0 - bl sub_817F70C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81846B8 - - thumb_func_start pokemonanimfunc_88 -pokemonanimfunc_88: @ 81846EC - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r2, 0 - movs r1, 0x4 - strh r1, [r4, 0x3C] - movs r0, 0xC - strh r0, [r4, 0x3A] - movs r0, 0x10 - strh r0, [r4, 0x38] - strh r1, [r4, 0x36] - strh r2, [r4, 0x34] - movs r0, 0x2 - strh r0, [r4, 0x32] - ldr r0, =sub_81845D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_88 - - thumb_func_start pokemonanimfunc_89 -pokemonanimfunc_89: @ 8184718 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r2, 0 - movs r1, 0x2 - strh r1, [r4, 0x3C] - movs r0, 0x8 - strh r0, [r4, 0x3A] - movs r0, 0xC - strh r0, [r4, 0x38] - strh r1, [r4, 0x36] - strh r2, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x32] - ldr r0, =sub_81845D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_89 - - thumb_func_start pokemonanimfunc_8A -pokemonanimfunc_8A: @ 8184744 - push {r4,lr} - adds r4, r0, 0 - bl HandleStartAffineAnim - movs r1, 0 - strh r1, [r4, 0x3C] - movs r0, 0x6 - strh r0, [r4, 0x3A] - strh r0, [r4, 0x38] - movs r0, 0x2 - strh r0, [r4, 0x36] - strh r1, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x32] - ldr r0, =sub_81845D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pokemonanimfunc_8A - - thumb_func_start sub_8184770 -sub_8184770: @ 8184770 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - strh r0, [r1, 0x24] - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x1 - ble _0818478E - movs r2, 0x30 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x30] - movs r0, 0 - b _08184790 -_0818478E: - adds r0, r2, 0x1 -_08184790: - strh r0, [r1, 0x2E] - pop {r0} - bx r0 - thumb_func_end sub_8184770 - - thumb_func_start sub_8184798 -sub_8184798: @ 8184798 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r1, =gUnknown_0860AE7C - movs r2, 0x34 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl sub_8184770 - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - bne _081847D0 - movs r0, 0 - strh r0, [r4, 0x24] - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _0818482E - .pool -_081847D0: - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _08184800 - ldrb r0, [r1] - cmp r0, 0 - beq _081847F0 - ldrh r0, [r4, 0x3C] - ldr r3, =0x000003ff - movs r1, 0x10 - movs r2, 0x10 - bl BlendPalette - b _081847FC - .pool -_081847F0: - ldrh r0, [r4, 0x3C] - ldr r3, =0x000003ff - movs r1, 0x10 - movs r2, 0 - bl BlendPalette -_081847FC: - movs r0, 0 - strh r0, [r4, 0x36] -_08184800: - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08184828 - movs r1, 0 - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - b _0818482E - .pool -_08184828: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] -_0818482E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8184798 - - thumb_func_start pokemonanimfunc_8B -pokemonanimfunc_8B: @ 8184834 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - adds r0, 0x1 - movs r3, 0 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08184860 - ldrb r0, [r2, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r4, 0x80 - lsls r4, 1 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2, 0x3C] - strh r3, [r2, 0x3A] - strh r3, [r2, 0x38] - strh r3, [r2, 0x36] - strh r3, [r2, 0x34] -_08184860: - adds r0, r2, 0 - bl sub_8184798 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8B - - thumb_func_start pokemonanimfunc_8C -pokemonanimfunc_8C: @ 818486C - push {r4,r5,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - adds r0, 0x1 - movs r3, 0 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0x1 - bne _08184898 - ldrb r0, [r2, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r5, 0x80 - lsls r5, 1 - adds r1, r5, 0 - adds r0, r1 - strh r0, [r2, 0x3C] - strh r3, [r2, 0x3A] - strh r3, [r2, 0x38] - strh r3, [r2, 0x36] - strh r4, [r2, 0x34] -_08184898: - adds r0, r2, 0 - bl sub_8184798 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8C - - thumb_func_start pokemonanimfunc_8D -pokemonanimfunc_8D: @ 81848A4 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - adds r0, 0x1 - movs r3, 0 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _081848D2 - ldrb r0, [r2, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r4, 0x80 - lsls r4, 1 - adds r1, r4, 0 - adds r0, r1 - strh r0, [r2, 0x3C] - strh r3, [r2, 0x3A] - strh r3, [r2, 0x38] - strh r3, [r2, 0x36] - movs r0, 0x2 - strh r0, [r2, 0x34] -_081848D2: - adds r0, r2, 0 - bl sub_8184798 - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8D - - thumb_func_start sub_81848E0 -sub_81848E0: @ 81848E0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _08184904 - ldrh r0, [r4, 0x3C] - movs r1, 0x10 - movs r2, 0 - movs r3, 0x1F - bl BlendPalette - ldr r0, =SpriteCB_SetDummyOnAnimEnd - str r0, [r4, 0x1C] - b _0818492A - .pool -_08184904: - movs r5, 0x32 - ldrsh r0, [r4, r5] - movs r1, 0xC - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - ldr r3, =gUnknown_0860AE88 - movs r5, 0x30 - ldrsh r1, [r4, r5] - lsls r1, 1 - adds r1, r3 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette -_0818492A: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81848E0 - - thumb_func_start sub_8184934 -sub_8184934: @ 8184934 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _081849CC - adds r0, r4, 0 - bl sub_817F70C - movs r3, 0x38 - ldrsh r1, [r4, r3] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _08184970 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x36 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0818496C - strh r2, [r4, 0x38] -_0818496C: - strh r2, [r4, 0x24] - b _081849C6 -_08184970: - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - lsls r1, 16 - asrs r1, 15 - movs r0, 0x1 - subs r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 7 - movs r3, 0x2E - ldrsh r1, [r4, r3] - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _081849A4 - adds r0, 0xFF -_081849A4: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl Sin - lsls r1, r5, 24 - asrs r1, 24 - adds r2, r1, 0 - muls r2, r0 - adds r0, r2, 0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] -_081849C6: - adds r0, r4, 0 - bl sub_817F70C -_081849CC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8184934 - - thumb_func_start pokemonanimfunc_8E -pokemonanimfunc_8E: @ 81849D4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _081849FE - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x2 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - strh r2, [r4, 0x30] -_081849FE: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184A0E - adds r0, r4, 0 - bl sub_81848E0 -_08184A0E: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184A30 - adds r0, r4, 0 - bl sub_8184934 -_08184A30: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8E - - thumb_func_start pokemonanimfunc_8F -pokemonanimfunc_8F: @ 8184A3C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184A66 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x14 - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - strh r2, [r4, 0x30] -_08184A66: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184A76 - adds r0, r4, 0 - bl sub_81848E0 -_08184A76: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184A98 - adds r0, r4, 0 - bl sub_8184934 -_08184A98: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_8F - - thumb_func_start pokemonanimfunc_90 -pokemonanimfunc_90: @ 8184AA4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184ACE - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x50 - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - strh r2, [r4, 0x30] -_08184ACE: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184ADE - adds r0, r4, 0 - bl sub_81848E0 -_08184ADE: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184B00 - adds r0, r4, 0 - bl sub_8184934 -_08184B00: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_90 - - thumb_func_start pokemonanimfunc_91 -pokemonanimfunc_91: @ 8184B0C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184B38 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x2 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x30] -_08184B38: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184B48 - adds r0, r4, 0 - bl sub_81848E0 -_08184B48: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184B6A - adds r0, r4, 0 - bl sub_8184934 -_08184B6A: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_91 - - thumb_func_start pokemonanimfunc_92 -pokemonanimfunc_92: @ 8184B78 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184BA2 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x14 - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - strh r0, [r4, 0x30] -_08184BA2: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184BB2 - adds r0, r4, 0 - bl sub_81848E0 -_08184BB2: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184BD4 - adds r0, r4, 0 - bl sub_8184934 -_08184BD4: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_92 - - thumb_func_start pokemonanimfunc_93 -pokemonanimfunc_93: @ 8184BE0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184C0A - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x50 - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - strh r0, [r4, 0x30] -_08184C0A: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184C1A - adds r0, r4, 0 - bl sub_81848E0 -_08184C1A: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184C3C - adds r0, r4, 0 - bl sub_8184934 -_08184C3C: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_93 - - thumb_func_start pokemonanimfunc_94 -pokemonanimfunc_94: @ 8184C48 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184C72 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x2 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - strh r0, [r4, 0x30] -_08184C72: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184C82 - adds r0, r4, 0 - bl sub_81848E0 -_08184C82: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184CA4 - adds r0, r4, 0 - bl sub_8184934 -_08184CA4: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_94 - - thumb_func_start pokemonanimfunc_95 -pokemonanimfunc_95: @ 8184CB0 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184CDC - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x14 - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - movs r0, 0x2 - strh r0, [r4, 0x30] -_08184CDC: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184CEC - adds r0, r4, 0 - bl sub_81848E0 -_08184CEC: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184D0E - adds r0, r4, 0 - bl sub_8184934 -_08184D0E: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_95 - - thumb_func_start pokemonanimfunc_96 -pokemonanimfunc_96: @ 8184D1C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _08184D48 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r4, 0x3C] - movs r0, 0x50 - strh r0, [r4, 0x2E] - strh r2, [r4, 0x38] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r2, [r4, 0x34] - movs r0, 0x2 - strh r0, [r4, 0x30] -_08184D48: - ldrh r0, [r4, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08184D58 - adds r0, r4, 0 - bl sub_81848E0 -_08184D58: - movs r0, 0x32 - ldrsh r2, [r4, r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - movs r3, 0x36 - ldrsh r0, [r4, r3] - muls r1, r0 - movs r0, 0x80 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r2, r0 - blt _08184D7A - adds r0, r4, 0 - bl sub_8184934 -_08184D7A: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemonanimfunc_96 - - thumb_func_start SpriteCB_SetDummyOnAnimEnd -SpriteCB_SetDummyOnAnimEnd: @ 8184D88 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08184D9C - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08184D9C: - pop {r0} - bx r0 - .pool - thumb_func_end SpriteCB_SetDummyOnAnimEnd - - .align 2, 0 @ Don't pad with nop. diff --git a/data/pokemon_animation.s b/data/pokemon_animation.s deleted file mode 100644 index cbab5295f..000000000 --- a/data/pokemon_animation.s +++ /dev/null @@ -1,33 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0860ADCC:: @ 860ADCC - .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00 - -gUnknown_0860AE1C:: @ 860AE1C - .byte 0x00, 0x05, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00 - -gUnknown_0860AE54:: @ 860AE54 - .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00 - - .align 2 -gUnknown_0860AE7C:: @ 860AE7C - .4byte gUnknown_0860ADCC - .4byte gUnknown_0860AE1C - .4byte gUnknown_0860AE54 - - .align 1 -gUnknown_0860AE88:: @ 860AE88 - .2byte 0x001f, 0x03e0, 0x7c00, 0x0000 diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index b6d8c868e..c1ab8d817 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -1,7 +1,10 @@ #ifndef GUARD_POKEMON_ANIMATION_H #define GUARD_POKEMON_ANIMATION_H +u8 GetSpeciesBackAnimSet(u16 species); void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId); -void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimId); +void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId); +void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet); +void SetSpriteCB_MonAnimDummy(struct Sprite *sprite); #endif // GUARD_POKEMON_ANIMATION_H diff --git a/ld_script.txt b/ld_script.txt index f21991734..35b0ce582 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -241,7 +241,6 @@ SECTIONS { src/fldeff_teleport.o(.text); asm/battle_link_817C95C.o(.text); src/pokemon_animation.o(.text); - asm/pokemon_animation.o(.text); src/recorded_battle.o(.text); src/battle_controller_recorded_opponent.o(.text); src/battle_controller_recorded_player.o(.text); @@ -516,7 +515,6 @@ SECTIONS { src/bard_music.o(.rodata); data/battle_link_817C95C.o(.rodata); src/pokemon_animation.o(.rodata); - data/pokemon_animation.o(.rodata); src/battle_controller_recorded_opponent.o(.rodata); src/battle_controller_recorded_player.o(.rodata); src/battle_dome_cards.o(.rodata); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 3e70e22fa..38183e807 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -25,6 +25,7 @@ #include "random.h" #include "event_data.h" #include "overworld.h" +#include "new_menu_helpers.h" struct HallofFameMon { @@ -53,7 +54,6 @@ static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL; extern bool8 gHasHallOfFameRecords; extern u32 gUnknown_0203BCD4; -extern u8 gDecompressionBuffer[]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern MainCallback gGameContinueCallback; extern u32 gDamagedSaveSectors; @@ -82,7 +82,6 @@ extern const u8 gContestConfetti_Gfx[]; extern const u8 gContestConfetti_Pal[]; extern void sub_81973C4(u8, u8); -extern u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor); extern void sub_8175620(void); extern u8 TrySavingData(u8); extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16); diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 95ec4b6a2..7ffb2f36a 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -74,8 +74,6 @@ extern u8 GetFrontierOpponentClass(u16 trainerId); extern u8 pokemon_order_func(u8 bankPartyId); extern void GetFrontierTrainerName(u8* dest, u16 trainerId); extern void sub_81C488C(u8); -extern void sub_817F578(struct Sprite*, u8 frontAnimId); -extern u8 GetSpeciesBackAnimId(u16 species); static void sub_806E6CC(u8 taskId); @@ -1508,7 +1506,7 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId) { if (--gTasks[taskId].data[3] == 0) { - sub_817F578(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]); + StartMonSummaryAnimation(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]); sub_81C488C(0xFF); DestroyTask(taskId); } @@ -1523,7 +1521,6 @@ void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u } extern void SpriteCallbackDummy_2(struct Sprite*); -extern void sub_817F60C(struct Sprite*); void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3) { @@ -1580,11 +1577,11 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF gTasks[taskId].data[2] = gMonFrontAnimIdsTable[species - 1]; gTasks[taskId].data[3] = gMonAnimationDelayTable[species - 1]; sub_81C488C(taskId); - sub_817F60C(sprite); + SetSpriteCB_MonAnimDummy(sprite); } else { - sub_817F578(sprite, gMonFrontAnimIdsTable[species - 1]); + StartMonSummaryAnimation(sprite, gMonFrontAnimIdsTable[species - 1]); } } @@ -1603,7 +1600,7 @@ void BattleAnimateBackSprite(struct Sprite* sprite, u16 species) } else { - LaunchAnimationTaskForBackSprite(sprite, GetSpeciesBackAnimId(species)); + LaunchAnimationTaskForBackSprite(sprite, GetSpeciesBackAnimSet(species)); sprite->callback = SpriteCallbackDummy_2; } } diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 67915d228..c8fcff93a 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -16,167 +16,171 @@ struct UnkAnimStruct }; extern u16 gBattlePartyID[]; -extern bool32 gUnknown_03001274; -extern struct UnkAnimStruct gUnknown_03001240[]; -extern u8 gUnknown_03001270; // this file's functions -void pokemonanimfunc_00(struct Sprite *sprite); -void pokemonanimfunc_01(struct Sprite *sprite); -void pokemonanimfunc_02(struct Sprite *sprite); -void pokemonanimfunc_03(struct Sprite *sprite); -void pokemonanimfunc_04(struct Sprite *sprite); -void pokemonanimfunc_05(struct Sprite *sprite); -void pokemonanimfunc_06(struct Sprite *sprite); -void pokemonanimfunc_07(struct Sprite *sprite); -void pokemonanimfunc_08(struct Sprite *sprite); -void pokemonanimfunc_09(struct Sprite *sprite); -void pokemonanimfunc_0A(struct Sprite *sprite); -void pokemonanimfunc_0B(struct Sprite *sprite); -void pokemonanimfunc_0C(struct Sprite *sprite); -void pokemonanimfunc_0D(struct Sprite *sprite); -void pokemonanimfunc_0E(struct Sprite *sprite); -void pokemonanimfunc_0F(struct Sprite *sprite); -void pokemonanimfunc_10(struct Sprite *sprite); -void pokemonanimfunc_11(struct Sprite *sprite); -void pokemonanimfunc_12(struct Sprite *sprite); -void pokemonanimfunc_13(struct Sprite *sprite); -void pokemonanimfunc_14(struct Sprite *sprite); -void pokemonanimfunc_15(struct Sprite *sprite); -void pokemonanimfunc_16(struct Sprite *sprite); -void pokemonanimfunc_17(struct Sprite *sprite); -void pokemonanimfunc_18(struct Sprite *sprite); -void pokemonanimfunc_19(struct Sprite *sprite); -void pokemonanimfunc_1A(struct Sprite *sprite); -void pokemonanimfunc_1B(struct Sprite *sprite); -void pokemonanimfunc_1C(struct Sprite *sprite); -void pokemonanimfunc_1D(struct Sprite *sprite); -void pokemonanimfunc_1E(struct Sprite *sprite); -void pokemonanimfunc_1F(struct Sprite *sprite); -void pokemonanimfunc_20(struct Sprite *sprite); -void pokemonanimfunc_21(struct Sprite *sprite); -void pokemonanimfunc_22(struct Sprite *sprite); -void pokemonanimfunc_23(struct Sprite *sprite); -void pokemonanimfunc_24(struct Sprite *sprite); -void pokemonanimfunc_25(struct Sprite *sprite); -void pokemonanimfunc_26(struct Sprite *sprite); -void pokemonanimfunc_27(struct Sprite *sprite); -void pokemonanimfunc_28(struct Sprite *sprite); -void pokemonanimfunc_29(struct Sprite *sprite); -void pokemonanimfunc_2A(struct Sprite *sprite); -void pokemonanimfunc_2B(struct Sprite *sprite); -void pokemonanimfunc_2C(struct Sprite *sprite); -void pokemonanimfunc_2D(struct Sprite *sprite); -void pokemonanimfunc_2E(struct Sprite *sprite); -void pokemonanimfunc_2F(struct Sprite *sprite); -void pokemonanimfunc_30(struct Sprite *sprite); -void pokemonanimfunc_31(struct Sprite *sprite); -void pokemonanimfunc_32(struct Sprite *sprite); -void pokemonanimfunc_33(struct Sprite *sprite); -void pokemonanimfunc_34(struct Sprite *sprite); -void pokemonanimfunc_35(struct Sprite *sprite); -void pokemonanimfunc_36(struct Sprite *sprite); -void pokemonanimfunc_37(struct Sprite *sprite); -void pokemonanimfunc_38(struct Sprite *sprite); -void pokemonanimfunc_39(struct Sprite *sprite); -void pokemonanimfunc_3A(struct Sprite *sprite); -void pokemonanimfunc_3B(struct Sprite *sprite); -void pokemonanimfunc_3C(struct Sprite *sprite); -void pokemonanimfunc_3D(struct Sprite *sprite); -void pokemonanimfunc_3E(struct Sprite *sprite); -void pokemonanimfunc_3F(struct Sprite *sprite); -void pokemonanimfunc_40(struct Sprite *sprite); -void pokemonanimfunc_41(struct Sprite *sprite); -void pokemonanimfunc_42(struct Sprite *sprite); -void pokemonanimfunc_43(struct Sprite *sprite); -void pokemonanimfunc_44(struct Sprite *sprite); -void pokemonanimfunc_45(struct Sprite *sprite); -void pokemonanimfunc_46(struct Sprite *sprite); -void pokemonanimfunc_47(struct Sprite *sprite); -void pokemonanimfunc_48(struct Sprite *sprite); -void pokemonanimfunc_49(struct Sprite *sprite); -void pokemonanimfunc_4A(struct Sprite *sprite); -void pokemonanimfunc_4B(struct Sprite *sprite); -void pokemonanimfunc_4C(struct Sprite *sprite); -void pokemonanimfunc_4D(struct Sprite *sprite); -void pokemonanimfunc_4E(struct Sprite *sprite); -void pokemonanimfunc_4F(struct Sprite *sprite); -void pokemonanimfunc_50(struct Sprite *sprite); -void pokemonanimfunc_51(struct Sprite *sprite); -void pokemonanimfunc_52(struct Sprite *sprite); -void pokemonanimfunc_53(struct Sprite *sprite); -void pokemonanimfunc_54(struct Sprite *sprite); -void pokemonanimfunc_55(struct Sprite *sprite); -void pokemonanimfunc_56(struct Sprite *sprite); -void pokemonanimfunc_57(struct Sprite *sprite); -void pokemonanimfunc_58(struct Sprite *sprite); -void pokemonanimfunc_59(struct Sprite *sprite); -void pokemonanimfunc_5A(struct Sprite *sprite); -void pokemonanimfunc_5B(struct Sprite *sprite); -void pokemonanimfunc_5C(struct Sprite *sprite); -void pokemonanimfunc_5D(struct Sprite *sprite); -void pokemonanimfunc_5E(struct Sprite *sprite); -void pokemonanimfunc_5F(struct Sprite *sprite); -void pokemonanimfunc_60(struct Sprite *sprite); -void pokemonanimfunc_61(struct Sprite *sprite); -void pokemonanimfunc_62(struct Sprite *sprite); -void pokemonanimfunc_63(struct Sprite *sprite); -void pokemonanimfunc_64(struct Sprite *sprite); -void pokemonanimfunc_65(struct Sprite *sprite); -void pokemonanimfunc_66(struct Sprite *sprite); -void pokemonanimfunc_67(struct Sprite *sprite); -void pokemonanimfunc_68(struct Sprite *sprite); -void pokemonanimfunc_69(struct Sprite *sprite); -void pokemonanimfunc_6A(struct Sprite *sprite); -void pokemonanimfunc_6B(struct Sprite *sprite); -void pokemonanimfunc_6C(struct Sprite *sprite); -void pokemonanimfunc_6D(struct Sprite *sprite); -void pokemonanimfunc_6E(struct Sprite *sprite); -void pokemonanimfunc_6F(struct Sprite *sprite); -void pokemonanimfunc_70(struct Sprite *sprite); -void pokemonanimfunc_71(struct Sprite *sprite); -void pokemonanimfunc_72(struct Sprite *sprite); -void pokemonanimfunc_73(struct Sprite *sprite); -void pokemonanimfunc_74(struct Sprite *sprite); -void pokemonanimfunc_75(struct Sprite *sprite); -void pokemonanimfunc_76(struct Sprite *sprite); -void pokemonanimfunc_77(struct Sprite *sprite); -void pokemonanimfunc_78(struct Sprite *sprite); -void pokemonanimfunc_79(struct Sprite *sprite); -void pokemonanimfunc_7A(struct Sprite *sprite); -void pokemonanimfunc_7B(struct Sprite *sprite); -void pokemonanimfunc_7C(struct Sprite *sprite); -void pokemonanimfunc_7D(struct Sprite *sprite); -void pokemonanimfunc_7E(struct Sprite *sprite); -void pokemonanimfunc_7F(struct Sprite *sprite); -void pokemonanimfunc_80(struct Sprite *sprite); -void pokemonanimfunc_81(struct Sprite *sprite); -void pokemonanimfunc_82(struct Sprite *sprite); -void pokemonanimfunc_83(struct Sprite *sprite); -void pokemonanimfunc_84(struct Sprite *sprite); -void pokemonanimfunc_85(struct Sprite *sprite); -void pokemonanimfunc_86(struct Sprite *sprite); -void pokemonanimfunc_87(struct Sprite *sprite); -void pokemonanimfunc_88(struct Sprite *sprite); -void pokemonanimfunc_89(struct Sprite *sprite); -void pokemonanimfunc_8A(struct Sprite *sprite); -void pokemonanimfunc_8B(struct Sprite *sprite); -void pokemonanimfunc_8C(struct Sprite *sprite); -void pokemonanimfunc_8D(struct Sprite *sprite); -void pokemonanimfunc_8E(struct Sprite *sprite); -void pokemonanimfunc_8F(struct Sprite *sprite); -void pokemonanimfunc_90(struct Sprite *sprite); -void pokemonanimfunc_91(struct Sprite *sprite); -void pokemonanimfunc_92(struct Sprite *sprite); -void pokemonanimfunc_93(struct Sprite *sprite); -void pokemonanimfunc_94(struct Sprite *sprite); -void pokemonanimfunc_95(struct Sprite *sprite); -void pokemonanimfunc_96(struct Sprite *sprite); - -void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite); +static void pokemonanimfunc_00(struct Sprite *sprite); +static void pokemonanimfunc_01(struct Sprite *sprite); +static void pokemonanimfunc_02(struct Sprite *sprite); +static void pokemonanimfunc_03(struct Sprite *sprite); +static void pokemonanimfunc_04(struct Sprite *sprite); +static void pokemonanimfunc_05(struct Sprite *sprite); +static void pokemonanimfunc_06(struct Sprite *sprite); +static void pokemonanimfunc_07(struct Sprite *sprite); +static void pokemonanimfunc_08(struct Sprite *sprite); +static void pokemonanimfunc_09(struct Sprite *sprite); +static void pokemonanimfunc_0A(struct Sprite *sprite); +static void pokemonanimfunc_0B(struct Sprite *sprite); +static void pokemonanimfunc_0C(struct Sprite *sprite); +static void pokemonanimfunc_0D(struct Sprite *sprite); +static void pokemonanimfunc_0E(struct Sprite *sprite); +static void pokemonanimfunc_0F(struct Sprite *sprite); +static void pokemonanimfunc_10(struct Sprite *sprite); +static void pokemonanimfunc_11(struct Sprite *sprite); +static void pokemonanimfunc_12(struct Sprite *sprite); +static void pokemonanimfunc_13(struct Sprite *sprite); +static void pokemonanimfunc_14(struct Sprite *sprite); +static void pokemonanimfunc_15(struct Sprite *sprite); +static void pokemonanimfunc_16(struct Sprite *sprite); +static void pokemonanimfunc_17(struct Sprite *sprite); +static void pokemonanimfunc_18(struct Sprite *sprite); +static void pokemonanimfunc_19(struct Sprite *sprite); +static void pokemonanimfunc_1A(struct Sprite *sprite); +static void pokemonanimfunc_1B(struct Sprite *sprite); +static void pokemonanimfunc_1C(struct Sprite *sprite); +static void pokemonanimfunc_1D(struct Sprite *sprite); +static void pokemonanimfunc_1E(struct Sprite *sprite); +static void pokemonanimfunc_1F(struct Sprite *sprite); +static void pokemonanimfunc_20(struct Sprite *sprite); +static void pokemonanimfunc_21(struct Sprite *sprite); +static void pokemonanimfunc_22(struct Sprite *sprite); +static void pokemonanimfunc_23(struct Sprite *sprite); +static void pokemonanimfunc_24(struct Sprite *sprite); +static void pokemonanimfunc_25(struct Sprite *sprite); +static void pokemonanimfunc_26(struct Sprite *sprite); +static void pokemonanimfunc_27(struct Sprite *sprite); +static void pokemonanimfunc_28(struct Sprite *sprite); +static void pokemonanimfunc_29(struct Sprite *sprite); +static void pokemonanimfunc_2A(struct Sprite *sprite); +static void pokemonanimfunc_2B(struct Sprite *sprite); +static void pokemonanimfunc_2C(struct Sprite *sprite); +static void pokemonanimfunc_2D(struct Sprite *sprite); +static void pokemonanimfunc_2E(struct Sprite *sprite); +static void pokemonanimfunc_2F(struct Sprite *sprite); +static void pokemonanimfunc_30(struct Sprite *sprite); +static void pokemonanimfunc_31(struct Sprite *sprite); +static void pokemonanimfunc_32(struct Sprite *sprite); +static void pokemonanimfunc_33(struct Sprite *sprite); +static void pokemonanimfunc_34(struct Sprite *sprite); +static void pokemonanimfunc_35(struct Sprite *sprite); +static void pokemonanimfunc_36(struct Sprite *sprite); +static void pokemonanimfunc_37(struct Sprite *sprite); +static void pokemonanimfunc_38(struct Sprite *sprite); +static void pokemonanimfunc_39(struct Sprite *sprite); +static void pokemonanimfunc_3A(struct Sprite *sprite); +static void pokemonanimfunc_3B(struct Sprite *sprite); +static void pokemonanimfunc_3C(struct Sprite *sprite); +static void pokemonanimfunc_3D(struct Sprite *sprite); +static void pokemonanimfunc_3E(struct Sprite *sprite); +static void pokemonanimfunc_3F(struct Sprite *sprite); +static void pokemonanimfunc_40(struct Sprite *sprite); +static void pokemonanimfunc_41(struct Sprite *sprite); +static void pokemonanimfunc_42(struct Sprite *sprite); +static void pokemonanimfunc_43(struct Sprite *sprite); +static void pokemonanimfunc_44(struct Sprite *sprite); +static void pokemonanimfunc_45(struct Sprite *sprite); +static void pokemonanimfunc_46(struct Sprite *sprite); +static void pokemonanimfunc_47(struct Sprite *sprite); +static void pokemonanimfunc_48(struct Sprite *sprite); +static void pokemonanimfunc_49(struct Sprite *sprite); +static void pokemonanimfunc_4A(struct Sprite *sprite); +static void pokemonanimfunc_4B(struct Sprite *sprite); +static void pokemonanimfunc_4C(struct Sprite *sprite); +static void pokemonanimfunc_4D(struct Sprite *sprite); +static void pokemonanimfunc_4E(struct Sprite *sprite); +static void pokemonanimfunc_4F(struct Sprite *sprite); +static void pokemonanimfunc_50(struct Sprite *sprite); +static void pokemonanimfunc_51(struct Sprite *sprite); +static void pokemonanimfunc_52(struct Sprite *sprite); +static void pokemonanimfunc_53(struct Sprite *sprite); +static void pokemonanimfunc_54(struct Sprite *sprite); +static void pokemonanimfunc_55(struct Sprite *sprite); +static void pokemonanimfunc_56(struct Sprite *sprite); +static void pokemonanimfunc_57(struct Sprite *sprite); +static void pokemonanimfunc_58(struct Sprite *sprite); +static void pokemonanimfunc_59(struct Sprite *sprite); +static void pokemonanimfunc_5A(struct Sprite *sprite); +static void pokemonanimfunc_5B(struct Sprite *sprite); +static void pokemonanimfunc_5C(struct Sprite *sprite); +static void pokemonanimfunc_5D(struct Sprite *sprite); +static void pokemonanimfunc_5E(struct Sprite *sprite); +static void pokemonanimfunc_5F(struct Sprite *sprite); +static void pokemonanimfunc_60(struct Sprite *sprite); +static void pokemonanimfunc_61(struct Sprite *sprite); +static void pokemonanimfunc_62(struct Sprite *sprite); +static void pokemonanimfunc_63(struct Sprite *sprite); +static void pokemonanimfunc_64(struct Sprite *sprite); +static void pokemonanimfunc_65(struct Sprite *sprite); +static void pokemonanimfunc_66(struct Sprite *sprite); +static void pokemonanimfunc_67(struct Sprite *sprite); +static void pokemonanimfunc_68(struct Sprite *sprite); +static void pokemonanimfunc_69(struct Sprite *sprite); +static void pokemonanimfunc_6A(struct Sprite *sprite); +static void pokemonanimfunc_6B(struct Sprite *sprite); +static void pokemonanimfunc_6C(struct Sprite *sprite); +static void pokemonanimfunc_6D(struct Sprite *sprite); +static void pokemonanimfunc_6E(struct Sprite *sprite); +static void pokemonanimfunc_6F(struct Sprite *sprite); +static void pokemonanimfunc_70(struct Sprite *sprite); +static void pokemonanimfunc_71(struct Sprite *sprite); +static void pokemonanimfunc_72(struct Sprite *sprite); +static void pokemonanimfunc_73(struct Sprite *sprite); +static void pokemonanimfunc_74(struct Sprite *sprite); +static void pokemonanimfunc_75(struct Sprite *sprite); +static void pokemonanimfunc_76(struct Sprite *sprite); +static void pokemonanimfunc_77(struct Sprite *sprite); +static void pokemonanimfunc_78(struct Sprite *sprite); +static void pokemonanimfunc_79(struct Sprite *sprite); +static void pokemonanimfunc_7A(struct Sprite *sprite); +static void pokemonanimfunc_7B(struct Sprite *sprite); +static void pokemonanimfunc_7C(struct Sprite *sprite); +static void pokemonanimfunc_7D(struct Sprite *sprite); +static void pokemonanimfunc_7E(struct Sprite *sprite); +static void pokemonanimfunc_7F(struct Sprite *sprite); +static void pokemonanimfunc_80(struct Sprite *sprite); +static void pokemonanimfunc_81(struct Sprite *sprite); +static void pokemonanimfunc_82(struct Sprite *sprite); +static void pokemonanimfunc_83(struct Sprite *sprite); +static void pokemonanimfunc_84(struct Sprite *sprite); +static void pokemonanimfunc_85(struct Sprite *sprite); +static void pokemonanimfunc_86(struct Sprite *sprite); +static void pokemonanimfunc_87(struct Sprite *sprite); +static void pokemonanimfunc_88(struct Sprite *sprite); +static void pokemonanimfunc_89(struct Sprite *sprite); +static void pokemonanimfunc_8A(struct Sprite *sprite); +static void pokemonanimfunc_8B(struct Sprite *sprite); +static void pokemonanimfunc_8C(struct Sprite *sprite); +static void pokemonanimfunc_8D(struct Sprite *sprite); +static void pokemonanimfunc_8E(struct Sprite *sprite); +static void pokemonanimfunc_8F(struct Sprite *sprite); +static void pokemonanimfunc_90(struct Sprite *sprite); +static void pokemonanimfunc_91(struct Sprite *sprite); +static void pokemonanimfunc_92(struct Sprite *sprite); +static void pokemonanimfunc_93(struct Sprite *sprite); +static void pokemonanimfunc_94(struct Sprite *sprite); +static void pokemonanimfunc_95(struct Sprite *sprite); +static void pokemonanimfunc_96(struct Sprite *sprite); + +static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite); + +#define STRUCT_COUNT 4 + +// IWRAM bss +static IWRAM_DATA struct UnkAnimStruct sUnknown_03001240[STRUCT_COUNT]; +static IWRAM_DATA u8 sUnknown_03001270; +static IWRAM_DATA bool32 sUnknown_03001274; // const rom data -static const u8 sSpeciesToBackAnimId[] = +static const u8 sSpeciesToBackAnimSet[] = { 0x00, // SPECIES_NONE 0x13, // SPECIES_BULBASAUR @@ -592,7 +596,7 @@ static const u8 sSpeciesToBackAnimId[] = 0x11, // SPECIES_CHIMECHO }; -const u8 gUnknown_0860AA64[][2] = +static const u8 sUnknown_0860AA64[][2] = { {0, 5}, {1, 1}, @@ -610,7 +614,7 @@ const u8 gUnknown_0860AA64[][2] = {0, 0xFF} }; -const u8 gUnknown_0860AA80[][2] = +static const u8 sUnknown_0860AA80[][2] = { {6, 30}, {0xFE, 15}, @@ -773,7 +777,7 @@ static void (* const sMonAnimFunctions[])(struct Sprite *sprite) = pokemonanimfunc_96 }; -// counting from Id 1, because 0 in sSpeciesToBackAnimId is used for mons with no back animation +// counting from Id 1, because 0 in sSpeciesToBackAnimSet is used for mons with no back animation static const u8 sBackAnimationIds[] = { 0x60, 0x5f, 0x02, // 1 @@ -832,30 +836,30 @@ static const u8 sBackAnimNatureModTable[] = 0x01, // NATURE_QUIRKY }; -static const union AffineAnimCmd gSpriteAffineAnim_860AD48[] = +static const union AffineAnimCmd sSpriteAffineAnim_860AD48[] = { - AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMDTYPE_END }; -static const union AffineAnimCmd gSpriteAffineAnim_860AD58[] = +static const union AffineAnimCmd sSpriteAffineAnim_860AD58[] = { - AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(-256, 256, 0, 0), AFFINEANIMCMDTYPE_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_860AD68[] = +static const union AffineAnimCmd *const sSpriteAffineAnimTable_860AD68[] = { - gSpriteAffineAnim_860AD48, - gSpriteAffineAnim_860AD58 + sSpriteAffineAnim_860AD48, + sSpriteAffineAnim_860AD58 }; // code -void MonAnimDummySpriteCallback(struct Sprite *sprite) +static void MonAnimDummySpriteCallback(struct Sprite *sprite) { } -void sub_817F3F0(struct Sprite *sprite, s16 index, s16 amplitudeX, s16 amplitudeY) +static void sub_817F3F0(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 amplitudeY) { s16 xAdder, yAdder; @@ -872,38 +876,45 @@ void sub_817F3F0(struct Sprite *sprite, s16 index, s16 amplitudeX, s16 amplitude sprite->pos2.y = yAdder + amplitudeY; } -u8 GetSpeciesBackAnimId(u16 species) +u8 GetSpeciesBackAnimSet(u16 species) { - if (sSpeciesToBackAnimId[species] != 0) - return sSpeciesToBackAnimId[species] - 1; + if (sSpeciesToBackAnimSet[species] != 0) + return sSpeciesToBackAnimSet[species] - 1; else return 0; } -void sub_817F498(u8 taskId) +#define tState data[0] +#define tPtrLO data[1] +#define tPtrHI data[2] +#define tAnimId data[3] +#define tSaved0 data[4] +#define tSaved2 data[5] + +static void Task_HandleMonAnimation(u8 taskId) { u32 i; - struct Sprite *sprite = (struct Sprite*)(u32)((gTasks[taskId].data[1] << 0x10) | (gTasks[taskId].data[2])); + struct Sprite *sprite = (struct Sprite*)(u32)((gTasks[taskId].tPtrLO << 0x10) | (gTasks[taskId].tPtrHI)); - if (gTasks[taskId].data[0] == 0) + if (gTasks[taskId].tState == 0) { - gTasks[taskId].data[4] = sprite->data[0]; - gTasks[taskId].data[5] = sprite->data[2]; + gTasks[taskId].tSaved0 = sprite->data[0]; + gTasks[taskId].tSaved2 = sprite->data[2]; sprite->data[1] = 1; sprite->data[0] = 0; for (i = 2; i < 8; i++) sprite->data[i] = 0; - sprite->callback = sMonAnimFunctions[gTasks[taskId].data[3]]; - gUnknown_03001274 = FALSE; + sprite->callback = sMonAnimFunctions[gTasks[taskId].tAnimId]; + sUnknown_03001274 = FALSE; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; } if (sprite->callback == SpriteCallbackDummy) { - sprite->data[0] = gTasks[taskId].data[4]; - sprite->data[2] = gTasks[taskId].data[5]; + sprite->data[0] = gTasks[taskId].tSaved0; + sprite->data[2] = gTasks[taskId].tSaved2; sprite->data[1] = 0; DestroyTask(taskId); @@ -912,39 +923,46 @@ void sub_817F498(u8 taskId) void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId) { - u8 taskId = CreateTask(sub_817F498, 128); - gTasks[taskId].data[1] = (u32)(sprite) >> 0x10; - gTasks[taskId].data[2] = (u32)(sprite); - gTasks[taskId].data[3] = frontAnimId; + u8 taskId = CreateTask(Task_HandleMonAnimation, 128); + gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10; + gTasks[taskId].tPtrHI = (u32)(sprite); + gTasks[taskId].tAnimId = frontAnimId; } -void sub_817F578(struct Sprite *sprite, u8 frontAnimId) +void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId) { - gUnknown_03001274 = TRUE; + sUnknown_03001274 = TRUE; sprite->callback = sMonAnimFunctions[frontAnimId]; } -void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimId) +void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet) { u8 nature, taskId, animId, bank; - taskId = CreateTask(sub_817F498, 128); - gTasks[taskId].data[1] = (u32)(sprite) >> 0x10; - gTasks[taskId].data[2] = (u32)(sprite); + taskId = CreateTask(Task_HandleMonAnimation, 128); + gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10; + gTasks[taskId].tPtrHI = (u32)(sprite); bank = sprite->data[0]; nature = GetNature(&gPlayerParty[gBattlePartyID[bank]]); - animId = 3 * backAnimId + sBackAnimNatureModTable[nature]; - gTasks[taskId].data[3] = sBackAnimationIds[animId]; + animId = 3 * backAnimSet + sBackAnimNatureModTable[nature]; + gTasks[taskId].tAnimId = sBackAnimationIds[animId]; } -void sub_817F60C(struct Sprite *sprite) +#undef tState +#undef tPtrLO +#undef tPtrHI +#undef tAnimId +#undef tSaved0 +#undef tSaved2 + +void SetSpriteCB_MonAnimDummy(struct Sprite *sprite) { sprite->callback = MonAnimDummySpriteCallback; } -void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +static void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { u8 matrixNum; struct ObjAffineSrcData affineSrcData; @@ -963,12 +981,12 @@ void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) gOamMatrices[matrixNum].d = dest.d; } -void HandleStartAffineAnim(struct Sprite *sprite) +static void HandleStartAffineAnim(struct Sprite *sprite) { sprite->oam.affineMode = 3; - sprite->affineAnims = gSpriteAffineAnimTable_860AD68; + sprite->affineAnims = sSpriteAffineAnimTable_860AD68; - if (gUnknown_03001274 == TRUE) + if (sUnknown_03001274 == TRUE) InitSpriteAffineAnim(sprite); if (!sprite->data[1]) @@ -980,7 +998,7 @@ void HandleStartAffineAnim(struct Sprite *sprite) sprite->affineAnimPaused = 1; } -void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) +static void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation) { if (!sprite->data[1]) { @@ -991,42 +1009,42 @@ void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rota SetAffineData(sprite, xScale, yScale, rotation); } -void sub_817F70C(struct Sprite *sprite) +static void sub_817F70C(struct Sprite *sprite) { if (!sprite->data[1]) sprite->pos2.x *= -1; } -bool32 sub_817F724(u8 id) +static bool32 sub_817F724(u8 id) { - if (id >= 4) + if (id >= STRUCT_COUNT) { return FALSE; } else { - gUnknown_03001240[id].field_6 = 0; - gUnknown_03001240[id].field_0 = 0; - gUnknown_03001240[id].field_4 = 1; - gUnknown_03001240[id].field_2 = 0; - gUnknown_03001240[id].field_8 = 0; + sUnknown_03001240[id].field_6 = 0; + sUnknown_03001240[id].field_0 = 0; + sUnknown_03001240[id].field_4 = 1; + sUnknown_03001240[id].field_2 = 0; + sUnknown_03001240[id].field_8 = 0; return TRUE; } } -u8 sub_817F758(void) +static u8 sub_817F758(void) { - gUnknown_03001270 = (gUnknown_03001270 + 1) % 4; - sub_817F724(gUnknown_03001270); - return gUnknown_03001270; + sUnknown_03001270 = (sUnknown_03001270 + 1) % STRUCT_COUNT; + sub_817F724(sUnknown_03001270); + return sUnknown_03001270; } -void sub_817F77C(struct Sprite *sprite) +static void sub_817F77C(struct Sprite *sprite) { sprite->oam.affineMode = 1; CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); - if (gUnknown_03001274 == TRUE) + if (sUnknown_03001274 == TRUE) { if (!sprite->data[1]) sprite->hFlip = 1; @@ -1039,14 +1057,14 @@ void sub_817F77C(struct Sprite *sprite) } } -void pokemonanimfunc_01(struct Sprite *sprite) +static void pokemonanimfunc_01(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); if (sprite->data[2] > 40) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -1062,7 +1080,7 @@ void pokemonanimfunc_01(struct Sprite *sprite) sprite->data[2]++; } -void pokemonanimfunc_02(struct Sprite *sprite) +static void pokemonanimfunc_02(struct Sprite *sprite) { if (sprite->data[2] > 40) { @@ -1083,7 +1101,7 @@ void pokemonanimfunc_02(struct Sprite *sprite) sprite->data[2]++; } -void sub_817F8FC(struct Sprite *sprite) +static void sub_817F8FC(struct Sprite *sprite) { sub_817F70C(sprite); @@ -1101,14 +1119,14 @@ void sub_817F8FC(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_03(struct Sprite *sprite) +static void pokemonanimfunc_03(struct Sprite *sprite) { sprite->data[0] = 40; sub_817F8FC(sprite); sprite->callback = sub_817F8FC; } -void sub_817F978(struct Sprite *sprite) +static void sub_817F978(struct Sprite *sprite) { sub_817F70C(sprite); @@ -1126,7 +1144,7 @@ void sub_817F978(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_04(struct Sprite *sprite) +static void pokemonanimfunc_04(struct Sprite *sprite) { sprite->data[0] = 40; sub_817F978(sprite); @@ -1134,7 +1152,7 @@ void pokemonanimfunc_04(struct Sprite *sprite) } #ifdef NONMATCHING -void sub_817F9F4(struct Sprite *sprite) +static void sub_817F9F4(struct Sprite *sprite) { s32 counter = sprite->data[2]; @@ -1166,7 +1184,7 @@ void sub_817F9F4(struct Sprite *sprite) #else __attribute__((naked)) -void sub_817F9F4(struct Sprite *sprite) +static void sub_817F9F4(struct Sprite *sprite) { asm(".syntax unified\n\ push {r4,lr}\n\ @@ -1235,14 +1253,14 @@ _0817FA60:\n\ #endif // NONMATCHING -void pokemonanimfunc_1E(struct Sprite *sprite) +static void pokemonanimfunc_1E(struct Sprite *sprite) { sprite->data[0] = 4; sub_817F9F4(sprite); sprite->callback = sub_817F9F4; } -void pokemonanimfunc_06(struct Sprite *sprite) +static void pokemonanimfunc_06(struct Sprite *sprite) { s32 counter = sprite->data[2]; @@ -1282,14 +1300,14 @@ void pokemonanimfunc_06(struct Sprite *sprite) sprite->data[2] += 12; } -void pokemonanimfunc_09(struct Sprite *sprite) +static void pokemonanimfunc_09(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); if (sprite->data[2] > 40) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -1314,7 +1332,7 @@ void pokemonanimfunc_09(struct Sprite *sprite) sprite->data[2]++; } -static const s8 gUnknown_0860AD70[][3] = +static const s8 sUnknown_0860AD70[][3] = { {-1, -1, 6}, {2, 0, 6}, @@ -1328,16 +1346,16 @@ static const s8 gUnknown_0860AD70[][3] = {0, 0, 0}, }; -void sub_817FC20(struct Sprite *sprite) +static void sub_817FC20(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) sprite->data[3] = 0; - if (gUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2]) + if (sUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2]) { - if (gUnknown_0860AD70[sprite->data[3]][2] == 0) + if (sUnknown_0860AD70[sprite->data[3]][2] == 0) { sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -1348,26 +1366,26 @@ void sub_817FC20(struct Sprite *sprite) } } - if (gUnknown_0860AD70[sprite->data[3]][2] == 0) + if (sUnknown_0860AD70[sprite->data[3]][2] == 0) { sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { - sprite->pos2.x += gUnknown_0860AD70[sprite->data[3]][0]; - sprite->pos2.y += gUnknown_0860AD70[sprite->data[3]][1]; + sprite->pos2.x += sUnknown_0860AD70[sprite->data[3]][0]; + sprite->pos2.y += sUnknown_0860AD70[sprite->data[3]][1]; sprite->data[2]++; sub_817F70C(sprite); } } -void pokemonanimfunc_0A(struct Sprite *sprite) +static void pokemonanimfunc_0A(struct Sprite *sprite) { sub_817FC20(sprite); sprite->callback = sub_817FC20; } -void sub_817FCDC(struct Sprite *sprite) +static void sub_817FCDC(struct Sprite *sprite) { s32 counter = sprite->data[2]; @@ -1384,7 +1402,7 @@ void sub_817FCDC(struct Sprite *sprite) sprite->data[2] += sprite->data[0]; } -void pokemonanimfunc_0F(struct Sprite *sprite) +static void pokemonanimfunc_0F(struct Sprite *sprite) { sprite->data[0] = 60; sprite->data[7] = 3; @@ -1392,7 +1410,7 @@ void pokemonanimfunc_0F(struct Sprite *sprite) sprite->callback = sub_817FCDC; } -void sub_817FD44(struct Sprite *sprite) +static void sub_817FD44(struct Sprite *sprite) { s32 counter = sprite->data[2]; @@ -1409,14 +1427,14 @@ void sub_817FD44(struct Sprite *sprite) sprite->data[2] += sprite->data[0]; } -void pokemonanimfunc_10(struct Sprite *sprite) +static void pokemonanimfunc_10(struct Sprite *sprite) { sprite->data[0] = 60; sub_817FD44(sprite); sprite->callback = sub_817FD44; } -void pokemonanimfunc_11(struct Sprite *sprite) +static void pokemonanimfunc_11(struct Sprite *sprite) { if (sprite->data[2] > 512) { @@ -1444,30 +1462,30 @@ void pokemonanimfunc_11(struct Sprite *sprite) sprite->data[2] += 9; } -void sub_817FE30(struct Sprite *sprite) +static void sub_817FE30(struct Sprite *sprite) { s16 id = sprite->data[0]; - if (gUnknown_03001240[id].field_0 != 0) + if (sUnknown_03001240[id].field_0 != 0) { - gUnknown_03001240[id].field_0--; + sUnknown_03001240[id].field_0--; } else { - if (sprite->data[2] == 0 && gUnknown_03001240[id].field_8 == 0) + if (sprite->data[2] == 0 && sUnknown_03001240[id].field_8 == 0) { HandleStartAffineAnim(sprite); - gUnknown_03001240[id].field_8++; + sUnknown_03001240[id].field_8++; } - if (sprite->data[2] > gUnknown_03001240[id].field_6) + if (sprite->data[2] > sUnknown_03001240[id].field_6) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); - if (gUnknown_03001240[id].field_4 > 1) + if (sUnknown_03001240[id].field_4 > 1) { - gUnknown_03001240[id].field_4--; - gUnknown_03001240[id].field_0 = 10; + sUnknown_03001240[id].field_4--; + sUnknown_03001240[id].field_0 = 10; sprite->data[2] = 0; } else @@ -1479,62 +1497,62 @@ void sub_817FE30(struct Sprite *sprite) else { sprite->data[6] = Sin(sprite->data[2] % 256, 4096); - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6]); + HandleSetAffineData(sprite, 256, 256, sprite->data[6]); } sprite->data[2] += 16; } } -void pokemonanimfunc_12(struct Sprite *sprite) +static void pokemonanimfunc_12(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 512; - gUnknown_03001240[id].field_0 = 0; + sUnknown_03001240[id].field_6 = 512; + sUnknown_03001240[id].field_0 = 0; sub_817FE30(sprite); sprite->callback = sub_817FE30; } -void sub_817FF3C(struct Sprite *sprite) +static void sub_817FF3C(struct Sprite *sprite) { u8 id = sprite->data[0]; if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); - if (sprite->data[2] > gUnknown_03001240[id].field_0) + if (sprite->data[2] > sUnknown_03001240[id].field_0) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { - sprite->data[6] = (65536 / gUnknown_03001240[id].field_8) * sprite->data[2]; - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6]); + sprite->data[6] = (65536 / sUnknown_03001240[id].field_8) * sprite->data[2]; + HandleSetAffineData(sprite, 256, 256, sprite->data[6]); } sprite->data[2]++; } -void pokemonanimfunc_1F(struct Sprite *sprite) +static void pokemonanimfunc_1F(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_0 = 60; - gUnknown_03001240[id].field_8 = 20; + sUnknown_03001240[id].field_0 = 60; + sUnknown_03001240[id].field_8 = 20; sub_817FF3C(sprite); sprite->callback = sub_817FF3C; } -void sub_817FFF0(struct Sprite *sprite) +static void sub_817FFF0(struct Sprite *sprite) { u8 id = sprite->data[0]; sub_817F70C(sprite); - if (sprite->data[2] > gUnknown_03001240[id].field_6) + if (sprite->data[2] > sUnknown_03001240[id].field_6) { sprite->pos2.x = 0; sprite->pos2.y = 0; @@ -1544,26 +1562,26 @@ void sub_817FFF0(struct Sprite *sprite) { s16 index = (sprite->data[2] + 192) % 256; - sprite->pos2.x = -(Cos(index, gUnknown_03001240[id].field_8 * 2)); - sprite->pos2.y = Sin(index, gUnknown_03001240[id].field_8) + gUnknown_03001240[id].field_8; + sprite->pos2.x = -(Cos(index, sUnknown_03001240[id].field_8 * 2)); + sprite->pos2.y = Sin(index, sUnknown_03001240[id].field_8) + sUnknown_03001240[id].field_8; } - sprite->data[2] += gUnknown_03001240[id].field_2; + sprite->data[2] += sUnknown_03001240[id].field_2; sub_817F70C(sprite); } -void pokemonanimfunc_14(struct Sprite *sprite) +static void pokemonanimfunc_14(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 512; - gUnknown_03001240[id].field_8 = 6; - gUnknown_03001240[id].field_2 = 24; + sUnknown_03001240[id].field_6 = 512; + sUnknown_03001240[id].field_8 = 6; + sUnknown_03001240[id].field_2 = 24; sub_817FFF0(sprite); sprite->callback = sub_817FFF0; } -void pokemonanimfunc_15(struct Sprite *sprite) +static void pokemonanimfunc_15(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; @@ -1582,7 +1600,7 @@ void pokemonanimfunc_15(struct Sprite *sprite) sprite->data[2]++; } -void pokemonanimfunc_16(struct Sprite *sprite) +static void pokemonanimfunc_16(struct Sprite *sprite) { s16 index1 = 0, index2 = 0; @@ -1591,7 +1609,7 @@ void pokemonanimfunc_16(struct Sprite *sprite) if (sprite->data[2] > 40) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -1617,7 +1635,7 @@ void pokemonanimfunc_16(struct Sprite *sprite) sprite->data[2]++; } -void pokemonanimfunc_17(struct Sprite *sprite) +static void pokemonanimfunc_17(struct Sprite *sprite) { s16 posY = 0, index1 = 0, index2 = 0; @@ -1626,7 +1644,7 @@ void pokemonanimfunc_17(struct Sprite *sprite) if (sprite->data[2] > 40) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; sprite->pos2.y = posY; @@ -1658,12 +1676,12 @@ void pokemonanimfunc_17(struct Sprite *sprite) sprite->data[2]++; } -void sub_818031C(struct Sprite *sprite) +static void sub_818031C(struct Sprite *sprite) { u8 index = sprite->data[2]; u8 var7 = sprite->data[6]; - u8 var5 = gUnknown_0860AA80[sprite->data[5]][0]; - u8 var6 = gUnknown_0860AA80[sprite->data[5]][1]; + u8 var5 = sUnknown_0860AA80[sprite->data[5]][0]; + u8 var6 = sUnknown_0860AA80[sprite->data[5]][1]; u8 amplitude = 0; if (var5 != 0xFE) @@ -1693,14 +1711,14 @@ void sub_818031C(struct Sprite *sprite) } } -void pokemonanimfunc_19(struct Sprite *sprite) +static void pokemonanimfunc_19(struct Sprite *sprite) { sprite->data[0] = 48; sub_818031C(sprite); sprite->callback = sub_818031C; } -void pokemonanimfunc_1A(struct Sprite *sprite) +static void pokemonanimfunc_1A(struct Sprite *sprite) { u8 counter = 0; @@ -1712,7 +1730,7 @@ void pokemonanimfunc_1A(struct Sprite *sprite) if (sprite->data[2] > 35) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; sprite->pos2.x = 0; @@ -1722,25 +1740,25 @@ void pokemonanimfunc_1A(struct Sprite *sprite) s16 index = ((counter - 10) * 128) / 20; if (counter < 10) - HandleSetAffineData(sprite, 0x100, 0x100, counter / 2 * 512); + HandleSetAffineData(sprite, 256, 256, counter / 2 * 512); else if (counter >= 10 && counter <= 29) sprite->pos2.x = -(Sin(index, 5)); else - HandleSetAffineData(sprite, 0x100, 0x100, (35 - counter) / 2 * 1024); + HandleSetAffineData(sprite, 256, 256, (35 - counter) / 2 * 1024); } sprite->data[2]++; sub_817F70C(sprite); } -void pokemonanimfunc_1B(struct Sprite *sprite) +static void pokemonanimfunc_1B(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); if (sprite->data[2] > 100) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.y = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -1749,13 +1767,13 @@ void pokemonanimfunc_1B(struct Sprite *sprite) { s16 index = (sprite->data[2] * 256) / 100; sprite->pos2.y = Sin(index, 10); - HandleSetAffineData(sprite, 0x100, 0x100, Sin(index, 3276)); + HandleSetAffineData(sprite, 256, 256, Sin(index, 3276)); } sprite->data[2]++; } -void sub_81804F8(struct Sprite *sprite) +static void sub_81804F8(struct Sprite *sprite) { s32 var = 0; s16 index = 0; @@ -1765,7 +1783,7 @@ void sub_81804F8(struct Sprite *sprite) if (sprite->data[2] > 100) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.y = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -1776,20 +1794,20 @@ void sub_81804F8(struct Sprite *sprite) var = (sprite->data[2] * 512) / 100; var &= 0xFF; sprite->pos2.y = Sin(index, sprite->data[0]); - HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + HandleSetAffineData(sprite, 256, 256, Sin(var, 3276)); } sprite->data[2]++; } -void pokemonanimfunc_1C(struct Sprite *sprite) +static void pokemonanimfunc_1C(struct Sprite *sprite) { sprite->data[0] = 10; sub_81804F8(sprite); sprite->callback = sub_81804F8; } -void sub_81805B0(struct Sprite *sprite) +static void sub_81805B0(struct Sprite *sprite) { s32 var = 0; s16 index = 0; @@ -1799,7 +1817,7 @@ void sub_81805B0(struct Sprite *sprite) if (sprite->data[2] > 100) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.y = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -1810,20 +1828,20 @@ void sub_81805B0(struct Sprite *sprite) var = (sprite->data[2] * 512) / 100; var &= 0xFF; sprite->pos2.y = -(Sin(index / 2, sprite->data[0] * 2)); - HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + HandleSetAffineData(sprite, 256, 256, Sin(var, 3276)); } sprite->data[2]++; } -void pokemonanimfunc_18(struct Sprite *sprite) +static void pokemonanimfunc_18(struct Sprite *sprite) { sprite->data[0] = 5; sub_81805B0(sprite); sprite->callback = sub_81805B0; } -void pokemonanimfunc_1D(struct Sprite *sprite) +static void pokemonanimfunc_1D(struct Sprite *sprite) { s32 var; s16 index = 0; @@ -1836,7 +1854,7 @@ void pokemonanimfunc_1D(struct Sprite *sprite) if (sprite->data[2] > 100) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.x = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -1849,14 +1867,14 @@ void pokemonanimfunc_1D(struct Sprite *sprite) var = (sprite->data[2] * 512) / toDiv; var &= 0xFF; sprite->pos2.x = Sin(index, 8); - HandleSetAffineData(sprite, 0x100, 0x100, Sin(var, 3276)); + HandleSetAffineData(sprite, 256, 256, Sin(var, 3276)); } sprite->data[2]++; sub_817F70C(sprite); } -void sub_8180714(struct Sprite *sprite) +static void sub_8180714(struct Sprite *sprite) { s16 posY = 0; @@ -1870,7 +1888,7 @@ void sub_8180714(struct Sprite *sprite) if (sprite->data[2] > sprite->data[0] * 3) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.y = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -1885,7 +1903,7 @@ void sub_8180714(struct Sprite *sprite) posY = (256 - yScale) / 8; sprite->pos2.y = -(Sin(sprite->data[3], 10)) - posY; - HandleSetAffineData(sprite, 0x100 - Sin(sprite->data[4], 32), yScale, 0); + HandleSetAffineData(sprite, 256 - Sin(sprite->data[4], 32), yScale, 0); sprite->data[2]++; sprite->data[4] = (sprite->data[4] + 128 / sprite->data[0]) & 0xFF; } @@ -1893,20 +1911,20 @@ void sub_8180714(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_00(struct Sprite *sprite) +static void pokemonanimfunc_00(struct Sprite *sprite) { sprite->data[0] = 16; sub_8180714(sprite); sprite->callback = sub_8180714; } -void sub_8180828(struct Sprite *sprite) +static void sub_8180828(struct Sprite *sprite) { s16 posY = 0; if (sprite->data[2] > (128 / sprite->data[6]) * sprite->data[7]) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.y = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -1925,7 +1943,7 @@ void sub_8180828(struct Sprite *sprite) } } -void pokemonanimfunc_13(struct Sprite *sprite) +static void pokemonanimfunc_13(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1937,7 +1955,7 @@ void pokemonanimfunc_13(struct Sprite *sprite) sub_8180828(sprite); } -static const s8 gUnknown_0860AD8E[][8][3] = +static const s8 sUnknown_0860AD8E[][8][3] = { { {0, 8, 8}, @@ -1961,7 +1979,7 @@ static const s8 gUnknown_0860AD8E[][8][3] = }, }; -void sub_8180900(struct Sprite *sprite) +static void sub_8180900(struct Sprite *sprite) { s16 var; u8 structId; @@ -1972,10 +1990,10 @@ void sub_8180900(struct Sprite *sprite) sub_817F70C(sprite); structId = sprite->data[0]; - var = gUnknown_03001240[structId].field_6; - r9 = gUnknown_0860AD8E[gUnknown_03001240[structId].field_8][sprite->data[4]][0]; - r10 = gUnknown_0860AD8E[gUnknown_03001240[structId].field_8][sprite->data[4]][1] - r9; - arrId = gUnknown_03001240[structId].field_8; + var = sUnknown_03001240[structId].field_6; + r9 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][0]; + r10 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][1] - r9; + arrId = sUnknown_03001240[structId].field_8; r7 = sprite->data[3]; if (sprite->data[2] == 0) @@ -1984,9 +2002,9 @@ void sub_8180900(struct Sprite *sprite) sprite->data[2]++; } - if (gUnknown_0860AD8E[arrId][sprite->data[4]][2] == 0) + if (sUnknown_0860AD8E[arrId][sprite->data[4]][2] == 0) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.x = 0; sprite->pos2.y = 0; sub_817F77C(sprite); @@ -1996,13 +2014,13 @@ void sub_8180900(struct Sprite *sprite) { u16 rotation; - sprite->pos2.y = -(Sin(r7 * 128 / gUnknown_0860AD8E[arrId][sprite->data[4]][2], 10)); - sprite->pos2.x = (r10 * r7 / gUnknown_0860AD8E[arrId][sprite->data[4]][2]) + r9; + sprite->pos2.y = -(Sin(r7 * 128 / sUnknown_0860AD8E[arrId][sprite->data[4]][2], 10)); + sprite->pos2.x = (r10 * r7 / sUnknown_0860AD8E[arrId][sprite->data[4]][2]) + r9; rotation = -(var * sprite->pos2.x) / 8; - HandleSetAffineData(sprite, 0x100, 0x100, rotation); + HandleSetAffineData(sprite, 256, 256, rotation); - if (r7 == gUnknown_0860AD8E[arrId][sprite->data[4]][2]) + if (r7 == sUnknown_0860AD8E[arrId][sprite->data[4]][2]) { sprite->data[4]++; sprite->data[3] = 0; @@ -2016,16 +2034,16 @@ void sub_8180900(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_05(struct Sprite *sprite) +static void pokemonanimfunc_05(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 4096; - gUnknown_03001240[id].field_8 = sprite->data[6]; + sUnknown_03001240[id].field_6 = 4096; + sUnknown_03001240[id].field_8 = sprite->data[6]; sub_8180900(sprite); sprite->callback = sub_8180900; } -void pokemonanimfunc_20(struct Sprite *sprite) +static void pokemonanimfunc_20(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; @@ -2044,7 +2062,7 @@ void pokemonanimfunc_20(struct Sprite *sprite) sprite->data[2] += 2; } -void pokemonanimfunc_21(struct Sprite *sprite) +static void pokemonanimfunc_21(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; @@ -2063,7 +2081,7 @@ void pokemonanimfunc_21(struct Sprite *sprite) sprite->data[2] += 2; } -void pokemonanimfunc_22(struct Sprite *sprite) +static void pokemonanimfunc_22(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; @@ -2082,7 +2100,7 @@ void pokemonanimfunc_22(struct Sprite *sprite) sprite->data[2] += 2; } -void pokemonanimfunc_23(struct Sprite *sprite) +static void pokemonanimfunc_23(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; @@ -2101,7 +2119,7 @@ void pokemonanimfunc_23(struct Sprite *sprite) sprite->data[2] += 2; } -void pokemonanimfunc_24(struct Sprite *sprite) +static void pokemonanimfunc_24(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; @@ -2120,19 +2138,19 @@ void pokemonanimfunc_24(struct Sprite *sprite) sprite->data[2] += 2; } -void sub_8180CB4(struct Sprite *sprite); -void sub_8180CE8(struct Sprite *sprite); -void sub_8180D44(struct Sprite *sprite); -void sub_8180DC0(struct Sprite *sprite); -void sub_8180E28(struct Sprite *sprite); +static void sub_8180CB4(struct Sprite *sprite); +static void sub_8180CE8(struct Sprite *sprite); +static void sub_8180D44(struct Sprite *sprite); +static void sub_8180DC0(struct Sprite *sprite); +static void sub_8180E28(struct Sprite *sprite); -void pokemonanimfunc_25(struct Sprite *sprite) +static void pokemonanimfunc_25(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->callback = sub_8180CB4; } -void sub_8180CB4(struct Sprite *sprite) +static void sub_8180CB4(struct Sprite *sprite) { sub_817F70C(sprite); if (++sprite->pos2.x > 7) @@ -2144,7 +2162,7 @@ void sub_8180CB4(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180CE8(struct Sprite *sprite) +static void sub_8180CE8(struct Sprite *sprite) { sub_817F70C(sprite); @@ -2172,7 +2190,7 @@ void sub_8180CE8(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180D44(struct Sprite *sprite) +static void sub_8180D44(struct Sprite *sprite) { u8 rotation; @@ -2184,7 +2202,7 @@ void sub_8180D44(struct Sprite *sprite) if (++sprite->data[5] > sprite->data[6]) sprite->data[5] = sprite->data[6]; - HandleSetAffineData(sprite, 0x100, 0x100, rotation * 256); + HandleSetAffineData(sprite, 256, 256, rotation * 256); if (sprite->pos2.x < -8) { @@ -2198,7 +2216,7 @@ void sub_8180D44(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180DC0(struct Sprite *sprite) +static void sub_8180DC0(struct Sprite *sprite) { sub_817F70C(sprite); @@ -2208,7 +2226,7 @@ void sub_8180DC0(struct Sprite *sprite) if (sprite->data[2] < 0) sprite->data[2] = 0; - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[2] << 8); + HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8); if (sprite->data[2] == 0) sprite->callback = sub_8180E28; } @@ -2222,7 +2240,7 @@ void sub_8180DC0(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180E28(struct Sprite *sprite) +static void sub_8180E28(struct Sprite *sprite) { sub_817F70C(sprite); @@ -2237,18 +2255,18 @@ void sub_8180E28(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180E78(struct Sprite *sprite); -void sub_8180ED0(struct Sprite *sprite); -void sub_8180F2C(struct Sprite *sprite); +static void sub_8180E78(struct Sprite *sprite); +static void sub_8180ED0(struct Sprite *sprite); +static void sub_8180F2C(struct Sprite *sprite); -void pokemonanimfunc_26(struct Sprite *sprite) +static void pokemonanimfunc_26(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[3] = 0; sprite->callback = sub_8180E78; } -void sub_8180E78(struct Sprite *sprite) +static void sub_8180E78(struct Sprite *sprite) { sub_817F70C(sprite); sprite->pos2.x++; @@ -2267,7 +2285,7 @@ void sub_8180E78(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180ED0(struct Sprite *sprite) +static void sub_8180ED0(struct Sprite *sprite) { sub_817F70C(sprite); sprite->pos2.x = Cos(sprite->data[4], 16) - 8; @@ -2286,7 +2304,7 @@ void sub_8180ED0(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8180F2C(struct Sprite *sprite) +static void sub_8180F2C(struct Sprite *sprite) { sub_817F70C(sprite); @@ -2302,7 +2320,7 @@ void sub_8180F2C(struct Sprite *sprite) sprite->pos2.y = -(Sin(sprite->data[2], 5)) + 4; sprite->data[2] -= 4; rotation = sprite->data[2] - 32; - HandleSetAffineData(sprite, 0x100, 0x100, rotation * 512); + HandleSetAffineData(sprite, 256, 256, rotation * 512); if (sprite->data[2] <= 32) { @@ -2316,7 +2334,7 @@ void sub_8180F2C(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_27(struct Sprite *sprite) +static void pokemonanimfunc_27(struct Sprite *sprite) { if (sprite->data[3] > 0) { @@ -2335,17 +2353,17 @@ void pokemonanimfunc_27(struct Sprite *sprite) } } -void sub_8181024(struct Sprite *sprite); -void sub_8181068(struct Sprite *sprite); -void sub_81810C4(struct Sprite *sprite); +static void sub_8181024(struct Sprite *sprite); +static void sub_8181068(struct Sprite *sprite); +static void sub_81810C4(struct Sprite *sprite); -void pokemonanimfunc_28(struct Sprite *sprite) +static void pokemonanimfunc_28(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->callback = sub_8181024; } -void sub_8181024(struct Sprite *sprite) +static void sub_8181024(struct Sprite *sprite) { sub_817F70C(sprite); sprite->pos2.x--; @@ -2362,7 +2380,7 @@ void sub_8181024(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181068(struct Sprite *sprite) +static void sub_8181068(struct Sprite *sprite) { u32 rotation; @@ -2371,7 +2389,7 @@ void sub_8181068(struct Sprite *sprite) sprite->pos2.x = Cos(sprite->data[2], 22); sprite->pos2.y = -(Sin(sprite->data[2], 22)); rotation = sprite->data[2] - 32; - HandleSetAffineData(sprite, 0x100, 0x100, rotation * 512); + HandleSetAffineData(sprite, 256, 256, rotation * 512); if (sprite->data[2] <= 32) sprite->callback = sub_81810C4; @@ -2379,7 +2397,7 @@ void sub_8181068(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_81810C4(struct Sprite *sprite) +static void sub_81810C4(struct Sprite *sprite) { sub_817F70C(sprite); sprite->pos2.x--; @@ -2394,17 +2412,17 @@ void sub_81810C4(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181110(struct Sprite *sprite); -void sub_8181144(struct Sprite *sprite); -void sub_81811A4(struct Sprite *sprite); +static void sub_8181110(struct Sprite *sprite); +static void sub_8181144(struct Sprite *sprite); +static void sub_81811A4(struct Sprite *sprite); -void pokemonanimfunc_29(struct Sprite *sprite) +static void pokemonanimfunc_29(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->callback = sub_8181110; } -void sub_8181110(struct Sprite *sprite) +static void sub_8181110(struct Sprite *sprite) { sub_817F70C(sprite); sprite->pos2.x++; @@ -2419,7 +2437,7 @@ void sub_8181110(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181144(struct Sprite *sprite) +static void sub_8181144(struct Sprite *sprite) { sub_817F70C(sprite); sprite->data[2] += 16; @@ -2437,11 +2455,11 @@ void sub_8181144(struct Sprite *sprite) sprite->pos2.y += 2; } - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[2] << 8); + HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8); sub_817F70C(sprite); } -void sub_81811A4(struct Sprite *sprite) +static void sub_81811A4(struct Sprite *sprite) { sub_817F70C(sprite); sprite->pos2.x++; @@ -2458,21 +2476,21 @@ void sub_81811A4(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181214(struct Sprite *sprite); +static void sub_8181214(struct Sprite *sprite); -void pokemonanimfunc_2A(struct Sprite *sprite) +static void pokemonanimfunc_2A(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_2 = 2; + sUnknown_03001240[id].field_2 = 2; sub_8181214(sprite); sprite->callback = sub_8181214; } -void sub_8181214(struct Sprite *sprite) +static void sub_8181214(struct Sprite *sprite) { - if (gUnknown_03001240[sprite->data[0]].field_0 != 0) + if (sUnknown_03001240[sprite->data[0]].field_0 != 0) { - gUnknown_03001240[sprite->data[0]].field_0--; + sUnknown_03001240[sprite->data[0]].field_0--; } else { @@ -2481,7 +2499,7 @@ void sub_8181214(struct Sprite *sprite) { sprite->data[2]++; HandleStartAffineAnim(sprite); - sprite->data[7] = gUnknown_03001240[sprite->data[0]].field_2; + sprite->data[7] = sUnknown_03001240[sprite->data[0]].field_2; sprite->data[3] = -1; sprite->data[4] = -1; sprite->data[5] = 0; @@ -2508,12 +2526,12 @@ void sub_8181214(struct Sprite *sprite) { sprite->pos2.x = 0; sprite->pos2.y = 0; - if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sUnknown_03001240[sprite->data[0]].field_4 > 1) { - gUnknown_03001240[sprite->data[0]].field_4--; + sUnknown_03001240[sprite->data[0]].field_4--; sprite->data[5] = 0; sprite->data[6] = 0; - gUnknown_03001240[sprite->data[0]].field_0 = 10; + sUnknown_03001240[sprite->data[0]].field_0 = 10; } else { @@ -2522,14 +2540,14 @@ void sub_8181214(struct Sprite *sprite) } } - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[6] << 8); + HandleSetAffineData(sprite, 256, 256, sprite->data[6] << 8); sub_817F70C(sprite); } } -void sub_8181370(struct Sprite *sprite); +static void sub_8181370(struct Sprite *sprite); -void pokemonanimfunc_2B(struct Sprite *sprite) +static void pokemonanimfunc_2B(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[6] = 0; @@ -2537,7 +2555,7 @@ void pokemonanimfunc_2B(struct Sprite *sprite) sprite->callback = sub_8181370; } -void sub_8181370(struct Sprite *sprite) +static void sub_8181370(struct Sprite *sprite) { sub_817F70C(sprite); sprite->data[6] += 4; @@ -2545,12 +2563,12 @@ void sub_8181370(struct Sprite *sprite) sprite->pos2.y = -(Sin((sprite->data[6] * 2) & 0xFF, 8)); if (sprite->data[6] > 192 && sprite->data[7] == 1) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->data[7]++; } else if (sprite->data[6] > 64 && sprite->data[7] == 0) { - HandleSetAffineData(sprite, -0x100, 0x100, 0); + HandleSetAffineData(sprite, -256, 256, 0); sprite->data[7]++; } @@ -2558,14 +2576,14 @@ void sub_8181370(struct Sprite *sprite) { sprite->pos2.x = 0; sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } sub_817F70C(sprite); } -void pokemonanimfunc_2C(struct Sprite *sprite) +static void pokemonanimfunc_2C(struct Sprite *sprite) { if (++sprite->data[2] == 1) { @@ -2575,7 +2593,7 @@ void pokemonanimfunc_2C(struct Sprite *sprite) sprite->data[4] = 0; } - if (gUnknown_0860AA64[sprite->data[6]][1] == 0xFF) + if (sUnknown_0860AA64[sprite->data[6]][1] == 0xFF) { sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -2583,7 +2601,7 @@ void pokemonanimfunc_2C(struct Sprite *sprite) { if (sprite->data[4] == 1) { - if (gUnknown_0860AA64[sprite->data[6]][0] != 0) + if (sUnknown_0860AA64[sprite->data[6]][0] != 0) BlendPalette(sprite->data[7], 0x10, 0x10, 0x3FF); else BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); @@ -2591,7 +2609,7 @@ void pokemonanimfunc_2C(struct Sprite *sprite) sprite->data[4] = 0; } - if (gUnknown_0860AA64[sprite->data[6]][1] == sprite->data[5]) + if (sUnknown_0860AA64[sprite->data[6]][1] == sprite->data[5]) { sprite->data[4] = 1; sprite->data[5] = 0; @@ -2604,19 +2622,19 @@ void pokemonanimfunc_2C(struct Sprite *sprite) } } -void sub_81814D4(struct Sprite *sprite) +static void sub_81814D4(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); sub_817F70C(sprite); - if (sprite->data[2] > gUnknown_03001240[sprite->data[0]].field_8) + if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.x = 0; - if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sUnknown_03001240[sprite->data[0]].field_4 > 1) { - gUnknown_03001240[sprite->data[0]].field_4--; + sUnknown_03001240[sprite->data[0]].field_4--; sprite->data[2] = 0; } else @@ -2627,36 +2645,36 @@ void sub_81814D4(struct Sprite *sprite) } else { - s16 index = (sprite->data[2] * 256) / gUnknown_03001240[sprite->data[0]].field_8; + s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8; sprite->pos2.x = -(Sin(index, 10)); - HandleSetAffineData(sprite, 0x100, 0x100, Sin(index, 3276)); + HandleSetAffineData(sprite, 256, 256, Sin(index, 3276)); } sprite->data[2]++; sub_817F70C(sprite); } -void pokemonanimfunc_2D(struct Sprite *sprite) +static void pokemonanimfunc_2D(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 50; + sUnknown_03001240[id].field_8 = 50; sub_81814D4(sprite); sprite->callback = sub_81814D4; } -void sub_81815D4(struct Sprite *sprite) +static void sub_81815D4(struct Sprite *sprite) { if (sprite->data[2] == 0) HandleStartAffineAnim(sprite); sub_817F70C(sprite); - if (sprite->data[2] > gUnknown_03001240[sprite->data[0]].field_8) + if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.x = 0; - if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sUnknown_03001240[sprite->data[0]].field_4 > 1) { - gUnknown_03001240[sprite->data[0]].field_4--; + sUnknown_03001240[sprite->data[0]].field_4--; sprite->data[2] = 0; } else @@ -2667,28 +2685,28 @@ void sub_81815D4(struct Sprite *sprite) } else { - s16 index = (sprite->data[2] * 256) / gUnknown_03001240[sprite->data[0]].field_8; + s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8; sprite->pos2.x = -(Sin(index, 10)); - HandleSetAffineData(sprite, 0x100, 0x100, -(Sin(index, 3276))); + HandleSetAffineData(sprite, 256, 256, -(Sin(index, 3276))); } sprite->data[2]++; sub_817F70C(sprite); } -void pokemonanimfunc_2E(struct Sprite *sprite) +static void pokemonanimfunc_2E(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 50; + sUnknown_03001240[id].field_8 = 50; sub_81815D4(sprite); sprite->callback = sub_81815D4; } -void sub_8181708(struct Sprite *sprite); -void sub_8181770(struct Sprite *sprite); -void sub_8181794(struct Sprite *sprite); +static void sub_8181708(struct Sprite *sprite); +static void sub_8181770(struct Sprite *sprite); +static void sub_8181794(struct Sprite *sprite); -void pokemonanimfunc_2F(struct Sprite *sprite) +static void pokemonanimfunc_2F(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[6] = -(14 * sprite->centerToCornerVecX / 10); @@ -2696,7 +2714,7 @@ void pokemonanimfunc_2F(struct Sprite *sprite) sprite->callback = sub_8181708; } -void sub_8181708(struct Sprite *sprite) +static void sub_8181708(struct Sprite *sprite) { sub_817F70C(sprite); sprite->data[7]--; @@ -2704,7 +2722,7 @@ void sub_8181708(struct Sprite *sprite) sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match - HandleSetAffineData(sprite, 0x100, 0x100, (sprite->data[7] - 128) << 8); + HandleSetAffineData(sprite, 256, 256, (sprite->data[7] - 128) << 8); if (sprite->data[7] <= 120) { sprite->data[7] = 120; @@ -2715,7 +2733,7 @@ void sub_8181708(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181770(struct Sprite *sprite) +static void sub_8181770(struct Sprite *sprite) { if (sprite->data[3] == 20) { @@ -2726,7 +2744,7 @@ void sub_8181770(struct Sprite *sprite) sprite->data[3]++; } -void sub_8181794(struct Sprite *sprite) +static void sub_8181794(struct Sprite *sprite) { sub_817F70C(sprite); sprite->data[7] += 2; @@ -2734,12 +2752,12 @@ void sub_8181794(struct Sprite *sprite) sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match - HandleSetAffineData(sprite, 0x100, 0x100, (sprite->data[7] - 128) << 8); + HandleSetAffineData(sprite, 256, 256, (sprite->data[7] - 128) << 8); if (sprite->data[7] >= 128) { sprite->pos2.x = 0; sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->data[2] = 0; sub_817F77C(sprite); sprite->callback = pokemonanimfunc_10; @@ -2748,11 +2766,11 @@ void sub_8181794(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181810(struct Sprite *sprite) +static void sub_8181810(struct Sprite *sprite) { - if (gUnknown_03001240[sprite->data[0]].field_0 != 0) + if (sUnknown_03001240[sprite->data[0]].field_0 != 0) { - gUnknown_03001240[sprite->data[0]].field_0--; + sUnknown_03001240[sprite->data[0]].field_0--; } else { @@ -2769,7 +2787,7 @@ void sub_8181810(struct Sprite *sprite) sprite->data[7] = Sin(sprite->data[4], 256); sprite->pos2.y = Sin(sprite->data[4], 16); sprite->data[6] = Sin(sprite->data[4], 32); - HandleSetAffineData(sprite, 0x100 - sprite->data[6], 0x100 + sprite->data[7], 0); + HandleSetAffineData(sprite, 256 - sprite->data[6], 256 + sprite->data[7], 0); if (sprite->data[4] == 128) { sprite->data[4] = 0; @@ -2781,38 +2799,38 @@ void sub_8181810(struct Sprite *sprite) sprite->data[7] = Sin(sprite->data[4], 32); sprite->pos2.y = -(Sin(sprite->data[4], 8)); sprite->data[6] = Sin(sprite->data[4], 128); - HandleSetAffineData(sprite, 0x100 + sprite->data[6], 0x100 - sprite->data[7], 0); + HandleSetAffineData(sprite, 256 + sprite->data[6], 256 - sprite->data[7], 0); if (sprite->data[4] == 128) { - if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sUnknown_03001240[sprite->data[0]].field_4 > 1) { - gUnknown_03001240[sprite->data[0]].field_4--; - gUnknown_03001240[sprite->data[0]].field_0 = 10; + sUnknown_03001240[sprite->data[0]].field_4--; + sUnknown_03001240[sprite->data[0]].field_0 = 10; sprite->data[4] = 0; sprite->data[5] = 0; } else { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } } } - sprite->data[4] += gUnknown_03001240[sprite->data[0]].field_6; + sprite->data[4] += sUnknown_03001240[sprite->data[0]].field_6; } } -void pokemonanimfunc_30(struct Sprite *sprite) +static void pokemonanimfunc_30(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 4; + sUnknown_03001240[id].field_6 = 4; sub_8181810(sprite); sprite->callback = sub_8181810; } -void pokemonanimfunc_31(struct Sprite *sprite) +static void pokemonanimfunc_31(struct Sprite *sprite) { s32 counter = sprite->data[2]; sub_817F70C(sprite); @@ -2847,25 +2865,25 @@ void pokemonanimfunc_31(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181ABC(struct Sprite *sprite); -void sub_8181B4C(struct Sprite *sprite); -void sub_8181C2C(struct Sprite *sprite); +static void sub_8181ABC(struct Sprite *sprite); +static void sub_8181B4C(struct Sprite *sprite); +static void sub_8181C2C(struct Sprite *sprite); -void pokemonanimfunc_32(struct Sprite *sprite) +static void pokemonanimfunc_32(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = -1; + sUnknown_03001240[id].field_8 = -1; HandleStartAffineAnim(sprite); sprite->data[3] = 0; sub_8181ABC(sprite); sprite->callback = sub_8181ABC; } -void sub_8181ABC(struct Sprite *sprite) +static void sub_8181ABC(struct Sprite *sprite) { - if (gUnknown_03001240[sprite->data[0]].field_0 != 0) + if (sUnknown_03001240[sprite->data[0]].field_0 != 0) { - gUnknown_03001240[sprite->data[0]].field_0--; + sUnknown_03001240[sprite->data[0]].field_0--; } else { @@ -2880,7 +2898,7 @@ void sub_8181ABC(struct Sprite *sprite) } else { - s32 var = 8 * gUnknown_03001240[sprite->data[0]].field_8; + s32 var = 8 * sUnknown_03001240[sprite->data[0]].field_8; sprite->pos2.x = var * (counter % 128) / 128; sprite->pos2.y = -(Sin(counter % 128, 8)); sprite->data[2] += 12; @@ -2890,12 +2908,12 @@ void sub_8181ABC(struct Sprite *sprite) } } -void sub_8181B4C(struct Sprite *sprite) +static void sub_8181B4C(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 48) { - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->pos2.y = 0; sprite->data[2] = 0; sprite->callback = sub_8181C2C; @@ -2907,7 +2925,7 @@ void sub_8181B4C(struct Sprite *sprite) if (sprite->data[2] >= 16 && sprite->data[2] <= 31) { sprite->data[3] += 8; - sprite->pos2.x -= gUnknown_03001240[sprite->data[0]].field_8; + sprite->pos2.x -= sUnknown_03001240[sprite->data[0]].field_8; } yDelta = 0; @@ -2924,7 +2942,7 @@ void sub_8181B4C(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181C2C(struct Sprite *sprite) +static void sub_8181C2C(struct Sprite *sprite) { s32 counter; @@ -2932,10 +2950,10 @@ void sub_8181C2C(struct Sprite *sprite) counter = sprite->data[2]; if (counter > 128) { - if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + if (sUnknown_03001240[sprite->data[0]].field_4 > 1) { - gUnknown_03001240[sprite->data[0]].field_4--; - gUnknown_03001240[sprite->data[0]].field_0 = 10; + sUnknown_03001240[sprite->data[0]].field_4--; + sUnknown_03001240[sprite->data[0]].field_0 = 10; sprite->data[3] = 0; sprite->data[2] = 0; sprite->data[4] = 0; @@ -2952,9 +2970,9 @@ void sub_8181C2C(struct Sprite *sprite) } else { - register s32 var asm("r4") = gUnknown_03001240[sprite->data[0]].field_8; + register s32 var asm("r4") = sUnknown_03001240[sprite->data[0]].field_8; - sprite->pos2.x = (var << 3) * (counter % 128) / 128 - (gUnknown_03001240[sprite->data[0]].field_8 * 8); + sprite->pos2.x = (var << 3) * (counter % 128) / 128 - (sUnknown_03001240[sprite->data[0]].field_8 * 8); sprite->pos2.y = -(Sin(counter % 128, 8)); } @@ -2962,7 +2980,7 @@ void sub_8181C2C(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181CE8(struct Sprite *sprite) +static void sub_8181CE8(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -2975,10 +2993,10 @@ void sub_8181CE8(struct Sprite *sprite) { sprite->pos2.x = 0; sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); - if (gUnknown_03001240[sprite->data[0]].field_4 > 1) + HandleSetAffineData(sprite, 256, 256, 0); + if (sUnknown_03001240[sprite->data[0]].field_4 > 1) { - gUnknown_03001240[sprite->data[0]].field_4--; + sUnknown_03001240[sprite->data[0]].field_4--; sprite->data[2] = 0; sprite->data[7] = 0; } @@ -2996,21 +3014,21 @@ void sub_8181CE8(struct Sprite *sprite) sprite->pos2.x = -(Sin(sprite->data[7], 16)); rotation = Sin(sprite->data[7], 32); - HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8); - sprite->data[7] += gUnknown_03001240[sprite->data[0]].field_6; + HandleSetAffineData(sprite, 256, 256, rotation << 8); + sprite->data[7] += sUnknown_03001240[sprite->data[0]].field_6; sub_817F70C(sprite); } } -void pokemonanimfunc_33(struct Sprite *sprite) +static void pokemonanimfunc_33(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 4; + sUnknown_03001240[id].field_6 = 4; sub_8181CE8(sprite); sprite->callback = sub_8181CE8; } -void pokemonanimfunc_34(struct Sprite *sprite) +static void pokemonanimfunc_34(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3023,7 +3041,7 @@ void pokemonanimfunc_34(struct Sprite *sprite) { sprite->pos2.x = 0; sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; sub_817F70C(sprite); @@ -3035,13 +3053,13 @@ void pokemonanimfunc_34(struct Sprite *sprite) sprite->pos2.x = -(Sin(sprite->data[7], 16)); sprite->pos2.y = -(Sin(sprite->data[7] % 128, 16)); rotation = Sin(sprite->data[7], 32); - HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8); + HandleSetAffineData(sprite, 256, 256, rotation << 8); sprite->data[7] += 8; sub_817F70C(sprite); } } -void pokemonanimfunc_35(struct Sprite *sprite) +static void pokemonanimfunc_35(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[7] = 0; @@ -3065,18 +3083,18 @@ void pokemonanimfunc_35(struct Sprite *sprite) } } -void sub_8181F14(struct Sprite *sprite); -void sub_8181F50(struct Sprite *sprite); -void sub_8181FC0(struct Sprite *sprite); +static void sub_8181F14(struct Sprite *sprite); +static void sub_8181F50(struct Sprite *sprite); +static void sub_8181FC0(struct Sprite *sprite); -void pokemonanimfunc_36(struct Sprite *sprite) +static void pokemonanimfunc_36(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 0; sprite->callback = sub_8181F14; } -void sub_8181F14(struct Sprite *sprite) +static void sub_8181F14(struct Sprite *sprite) { if (sprite->data[7] > 31) { @@ -3089,10 +3107,10 @@ void sub_8181F14(struct Sprite *sprite) sprite->data[7] += 4; } - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[7] << 8); + HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8); } -void sub_8181F50(struct Sprite *sprite) +static void sub_8181F50(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 512) @@ -3110,7 +3128,7 @@ void sub_8181F50(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_8181FC0(struct Sprite *sprite) +static void sub_8181FC0(struct Sprite *sprite) { sub_817F70C(sprite); sprite->data[7] -= 2; @@ -3126,11 +3144,11 @@ void sub_8181FC0(struct Sprite *sprite) sprite->pos2.x = -(Sin(sprite->data[7] * 2, 16)); } - HandleSetAffineData(sprite, 0x100, 0x100, sprite->data[7] << 8); + HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8); sub_817F70C(sprite); } -void pokemonanimfunc_37(struct Sprite *sprite) +static void pokemonanimfunc_37(struct Sprite *sprite) { u16 rotation; @@ -3158,16 +3176,16 @@ void pokemonanimfunc_37(struct Sprite *sprite) } rotation = Sin(sprite->data[7] % 128, 16); - HandleSetAffineData(sprite, 0x100, 0x100, rotation << 8); + HandleSetAffineData(sprite, 256, 256, rotation << 8); sub_817F70C(sprite); } -void sub_81820FC(struct Sprite *sprite); -void sub_818216C(struct Sprite *sprite); -void sub_81821CC(struct Sprite *sprite); -void sub_8182248(struct Sprite *sprite); +static void sub_81820FC(struct Sprite *sprite); +static void sub_818216C(struct Sprite *sprite); +static void sub_81821CC(struct Sprite *sprite); +static void sub_8182248(struct Sprite *sprite); -void pokemonanimfunc_38(struct Sprite *sprite) +static void pokemonanimfunc_38(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->data[7] = 0; @@ -3175,7 +3193,7 @@ void pokemonanimfunc_38(struct Sprite *sprite) sprite->callback = sub_81820FC; } -void sub_81820FC(struct Sprite *sprite) +static void sub_81820FC(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[7] > 24) @@ -3193,11 +3211,11 @@ void sub_81820FC(struct Sprite *sprite) sprite->pos2.y = -(Sin(sprite->data[7], 8)); } - HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); sub_817F70C(sprite); } -void sub_818216C(struct Sprite *sprite) +static void sub_818216C(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[7] > 32) @@ -3212,11 +3230,11 @@ void sub_818216C(struct Sprite *sprite) sprite->pos2.y = -(Sin(sprite->data[7], 8)); } - HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); sub_817F70C(sprite); } -void sub_81821CC(struct Sprite *sprite) +static void sub_81821CC(struct Sprite *sprite) { sub_817F70C(sprite); sprite->data[7] += (sprite->data[6] * 4); @@ -3234,11 +3252,11 @@ void sub_81821CC(struct Sprite *sprite) sprite->data[5]++; } - HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); sub_817F70C(sprite); } -void sub_8182248(struct Sprite *sprite) +static void sub_8182248(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[7] <= 0) @@ -3254,11 +3272,11 @@ void sub_8182248(struct Sprite *sprite) sprite->pos2.y = -(Sin(sprite->data[7], 8)); } - HandleSetAffineData(sprite, 0x100, 0x100, -(sprite->data[7]) << 8); + HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8); sub_817F70C(sprite); } -void pokemonanimfunc_39(struct Sprite *sprite) +static void pokemonanimfunc_39(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 40) @@ -3290,7 +3308,7 @@ void pokemonanimfunc_39(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_3A(struct Sprite *sprite) +static void pokemonanimfunc_3A(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -3309,7 +3327,7 @@ void pokemonanimfunc_3A(struct Sprite *sprite) { s16 scale = (8 * sprite->data[6]) / 20; scale = Sin(sprite->data[7] - scale, 64); - HandleSetAffineData(sprite, 0x100 - scale, 0x100 - scale, 0); + HandleSetAffineData(sprite, 256 - scale, 256 - scale, 0); } } else @@ -3321,7 +3339,7 @@ void pokemonanimfunc_3A(struct Sprite *sprite) if (sprite->data[7] > 63) { sprite->data[7] = 64; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -3352,13 +3370,13 @@ void pokemonanimfunc_3A(struct Sprite *sprite) } sprite->data[7] += 2; - HandleSetAffineData(sprite, 0x100 - var, 0x100 - var, 0); + HandleSetAffineData(sprite, 256 - var, 256 - var, 0); } sub_817F70C(sprite); } -void pokemonanimfunc_3B(struct Sprite *sprite) +static void pokemonanimfunc_3B(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3370,7 +3388,7 @@ void pokemonanimfunc_3B(struct Sprite *sprite) if (sprite->data[7] > 512) { sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -3381,11 +3399,11 @@ void pokemonanimfunc_3B(struct Sprite *sprite) sprite->pos2.y = Sin(sprite->data[7] % 256, 8); sprite->data[7] += 8; yScale = Sin(sprite->data[7] % 128, 96); - HandleSetAffineData(sprite, 0x100, yScale + 0x100, 0); + HandleSetAffineData(sprite, 256, yScale + 256, 0); } } -void pokemonanimfunc_3C(struct Sprite *sprite) +static void pokemonanimfunc_3C(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3397,7 +3415,7 @@ void pokemonanimfunc_3C(struct Sprite *sprite) if (sprite->data[7] > 256) { sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } @@ -3408,22 +3426,22 @@ void pokemonanimfunc_3C(struct Sprite *sprite) sprite->pos2.y = Sin(sprite->data[7], 16); sprite->data[7] += 4; yScale = Sin((sprite->data[7] % 64) * 2, 128); - HandleSetAffineData(sprite, 0x100, yScale + 0x100, 0); + HandleSetAffineData(sprite, 256, yScale + 256, 0); } } -void sub_81825F8(struct Sprite *sprite); -void sub_8182648(struct Sprite *sprite); -void sub_81826F8(struct Sprite *sprite); +static void sub_81825F8(struct Sprite *sprite); +static void sub_8182648(struct Sprite *sprite); +static void sub_81826F8(struct Sprite *sprite); -void pokemonanimfunc_3D(struct Sprite *sprite) +static void pokemonanimfunc_3D(struct Sprite *sprite) { HandleStartAffineAnim(sprite); sprite->callback = sub_81825F8; sprite->data[7] = 0; } -void sub_81825F8(struct Sprite *sprite) +static void sub_81825F8(struct Sprite *sprite) { s16 yScale; @@ -3440,10 +3458,10 @@ void sub_81825F8(struct Sprite *sprite) yScale = Sin(sprite->data[7], 128); } - HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0); + HandleSetAffineData(sprite, 256, 256 + yScale, 0); } -void sub_8182648(struct Sprite *sprite) +static void sub_8182648(struct Sprite *sprite) { s16 yScale; @@ -3473,7 +3491,7 @@ void sub_8182648(struct Sprite *sprite) yScale = Cos((index * 2) + sprite->data[7], 128) * sign; } - HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0); + HandleSetAffineData(sprite, 256, 256 + yScale, 0); if (sprite->data[6] == 3) { sprite->data[7] = 0; @@ -3481,7 +3499,7 @@ void sub_8182648(struct Sprite *sprite) } } -void sub_81826F8(struct Sprite *sprite) +static void sub_81826F8(struct Sprite *sprite) { s16 yScale; @@ -3493,20 +3511,20 @@ void sub_81826F8(struct Sprite *sprite) sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; sprite->pos2.y = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); } - HandleSetAffineData(sprite, 0x100, 0x100 + yScale, 0); + HandleSetAffineData(sprite, 256, 256 + yScale, 0); } -void sub_8182764(struct Sprite *sprite) +static void sub_8182764(struct Sprite *sprite) { if (sprite->data[7] > sprite->data[5]) { sprite->pos2.x = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); } else { @@ -3515,11 +3533,11 @@ void sub_8182764(struct Sprite *sprite) sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]); sprite->data[7] += sprite->data[6]; xScale = Sin(sprite->data[7] % 128, 96); - HandleSetAffineData(sprite, 0x100 + xScale, 0x100, 0); + HandleSetAffineData(sprite, 256 + xScale, 256, 0); } } -void pokemonanimfunc_3E(struct Sprite *sprite) +static void pokemonanimfunc_3E(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3534,14 +3552,14 @@ void pokemonanimfunc_3E(struct Sprite *sprite) sub_8182764(sprite); } -void sub_8182830(struct Sprite *sprite) +static void sub_8182830(struct Sprite *sprite) { if (sprite->data[7] > sprite->data[5]) { sprite->pos2.x = 0; sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); } else { @@ -3550,11 +3568,11 @@ void sub_8182830(struct Sprite *sprite) sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]); sprite->data[7] += sprite->data[6]; xScale = Sin((sprite->data[7] % 64) * 2, 128); - HandleSetAffineData(sprite, 0x100 + xScale, 0x100, 0); + HandleSetAffineData(sprite, 256 + xScale, 256, 0); } } -void pokemonanimfunc_3F(struct Sprite *sprite) +static void pokemonanimfunc_3F(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -3569,7 +3587,7 @@ void pokemonanimfunc_3F(struct Sprite *sprite) sub_8182830(sprite); } -void pokemonanimfunc_40(struct Sprite *sprite) +static void pokemonanimfunc_40(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -3583,7 +3601,7 @@ void pokemonanimfunc_40(struct Sprite *sprite) { sprite->pos2.x = 0; sub_817F77C(sprite); - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else @@ -3593,13 +3611,13 @@ void pokemonanimfunc_40(struct Sprite *sprite) sprite->pos2.x = Sin(sprite->data[7] % 256, 8); sprite->data[7] += 8; scale = Sin(sprite->data[7] % 128, 96); - HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0); + HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0); } sub_817F70C(sprite); } -void pokemonanimfunc_41(struct Sprite *sprite) +static void pokemonanimfunc_41(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -3613,7 +3631,7 @@ void pokemonanimfunc_41(struct Sprite *sprite) { sprite->pos2.x = 0; sub_817F77C(sprite); - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else @@ -3623,13 +3641,13 @@ void pokemonanimfunc_41(struct Sprite *sprite) sprite->pos2.x = -(Sin((sprite->data[7] % 256) / 2, 16)); sprite->data[7] += 8; scale = -(Sin((sprite->data[7] % 256) / 2, 64)); - HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0); + HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0); } sub_817F70C(sprite); } -void pokemonanimfunc_42(struct Sprite *sprite) +static void pokemonanimfunc_42(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -3643,7 +3661,7 @@ void pokemonanimfunc_42(struct Sprite *sprite) { sprite->pos2.x = 0; sub_817F77C(sprite); - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else @@ -3653,13 +3671,13 @@ void pokemonanimfunc_42(struct Sprite *sprite) sprite->pos2.x = -(Sin(sprite->data[7] % 256 , 8)); sprite->data[7] += 8; scale = Sin((sprite->data[7] % 256) / 2, 96); - HandleSetAffineData(sprite, 0x100 + scale, 0x100 + scale, 0); + HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0); } sub_817F70C(sprite); } -void pokemonanimfunc_43(struct Sprite *sprite) +static void pokemonanimfunc_43(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 2048) @@ -3693,7 +3711,7 @@ void pokemonanimfunc_43(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_44(struct Sprite *sprite) +static void pokemonanimfunc_44(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -3750,50 +3768,50 @@ void pokemonanimfunc_44(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_45(struct Sprite *sprite) +static void pokemonanimfunc_45(struct Sprite *sprite) { sprite->data[0] = 32; sub_8180714(sprite); sprite->callback = sub_8180714; } -void pokemonanimfunc_46(struct Sprite *sprite) +static void pokemonanimfunc_46(struct Sprite *sprite) { sprite->data[0] = 80; sub_817F8FC(sprite); sprite->callback = sub_817F8FC; } -void pokemonanimfunc_47(struct Sprite *sprite) +static void pokemonanimfunc_47(struct Sprite *sprite) { sprite->data[0] = 80; sub_817F978(sprite); sprite->callback = sub_817F978; } -void pokemonanimfunc_48(struct Sprite *sprite) +static void pokemonanimfunc_48(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 2048; - gUnknown_03001240[id].field_8 = sprite->data[6]; + sUnknown_03001240[id].field_6 = 2048; + sUnknown_03001240[id].field_8 = sprite->data[6]; sub_8180900(sprite); sprite->callback = sub_8180900; } -void pokemonanimfunc_49(struct Sprite *sprite) +static void pokemonanimfunc_49(struct Sprite *sprite) { sprite->data[6] = 1; pokemonanimfunc_05(sprite); } -void pokemonanimfunc_4A(struct Sprite *sprite) +static void pokemonanimfunc_4A(struct Sprite *sprite) { sprite->data[6] = 1; pokemonanimfunc_48(sprite); } -void pokemonanimfunc_4B(struct Sprite *sprite) +static void pokemonanimfunc_4B(struct Sprite *sprite) { if (sprite->data[2] == 0) sprite->data[0] = 0; @@ -3809,7 +3827,7 @@ void pokemonanimfunc_4B(struct Sprite *sprite) } } -void pokemonanimfunc_4C(struct Sprite *sprite) +static void pokemonanimfunc_4C(struct Sprite *sprite) { sprite->data[0] = 30; sprite->data[7] = 3; @@ -3817,156 +3835,156 @@ void pokemonanimfunc_4C(struct Sprite *sprite) sprite->callback = sub_817FCDC; } -void pokemonanimfunc_4D(struct Sprite *sprite) +static void pokemonanimfunc_4D(struct Sprite *sprite) { sprite->data[0] = 30; sub_817FD44(sprite); sprite->callback = sub_817FD44; } -void pokemonanimfunc_4E(struct Sprite *sprite) +static void pokemonanimfunc_4E(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 1024; - gUnknown_03001240[id].field_0 = 0; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_6 = 1024; + sUnknown_03001240[id].field_0 = 0; + sUnknown_03001240[id].field_4 = 2; sub_817FE30(sprite); sprite->callback = sub_817FE30; } -void pokemonanimfunc_4F(struct Sprite *sprite) +static void pokemonanimfunc_4F(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 512; - gUnknown_03001240[id].field_8 = 3; - gUnknown_03001240[id].field_2 = 12; + sUnknown_03001240[id].field_6 = 512; + sUnknown_03001240[id].field_8 = 3; + sUnknown_03001240[id].field_2 = 12; sub_817FFF0(sprite); sprite->callback = sub_817FFF0; } -void pokemonanimfunc_50(struct Sprite *sprite) +static void pokemonanimfunc_50(struct Sprite *sprite) { sprite->data[0] = 24; sub_818031C(sprite); sprite->callback = sub_818031C; } -void pokemonanimfunc_51(struct Sprite *sprite) +static void pokemonanimfunc_51(struct Sprite *sprite) { sprite->data[0] = 5; sub_81804F8(sprite); sprite->callback = sub_81804F8; } -void pokemonanimfunc_52(struct Sprite *sprite) +static void pokemonanimfunc_52(struct Sprite *sprite) { sprite->data[0] = 3; sub_817F9F4(sprite); sprite->callback = sub_817F9F4; } -void pokemonanimfunc_53(struct Sprite *sprite) +static void pokemonanimfunc_53(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_0 = 60; - gUnknown_03001240[id].field_8 = 30; + sUnknown_03001240[id].field_0 = 60; + sUnknown_03001240[id].field_8 = 30; sub_817FF3C(sprite); sprite->callback = sub_817FF3C; } -void pokemonanimfunc_54(struct Sprite *sprite) +static void pokemonanimfunc_54(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_2 = 1; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_2 = 1; + sUnknown_03001240[id].field_4 = 2; sub_8181214(sprite); sprite->callback = sub_8181214; } -void pokemonanimfunc_55(struct Sprite *sprite) +static void pokemonanimfunc_55(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 4; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_6 = 4; + sUnknown_03001240[id].field_4 = 2; sub_8181810(sprite); sprite->callback = sub_8181810; } -void pokemonanimfunc_56(struct Sprite *sprite) +static void pokemonanimfunc_56(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 1; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_8 = 1; + sUnknown_03001240[id].field_4 = 2; HandleStartAffineAnim(sprite); sprite->data[3] = 0; sub_8181ABC(sprite); sprite->callback = sub_8181ABC; } -void pokemonanimfunc_07(struct Sprite *sprite) +static void pokemonanimfunc_07(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 2; + sUnknown_03001240[id].field_6 = 2; sub_8181CE8(sprite); sprite->callback = sub_8181CE8; } -void pokemonanimfunc_08(struct Sprite *sprite) +static void pokemonanimfunc_08(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 4; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_6 = 4; + sUnknown_03001240[id].field_4 = 2; sub_8181CE8(sprite); sprite->callback = sub_8181CE8; } -void pokemonanimfunc_0B(struct Sprite *sprite) +static void pokemonanimfunc_0B(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 100; + sUnknown_03001240[id].field_8 = 100; sub_81814D4(sprite); sprite->callback = sub_81814D4; } -void pokemonanimfunc_0C(struct Sprite *sprite) +static void pokemonanimfunc_0C(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 50; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_8 = 50; + sUnknown_03001240[id].field_4 = 2; sub_81814D4(sprite); sprite->callback = sub_81814D4; } -void pokemonanimfunc_0D(struct Sprite *sprite) +static void pokemonanimfunc_0D(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 100; + sUnknown_03001240[id].field_8 = 100; sub_81815D4(sprite); sprite->callback = sub_81815D4; } -void pokemonanimfunc_0E(struct Sprite *sprite) +static void pokemonanimfunc_0E(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_8 = 50; - gUnknown_03001240[id].field_4 = 2; + sUnknown_03001240[id].field_8 = 50; + sUnknown_03001240[id].field_4 = 2; sub_81815D4(sprite); sprite->callback = sub_81815D4; } -void sub_8183140(struct Sprite *sprite) +static void sub_8183140(struct Sprite *sprite) { s32 counter = sprite->data[2]; if (counter > 2304) @@ -3982,7 +4000,7 @@ void sub_8183140(struct Sprite *sprite) sprite->data[2] += sprite->data[0]; } -void pokemonanimfunc_57(struct Sprite *sprite) +static void pokemonanimfunc_57(struct Sprite *sprite) { sprite->data[0] = 60; sprite->data[7] = 3; @@ -3990,7 +4008,7 @@ void pokemonanimfunc_57(struct Sprite *sprite) sprite->callback = sub_8183140; } -void pokemonanimfunc_58(struct Sprite *sprite) +static void pokemonanimfunc_58(struct Sprite *sprite) { sprite->data[0] = 30; sprite->data[7] = 3; @@ -3998,7 +4016,7 @@ void pokemonanimfunc_58(struct Sprite *sprite) sprite->callback = sub_8183140; } -void pokemonanimfunc_59(struct Sprite *sprite) +static void pokemonanimfunc_59(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 2048) @@ -4032,7 +4050,7 @@ void pokemonanimfunc_59(struct Sprite *sprite) sub_817F70C(sprite); } -void sub_81832C8(struct Sprite *sprite) +static void sub_81832C8(struct Sprite *sprite) { s16 index1 = 0, index2 = 0; @@ -4040,7 +4058,7 @@ void sub_81832C8(struct Sprite *sprite) { sprite->pos2.y = 0; sprite->data[5] = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); if (sprite->data[4] <= 1) { sub_817F77C(sprite); @@ -4067,18 +4085,18 @@ void sub_81832C8(struct Sprite *sprite) } if (sprite->data[1] == 0) - xScale = -0x100 - Sin(index2, 16); + xScale = -256 - Sin(index2, 16); else - xScale = 0x100 + Sin(index2, 16); + xScale = 256 + Sin(index2, 16); amplitude = sprite->data[3]; - yScale = 0x100 - Sin(index2, amplitude) - Sin(index1, amplitude / 5); + yScale = 256 - Sin(index2, amplitude) - Sin(index1, amplitude / 5); SetAffineData(sprite, xScale, yScale, 0); sprite->data[5]++; } } -void pokemonanimfunc_5A(struct Sprite *sprite) +static void pokemonanimfunc_5A(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4094,14 +4112,14 @@ void pokemonanimfunc_5A(struct Sprite *sprite) sub_81832C8(sprite); } -void sub_8183418(struct Sprite *sprite) +static void sub_8183418(struct Sprite *sprite) { s16 index1 = 0, index2; if (sprite->data[5] > sprite->data[6]) { sprite->data[5] = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); if (sprite->data[4] <= 1) { sub_817F77C(sprite); @@ -4130,16 +4148,16 @@ void sub_8183418(struct Sprite *sprite) amplitude = sprite->data[3]; if (sprite->data[1] == 0) - xScale = -0x100 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2); + xScale = -256 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2); else - xScale = 0x100 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2); + xScale = 256 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2); - SetAffineData(sprite, xScale, 0x100, 0); + SetAffineData(sprite, xScale, 256, 0); sprite->data[5]++; } } -void pokemonanimfunc_5B(struct Sprite *sprite) +static void pokemonanimfunc_5B(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4155,19 +4173,19 @@ void pokemonanimfunc_5B(struct Sprite *sprite) sub_8183418(sprite); } -void sub_8183574(struct Sprite *sprite) +static void sub_8183574(struct Sprite *sprite) { u8 var6, var7; u8 var8 = sprite->data[2]; u8 var9 = sprite->data[6]; - u8 var5 = gUnknown_0860AA80[sprite->data[5]][0]; + u8 var5 = sUnknown_0860AA80[sprite->data[5]][0]; u8 var2 = var5; if (var5 != 0xFF) var5 = sprite->data[7]; else var5 = 0xFF; // needed to match - var6 = gUnknown_0860AA80[sprite->data[5]][1]; + var6 = sUnknown_0860AA80[sprite->data[5]][1]; var7 = 0; if (var2 != 0xFE) var7 = (var6 - var9) * var5 / var6; @@ -4193,7 +4211,7 @@ void sub_8183574(struct Sprite *sprite) } } -void pokemonanimfunc_5C(struct Sprite *sprite) +static void pokemonanimfunc_5C(struct Sprite *sprite) { sprite->data[0] = 40; sprite->data[7] = 6; @@ -4201,7 +4219,7 @@ void pokemonanimfunc_5C(struct Sprite *sprite) sprite->callback = sub_8183574; } -void pokemonanimfunc_5D(struct Sprite *sprite) +static void pokemonanimfunc_5D(struct Sprite *sprite) { sprite->data[0] = 70; sprite->data[7] = 6; @@ -4209,14 +4227,14 @@ void pokemonanimfunc_5D(struct Sprite *sprite) sprite->callback = sub_817FCDC; } -void pokemonanimfunc_5E(struct Sprite *sprite) +static void pokemonanimfunc_5E(struct Sprite *sprite) { sprite->data[0] = 20; sub_817F8FC(sprite); sprite->callback = sub_817F8FC; } -void pokemonanimfunc_5F(struct Sprite *sprite) +static void pokemonanimfunc_5F(struct Sprite *sprite) { if (sprite->data[2] > 40) { @@ -4237,7 +4255,7 @@ void pokemonanimfunc_5F(struct Sprite *sprite) sprite->data[2]++; } -void pokemonanimfunc_60(struct Sprite *sprite) +static void pokemonanimfunc_60(struct Sprite *sprite) { if (sprite->data[2] > 40) { @@ -4258,7 +4276,7 @@ void pokemonanimfunc_60(struct Sprite *sprite) sprite->data[2]++; } -void pokemonanimfunc_61(struct Sprite *sprite) +static void pokemonanimfunc_61(struct Sprite *sprite) { sprite->data[0] = 70; sprite->data[7] = 6; @@ -4266,7 +4284,7 @@ void pokemonanimfunc_61(struct Sprite *sprite) sprite->callback = sub_8183140; } -void pokemonanimfunc_62(struct Sprite *sprite) +static void pokemonanimfunc_62(struct Sprite *sprite) { sprite->data[0] = 24; sprite->data[7] = 6; @@ -4274,7 +4292,7 @@ void pokemonanimfunc_62(struct Sprite *sprite) sprite->callback = sub_8183574; } -void pokemonanimfunc_63(struct Sprite *sprite) +static void pokemonanimfunc_63(struct Sprite *sprite) { sprite->data[0] = 56; sprite->data[7] = 9; @@ -4282,25 +4300,25 @@ void pokemonanimfunc_63(struct Sprite *sprite) sprite->callback = sub_8183574; } -void pokemonanimfunc_64(struct Sprite *sprite) +static void pokemonanimfunc_64(struct Sprite *sprite) { u8 id = sprite->data[0] = sub_817F758(); - gUnknown_03001240[id].field_6 = 1024; - gUnknown_03001240[id].field_8 = 6; - gUnknown_03001240[id].field_2 = 24; + sUnknown_03001240[id].field_6 = 1024; + sUnknown_03001240[id].field_8 = 6; + sUnknown_03001240[id].field_2 = 24; sub_817FFF0(sprite); sprite->callback = sub_817FFF0; } -void sub_81837DC(struct Sprite *sprite) +static void sub_81837DC(struct Sprite *sprite) { s16 index1 = 0, index2 = 0; if (sprite->data[5] > sprite->data[6]) { sprite->pos2.y = 0; sprite->data[5] = 0; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); if (sprite->data[4] <= 1) { sub_817F77C(sprite); @@ -4329,17 +4347,17 @@ void sub_81837DC(struct Sprite *sprite) amplitude = sprite->data[3]; if (sprite->data[1] == 0) - xScale = Sin(index2, amplitude) + (Sin(index1, amplitude / 5 * 2) - 0x100); + xScale = Sin(index2, amplitude) + (Sin(index1, amplitude / 5 * 2) - 256); else - xScale = 0x100 - Sin(index1, amplitude / 5 * 2) - Sin(index2, amplitude); + xScale = 256 - Sin(index1, amplitude / 5 * 2) - Sin(index2, amplitude); - yScale = 0x100 - Sin(index1, amplitude / 5) - Sin(index2, amplitude); + yScale = 256 - Sin(index1, amplitude / 5) - Sin(index2, amplitude); SetAffineData(sprite, xScale, yScale, 0); sprite->data[5]++; } } -void pokemonanimfunc_65(struct Sprite *sprite) +static void pokemonanimfunc_65(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4355,7 +4373,7 @@ void pokemonanimfunc_65(struct Sprite *sprite) sub_81837DC(sprite); } -void pokemonanimfunc_66(struct Sprite *sprite) +static void pokemonanimfunc_66(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 2048) @@ -4389,7 +4407,7 @@ void pokemonanimfunc_66(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_67(struct Sprite *sprite) +static void pokemonanimfunc_67(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] > 2048) @@ -4423,7 +4441,7 @@ void pokemonanimfunc_67(struct Sprite *sprite) sub_817F70C(sprite); } -static const s8 gUnknown_0860ADBE[][3] = +static const s8 sUnknown_0860ADBE[][3] = { // x y timer {1, 1, 12}, @@ -4432,19 +4450,19 @@ static const s8 gUnknown_0860ADBE[][3] = {0, 0, 0} }; -void sub_8183B4C(struct Sprite *sprite) +static void sub_8183B4C(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) sprite->data[3] = 0; - if (gUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == sprite->data[2]) + if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == sprite->data[2]) { sprite->data[3]++; sprite->data[2] = 0; } - if (gUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == 0) + if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == 0) { if (--sprite->data[6] == 0) sprite->callback = SpriteCB_SetDummyOnAnimEnd; @@ -4454,14 +4472,14 @@ void sub_8183B4C(struct Sprite *sprite) else { s32 amplitude = sprite->data[5]; - sprite->pos2.x += (gUnknown_0860ADBE[sprite->data[3]][0] * amplitude); - sprite->pos2.y += (gUnknown_0860ADBE[sprite->data[3]][1] * sprite->data[5]); // what's the point of the var if you're not reusing it? + sprite->pos2.x += (sUnknown_0860ADBE[sprite->data[3]][0] * amplitude); + sprite->pos2.y += (sUnknown_0860ADBE[sprite->data[3]][1] * sprite->data[5]); // what's the point of the var if you're not reusing it? sprite->data[2]++; sub_817F70C(sprite); } } -void pokemonanimfunc_68(struct Sprite *sprite) +static void pokemonanimfunc_68(struct Sprite *sprite) { sprite->data[5] = 1; sprite->data[6] = 1; @@ -4469,7 +4487,7 @@ void pokemonanimfunc_68(struct Sprite *sprite) sprite->callback = sub_8183B4C; } -void pokemonanimfunc_69(struct Sprite *sprite) +static void pokemonanimfunc_69(struct Sprite *sprite) { sprite->data[5] = 2; sprite->data[6] = 1; @@ -4477,7 +4495,7 @@ void pokemonanimfunc_69(struct Sprite *sprite) sprite->callback = sub_8183B4C; } -void pokemonanimfunc_6A(struct Sprite *sprite) +static void pokemonanimfunc_6A(struct Sprite *sprite) { sprite->data[5] = 2; sprite->data[6] = 2; @@ -4485,7 +4503,7 @@ void pokemonanimfunc_6A(struct Sprite *sprite) sprite->callback = sub_8183B4C; } -void sub_8183C6C(struct Sprite *sprite) +static void sub_8183C6C(struct Sprite *sprite) { if (sprite->data[7] > 255) { @@ -4493,7 +4511,7 @@ void sub_8183C6C(struct Sprite *sprite) { sub_817F77C(sprite); sprite->callback = SpriteCB_SetDummyOnAnimEnd; - HandleSetAffineData(sprite, 0x100, 0x100, 0); + HandleSetAffineData(sprite, 256, 256, 0); } else { @@ -4510,11 +4528,11 @@ void sub_8183C6C(struct Sprite *sprite) sprite->data[7] = 256; scale = Sin(sprite->data[7] / 2, 64); - HandleSetAffineData(sprite, 0x100 - scale, 0x100 - scale, 0); + HandleSetAffineData(sprite, 256 - scale, 256 - scale, 0); } } -void pokemonanimfunc_6B(struct Sprite *sprite) +static void pokemonanimfunc_6B(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -4530,7 +4548,7 @@ void pokemonanimfunc_6B(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_6C(struct Sprite *sprite) +static void pokemonanimfunc_6C(struct Sprite *sprite) { sub_817F70C(sprite); if (sprite->data[2] == 0) @@ -4546,7 +4564,7 @@ void pokemonanimfunc_6C(struct Sprite *sprite) sub_817F70C(sprite); } -void pokemonanimfunc_6D(struct Sprite *sprite) +static void pokemonanimfunc_6D(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4561,7 +4579,7 @@ void pokemonanimfunc_6D(struct Sprite *sprite) sub_8182764(sprite); } -void pokemonanimfunc_6E(struct Sprite *sprite) +static void pokemonanimfunc_6E(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4576,7 +4594,7 @@ void pokemonanimfunc_6E(struct Sprite *sprite) sub_8182764(sprite); } -void pokemonanimfunc_6F(struct Sprite *sprite) +static void pokemonanimfunc_6F(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4591,7 +4609,7 @@ void pokemonanimfunc_6F(struct Sprite *sprite) sub_8182830(sprite); } -void pokemonanimfunc_70(struct Sprite *sprite) +static void pokemonanimfunc_70(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4606,7 +4624,7 @@ void pokemonanimfunc_70(struct Sprite *sprite) sub_8182830(sprite); } -void pokemonanimfunc_71(struct Sprite *sprite) +static void pokemonanimfunc_71(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4618,7 +4636,7 @@ void pokemonanimfunc_71(struct Sprite *sprite) sub_8180828(sprite); } -void pokemonanimfunc_72(struct Sprite *sprite) +static void pokemonanimfunc_72(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4630,7 +4648,7 @@ void pokemonanimfunc_72(struct Sprite *sprite) sub_8180828(sprite); } -void pokemonanimfunc_73(struct Sprite *sprite) +static void pokemonanimfunc_73(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4645,7 +4663,7 @@ void pokemonanimfunc_73(struct Sprite *sprite) sub_81832C8(sprite); } -void pokemonanimfunc_74(struct Sprite *sprite) +static void pokemonanimfunc_74(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4660,7 +4678,7 @@ void pokemonanimfunc_74(struct Sprite *sprite) sub_81832C8(sprite); } -void pokemonanimfunc_75(struct Sprite *sprite) +static void pokemonanimfunc_75(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4676,7 +4694,7 @@ void pokemonanimfunc_75(struct Sprite *sprite) sub_8183418(sprite); } -void pokemonanimfunc_76(struct Sprite *sprite) +static void pokemonanimfunc_76(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4692,7 +4710,7 @@ void pokemonanimfunc_76(struct Sprite *sprite) sub_8183418(sprite); } -void pokemonanimfunc_77(struct Sprite *sprite) +static void pokemonanimfunc_77(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4708,7 +4726,7 @@ void pokemonanimfunc_77(struct Sprite *sprite) sub_81837DC(sprite); } -void pokemonanimfunc_78(struct Sprite *sprite) +static void pokemonanimfunc_78(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4724,7 +4742,7 @@ void pokemonanimfunc_78(struct Sprite *sprite) sub_81837DC(sprite); } -void sub_8183FA8(struct Sprite *sprite) +static void sub_8183FA8(struct Sprite *sprite) { if (sprite->data[7] > 255) { @@ -4752,7 +4770,7 @@ void sub_8183FA8(struct Sprite *sprite) } } -void pokemonanimfunc_79(struct Sprite *sprite) +static void pokemonanimfunc_79(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4767,7 +4785,7 @@ void pokemonanimfunc_79(struct Sprite *sprite) sub_8183FA8(sprite); } -void pokemonanimfunc_7A(struct Sprite *sprite) +static void pokemonanimfunc_7A(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4782,7 +4800,7 @@ void pokemonanimfunc_7A(struct Sprite *sprite) sub_8183FA8(sprite); } -void pokemonanimfunc_7B(struct Sprite *sprite) +static void pokemonanimfunc_7B(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -4796,3 +4814,844 @@ void pokemonanimfunc_7B(struct Sprite *sprite) sub_8183FA8(sprite); } + +static void sub_81840C4(struct Sprite *sprite) +{ + if (sprite->data[7] > 256) + { + if (sprite->data[6] <= sprite->data[4]) + { + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[4]++; + sprite->data[7] = 0; + } + + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + s16 posX; + + if (sprite->data[7] > 159) + { + if (sprite->data[7] > 256) + sprite->data[7] = 256; + + sprite->pos2.y = -(Sin(sprite->data[7] % 256, 8)); + } + else if (sprite->data[7] > 95) + { + sprite->pos2.y = Sin(96, 6) - Sin((sprite->data[7] - 96) * 2, 4); + } + else + { + sprite->pos2.y = Sin(sprite->data[7], 6); + } + + posX = -(Sin(sprite->data[7] / 2, sprite->data[5])); + if (sprite->data[4] % 2 == 0) + posX *= -1; + + sprite->pos2.x = posX; + sprite->data[7] += sprite->data[3]; + } +} + +static void pokemonanimfunc_7C(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 2; + sprite->data[7] = 0; + sprite->data[5] = 16; + sprite->data[4] = 1; + sprite->data[3] = 4; + } + + sub_81840C4(sprite); +} + +static void pokemonanimfunc_7D(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 2; + sprite->data[7] = 0; + sprite->data[5] = 16; + sprite->data[4] = 1; + sprite->data[3] = 6; + } + + sub_81840C4(sprite); +} + +static void pokemonanimfunc_7E(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 3; + sprite->data[7] = 0; + sprite->data[5] = 16; + sprite->data[4] = 1; + sprite->data[3] = 8; + } + + sub_81840C4(sprite); +} + +static void pokemonanimfunc_7F(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 1; + sprite->data[7] = 0; + sprite->data[5] = 4; + sprite->data[4] = 6; + sprite->data[3] = 4; + } + + sub_8183FA8(sprite); +} + +static void pokemonanimfunc_80(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 1; + sprite->data[7] = 0; + sprite->data[5] = 4; + sprite->data[4] = 6; + sprite->data[3] = 6; + } + + sub_8183FA8(sprite); +} + +static void pokemonanimfunc_81(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[2] = 1; + sprite->data[6] = 2; + sprite->data[7] = 0; + sprite->data[5] = 4; + sprite->data[4] = 6; + sprite->data[3] = 8; + } + + sub_8183FA8(sprite); +} + +static void sub_8184290(struct Sprite *sprite) +{ + u16 index = Sin((sprite->data[2] * 128) / sprite->data[7], sprite->data[5]); + sprite->data[6] = -(index << 8); + sub_817F3F0(sprite, index, sprite->data[4], 0); + HandleSetAffineData(sprite, 256, 256, sprite->data[6]); +} + +static void pokemonanimfunc_82(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[7] = 60; + sprite->data[5] = 8; + sprite->data[4] = -32; + sprite->data[3] = 1; + sprite->data[0] = 0; + } + + if (sprite->data[2] > sprite->data[7]) + { + HandleSetAffineData(sprite, 256, 256, 0); + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0]++; + if (sprite->data[3] <= sprite->data[0]) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + return; + } + else + { + sprite->data[2] = 0; + } + } + else + { + sub_8184290(sprite); + } + + sprite->data[2]++; +} + +static void pokemonanimfunc_83(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[7] = 90; + sprite->data[5] = 8; + sprite->data[4] = -32; + sprite->data[3] = 1; + sprite->data[0] = 0; + } + + if (sprite->data[2] > sprite->data[7]) + { + HandleSetAffineData(sprite, 256, 256, 0); + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0]++; + if (sprite->data[3] <= sprite->data[0]) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + return; + } + else + { + sprite->data[2] = 0; + } + } + else + { + sub_8184290(sprite); + } + + sprite->data[2]++; +} + +static void pokemonanimfunc_84(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->data[7] = 30; + sprite->data[5] = 8; + sprite->data[4] = -32; + sprite->data[3] = 2; + sprite->data[0] = 0; + } + + if (sprite->data[2] > sprite->data[7]) + { + HandleSetAffineData(sprite, 256, 256, 0); + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0]++; + if (sprite->data[3] <= sprite->data[0]) + { + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + return; + } + else + { + sprite->data[2] = 0; + } + } + else + { + sub_8184290(sprite); + } + + sprite->data[2]++; +} + +static void sub_8184468(struct Sprite *sprite) +{ + if (sprite->data[2] > sprite->data[7]) + { + sprite->pos2.y = 0; + HandleSetAffineData(sprite, 256, 256, 0); + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + u8 posY_unsigned; + s8 posY_signed; + s32 posY; + s16 index = (u16)(sprite->data[2] % sprite->data[6] * 256) / sprite->data[6] % 256; + if (sprite->data[2] % 2 == 0) + { + sprite->data[4] = Sin(index, 32) + 256; + sprite->data[5] = Sin(index, 32) + 256; + posY_unsigned = Sin(index, 32); + posY_signed = posY_unsigned; + } + else + { + sprite->data[4] = Sin(index, 8) + 256; + sprite->data[5] = Sin(index, 8) + 256; + posY_unsigned = Sin(index, 8); + posY_signed = posY_unsigned; + } + + posY = posY_signed; + if (posY < 0) + posY += 7; + sprite->pos2.y = (u32)(posY) >> 3; + HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); + } + + sprite->data[2]++; +} + +static void pokemonanimfunc_85(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->pos2.y += 2; + sprite->data[6] = 40; + sprite->data[7] = 80; + } + + sub_8184468(sprite); +} + +static void pokemonanimfunc_86(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->pos2.y += 2; + sprite->data[6] = 40; + sprite->data[7] = 40; + } + + sub_8184468(sprite); +} + +static void pokemonanimfunc_87(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + HandleStartAffineAnim(sprite); + sprite->pos2.y += 2; + sprite->data[6] = 80; + sprite->data[7] = 80; + } + + sub_8184468(sprite); +} + +static void sub_8184610(struct Sprite *sprite); +static void sub_8184640(struct Sprite *sprite); +static void sub_8184678(struct Sprite *sprite); +static void sub_81846B8(struct Sprite *sprite); + +static void sub_81845D4(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x -= sprite->data[2]; + if (sprite->pos2.x <= -sprite->data[6]) + { + sprite->pos2.x = -sprite->data[6]; + sprite->data[7] = 2; + sprite->callback = sub_8184610; + } + + sub_817F70C(sprite); +} + +static void sub_8184610(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x += sprite->data[7]; + sprite->data[7]++; + if (sprite->pos2.x >= 0) + sprite->callback = sub_8184640; + + sub_817F70C(sprite); +} + +static void sub_8184640(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x += sprite->data[7]; + sprite->data[7]++; + if (sprite->pos2.x > sprite->data[6]) + { + sprite->pos2.x = sprite->data[6]; + sprite->callback = sub_8184678; + } + + sub_817F70C(sprite); +} + +static void sub_8184678(struct Sprite *sprite) +{ + sub_817F70C(sprite); + if (sprite->data[3] >= sprite->data[5]) + { + sprite->callback = sub_81846B8; + } + else + { + sprite->pos2.x += sprite->data[4]; + sprite->data[4] *= -1; + sprite->data[3]++; + } + + sub_817F70C(sprite); +} + +static void sub_81846B8(struct Sprite *sprite) +{ + sub_817F70C(sprite); + sprite->pos2.x -= 2; + if (sprite->pos2.x <= 0) + { + sprite->pos2.x = 0; + sub_817F77C(sprite); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + + sub_817F70C(sprite); +} + +static void pokemonanimfunc_88(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[7] = 4; + sprite->data[6] = 12; + sprite->data[5] = 16; + sprite->data[4] = 4; + sprite->data[3] = 0; + sprite->data[2] = 2; + sprite->callback = sub_81845D4; +} + +static void pokemonanimfunc_89(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[7] = 2; + sprite->data[6] = 8; + sprite->data[5] = 12; + sprite->data[4] = 2; + sprite->data[3] = 0; + sprite->data[2] = 1; + sprite->callback = sub_81845D4; +} + +static void pokemonanimfunc_8A(struct Sprite *sprite) +{ + HandleStartAffineAnim(sprite); + sprite->data[7] = 0; + sprite->data[6] = 6; + sprite->data[5] = 6; + sprite->data[4] = 2; + sprite->data[3] = 0; + sprite->data[2] = 1; + sprite->callback = sub_81845D4; +} + +static void sub_8184770(struct Sprite *sprite) +{ + sprite->pos2.x = sprite->data[1]; + if (sprite->data[0] > 1) + { + sprite->data[1] *= -1; + sprite->data[0] = 0; + } + else + { + sprite->data[0]++; + } +} + +struct YellowBlendStruct +{ + u8 field_0; + u8 field_1; +}; + +static const struct YellowBlendStruct sUnknown_0860ADCC[] = +{ + {0, 1}, + {1, 2}, + {0, 15}, + {1, 1}, + {0, 15}, + {1, 1}, + {0, 15}, + {1, 1}, + {0, 1}, + {1, 1}, + {0, 1}, + {1, 1}, + {0, 1}, + {1, 1}, + {0, 1}, + {1, 1}, + {0, 1}, + {1, 1}, + {0, 1}, + {0, 0xFF} +}; + +static const struct YellowBlendStruct sUnknown_0860AE1C[] = +{ + {0, 5}, + {1, 1}, + {0, 15}, + {1, 4}, + {0, 2}, + {1, 2}, + {0, 2}, + {1, 2}, + {0, 2}, + {1, 2}, + {0, 2}, + {1, 2}, + {0, 2}, + {0, 0xFF} +}; + +static const struct YellowBlendStruct sUnknown_0860AE54[] = +{ + {0, 1}, + {1, 1}, + {0, 20}, + {1, 1}, + {0, 20}, + {1, 1}, + {0, 20}, + {1, 1}, + {0, 1}, + {0, 0xFF} +}; + +static const struct YellowBlendStruct *const sUnknown_0860AE7C[] = +{ + sUnknown_0860ADCC, + sUnknown_0860AE1C, + sUnknown_0860AE54 +}; + +static void BackAnimBlendYellow(struct Sprite *sprite) +{ + const struct YellowBlendStruct *array = sUnknown_0860AE7C[sprite->data[3]]; + sub_8184770(sprite); + if (array[sprite->data[6]].field_1 == 0xFF) + { + sprite->pos2.x = 0; + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + if (sprite->data[4] == 1) + { + if (array[sprite->data[6]].field_0 != 0) + BlendPalette(sprite->data[7], 0x10, 0x10, 0x3FF); + else + BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); + + sprite->data[4] = 0; + } + + if (array[sprite->data[6]].field_1 == sprite->data[5]) + { + sprite->data[4] = 1; + sprite->data[5] = 0; + sprite->data[6]++; + } + else + { + sprite->data[5]++; + } + } +} + +static void pokemonanimfunc_8B(struct Sprite *sprite) +{ + if (++sprite->data[2] == 1) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[6] = 0; + sprite->data[5] = 0; + sprite->data[4] = 0; + sprite->data[3] = 0; + } + + BackAnimBlendYellow(sprite); +} + +static void pokemonanimfunc_8C(struct Sprite *sprite) +{ + if (++sprite->data[2] == 1) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[6] = 0; + sprite->data[5] = 0; + sprite->data[4] = 0; + sprite->data[3] = 1; + } + + BackAnimBlendYellow(sprite); +} + +static void pokemonanimfunc_8D(struct Sprite *sprite) +{ + if (++sprite->data[2] == 1) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[6] = 0; + sprite->data[5] = 0; + sprite->data[4] = 0; + sprite->data[3] = 2; + } + + BackAnimBlendYellow(sprite); +} + +static const u16 sUnknown_0860AE88[] = +{ + 0x1F, 0x3E0, 0x7C00, 0x0 +}; + +static void BackAnimBlend(struct Sprite *sprite) +{ + if (sprite->data[2] > 127) + { + BlendPalette(sprite->data[7], 0x10, 0, 0x1F); + sprite->callback = SpriteCB_SetDummyOnAnimEnd; + } + else + { + sprite->data[6] = Sin(sprite->data[2], 12); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], sUnknown_0860AE88[sprite->data[1]]); + } +} + +static void sub_8184934(struct Sprite *sprite) +{ + if (sprite->data[3] < sprite->data[4]) + { + sub_817F70C(sprite); + if (sprite->data[5] > sprite->data[0]) + { + if (++sprite->data[3] < sprite->data[4]) + sprite->data[5] = 0; + + sprite->pos2.x = 0; + } + else + { + s8 sign = 1 - (sprite->data[3] % 2 * 2); + sprite->pos2.x = sign * Sin((sprite->data[5] * 384 / sprite->data[0]) % 256, 6); + sprite->data[5]++; + } + + sub_817F70C(sprite); + } +} + +static void pokemonanimfunc_8E(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 10; + sprite->data[5] = 0; + sprite->data[4] = 2; + sprite->data[3] = 0; + sprite->data[1] = 0; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_8F(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 20; + sprite->data[5] = 0; + sprite->data[4] = 1; + sprite->data[3] = 0; + sprite->data[1] = 0; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_90(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 80; + sprite->data[5] = 0; + sprite->data[4] = 1; + sprite->data[3] = 0; + sprite->data[1] = 0; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_91(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 10; + sprite->data[5] = 0; + sprite->data[4] = 2; + sprite->data[3] = 0; + sprite->data[1] = 1; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_92(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 20; + sprite->data[5] = 0; + sprite->data[4] = 1; + sprite->data[3] = 0; + sprite->data[1] = 1; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_93(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 80; + sprite->data[5] = 0; + sprite->data[4] = 1; + sprite->data[3] = 0; + sprite->data[1] = 1; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_94(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 10; + sprite->data[5] = 0; + sprite->data[4] = 2; + sprite->data[3] = 0; + sprite->data[1] = 2; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_95(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 20; + sprite->data[5] = 0; + sprite->data[4] = 1; + sprite->data[3] = 0; + sprite->data[1] = 2; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void pokemonanimfunc_96(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; + sprite->data[0] = 80; + sprite->data[5] = 0; + sprite->data[4] = 1; + sprite->data[3] = 0; + sprite->data[1] = 2; + } + + if (sprite->data[2] % 2 == 0) + BackAnimBlend(sprite); + + if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2) + sub_8184934(sprite); + + sprite->data[2]++; +} + +static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite) +{ + if (sprite->animEnded) + sprite->callback = SpriteCallbackDummy; +} diff --git a/sym_bss.txt b/sym_bss.txt index 409690e38..f930a5b98 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -74,16 +74,8 @@ gUnknown_03001204: @ 3001204 .space 0x4 .include "src/battle_transition.o" - -gUnknown_03001240: @ 3001240 - .space 0x30 - -gUnknown_03001270: @ 3001270 - .space 0x4 - -gUnknown_03001274: @ 3001274 - .space 0x4 - + .include "src/pokemon_animation.o" + gUnknown_03001278: @ 3001278 .space 0x1 -- cgit v1.2.3 From 78728ae454b6c184b69f4a8c145f32904d406f19 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 14:36:13 +0100 Subject: add rgb constants --- data/battle_anim_scripts.s | 181 +++++++++++++++++++++++---------------------- include/constants/rgb.h | 15 ++++ include/gba/defines.h | 5 -- src/battle_interface.c | 15 ++-- src/palette.c | 1 + src/pokemon_animation.c | 49 ++++++------ 6 files changed, 140 insertions(+), 126 deletions(-) create mode 100644 include/constants/rgb.h diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index a0c3b39d2..878b48ccb 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,6 +1,7 @@ +#include "constants/rgb.h" +#include "constants/songs.h" .include "asm/macros/battle_anim_script.inc" .include "include/constants/battle_anim.h" - .include "include/constants/songs.h" .section script_data, "aw", %progbits @@ -684,7 +685,7 @@ Move_FLAME_WHEEL: createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 6 delay 0x4 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 8, 1 - createvisualtask sub_80A7B98, 0x3, 1, 31, 12, 1, 1 + createvisualtask sub_80A7B98, 0x3, 1, RGB_RED, 12, 1, 1 playsewithpan SE_W172B, +63 call AnimScript_82D2D18 delay 0x7 @@ -789,7 +790,7 @@ Move_DOUBLE_EDGE: waitplaysewithpan SE_W207, -64, 0x8 createvisualtask sub_80D5830, 0x2, 0, 18, 6, 2, 4 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 0, 16, 16, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 0, 16, 16, RGB_WHITE createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4 delay 0x3 waitforvisualfinish @@ -801,7 +802,7 @@ Move_DOUBLE_EDGE: createvisualtask sub_80D6134, 0x2, 8, -256, 1, 0 createvisualtask sub_80D5484, 0x2, 0, 4, 0, 12, 1 createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 - createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, RGB_WHITE waitforvisualfinish createvisualtask sub_80D6134, 0x2, 8, -256, 0, 1 createvisualtask sub_80D6134, 0x2, 8, -256, 1, 1 @@ -942,7 +943,7 @@ Move_MEGA_PUNCH: loadspritegfx 0x279F monbg ANIM_TARGET delay 0x2 - createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, RGB_BLACK setalpha 0x80C playsewithpan SE_W025, +63 createsprite gUnknown_08595F48, 0x3, 0, 0, 0, 50 @@ -990,7 +991,7 @@ Move_MEGA_KICK: loadspritegfx 0x279F monbg ANIM_TARGET delay 0x2 - createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, RGB_BLACK setalpha 0x80C playsewithpan SE_W025, +63 createsprite gUnknown_08595F48, 0x3, 0, 0, 1, 50 @@ -1232,7 +1233,7 @@ Move_HIDDEN_POWER: createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 waitforvisualfinish delay 0x1E - createvisualtask sub_80A7B98, 0x5, 0, 20479, 12, 5, 1 + createvisualtask sub_80A7B98, 0x5, 0, RGB(31, 31, 19), 12, 5, 1 delay 0x4 createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 playsewithpan SE_W179, -64 @@ -1705,7 +1706,7 @@ Move_PROTECT: Move_DETECT: loadspritegfx 0x2757 - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 9, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 9, RGB_BLACK waitforvisualfinish createvisualtask sub_8116620, 0xA, 2, 1, 0, 9, 0x7FFF delay 0x12 @@ -1713,7 +1714,7 @@ Move_DETECT: createsprite gUnknown_0853EE84, 0xD, 20, -20 waitforvisualfinish delay 0xA - createsprite gUnknown_08597274, 0x2, 1, 2, 9, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 9, 0, RGB_BLACK createvisualtask sub_8116620, 0xA, 2, 2, 9, 0, 0x7FFF waitforvisualfinish end @@ -2118,12 +2119,12 @@ Move_MEAN_LOOK: loadspritegfx 0x27CB monbg ANIM_DEF_PARTNER playsewithpan SE_W060, -64 - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, RGB_BLACK loopsewithpan SE_W109, +63, 0xF, 0x4 waitplaysewithpan SE_W043, +63, 0x55 createsprite gUnknown_085CE104, 0x2 delay 0x78 - createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, RGB_BLACK delay 0x1E clearmonbg ANIM_DEF_PARTNER waitforvisualfinish @@ -2792,7 +2793,7 @@ Move_RAGE: loadspritegfx 0x2767 monbg ANIM_TARGET setalpha 0x80C - createvisualtask sub_80A7B98, 0x3, 0, 31, 10, 0, 2 + createvisualtask sub_80A7B98, 0x3, 0, RGB_RED, 10, 0, 2 createsprite gUnknown_0859368C, 0x2, 0, -20, -28 playsewithpan SE_W207B, -64 delay 0x14 @@ -3068,7 +3069,7 @@ Move_SUPER_FANG: playsewithpan SE_W082, -64 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 0, 3, 0, 48, 1 - createvisualtask sub_80A7B98, 0x2, 0, 1247, 12, 4, 1 + createvisualtask sub_80A7B98, 0x2, 0, RGB(31, 6, 1), 12, 4, 1 waitforvisualfinish delay 0x14 createsprite gUnknown_0857FE28, 0x2, 4, 4 @@ -3137,7 +3138,7 @@ Move_NIGHTMARE: end AnimScript_82CD4CF: - createvisualtask sub_80A7B98, 0x2, 0, 0x7FFF, 10, 2, 1 + createvisualtask sub_80A7B98, 0x2, 0, RGB_WHITE, 10, 2, 1 createvisualtask sub_80D51AC, 0x2, 0, 3, 0, 32, 1 playsewithpan SE_W171, +63 waitforvisualfinish @@ -3220,7 +3221,7 @@ Move_FORESIGHT: delay 0x18 playsewithpan SE_W166, +63 delay 0xA - createvisualtask sub_80A7B98, 0x5, 1, 0x7FFF, 12, 2, 1 + createvisualtask sub_80A7B98, 0x5, 1, RGB_WHITE, 12, 2, 1 playsewithpan SE_W197, +63 waitforvisualfinish blendoff @@ -3418,7 +3419,7 @@ Move_MOONLIGHT: loadspritegfx 0x27D3 loadspritegfx 0x272F setalpha 0x1000 - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, RGB_BLACK waitforvisualfinish createsprite gUnknown_08592EBC, 0x2, 120, 56 createvisualtask sub_80A7A74, 0x3, 0, 16, 16, 0, 1 @@ -3517,7 +3518,7 @@ Move_UPROAR: Move_HEAT_WAVE: loadspritegfx 0x2815 - createvisualtask sub_8116848, 0x5, 10261, 0, 6, 6, 31 + createvisualtask sub_8116848, 0x5, 10261, 0, 6, 6, RGB_RED createvisualtask sub_8110BCC, 0x5, 1 createvisualtask sub_810A060, 0x6, 6, 31 panse_1B SE_W257, -64, +63, +2, 0x0 @@ -3555,7 +3556,7 @@ Move_TORMENT: loadspritegfx 0x27E1 createvisualtask sub_815AFF0, 0x2 waitforvisualfinish - createvisualtask sub_80A7B98, 0x2, 1, 31, 10, 1, 1 + createvisualtask sub_80A7B98, 0x2, 1, RGB_RED, 10, 1, 1 createsprite gUnknown_0859368C, 0x82, 1, -20, -28 playsewithpan SE_W207B, +63 delay 0x14 @@ -3625,7 +3626,7 @@ Move_CHARGE: loadspritegfx 0x27E5 monbg ANIM_ATTACKER setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask sub_810AAFC, 0x2, 0, 60, 2, 12 playsewithpan SE_W268, -64 @@ -3649,7 +3650,7 @@ Move_CHARGE: createsprite gUnknown_0859598C, 0x2, 0, -16, -16 playsewithpan SE_W085B, -64 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER blendoff end @@ -3688,7 +3689,7 @@ Move_HELPING_HAND: delay 0x14 playsewithpan SE_W227, 0 createvisualtask sub_80D52D0, 0x2, 2, 3, 0, 10, 1 - createvisualtask sub_80A7B98, 0x2, 2, 1023, 12, 1, 1 + createvisualtask sub_80A7B98, 0x2, 2, RGB_YELLOW, 12, 1, 1 end Move_ASSIST: @@ -3750,7 +3751,7 @@ Move_RECYCLE: createsprite gUnknown_085CE9B0, 0x2 loopsewithpan SE_W036, -64, 0x18, 0x3 waitforvisualfinish - createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 2, 1 + createvisualtask sub_80A7B98, 0x5, 0, RGB_WHITE, 12, 2, 1 playsewithpan SE_W036, -64 waitforvisualfinish blendoff @@ -3780,13 +3781,13 @@ AnimScript_82CE0A7: playsewithpan SE_W233, +63 delay 0x14 createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3 - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, RGB_BLACK delay 0x25 createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 createsprite gUnknown_08595E98, 0x4, 0, 0, 10, 1, 0 playsewithpan SE_W233B, +63 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_TARGET end @@ -3807,7 +3808,7 @@ AnimScript_82CE154: playsewithpan SE_W233, +63 delay 0x14 createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3 - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, RGB_BLACK delay 0x25 createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 createsprite gUnknown_08595E98, 0x4, 0, 0, 10, 1, 0 @@ -3819,7 +3820,7 @@ AnimScript_82CE154: createsprite gUnknown_08595FA8, 0x2, 1, 3, 8, 12 playsewithpan SE_W280, +63 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_TARGET end @@ -3845,7 +3846,7 @@ Move_ENDEAVOR: loadspritegfx 0x2797 createvisualtask sub_815DCA4, 0x2, 0, 2 loopsewithpan SE_W039, -64, 0x18, 0x2 - createvisualtask sub_80A7B98, 0x5, 0, 703, 12, 1, 2 + createvisualtask sub_80A7B98, 0x5, 0, RGB(31, 21, 0), 12, 1, 2 delay 0x6 createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 createsprite gUnknown_08597358, 0x82, 12, -12, 1, 2 @@ -3858,7 +3859,7 @@ Move_ENDEAVOR: Move_ERUPTION: loadspritegfx 0x27D9 - createsprite gUnknown_08597274, 0x2, 31, 2, 0, 4, 31 + createsprite gUnknown_08597274, 0x2, 31, 2, 0, 4, RGB_RED waitforvisualfinish createvisualtask sub_8109460, 0x2 waitplaysewithpan SE_W153, -64, 0x3C @@ -3878,18 +3879,18 @@ Move_ERUPTION: createvisualtask sub_81152DC, 0x5, 4, 8, 60 loopsewithpan SE_W088, +63, 0x10, 0xC delay 0x50 - createsprite gUnknown_08597274, 0x28, 31, 4, 4, 0, 31 + createsprite gUnknown_08597274, 0x28, 31, 4, 4, 0, RGB_RED end Move_SKILL_SWAP: loadspritegfx 0x280B call AnimScript_82D7CD1 createvisualtask sub_810FBF0, 0x3, 1 - createvisualtask sub_80A7B98, 0x5, 1, 0x7FFF, 12, 3, 1 + createvisualtask sub_80A7B98, 0x5, 1, RGB_WHITE, 12, 3, 1 loopsewithpan SE_W179, -64, 0x18, 0x3 delay 0x10 createvisualtask sub_810FBF0, 0x3, 0 - createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 3, 1 + createvisualtask sub_80A7B98, 0x5, 0, RGB_WHITE, 12, 3, 1 waitforvisualfinish call AnimScript_82D7CDD end @@ -3951,13 +3952,13 @@ Move_TAIL_GLOW: loadspritegfx 0x27E4 monbg ANIM_ATTACKER setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createsprite gUnknown_08596AC8, 0x42, 0 delay 0x12 loopsewithpan SE_W234, -64, 0x10, 0x6 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER blendoff delay 0x1 @@ -4193,7 +4194,7 @@ Move_AROMATHERAPY: loadspritegfx 0x27AF loadspritegfx 0x27DB loadspritegfx 0x2741 - createsprite gUnknown_08597274, 0x0, 1, 0, 0, 7, 13293 + createsprite gUnknown_08597274, 0x0, 1, 0, 0, 7, RGB(13, 31, 12) delay 0x1 monbg ANIM_ATTACKER delay 0x1 @@ -4211,7 +4212,7 @@ Move_AROMATHERAPY: waitforvisualfinish clearmonbg ANIM_ATTACKER delay 0x1 - createsprite gUnknown_08597274, 0x0, 1, 0, 7, 0, 13293 + createsprite gUnknown_08597274, 0x0, 1, 0, 7, 0, RGB(13, 31, 12) delay 0x1 playsewithpan SE_W287, -64 createvisualtask sub_815DFCC, 0x2, 1 @@ -4222,7 +4223,7 @@ Move_AROMATHERAPY: createsprite gUnknown_08592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish playsewithpan SE_REAPOKE, -64 - createsprite gUnknown_08597274, 0x0, 43, 3, 10, 0, 13293 + createsprite gUnknown_08597274, 0x0, 43, 3, 10, 0, RGB(13, 31, 12) createsprite gUnknown_08593868, 0x10, 0, 0, 0, 1 waitforvisualfinish end @@ -4231,7 +4232,7 @@ Move_FAKE_TEARS: loadspritegfx 0x27AB loadspritegfx 0x27E1 loadspritegfx 0x2758 - createvisualtask sub_8116848, 0x5, 10155, 0, 4, 4, 32108 + createvisualtask sub_8116848, 0x5, 10155, 0, 4, 4, RGB(12, 11, 31) waitforvisualfinish createvisualtask sub_815C478, 0x5, 0, 2, 1 loopsewithpan SE_W039, -64, 0xC, 0x4 @@ -4289,7 +4290,7 @@ Move_ODOR_SLEUTH: Move_GRASS_WHISTLE: loadspritegfx 0x2758 - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 13298 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB(18, 31, 12) waitforvisualfinish createvisualtask sub_8102BE8, 0x2 waitforvisualfinish @@ -4320,19 +4321,19 @@ Move_GRASS_WHISTLE: delay 0x4 waitforvisualfinish createvisualtask sub_8102CA0, 0x2 - createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 13298 + createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, RGB(18, 31, 12) waitforvisualfinish end Move_TICKLE: loadspritegfx 0x27EA - createsprite gUnknown_08597274, 0x2, 2, 0, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 2, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gUnknown_08593A84, 0x0, -16, -8 createsprite gUnknown_08593A84, 0x0, 16, -8 playsewithpan SE_W197, -64 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 2, 0, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 2, 0, 16, 0, RGB_BLACK waitforvisualfinish delay 0x14 createvisualtask sub_80D5EB8, 0x3, 0, 6, 1280, 3, 0 @@ -4384,11 +4385,11 @@ Move_EXTRASENSORY: call AnimScript_82D7CD1 monbg ANIM_DEF_PARTNER setalpha 0x80C - createvisualtask sub_80A7B98, 0x5, 0, 891, 12, 1, 1 + createvisualtask sub_80A7B98, 0x5, 0, RGB(27, 27, 0), 12, 1, 1 createvisualtask sub_810FE14, 0x5, 0 playsewithpan SE_W020, +63 waitforvisualfinish - createvisualtask sub_80A7B98, 0x5, 0, 891, 12, 1, 1 + createvisualtask sub_80A7B98, 0x5, 0, RGB(27, 27, 0), 12, 1, 1 createvisualtask sub_810FE14, 0x5, 1 playsewithpan SE_W020, +63 waitforvisualfinish @@ -4607,7 +4608,7 @@ Move_SHOCK_WAVE: loadspritegfx 0x2735 monbg ANIM_ATTACKER setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask sub_810AAFC, 0x2, 0, 20, 0, 2 playsewithpan SE_W268, -64 @@ -4725,7 +4726,7 @@ Move_ICE_PUNCH: loadspritegfx 0x279D loadspritegfx 0x2797 loadspritegfx 0x279F - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, RGB_BLACK createvisualtask sub_8116620, 0xA, 4, 2, 0, 9, 32588 delay 0x14 playsewithpan SE_W081, +63 @@ -4750,7 +4751,7 @@ Move_ICE_PUNCH: delay 0x5 createvisualtask sub_8116620, 0xA, 4, 2, 9, 0, 32588 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -4829,7 +4830,7 @@ Move_THUNDER: waitbgfadeout createvisualtask sub_8117660, 0x5, -256, 0, 1, -1 waitbgfadein - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, RGB_BLACK delay 0x10 createvisualtask sub_8115F10, 0x2, 257, 257, 257 playsewithpan SE_W086, +63 @@ -4873,7 +4874,7 @@ Move_THUNDER: delay 0x2 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 - createsprite gUnknown_08597274, 0x82, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x82, 1, 2, 16, 0, RGB_BLACK waitforvisualfinish restorebg waitbgfadeout @@ -4887,7 +4888,7 @@ Move_THUNDER_PUNCH: loadspritegfx 0x2735 monbg ANIM_TARGET setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, RGB_BLACK waitforvisualfinish playsewithpan SE_W004, +63 createsprite gUnknown_08595E98, 0x84, 0, 0, 8, 1, 0 @@ -4907,7 +4908,7 @@ Move_THUNDER_PUNCH: createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 15, 1 createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 delay 0x1 - createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, RGB_BLACK delay 0x14 waitforvisualfinish clearmonbg ANIM_TARGET @@ -5413,7 +5414,7 @@ Move_ICE_BEAM: monbgprio_28 ANIM_TARGET setalpha 0x80C loadspritegfx 0x279D - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, RGB_BLACK waitforvisualfinish createsoundtask sub_8158C58, 183, -64, 63, 4, 4, 0, 10 createsprite gUnknown_08595B2C, 0x2, 20, 12, 0, 12, 20 @@ -5422,7 +5423,7 @@ Move_ICE_BEAM: call AnimScript_82D07C1 call AnimScript_82D07C1 call AnimScript_82D07C1 - createsprite gUnknown_08597274, 0x2, 4, -31, 0, 7, 32384 + createsprite gUnknown_08597274, 0x2, 4, -31, 0, 7, RGB(0, 20, 31) createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 25, 1 call AnimScript_82D07C1 call AnimScript_82D07C1 @@ -5438,9 +5439,9 @@ Move_ICE_BEAM: waitforvisualfinish delay 0x14 call AnimScript_82D7720 - createsprite gUnknown_08597274, 0x2, 4, 5, 7, 0, 32384 + createsprite gUnknown_08597274, 0x2, 4, 5, 7, 0, RGB(0, 20, 31) waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -5648,7 +5649,7 @@ AnimScript_82D0CB2: Move_POWDER_SNOW: loadspritegfx 0x279D monbg ANIM_DEF_PARTNER - createsprite gUnknown_08597274, 0x2, 31, 1, 0, 3, 0 + createsprite gUnknown_08597274, 0x2, 31, 1, 0, 3, RGB_BLACK waitforvisualfinish panse_1B SE_W016, -64, +63, +2, 0x0 call AnimScript_82D0D03 @@ -5660,7 +5661,7 @@ Move_POWDER_SNOW: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 0x14 - createsprite gUnknown_08597274, 0x2, 31, 1, 3, 0, 0 + createsprite gUnknown_08597274, 0x2, 31, 1, 3, 0, RGB_BLACK end AnimScript_82D0D03: @@ -5778,7 +5779,7 @@ Move_ABSORB: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish playsewithpan SE_W071, +63 createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 @@ -5791,7 +5792,7 @@ Move_ABSORB: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -5831,7 +5832,7 @@ Move_MEGA_DRAIN: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 8, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 8, RGB(13, 31, 12) waitforvisualfinish playsewithpan SE_W071, +63 createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1 @@ -5844,7 +5845,7 @@ Move_MEGA_DRAIN: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 1, 8, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 8, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -5892,7 +5893,7 @@ Move_GIGA_DRAIN: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 12, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 12, RGB(13, 31, 12) waitforvisualfinish playsewithpan SE_W071, +63 createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 @@ -5905,7 +5906,7 @@ Move_GIGA_DRAIN: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 1, 12, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 12, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6446,14 +6447,14 @@ Move_WHIRLPOOL: monbgprio_28 ANIM_TARGET setalpha 0x80C delay 0x0 - createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(0, 13, 23) playsewithpan SE_W250, +63 createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 50, 1 call AnimScript_82D1F5B call AnimScript_82D1F5B call AnimScript_82D1F5B delay 0xC - createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(0, 13, 23) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -7354,7 +7355,7 @@ Move_POISON_TAIL: loadspritegfx 0x2797 loadspritegfx 0x27A6 loopsewithpan SE_W231, -64, 0x1C, 0x2 - createvisualtask sub_81144F8, 0x5, 1, 1, 23768 + createvisualtask sub_81144F8, 0x5, 1, 1, RGB(24, 6, 23) waitforvisualfinish monbg ANIM_TARGET setalpha 0x80C @@ -7783,7 +7784,7 @@ Move_SOFT_BOILED: delay 0x78 delay 0x7 playsewithpan SE_W030, -64 - createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, 31500 + createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, RGB(12, 24, 30) createsprite gUnknown_0859381C, 0x3, 31, 16, 0, 1 delay 0x8 createsprite gUnknown_0859381C, 0x3, 31, 16, 0, 1 @@ -7855,7 +7856,7 @@ Move_FAKE_OUT: createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 createvisualtask sub_8106020, 0x3 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, RGB_WHITE end Move_SCARY_FACE: @@ -8270,7 +8271,7 @@ Move_STOCKPILE: call AnimScript_82D4972 call AnimScript_82D4972 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 2, 0, 12, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 2, 0, 12, 0, RGB_WHITE end AnimScript_82D4972: @@ -8585,7 +8586,7 @@ Move_REFRESH: call AnimScript_82D79B4 waitforvisualfinish playsewithpan SE_REAPOKE, -64 - createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, 31500 + createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, RGB(12, 24, 30) createsprite gUnknown_0859381C, 0x3, 0, 0, 0, 0 end @@ -8622,7 +8623,7 @@ Move_HYPER_VOICE: end AnimScript_82D50FA: - createsprite gUnknown_08597274, 0x2, 31, 3, 8, 0, 1023 + createsprite gUnknown_08597274, 0x2, 31, 3, 8, 0, RGB_YELLOW createvisualtask sub_80D6064, 0x5, -5, -5, 5, 0, 0 createsprite gUnknown_08593880, 0x0, 45, 0, 0, 0, 0, 0, 1 createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 @@ -8633,14 +8634,14 @@ AnimScript_82D50FA: Move_SAND_TOMB: loadspritegfx 0x275A - createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(19, 17, 0) createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 43, 1 playsewithpan SE_W328, +63 call AnimScript_82D51B7 call AnimScript_82D51B7 call AnimScript_82D51B7 delay 0x16 - createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(19, 17, 0) waitforvisualfinish end @@ -9422,7 +9423,7 @@ Move_OVERHEAT: loadspritegfx 0x2797 monbg ANIM_DEF_PARTNER setalpha 0x120C - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 5, 28 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 5, RGB(28, 0, 0) waitforvisualfinish createvisualtask sub_8117C44, 0x5 waitforvisualfinish @@ -9433,7 +9434,7 @@ Move_OVERHEAT: playsewithpan SE_W082, -64 createvisualtask sub_8117CA0, 0x5, 1, 0 delay 0x1 - createsprite gUnknown_08597274, 0x2, 2, 1, 0, 13, 28 + createsprite gUnknown_08597274, 0x2, 2, 1, 0, 13, RGB(28, 0, 0) createvisualtask sub_80D51AC, 0x5, 0, 2, 0, 15, 1 waitforvisualfinish playsewithpan SE_W172B, -64 @@ -9479,12 +9480,12 @@ Move_OVERHEAT: playsewithpan SE_W007, +63 createvisualtask sub_8117DD8, 0x5, 1 delay 0x1 - createsprite gUnknown_08597274, 0x2, 2, -1, 0, 13, 19026 + createsprite gUnknown_08597274, 0x2, 2, -1, 0, 13, RGB(18, 18, 18) createvisualtask sub_80D51AC, 0x5, 0, 3, 0, 15, 1 waitforvisualfinish createvisualtask sub_8117D3C, 0x5, 0, 1 delay 0x1 - createsprite gUnknown_08597274, 0x2, 1, 1, 5, 0, 28 + createsprite gUnknown_08597274, 0x2, 1, 1, 5, 0, RGB(28, 0, 0) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9492,7 +9493,7 @@ Move_OVERHEAT: delay 0xF createvisualtask sub_8117D3C, 0x5, 1, 0 delay 0x1 - createsprite gUnknown_08597274, 0x2, 2, 0, 13, 0, 19026 + createsprite gUnknown_08597274, 0x2, 2, 0, 13, 0, RGB(18, 18, 18) waitforvisualfinish createvisualtask sub_8117C70, 0x5 waitforvisualfinish @@ -9643,7 +9644,7 @@ Move_WATER_PULSE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET playsewithpan SE_W145C, -64 - createsprite gUnknown_08597274, 0x2, 1, 0, 0, 7, 29472 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 7, RGB(0, 25, 28) delay 0xA createsprite gUnknown_085952F8, 0x42, 100, 100, 8, 1, 20, 40, 0 createsprite gUnknown_085952F8, 0x42, 20, 100, 16, 2, 10, 35, 1 @@ -9663,7 +9664,7 @@ Move_WATER_PULSE: delay 0xD createvisualtask sub_80D51AC, 0x2, 1, 0, 8, 18, 1 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 1, 7, 0, 29472 + createsprite gUnknown_08597274, 0x2, 1, 1, 7, 0, RGB(0, 25, 28) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -10560,13 +10561,13 @@ AnimScript_82D800E: monbgprio_28 ANIM_TARGET setalpha 0x80C delay 0x0 - createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(0, 13, 23) playsewithpan SE_W250, +63 createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 call AnimScript_82D1F5B call AnimScript_82D1F5B delay 0xC - createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(0, 13, 23) waitforvisualfinish stopsound clearmonbg ANIM_DEF_PARTNER @@ -10591,13 +10592,13 @@ AnimScript_82D8062: AnimScript_82D80BF: loadspritegfx 0x275A - createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(19, 17, 0) createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 playsewithpan SE_W328, +63 call AnimScript_82D51B7 call AnimScript_82D51B7 delay 0x16 - createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(19, 17, 0) waitforvisualfinish stopsound end @@ -10619,7 +10620,7 @@ Anim_ItemEffect: call AnimScript_82D79B4 waitforvisualfinish playsewithpan SE_REAPOKE, -64 - createsprite gUnknown_08597274, 0x2, 2, 3, 7, 0, 26609 + createsprite gUnknown_08597274, 0x2, 2, 3, 7, 0, RGB(17, 31, 25) createsprite gUnknown_0859381C, 0x3, 0, 0, 0, 0 waitforvisualfinish end @@ -10663,11 +10664,11 @@ Anim_SmokeBallEscape: end Anim_HangedOn: - createsprite gUnknown_08597274, 0x0, 2, 7, 0, 9, 31 + createsprite gUnknown_08597274, 0x0, 2, 7, 0, 9, RGB_RED playsewithpan SE_W082, -64 createvisualtask sub_815DB90, 0x5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish - createsprite gUnknown_08597274, 0x0, 2, 4, 9, 0, 31 + createsprite gUnknown_08597274, 0x0, 2, 4, 9, 0, RGB_RED waitforvisualfinish delay 0x6 createsprite gUnknown_0857FE58, 0x0, 0, 0, 15 @@ -10769,7 +10770,7 @@ Anim_FutureSightHit: Anim_DoomDesireHit: createvisualtask sub_8117F10, 0x2 loadspritegfx 0x27D6 - createsprite gUnknown_08597274, 0x2, 1, 3, 0, 16, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 0xA createvisualtask sub_815C0A4, 0x5 @@ -10796,7 +10797,7 @@ Anim_DoomDesireHit: playsewithpan SE_W120, +63 createsprite gUnknown_0859371C, 0x3, 16, 16, 1, 1 waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, RGB_WHITE waitforvisualfinish end @@ -10818,7 +10819,7 @@ Status_Ingrain: loadspritegfx 0x272F monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish delay 0x3 call AnimScript_82D1009 @@ -10826,7 +10827,7 @@ Status_Ingrain: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff diff --git a/include/constants/rgb.h b/include/constants/rgb.h new file mode 100644 index 000000000..2c22df32a --- /dev/null +++ b/include/constants/rgb.h @@ -0,0 +1,15 @@ +#ifndef GUARD_RGB_H +#define GUARD_RGB_H + +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) +#define RGB_RED RGB(31, 0, 0) +#define RGB_GREEN RGB(0, 31, 0) +#define RGB_BLUE RGB(0, 0, 31) +#define RGB_YELLOW RGB(31, 31, 0) +#define RGB_MAGENTA RGB(31, 0, 31) +#define RGB_CYAN RGB(0, 31, 31) + +#endif // GUARD_RGB_H diff --git a/include/gba/defines.h b/include/gba/defines.h index 41cc84f4a..5c07347ce 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -60,11 +60,6 @@ #define TOTAL_OBJ_TILE_COUNT 1024 -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) - -#define RGB_BLACK RGB(0, 0, 0) -#define RGB_WHITE RGB(31, 31, 31) - #define WIN_RANGE(a, b) (((a) << 8) | (b)) #endif // GUARD_GBA_DEFINES diff --git a/src/battle_interface.c b/src/battle_interface.c index 6a6bf00a2..da6f97942 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -20,6 +20,7 @@ #include "international_string_util.h" #include "safari_zone.h" #include "battle_anim.h" +#include "constants/rgb.h" struct TestingBar { @@ -555,13 +556,13 @@ enum PAL_STATUS_BRN }; -static const u16 sStatusIconPalettes[] = +static const u16 sStatusIconColors[] = { - 0x6198, // PAL_STATUS_PSN - 0xEF7, // PAL_STATUS_PAR - 0x4694, // PAL_STATUS_SLP - 0x72D1, // PAL_STATUS_FRZ - 0x29DC // PAL_STATUS_BRN + RGB(24, 12, 24), // PAL_STATUS_PSN + RGB(23, 23, 3), // PAL_STATUS_PAR + RGB(20, 20, 17), // PAL_STATUS_SLP + RGB(17, 22, 28), // PAL_STATUS_FRZ + RGB(28, 14, 10) // PAL_STATUS_BRN }; static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2 @@ -2071,7 +2072,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16; pltAdder += bank + 12; - FillPalette(sStatusIconPalettes[statusPalId], pltAdder + 0x100, 2); + FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2); CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96); if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) diff --git a/src/palette.c b/src/palette.c index d7b6ad479..cc2046b14 100644 --- a/src/palette.c +++ b/src/palette.c @@ -4,6 +4,7 @@ #include "decompress.h" #include "gpu_regs.h" #include "task.h" +#include "constants/rgb.h" enum { diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index c8fcff93a..2bd4e3ef9 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -5,6 +5,7 @@ #include "trig.h" #include "task.h" #include "blend_palette.h" +#include "constants/rgb.h" struct UnkAnimStruct { @@ -903,7 +904,7 @@ static void Task_HandleMonAnimation(u8 taskId) sprite->data[1] = 1; sprite->data[0] = 0; - for (i = 2; i < 8; i++) + for (i = 2; i < ARRAY_COUNT(sprite->data); i++) sprite->data[i] = 0; sprite->callback = sMonAnimFunctions[gTasks[taskId].tAnimId]; @@ -1588,13 +1589,13 @@ static void pokemonanimfunc_15(struct Sprite *sprite) if (sprite->data[2] > 128) { - BlendPalette(sprite->data[7], 0x10, 0, 0); + BlendPalette(sprite->data[7], 0x10, 0, RGB_BLACK); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 16); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLACK); } sprite->data[2]++; @@ -2050,13 +2051,13 @@ static void pokemonanimfunc_20(struct Sprite *sprite) if (sprite->data[2] > 128) { - BlendPalette(sprite->data[7], 0x10, 0, 0x2DF); + BlendPalette(sprite->data[7], 0x10, 0, RGB(31, 22, 0)); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x2DF); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(31, 22, 0)); } sprite->data[2] += 2; @@ -2069,13 +2070,13 @@ static void pokemonanimfunc_21(struct Sprite *sprite) if (sprite->data[2] > 128) { - BlendPalette(sprite->data[7], 0x10, 0, 0x1F); + BlendPalette(sprite->data[7], 0x10, 0, RGB_RED); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x1F); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_RED); } sprite->data[2] += 2; @@ -2088,13 +2089,13 @@ static void pokemonanimfunc_22(struct Sprite *sprite) if (sprite->data[2] > 128) { - BlendPalette(sprite->data[7], 0x10, 0, 0x7C00); + BlendPalette(sprite->data[7], 0x10, 0, RGB_BLUE); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x7C00); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLUE); } sprite->data[2] += 2; @@ -2107,13 +2108,13 @@ static void pokemonanimfunc_23(struct Sprite *sprite) if (sprite->data[2] > 128) { - BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); + BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x3FF); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_YELLOW); } sprite->data[2] += 2; @@ -2126,13 +2127,13 @@ static void pokemonanimfunc_24(struct Sprite *sprite) if (sprite->data[2] > 128) { - BlendPalette(sprite->data[7], 0x10, 0, 0x6018); + BlendPalette(sprite->data[7], 0x10, 0, RGB(24, 0, 24)); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], 0x6018); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(24, 0, 24)); } sprite->data[2] += 2; @@ -2602,9 +2603,9 @@ static void pokemonanimfunc_2C(struct Sprite *sprite) if (sprite->data[4] == 1) { if (sUnknown_0860AA64[sprite->data[6]][0] != 0) - BlendPalette(sprite->data[7], 0x10, 0x10, 0x3FF); + BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW); else - BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); + BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW); sprite->data[4] = 0; } @@ -5357,9 +5358,9 @@ static void BackAnimBlendYellow(struct Sprite *sprite) if (sprite->data[4] == 1) { if (array[sprite->data[6]].field_0 != 0) - BlendPalette(sprite->data[7], 0x10, 0x10, 0x3FF); + BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW); else - BlendPalette(sprite->data[7], 0x10, 0, 0x3FF); + BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW); sprite->data[4] = 0; } @@ -5419,22 +5420,22 @@ static void pokemonanimfunc_8D(struct Sprite *sprite) BackAnimBlendYellow(sprite); } -static const u16 sUnknown_0860AE88[] = -{ - 0x1F, 0x3E0, 0x7C00, 0x0 -}; - static void BackAnimBlend(struct Sprite *sprite) { + static const u16 sColors[] = + { + RGB_RED, RGB_GREEN, RGB_BLUE, RGB_BLACK + }; + if (sprite->data[2] > 127) { - BlendPalette(sprite->data[7], 0x10, 0, 0x1F); + BlendPalette(sprite->data[7], 0x10, 0, RGB_RED); sprite->callback = SpriteCB_SetDummyOnAnimEnd; } else { sprite->data[6] = Sin(sprite->data[2], 12); - BlendPalette(sprite->data[7], 0x10, sprite->data[6], sUnknown_0860AE88[sprite->data[1]]); + BlendPalette(sprite->data[7], 0x10, sprite->data[6], sColors[sprite->data[1]]); } } -- cgit v1.2.3 From d728124a7b51d5db257d58ae9b47a5285c696748 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 15:55:34 +0100 Subject: decompile time events --- asm/field_screen.s | 6 +- asm/time_events.s | 225 ------------------------------------------------ data/time_events.s | 7 -- include/field_weather.h | 169 +++++++++++++++++++++++++++++++++++- include/overworld.h | 2 + include/time_events.h | 8 ++ ld_script.txt | 4 +- src/time_events.c | 118 +++++++++++++++++++++++++ 8 files changed, 299 insertions(+), 240 deletions(-) delete mode 100644 asm/time_events.s delete mode 100644 data/time_events.s create mode 100644 include/time_events.h create mode 100644 src/time_events.c diff --git a/asm/field_screen.s b/asm/field_screen.s index 6b49b9c7c..1792b9cc8 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -2472,15 +2472,15 @@ _080AC3B6: bx r0 thumb_func_end play_some_sound - thumb_func_start sub_80AC3BC -sub_80AC3BC: @ 80AC3BC + thumb_func_start IsWeatherChangeComplete +IsWeatherChangeComplete: @ 80AC3BC ldr r0, =gUnknown_02038454 ldr r1, =0x000006d3 adds r0, r1 ldrb r0, [r0] bx lr .pool - thumb_func_end sub_80AC3BC + thumb_func_end IsWeatherChangeComplete thumb_func_start sub_80AC3D0 sub_80AC3D0: @ 80AC3D0 diff --git a/asm/time_events.s b/asm/time_events.s deleted file mode 100644 index de2d2d165..000000000 --- a/asm/time_events.s +++ /dev/null @@ -1,225 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GetMirageRnd -GetMirageRnd: @ 8137890 - push {r4,lr} - ldr r0, =0x00004024 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004025 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - orrs r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetMirageRnd - - thumb_func_start SetMirageRnd -SetMirageRnd: @ 81378BC - push {r4,lr} - adds r4, r0, 0 - ldr r0, =0x00004024 - lsrs r1, r4, 16 - bl VarSet - ldr r0, =0x00004025 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetMirageRnd - - thumb_func_start InitMirageRnd -InitMirageRnd: @ 81378E4 - push {r4,lr} - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsls r0, 16 - lsrs r0, 16 - orrs r4, r0 - adds r0, r4, 0 - bl SetMirageRnd - pop {r4} - pop {r0} - bx r0 - thumb_func_end InitMirageRnd - - thumb_func_start UpdateMirageRnd -UpdateMirageRnd: @ 8137904 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl GetMirageRnd - adds r1, r0, 0 - cmp r4, 0 - beq _08137928 - ldr r3, =0x41c64e6d - ldr r2, =0x00003039 -_08137918: - adds r0, r1, 0 - muls r0, r3 - adds r1, r0, r2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _08137918 -_08137928: - adds r0, r1, 0 - bl SetMirageRnd - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateMirageRnd - - thumb_func_start IsMirageIslandPresent -IsMirageIslandPresent: @ 813793C - push {r4-r6,lr} - bl GetMirageRnd - lsrs r6, r0, 16 - movs r5, 0 -_08137946: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08137978 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - ldr r1, =0x0000ffff - ands r1, r0 - cmp r1, r6 - bne _08137978 - movs r0, 0x1 - b _08137980 - .pool -_08137978: - adds r5, 0x1 - cmp r5, 0x5 - ble _08137946 - movs r0, 0 -_08137980: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsMirageIslandPresent - - thumb_func_start UpdateShoalTideFlag -UpdateShoalTideFlag: @ 8137988 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - cmp r0, 0 - beq _081379CE - bl RtcCalcLocalTime - ldr r1, =gUnknown_085B2B44 - ldr r0, =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081379C8 - ldr r0, =0x0000089a - bl FlagSet - b _081379CE - .pool -_081379C8: - ldr r0, =0x0000089a - bl FlagClear -_081379CE: - pop {r0} - bx r0 - .pool - thumb_func_end UpdateShoalTideFlag - - thumb_func_start Task_WaitWeather -Task_WaitWeather: @ 81379D8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80AC3BC - lsls r0, 24 - cmp r0, 0 - beq _081379F2 - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_081379F2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_WaitWeather - - thumb_func_start WaitWeather -WaitWeather: @ 81379F8 - push {lr} - ldr r0, =Task_WaitWeather - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end WaitWeather - - thumb_func_start InitBirchState -InitBirchState: @ 8137A0C - push {lr} - ldr r0, =0x00004049 - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end InitBirchState - - thumb_func_start UpdateBirchState -UpdateBirchState: @ 8137A20 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =0x00004049 - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0x7 - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateBirchState diff --git a/data/time_events.s b/data/time_events.s deleted file mode 100644 index 7a543fff5..000000000 --- a/data/time_events.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_085B2B44:: @ 85B2B44 - .byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 diff --git a/include/field_weather.h b/include/field_weather.h index e12107e70..0bdebf747 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -1,12 +1,175 @@ #ifndef GUARD_WEATHER_H #define GUARD_WEATHER_H -void fade_screen(u8, s8); +#include "sprite.h" +// Controls how the weather should be changing the screen palettes. +enum { + WEATHER_PAL_STATE_CHANGING_WEATHER, + WEATHER_PAL_STATE_SCREEN_FADING_IN, + WEATHER_PAL_STATE_SCREEN_FADING_OUT, + WEATHER_PAL_STATE_IDLE, +}; + +struct Weather +{ + union + { + struct + { + struct Sprite *rainSprites[24]; + struct Sprite *snowflakeSprites[101]; + struct Sprite *cloudSprites[3]; + } s1; + struct + { + u8 filler0[0xA0]; + struct Sprite *fog1Sprites[20]; + struct Sprite *ashSprites[20]; + struct Sprite *fog2Sprites[20]; + struct Sprite *sandstormSprites1[20]; + struct Sprite *sandstormSprites2[5]; + } s2; + } sprites; + u8 gammaShifts[19][32]; + u8 altGammaShifts[19][32]; + s8 gammaIndex; + s8 gammaTargetIndex; + u8 gammaStepDelay; + u8 gammaStepFrameCounter; + u16 fadeDestColor; + u8 palProcessingState; + u8 fadeScreenCounter; + bool8 readyForInit; + u8 taskId; + u8 unknown_6CA; + u8 unknown_6CB; + u16 initStep; + u16 finishStep; + u8 currWeather; + u8 nextWeather; + u8 weatherGfxLoaded; + bool8 weatherChangeComplete; + u8 weatherPicSpritePalIndex; + u8 altGammaSpritePalIndex; + u16 unknown_6D6; + u8 unknown_6D8; + u8 unknown_6D9; + u8 rainSpriteCount; + u8 unknown_6DB; + u8 unknown_6DC; + u8 rainStrength; + /*0x6DE*/ u8 cloudSpritesCreated; + u8 filler_6DF[1]; + u16 unknown_6E0; + u16 unknown_6E2; + u8 snowflakeSpriteCount; + u8 unknown_6E5; + u16 unknown_6E6; + u16 thunderCounter; + u8 unknown_6EA; + u8 unknown_6EB; + u8 unknown_6EC; + u8 unknown_6ED; + u16 fog1ScrollPosX; + u16 unknown_6F0; + u16 unknown_6F2; + u8 lightenedFogSpritePals[6]; + u8 lightenedFogSpritePalsCount; + u8 fog1SpritesCreated; + u16 unknown_6FC; + u16 unknown_6FE; + u8 ashSpritesCreated; + u8 filler_701[3]; + u32 unknown_704; + u32 unknown_708; + u8 filler_70C[2]; + u16 unknown_70E; + u16 unknown_710; + u16 unknown_712; + u16 unknown_714; + u8 sandstormSprites1Created; + u8 sandstormSprites2Created; + u16 unknown_718; + u16 unknown_71A; + u16 unknown_71C; + u16 unknown_71E; + u16 unknown_720; + u16 unknown_722; + u8 fog2SpritesCreated; + u8 filler_725[1]; + u16 unknown_726; + u16 unknown_728; + u16 unknown_72A; + u16 unknown_72C; + u8 unknown_72E; + u8 filler_72F; + u16 currBlendEVA; + u16 currBlendEVB; + u16 targetBlendEVA; + u16 targetBlendEVB; + u8 blendUpdateCounter; + u8 blendFrameCounter; + u8 blendDelay; + u8 filler_73B[0x3C-0x3B]; + s16 unknown_73C; + s16 unknown_73E; + s16 unknown_740; + s16 unknown_742; + u8 filler_744[0xD-4]; + s8 loadDroughtPalsIndex; + u8 loadDroughtPalsOffset; +}; + +void StartWeather(void); +void ChangeWeather(u8 weather); +void sub_807C988(u8 effect); +void sub_807C9B4(u8 effect); +void Task_WeatherInit(u8); +void Task_WeatherMain(u8); +void sub_807CAE8(void); +void nullsub_38(void); +void SetWeatherScreenFadeOut(void); + +enum +{ + FADE_FROM_BLACK, + FADE_TO_BLACK, + FADE_FROM_WHITE, + FADE_TO_WHITE, +}; + +void FadeScreen(u8, u8); +// ... +void UpdateSpritePaletteWithWeather(u8 tag); +void ApplyWeatherGammaShiftToPal(u8); +// ... +void Weather_SetBlendCoeffs(u8, u8); +// ... +void PlayRainSoundEffect(void); +// ... void SetSav1Weather(u32); u8 GetSav1Weather(void); -void sub_80AEDBC(void); - +void SetSav1WeatherFromCurrMapHeader(void); +// ... void DoCurrentWeather(void); +void sub_8080750(); + +bool8 IsWeatherNotFadingIn(void); +bool8 IsWeatherChangeComplete(void); +void SetWeather(u32); +void UpdateWeatherPerDay(u16); +void PreservePaletteInWeather(u8 index); +void ResetPreservedPalettesInWeather(void); +extern void ResetDroughtWeatherPaletteLoading(void); +void ResetDroughtWeatherPaletteLoading(void); +bool8 LoadDroughtWeatherPalettes(void); +u8 GetCurrentWeather(void); +void LoadCustomWeatherSpritePalette(const u16 *palette); + + +extern struct Weather gWeather; + +extern struct Weather *const gWeatherPtr; #endif // GUARD_WEATHER_H diff --git a/include/overworld.h b/include/overworld.h index 597a160ed..974f8f091 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -70,6 +70,8 @@ void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum); void c2_load_new_map(void); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void mapldr_default(void); +u8 get_map_light_from_warp0(void); +bool8 is_light_level_1_2_3_5_or_6(u8 a1); void IncrementGameStat(u8); u32 GetGameStat(u8); diff --git a/include/time_events.h b/include/time_events.h new file mode 100644 index 000000000..fd6d29f39 --- /dev/null +++ b/include/time_events.h @@ -0,0 +1,8 @@ +#ifndef GUARD_TIME_EVENTS_H +#define GUARD_TIME_EVENTS_H + +void UpdateMirageRnd(u16); +u8 IsMirageIslandPresent(void); +void UpdateBirchState(u16); + +#endif // GUARD_TIME_EVENTS_H diff --git a/ld_script.txt b/ld_script.txt index f2a9d8196..d3bf4e845 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -185,7 +185,7 @@ SECTIONS { src/pokeblock.o(.text); asm/fldeff_flash.o(.text); asm/post_battle_event_funcs.o(.text); - asm/time_events.o(.text); + src/time_events.o(.text); asm/birch_pc.o(.text); src/hof_pc.o(.text); asm/field_specials.o(.text); @@ -472,7 +472,7 @@ SECTIONS { src/wallclock.o(.rodata); src/pokeblock.o(.rodata); data/fldeff_flash.o(.rodata); - data/time_events.o(.rodata); + src/time_events.o(.rodata); data/field_specials.o(.rodata); data/battle_records.o(.rodata); data/pokedex_area_screen.o(.rodata); diff --git a/src/time_events.c b/src/time_events.c new file mode 100644 index 000000000..1f169a5c6 --- /dev/null +++ b/src/time_events.c @@ -0,0 +1,118 @@ +#include "global.h" +#include "time_events.h" +#include "event_data.h" +#include "field_weather.h" +#include "pokemon.h" +#include "random.h" +#include "overworld.h" +#include "rtc.h" +#include "script.h" +#include "task.h" + +static u32 GetMirageRnd(void) +{ + u32 hi = VarGet(VAR_MIRAGE_RND_H); + u32 lo = VarGet(VAR_MIRAGE_RND_L); + return (hi << 16) | lo; +} + +static void SetMirageRnd(u32 rnd) +{ + VarSet(VAR_MIRAGE_RND_H, rnd >> 16); + VarSet(VAR_MIRAGE_RND_L, rnd); +} + +// unused +void InitMirageRnd(void) +{ + SetMirageRnd((Random() << 16) | Random()); +} + +void UpdateMirageRnd(u16 days) +{ + s32 rnd = GetMirageRnd(); + while (days) + { + rnd = 1103515245 * rnd + 12345; + days--; + } + SetMirageRnd(rnd); +} + +bool8 IsMirageIslandPresent(void) +{ + u16 rnd = GetMirageRnd() >> 16; + int i; + + for (i = 0; i < PARTY_SIZE; i++) + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && (GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY) & 0xFFFF) == rnd) + return TRUE; + + return FALSE; +} + +void UpdateShoalTideFlag(void) +{ + static const u8 tide[] = + { + 1, // 00 + 1, // 01 + 1, // 02 + 0, // 03 + 0, // 04 + 0, // 05 + 0, // 06 + 0, // 07 + 0, // 08 + 1, // 09 + 1, // 10 + 1, // 11 + 1, // 12 + 1, // 13 + 1, // 14 + 0, // 15 + 0, // 16 + 0, // 17 + 0, // 18 + 0, // 19 + 0, // 20 + 1, // 21 + 1, // 22 + 1, // 23 + }; + + if (is_light_level_1_2_3_5_or_6(get_map_light_from_warp0())) + { + RtcCalcLocalTime(); + if (tide[gLocalTime.hours]) + FlagSet(FLAG_SYS_SHOAL_TIDE); + else + FlagClear(FLAG_SYS_SHOAL_TIDE); + } +} + +static void Task_WaitWeather(u8 taskId) +{ + if (IsWeatherChangeComplete()) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } +} + +void WaitWeather(void) +{ + CreateTask(Task_WaitWeather, 80); +} + +void InitBirchState(void) +{ + *GetVarPointer(VAR_BIRCH_STATE) = 0; +} + +void UpdateBirchState(u16 days) +{ + u16 *state = GetVarPointer(VAR_BIRCH_STATE); + *state += days; + *state %= 7; +} -- cgit v1.2.3 From 76fc1d1c129fa1aa01bd51d44ba1aa780f69f9cf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 16:25:09 +0100 Subject: make time events compile --- asm/cable_club.s | 8 ++++---- asm/easy_chat.s | 2 +- asm/field_screen.s | 28 ++++++++++++++-------------- asm/item_use.s | 2 +- asm/link.s | 2 +- asm/overworld.s | 4 ++-- asm/party_menu.s | 8 ++++---- asm/player_pc.s | 6 +++--- asm/pokemon_storage_system.s | 2 +- asm/pokemon_summary_screen.s | 2 +- asm/pokenav.s | 2 +- asm/shop.s | 4 ++-- asm/start_menu.s | 2 +- include/field_weather.h | 2 +- src/decoration.c | 10 +++++----- src/egg_hatch.c | 4 ++-- src/scrcmd.c | 10 +++++----- src/secret_base.c | 6 +++--- 18 files changed, 52 insertions(+), 52 deletions(-) diff --git a/asm/cable_club.s b/asm/cable_club.s index 611b87eef..64d6088b1 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -1808,7 +1808,7 @@ _080B32E0: _080B32F8: movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r1, =gLinkType ldr r2, =0x00002211 adds r0, r2, 0 @@ -1921,7 +1921,7 @@ _080B33E8: _080B3408: movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =gLinkType ldr r2, =0x00002211 adds r1, r2, 0 @@ -2399,7 +2399,7 @@ _080B382E: bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen bl sub_8009FAC b _080B3864 _080B3840: @@ -2470,7 +2470,7 @@ _080B38C6: bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen bl Rfu_set_zero b _080B38FC _080B38D8: diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 86c78d2cf..db2ffac14 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -652,7 +652,7 @@ sub_811A7E4: @ 811A7E4 _0811A804: movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen b _0811A840 _0811A80E: ldr r0, =gPaletteFade diff --git a/asm/field_screen.s b/asm/field_screen.s index 1792b9cc8..5e9452d71 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -1625,8 +1625,8 @@ _080ABCBC: .pool thumb_func_end sub_80ABC7C - thumb_func_start fade_screen -fade_screen: @ 80ABCD0 + thumb_func_start FadeScreen +FadeScreen: @ 80ABCD0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 @@ -1762,7 +1762,7 @@ _080ABDE4: pop {r0} bx r0 .pool - thumb_func_end fade_screen + thumb_func_end FadeScreen thumb_func_start sub_80ABDFC sub_80ABDFC: @ 80ABDFC @@ -7537,8 +7537,8 @@ GetSav1Weather: @ 80AEDAC .pool thumb_func_end GetSav1Weather - thumb_func_start sub_80AEDBC -sub_80AEDBC: @ 80AEDBC + thumb_func_start SetSav1WeatherFromCurrMapHeader +SetSav1WeatherFromCurrMapHeader: @ 80AEDBC push {r4,r5,lr} ldr r4, =gSaveBlock1Ptr ldr r0, [r4] @@ -7559,7 +7559,7 @@ sub_80AEDBC: @ 80AEDBC pop {r0} bx r0 .pool - thumb_func_end sub_80AEDBC + thumb_func_end SetSav1WeatherFromCurrMapHeader thumb_func_start sub_80AEDF0 sub_80AEDF0: @ 80AEDF0 @@ -7872,13 +7872,13 @@ _080AF06A: bl palette_bg_faded_fill_black movs r0, 0 movs r1, 0 - bl fade_screen + bl FadeScreen b _080AF084 _080AF078: bl palette_bg_faded_fill_white movs r0, 0x2 movs r1, 0 - bl fade_screen + bl FadeScreen _080AF084: pop {r4} pop {r0} @@ -7891,7 +7891,7 @@ sub_80AF08C: @ 80AF08C bl palette_bg_faded_fill_white movs r0, 0x2 movs r1, 0x8 - bl fade_screen + bl FadeScreen pop {r0} bx r0 thumb_func_end sub_80AF08C @@ -7902,7 +7902,7 @@ pal_fill_black: @ 80AF0A0 bl palette_bg_faded_fill_black movs r0, 0 movs r1, 0 - bl fade_screen + bl FadeScreen pop {r0} bx r0 thumb_func_end pal_fill_black @@ -7928,12 +7928,12 @@ sub_80AF0B4: @ 80AF0B4 _080AF0DA: movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen b _080AF0EC _080AF0E4: movs r0, 0x3 movs r1, 0 - bl fade_screen + bl FadeScreen _080AF0EC: pop {r4} pop {r0} @@ -8761,7 +8761,7 @@ sub_80AF79C: @ 80AF79C bl music_something movs r0, 0x3 movs r1, 0x8 - bl fade_screen + bl FadeScreen bl play_some_sound ldr r0, =gFieldCallback ldr r1, =sub_80AF3B0 @@ -8990,7 +8990,7 @@ _080AF99A: bl sub_8009FAC movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen bl music_something movs r0, 0x9 bl PlaySE diff --git a/asm/item_use.s b/asm/item_use.s index 0d9f30ec3..8c9e854c7 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -1482,7 +1482,7 @@ _080FDBC8: str r1, [r0] movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =sub_80FDC00 str r0, [r5] _080FDBDA: diff --git a/asm/link.s b/asm/link.s index 1ad160340..76c6521cf 100644 --- a/asm/link.s +++ b/asm/link.s @@ -21684,7 +21684,7 @@ _080148CC: bne _080149B2 movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen movs r0, 0x2 strh r0, [r7] b _080149B2 diff --git a/asm/overworld.s b/asm/overworld.s index 2858fb6d3..3e041d25f 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -1383,7 +1383,7 @@ _080850C8: adds r1, r5, 0 bl TryUpdateRandomTrainerRematches bl DoTimeBasedEvents - bl sub_80AEDBC + bl SetSav1WeatherFromCurrMapHeader bl sub_8085B2C bl update_sav1_flash_used_on_map bl Overworld_ClearSavedMusic @@ -1483,7 +1483,7 @@ _080851A2: beq _080851EE bl DoTimeBasedEvents _080851EE: - bl sub_80AEDBC + bl SetSav1WeatherFromCurrMapHeader bl sub_8085B2C cmp r5, 0 beq _08085200 diff --git a/asm/party_menu.s b/asm/party_menu.s index 429b629ea..0dc03a1e2 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -17171,7 +17171,7 @@ sub_81B9404: @ 81B9404 bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =sub_81B9424 movs r1, 0xA bl CreateTask @@ -17247,7 +17247,7 @@ sub_81B94B0: @ 81B94B0 bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =sub_81B94D0 movs r1, 0xA bl CreateTask @@ -17297,7 +17297,7 @@ sub_81B951C: @ 81B951C bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =sub_81B953C movs r1, 0xA bl CreateTask @@ -17418,7 +17418,7 @@ sub_81B9620: @ 81B9620 bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =sub_81B9640 movs r1, 0xA bl CreateTask diff --git a/asm/player_pc.s b/asm/player_pc.s index 3f08d3f5c..5d9314f80 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -552,7 +552,7 @@ sub_816B2C8: @ 816B2C8 str r0, [r1] movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen pop {r0} bx r0 .pool @@ -1221,7 +1221,7 @@ sub_816B878: @ 816B878 lsrs r4, 24 movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 @@ -1494,7 +1494,7 @@ sub_816BABC: @ 816BABC _0816BAD4: movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index c105c7781..8fc10ba29 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -406,7 +406,7 @@ _080C7428: _080C745C: movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen movs r0, 0x4 strh r0, [r5, 0x8] b _080C756A diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 2817b55b1..a04939c12 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -2049,7 +2049,7 @@ sub_81C4F24: @ 81C4F24 bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen ldr r0, =sub_81C4F44 movs r1, 0xA bl CreateTask diff --git a/asm/pokenav.s b/asm/pokenav.s index 896d9aae0..52fe65d65 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -44,7 +44,7 @@ sub_81C72A4: @ 81C72A4 bl SetMainCallback2 movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen pop {r0} bx r0 .pool diff --git a/asm/shop.s b/asm/shop.s index eacef5837..70429c7cf 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -188,7 +188,7 @@ HandleShopMenuBuy: @ 80DFBD0 str r0, [r1] movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen pop {r4} pop {r0} bx r0 @@ -216,7 +216,7 @@ HandleShopMenuSell: @ 80DFC0C str r0, [r1] movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen pop {r4} pop {r0} bx r0 diff --git a/asm/start_menu.s b/asm/start_menu.s index 518b46f76..93bef1ef2 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -449,7 +449,7 @@ _0809FB34: beq _0809FBA0 movs r0, 0x1 movs r1, 0 - bl fade_screen + bl FadeScreen b _0809FBA0 .pool _0809FB98: diff --git a/include/field_weather.h b/include/field_weather.h index 0bdebf747..5d1aa5ac2 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -139,7 +139,7 @@ enum FADE_TO_WHITE, }; -void FadeScreen(u8, u8); +void FadeScreen(u8, s8); // ... void UpdateSpritePaletteWithWeather(u8 tag); void ApplyWeatherGammaShiftToPal(u8); diff --git a/src/decoration.c b/src/decoration.c index a9777c86f..68a455285 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -529,7 +529,7 @@ void SecretBasePC_PutAway(u8 taskId) { sub_8126A58(0); sub_8197434(0, 0); - fade_screen(1, 0); + FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_8129ABC; } @@ -1247,7 +1247,7 @@ void sub_8127F68(u8 taskId) { if (sub_8127F38() == TRUE) { - fade_screen(1, 0); + FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_8128060; } @@ -1661,7 +1661,7 @@ void sub_8128BA0(u8 taskId) void sub_8128BBC(u8 taskId) { - fade_screen(1, 0); + FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = c1_overworld_prev_quest; } @@ -2635,7 +2635,7 @@ void sub_812A1A0(u8 taskId) void sub_812A1C0(u8 taskId) { - fade_screen(1, 0); + FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_81298EC; } @@ -2654,7 +2654,7 @@ void sub_812A210(u8 taskId) void sub_812A22C(u8 taskId) { - fade_screen(1, 0); + FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_812A25C; } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 435886638..e8f22e903 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -61,7 +61,7 @@ extern u8 sav1_map_get_name(void); extern s8 ProcessMenuInputNoWrap_(void); extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8); extern void sub_806A068(u16, u8); -extern void fade_screen(u8, u8); +extern void FadeScreen(u8, u8); extern void overworld_free_bg_tilemaps(void); extern void sub_80AF168(void); extern void AllocateMonSpritesGfx(void); @@ -465,7 +465,7 @@ void EggHatch(void) { ScriptContext2_Enable(); CreateTask(Task_EggHatch, 10); - fade_screen(1, 0); + FadeScreen(1, 0); } static void Task_EggHatch(u8 taskID) diff --git a/src/scrcmd.c b/src/scrcmd.c index 0557cd95e..1768f0d4c 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -638,7 +638,7 @@ static bool8 IsPaletteNotActive(void) bool8 ScrCmd_fadescreen(struct ScriptContext *ctx) { - fade_screen(ScriptReadByte(ctx), 0); + FadeScreen(ScriptReadByte(ctx), 0); SetupNativeScript(ctx, IsPaletteNotActive); return TRUE; } @@ -648,7 +648,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx) u8 mode = ScriptReadByte(ctx); u8 speed = ScriptReadByte(ctx); - fade_screen(mode, speed); + FadeScreen(mode, speed); SetupNativeScript(ctx, IsPaletteNotActive); return TRUE; } @@ -662,12 +662,12 @@ bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx) case 1: default: CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE); - fade_screen(mode, 0); + FadeScreen(mode, 0); break; case 0: case 2: CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE); - fade_screen(mode, 0); + FadeScreen(mode, 0); break; } @@ -726,7 +726,7 @@ bool8 ScrCmd_setweather(struct ScriptContext *ctx) bool8 ScrCmd_resetweather(struct ScriptContext *ctx) { - sub_80AEDBC(); + SetSav1WeatherFromCurrMapHeader(); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index bf6bec1f8..61c2511b7 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -394,7 +394,7 @@ void sub_80E8FD0(u8 taskId) void sub_80E9068(void) { CreateTask(sub_80E8FD0, 0); - fade_screen(1, 0); + FadeScreen(1, 0); saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } @@ -451,7 +451,7 @@ void sub_80E916C(u8 taskId) void sub_80E91F8(void) { CreateTask(sub_80E916C, 0); - fade_screen(1, 0); + FadeScreen(1, 0); } bool8 CurrentMapIsSecretBase(void) @@ -651,7 +651,7 @@ void sub_80E96A4(u8 taskId) void sub_80E9728(void) { CreateTask(sub_80E96A4, 0); - fade_screen(1, 0); + FadeScreen(1, 0); } void sub_80E9744(void) -- cgit v1.2.3 From 0995b753458fbc6117e2ca813de258165b1cddc0 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 16:37:42 +0100 Subject: Delete option_menu.s --- asm/option_menu.s | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 asm/option_menu.s diff --git a/asm/option_menu.s b/asm/option_menu.s deleted file mode 100644 index c3fc4d140..000000000 --- a/asm/option_menu.s +++ /dev/null @@ -1,10 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - .align 2, 0 @ Don't pad with nop. -- cgit v1.2.3 From e6fb626c1fddb2f696b26219156d2591867295e7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 16:46:56 +0100 Subject: decompile_coord_event_weather --- asm/coord_event_weather.s | 156 ------------------------------------------ asm/field_control_avatar.s | 2 +- asm/field_screen.s | 26 +++---- data/coord_event_weather.s | 21 ------ include/constants/weather.h | 39 +++++++++++ include/coord_event_weather.h | 6 ++ include/field_weather.h | 1 + ld_script.txt | 4 +- src/coord_event_weather.c | 119 ++++++++++++++++++++++++++++++++ 9 files changed, 181 insertions(+), 193 deletions(-) delete mode 100644 asm/coord_event_weather.s delete mode 100644 data/coord_event_weather.s create mode 100644 include/constants/weather.h create mode 100644 include/coord_event_weather.h create mode 100644 src/coord_event_weather.c diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s deleted file mode 100644 index 7c1188ad6..000000000 --- a/asm/coord_event_weather.s +++ /dev/null @@ -1,156 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_809D7BC -sub_809D7BC: @ 809D7BC - push {lr} - movs r0, 0x1 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D7BC - - thumb_func_start sub_809D7C8 -sub_809D7C8: @ 809D7C8 - push {lr} - movs r0, 0x2 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D7C8 - - thumb_func_start sub_809D7D4 -sub_809D7D4: @ 809D7D4 - push {lr} - movs r0, 0x3 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D7D4 - - thumb_func_start sub_809D7E0 -sub_809D7E0: @ 809D7E0 - push {lr} - movs r0, 0x4 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D7E0 - - thumb_func_start sub_809D7EC -sub_809D7EC: @ 809D7EC - push {lr} - movs r0, 0x5 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D7EC - - thumb_func_start sub_809D7F8 -sub_809D7F8: @ 809D7F8 - push {lr} - movs r0, 0x6 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D7F8 - - thumb_func_start sub_809D804 -sub_809D804: @ 809D804 - push {lr} - movs r0, 0x9 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D804 - - thumb_func_start sub_809D810 -sub_809D810: @ 809D810 - push {lr} - movs r0, 0x7 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D810 - - thumb_func_start sub_809D81C -sub_809D81C: @ 809D81C - push {lr} - movs r0, 0x8 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D81C - - thumb_func_start sub_809D828 -sub_809D828: @ 809D828 - push {lr} - movs r0, 0xB - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D828 - - thumb_func_start sub_809D834 -sub_809D834: @ 809D834 - push {lr} - movs r0, 0xC - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D834 - - thumb_func_start sub_809D840 -sub_809D840: @ 809D840 - push {lr} - movs r0, 0x14 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D840 - - thumb_func_start sub_809D84C -sub_809D84C: @ 809D84C - push {lr} - movs r0, 0x15 - bl sub_80AEDF0 - pop {r0} - bx r0 - thumb_func_end sub_809D84C - - thumb_func_start trigger_activate_weather -trigger_activate_weather: @ 809D858 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r2, 0 - ldr r3, =gUnknown_085102E0 -_0809D862: - lsls r1, r2, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r4 - bne _0809D87C - adds r0, r3, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - bl _call_via_r0 - b _0809D886 - .pool -_0809D87C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xC - bls _0809D862 -_0809D886: - pop {r4} - pop {r0} - bx r0 - thumb_func_end trigger_activate_weather - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index e0e7b5efb..89e6efa6a 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -2155,7 +2155,7 @@ trigger_activate: @ 809D04C cmp r1, 0 bne _0809D062 ldrb r0, [r4, 0x6] - bl trigger_activate_weather + bl DoCoordEventWeather b _0809D082 _0809D062: ldrh r0, [r4, 0x6] diff --git a/asm/field_screen.s b/asm/field_screen.s index 6b49b9c7c..7b0667980 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -2339,43 +2339,43 @@ _080AC290: .4byte _080AC300 _080AC2B8: movs r0, 0x1 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2C0: movs r0, 0x2 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2C8: movs r0, 0x3 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2D0: movs r0, 0x4 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2D8: movs r0, 0x5 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2E0: movs r0, 0x6 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2E8: movs r0, 0x9 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2F0: movs r0, 0x7 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC2F8: movs r0, 0x8 - bl sub_80AEDF0 + bl SetWeather b _080AC306 _080AC300: movs r0, 0xB - bl sub_80AEDF0 + bl SetWeather _080AC306: pop {r0} bx r0 @@ -7561,8 +7561,8 @@ sub_80AEDBC: @ 80AEDBC .pool thumb_func_end sub_80AEDBC - thumb_func_start sub_80AEDF0 -sub_80AEDF0: @ 80AEDF0 + thumb_func_start SetWeather +SetWeather: @ 80AEDF0 push {lr} bl SetSav1Weather bl GetSav1Weather @@ -7571,7 +7571,7 @@ sub_80AEDF0: @ 80AEDF0 bl weather_set pop {r0} bx r0 - thumb_func_end sub_80AEDF0 + thumb_func_end SetWeather thumb_func_start sub_80AEE08 sub_80AEE08: @ 80AEE08 diff --git a/data/coord_event_weather.s b/data/coord_event_weather.s deleted file mode 100644 index c7b995912..000000000 --- a/data/coord_event_weather.s +++ /dev/null @@ -1,21 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_085102E0:: @ 85102E0 - .4byte 0x00000001, sub_809D7BC - .4byte 0x00000002, sub_809D7C8 - .4byte 0x00000003, sub_809D7D4 - .4byte 0x00000004, sub_809D7E0 - .4byte 0x00000005, sub_809D7EC - .4byte 0x00000006, sub_809D7F8 - .4byte 0x00000007, sub_809D804 - .4byte 0x00000008, sub_809D810 - .4byte 0x00000009, sub_809D81C - .4byte 0x0000000a, sub_809D828 - .4byte 0x0000000b, sub_809D834 - .4byte 0x00000014, sub_809D840 - .4byte 0x00000015, sub_809D84C - diff --git a/include/constants/weather.h b/include/constants/weather.h new file mode 100644 index 000000000..953cc2753 --- /dev/null +++ b/include/constants/weather.h @@ -0,0 +1,39 @@ +#ifndef GUARD_CONSTANTS_WEATHER_H +#define GUARD_CONSTANTS_WEATHER_H + +#define WEATHER_NONE 0 +#define WEATHER_CLOUDS 1 +#define WEATHER_SUNNY 2 +#define WEATHER_RAIN_LIGHT 3 +#define WEATHER_SNOW 4 +#define WEATHER_RAIN_MED 5 +#define WEATHER_FOG_1 6 +#define WEATHER_ASH 7 +#define WEATHER_SANDSTORM 8 +#define WEATHER_FOG_2 9 +#define WEATHER_FOG_3 10 +#define WEATHER_SHADE 11 +#define WEATHER_DROUGHT 12 +#define WEATHER_RAIN_HEAVY 13 +#define WEATHER_BUBBLES 14 +#define WEATHER_ROUTE119_CYCLE 20 +#define WEATHER_ROUTE123_CYCLE 21 + +// These are used in maps' coord_weather_event entries. +// They are not a one-to-one mapping with the engine's +// internal weather constants above. +#define COORD_EVENT_WEATHER_CLOUDS 1 +#define COORD_EVENT_WEATHER_SUNNY 2 +#define COORD_EVENT_WEATHER_RAIN_LIGHT 3 +#define COORD_EVENT_WEATHER_SNOW 4 +#define COORD_EVENT_WEATHER_RAIN_MED 5 +#define COORD_EVENT_WEATHER_FOG_1 6 +#define COORD_EVENT_WEATHER_FOG_2 7 +#define COORD_EVENT_WEATHER_ASH 8 +#define COORD_EVENT_WEATHER_SANDSTORM 9 +#define COORD_EVENT_WEATHER_SHADE 10 +#define COORD_EVENT_WEATHER_DROUGHT 11 +#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 +#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 + +#endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/coord_event_weather.h b/include/coord_event_weather.h new file mode 100644 index 000000000..86fb48793 --- /dev/null +++ b/include/coord_event_weather.h @@ -0,0 +1,6 @@ +#ifndef GUARD_COORD_EVENT_WEATHER_H +#define GUARD_COORD_EVENT_WEATHER_H + +void DoCoordEventWeather(u8); + +#endif // GUARD_COORD_EVENT_WEATHER_H diff --git a/include/field_weather.h b/include/field_weather.h index e12107e70..b39af437b 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -6,6 +6,7 @@ void fade_screen(u8, s8); void SetSav1Weather(u32); u8 GetSav1Weather(void); void sub_80AEDBC(void); +void SetWeather(u32); void DoCurrentWeather(void); diff --git a/ld_script.txt b/ld_script.txt index f2a9d8196..2d65114f7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -105,7 +105,7 @@ SECTIONS { src/scrcmd.o(.text); asm/field_control_avatar.o(.text); src/event_data.o(.text); - asm/coord_event_weather.o(.text); + src/coord_event_weather.o(.text); asm/field_tasks.o(.text); src/clock.o(.text); asm/reset_rtc_screen.o(.text); @@ -407,7 +407,7 @@ SECTIONS { data/map_obj_8097404.o(.rodata); src/text_window.o(.rodata); src/scrcmd.o(.rodata); - data/coord_event_weather.o(.rodata); + src/coord_event_weather.o(.rodata); data/field_tasks.o(.rodata); data/reset_rtc_screen.o(.rodata); src/start_menu.o(.rodata); diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c new file mode 100644 index 000000000..60b87fa30 --- /dev/null +++ b/src/coord_event_weather.c @@ -0,0 +1,119 @@ +#include "global.h" +#include "constants/weather.h" +#include "coord_event_weather.h" +#include "field_weather.h" + +struct CoordEventWeather +{ + u8 coordEventWeather; + void (*func)(void); +}; + +static void CoordEventWeather_Clouds(void); +static void CoordEventWeather_Sunny(void); +static void CoordEventWeather_LightRain(void); +static void CoordEventWeather_Snow(void); +static void CoordEventWeather_Thunderstorm(void); +static void CoordEventWeather_Fog(void); +static void CoordEventWeather_DiagonalFog(void); +static void CoordEventWeather_Ash(void); +static void CoordEventWeather_Sandstorm(void); +static void CoordEventWeather_Dark(void); +static void CoordEventWeather_Drought(void); +static void CoordEventWeather_Route119Cycle(void); +static void CoordEventWeather_Route123Cycle(void); + +static const struct CoordEventWeather sCoordEventWeatherFuncs[] = +{ + { COORD_EVENT_WEATHER_CLOUDS, CoordEventWeather_Clouds }, + { COORD_EVENT_WEATHER_SUNNY, CoordEventWeather_Sunny }, + { COORD_EVENT_WEATHER_RAIN_LIGHT, CoordEventWeather_LightRain }, + { COORD_EVENT_WEATHER_SNOW, CoordEventWeather_Snow }, + { COORD_EVENT_WEATHER_RAIN_MED, CoordEventWeather_Thunderstorm }, + { COORD_EVENT_WEATHER_FOG_1, CoordEventWeather_Fog }, + { COORD_EVENT_WEATHER_FOG_2, CoordEventWeather_DiagonalFog }, + { COORD_EVENT_WEATHER_ASH, CoordEventWeather_Ash }, + { COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm }, + { COORD_EVENT_WEATHER_SHADE, CoordEventWeather_Dark }, + { COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought }, + { COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle }, + { COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle }, +}; + +static void CoordEventWeather_Clouds(void) +{ + SetWeather(WEATHER_CLOUDS); +} + +static void CoordEventWeather_Sunny(void) +{ + SetWeather(WEATHER_SUNNY); +} + +static void CoordEventWeather_LightRain(void) +{ + SetWeather(WEATHER_RAIN_LIGHT); +} + +static void CoordEventWeather_Snow(void) +{ + SetWeather(WEATHER_SNOW); +} + +static void CoordEventWeather_Thunderstorm(void) +{ + SetWeather(WEATHER_RAIN_MED); +} + +static void CoordEventWeather_Fog(void) +{ + SetWeather(WEATHER_FOG_1); +} + +static void CoordEventWeather_DiagonalFog(void) +{ + SetWeather(WEATHER_FOG_2); +} + +static void CoordEventWeather_Ash(void) +{ + SetWeather(WEATHER_ASH); +} + +static void CoordEventWeather_Sandstorm(void) +{ + SetWeather(WEATHER_SANDSTORM); +} + +static void CoordEventWeather_Dark(void) +{ + SetWeather(WEATHER_SHADE); +} + +static void CoordEventWeather_Drought(void) +{ + SetWeather(WEATHER_DROUGHT); +} + +static void CoordEventWeather_Route119Cycle(void) +{ + SetWeather(WEATHER_ROUTE119_CYCLE); +} + +static void CoordEventWeather_Route123Cycle(void) +{ + SetWeather(WEATHER_ROUTE123_CYCLE); +} + +void DoCoordEventWeather(u8 coordEventWeather) +{ + u8 i; + for (i = 0; i < ARRAY_COUNT(sCoordEventWeatherFuncs); i++) + { + if (sCoordEventWeatherFuncs[i].coordEventWeather == coordEventWeather) + { + sCoordEventWeatherFuncs[i].func(); + return; + } + } +} -- cgit v1.2.3 From db3ecf5012612ed08aab55f4a8993afea74a4216 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 29 Jan 2018 17:47:12 +0100 Subject: decompile scanline effect --- asm/battle_anim_80FE840.s | 132 +++++----- asm/battle_anim_815A0D4.s | 24 +- asm/battle_frontier_1.s | 10 +- asm/contest.s | 4 +- asm/contest_link_80F57C4.s | 4 +- asm/field_screen.s | 28 +-- asm/intro.s | 10 +- asm/link.s | 14 +- asm/overworld.s | 8 +- asm/pokenav.s | 14 +- asm/rayquaza_scene.s | 10 +- asm/reset_rtc_screen.s | 2 +- asm/start_menu.s | 2 +- asm/title_screen.s | 4 +- asm/trainer_card.s | 20 +- asm/unknown_task.s | 593 --------------------------------------------- asm/use_pokeblock.s | 4 +- include/scanline_effect.h | 47 ++++ include/unknown_task.h | 22 -- ld_script.txt | 2 +- src/battle_2.c | 45 ++-- src/battle_transition.c | 258 ++++++++++---------- src/berry_fix_program.c | 2 +- src/diploma.c | 2 +- src/evolution_scene.c | 6 +- src/hall_of_fame.c | 2 +- src/mail.c | 2 +- src/option_menu.c | 2 +- src/pokeblock.c | 2 +- src/reshow_battle_screen.c | 6 +- src/scanline_effect.c | 262 ++++++++++++++++++++ src/use_pokeblock.c | 4 +- src/wallclock.c | 2 +- sym_ewram.txt | 31 +-- 34 files changed, 616 insertions(+), 964 deletions(-) delete mode 100644 asm/unknown_task.s create mode 100644 include/scanline_effect.h delete mode 100644 include/unknown_task.h create mode 100644 src/scanline_effect.c diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 031bf2128..9a8b378ac 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -12802,7 +12802,7 @@ _08104EDC: lsls r0, 16 cmp r2, r0 bgt _08104F1A - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r4, r0 @@ -12839,7 +12839,7 @@ _08104F1A: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldr r0, =sub_8104F54 str r0, [r5] add sp, 0xC @@ -12919,7 +12919,7 @@ _08104FCC: ldrsh r0, [r3, r1] cmp r0, 0 blt _08104FF0 - ldr r2, =gUnknown_02038C28 + ldr r2, =gScanlineEffectRegBuffers lsls r0, 1 adds r0, r2 ldrh r1, [r3, 0x14] @@ -12943,7 +12943,7 @@ _08104FF0: ldrsh r1, [r3, r2] cmp r0, r1 blt _0810500E - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] adds r0, r4, 0 @@ -18518,7 +18518,7 @@ _08107D8C: movs r3, 0 movs r2, 0x10 ldrsh r0, [r4, r2] - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers mov r12, r1 cmp r3, r0 bge _08107DCA @@ -18555,7 +18555,7 @@ _08107DCA: ldrsh r0, [r4, r3] cmp r1, r0 bge _08107E04 - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -18584,7 +18584,7 @@ _08107E04: asrs r0, r2, 16 cmp r0, 0x9F bgt _08107E3A - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -18652,7 +18652,7 @@ _08107E7A: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -18689,8 +18689,8 @@ _08107ED8: ldrsh r0, [r4, r1] cmp r3, r0 bge _08107F0C - ldr r6, =gUnknown_02038C28 - ldr r5, =gUnknown_02039B28 + ldr r6, =gScanlineEffectRegBuffers + ldr r5, =gScanlineEffect _08107EE6: lsls r1, r3, 16 asrs r1, 16 @@ -18719,8 +18719,8 @@ _08107F0C: ldrsh r0, [r4, r3] cmp r1, r0 bge _08107F40 - ldr r6, =gUnknown_02038C28 - ldr r5, =gUnknown_02039B28 + ldr r6, =gScanlineEffectRegBuffers + ldr r5, =gScanlineEffect _08107F1E: asrs r3, r2, 16 lsls r2, r3, 1 @@ -18745,8 +18745,8 @@ _08107F40: asrs r0, r1, 16 cmp r0, 0x9F bgt _08108022 - ldr r6, =gUnknown_02038C28 - ldr r5, =gUnknown_02039B28 + ldr r6, =gScanlineEffectRegBuffers + ldr r5, =gScanlineEffect _08107F4E: asrs r3, r1, 16 lsls r2, r3, 1 @@ -18771,8 +18771,8 @@ _08107F78: ldrsh r0, [r4, r1] cmp r3, r0 bge _08107FAC - ldr r6, =gUnknown_02038C28 - ldr r5, =gUnknown_02039B28 + ldr r6, =gScanlineEffectRegBuffers + ldr r5, =gScanlineEffect _08107F86: lsls r1, r3, 16 asrs r1, 16 @@ -18801,8 +18801,8 @@ _08107FAC: ldrsh r0, [r4, r3] cmp r1, r0 bge _08107FE0 - ldr r6, =gUnknown_02038C28 - ldr r5, =gUnknown_02039B28 + ldr r6, =gScanlineEffectRegBuffers + ldr r5, =gScanlineEffect _08107FBE: asrs r3, r2, 16 lsls r2, r3, 1 @@ -18827,8 +18827,8 @@ _08107FE0: asrs r0, r1, 16 cmp r0, 0x9F bgt _0810800C - ldr r6, =gUnknown_02038C28 - ldr r5, =gUnknown_02039B28 + ldr r6, =gScanlineEffectRegBuffers + ldr r5, =gScanlineEffect _08107FEE: asrs r3, r1, 16 lsls r2, r3, 1 @@ -34618,7 +34618,7 @@ _0810FEC0: adds r0, 0x40 cmp r1, r0 bgt _0810FEFA - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -34651,7 +34651,7 @@ _0810FEFA: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldr r0, =sub_810FF34 str r0, [r4] add sp, 0xC @@ -34700,7 +34700,7 @@ _0810FF66: ldr r0, =gSineTable mov r9, r0 movs r7, 0x3 - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers mov r12, r1 movs r2, 0xF0 lsls r2, 3 @@ -34775,7 +34775,7 @@ _0810FFFE: ble _08110026 b _08110014 _0811000E: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _08110014: @@ -38728,7 +38728,7 @@ _08112054: _0811206C: movs r2, 0x2 movs r3, 0x6 - bl sub_80BA384 + bl ScanlineEffect_InitWave lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] @@ -38884,7 +38884,7 @@ _081121A8: beq _081121F0 b _08112258 _081121AE: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 @@ -41152,7 +41152,7 @@ _0811345A: ldrsh r0, [r4, r1] cmp r3, r0 bgt _08113488 - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -41175,7 +41175,7 @@ _08113488: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldr r0, =sub_81134B8 str r0, [r4] add sp, 0xC @@ -41264,7 +41264,7 @@ _0811354E: bl sub_8113574 b _0811356E _08113556: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] ldrh r0, [r2, 0x8] @@ -41292,11 +41292,11 @@ sub_8113574: @ 8113574 ldrsh r0, [r5, r1] cmp r4, r0 bgt _081135CA - ldr r7, =gUnknown_02038C28 + ldr r7, =gScanlineEffectRegBuffers mov r12, r7 ldr r0, =gSineTable mov r8, r0 - ldr r6, =gUnknown_02039B28 + ldr r6, =gScanlineEffect _08113592: lsls r2, r4, 1 ldrb r1, [r6, 0x14] @@ -42169,7 +42169,7 @@ _08113CB0: movs r0, 0x3 bl sub_8114374 movs r3, 0 - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r4, r0 @@ -42189,7 +42189,7 @@ _08113CDC: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams movs r0, 0x3F eors r7, r0 movs r1, 0xFC @@ -42344,7 +42344,7 @@ _08113E3E: b _08113E5E .pool _08113E58: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _08113E5E: @@ -42534,7 +42534,7 @@ _08114002: str r0, [sp, 0x10] movs r3, 0 add r4, sp, 0x10 - ldr r6, =gUnknown_02038C28 + ldr r6, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r7, r6, r0 @@ -42563,7 +42563,7 @@ _08114010: strb r2, [r4, 0x9] ldr r0, [sp, 0x10] ldr r2, [r4, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams _08114044: ldrh r0, [r5, 0x8] adds r0, 0x1 @@ -42772,7 +42772,7 @@ _081141DA: bne _08114232 b _08114204 _081141FE: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _08114204: @@ -42827,9 +42827,9 @@ sub_8114244: @ 8114244 movs r4, 0 cmp r0, 0 ble _081142A4 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers mov r12, r0 - ldr r7, =gUnknown_02039B28 + ldr r7, =gScanlineEffect _08114278: lsls r2, r4, 16 asrs r2, 16 @@ -42861,9 +42861,9 @@ _081142A4: ldrsh r0, [r6, r2] cmp r1, r0 bgt _081142EE - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers mov r12, r0 - ldr r7, =gUnknown_02039B28 + ldr r7, =gScanlineEffect _081142B8: asrs r4, r3, 16 cmp r4, 0 @@ -42904,8 +42904,8 @@ _081142EE: ldrsh r0, [r6, r3] cmp r1, r0 bge _08114366 - ldr r7, =gUnknown_02038C28 - ldr r4, =gUnknown_02039B28 + ldr r7, =gScanlineEffectRegBuffers + ldr r4, =gScanlineEffect _08114306: asrs r3, r2, 16 cmp r3, 0 @@ -42935,7 +42935,7 @@ _08114338: adds r5, r0, 0 adds r5, 0x9F movs r4, 0 - ldr r3, =gUnknown_02038C28 + ldr r3, =gScanlineEffectRegBuffers movs r2, 0xF0 lsls r2, 3 adds r6, r3, r2 @@ -44235,7 +44235,7 @@ _08114E4E: b _08114E7E .pool _08114E78: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _08114E7E: @@ -44510,7 +44510,7 @@ _08115094: ldrsh r0, [r0, r1] cmp r0, 0 bne _081150DA - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _081150C2: @@ -44561,7 +44561,7 @@ _08115114: asrs r4, r0, 16 cmp r2, r0 bge _08115140 - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -44584,7 +44584,7 @@ _08115140: asrs r0, r1, 16 cmp r0, 0x9F bgt _0811516E - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers lsls r0, r3, 16 asrs r0, 16 adds r3, r0, 0 @@ -44616,7 +44616,7 @@ _0811516E: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams add sp, 0xC pop {r4-r6} pop {r0} @@ -50740,9 +50740,9 @@ _08118442: strh r0, [r1, 0xC] _0811845A: movs r3, 0 - ldr r5, =gUnknown_02039B28 + ldr r5, =gScanlineEffect mov r9, r5 - ldr r7, =gUnknown_02038C28 + ldr r7, =gScanlineEffectRegBuffers mov r6, r9 adds r5, r1, 0 _08118466: @@ -50760,8 +50760,8 @@ _08118466: ble _08118466 cmp r3, 0x9F bgt _081184AA - ldr r7, =gUnknown_02038C28 - ldr r6, =gUnknown_02039B28 + ldr r7, =gScanlineEffectRegBuffers + ldr r6, =gScanlineEffect ldr r1, =gTasks mov r2, r12 adds r0, r2, r4 @@ -51089,9 +51089,9 @@ _0811873C: strh r0, [r1, 0xC] _08118752: movs r3, 0 - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect mov r8, r0 - ldr r2, =gUnknown_02038C28 + ldr r2, =gScanlineEffectRegBuffers mov r12, r2 mov r7, r8 adds r4, r1, 0 @@ -51110,9 +51110,9 @@ _08118760: ble _08118760 cmp r3, 0x9F bgt _081187A4 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers mov r12, r0 - ldr r7, =gUnknown_02039B28 + ldr r7, =gScanlineEffect ldr r1, =gTasks adds r0, r6, r5 lsls r0, 3 @@ -51378,9 +51378,9 @@ _081189BA: strh r0, [r1, 0xC] _081189D0: movs r3, 0 - ldr r6, =gUnknown_02039B28 + ldr r6, =gScanlineEffect mov r8, r6 - ldr r7, =gUnknown_02038C28 + ldr r7, =gScanlineEffectRegBuffers adds r4, r1, 0 _081189DA: lsls r2, r3, 1 @@ -51397,8 +51397,8 @@ _081189DA: ble _081189DA cmp r3, 0x9F bgt _08118A1E - ldr r7, =gUnknown_02038C28 - ldr r6, =gUnknown_02039B28 + ldr r7, =gScanlineEffectRegBuffers + ldr r6, =gScanlineEffect ldr r1, =gTasks mov r2, r12 adds r0, r2, r5 @@ -51707,9 +51707,9 @@ _08118C90: strh r0, [r1, 0xC] _08118CA6: movs r3, 0 - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect mov r12, r0 - ldr r2, =gUnknown_02038C28 + ldr r2, =gScanlineEffectRegBuffers mov r8, r2 mov r7, r12 adds r4, r1, 0 @@ -51728,9 +51728,9 @@ _08118CB4: ble _08118CB4 cmp r3, 0x9F bgt _08118CF8 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers mov r8, r0 - ldr r7, =gUnknown_02039B28 + ldr r7, =gScanlineEffect ldr r1, =gTasks adds r0, r5, r6 lsls r0, 3 @@ -52025,7 +52025,7 @@ _08118F28: lsls r1, 7 movs r0, 0xC bl SetGpuReg - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] ldr r1, =gTasks diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index d583f1e85..f3b72792d 100644 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -1689,7 +1689,7 @@ _0815AE58: ldrsh r0, [r5, r6] cmp r1, r0 bgt _0815AE8E - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r4 @@ -1729,7 +1729,7 @@ _0815AEA2: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldr r0, =sub_815AED8 str r0, [r5] add sp, 0xC @@ -1820,7 +1820,7 @@ _0815AF5C: ldrsh r0, [r4, r2] cmp r1, r0 bge _0815AF90 - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1848,7 +1848,7 @@ _0815AF90: ldrsh r0, [r4, r2] cmp r1, r0 bgt _0815AFC4 - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1877,7 +1877,7 @@ _0815AFC4: ldrsh r0, [r4, r1] cmp r0, 0 beq _0815AFDA - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _0815AFDA: @@ -6151,7 +6151,7 @@ _0815D316: ldrh r3, [r0] movs r7, 0 movs r2, 0 - ldr r6, =gUnknown_02038C28 + ldr r6, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r6 @@ -6192,7 +6192,7 @@ _0815D326: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldr r0, =sub_815D398 str r0, [r4] add sp, 0xC @@ -6304,7 +6304,7 @@ _0815D40E: ldrsh r0, [r6, r3] cmp r1, r0 ble _0815D52E - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 @@ -6325,7 +6325,7 @@ _0815D47E: subs r0, r1 lsls r0, 7 adds r2, r0 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers adds r2, r0 lsls r4, 16 asrs r4, 16 @@ -6343,7 +6343,7 @@ _0815D47E: subs r0, r1 lsls r0, 7 adds r3, r0 - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers adds r3, r1 lsls r1, r7, 16 asrs r1, 16 @@ -6407,7 +6407,7 @@ _0815D52E: lsls r1, r2, 17 cmp r1, 0 blt _0815D55A - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 @@ -6487,7 +6487,7 @@ _0815D5CC: asrs r0, 16 cmp r0, 0xC ble _0815D63C - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 91c8215e5..31d5d3fbe 100644 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -11000,8 +11000,8 @@ _0819486C: movs r1, 0 strh r1, [r0, 0x8] _08194878: - bl dp12_8087EA4 - ldr r0, =gUnknown_02038C28 + bl ScanlineEffect_Clear + ldr r0, =gScanlineEffectRegBuffers ldr r2, =0x00001f0a movs r4, 0xF0 lsls r4, 3 @@ -11017,7 +11017,7 @@ _08194888: bge _08194888 movs r5, 0x5B ldr r3, =gUnknown_0860CF44 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers ldr r2, =0x00001f09 ldr r4, =0x00000836 adds r1, r0, r4 @@ -11033,7 +11033,7 @@ _081948A4: ldr r0, [r3] ldr r1, [r3, 0x4] ldr r2, [r3, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams mov r0, r8 bl DestroyTask _081948C2: @@ -11513,7 +11513,7 @@ sub_8194CE4: @ 8194CE4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .pool diff --git a/asm/contest.s b/asm/contest.s index 3c34965ad..e81ce8d5c 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -563,7 +563,7 @@ _080D7B4E: bl sub_80D779C bl sub_80D77E4 bl sub_80D7678 - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl ResetPaletteFade ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] @@ -1367,7 +1367,7 @@ vblank_cb_battle: @ 80D827C bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .pool diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 55503fde1..e73c657a9 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -344,7 +344,7 @@ sub_80F5B00: @ 80F5B00 bl SetVBlankCallback bl sub_80F7DF4 bl sub_80F57C4 - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl ResetPaletteFade bl ResetSpriteData bl ResetTasks @@ -492,7 +492,7 @@ sub_80F5C24: @ 80F5C24 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .pool diff --git a/asm/field_screen.s b/asm/field_screen.s index 6b49b9c7c..c02ba6492 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -9572,12 +9572,12 @@ _080AFE30: beq _080AFEBC b _080AFEC6 _080AFE36: - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers adds r0, r1 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -9591,12 +9591,12 @@ _080AFE36: b _080AFEC6 .pool _080AFE64: - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers adds r0, r1 movs r6, 0x2 ldrsh r1, [r4, r6] @@ -9631,7 +9631,7 @@ _080AFEB4: bl DestroyTask b _080AFEC6 _080AFEBC: - bl dp12_8087EA4 + bl ScanlineEffect_Clear adds r0, r5, 0 bl DestroyTask _080AFEC6: @@ -9665,12 +9665,12 @@ _080AFEF4: beq _080AFF80 b _080AFF8A _080AFEFA: - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers adds r0, r1 movs r2, 0x2 ldrsh r1, [r4, r2] @@ -9684,12 +9684,12 @@ _080AFEFA: b _080AFF8A .pool _080AFF28: - ldr r0, =gUnknown_02039B28 + ldr r0, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers adds r0, r1 movs r6, 0x2 ldrsh r1, [r4, r6] @@ -9724,7 +9724,7 @@ _080AFF78: bl DestroyTask b _080AFF8A _080AFF80: - bl dp12_8087EA4 + bl ScanlineEffect_Clear adds r0, r5, 0 bl DestroyTask _080AFF8A: @@ -9914,7 +9914,7 @@ sub_80B00E8: @ 80B00E8 lsrs r0, 24 cmp r0, 0 beq _080B0116 - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers ldr r1, =gUnknown_0854FE64 lsls r0, 1 adds r0, r1 @@ -9940,7 +9940,7 @@ _080B0116: thumb_func_start door_upload_tiles door_upload_tiles: @ 80B0124 push {r4,lr} - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e68 @@ -10261,7 +10261,7 @@ _080B0368: bl sub_8199C30 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers movs r2, 0x4 ldrsh r1, [r5, r2] movs r0, 0x6 @@ -10280,7 +10280,7 @@ _080B0368: ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams movs r0, 0x1 strh r0, [r5] b _080B052C diff --git a/asm/intro.s b/asm/intro.s index efc36e7d9..3e95c6ec7 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -11,7 +11,7 @@ sub_816CBE8: @ 816CBE8 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 thumb_func_end sub_816CBE8 @@ -2124,7 +2124,7 @@ task_intro_17: @ 816DEEC movs r1, 0xA0 movs r2, 0x4 movs r3, 0x4 - bl sub_80BA384 + bl ScanlineEffect_InitWave add sp, 0xC pop {r0} bx r0 @@ -2411,7 +2411,7 @@ _0816E156: adds r0, r1 ldr r1, =task_intro_19 str r1, [r0] - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _0816E176: @@ -2623,7 +2623,7 @@ task_intro_19: @ 816E2A0 movs r1, 0xA0 movs r2, 0x4 movs r3, 0x4 - bl sub_80BA384 + bl ScanlineEffect_InitWave add sp, 0xC pop {r4} pop {r0} @@ -3038,7 +3038,7 @@ _0816E69C: adds r0, r1 ldr r1, =task_intro_21 str r1, [r0] - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _0816E6BC: diff --git a/asm/link.s b/asm/link.s index 1ad160340..e05d33974 100644 --- a/asm/link.s +++ b/asm/link.s @@ -39837,7 +39837,7 @@ sub_801DF20: @ 801DF20 bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 thumb_func_end sub_801DF20 @@ -42568,7 +42568,7 @@ sub_801F544: @ 801F544 str r0, [r4] _0801F55A: bl FreeAllWindowBuffers - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] pop {r4} @@ -44875,13 +44875,13 @@ sub_8020770: @ 8020770 strh r1, [r0, 0x20] str r1, [sp, 0xC] add r0, sp, 0xC - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers ldr r2, =0x010003c0 bl CpuFastSet ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams add sp, 0x10 pop {r0} bx r0 @@ -44896,12 +44896,12 @@ sub_80207C0: @ 80207C0 lsrs r0, 16 mov r1, sp strh r0, [r1] - ldr r5, =gUnknown_02039B28 + ldr r5, =gScanlineEffect ldrb r0, [r5, 0x14] lsls r1, r0, 4 subs r1, r0 lsls r1, 7 - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers adds r1, r4 ldr r2, =0x01000090 mov r0, sp @@ -44939,7 +44939,7 @@ sub_8020818: @ 8020818 lsrs r4, 16 mov r0, sp strh r4, [r0] - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers ldr r0, =0x01000090 mov r9, r0 mov r0, sp diff --git a/asm/overworld.s b/asm/overworld.s index 2858fb6d3..d2d389eac 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3637,7 +3637,7 @@ VBlankCB_Field: @ 8086390 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer bl FieldUpdateBgTilemapScroll bl TransferPlttBuffer bl TransferTilesetAnimsBuffer @@ -3657,7 +3657,7 @@ sub_80863B0: @ 80863B0 ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams b _080863F0 .pool _080863D4: @@ -3671,7 +3671,7 @@ _080863D4: ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams _080863F0: pop {r0} bx r0 @@ -4294,7 +4294,7 @@ sub_8086988: @ 8086988 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl dp13_810BB8C bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback diff --git a/asm/pokenav.s b/asm/pokenav.s index 896d9aae0..79cfeb75d 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -7068,7 +7068,7 @@ sub_81CA914: @ 81CA914 bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 thumb_func_end sub_81CA914 @@ -7101,7 +7101,7 @@ titlescreen_0: @ 81CA92C ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldr r0, =sub_81CA914 bl c3args_set_0toR1_1to0 ldr r0, =sub_81CA9EC @@ -7220,7 +7220,7 @@ sub_81CAA3C: @ 81CAA3C mov r0, sp movs r6, 0 strh r6, [r0] - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers ldr r0, =0x010000a0 mov r8, r0 mov r0, sp @@ -15647,7 +15647,7 @@ sub_81CEE44: @ 81CEE44 bl TransferPlttBuffer adds r0, r4, 0 bl sub_81D2108 - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r4} pop {r0} bx r0 @@ -22318,7 +22318,7 @@ sub_81D20BC: @ 81D20BC b _081D20FA .pool _081D20D4: - bl dp12_8087EA4 + bl ScanlineEffect_Clear ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -22332,7 +22332,7 @@ _081D20E2: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -22366,7 +22366,7 @@ sub_81D2108: @ 81D2108 adds r0, r6, 0 bl sub_81D2634 movs r7, 0 - ldr r5, =gUnknown_02038C28 + ldr r5, =gScanlineEffectRegBuffers mov r12, r5 movs r0, 0xF0 lsls r0, 3 diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s index f60b2a252..8832d3942 100644 --- a/asm/rayquaza_scene.s +++ b/asm/rayquaza_scene.s @@ -1058,7 +1058,7 @@ _081D6FC8: sub_81D6FD0: @ 81D6FD0 push {lr} bl sub_81D67EC - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 thumb_func_end sub_81D6FD0 @@ -1183,12 +1183,12 @@ sub_81D7134: @ 81D7134 lsls r6, r1, 3 ldr r7, =gTasks + 0x8 adds r5, r6, r7 - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl sub_81D6FE0 bl sub_81D706C movs r4, 0 str r4, [sp, 0x4] - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers ldr r2, =0x010003c0 add r0, sp, 0x4 bl CpuFastSet @@ -1196,7 +1196,7 @@ sub_81D7134: @ 81D7134 ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] - bl sub_80BA038 + bl ScanlineEffect_SetParams strh r4, [r5] ldr r0, =sub_81D7228 movs r1, 0 @@ -1278,7 +1278,7 @@ sub_81D7228: @ 81D7228 adds r3, r1, r0 movs r1, 0x18 ldr r7, =gUnknown_0203CF60 - ldr r4, =gUnknown_02038C28 + ldr r4, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s index ab5e0840c..b314afbf5 100644 --- a/asm/reset_rtc_screen.s +++ b/asm/reset_rtc_screen.s @@ -888,7 +888,7 @@ _0809EFCA: bl ResetOamRange bl LoadOam bl ScanlineEffect_Stop - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl ResetSpriteData bl ResetTasks bl ResetPaletteFade diff --git a/asm/start_menu.s b/asm/start_menu.s index 518b46f76..e4e75b4d2 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -1561,7 +1561,7 @@ _080A0490: bl ResetSpriteData bl ResetTasks bl ResetPaletteFade - bl dp12_8087EA4 + bl ScanlineEffect_Clear b _080A04FC _080A04A2: movs r0, 0 diff --git a/asm/title_screen.s b/asm/title_screen.s index 54c1b5353..32594424a 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -464,7 +464,7 @@ _080AA766: @ void title_screen_vblank_callback() title_screen_vblank_callback: @ 80AA780 push {lr} - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer @@ -779,7 +779,7 @@ _080AAAF0: movs r1, 0xA0 movs r2, 0x4 movs r3, 0x4 - bl sub_80BA384 + bl ScanlineEffect_InitWave ldr r0, =c2_title_screen_2 bl SetMainCallback2 _080AAB1E: diff --git a/asm/trainer_card.s b/asm/trainer_card.s index f1679d04e..fe6133618 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -18,7 +18,7 @@ sub_80C2690: @ 80C2690 cmp r0, 0 beq _080C26C0 ldr r1, =0x040000d4 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers str r0, [r1] movs r2, 0xF0 lsls r2, 3 @@ -40,7 +40,7 @@ sub_80C26D4: @ 80C26D4 ldrh r3, [r4] movs r0, 0 strh r0, [r4] - ldr r1, =gUnknown_02038C28 + ldr r1, =gScanlineEffectRegBuffers ldr r0, =0x04000006 ldrh r2, [r0] movs r0, 0xFF @@ -3977,9 +3977,9 @@ sub_80C4998: @ 80C4998 movs r0, 0x3 bl HideBg bl ScanlineEffect_Stop - bl dp12_8087EA4 + bl ScanlineEffect_Clear movs r1, 0 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers movs r2, 0 movs r3, 0xF0 lsls r3, 3 @@ -4066,7 +4066,7 @@ _080C4A0E: movs r2, 0 cmp r2, r7 bcs _080C4A78 - ldr r3, =gUnknown_02038C28 + ldr r3, =gScanlineEffectRegBuffers _080C4A60: lsls r0, r2, 16 asrs r0, 16 @@ -4091,7 +4091,7 @@ _080C4A78: lsrs r7, r4, 16 cmp r1, r0 bge _080C4AB0 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers mov r12, r0 adds r4, r3, 0 _080C4A92: @@ -4116,7 +4116,7 @@ _080C4AB0: asrs r0, r1, 16 cmp r0, 0x9F bgt _080C4ACE - ldr r2, =gUnknown_02038C28 + ldr r2, =gScanlineEffectRegBuffers _080C4ABC: asrs r0, r1, 16 lsls r1, r0, 1 @@ -4392,7 +4392,7 @@ _080C4CB6: movs r2, 0 cmp r2, r7 bcs _080C4D20 - ldr r3, =gUnknown_02038C28 + ldr r3, =gScanlineEffectRegBuffers _080C4D08: lsls r0, r2, 16 asrs r0, 16 @@ -4417,7 +4417,7 @@ _080C4D20: lsrs r7, r4, 16 cmp r1, r0 bge _080C4D56 - ldr r0, =gUnknown_02038C28 + ldr r0, =gScanlineEffectRegBuffers mov r12, r0 adds r4, r3, 0 _080C4D3A: @@ -4441,7 +4441,7 @@ _080C4D56: asrs r0, r1, 16 cmp r0, 0x9F bgt _080C4D74 - ldr r2, =gUnknown_02038C28 + ldr r2, =gScanlineEffectRegBuffers _080C4D62: asrs r0, r1, 16 lsls r1, r0, 1 diff --git a/asm/unknown_task.s b/asm/unknown_task.s deleted file mode 100644 index a8672ac8f..000000000 --- a/asm/unknown_task.s +++ /dev/null @@ -1,593 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ScanlineEffect_Stop -ScanlineEffect_Stop: @ 80B9FB8 - push {r4,lr} - ldr r4, =gUnknown_02039B28 - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x18] - cmp r0, 0xFF - beq _080B9FE2 - bl DestroyTask - movs r0, 0xFF - strb r0, [r4, 0x18] -_080B9FE2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ScanlineEffect_Stop - - thumb_func_start dp12_8087EA4 -dp12_8087EA4: @ 80B9FF8 - push {r4,lr} - sub sp, 0x4 - mov r0, sp - movs r4, 0 - strh r4, [r0] - ldr r1, =gUnknown_02038C28 - ldr r2, =0x01000780 - bl CpuSet - ldr r0, =gUnknown_02039B28 - movs r1, 0 - str r1, [r0] - str r1, [r0, 0x4] - str r1, [r0, 0x8] - str r1, [r0, 0xC] - strb r4, [r0, 0x14] - strb r4, [r0, 0x15] - strb r4, [r0, 0x16] - strb r4, [r0, 0x17] - movs r1, 0xFF - strb r1, [r0, 0x18] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end dp12_8087EA4 - - thumb_func_start sub_80BA038 -sub_80BA038: @ 80BA038 - push {lr} - sub sp, 0xC - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r0, =0xa2600001 - cmp r1, r0 - bne _080BA06C - ldr r0, =gUnknown_02039B28 - ldr r1, =gUnknown_02038C2A - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, =sub_80BA134 - b _080BA07C - .pool -_080BA06C: - ldr r0, =gUnknown_02039B28 - ldr r1, =gUnknown_02038C2C - str r1, [r0] - movs r2, 0xF0 - lsls r2, 3 - adds r1, r2 - str r1, [r0, 0x4] - ldr r1, =sub_80BA154 -_080BA07C: - str r1, [r0, 0x10] - adds r1, r0, 0 - ldr r0, [sp, 0x4] - str r0, [r1, 0xC] - ldr r0, [sp] - str r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x8] - strb r0, [r1, 0x15] - mov r0, sp - ldrb r0, [r0, 0x9] - strb r0, [r1, 0x16] - strb r0, [r1, 0x17] - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_80BA038 - - thumb_func_start sub_80BA0A8 -sub_80BA0A8: @ 80BA0A8 - push {r4,lr} - ldr r4, =gUnknown_02039B28 - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _080BA122 - cmp r0, 0x3 - bne _080BA0EC - movs r0, 0 - strb r0, [r4, 0x15] - ldr r1, =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldr r1, =gUnknown_02039B44 - movs r0, 0x1 - strb r0, [r1] - b _080BA122 - .pool -_080BA0EC: - ldr r1, =0x040000b0 - ldrh r2, [r1, 0xA] - ldr r0, =0x0000c5ff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r2, [r1, 0xA] - ldr r0, =0x00007fff - ands r0, r2 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xA] - ldrb r0, [r4, 0x14] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - ldr r0, [r4, 0x8] - str r0, [r1, 0x4] - ldr r0, [r4, 0xC] - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, [r4, 0x10] - bl _call_via_r0 - ldrb r0, [r4, 0x14] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4, 0x14] -_080BA122: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80BA0A8 - - thumb_func_start sub_80BA134 -sub_80BA134: @ 80BA134 - ldr r0, =gUnknown_02039B28 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, =gUnknown_02038C28 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_80BA134 - - thumb_func_start sub_80BA154 -sub_80BA154: @ 80BA154 - ldr r0, =gUnknown_02039B28 - ldr r2, [r0, 0x8] - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, =gUnknown_02038C28 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - bx lr - .pool - thumb_func_end sub_80BA154 - - thumb_func_start task00_for_dp12 -task00_for_dp12: @ 80BA174 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r6, 0 - ldr r0, =gUnknown_02039B44 - ldrb r0, [r0] - cmp r0, 0 - beq _080BA1A4 - mov r0, r12 - bl DestroyTask - ldr r1, =gUnknown_02039B28 - movs r0, 0xFF - strb r0, [r1, 0x18] - b _080BA324 - .pool -_080BA1A4: - ldr r1, =gTasks - mov r0, r12 - lsls r2, r0, 2 - adds r0, r2, r0 - lsls r0, 3 - adds r3, r0, r1 - movs r4, 0x16 - ldrsh r0, [r3, r4] - mov r10, r1 - mov r9, r2 - cmp r0, 0 - beq _080BA250 - movs r1, 0x14 - ldrsh r0, [r3, r1] - cmp r0, 0xE - bhi _080BA250 - lsls r0, 2 - ldr r1, =_080BA1D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080BA1D8: - .4byte _080BA214 - .4byte _080BA250 - .4byte _080BA21C - .4byte _080BA250 - .4byte _080BA224 - .4byte _080BA250 - .4byte _080BA22C - .4byte _080BA250 - .4byte _080BA234 - .4byte _080BA250 - .4byte _080BA23C - .4byte _080BA250 - .4byte _080BA244 - .4byte _080BA250 - .4byte _080BA24C -_080BA214: - ldr r0, =gBattle_BG0_X - b _080BA24E - .pool -_080BA21C: - ldr r0, =gBattle_BG0_Y - b _080BA24E - .pool -_080BA224: - ldr r0, =gBattle_BG1_X - b _080BA24E - .pool -_080BA22C: - ldr r0, =gBattle_BG1_Y - b _080BA24E - .pool -_080BA234: - ldr r0, =gBattle_BG2_X - b _080BA24E - .pool -_080BA23C: - ldr r0, =gBattle_BG2_Y - b _080BA24E - .pool -_080BA244: - ldr r0, =gBattle_BG3_X - b _080BA24E - .pool -_080BA24C: - ldr r0, =gBattle_BG3_Y -_080BA24E: - ldrh r6, [r0] -_080BA250: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r2, r10 - adds r1, r0, r2 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080BA2BC - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - movs r4, 0xE - ldrsh r0, [r1, r4] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080BA324 - ldr r5, =gUnknown_02038C28 - ldr r0, =gUnknown_02039B28 - mov r8, r0 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 -_080BA28A: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _080BA28A - b _080BA324 - .pool -_080BA2BC: - ldrh r0, [r1, 0x12] - strh r0, [r1, 0x10] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r3, 0xA0 - lsls r3, 1 - adds r2, r0, r3 - movs r4, 0x8 - ldrsh r3, [r1, r4] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r3, r0 - bge _080BA304 - ldr r5, =gUnknown_02038C28 - adds r7, r1, 0 - lsls r0, r2, 1 - adds r4, r0, r5 - ldr r0, =gUnknown_02039B28 - mov r8, r0 -_080BA2E2: - lsls r2, r3, 1 - mov r0, r8 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r5 - ldrh r0, [r4] - adds r0, r6 - strh r0, [r2] - adds r4, 0x2 - adds r3, 0x1 - movs r1, 0xA - ldrsh r0, [r7, r1] - cmp r3, r0 - blt _080BA2E2 -_080BA304: - mov r0, r9 - add r0, r12 - lsls r0, 3 - mov r3, r10 - adds r2, r0, r3 - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xC - ldrsh r1, [r2, r4] - cmp r0, r1 - bne _080BA324 - movs r0, 0 - strh r0, [r2, 0xE] -_080BA324: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task00_for_dp12 - - thumb_func_start sub_80BA33C -sub_80BA33C: @ 80BA33C - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r1, 0 - movs r2, 0 - ldr r0, =gSineTable - mov r12, r0 -_080BA350: - lsls r0, r1, 1 - adds r3, r0, r6 - lsls r0, r2, 1 - add r0, r12 - movs r7, 0 - ldrsh r0, [r0, r7] - muls r0, r4 - cmp r0, 0 - bge _080BA364 - adds r0, 0xFF -_080BA364: - asrs r0, 8 - strh r0, [r3] - adds r0, r2, r5 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _080BA350 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80BA33C - - thumb_func_start sub_80BA384 -sub_80BA384: @ 80BA384 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - adds r5, r0, 0 - str r1, [sp, 0x10] - ldr r0, [sp, 0x40] - mov r8, r0 - ldr r1, [sp, 0x44] - mov r9, r1 - ldr r0, [sp, 0x48] - mov r10, r0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, [sp, 0x10] - lsls r1, 24 - str r1, [sp, 0x14] - lsrs r0, r1, 24 - str r0, [sp, 0xC] - lsls r1, r2, 24 - lsrs r1, 24 - str r1, [sp, 0x18] - lsls r2, r3, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - mov r3, r9 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl dp12_8087EA4 - ldr r0, =0x04000010 - add r0, r9 - str r0, [sp] - ldr r0, =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80BA038 - ldr r0, =task00_for_dp12 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - strh r5, [r4, 0x8] - mov r3, sp - ldrh r3, [r3, 0xC] - strh r3, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ldr r1, [sp, 0x18] - bl __divsi3 - strh r0, [r4, 0xC] - movs r0, 0 - strh r0, [r4, 0xE] - mov r1, r8 - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - mov r3, r9 - strh r3, [r4, 0x14] - mov r0, r10 - strh r0, [r4, 0x16] - ldr r0, =gUnknown_02039B28 - strb r7, [r0, 0x18] - ldr r0, =gUnknown_02039B44 - movs r1, 0 - strb r1, [r0] - ldr r4, =gUnknown_02038EA8 - ldr r3, [sp, 0xC] - subs r6, r3, r5 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r4, 0 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - bl sub_80BA33C - ldr r0, [sp, 0xC] - cmp r5, r0 - bge _080BA47E - ldr r1, =0xfffffd80 - adds r2, r4, r1 - lsls r1, r5, 1 - movs r3, 0xF0 - lsls r3, 3 - adds r0, r1, r3 - adds r3, r0, r2 - adds r1, r2 - adds r2, r4, 0 - adds r5, r6, 0 -_080BA46A: - ldrh r0, [r2] - strh r0, [r1] - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bne _080BA46A -_080BA47E: - adds r0, r7, 0 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80BA384 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index 60c11524a..5047ec65e 100644 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -732,10 +732,10 @@ _08166C28: b _08166D18 .pool _08166C40: - ldr r1, =gUnknown_02039B28 + ldr r1, =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] - bl sub_80BA0A8 + bl ScanlineEffect_InitHBlankDmaTransfer _08166C4A: ldr r1, [r4] adds r1, 0x50 diff --git a/include/scanline_effect.h b/include/scanline_effect.h new file mode 100644 index 000000000..54dfe17bd --- /dev/null +++ b/include/scanline_effect.h @@ -0,0 +1,47 @@ +#ifndef GUARD_SCANLINE_EFFECT_H +#define GUARD_SCANLINE_EFFECT_H + +// DMA control value to ransfer a single 16-bit value at HBlank +#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1) + +#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS) + +struct ScanlineEffectParams +{ + volatile void *dmaDest; + u32 dmaControl; + u8 initState; + u8 unused9; +}; + +struct ScanlineEffect +{ + void *dmaSrcBuffers[2]; + volatile void *dmaDest; + u32 dmaControl; + void (*setFirstScanlineReg)(void); + u8 srcBuffer; + u8 state; + u8 unused16; + u8 unused17; + u8 waveTaskId; +}; + +extern struct ScanlineEffect gScanlineEffect; + +extern u16 gScanlineEffectRegBuffers[][0x3C0]; + +void ScanlineEffect_Stop(void); +void ScanlineEffect_Clear(void); +void ScanlineEffect_SetParams(struct ScanlineEffectParams); +void ScanlineEffect_InitHBlankDmaTransfer(void); +u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7); + +#endif // GUARD_SCANLINE_EFFECT_H diff --git a/include/unknown_task.h b/include/unknown_task.h deleted file mode 100644 index 906fed3e0..000000000 --- a/include/unknown_task.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef GUARD_unknown_task_H -#define GUARD_unknown_task_H - -// Exported type declarations -struct UnknownTaskStruct -{ - volatile void *dest; - u32 control; - u8 unk8; - u8 unk9; -}; - -extern struct UnknownTaskStruct gUnknown_0831AC70; - -// Exported RAM declarations - -// Exported ROM declarations -void ScanlineEffect_Stop(void); -void sub_80BA038(struct UnknownTaskStruct arg0); -void sub_80BA0A8(void); - -#endif // GUARD_unknown_task_H diff --git a/ld_script.txt b/ld_script.txt index f2a9d8196..bc2504fb0 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -126,7 +126,7 @@ SECTIONS { src/trainer_see.o(.text); src/wild_encounter.o(.text); asm/field_effect.o(.text); - asm/unknown_task.o(.text); + src/scanline_effect.o(.text); src/option_menu.o(.text); src/pokedex.o(.text); asm/pokedex.o(.text); diff --git a/src/battle_2.c b/src/battle_2.c index 61e39b39f..4ff2bd19a 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -4,7 +4,7 @@ #include "main.h" #include "load_save.h" #include "gpu_regs.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "battle_setup.h" #include "battle_scripts.h" #include "pokemon.h" @@ -46,13 +46,6 @@ #include "battle_string_ids.h" #include "data2.h" -struct UnknownStruct6 -{ - u16 unk0[0xA0]; - u8 fillerA0[0x640]; - u16 unk780[0xA0]; -}; - struct UnknownPokemonStruct2 { /*0x00*/ u16 species; @@ -90,8 +83,6 @@ extern void (*gBattleMainFunc)(void); extern void (*gCB2_AfterEvolution)(void); extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for? extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for? -extern u8 gUnknown_02039B28[]; // possibly a struct? -extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; extern u8 gDecompressionBuffer[]; @@ -162,6 +153,7 @@ extern const u8 * const gBattlescriptsForBallThrow[]; extern const u8 * const gBattlescriptsForRunningByItem[]; extern const u8 * const gBattlescriptsForUsingItem[]; extern const u8 * const gBattlescriptsForSafariActions[]; +extern const struct ScanlineEffectParams gUnknown_0831AC70; // strings extern const u8 gText_LinkStandby3[]; @@ -180,7 +172,7 @@ extern const u8 gText_Confusion[]; extern const u8 gText_Love[]; // functions -extern void dp12_8087EA4(void); +extern void ScanlineEffect_Clear(void); extern void sub_80356D0(void); extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower extern void sub_8166188(void); // battle tower, sets link battle mons level but why? @@ -383,24 +375,21 @@ static void CB2_InitBattleInternal(void) else { gBattle_WIN0V = 0x5051; - dp12_8087EA4(); + ScanlineEffect_Clear(); for (i = 0; i < 80; i++) { - gUnknown_02038C28.unk0[i] = 0xF0; - gUnknown_02038C28.unk780[i] = 0xF0; + gScanlineEffectRegBuffers[0][i] = 0xF0; + gScanlineEffectRegBuffers[1][i] = 0xF0; } for (i = 80; i < 160; i++) { - #ifndef NONMATCHING - asm(""::"r"(i)); // needed to match - #endif // NONMATCHING - - gUnknown_02038C28.unk0[i] = 0xFF10; - gUnknown_02038C28.unk780[i] = 0xFF10; + asm(""::"r"(i)); + gScanlineEffectRegBuffers[0][i] = 0xFF10; + gScanlineEffectRegBuffers[1][i] = 0xFF10; } - sub_80BA038(gUnknown_0831AC70); + ScanlineEffect_SetParams(gUnknown_0831AC70); } ResetPaletteFade(); @@ -1596,7 +1585,7 @@ void BattleMainCB2(void) static void FreeRestoreBattleData(void) { gMain.callback1 = gPreBattleCallback1; - gUnknown_02039B28[0x15] = 3; + gScanlineEffect.state = 3; gMain.inBattle = 0; ZeroEnemyPartyMons(); m4aSongNumStop(0x5A); @@ -1814,7 +1803,7 @@ void VBlankCB_Battle(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_80BA0A8(); + ScanlineEffect_InitHBlankDmaTransfer(); } void nullsub_17(void) @@ -1952,18 +1941,18 @@ void sub_8038D64(void) SetGpuReg(REG_OFFSET_WINOUT, 0); gBattle_WIN0H = 0xF0; gBattle_WIN0V = 0x5051; - dp12_8087EA4(); + ScanlineEffect_Clear(); for (i = 0; i < 80; i++) { - gUnknown_02038C28.unk0[i] = 0xF0; - gUnknown_02038C28.unk780[i] = 0xF0; + gScanlineEffectRegBuffers[0][i] = 0xF0; + gScanlineEffectRegBuffers[1][i] = 0xF0; } for (i = 80; i < 160; i++) { asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter - gUnknown_02038C28.unk0[i] = 0xFF10; - gUnknown_02038C28.unk780[i] = 0xFF10; + gScanlineEffectRegBuffers[0][i] = 0xFF10; + gScanlineEffectRegBuffers[1][i] = 0xFF10; } ResetPaletteFade(); diff --git a/src/battle_transition.c b/src/battle_transition.c index e003e0fce..0ff8cd903 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -14,7 +14,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "field_camera.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "malloc.h" #include "gpu_regs.h" #include "decompress.h" @@ -56,8 +56,6 @@ struct StructRectangularSpiral typedef bool8 (*TransitionStateFunc)(struct Task *task); typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite); -extern u16 gUnknown_020393A8[]; -extern u16 gUnknown_02038C28[][0x3C0]; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -65,7 +63,7 @@ extern const struct OamData gFieldObjectBaseOam_32x32; extern void c2_exit_to_overworld_2_switch(void); extern void sub_80AC3D0(void); -extern void dp12_8087EA4(void); +extern void ScanlineEffect_Clear(void); // this file's functions static void LaunchBattleTransitionTask(u8 transitionId); @@ -1110,9 +1108,9 @@ static void Phase2Task_Swirl(u8 taskId) static bool8 Phase2_Swirl_Func1(struct Task *task) { sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); - sub_8149F98(gUnknown_020393A8, sTransitionStructPtr->field_14, 0, 2, 0, 160); + sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160); SetVBlankCallback(VBlankCB_Phase2_Swirl); SetHBlankCallback(HBlankCB_Phase2_Swirl); @@ -1129,7 +1127,7 @@ static bool8 Phase2_Swirl_Func2(struct Task *task) task->tData1 += 4; task->tData2 += 8; - sub_8149F98(gUnknown_02038C28[0], sTransitionStructPtr->field_14, task->tData1, 2, task->tData2, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], sTransitionStructPtr->field_14, task->tData1, 2, task->tData2, 160); if (!gPaletteFade.active) { @@ -1145,12 +1143,12 @@ static void VBlankCB_Phase2_Swirl(void) { VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); } static void HBlankCB_Phase2_Swirl(void) { - u16 var = gUnknown_02038C28[1][REG_VCOUNT]; + u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT]; REG_BG1HOFS = var; REG_BG2HOFS = var; REG_BG3HOFS = var; @@ -1164,10 +1162,10 @@ static void Phase2Task_Shuffle(u8 taskId) static bool8 Phase2_Shuffle_Func1(struct Task *task) { sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); - memset(gUnknown_020393A8, sTransitionStructPtr->field_16, 0x140); + memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_16, 0x140); SetVBlankCallback(VBlankCB_Phase2_Shuffle); SetHBlankCallback(HBlankCB_Phase2_Shuffle); @@ -1192,7 +1190,7 @@ static bool8 Phase2_Shuffle_Func2(struct Task *task) for (i = 0; i < 160; i++, r4 += 4224) { u16 var = r4 / 256; - gUnknown_02038C28[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3); + gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3); } if (!gPaletteFade.active) @@ -1206,12 +1204,12 @@ static void VBlankCB_Phase2_Shuffle(void) { VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); } static void HBlankCB_Phase2_Shuffle(void) { - u16 var = gUnknown_02038C28[1][REG_VCOUNT]; + u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT]; REG_BG1VOFS = var; REG_BG2VOFS = var; REG_BG3VOFS = var; @@ -1257,7 +1255,7 @@ static void sub_814669C(struct Task *task) s32 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); task->tData1 = 16; task->tData2 = 0; @@ -1272,7 +1270,7 @@ static void sub_814669C(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = 240; + gScanlineEffectRegBuffers[1][i] = 240; } SetVBlankCallback(VBlankCB0_Phase2_BigPokeball); @@ -1351,7 +1349,7 @@ static bool8 Phase2_BigPokeball_Func2(struct Task *task) dst1[i * 32 + j] = *BigPokeballMap | 0xF000; } } - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; return TRUE; @@ -1363,7 +1361,7 @@ static bool8 Phase2_Aqua_Func2(struct Task *task) sub_8149F58(&dst1, &dst2); LZ77UnCompVram(sTeamAqua_Tilemap, dst1); - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; return FALSE; @@ -1375,7 +1373,7 @@ static bool8 Phase2_Magma_Func2(struct Task *task) sub_8149F58(&dst1, &dst2); LZ77UnCompVram(sTeamMagma_Tilemap, dst1); - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; return FALSE; @@ -1388,7 +1386,7 @@ static bool8 Phase2_Regice_Func2(struct Task *task) sub_8149F58(&dst1, &dst2); LoadPalette(gUnknown_085BC2B4, 0xF0, 0x20); CpuCopy16(gUnknown_085BC314, dst1, 0x500); - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; return FALSE; @@ -1401,7 +1399,7 @@ static bool8 Phase2_Registeel_Func2(struct Task *task) sub_8149F58(&dst1, &dst2); LoadPalette(gUnknown_085BC2D4, 0xF0, 0x20); CpuCopy16(gUnknown_085BCB14, dst1, 0x500); - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; return FALSE; @@ -1414,7 +1412,7 @@ static bool8 Phase2_Regirock_Func2(struct Task *task) sub_8149F58(&dst1, &dst2); LoadPalette(gUnknown_085BC2F4, 0xF0, 0x20); CpuCopy16(gUnknown_085BD314, dst1, 0x500); - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160); task->tState++; return FALSE; @@ -1499,7 +1497,7 @@ static bool8 Phase2_BigPokeball_Func3(struct Task *task) task->tData4 += 8; task->tData5 -= 256; - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5 >> 8, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5 >> 8, 160); sTransitionStructPtr->VBlank_DMA++; return FALSE; @@ -1519,7 +1517,7 @@ static bool8 Phase2_BigPokeball_Func4(struct Task *task) task->tData4 += 8; task->tData5 -= 256; - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5 >> 8, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5 >> 8, 160); sTransitionStructPtr->VBlank_DMA++; return FALSE; @@ -1531,7 +1529,7 @@ static bool8 Phase2_BigPokeball_Func5(struct Task *task) task->tData4 += 8; task->tData5 -= 256; - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5 >> 8, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5 >> 8, 160); if (task->tData5 <= 0) { @@ -1577,7 +1575,7 @@ static bool8 Phase2_BigPokeball_Func6(struct Task *task) if (task->tData1 < 0) task->tData1 = 0; } - sub_814A014(gUnknown_02038C28[0], 120, 80, task->tData1); + sub_814A014(gScanlineEffectRegBuffers[0], 120, 80, task->tData1); if (task->tData1 == 0) { SetVBlankCallback(NULL); @@ -1604,7 +1602,7 @@ static void Transition_BigPokeball_Vblank(void) DmaStop(0); VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); REG_WININ = sTransitionStructPtr->WININ; REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; @@ -1615,13 +1613,13 @@ static void Transition_BigPokeball_Vblank(void) static void VBlankCB0_Phase2_BigPokeball(void) { Transition_BigPokeball_Vblank(); - DmaSet(0, gUnknown_020393A8, ®_BG0HOFS, 0xA2400001); + DmaSet(0, gScanlineEffectRegBuffers[1], ®_BG0HOFS, 0xA2400001); } static void VBlankCB1_Phase2_BigPokeball(void) { Transition_BigPokeball_Vblank(); - DmaSet(0, gUnknown_020393A8, ®_WIN0H, 0xA2400001); + DmaSet(0, gScanlineEffectRegBuffers[1], ®_WIN0H, 0xA2400001); } static void Phase2Task_PokeballsTrail(u8 taskId) @@ -1741,7 +1739,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task) u16 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; sTransitionStructPtr->WINOUT = 63; @@ -1750,7 +1748,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_020393A8[i] = 0xF3F4; + gScanlineEffectRegBuffers[1][i] = 0xF3F4; } SetVBlankCallback(VBlankCB_Phase2_Clockwise_BlackFade); @@ -1767,7 +1765,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func2(struct Task *task) sub_814A1AC(sTransitionStructPtr->data, 120, 80, sTransitionStructPtr->data[4], -1, 1, 1); do { - gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] + 1) | 0x7800; + gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] + 1) | 0x7800; } while (!sub_814A228(sTransitionStructPtr->data, 1, 1)); sTransitionStructPtr->data[4] += 16; @@ -1795,7 +1793,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func3(struct Task *task) r1 = 120, r3 = sTransitionStructPtr->data[2] + 1; if (sTransitionStructPtr->data[5] >= 80) r1 = sTransitionStructPtr->data[2], r3 = 240; - gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (r3) | (r1 << 8); + gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (r3) | (r1 << 8); if (var != 0) break; var = sub_814A228(sTransitionStructPtr->data, 1, 1); @@ -1811,7 +1809,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func3(struct Task *task) { while (sTransitionStructPtr->data[3] < sTransitionStructPtr->data[5]) { - gUnknown_02038C28[0][++sTransitionStructPtr->data[3]] = (r3) | (r1 << 8); + gScanlineEffectRegBuffers[0][++sTransitionStructPtr->data[3]] = (r3) | (r1 << 8); } } @@ -1826,7 +1824,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func4(struct Task *task) sub_814A1AC(sTransitionStructPtr->data, 120, 80, sTransitionStructPtr->data[4], 160, 1, 1); do { - gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] << 8) | 0xF0; + gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] << 8) | 0xF0; } while (!sub_814A228(sTransitionStructPtr->data, 1, 1)); sTransitionStructPtr->data[4] -= 16; @@ -1851,12 +1849,12 @@ static bool8 Phase2_Clockwise_BlackFade_Func5(struct Task *task) while (1) { - r1 = (gUnknown_02038C28[0][sTransitionStructPtr->data[3]]) & 0xFF; + r1 = (gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]]) & 0xFF; r2 = sTransitionStructPtr->data[2]; if (sTransitionStructPtr->data[5] <= 80) r2 = 120, r1 = sTransitionStructPtr->data[2]; var4 = (r1) | (r2 << 8); - gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = var4; + gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = var4; if (var != 0) break; var = sub_814A228(sTransitionStructPtr->data, 1, 1); @@ -1872,7 +1870,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func5(struct Task *task) { while (sTransitionStructPtr->data[3] > sTransitionStructPtr->data[5]) { - gUnknown_02038C28[0][--sTransitionStructPtr->data[3]] = (r1) | (r2 << 8); + gScanlineEffectRegBuffers[0][--sTransitionStructPtr->data[3]] = (r1) | (r2 << 8); } } @@ -1892,7 +1890,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func6(struct Task *task) r2 = 120, r3 = sTransitionStructPtr->data[2]; if (sTransitionStructPtr->data[2] >= 120) r2 = 0, r3 = 240; - gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (r3) | (r2 << 8); + gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (r3) | (r2 << 8); } while (!sub_814A228(sTransitionStructPtr->data, 1, 1)); @@ -1917,12 +1915,12 @@ static void VBlankCB_Phase2_Clockwise_BlackFade(void) DmaStop(0); VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA != 0) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); REG_WININ = sTransitionStructPtr->WININ; REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; - REG_WIN0H = gUnknown_02038C28[1][0]; - DmaSet(0, gUnknown_02038C28[1], ®_WIN0H, 0xA2400001); + REG_WIN0H = gScanlineEffectRegBuffers[1][0]; + DmaSet(0, gScanlineEffectRegBuffers[1], ®_WIN0H, 0xA2400001); } static void Phase2Task_Ripple(u8 taskId) @@ -1935,11 +1933,11 @@ static bool8 Phase2_Ripple_Func1(struct Task *task) u8 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); for (i = 0; i < 160; i++) { - gUnknown_020393A8[i] = sTransitionStructPtr->field_16; + gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_16; } SetVBlankCallback(VBlankCB_Phase2_Ripple); @@ -1971,7 +1969,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task) // todo: fix the asm s16 var = r4 >> 8; asm(""); - gUnknown_02038C28[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3); + gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3); } if (++task->tData3 == 81) @@ -1991,12 +1989,12 @@ static void VBlankCB_Phase2_Ripple(void) { VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); } static void HBlankCB_Phase2_Ripple(void) { - u16 var = gUnknown_02038C28[1][REG_VCOUNT]; + u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT]; REG_BG1VOFS = var; REG_BG2VOFS = var; REG_BG3VOFS = var; @@ -2012,7 +2010,7 @@ static bool8 Phase2_Wave_Func1(struct Task *task) u8 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 63; sTransitionStructPtr->WINOUT = 0; @@ -2021,7 +2019,7 @@ static bool8 Phase2_Wave_Func1(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = 242; + gScanlineEffectRegBuffers[1][i] = 242; } SetVBlankCallback(VBlankCB_Phase2_Wave); @@ -2037,7 +2035,7 @@ static bool8 Phase2_Wave_Func2(struct Task *task) bool8 nextFunc; sTransitionStructPtr->VBlank_DMA = FALSE; - toStore = gUnknown_02038C28[0]; + toStore = gScanlineEffectRegBuffers[0]; r5 = task->tData2; task->tData2 += 16; task->tData1 += 8; @@ -2073,11 +2071,11 @@ static void VBlankCB_Phase2_Wave(void) DmaStop(0); VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA != 0) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); REG_WININ = sTransitionStructPtr->WININ; REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; - DmaSet(0, gUnknown_02038C28[1], ®_WIN0H, 0xA2400001); + DmaSet(0, gScanlineEffectRegBuffers[1], ®_WIN0H, 0xA2400001); } static void Phase2Task_Sydney(u8 taskId) @@ -2120,7 +2118,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) u8 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); Mugshots_CreateOpponentPlayerSprites(task); task->tData1 = 0; @@ -2132,7 +2130,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = 0xF0F1; + gScanlineEffectRegBuffers[1][i] = 0xF0F1; } SetVBlankCallback(VBlankCB0_Phase2_Mugshots); @@ -2177,7 +2175,7 @@ static bool8 Phase2_Mugshot_Func3(struct Task *task) sTransitionStructPtr->VBlank_DMA = FALSE; - toStore = gUnknown_02038C28[0]; + toStore = gScanlineEffectRegBuffers[0]; r5 = task->tData1; task->tData1 += 0x10; @@ -2223,7 +2221,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task) sTransitionStructPtr->VBlank_DMA = FALSE; - for (i = 0, toStore = gUnknown_02038C28[0]; i < 160; i++, toStore++) + for (i = 0, toStore = gScanlineEffectRegBuffers[0]; i < 160; i++, toStore++) { *toStore = 0xF0; } @@ -2266,8 +2264,8 @@ static bool8 Phase2_Mugshot_Func6(struct Task *task) sTransitionStructPtr->VBlank_DMA = FALSE; SetVBlankCallback(NULL); DmaStop(0); - memset(gUnknown_02038C28[0], 0, 0x140); - memset(gUnknown_02038C28[1], 0, 0x140); + memset(gScanlineEffectRegBuffers[0], 0, 0x140); + memset(gScanlineEffectRegBuffers[1], 0, 0x140); SetGpuReg(REG_OFFSET_WIN0H, 0xF0); SetGpuReg(REG_OFFSET_BLDY, 0); task->tState++; @@ -2300,15 +2298,15 @@ static bool8 Phase2_Mugshot_Func7(struct Task *task) { s16 index1 = 0x50 - i; s16 index2 = 0x50 + i; - if (gUnknown_02038C28[0][index1] <= 15) + if (gScanlineEffectRegBuffers[0][index1] <= 15) { r6 = TRUE; - gUnknown_02038C28[0][index1]++; + gScanlineEffectRegBuffers[0][index1]++; } - if (gUnknown_02038C28[0][index2] <= 15) + if (gScanlineEffectRegBuffers[0][index2] <= 15) { r6 = TRUE; - gUnknown_02038C28[0][index2]++; + gScanlineEffectRegBuffers[0][index2]++; } } } @@ -2336,7 +2334,7 @@ static bool8 Phase2_Mugshot_Func9(struct Task *task) sTransitionStructPtr->VBlank_DMA = FALSE; task->tData3++; - memset(gUnknown_02038C28[0], task->tData3, 0x140); + memset(gScanlineEffectRegBuffers[0], task->tData3, 0x140); if (task->tData3 > 15) task->tState++; @@ -2357,12 +2355,12 @@ static void VBlankCB0_Phase2_Mugshots(void) DmaStop(0); VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA != 0) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); REG_BG0VOFS = sTransitionStructPtr->BG0VOFS; REG_WININ = sTransitionStructPtr->WININ; REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; - DmaSet(0, gUnknown_02038C28[1], ®_WIN0H, 0xA2400001); + DmaSet(0, gScanlineEffectRegBuffers[1], ®_WIN0H, 0xA2400001); } static void VBlankCB1_Phase2_Mugshots(void) @@ -2370,9 +2368,9 @@ static void VBlankCB1_Phase2_Mugshots(void) DmaStop(0); VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA != 0) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); REG_BLDCNT = sTransitionStructPtr->BLDCNT; - DmaSet(0, gUnknown_02038C28[1], ®_BLDY, 0xA2400001); + DmaSet(0, gScanlineEffectRegBuffers[1], ®_BLDY, 0xA2400001); } static void HBlankCB_Phase2_Mugshots(void) @@ -2500,7 +2498,7 @@ static bool8 Phase2_Slice_Func1(struct Task *task) u16 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); task->tData2 = 256; task->tData3 = 1; @@ -2511,8 +2509,8 @@ static bool8 Phase2_Slice_Func1(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = sTransitionStructPtr->field_14; - gUnknown_02038C28[1][160 + i] = 0xF0; + gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_14; + gScanlineEffectRegBuffers[1][160 + i] = 0xF0; } EnableInterrupts(INTR_FLAG_HBLANK); @@ -2541,8 +2539,8 @@ static bool8 Phase2_Slice_Func2(struct Task *task) for (i = 0; i < 160; i++) { - u16 *storeLoc1 = &gUnknown_02038C28[0][i]; - u16 *storeLoc2 = &gUnknown_02038C28[0][i + 160]; + u16 *storeLoc1 = &gScanlineEffectRegBuffers[0][i]; + u16 *storeLoc2 = &gScanlineEffectRegBuffers[0][i + 160]; if (i & 1) { *storeLoc1 = sTransitionStructPtr->field_14 + task->tData1; @@ -2578,15 +2576,15 @@ static void VBlankCB_Phase2_Slice(void) REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 640); - DmaSet(0, &gUnknown_02038C28[1][160], ®_WIN0H, 0xA2400001); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640); + DmaSet(0, &gScanlineEffectRegBuffers[1][160], ®_WIN0H, 0xA2400001); } static void HBlankCB_Phase2_Slice(void) { if (REG_VCOUNT < 160) { - u16 var = gUnknown_02038C28[1][REG_VCOUNT]; + u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT]; REG_BG1HOFS = var; REG_BG2HOFS = var; REG_BG3HOFS = var; @@ -2603,7 +2601,7 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task) u16 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 63; sTransitionStructPtr->WINOUT = 0; @@ -2611,13 +2609,13 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task) for (i = 0; i < 0xA0; i++) { - gUnknown_02038C28[1][i] = sTransitionStructPtr->field_14; - gUnknown_02038C28[1][0xA0 + i] = 0xF0; - gUnknown_02038C28[0][i] = sTransitionStructPtr->field_14; - gUnknown_02038C28[0][0xA0 + i] = 0xF0; - gUnknown_02038C28[0][0x140 + i] = 0; - gUnknown_02038C28[0][0x1E0 + i] = 0x100; - gUnknown_02038C28[0][0x280 + i] = 1; + gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_14; + gScanlineEffectRegBuffers[1][0xA0 + i] = 0xF0; + gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_14; + gScanlineEffectRegBuffers[0][0xA0 + i] = 0xF0; + gScanlineEffectRegBuffers[0][0x140 + i] = 0; + gScanlineEffectRegBuffers[0][0x1E0 + i] = 0x100; + gScanlineEffectRegBuffers[0][0x280 + i] = 1; } task->tData4 = 0; @@ -2657,9 +2655,9 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task) unkVar = (arr1[j]) + (arr2[k] * -(i) * 2); if (unkVar >= 0 && (unkVar != 79 || j != 1)) { - ptr4 = &gUnknown_02038C28[0][unkVar + 320]; - ptr3 = &gUnknown_02038C28[0][unkVar + 480]; - ptr1 = &gUnknown_02038C28[0][unkVar + 640]; + ptr4 = &gScanlineEffectRegBuffers[0][unkVar + 320]; + ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 480]; + ptr1 = &gScanlineEffectRegBuffers[0][unkVar + 640]; if (*ptr4 > 0xEF) { *ptr4 = 0xF0; @@ -2673,8 +2671,8 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task) if (*ptr3 <= 0xFFF) *ptr3 += *ptr1; } - ptr2 = &gUnknown_02038C28[0][unkVar]; - ptr3 = &gUnknown_02038C28[0][unkVar + 160]; + ptr2 = &gScanlineEffectRegBuffers[0][unkVar]; + ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 160]; *ptr2 = sTransitionStructPtr->field_14 + *ptr4; *ptr3 = 0xF0 - *ptr4; @@ -2691,9 +2689,9 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task) unkVar = (arr1[j] + 1) + (arr2[k] * -(i) * 2); if (unkVar <= 160 && (unkVar != 80 || j != 1)) { - ptr4 = &gUnknown_02038C28[0][unkVar + 320]; - ptr3 = &gUnknown_02038C28[0][unkVar + 480]; - ptr1 = &gUnknown_02038C28[0][unkVar + 640]; + ptr4 = &gScanlineEffectRegBuffers[0][unkVar + 320]; + ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 480]; + ptr1 = &gScanlineEffectRegBuffers[0][unkVar + 640]; if (*ptr4 > 0xEF) { *ptr4 = 0xF0; @@ -2707,8 +2705,8 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task) if (*ptr3 <= 0xFFF) *ptr3 += *ptr1; } - ptr2 = &gUnknown_02038C28[0][unkVar]; - ptr3 = &gUnknown_02038C28[0][unkVar + 160]; + ptr2 = &gScanlineEffectRegBuffers[0][unkVar]; + ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 160]; *ptr2 = sTransitionStructPtr->field_14 - *ptr4; *ptr3 = (*ptr4 << 8) | (0xF1); @@ -2732,7 +2730,7 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task) // This function never increments the state counter, because the loop condition // is always false, resulting in the game being stuck in an infinite loop. -// It's possible this transition is only partially +// It's possible this transition is only partially // done and the second part was left out. static bool8 Phase2_ShredSplit_Func3(struct Task *task) { @@ -2742,7 +2740,7 @@ static bool8 Phase2_ShredSplit_Func3(struct Task *task) for (i = 0; i < 0xA0; i++) { - if (gUnknown_02038C28[1][i] != 0xF0 && gUnknown_02038C28[1][i] != checkVar2) + if (gScanlineEffectRegBuffers[1][i] != 0xF0 && gScanlineEffectRegBuffers[1][i] != checkVar2) done = FALSE; // a break statement should be put here } @@ -2775,7 +2773,7 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task) s32 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0; sTransitionStructPtr->WINOUT = 63; @@ -2784,7 +2782,7 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task) for (i = 0; i < 0xA0; i++) { - gUnknown_02038C28[1][i] = 0; + gScanlineEffectRegBuffers[1][i] = 0; } SetVBlankCallback(VBlankCB1_Phase2_BigPokeball); @@ -2814,7 +2812,7 @@ static bool8 Phase2_Blackhole1_Func3(struct Task *task) task->tData1 += (task->tData2 >> 8); if (task->tData1 > 0xA0) task->tData1 = 0xA0; - sub_814A014(gUnknown_02038C28[0], 0x78, 0x50, task->tData1); + sub_814A014(gScanlineEffectRegBuffers[0], 0x78, 0x50, task->tData1); if (task->tData1 == 0xA0) { task->tFuncState = 1; @@ -2840,7 +2838,7 @@ static bool8 Phase2_Blackhole1_Func2(struct Task *task) } task->tData1 += gUnknown_085C8C80[task->tData6]; task->tData6 = (task->tData6 + 1) % 2; - sub_814A014(gUnknown_02038C28[0], 0x78, 0x50, task->tData1); + sub_814A014(gScanlineEffectRegBuffers[0], 0x78, 0x50, task->tData1); if (task->tData1 < 9) { task->tState++; @@ -2866,7 +2864,7 @@ static bool8 Phase2_Blackhole2_Func2(struct Task *task) if (task->tData1 > 0xA0) task->tData1 = 0xA0; - sub_814A014(gUnknown_02038C28[0], 0x78, 0x50, task->tData1); + sub_814A014(gScanlineEffectRegBuffers[0], 0x78, 0x50, task->tData1); if (task->tData1 == 0xA0) { DmaStop(0); @@ -3113,7 +3111,7 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task) u16 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); SetGpuReg(REG_OFFSET_BG0CNT, 0x9A08); sub_8149F58(&dst1, &dst2); @@ -3126,8 +3124,8 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[0][i] = 0; - gUnknown_02038C28[1][i] = 0x100; + gScanlineEffectRegBuffers[0][i] = 0; + gScanlineEffectRegBuffers[1][i] = 0x100; } SetVBlankCallback(VBlankCB_Phase2_Rayquaza); @@ -3212,7 +3210,7 @@ static bool8 Phase2_Rayquaza_Func9(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = 0; + gScanlineEffectRegBuffers[1][i] = 0; } SetVBlankCallback(VBlankCB1_Phase2_BigPokeball); @@ -3233,11 +3231,11 @@ static void VBlankCB_Phase2_Rayquaza(void) VBlankCB_BattleTransition(); if (sTransitionStructPtr->field_20 == 0) - dmaSrc = gUnknown_02038C28[0]; + dmaSrc = gScanlineEffectRegBuffers[0]; else if (sTransitionStructPtr->field_20 == 1) - dmaSrc = gUnknown_02038C28[1]; + dmaSrc = gScanlineEffectRegBuffers[1]; else - dmaSrc = gUnknown_02038C28[0]; + dmaSrc = gScanlineEffectRegBuffers[0]; DmaSet(0, dmaSrc, ®_BG0VOFS, 0xA2400001); } @@ -3252,7 +3250,7 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task) u16 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); sTransitionStructPtr->BLDCNT = 0xBF; sTransitionStructPtr->BLDY = 0; @@ -3262,8 +3260,8 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = 0; - gUnknown_02038C28[1][i + 160] = 0xF0; + gScanlineEffectRegBuffers[1][i] = 0; + gScanlineEffectRegBuffers[1][i + 160] = 0xF0; } EnableInterrupts(INTR_FLAG_HBLANK); @@ -3343,8 +3341,8 @@ static void VBlankCB0_Phase2_WhiteFade(void) REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 640); - DmaSet(0, &gUnknown_02038C28[1][160], ®_WIN0H, 0xA2400001); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640); + DmaSet(0, &gScanlineEffectRegBuffers[1][160], ®_WIN0H, 0xA2400001); } static void VBlankCB1_Phase2_WhiteFade(void) @@ -3360,7 +3358,7 @@ static void VBlankCB1_Phase2_WhiteFade(void) static void HBlankCB_Phase2_WhiteFade(void) { - REG_BLDY = gUnknown_02038C28[1][REG_VCOUNT]; + REG_BLDY = gScanlineEffectRegBuffers[1][REG_VCOUNT]; } static void sub_8149864(struct Sprite *sprite) @@ -3374,8 +3372,8 @@ static void sub_8149864(struct Sprite *sprite) else { u16 i; - u16* ptr1 = &gUnknown_02038C28[0][sprite->pos1.y]; - u16* ptr2 = &gUnknown_02038C28[0][sprite->pos1.y + 160]; + u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->pos1.y]; + u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->pos1.y + 160]; for (i = 0; i < 20; i++) { ptr1[i] = sprite->data[0] >> 8; @@ -3465,7 +3463,7 @@ static bool8 Phase2_Shards_Func1(struct Task *task) u16 i; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); sTransitionStructPtr->WININ = 0x3F; sTransitionStructPtr->WINOUT = 0; @@ -3473,10 +3471,10 @@ static bool8 Phase2_Shards_Func1(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[0][i] = 0xF0; + gScanlineEffectRegBuffers[0][i] = 0xF0; } - CpuSet(gUnknown_02038C28[0], gUnknown_02038C28[1], 0xA0); + CpuSet(gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 0xA0); SetVBlankCallback(VBlankCB_Phase2_Shards); task->tState++; @@ -3505,8 +3503,8 @@ static bool8 Phase2_Shards_Func3(struct Task *task) for (i = 0, nextFunc = FALSE; i < 16; i++) { - s16 r3 = gUnknown_02038C28[0][sTransitionStructPtr->data[3]] >> 8; - s16 r4 = gUnknown_02038C28[0][sTransitionStructPtr->data[3]] & 0xFF; + s16 r3 = gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] >> 8; + s16 r4 = gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] & 0xFF; if (task->tData2 == 0) { if (r3 < sTransitionStructPtr->data[2]) @@ -3521,7 +3519,7 @@ static bool8 Phase2_Shards_Func3(struct Task *task) if (r4 <= r3) r4 = r3; } - gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (r4) | (r3 << 8); + gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (r4) | (r3 << 8); if (nextFunc) { task->tState++; @@ -3568,12 +3566,12 @@ static void VBlankCB_Phase2_Shards(void) DmaStop(0); VBlankCB_BattleTransition(); if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); REG_WININ = sTransitionStructPtr->WININ; REG_WINOUT = sTransitionStructPtr->WINOUT; REG_WIN0V = sTransitionStructPtr->WIN0V; - REG_WIN0H = gUnknown_02038C28[1][0]; - DmaSet(0, gUnknown_02038C28[1], ®_WIN0H, 0xA2400001); + REG_WIN0H = gScanlineEffectRegBuffers[1][0]; + DmaSet(0, gScanlineEffectRegBuffers[1], ®_WIN0H, 0xA2400001); } // sub-task for phase2 @@ -3875,7 +3873,7 @@ static bool8 Phase2_29_Func2(struct Task *task) sub_8149F58(&dst1, &dst2); LZ77UnCompVram(gUnknown_085C828C, dst1); - sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 0x84, task->tData5, 160); + sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 0x84, task->tData5, 160); task->tState++; return TRUE; @@ -3896,7 +3894,7 @@ static bool8 Phase2_30_Func1(struct Task *task) u16 *dst1, *dst2; sub_8149F08(); - dp12_8087EA4(); + ScanlineEffect_Clear(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); task->tData2 = 0x2000; task->tData1 = 0x7FFF; @@ -3934,7 +3932,7 @@ static bool8 Phase2_30_Func3(struct Task *task) for (i = 0; i < 160; i++) { - gUnknown_02038C28[1][i] = sTransitionStructPtr->field_16; + gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_16; } SetVBlankCallback(VBlankCB_Phase2_30); @@ -3980,7 +3978,7 @@ static bool8 Phase2_30_Func4(struct Task *task) { s16 index = var6 / 256; asm(""); - gUnknown_02038C28[0][i] = sTransitionStructPtr->field_16 + Sin(index, amplitude); + gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(index, amplitude); } if (++task->tData3 == 101) @@ -4004,12 +4002,12 @@ static void VBlankCB_Phase2_30(void) REG_BLDALPHA = sTransitionStructPtr->BLDALPHA; if (sTransitionStructPtr->VBlank_DMA) - DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320); + DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320); } static void HBlankCB_Phase2_30(void) { - u16 var = gUnknown_02038C28[1][REG_VCOUNT]; + u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT]; REG_BG0VOFS = var; } diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index f487489d4..7b968a221 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -6,7 +6,7 @@ #include "main.h" #include "sprite.h" #include "task.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "window.h" #include "text.h" #include "menu.h" diff --git a/src/diploma.c b/src/diploma.c index 24e5e9727..89447c5ba 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -3,7 +3,7 @@ #include "palette.h" #include "main.h" #include "gpu_regs.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "task.h" #include "malloc.h" #include "decompress.h" diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 5dfc36cb2..cbd37be52 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -11,7 +11,7 @@ #include "pokemon.h" #include "string_util.h" #include "battle.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "decompress.h" #include "m4a.h" #include "menu.h" @@ -1367,7 +1367,7 @@ static void VBlankCB_EvolutionScene(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_80BA0A8(); + ScanlineEffect_InitHBlankDmaTransfer(); } static void VBlankCB_TradeEvolutionScene(void) @@ -1384,7 +1384,7 @@ static void VBlankCB_TradeEvolutionScene(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_80BA0A8(); + ScanlineEffect_InitHBlankDmaTransfer(); } static void sub_813FDEC(u8 taskId) diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 5390814eb..62d2b39a4 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -20,7 +20,7 @@ #include "string_util.h" #include "m4a.h" #include "international_string_util.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "trig.h" #include "random.h" #include "event_data.h" diff --git a/src/mail.c b/src/mail.c index c3cbe4a3c..ac263ac67 100644 --- a/src/mail.c +++ b/src/mail.c @@ -4,7 +4,7 @@ #include "main.h" #include "overworld.h" #include "task.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "palette.h" #include "text.h" #include "menu.h" diff --git a/src/option_menu.c b/src/option_menu.c index 7f92756ab..cbbe14b77 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -2,7 +2,7 @@ #include "option_menu.h" #include "main.h" #include "menu.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "palette.h" #include "sprite.h" #include "task.h" diff --git a/src/pokeblock.c b/src/pokeblock.c index 1a4ce3155..472b030e0 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -14,7 +14,7 @@ #include "battle.h" #include "battle_controllers.h" #include "palette.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "list_menu.h" #include "gpu_regs.h" #include "decompress.h" diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 3df2ff151..a4bb4a728 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -3,7 +3,7 @@ #include "battle.h" #include "palette.h" #include "main.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "text.h" #include "gpu_regs.h" #include "bg.h" @@ -34,7 +34,7 @@ extern struct SpriteTemplate gUnknown_0202499C; extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[]; -extern void dp12_8087EA4(void); +extern void ScanlineEffect_Clear(void); extern void sub_8035658(void); extern bool8 IsDoubleBattle(void); extern u8 GetSubstituteSpriteDefault_Y(u8 bank); @@ -72,7 +72,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void) switch (gBattleScripting.reshowMainState) { case 0: - dp12_8087EA4(); + ScanlineEffect_Clear(); sub_8035658(); SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); diff --git a/src/scanline_effect.c b/src/scanline_effect.c new file mode 100644 index 000000000..148e053fc --- /dev/null +++ b/src/scanline_effect.c @@ -0,0 +1,262 @@ +#include "global.h" +#include "data2.h" +#include "task.h" +#include "trig.h" +#include "scanline_effect.h" + +static void CopyValue16Bit(void); +static void CopyValue32Bit(void); + +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; + +// EWRAM vars + +// Per-scanline register values. +// This is double buffered so that it can be safely written to at any time +// without overwriting the buffer that the DMA is currently reading +EWRAM_DATA u16 gScanlineEffectRegBuffers[2][0x3C0] = {0}; + +EWRAM_DATA struct ScanlineEffect gScanlineEffect = {0}; +EWRAM_DATA static bool8 sShouldStopWaveTask = FALSE; + +void ScanlineEffect_Stop(void) +{ + gScanlineEffect.state = 0; + DmaStop(0); + if (gScanlineEffect.waveTaskId != 0xFF) + { + DestroyTask(gScanlineEffect.waveTaskId); + gScanlineEffect.waveTaskId = 0xFF; + } +} + +void ScanlineEffect_Clear(void) +{ + CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers)); + gScanlineEffect.dmaSrcBuffers[0] = NULL; + gScanlineEffect.dmaSrcBuffers[1] = NULL; + gScanlineEffect.dmaDest = NULL; + gScanlineEffect.dmaControl = 0; + gScanlineEffect.srcBuffer = 0; + gScanlineEffect.state = 0; + gScanlineEffect.unused16 = 0; + gScanlineEffect.unused17 = 0; + gScanlineEffect.waveTaskId = 0xFF; +} + +void ScanlineEffect_SetParams(struct ScanlineEffectParams params) +{ + if (params.dmaControl == SCANLINE_EFFECT_DMACNT_16BIT) // 16-bit + { + // Set the DMA src to the value for the second scanline because the + // first DMA transfer occurs in HBlank *after* the first scanline is drawn + gScanlineEffect.dmaSrcBuffers[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1; + gScanlineEffect.dmaSrcBuffers[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1; + gScanlineEffect.setFirstScanlineReg = CopyValue16Bit; + } + else // assume 32-bit + { + // Set the DMA src to the value for the second scanline because the + // first DMA transfer occurs in HBlank *after* the first scanline is drawn + gScanlineEffect.dmaSrcBuffers[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1; + gScanlineEffect.dmaSrcBuffers[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1; + gScanlineEffect.setFirstScanlineReg = CopyValue32Bit; + } + + gScanlineEffect.dmaControl = params.dmaControl; + gScanlineEffect.dmaDest = params.dmaDest; + gScanlineEffect.state = params.initState; + gScanlineEffect.unused16 = params.unused9; + gScanlineEffect.unused17 = params.unused9; +} + +void ScanlineEffect_InitHBlankDmaTransfer(void) +{ + if (gScanlineEffect.state == 0) + { + return; + } + else if (gScanlineEffect.state == 3) + { + gScanlineEffect.state = 0; + DmaStop(0); + sShouldStopWaveTask = TRUE; + } + else + { + DmaStop(0); + // Set DMA to copy to dest register on each HBlank for the next frame. + // The HBlank DMA transfers do not occurr during VBlank, so the transfer + // will begin on the HBlank after the first scanline + DmaSet(0, gScanlineEffect.dmaSrcBuffers[gScanlineEffect.srcBuffer], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl); + // Manually set the reg for the first scanline + gScanlineEffect.setFirstScanlineReg(); + // Swap current buffer + gScanlineEffect.srcBuffer ^= 1; + } +} + +// These two functions are used to copy the register for the first scanline, +// depending whether it is a 16-bit register or a 32-bit register. + +static void CopyValue16Bit(void) +{ + u16 *dest = (u16 *)gScanlineEffect.dmaDest; + u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; + + *dest = *src; +} + +static void CopyValue32Bit(void) +{ + u32 *dest = (u32 *)gScanlineEffect.dmaDest; + u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer]; + + *dest = *src; +} + +#define tStartLine data[0] +#define tEndLine data[1] +#define tWaveLength data[2] +#define tSrcBufferOffset data[3] +#define tFramesUntilMove data[4] +#define tDelayInterval data[5] +#define tRegOffset data[6] +#define tApplyBattleBgOffsets data[7] + +static void TaskFunc_UpdateWavePerFrame(u8 taskId) +{ + int value = 0; + int i; + int offset; + + if (sShouldStopWaveTask) + { + DestroyTask(taskId); + gScanlineEffect.waveTaskId = 0xFF; + } + else + { + if (gTasks[taskId].tApplyBattleBgOffsets) + { + switch (gTasks[taskId].tRegOffset) + { + case SCANLINE_EFFECT_REG_BG0HOFS: + value = gBattle_BG0_X; + break; + case SCANLINE_EFFECT_REG_BG0VOFS: + value = gBattle_BG0_Y; + break; + case SCANLINE_EFFECT_REG_BG1HOFS: + value = gBattle_BG1_X; + break; + case SCANLINE_EFFECT_REG_BG1VOFS: + value = gBattle_BG1_Y; + break; + case SCANLINE_EFFECT_REG_BG2HOFS: + value = gBattle_BG2_X; + break; + case SCANLINE_EFFECT_REG_BG2VOFS: + value = gBattle_BG2_Y; + break; + case SCANLINE_EFFECT_REG_BG3HOFS: + value = gBattle_BG3_X; + break; + case SCANLINE_EFFECT_REG_BG3VOFS: + value = gBattle_BG3_Y; + break; + } + } + if (gTasks[taskId].tFramesUntilMove != 0) + { + gTasks[taskId].tFramesUntilMove--; + offset = gTasks[taskId].tSrcBufferOffset + 320; + for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value; + offset++; + } + } + else + { + gTasks[taskId].tFramesUntilMove = gTasks[taskId].tDelayInterval; + offset = gTasks[taskId].tSrcBufferOffset + 320; + for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value; + offset++; + } + + // increment src buffer offset + gTasks[taskId].tSrcBufferOffset++; + if (gTasks[taskId].tSrcBufferOffset == gTasks[taskId].tWaveLength) + gTasks[taskId].tSrcBufferOffset = 0; + } + } +} + +static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused) +{ + u16 i = 0; + u8 theta = 0; + + while (i < 256) + { + buffer[i] = (gSineTable[theta] * amplitude) / 256; + theta += frequency; + i++; + } +} + +// Initializes a background "wave" effect that affects scanlines startLine (inclusive) to endLine (exclusive). +// 'frequency' and 'amplitude' control the frequency and amplitude of the wave. +// 'delayInterval' controls how fast the wave travels up the screen. The wave will shift upwards one scanline every 'delayInterval'+1 frames. +// 'regOffset' is the offset of the video register to modify. +u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 applyBattleBgOffsets) +{ + int i; + int offset; + struct ScanlineEffectParams params; + u8 taskId; + + ScanlineEffect_Clear(); + + params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset); + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.initState = 1; + params.unused9 = 0; + ScanlineEffect_SetParams(params); + + taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0); + + gTasks[taskId].tStartLine = startLine; + gTasks[taskId].tEndLine = endLine; + gTasks[taskId].tWaveLength = 256 / frequency; + gTasks[taskId].tSrcBufferOffset = 0; + gTasks[taskId].tFramesUntilMove = delayInterval; + gTasks[taskId].tDelayInterval = delayInterval; + gTasks[taskId].tRegOffset = regOffset; + gTasks[taskId].tApplyBattleBgOffsets = applyBattleBgOffsets; + + gScanlineEffect.waveTaskId = taskId; + sShouldStopWaveTask = FALSE; + + GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine); + + offset = 320; + for (i = startLine; i < endLine; i++) + { + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset]; + gScanlineEffectRegBuffers[1][i] = gScanlineEffectRegBuffers[0][offset]; + offset++; + } + + return taskId; +} diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 12f475c93..c8898d08f 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -4,7 +4,7 @@ #include "malloc.h" #include "palette.h" #include "pokenav.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "text.h" #include "bg.h" #include "window.h" @@ -131,7 +131,7 @@ void sub_8166340(void) ProcessSpriteCopyRequests(); TransferPlttBuffer(); sub_81D2108(gUnknown_0203BCAC->field_7C58); - sub_80BA0A8(); + ScanlineEffect_InitHBlankDmaTransfer(); } void sub_816636C(void (*func)(void)) diff --git a/src/wallclock.c b/src/wallclock.c index dbea24b4c..f15bbbc27 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -12,7 +12,7 @@ #include "window.h" #include "text_window.h" #include "menu.h" -#include "unknown_task.h" +#include "scanline_effect.h" #include "task.h" #include "strings.h" #include "sound.h" diff --git a/sym_ewram.txt b/sym_ewram.txt index c04f524d8..df3987e68 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -713,36 +713,7 @@ gUnknown_02038BC6: @ 2038BC6 gFieldEffectArguments: @ 2038C08 .space 0x20 -gUnknown_02038C28: @ 2038C28 - .space 0x2 - -gUnknown_02038C2A: @ 2038C2A - .space 0x2 - -gUnknown_02038C2C: @ 2038C2C - .space 0x13C - -gUnknown_02038D68: @ 2038D68 - .space 0x140 - -gUnknown_02038EA8: @ 2038EA8 - .space 0x280 - -gUnknown_02039128: @ 2039128 - .space 0x280 - -gUnknown_020393A8: @ 20393A8 - .space 0x140 - -gUnknown_020394E8: @ 20394E8 - .space 0x640 - -gUnknown_02039B28: @ 2039B28 - .space 0x1C - -gUnknown_02039B44: @ 2039B44 - .space 0x4 - + .include "src/scanline_effect.o" .include "src/option_menu.o" .align 2 -- cgit v1.2.3 From 42bfa15ae0669979958883a8fdaa76b72c30011a Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 29 Jan 2018 15:49:28 -0500 Subject: decompile more of field_map_obj_helpers.c --- asm/map_obj_8097404.s | 369 -------------------------------------------- src/field_map_obj_helpers.c | 180 +++++++++++++++++++-- 2 files changed, 167 insertions(+), 382 deletions(-) diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s index 3433f64f6..a58096701 100644 --- a/asm/map_obj_8097404.s +++ b/asm/map_obj_8097404.s @@ -5,375 +5,6 @@ .text - thumb_func_start sub_8097BB4 -sub_8097BB4: @ 8097BB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - bl sub_8097B2C - adds r1, r0, 0 - cmp r1, 0x40 - beq _08097C3E - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - adds r0, r5, 0 - bl GetFieldObjectGraphicsInfo - ldrh r3, [r4, 0x4] - lsls r3, 22 - ldr r1, [r0, 0x10] - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r4] - str r2, [r4, 0x4] - lsrs r3, 22 - ldrh r2, [r4, 0x4] - ldr r1, =0xfffffc00 - ands r1, r2 - orrs r1, r3 - strh r1, [r4, 0x4] - ldrb r2, [r0, 0xC] - lsls r2, 28 - lsrs r2, 24 - ldrb r3, [r4, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r2 - strb r1, [r4, 0x5] - ldr r1, [r0, 0x1C] - str r1, [r4, 0xC] - ldr r1, [r0, 0x14] - cmp r1, 0 - bne _08097C20 - str r1, [r4, 0x18] - adds r0, r4, 0 - adds r0, 0x42 - strb r1, [r0] - b _08097C36 - .pool -_08097C20: - adds r0, r4, 0 - bl SetSubspriteTables - adds r2, r4, 0 - adds r2, 0x42 - ldrb r0, [r2] - movs r1, 0x3F - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2] -_08097C36: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_08097C3E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8097BB4 - - thumb_func_start sub_8097C44 -sub_8097C44: @ 8097C44 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - bl sub_8097B2C - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - cmp r2, 0x40 - beq _08097C80 - cmp r4, 0 - beq _08097C74 - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x32] - b _08097C80 - .pool -_08097C74: - ldr r1, =gSprites - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - strh r4, [r0, 0x32] -_08097C80: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097C44 - - thumb_func_start sub_8097C8C -sub_8097C8C: @ 8097C8C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8097B2C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - bne _08097CA2 - movs r0, 0 - b _08097CBA -_08097CA2: - movs r3, 0 - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08097CB8 - movs r3, 0x1 -_08097CB8: - adds r0, r3, 0 -_08097CBA: - pop {r1} - bx r1 - .pool - thumb_func_end sub_8097C8C - - thumb_func_start sub_8097CC4 -sub_8097CC4: @ 8097CC4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_8097B2C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08097CEA - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - movs r0, 0 - strh r4, [r1, 0x34] - strh r0, [r1, 0x36] -_08097CEA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097CC4 - - thumb_func_start sub_8097CF4 -sub_8097CF4: @ 8097CF4 - push {lr} - adds r2, r0, 0 - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08097D06 - cmp r0, 0x1 - beq _08097D0E - b _08097D2C -_08097D06: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x36] - adds r0, 0x1 - strh r0, [r2, 0x36] -_08097D0E: - ldrh r0, [r2, 0x26] - subs r0, 0x8 - movs r3, 0 - strh r0, [r2, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xA0 - negs r1, r1 - cmp r0, r1 - bne _08097D2C - strh r3, [r2, 0x26] - movs r0, 0x1 - strh r0, [r2, 0x32] - strh r3, [r2, 0x34] - strh r3, [r2, 0x36] -_08097D2C: - pop {r0} - bx r0 - thumb_func_end sub_8097CF4 - - thumb_func_start sub_8097D30 -sub_8097D30: @ 8097D30 - push {lr} - adds r1, r0, 0 - movs r2, 0x36 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08097D42 - cmp r0, 0x1 - beq _08097D4C - b _08097D5E -_08097D42: - ldr r0, =0x0000ff60 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] -_08097D4C: - ldrh r0, [r1, 0x26] - adds r0, 0x8 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _08097D5E - strh r0, [r1, 0x34] - strh r0, [r1, 0x36] -_08097D5E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097D30 - - thumb_func_start sub_8097D68 -sub_8097D68: @ 8097D68 - push {lr} - adds r1, r0, 0 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08097D84 - cmp r0, 0x1 - bgt _08097D7E - cmp r0, 0 - beq _08097D98 - b _08097D94 -_08097D7E: - cmp r0, 0x2 - beq _08097D8C - b _08097D94 -_08097D84: - adds r0, r1, 0 - bl sub_8097D30 - b _08097D98 -_08097D8C: - adds r0, r1, 0 - bl sub_8097CF4 - b _08097D98 -_08097D94: - movs r0, 0 - strh r0, [r1, 0x34] -_08097D98: - pop {r0} - bx r0 - thumb_func_end sub_8097D68 - - thumb_func_start sub_8097D9C -sub_8097D9C: @ 8097D9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_8097B2C - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08097DC0 - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08097DC8 -_08097DC0: - movs r0, 0 - b _08097DCA - .pool -_08097DC8: - movs r0, 0x1 -_08097DCA: - pop {r1} - bx r1 - thumb_func_end sub_8097D9C - - thumb_func_start oe_exec_and_other_stuff -oe_exec_and_other_stuff: @ 8097DD0 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, =gFieldEffectArguments - adds r2, r1, 0x4 - adds r3, r1, 0 - adds r3, 0x8 - bl FieldObjectGetLocalIdAndMap - adds r0, r4, 0 - bl FieldEffectStart - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end oe_exec_and_other_stuff - - thumb_func_start DoShadowFieldEffect -DoShadowFieldEffect: @ 8097DF8 - push {lr} - adds r1, r0, 0 - ldrb r2, [r1, 0x2] - lsls r0, r2, 25 - cmp r0, 0 - blt _08097E10 - movs r0, 0x40 - orrs r0, r2 - strb r0, [r1, 0x2] - movs r0, 0x3 - bl oe_exec_and_other_stuff -_08097E10: - pop {r0} - bx r0 - thumb_func_end DoShadowFieldEffect - - thumb_func_start DoRippleFieldEffect -@ void DoRippleFieldEffect(struct npc_state *fieldObject, struct obj *object) -DoRippleFieldEffect: @ 8097E14 - push {r4,lr} - adds r4, r1, 0 - ldrb r0, [r0, 0x5] - bl GetFieldObjectGraphicsInfo - ldr r2, =gFieldEffectArguments - movs r3, 0x20 - ldrsh r1, [r4, r3] - str r1, [r2] - movs r3, 0x22 - ldrsh r1, [r4, r3] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - adds r1, r0 - subs r1, 0x2 - str r1, [r2, 0x4] - movs r0, 0x97 - str r0, [r2, 0x8] - movs r0, 0x3 - str r0, [r2, 0xC] - movs r0, 0x5 - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoRippleFieldEffect - thumb_func_start sub_8097E50 sub_8097E50: @ 8097E50 push {r4-r7,lr} diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index 1247a7cd7..b0f7442f4 100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -1,15 +1,22 @@ #include "global.h" #include "field_ground_effect.h" #include "field_map_obj.h" +#include "field_effect.h" -typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); +extern void sub_8097D68(struct Sprite *sprite); -extern const s8 gUnknown_0850E7BA[]; -extern const s8 gUnknown_0850E772[]; +typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); +extern const struct Coords16 gUnknown_0850DB7C[4]; extern s16 gUnknown_0850E768[]; extern SpriteStepFunc *const gUnknown_0850E754[]; -extern const struct Coords16 gUnknown_0850DB7C[4]; +extern const s8 gUnknown_0850E772[]; +extern const s8 gUnknown_0850E7BA[]; +extern const s8 *const gUnknown_0850E834[]; +extern s16 gUnknown_0850E840[]; +extern u8 gUnknown_0850E846[]; +extern s16 gUnknown_0850E84A[]; +extern u8 gUnknown_0850E850[]; bool8 FreezeMapObject(struct MapObject *mapObject) { @@ -192,10 +199,6 @@ bool8 sub_8097758(struct Sprite *sprite) return result; } -extern const s8 *const gUnknown_0850E834[]; -extern s16 gUnknown_0850E840[]; -extern u8 gUnknown_0850E846[]; - s16 sub_8097820(s16 a1, u8 a2) { return gUnknown_0850E834[a2][a1]; @@ -238,9 +241,6 @@ u8 sub_809785C(struct Sprite *sprite) return v2; } -extern s16 gUnknown_0850E84A[]; -extern u8 gUnknown_0850E850[]; - u8 sub_80978E4(struct Sprite *sprite) { s16 v5[3]; @@ -328,8 +328,6 @@ void sub_80979D4(struct Sprite *sprite, bool8 invisible) sprite->invisible = 1; } -extern void sub_8097D68(struct Sprite *sprite); - void sub_8097AC8(struct Sprite *sprite) { sub_8097D68(sprite); @@ -369,3 +367,159 @@ void sub_8097B78(u8 var1, u8 var2) if(spriteId != MAX_SPRITES) StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(var2)); } + +void sub_8097BB4(u8 var1, u8 var2) +{ + int spriteId = sub_8097B2C(var1); + + if(spriteId != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[spriteId]; + const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(var2); + u16 tileNum = sprite->oam.tileNum; + + sprite->oam = *gfxInfo->oam; + sprite->oam.tileNum = tileNum; + sprite->oam.paletteNum = gfxInfo->paletteSlot; + sprite->images = gfxInfo->images; + + if(gfxInfo->subspriteTables == NULL) + { + sprite->subspriteTables = NULL; + sprite->subspriteTableNum = 0; + sprite->subspriteMode = 0; + } + else + { + SetSubspriteTables(sprite, gfxInfo->subspriteTables); + sprite->subspriteMode = 2; + } + StartSpriteAnim(sprite, 0); + } +} + +void sub_8097C44(u8 var, bool32 var2) +{ + u8 spriteId = sub_8097B2C(var); + + if(spriteId == MAX_SPRITES) + return; + + if(var2) + gSprites[spriteId].data[2] = 1; + else + gSprites[spriteId].data[2] = 0; +} + +bool32 sub_8097C8C(u8 var) +{ + u8 spriteId = sub_8097B2C(var); + + if(spriteId == MAX_SPRITES) + return FALSE; + + return (gSprites[spriteId].data[2] == TRUE); +} + +void sub_8097CC4(u8 var1, u8 var2) +{ + u8 spriteId = sub_8097B2C(var1); + + if(spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[3] = var2; + gSprites[spriteId].data[4] = 0; + } +} + +void sub_8097CF4(struct Sprite *sprite) +{ + switch(sprite->data[4]) + { + case 0: + sprite->pos2.y = 0; + sprite->data[4]++; + case 1: + sprite->pos2.y -= 8; + if(sprite->pos2.y == -160) + { + sprite->pos2.y = 0; + sprite->data[2] = 1; + sprite->data[3] = 0; + sprite->data[4] = 0; + } + } +} + +void sub_8097D30(struct Sprite *sprite) +{ + switch(sprite->data[4]) + { + case 0: + sprite->pos2.y = -160; + sprite->data[4]++; + case 1: + sprite->pos2.y += 8; + if(sprite->pos2.y == 0) + { + sprite->data[3] = 0; + sprite->data[4] = 0; + } + } +} + +void sub_8097D68(struct Sprite *sprite) +{ + switch(sprite->data[3]) + { + case 1: + sub_8097D30(sprite); + break; + case 2: + sub_8097CF4(sprite); + break; + case 0: + break; + default: + sprite->data[3] = 0; + break; + } +} + +bool32 sub_8097D9C(u8 var) +{ + u8 spriteId = sub_8097B2C(var); + + if(spriteId == MAX_SPRITES) + return FALSE; + + if(gSprites[spriteId].data[3] != FALSE) + return TRUE; + + return FALSE; +} + +u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject) +{ + FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); + return FieldEffectStart(fieldEffectId); +} + +void DoShadowFieldEffect(struct MapObject *mapObject) +{ + if (!mapObject->mapobj_bit_22) + { + mapObject->mapobj_bit_22 = 1; + oe_exec_and_other_stuff(FLDEFF_SHADOW, mapObject); + } +} + +void DoRippleFieldEffect(struct MapObject *mapObject, struct Sprite *sprite) +{ + const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId); + gFieldEffectArguments[0] = sprite->pos1.x; + gFieldEffectArguments[1] = sprite->pos1.y + (gfxInfo->height >> 1) - 2; + gFieldEffectArguments[2] = 151; + gFieldEffectArguments[3] = 3; + FieldEffectStart(FLDEFF_RIPPLE); +} -- cgit v1.2.3 From a75c476d57a8ffad9bebc7524c698cc2d5738d2a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 30 Jan 2018 13:13:07 -0600 Subject: Get RenderText a bit closer (thanks Egg) --- src/text.c | 545 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 270 insertions(+), 275 deletions(-) diff --git a/src/text.c b/src/text.c index 6be46b7b1..936f96798 100644 --- a/src/text.c +++ b/src/text.c @@ -2054,300 +2054,295 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c #ifdef NONMATCHING u16 RenderText(struct TextPrinter *textPrinter) { - struct TextPrinterSubStruct* r4 = &textPrinter->sub_union.sub; - int temp; - int r4two; - int jpnvar; - u8* tempTwo; - u16 songId; - int dummy; - u8 dummyTwo; - + struct TextPrinterSubStruct *r4 = &textPrinter->sub_union.sub; + u16 currChar; + s32 width; + switch (textPrinter->state) // _080057C4 { - case 0: // _080057F0 - if ((gMain.heldKeys & (A_BUTTON | B_BUTTON)) && r4->font_type_upper) - textPrinter->delayCounter = 0; - if (textPrinter->delayCounter && textPrinter->text_speed) //_0800580A + case 0: // _080057F0 + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON)) && r4->font_type_upper) + textPrinter->delayCounter = 0; + + if (textPrinter->delayCounter && textPrinter->text_speed) //_0800580A + { + textPrinter->delayCounter--; + if (gTextFlags.flag_0 && (gMain.newKeys & (A_BUTTON | B_BUTTON))) { - textPrinter->delayCounter--; - if (gTextFlags.flag_0 && (gMain.newKeys & (A_BUTTON | B_BUTTON))) - { - r4->font_type_upper = 1; - textPrinter->delayCounter = 0; - } - return 3; + r4->font_type_upper = 1; + textPrinter->delayCounter = 0; } - else // _0800584C + return 3; + } + + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED) && gTextFlags.flag_2) + textPrinter->delayCounter = 3; + else + textPrinter->delayCounter = textPrinter->text_speed; + + currChar = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + + switch (currChar) //_0800588A + { + case 0xF8+6: //_080058B8 + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY += (gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing); + return 2; + case 0xF8+5: //_080058DC + textPrinter->subPrinter.current_text_offset++; + return 2; + case 0xF8+4: //_080058E0 + currChar = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + switch (currChar) // _080058F0 { - if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED) && gTextFlags.flag_2) - textPrinter->delayCounter = 3; - else - textPrinter->delayCounter = textPrinter->text_speed; - temp = *textPrinter->subPrinter.current_text_offset; + case 1: // _08005960 + textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 2: // _08005982 + textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 3: // _080059A6 + textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 4: // _080059C0 + textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); + return 2; + case 5: // _08005A0E + textPrinter->subPrinter.current_text_offset++; + return 2; + case 6: //_08005A12 + r4->font_type = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 7: // _08005A0A + return 2; + case 8: // _08005A2A + textPrinter->delayCounter = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + textPrinter->state = 6; + return 2; + case 9: // _08005A3A + textPrinter->state = 1; + if (gTextFlags.flag_2) + r4->frames_visible_counter = 0; + return 3; + case 10: // _08005A58 + textPrinter->state = 5; + return 3; + case 11: // _08005A5C + currChar = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + currChar |= *textPrinter->subPrinter.current_text_offset << 8; textPrinter->subPrinter.current_text_offset++; - switch (temp) //_0800588A + PlayBGM(currChar); + return 2; + case 16: // _08005A76 + currChar = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + currChar |= (*textPrinter->subPrinter.current_text_offset << 8); + textPrinter->subPrinter.current_text_offset++; + PlaySE(currChar); + return 2; + case 13: // _08005A90 + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x + *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 14: // _08005A98 + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y + *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 15: // _08005AA4 + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, textPrinter->subPrinter.bgColor | textPrinter->subPrinter.bgColor << 4); + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; + return 2; + case 23: // _08005ABE + m4aMPlayStop(&gMPlayInfo_BGM); + return 2; + case 24: // _08005ACC + m4aMPlayContinue(&gMPlayInfo_BGM); + return 2; + case 17: // _08005AD8 + width = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + if (width > 0) { - case 0xF8+6: //_080058B8 - textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; - textPrinter->subPrinter.currentY += (gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing); - return 2; - case 0xF8+5: //_080058DC - textPrinter->subPrinter.current_text_offset++; - return 2; - case 0xF8+4: //_080058E0 - temp = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - switch (temp) // _080058F0 - { - - case 1: // _08005960 - textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); - return 2; - case 2: // _08005982 - textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); - return 2; - case 3: // _080059A6 - textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); - return 2; - case 4: // _080059C0 - textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor); - return 2; - case 5: // _08005A0E - textPrinter->subPrinter.current_text_offset++; - return 2; - case 6: //_08005A12 - r4->font_type = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - return 2; - case 7: // _08005A0A - return 2; - case 8: // _08005A2A - textPrinter->delayCounter = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - textPrinter->state = 6; - return 2; - case 9: // _08005A3A - textPrinter->state = 1; - if (gTextFlags.flag_2) - r4->frames_visible_counter = 0; - return 3; - case 10: // _08005A58 - textPrinter->state = 5; - return 3; - case 11: // _08005A5C - songId = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - songId |= *textPrinter->subPrinter.current_text_offset << 8; - textPrinter->subPrinter.current_text_offset++; - PlayBGM(songId); - return 2; - case 16: // _08005A76 - songId = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - songId |= (*textPrinter->subPrinter.current_text_offset << 8); - textPrinter->subPrinter.current_text_offset++; - PlaySE(songId); - return 2; - case 13: // _08005A90 - textPrinter->subPrinter.currentX = textPrinter->subPrinter.x + *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - return 2; - case 14: // _08005A98 - textPrinter->subPrinter.currentY = textPrinter->subPrinter.y + *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - return 2; - case 15: // _08005AA4 - FillWindowPixelBuffer(textPrinter->subPrinter.windowId, textPrinter->subPrinter.bgColor | textPrinter->subPrinter.bgColor << 4); - textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; - textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; - return 2; - case 23: // _08005ABE - m4aMPlayStop(&gMPlayInfo_BGM); - return 2; - case 24: // _08005ACC - m4aMPlayContinue(&gMPlayInfo_BGM); - return 2; - case 17: // _08005AD8 - temp = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - if (temp > 0) - { - ClearTextSpan(textPrinter, temp); - textPrinter->subPrinter.currentX += temp; - return 0; - } - return 2; - case 18: // _08005AF2 - textPrinter->subPrinter.currentX = *textPrinter->subPrinter.current_text_offset + textPrinter->subPrinter.x; - textPrinter->subPrinter.current_text_offset++; - return 2; - case 19: // _08005B02 - temp = *textPrinter->subPrinter.current_text_offset; - temp += textPrinter->subPrinter.x; - textPrinter->subPrinter.current_text_offset++; - r4two = temp - textPrinter->subPrinter.currentX; - if (temp - textPrinter->subPrinter.currentX > 0) - { - ClearTextSpan(textPrinter, r4two); - textPrinter->subPrinter.currentX += r4two; - return 0; - } - return 2; - case 20: // _08005B26 - textPrinter->minLetterSpacing = *textPrinter->subPrinter.current_text_offset++; - return 2; - case 21: // _08005B36 - textPrinter->japanese = 1; - return 2; - case 22: // _08005B3E - textPrinter->japanese = 0; - return 2; - case 12: // _08005B5A - dummyTwo = *textPrinter->subPrinter.current_text_offset; - dummy = 0x100; - temp = dummy | dummyTwo; - textPrinter->subPrinter.current_text_offset++; - break; - } - break; - case 0xF8+3: // _08005B48 - textPrinter->state = 2; - TextPrinterInitDownArrowCounters(textPrinter); - return 3; - case 0xF8+2: // _08005B4C - textPrinter->state = 3; - TextPrinterInitDownArrowCounters(textPrinter); - return 3; - case 0xF8+1: // _08005B5A - dummyTwo = *textPrinter->subPrinter.current_text_offset; - dummy = 0x100; - temp = dummy | dummyTwo; - textPrinter->subPrinter.current_text_offset++; - break; - case 0xF8+0: // _08005B6C - temp = *textPrinter->subPrinter.current_text_offset; - textPrinter->subPrinter.current_text_offset++; - gUnknown_03002F90[0x80] = DrawKeypadIcon(textPrinter->subPrinter.windowId, temp, textPrinter->subPrinter.currentX, textPrinter->subPrinter.currentY); - textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing; - return 0; - case 0xF8+7: // _08005D6C - return 1; + ClearTextSpan(textPrinter, width); + textPrinter->subPrinter.currentX += width; + return 0; } - - } - switch (r4->font_type) // _08005B90 - { - case 0: // _08005BCC - jpnvar = textPrinter->japanese; - DecompressGlyphFont0(temp, jpnvar); - break; - case 1: // _08005BDA - jpnvar = textPrinter->japanese; - DecompressGlyphFont1(temp, jpnvar); - break; - case 2: - case 3: - case 4: - case 5: // _08005BE8 - jpnvar = textPrinter->japanese; - DecompressGlyphFont2(temp, jpnvar); - break; - case 7: // _08005BF6 - jpnvar = textPrinter->japanese; - DecompressGlyphFont7(temp, jpnvar); - break; - case 8: // _08005C04 - jpnvar = textPrinter->japanese; - DecompressGlyphFont8(temp, jpnvar); - break; - case 6: // _08005C10 - break; - } - CopyGlyphToWindow(textPrinter); // _08005C10 - if (textPrinter->minLetterSpacing) - { - textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80]; - r4two = textPrinter->minLetterSpacing - gUnknown_03002F90[0x80]; - if (r4two > 0) + return 2; + case 18: // _08005AF2 + textPrinter->subPrinter.currentX = *textPrinter->subPrinter.current_text_offset + textPrinter->subPrinter.x; + textPrinter->subPrinter.current_text_offset++; + return 2; + case 19: // _08005B02 { - ClearTextSpan(textPrinter, r4two); - textPrinter->subPrinter.currentX += r4two; + s32 widthHelper = *textPrinter->subPrinter.current_text_offset; + widthHelper += textPrinter->subPrinter.x; + textPrinter->subPrinter.current_text_offset++; + width = widthHelper - textPrinter->subPrinter.currentX; + if (width > 0) + { + ClearTextSpan(textPrinter, width); + textPrinter->subPrinter.currentX += width; + return 0; + } } + return 2; + case 20: // _08005B26 + textPrinter->minLetterSpacing = *textPrinter->subPrinter.current_text_offset++; + return 2; + case 21: // _08005B36 + textPrinter->japanese = 1; + return 2; + case 22: // _08005B3E + textPrinter->japanese = 0; + return 2; + case 12: // _08005B5A + currChar = *textPrinter->subPrinter.current_text_offset | 0x100; + textPrinter->subPrinter.current_text_offset++; + break; } - else // _08005C48 - { - if (textPrinter->japanese) - textPrinter->subPrinter.currentX += (gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing); - else - textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80]; - } - return 0; - case 1: // _08005C78 - if (TextPrinterWait(textPrinter)) - textPrinter->state = 0; + break; + + case 0xF8+3: // _08005B48 + textPrinter->state = 2; + TextPrinterInitDownArrowCounters(textPrinter); return 3; - case 2: // _08005C8C - if (TextPrinterWaitWithDownArrow(textPrinter)) - { - FillWindowPixelBuffer(textPrinter->subPrinter.windowId, (textPrinter->subPrinter.bgColor << 4) | textPrinter->subPrinter.bgColor); - textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; - textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; - textPrinter->state = 0; - } + case 0xF8+2: // _08005B4C + textPrinter->state = 3; + TextPrinterInitDownArrowCounters(textPrinter); return 3; - case 3: // _08005CB8 - if (TextPrinterWaitWithDownArrow(textPrinter)) + case 0xF8+1: // _08005B5A + currChar = *textPrinter->subPrinter.current_text_offset | 0x100; + textPrinter->subPrinter.current_text_offset++; + break; + case 0xF8+0: // _08005B6C + currChar = *textPrinter->subPrinter.current_text_offset; + textPrinter->subPrinter.current_text_offset++; + gUnknown_03002F90[0x80] = DrawKeypadIcon(textPrinter->subPrinter.windowId, currChar, textPrinter->subPrinter.currentX, textPrinter->subPrinter.currentY); + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing; + return 0; + case 0xF8+7: // _08005D6C + return 1; + } + + switch (r4->font_type) // _08005B90 + { + case 0: // _08005BCC + DecompressGlyphFont0(currChar, textPrinter->japanese); + break; + case 1: // _08005BDA + DecompressGlyphFont1(currChar, textPrinter->japanese); + break; + case 2: + case 3: + case 4: + case 5: // _08005BE8 + DecompressGlyphFont2(currChar, textPrinter->japanese); + break; + case 7: // _08005BF6 + DecompressGlyphFont7(currChar, textPrinter->japanese); + break; + case 8: // _08005C04 + DecompressGlyphFont8(currChar, textPrinter->japanese); + break; + case 6: // _08005C10 + break; + } + + CopyGlyphToWindow(textPrinter); // _08005C10 + + if (textPrinter->minLetterSpacing) + { + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80]; + width = textPrinter->minLetterSpacing - gUnknown_03002F90[0x80]; + if (width > 0) { - TextPrinterClearDownArrow(textPrinter); - textPrinter->scrollDistance = gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; - textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; - textPrinter->state = 4; + ClearTextSpan(textPrinter, width); + textPrinter->subPrinter.currentX += width; } - return 3; - case 4: // _08005CF0 - if (textPrinter->scrollDistance) + } + else // _08005C48 + { + if (textPrinter->japanese) + textPrinter->subPrinter.currentX += (gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing); + else + textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80]; + } + + return 0; + case 1: // _08005C78 + if (TextPrinterWait(textPrinter)) + textPrinter->state = 0; + return 3; + case 2: // _08005C8C + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + FillWindowPixelBuffer(textPrinter->subPrinter.windowId, (textPrinter->subPrinter.bgColor << 4) | textPrinter->subPrinter.bgColor); + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->subPrinter.currentY = textPrinter->subPrinter.y; + textPrinter->state = 0; + } + return 3; + case 3: // _08005CB8 + if (TextPrinterWaitWithDownArrow(textPrinter)) + { + TextPrinterClearDownArrow(textPrinter); + textPrinter->scrollDistance = gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing; + textPrinter->subPrinter.currentX = textPrinter->subPrinter.x; + textPrinter->state = 4; + } + return 3; + case 4: // _08005CF0 + if (textPrinter->scrollDistance) + { + int scrollSpeed = sub_8197964(); + int speed = gWindowVerticalScrollSpeeds[scrollSpeed]; + if (textPrinter->scrollDistance < speed) { - int scrollSpeed = sub_8197964(); - int r4two = gWindowVerticalScrollSpeeds[scrollSpeed]; - if (textPrinter->scrollDistance < r4two) - { - ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor); - textPrinter->scrollDistance = 0; - } - else - { - ScrollWindow(textPrinter->subPrinter.windowId, 0, (int)r4two, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor); - textPrinter->scrollDistance -= r4two; - } - CopyWindowToVram(textPrinter->subPrinter.windowId, 2); + ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor); + textPrinter->scrollDistance = 0; } else - textPrinter->state = 0; - return 3; - case 5: // _08005D48 - if (!IsSEPlaying()) - textPrinter->state = 0; - return 3; - case 6: // _08005D5A - if (textPrinter->delayCounter != 0) - textPrinter->delayCounter--; - else - textPrinter->state = 0; - return 3; + { + ScrollWindow(textPrinter->subPrinter.windowId, 0, speed, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor); + textPrinter->scrollDistance -= speed; + } + CopyWindowToVram(textPrinter->subPrinter.windowId, 2); + } + else + { + textPrinter->state = 0; + } + return 3; + case 5: // _08005D48 + if (!IsSEPlaying()) + textPrinter->state = 0; + return 3; + case 6: // _08005D5A + if (textPrinter->delayCounter != 0) + textPrinter->delayCounter--; + else + textPrinter->state = 0; + return 3; } + return 1; } #else -- cgit v1.2.3 From f0cc705d35820fa6673200ace50aa67e5832f3f8 Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Tue, 30 Jan 2018 17:16:41 -0500 Subject: fixes --- include/new_menu_helpers.h | 4 ++++ src/field_message_box.c | 12 ++---------- sym_ewram.txt | 3 +++ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 4b1e372c2..bcbb1147d 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -17,5 +17,9 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); u8 GetPlayerTextSpeed(void); void sub_81978B0(u16 arg0); +u16 sub_8197224(void); +int sub_8196094(void); +void sub_8196080(u8*); +void AddTextPrinterForMessage(u8); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/field_message_box.c b/src/field_message_box.c index fc51bc588..ea80b2ea9 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,19 +1,11 @@ #include "global.h" +#include "new_menu_helpers.h" #include "string.h" #include "string_util.h" #include "task.h" #include "text.h" -extern void sub_81973A4(void); -extern void sub_81973C4(u8, u8); -extern u16 sub_8197224(void); -extern int sub_8196094(void); -extern void sub_8196080(u8*); -extern void AddTextPrinterForMessage(u8); -extern void sub_8197434(u8, u8); -extern void sub_81973FC(u8, u8); - -extern u8 gUnknown_020375BC; +u8 gUnknown_020375BC = 0; void textbox_fdecode_auto_and_task_add(u8*, int); void textbox_auto_and_task_add(void); diff --git a/sym_ewram.txt b/sym_ewram.txt index c04f524d8..67df29d3b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -645,6 +645,9 @@ gUnknown_020375B8: @ 20375B8 gUnknown_020375BC: @ 20375BC .space 0x4 + .include "src/field_message_box.o" + + .align 2 gUnknown_020375C0: @ 20375C0 .space 0x4 -- cgit v1.2.3 From 741b8adf9a43989182ff3648bf14e3236d4b5ce9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 30 Jan 2018 23:23:35 +0100 Subject: decompile mystery event menu --- asm/cable_club.s | 42 +- asm/link.s | 108 ++-- asm/main_menu.s | 2 +- asm/mystery_event_menu.s | 669 --------------------- asm/overworld.s | 2 +- asm/pokenav.s | 32 +- asm/record_mixing.s | 12 +- asm/trade.s | 18 +- data/mystery_event_menu.s | 12 - data/scripts/cable_club.inc | 34 +- .../maps/BattleFrontier_BattleTowerLobby.inc | 8 +- data/scripts/maps/LilycoveCity_ContestLobby.inc | 6 +- data/scripts/pokeblocks.inc | 8 +- data/specials.inc | 2 +- include/link.h | 8 +- include/mystery_event_menu.h | 6 + include/strings.h | 8 + ld_script.txt | 4 +- src/battle_controllers.c | 6 +- src/mystery_event_menu.c | 303 ++++++++++ sym_common.txt | 2 +- sym_ewram.txt | 4 +- 22 files changed, 465 insertions(+), 831 deletions(-) delete mode 100644 asm/mystery_event_menu.s delete mode 100644 data/mystery_event_menu.s create mode 100644 include/mystery_event_menu.h create mode 100644 src/mystery_event_menu.c diff --git a/asm/cable_club.s b/asm/cable_club.s index 611b87eef..76eba625c 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -178,7 +178,7 @@ _080B24C8: b _080B24F2 _080B24CC: ldr r4, =gStringVar1 - bl sub_800ABAC + bl GetLinkPlayerCount_2 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -239,7 +239,7 @@ sub_80B252C: @ 80B252C ands r0, r1 cmp r0, 0 beq _080B2570 - bl sub_800B320 + bl IsLinkConnectionEstablished lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -269,7 +269,7 @@ sub_80B2578: @ 80B2578 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_800B320 + bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 beq _080B258E @@ -404,7 +404,7 @@ sub_80B2688: @ 80B2688 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 @@ -426,7 +426,7 @@ sub_80B2688: @ 80B2688 adds r4, r0, r1 movs r0, 0 strh r0, [r4, 0xE] - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -506,7 +506,7 @@ sub_80B275C: @ 80B275C mov r9, r0 mov r7, r8 add r7, r9 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 @@ -585,7 +585,7 @@ sub_80B2804: @ 80B2804 bne _080B2898 bl sub_800AA48 adds r4, r0, 0 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -652,7 +652,7 @@ sub_80B28A8: @ 80B28A8 lsrs r0, 24 cmp r0, 0x1 beq _080B290A - bl sub_800ABAC + bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800AA48 lsls r4, 24 @@ -729,13 +729,13 @@ _080B297C: cmp r2, 0x9 bne _080B2994 _080B2984: - bl sub_80097E8 + bl CloseLink bl HideFieldMessageBox ldr r0, =sub_80B2CB0 b _080B29E4 .pool _080B2994: - bl sub_800ABAC + bl GetLinkPlayerCount_2 ldr r4, =gUnknown_03005DB8 strb r0, [r4] bl GetMultiplayerId @@ -812,7 +812,7 @@ _080B2A42: cmp r0, 0x9 bne _080B2A6C _080B2A4A: - bl sub_80097E8 + bl CloseLink _080B2A4E: bl HideFieldMessageBox ldr r0, =gTasks @@ -825,7 +825,7 @@ _080B2A4E: b _080B2ACE .pool _080B2A6C: - bl sub_800ABAC + bl GetLinkPlayerCount_2 ldr r4, =gUnknown_03005DB8 strb r0, [r4] bl GetMultiplayerId @@ -1610,7 +1610,7 @@ sub_80B3144: @ 80B3144 ldrsh r2, [r4, r3] cmp r2, 0 bne _080B3178 - bl sub_8009734 + bl OpenLink bl sub_800A2BC ldr r0, =task00_08081A90 movs r1, 0x50 @@ -1640,12 +1640,12 @@ sub_80B3194: @ 80B3194 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080B31DA - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1681,7 +1681,7 @@ sub_80B31E8: @ 80B31E8 lsrs r5, r0, 24 bl sub_800AA48 adds r4, r0, 0 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -2651,7 +2651,7 @@ task00_08081A90: @ 80B3A30 lsls r0, 17 cmp r1, r0 ble _080B3A62 - bl sub_80097E8 + bl CloseLink ldr r0, =c2_800ACD4 bl SetMainCallback2 adds r0, r4, 0 @@ -2669,7 +2669,7 @@ _080B3A62: lsls r0, 24 cmp r0, 0 bne _080B3A86 - bl sub_80097E8 + bl CloseLink ldr r0, =c2_800ACD4 bl SetMainCallback2 _080B3A86: @@ -2761,7 +2761,7 @@ _080B3B2A: b _080B3BB8 .pool _080B3B40: - bl sub_8009734 + bl OpenLink ldr r0, =task00_08081A90 movs r1, 0x1 bl CreateTask @@ -2779,14 +2779,14 @@ _080B3B54: strh r0, [r5, 0x2] b _080B3B96 _080B3B68: - bl sub_800ABAC + bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800AA48 lsls r4, 24 lsls r0, 24 cmp r4, r0 bcc _080B3BB8 - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _080B3B96 diff --git a/asm/link.s b/asm/link.s index 1ad160340..c6df00f1b 100644 --- a/asm/link.s +++ b/asm/link.s @@ -15,7 +15,7 @@ sub_80093CC: @ 80093CC cmp r0, r1 beq _080093F4 bl sub_800B4A4 - bl sub_80097E8 + bl CloseLink bl RestoreSerialTimer3IntrHandlers movs r0, 0 b _080093FE @@ -29,15 +29,15 @@ _080093FE: bx r1 thumb_func_end sub_80093CC - thumb_func_start sub_8009404 -sub_8009404: @ 8009404 + thumb_func_start Task_DestroySelf +Task_DestroySelf: @ 8009404 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 - thumb_func_end sub_8009404 + thumb_func_end Task_DestroySelf thumb_func_start sub_8009414 sub_8009414: @ 8009414 @@ -210,7 +210,7 @@ sub_8009570: @ 8009570 ldr r2, =0x00001111 adds r0, r2, 0 strh r0, [r1] - bl sub_8009734 + bl OpenLink ldr r0, =gMain ldrh r0, [r0, 0x24] bl SeedRng @@ -236,7 +236,7 @@ _080095A0: lsls r1, 5 movs r0, 0 bl SetGpuReg - ldr r0, =sub_8009404 + ldr r0, =Task_DestroySelf movs r1, 0 bl CreateTask bl RunTasks @@ -384,8 +384,8 @@ _08009726: .pool thumb_func_end task02_080097CC - thumb_func_start sub_8009734 -sub_8009734: @ 8009734 + thumb_func_start OpenLink +OpenLink: @ 8009734 push {r4-r6,lr} ldr r0, =gLinkVSyncDisabled ldrb r4, [r0] @@ -443,10 +443,10 @@ _080097BE: pop {r0} bx r0 .pool - thumb_func_end sub_8009734 + thumb_func_end OpenLink - thumb_func_start sub_80097E8 -sub_80097E8: @ 80097E8 + thumb_func_start CloseLink +CloseLink: @ 80097E8 push {r4,lr} ldr r0, =gReceivedRemoteLinkPlayers movs r4, 0 @@ -464,7 +464,7 @@ _080097FC: pop {r0} bx r0 .pool - thumb_func_end sub_80097E8 + thumb_func_end CloseLink thumb_func_start sub_8009818 sub_8009818: @ 8009818 @@ -698,7 +698,7 @@ _080099FC: bls _080099FC ldrh r0, [r4] strh r0, [r5] - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldr r0, [r0] movs r1, 0x40 ands r0, r1 @@ -717,7 +717,7 @@ _080099FC: _08009A34: bl sub_800AEB4 _08009A38: - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldrh r0, [r0] _08009A3C: pop {r4,r5} @@ -745,7 +745,7 @@ _08009A70: adds r5, r0 adds r4, 0x1 _08009A78: - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -1378,7 +1378,7 @@ GetLinkPlayerCount: @ 8009FCC ldrb r0, [r0] cmp r0, 0 bne _08009FEC - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldr r0, [r0] movs r1, 0x1C ands r0, r1 @@ -1514,7 +1514,7 @@ sub_800A0AC: @ 800A0AC str r1, [r0] ldr r0, =gUnknown_020229C8 strh r1, [r0] - bl sub_8009734 + bl OpenLink pop {r0} bx r0 .pool @@ -1532,7 +1532,7 @@ sub_800A0C8: @ 800A0C8 beq _0800A0DA b _0800A214 _0800A0DA: - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -1552,7 +1552,7 @@ _0800A0FC: bne _0800A10E ldr r0, =gUnknown_0300306C strb r4, [r0] - bl sub_80097E8 + bl CloseLink _0800A10E: movs r6, 0 ldr r4, =gLinkPlayers @@ -2211,7 +2211,7 @@ _0800A616: thumb_func_start sub_800A620 sub_800A620: @ 800A620 push {lr} - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldr r1, [r0] movs r0, 0x20 ands r0, r1 @@ -2499,7 +2499,7 @@ _0800A81C: thumb_func_start sub_800A824 sub_800A824: @ 800A824 push {lr} - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldr r0, [r0] movs r1, 0x20 ands r0, r1 @@ -2534,7 +2534,7 @@ task00_link_test: @ 800A850 movs r2, 0x1 movs r3, 0x2 bl sub_800A6E8 - ldr r4, =gUnknown_030030E0 + ldr r4, =gLinkStatus ldr r0, [r4] movs r1, 0xF movs r2, 0x1 @@ -2606,7 +2606,7 @@ task00_link_test: @ 800A850 movs r2, 0x6 movs r3, 0x1 bl sub_800A6E8 - bl sub_800B320 + bl IsLinkConnectionEstablished lsls r0, 24 lsrs r0, 24 movs r1, 0x19 @@ -2807,7 +2807,7 @@ _0800AAB4: ldrb r0, [r0] cmp r3, r0 bne _0800AAE4 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 mov r1, r9 @@ -2887,7 +2887,7 @@ _0800AB5A: ldr r1, =gUnknown_0300306C movs r0, 0x1 strb r0, [r1] - bl sub_80097E8 + bl CloseLink ldr r0, =c2_800ACD4 bl SetMainCallback2 _0800AB6A: @@ -2918,25 +2918,25 @@ sub_800AB98: @ 800AB98 .pool thumb_func_end sub_800AB98 - thumb_func_start sub_800ABAC -sub_800ABAC: @ 800ABAC - ldr r0, =gUnknown_030030E0 + thumb_func_start GetLinkPlayerCount_2 +GetLinkPlayerCount_2: @ 800ABAC + ldr r0, =gLinkStatus ldr r0, [r0] movs r1, 0x1C ands r0, r1 lsrs r0, 2 bx lr .pool - thumb_func_end sub_800ABAC + thumb_func_end GetLinkPlayerCount_2 - thumb_func_start sub_800ABBC -sub_800ABBC: @ 800ABBC + thumb_func_start IsLinkMaster +IsLinkMaster: @ 800ABBC push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _0800ABDC - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldr r0, [r0] lsrs r0, 5 movs r1, 0x1 @@ -2950,7 +2950,7 @@ _0800ABDC: _0800ABE4: pop {r1} bx r1 - thumb_func_end sub_800ABBC + thumb_func_end IsLinkMaster thumb_func_start sub_800ABE8 sub_800ABE8: @ 800ABE8 @@ -3074,7 +3074,7 @@ _0800ACD0: ldr r0, =gUnknown_03002748 movs r4, 0x1 strb r4, [r0] - bl sub_80097E8 + bl CloseLink ldr r1, =gUnknown_03003140 movs r0, 0 str r0, [r1] @@ -3178,7 +3178,7 @@ _0800ADB6: ldr r0, =gUnknown_03002748 movs r4, 0x1 strb r4, [r0] - bl sub_80097E8 + bl CloseLink ldr r1, =gUnknown_03003140 movs r0, 0 str r0, [r1] @@ -3290,7 +3290,7 @@ sub_800AEB4: @ 800AEB4 ldrb r0, [r0] cmp r0, 0 beq _0800AEF4 - ldr r0, =gUnknown_030030E0 + ldr r0, =gLinkStatus ldr r2, [r0] movs r0, 0xFE lsls r0, 11 @@ -3315,7 +3315,7 @@ _0800AEEA: ldr r1, =gUnknown_0300306C movs r0, 0x1 strb r0, [r1] - bl sub_80097E8 + bl CloseLink _0800AEF4: pop {r0} bx r0 @@ -3426,7 +3426,7 @@ _0800AF8C: ldr r1, =gSoftResetDisabled movs r0, 0 strb r0, [r1] - ldr r0, =sub_8009404 + ldr r0, =Task_DestroySelf movs r1, 0 bl CreateTask bl StopMapMusic @@ -3740,16 +3740,16 @@ _0800B314: .pool thumb_func_end sub_800B2F8 - thumb_func_start sub_800B320 -sub_800B320: @ 800B320 - ldr r0, =gUnknown_030030E0 + thumb_func_start IsLinkConnectionEstablished +IsLinkConnectionEstablished: @ 800B320 + ldr r0, =gLinkStatus ldr r0, [r0] lsrs r0, 6 movs r1, 0x1 ands r0, r1 bx lr .pool - thumb_func_end sub_800B320 + thumb_func_end IsLinkConnectionEstablished thumb_func_start sub_800B330 sub_800B330: @ 800B330 @@ -3864,7 +3864,7 @@ HandleLinkConnection: @ 800B40C ldr r1, =gSendCmd ldr r2, =gRecvCmds bl sub_800B638 - ldr r4, =gUnknown_030030E0 + ldr r4, =gLinkStatus str r0, [r4] ldr r0, =gUnknown_030022EC bl sub_80099E0 @@ -15025,7 +15025,7 @@ _08010E20: ldrb r1, [r0] movs r1, 0x2 strb r1, [r0] - bl sub_80097E8 + bl CloseLink b _08010E8E .pool _08010E5C: @@ -16613,7 +16613,7 @@ sub_8011AFC: @ 8011AFC adds r0, r2, 0 strh r0, [r1] bl sub_800B488 - bl sub_8009734 + bl OpenLink ldr r0, =gMain ldrh r0, [r0, 0x24] bl SeedRng @@ -18142,7 +18142,7 @@ _08012848: movs r2, 0 bl sub_8010F84 bl sub_800B488 - bl sub_8009734 + bl OpenLink ldrb r1, [r4] movs r0, 0xF ands r0, r1 @@ -19650,7 +19650,7 @@ _08013590: movs r2, 0 bl sub_8010F84 bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011C5C movs r0, 0x70 bl AllocZeroed @@ -20398,7 +20398,7 @@ _08013CD0: movs r2, 0 bl sub_8010F84 bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011C5C movs r0, 0x1 bl sub_80111B0 @@ -21897,7 +21897,7 @@ _08014AB0: movs r1, 0 bl sub_8010FA0 bl sub_800B488 - bl sub_8009734 + bl OpenLink movs r0, 0x2 bl sub_8011C10 movs r0, 0x1 @@ -22435,7 +22435,7 @@ _08014FA4: movs r2, 0 bl sub_8010F84 bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011C5C movs r0, 0x70 bl AllocZeroed @@ -22823,7 +22823,7 @@ _08015358: movs r2, 0 bl sub_8010F84 bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011C5C movs r0, 0x70 bl AllocZeroed @@ -23373,7 +23373,7 @@ _08015878: ldrh r2, [r2, 0xC] bl sub_8010FCC bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011C84 ldr r0, [r6, 0x8] movs r1, 0x1 @@ -25223,7 +25223,7 @@ _080169BE: movs r2, 0 bl sub_8010F84 bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011C84 movs r0, 0x1 bl sub_80111B0 @@ -31098,7 +31098,7 @@ _080198FE: b _08019922 .pool _0801990C: - bl sub_80097E8 + bl CloseLink ldr r0, [r5, 0x10] bl Free adds r0, r4, 0 diff --git a/asm/main_menu.s b/asm/main_menu.s index 9d6cba40f..08e0c3103 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -1495,7 +1495,7 @@ _08030478: b _0803048A .pool _08030480: - ldr r0, =sub_8178974 + ldr r0, =CB2_InitMysteryEventMenu b _0803048A .pool _08030488: diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s deleted file mode 100644 index 34b8cadd6..000000000 --- a/asm/mystery_event_menu.s +++ /dev/null @@ -1,669 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8178944 -sub_8178944: @ 8178944 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8178944 - - thumb_func_start sub_8178958 -sub_8178958: @ 8178958 - push {lr} - movs r2, 0 - ldr r1, =gLinkPlayers - ldrh r0, [r1, 0x1A] - ldrh r1, [r1, 0x36] - cmp r0, r1 - bne _08178968 - movs r2, 0x1 -_08178968: - adds r0, r2, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8178958 - - thumb_func_start sub_8178974 -sub_8178974: @ 8178974 - push {r4,lr} - sub sp, 0x8 - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, =sub_8178944 - bl SetVBlankCallback - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085EFD64 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - ldr r0, =gUnknown_085EFD68 - bl InitWindows - lsls r0, 16 - cmp r0, 0 - beq _08178A22 - bl DeactivateAllTextPrinters - movs r4, 0 -_081789AC: - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - adds r4, 0x1 - cmp r4, 0x1 - ble _081789AC - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xD0 - bl sub_809882C - movs r0, 0xE0 - bl sub_81978B0 - movs r1, 0xA0 - lsls r1, 1 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - ldr r0, =sub_8009404 - movs r1, 0 - bl CreateTask - bl StopMapMusic - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - ldr r0, =sub_8178A78 - bl SetMainCallback2 -_08178A22: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178974 - - thumb_func_start sub_8178A40 -sub_8178A40: @ 8178A40 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - movs r5, 0x1 - cmp r4, 0 - bne _08178A54 - ldr r1, =gText_EventSafelyLoaded - bl StringCopy - movs r5, 0 -_08178A54: - cmp r4, 0x2 - bne _08178A5A - movs r5, 0 -_08178A5A: - cmp r4, 0x1 - bne _08178A66 - ldr r1, =gText_LoadErrorEndingSession - adds r0, r6, 0 - bl StringCopy -_08178A66: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8178A40 - - thumb_func_start sub_8178A78 -sub_8178A78: @ 8178A78 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _08178A8E - b _08178E58 -_08178A8E: - lsls r0, 2 - ldr r1, =_08178AA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08178AA0: - .4byte _08178AE4 - .4byte _08178B12 - .4byte _08178B48 - .4byte _08178B80 - .4byte _08178BCC - .4byte _08178BDC - .4byte _08178C54 - .4byte _08178D28 - .4byte _08178D38 - .4byte _08178D58 - .4byte _08178D60 - .4byte _08178D74 - .4byte _08178DBC - .4byte _08178DE0 - .4byte _08178E0C - .4byte _08178E24 - .4byte _08178E48 -_08178AE4: - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xD - bl SetWindowBorderStyle - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0 - bl ShowBg - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - b _08178E30 -_08178B12: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08178B20 - b _08178E58 -_08178B20: - ldr r1, =gText_LinkStandby2 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _08178E3C - .pool -_08178B48: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - beq _08178B56 - b _08178E58 -_08178B56: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, =gLinkType - ldr r2, =0x00005501 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8009734 - b _08178E58 - .pool -_08178B80: - ldr r0, =gUnknown_030030E0 - ldr r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08178B8E - b _08178D00 -_08178B8E: - movs r0, 0x1C - ands r1, r0 - cmp r1, 0x4 - bhi _08178B98 - b _08178D00 -_08178B98: - movs r0, 0x15 - bl PlaySE - ldr r1, =gText_PressAToLoadEvent - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08178D00 - .pool -_08178BCC: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - beq _08178BDA - b _08178E58 -_08178BDA: - b _08178E34 -_08178BDC: - bl sub_800ABAC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _08178CD0 - ldr r4, =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08178C38 - movs r0, 0x5 - bl PlaySE - bl sub_800A620 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xD - bl SetWindowBorderStyle - ldr r1, =gText_LoadingEvent - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - movs r2, 0x87 - lsls r2, 3 - adds r1, r4, r2 - b _08178E3C - .pool -_08178C38: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08178C42 - b _08178E58 -_08178C42: - movs r0, 0x5 - bl PlaySE - bl sub_80097E8 - movs r0, 0x87 - lsls r0, 3 - adds r1, r4, r0 - b _08178D1E -_08178C54: - bl sub_800B320 - lsls r0, 24 - cmp r0, 0 - beq _08178D00 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08178C68 - b _08178E58 -_08178C68: - movs r0, 0x2 - movs r1, 0x2 - bl sub_800A0C8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _08178CAC - bl sub_800AC34 - ldr r4, =gStringVar4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8178A40 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - ldr r0, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r2 - b _08178CF2 - .pool -_08178CAC: - bl sub_8178958 - lsls r0, 24 - cmp r0, 0 - beq _08178CCC - ldr r1, =gText_DontRemoveCableTurnOff - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - b _08178E34 - .pool -_08178CCC: - bl sub_80097E8 -_08178CD0: - ldr r4, =gStringVar4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8178A40 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 -_08178CF2: - movs r1, 0xD - strb r1, [r0] - b _08178E58 - .pool -_08178D00: - ldr r4, =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08178D0E - b _08178E58 -_08178D0E: - movs r0, 0x5 - bl PlaySE - bl sub_80097E8 - movs r2, 0x87 - lsls r2, 3 - adds r1, r4, r2 -_08178D1E: - movs r0, 0xF - strb r0, [r1] - b _08178E58 - .pool -_08178D28: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - beq _08178D36 - b _08178E58 -_08178D36: - b _08178E34 -_08178D38: - bl GetBlockReceivedStatus - lsls r0, 24 - cmp r0, 0 - bne _08178D44 - b _08178E58 -_08178D44: - bl ResetBlockReceivedFlags - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _08178E3C - .pool -_08178D58: - movs r0, 0x87 - lsls r0, 3 - adds r1, r4, r0 - b _08178E3C -_08178D60: - bl sub_800AC34 - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _08178E3C - .pool -_08178D74: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r6, [r0] - cmp r6, 0 - bne _08178E58 - ldr r5, =0x0201c000 - adds r0, r5, 0 - bl RunMysteryEventScript - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - str r6, [sp, 0x4] - ldr r2, =0x050001f5 - add r0, sp, 0x4 - adds r1, r5, 0 - bl CpuSet - ldr r0, =gStringVar4 - adds r1, r4, 0 - bl sub_8178A40 - lsls r0, 24 - cmp r0, 0 - bne _08178E34 - movs r0, 0 - bl TrySavingData - b _08178E34 - .pool -_08178DBC: - ldr r1, =gStringVar4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - ldr r1, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r1, r2 - b _08178E3C - .pool -_08178DE0: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - bne _08178E58 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, =gUnknown_0203BCF8 - strb r2, [r0] - b _08178E58 - .pool -_08178E0C: - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08178E58 - movs r0, 0x5 - bl PlaySE - movs r2, 0x87 - lsls r2, 3 - adds r1, r4, r2 - b _08178E3C -_08178E24: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 -_08178E30: - bl BeginNormalPaletteFade -_08178E34: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 -_08178E3C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08178E58 - .pool -_08178E48: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08178E58 - bl DoSoftReset -_08178E58: - ldr r0, =gUnknown_030030E0 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08178E98 - bl sub_800ABBC - lsls r0, 24 - cmp r0, 0 - bne _08178E98 - bl sub_80097E8 - ldr r4, =gStringVar4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8178A40 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl sub_8178EC4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0xD - strb r1, [r0] -_08178E98: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178A78 - - thumb_func_start sub_8178EC4 -sub_8178EC4: @ 8178EC4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x1C - adds r5, r0, 0 - mov r10, r1 - adds r6, r2, 0 - ldr r4, [sp, 0x38] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - mov r9, r0 - movs r1, 0x1 - mov r8, r1 - add r0, sp, 0x14 - mov r1, r8 - strb r1, [r0] - adds r1, r0, 0 - movs r0, 0x2 - strb r0, [r1, 0x1] - movs r0, 0x3 - strb r0, [r1, 0x2] - adds r0, r1, 0 - ldrb r0, [r0] - lsls r1, r0, 4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - str r3, [sp, 0x18] - bl FillWindowPixelBuffer - mov r0, r9 - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - add r0, sp, 0x14 - str r0, [sp, 0x8] - lsls r4, 24 - asrs r4, 24 - str r4, [sp, 0xC] - mov r1, r10 - str r1, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r6, 0 - ldr r3, [sp, 0x18] - bl AddTextPrinterParameterized2 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8178EC4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/overworld.s b/asm/overworld.s index 2858fb6d3..7dccbb0d1 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3584,7 +3584,7 @@ sub_808631C: @ 808631C lsrs r0, 24 cmp r0, 0x1 bne _0808632E - bl sub_80097E8 + bl CloseLink _0808632E: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] diff --git a/asm/pokenav.s b/asm/pokenav.s index 896d9aae0..f74028687 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -28072,7 +28072,7 @@ sub_81D4E30: @ 81D4E30 ldr r2, =0x00005503 adds r0, r2, 0 strh r0, [r1] - bl sub_8009734 + bl OpenLink movs r0, 0x1 bl sub_800B330 pop {r0} @@ -28128,11 +28128,11 @@ _081D4EBA: thumb_func_start sub_81D4EC0 sub_81D4EC0: @ 81D4EC0 push {lr} - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _081D4EDC - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -28186,11 +28186,11 @@ _081D4F20: .4byte _081D4FEC .4byte _081D4FF8 _081D4F38: - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _081D4F88 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -28212,7 +28212,7 @@ _081D4F54: strb r0, [r4] b _081D500C _081D4F6C: - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -28248,7 +28248,7 @@ _081D4FA0: movs r0, 0x5 b _081D500E _081D4FB6: - bl sub_800B320 + bl IsLinkConnectionEstablished lsls r0, 24 cmp r0, 0 beq _081D500C @@ -28447,7 +28447,7 @@ _081D515C: beq _081D5166 b _081D52FC _081D5166: - bl sub_80097E8 + bl CloseLink b _081D525C _081D516C: adds r0, r4, 0 @@ -28500,20 +28500,20 @@ _081D51D0: beq _081D51F4 movs r0, 0x5 bl PlaySE - bl sub_80097E8 + bl CloseLink adds r0, r4, 0 bl sub_81D505C b _081D535A .pool _081D51F4: - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _081D5210 adds r0, r4, 0 bl sub_81D505C - bl sub_80097E8 + bl CloseLink movs r0, 0x7 strb r0, [r4, 0x8] b _081D548A @@ -28523,7 +28523,7 @@ _081D5210: beq _081D522E movs r0, 0x5 bl PlaySE - bl sub_80097E8 + bl CloseLink adds r0, r4, 0 bl sub_81D505C movs r0, 0x8 @@ -28537,7 +28537,7 @@ _081D522E: bne _081D523C b _081D548A _081D523C: - bl sub_80097E8 + bl CloseLink bl sub_81D4E30 adds r0, r4, 0 bl sub_81D505C @@ -28654,13 +28654,13 @@ _081D5340: _081D5350: movs r0, 0x5 bl PlaySE - bl sub_80097E8 + bl CloseLink _081D535A: movs r0, 0x17 strb r0, [r4, 0x8] b _081D548A _081D5360: - bl sub_80097E8 + bl CloseLink movs r0, 0x15 strb r0, [r4, 0x8] b _081D548A @@ -28670,7 +28670,7 @@ _081D536A: cmp r0, 0 beq _081D537A _081D5374: - bl sub_80097E8 + bl CloseLink b _081D53C0 _081D537A: bl GetBlockReceivedStatus diff --git a/asm/record_mixing.s b/asm/record_mixing.s index b7bcca4a8..e54c3a1fb 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -765,10 +765,10 @@ _080E73B0: movs r0, 0x65 b _080E7564 _080E73B8: - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r4, r0, 24 - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -796,7 +796,7 @@ _080E73EA: _080E73F8: bl sub_800AA48 adds r4, r0, 0 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -808,7 +808,7 @@ _080E740C: strh r4, [r5, 0x20] lsls r4, 16 asrs r4, 16 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -824,7 +824,7 @@ _080E742A: _080E7432: bl sub_800AA48 adds r4, r0, 0 - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -868,7 +868,7 @@ _080E746E: b _080E7564 .pool _080E7490: - bl sub_800ABAC + bl GetLinkPlayerCount_2 lsls r0, 24 lsrs r0, 24 movs r1, 0 diff --git a/asm/trade.s b/asm/trade.s index dd0477560..0126baa6a 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -416,12 +416,12 @@ _080774B2: cmp r0, 0 beq _08077528 bl sub_800B488 - bl sub_8009734 + bl OpenLink bl sub_8011BA4 b _08077B46 .pool _08077528: - bl sub_8009734 + bl OpenLink ldr r0, =gMain movs r7, 0x87 lsls r7, 3 @@ -466,7 +466,7 @@ _0807757A: b _08077B22 .pool _0807758C: - bl sub_800ABAC + bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800AA48 lsls r4, 24 @@ -475,7 +475,7 @@ _0807758C: bcs _080775A0 b _08077B46 _080775A0: - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _080775D8 @@ -7026,7 +7026,7 @@ _0807AC92: lsls r0, 1 cmp r1, r0 bls _0807ACC4 - bl sub_80097E8 + bl CloseLink ldr r0, =c2_800ACD4 bl SetMainCallback2 ldr r1, [r4] @@ -7264,7 +7264,7 @@ _0807AEAC: ldr r2, =0x00001144 adds r0, r2, 0 strh r0, [r1] - bl sub_80097E8 + bl CloseLink _0807AEC0: ldr r4, =gUnknown_020322A0 movs r5, 0x80 @@ -7332,7 +7332,7 @@ _0807AF58: adds r0, 0xFA movs r1, 0x1 strb r1, [r0] - bl sub_8009734 + bl OpenLink ldr r1, =gMain movs r2, 0x87 lsls r2, 3 @@ -7369,13 +7369,13 @@ _0807AFAC: b _0807B0E4 .pool _0807AFBC: - bl sub_800ABBC + bl IsLinkMaster lsls r0, 24 cmp r0, 0 bne _0807AFC8 b _0807B0DC _0807AFC8: - bl sub_800ABAC + bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800AA48 lsls r4, 24 diff --git a/data/mystery_event_menu.s b/data/mystery_event_menu.s deleted file mode 100644 index bb8330497..000000000 --- a/data/mystery_event_menu.s +++ /dev/null @@ -1,12 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_085EFD64:: @ 85EFD64 - .4byte 0x1F8 - -gUnknown_085EFD68:: @ 85EFD68 - window_template 0, 4, 15, 22, 4, 14, 20 - window_template 0, 7, 6, 16, 4, 14, 0x6C - null_window_template diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index bcd92d1c2..b8aef7c3d 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -231,7 +231,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276C9D:: @ 8276C9D end OldaleTown_PokemonCenter_2F_EventScript_276CB5:: @ 8276CB5 - special sub_80097E8 + special CloseLink setvar VAR_0x4087, 0 compare VAR_0x8007, 0 goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5 @@ -254,7 +254,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276CE7:: @ 8276CE7 end OldaleTown_PokemonCenter_2F_EventScript_276CFF:: @ 8276CFF - special sub_80097E8 + special CloseLink setvar VAR_0x4087, 0 compare VAR_0x8007, 0 goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5 @@ -276,7 +276,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276D2C:: @ 8276D2C end OldaleTown_PokemonCenter_2F_EventScript_276D44:: @ 8276D44 - special sub_80097E8 + special CloseLink setvar VAR_0x4087, 0 applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F waitmovement 0 @@ -501,25 +501,25 @@ OldaleTown_PokemonCenter_2F_EventScript_277046:: @ 8277046 end OldaleTown_PokemonCenter_2F_EventScript_277072:: @ 8277072 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_27833D, 4 goto OldaleTown_PokemonCenter_2F_EventScript_2770A5 end OldaleTown_PokemonCenter_2F_EventScript_277083:: @ 8277083 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_278307, 4 goto OldaleTown_PokemonCenter_2F_EventScript_2770A5 end OldaleTown_PokemonCenter_2F_EventScript_277094:: @ 8277094 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_2782D1, 4 goto OldaleTown_PokemonCenter_2F_EventScript_2770A5 end OldaleTown_PokemonCenter_2F_EventScript_2770A5:: @ 82770A5 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_278372, 4 release end @@ -658,45 +658,45 @@ OldaleTown_PokemonCenter_2F_EventScript_27724C:: @ 827724C end OldaleTown_PokemonCenter_2F_EventScript_2772AB:: @ 82772AB - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_278565, 4 release end OldaleTown_PokemonCenter_2F_EventScript_2772B8:: @ 82772B8 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_2785C9, 4 release end BattleFrontier_BattleTowerLobby_EventScript_2772C5:: @ 82772C5 OldaleTown_PokemonCenter_2F_EventScript_2772C5:: @ 82772C5 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_27821C, 4 release end BattleFrontier_BattleTowerLobby_EventScript_2772D2:: @ 82772D2 OldaleTown_PokemonCenter_2F_EventScript_2772D2:: @ 82772D2 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_2781C7, 4 release end OldaleTown_PokemonCenter_2F_EventScript_2772DF:: @ 82772DF - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_278255, 4 release end OldaleTown_PokemonCenter_2F_EventScript_2772EC:: @ 82772EC - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_278291, 4 release end MossdeepCity_GameCorner_1F_EventScript_2772F9:: @ 82772F9 - special sub_80097E8 + special CloseLink msgbox MossdeepCity_GameCorner_1F_Text_278D51, 4 release end @@ -708,19 +708,19 @@ OldaleTown_PokemonCenter_2F_EventScript_277306:: @ 8277306 end OldaleTown_PokemonCenter_2F_EventScript_27730E:: @ 827730E - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_2782A8, 4 release end OldaleTown_PokemonCenter_2F_EventScript_27731B:: @ 827731B - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_2785E9, 4 release end OldaleTown_PokemonCenter_2F_EventScript_277328:: @ 8277328 - special sub_80097E8 + special CloseLink msgbox OldaleTown_PokemonCenter_2F_Text_278651, 4 release end diff --git a/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc b/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc index 7c0762417..def3dd122 100644 --- a/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc +++ b/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc @@ -725,7 +725,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0E3:: @ 823F0E3 special copy_player_party_from_sav1 BattleFrontier_BattleTowerLobby_EventScript_23F0E6:: @ 823F0E6 - special sub_80097E8 + special CloseLink msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, 4 BattleFrontier_BattleTowerLobby_EventScript_23F0F1:: @ 823F0F1 @@ -951,7 +951,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5 end BattleFrontier_BattleTowerLobby_EventScript_23F327:: @ 823F327 - special sub_80097E8 + special CloseLink compare VAR_0x8005, 3 goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F33F msgbox BattleFrontier_BattleTowerLobby_Text_278255, 4 @@ -966,13 +966,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F33F:: @ 823F33F BattleFrontier_BattleTowerLobby_EventScript_23F351:: @ 823F351 msgbox BattleFrontier_BattleTowerLobby_Text_241240, 4 - special sub_80097E8 + special CloseLink msgbox BattleFrontier_BattleTowerLobby_Text_2782A8, 4 release end BattleFrontier_BattleTowerLobby_EventScript_23F366:: @ 823F366 - special sub_80097E8 + special CloseLink compare VAR_0x8005, 0 call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F394 compare VAR_0x8005, 1 diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.inc b/data/scripts/maps/LilycoveCity_ContestLobby.inc index 3b7d6a2f2..beb96e171 100644 --- a/data/scripts/maps/LilycoveCity_ContestLobby.inc +++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc @@ -709,7 +709,7 @@ LilycoveCity_ContestLobby_EventScript_21A971:: @ 821A971 end LilycoveCity_ContestLobby_EventScript_21A97F:: @ 821A97F - special sub_80097E8 + special CloseLink msgbox LilycoveCity_ContestLobby_Text_27BD4F, 4 release end @@ -811,13 +811,13 @@ LilycoveCity_ContestLobby_EventScript_21AAE1:: @ 821AAE1 end LilycoveCity_ContestLobby_EventScript_21AAEF:: @ 821AAEF - special sub_80097E8 + special CloseLink msgbox LilycoveCity_ContestLobby_Text_27821C, 4 release end LilycoveCity_ContestLobby_EventScript_21AAFC:: @ 821AAFC - special sub_80097E8 + special CloseLink msgbox LilycoveCity_ContestLobby_Text_27C879, 4 release end diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc index 0f705c841..39cca8244 100644 --- a/data/scripts/pokeblocks.inc +++ b/data/scripts/pokeblocks.inc @@ -655,25 +655,25 @@ LilycoveCity_ContestLobby_EventScript_29416C:: @ 829416C end LilycoveCity_ContestLobby_EventScript_294176:: @ 8294176 - special sub_80097E8 + special CloseLink msgbox LilycoveCity_ContestLobby_Text_2781C7, 4 releaseall end LilycoveCity_ContestLobby_EventScript_294183:: @ 8294183 - special sub_80097E8 + special CloseLink msgbox LilycoveCity_ContestLobby_Text_278255, 4 releaseall end LilycoveCity_ContestLobby_EventScript_294190:: @ 8294190 - special sub_80097E8 + special CloseLink msgbox gUnknown_08272D9C, 4 releaseall end LilycoveCity_ContestLobby_EventScript_29419D:: @ 829419D - special sub_80097E8 + special CloseLink msgbox LilycoveCity_ContestLobby_Text_27821C, 4 releaseall end diff --git a/data/specials.inc b/data/specials.inc index 332c58bca..ac4a47b69 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -40,7 +40,7 @@ gSpecials:: @ 81DBA64 def_special sub_80B2E4C def_special sub_80B2E74 def_special sub_80B2EA8 - def_special sub_80097E8 + def_special CloseLink def_special sub_80B3968 def_special sub_80B3924 def_special nullsub_37 diff --git a/include/link.h b/include/link.h index fe5429497..1c9795d29 100644 --- a/include/link.h +++ b/include/link.h @@ -143,8 +143,9 @@ extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gLinkVSyncDisabled; +extern u32 gLinkStatus; -void Task_DestroySelf(u8); +void Task_DestroySelf(u8 taskId); void OpenLink(void); void CloseLink(void); u16 LinkMain2(u16 *); @@ -188,11 +189,10 @@ bool8 sub_8010500(void); void sub_800DFB4(u8, u8); void sub_800ADF8(void); void sub_800B488(void); -void sub_8009734(void); +void OpenLink(void); void sub_800A620(void); void sub_8011BD0(void); -u8 sub_800ABAC(void); -u8 sub_800ABBC(void); void sub_800AC34(void); +u8 sub_800A0C8(s32, s32); #endif // GUARD_LINK_H diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h new file mode 100644 index 000000000..8801789d9 --- /dev/null +++ b/include/mystery_event_menu.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MYSTERY_EVENT_MENU_H +#define GUARD_MYSTERY_EVENT_MENU_H + +void CB2_InitMysteryEventMenu(void); + +#endif // GUARD_MYSTERY_EVENT_MENU_H diff --git a/include/strings.h b/include/strings.h index 806a2e405..305007c5d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -202,4 +202,12 @@ extern const u8 gText_ButtonMode[]; extern const u8 gText_MaleSymbol[]; extern const u8 gText_FemaleSymbol[]; +// mystery event menu text +extern const u8 gText_EventSafelyLoaded[]; +extern const u8 gText_LoadErrorEndingSession[]; +extern const u8 gText_PressAToLoadEvent[]; +extern const u8 gText_LoadingEvent[]; +extern const u8 gText_DontRemoveCableTurnOff[]; +extern const u8 gText_LinkStandby2[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 314ad0e62..5d4cf0554 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -230,7 +230,7 @@ SECTIONS { src/lottery_corner.o(.text); src/diploma.o(.text); asm/berry_tag_screen.o(.text); - asm/mystery_event_menu.o(.text); + src/mystery_event_menu.o(.text); src/save_failed_screen.o(.text); src/braille_puzzles.o(.text); src/pokeblock_feed.o(.text); @@ -505,7 +505,7 @@ SECTIONS { src/diploma.o(.rodata); data/strings.o(.rodata); data/berry_tag_screen.o(.rodata); - data/mystery_event_menu.o(.rodata); + src/mystery_event_menu.o(.rodata); src/save_failed_screen.o(.rodata); data/braille_puzzles.o(.rodata); src/pokeblock_feed.o(.rodata); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index c6d47e71e..c28b6ef3b 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -64,7 +64,7 @@ void HandleLinkBattleSetup(void) if (gLinkVSyncDisabled) sub_800B488(); if (!gReceivedRemoteLinkPlayers) - sub_8009734(); + OpenLink(); CreateTask(task00_08081A90, 0); CreateTasksForSendRecvLinkBuffers(); } @@ -793,9 +793,9 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) else var = (gBattleTypeFlags & BATTLE_TYPE_MULTI) ? 4 : 2; - if (sub_800ABAC() >= var) + if (GetLinkPlayerCount_2() >= var) { - if (sub_800ABBC()) + if (IsLinkMaster()) { sub_800A620(); gTasks[taskId].data[11]++; diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c new file mode 100644 index 000000000..0478f50cd --- /dev/null +++ b/src/mystery_event_menu.c @@ -0,0 +1,303 @@ +#include "global.h" +#include "mystery_event_menu.h" +#include "link.h" +#include "main.h" +#include "menu.h" +#include "mystery_event_script.h" +#include "palette.h" +#include "save.h" +#include "constants/songs.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "bg.h" +#include "window.h" +#include "gpu_regs.h" +#include "text_window.h" +#include "new_menu_helpers.h" +#include "decompress.h" + +// this file's functions +static void CB2_MysteryEventMenu(void); +static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed); + +// EWRAM vars +static EWRAM_DATA u8 sUnknown_0203BCF8 = 0; // set but unused + +// const rom data +static const struct BgTemplate sBgTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + } +}; + +static const struct WindowTemplate sWindowTemplates[] = +{ + {0, 4, 15, 22, 4, 14, 20}, + {0, 7, 6, 16, 4, 14, 0x6C}, + DUMMY_WIN_TEMPLATE +}; + +// code +static void VBlankCB(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static bool8 CheckLanguageMatch(void) +{ + return (gLinkPlayers[0].language == gLinkPlayers[1].language); +} + +void CB2_InitMysteryEventMenu(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + SetVBlankCallback(VBlankCB); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + if (InitWindows(sWindowTemplates)) + { + s32 i; + + DeactivateAllTextPrinters(); + for (i = 0; i < 2; i++) + FillWindowPixelBuffer(i, 0); + + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); + sub_809882C(0, 1u, 0xD0u); + sub_81978B0(0xE0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + CreateTask(Task_DestroySelf, 0); + StopMapMusic(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + FillPalette(0, 0, 2); + SetMainCallback2(CB2_MysteryEventMenu); + } +} + +static bool8 GetEventLoadMessage(u8 *dest, u32 status) +{ + bool8 retVal = TRUE; + + if (status == 0) + { + StringCopy(dest, gText_EventSafelyLoaded); + retVal = FALSE; + } + + if (status == 2) + retVal = FALSE; + + if (status == 1) + StringCopy(dest, gText_LoadErrorEndingSession); + + return retVal; +} + +static void CB2_MysteryEventMenu(void) +{ + switch (gMain.state) + { + case 0: + SetWindowBorderStyle(0, 1, 1, 0xD); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); + ShowBg(0); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + gMain.state++; + break; + case 1: + if (!gPaletteFade.active) + { + PrintMysteryMenuText(0, gText_LinkStandby2, 1, 2, 1); + gMain.state++; + } + break; + case 2: + if (!IsTextPrinterActive(0)) + { + gMain.state++; + gLinkType = 21761; + OpenLink(); + } + break; + case 3: + if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4) + { + PlaySE(SE_PIN); + PrintMysteryMenuText(0, gText_PressAToLoadEvent, 1, 2, 1); + gMain.state++; + } + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + gMain.state = 15; + } + break; + case 4: + if (!IsTextPrinterActive(0)) + gMain.state++; + break; + case 5: + if (GetLinkPlayerCount_2() == 2) + { + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_800A620(); + SetWindowBorderStyle(1, 1, 1, 0xD); + PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0); + PutWindowTilemap(1); + CopyWindowToVram(1, 3); + gMain.state++; + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + gMain.state = 15; + } + } + else + { + GetEventLoadMessage(gStringVar4, 1); + PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + gMain.state = 13; + } + break; + case 6: + if (IsLinkConnectionEstablished()) + { + if (gReceivedRemoteLinkPlayers != 0) + { + if (sub_800A0C8(2, 2) == 3) + { + sub_800AC34(); + GetEventLoadMessage(gStringVar4, 1); + PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + gMain.state = 13; + } + else if (CheckLanguageMatch()) + { + PrintMysteryMenuText(0, gText_DontRemoveCableTurnOff, 1, 2, 1); + gMain.state++; + } + else + { + CloseLink(); + GetEventLoadMessage(gStringVar4, 1); + PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + gMain.state = 13; + } + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + gMain.state = 15; + } + break; + case 7: + if (!IsTextPrinterActive(0)) + gMain.state++; + break; + case 8: + if (GetBlockReceivedStatus()) + { + ResetBlockReceivedFlags(); + gMain.state++; + } + break; + case 9: + gMain.state++; + break; + case 10: + sub_800AC34(); + gMain.state++; + break; + case 11: + if (gReceivedRemoteLinkPlayers == 0) + { + u16 unkVal = RunMysteryEventScript(gDecompressionBuffer); + CpuFill32(0, gDecompressionBuffer, 0x7D4); + if (!GetEventLoadMessage(gStringVar4, unkVal)) + TrySavingData(NORMAL_SAVE); + gMain.state++; + } + break; + case 12: + PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + gMain.state++; + break; + case 13: + if (!IsTextPrinterActive(0)) + { + gMain.state++; + sUnknown_0203BCF8 = 0; + } + break; + case 14: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gMain.state++; + } + break; + case 15: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gMain.state++; + break; + case 16: + if (!gPaletteFade.active) + DoSoftReset(); + break; + } + + if (gLinkStatus & 0x40 && !IsLinkMaster()) + { + CloseLink(); + GetEventLoadMessage(gStringVar4, 1); + PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + gMain.state = 13; + } + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed) +{ + struct TextColor textColor; + u8 letterSpacing = 0; + u8 lineSpacing = 1; + textColor.fgColor = 1; + textColor.bgColor = 2; + textColor.shadowColor = 3; + + FillWindowPixelBuffer(windowId, (textColor.fgColor) | (textColor.fgColor << 4)); + AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, &textColor, speed, text); +} diff --git a/sym_common.txt b/sym_common.txt index 590597459..4918ca425 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -84,7 +84,7 @@ gUnknown_03003092: @ 3003092 gUnknown_03003094: @ 3003094 .space 0x4C -gUnknown_030030E0: @ 30030E0 +gLinkStatus: @ 30030E0 .space 0x4 gUnknown_030030E4: @ 30030E4 diff --git a/sym_ewram.txt b/sym_ewram.txt index c04f524d8..ac8b8762f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1299,9 +1299,7 @@ gUnknown_0203BCE8: @ 203BCE8 gUnknown_0203BCF4: @ 203BCF4 .space 0x4 -gUnknown_0203BCF8: @ 203BCF8 - .space 0x4 - + .include "src/mystery_event_menu.o" .include "src/save_failed_screen.o" gBraillePuzzleCallbackFlag: @ 203BD14 -- cgit v1.2.3 From 6453b884338f070c6626e84ca591db7f71dcb3ad Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Tue, 30 Jan 2018 18:19:41 -0500 Subject: finish decompiling field_map_obj_helpers.c --- asm/map_obj_8097404.s | 408 -------------------------------------------- include/map_obj_8097404.h | 2 +- ld_script.txt | 1 - src/field_map_obj_helpers.c | 319 ++++++++++++++++++++++++++++++++++ 4 files changed, 320 insertions(+), 410 deletions(-) delete mode 100644 asm/map_obj_8097404.s diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s deleted file mode 100644 index a58096701..000000000 --- a/asm/map_obj_8097404.s +++ /dev/null @@ -1,408 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8097E50 -sub_8097E50: @ 8097E50 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - mov r8, r1 - movs r0, 0 - mov r12, r0 - ldr r0, =gUnknown_020375B8 - ldr r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - bne _08097E80 - movs r0, 0x14 - bl AllocZeroed - str r0, [r6] - ldrb r1, [r4, 0x8] - strb r1, [r0] - ldr r1, [r6] - movs r0, 0x1 - strb r0, [r1, 0x10] - b _08097ECC - .pool -_08097E80: - movs r2, 0x10 - movs r5, 0 - movs r1, 0 - adds r3, r6, 0 - b _08097E90 -_08097E8A: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_08097E90: - cmp r1, 0xF - bhi _08097EB2 - cmp r2, 0x10 - bne _08097EA4 - ldr r0, [r3] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08097EA4 - adds r2, r1, 0 -_08097EA4: - ldr r0, [r3] - adds r0, r1 - ldrb r0, [r0] - ldrb r7, [r4, 0x8] - cmp r0, r7 - bne _08097E8A - movs r5, 0x1 -_08097EB2: - cmp r5, 0 - bne _08097ECE - cmp r2, 0x10 - beq _08097ECE - ldr r0, [r6] - adds r0, r2 - ldrb r1, [r4, 0x8] - strb r1, [r0] - ldr r1, [r6] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - movs r0, 0x1 -_08097ECC: - mov r12, r0 -_08097ECE: - mov r1, r12 - cmp r1, 0x1 - bne _08097EE0 - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x1] -_08097EE0: - movs r0, 0x1 - mov r7, r8 - strh r0, [r7, 0x32] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8097E50 - - thumb_func_start sub_8097EF0 -sub_8097EF0: @ 8097EF0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - mov r8, r1 - movs r0, 0x1 - strh r0, [r1, 0x32] - ldr r5, =gUnknown_020375B8 - ldr r0, [r5] - cmp r0, 0 - beq _08097F68 - movs r7, 0 - adds r0, r6, 0 - bl sub_8097F78 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x10 - beq _08097F28 - ldr r0, [r5] - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, [r5] - ldrb r0, [r1, 0x10] - subs r0, 0x1 - strb r0, [r1, 0x10] - movs r7, 0x1 -_08097F28: - ldr r0, [r5] - ldrb r4, [r0, 0x10] - cmp r4, 0 - bne _08097F36 - bl Free - str r4, [r5] -_08097F36: - cmp r7, 0x1 - bne _08097F68 - ldrb r0, [r6, 0x5] - bl GetFieldObjectGraphicsInfo - ldrb r1, [r0, 0xC] - lsls r1, 25 - lsrs r1, 31 - lsls r1, 4 - ldrb r2, [r6, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - movs r1, 0x3 - negs r1, r1 - ands r0, r1 - strb r0, [r6, 0x1] - mov r2, r8 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08097F68: - movs r0, 0x1 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8097EF0 - - thumb_func_start sub_8097F78 -@ signed int sub_8097F78(npc_state *a1) -sub_8097F78: @ 8097F78 - push {lr} - movs r2, 0 - ldr r1, =gUnknown_020375B8 - ldr r1, [r1] - ldrb r3, [r0, 0x8] -_08097F82: - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r3 - bne _08097F94 - adds r0, r2, 0 - b _08097FA0 - .pool -_08097F94: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _08097F82 - movs r0, 0x10 -_08097FA0: - pop {r1} - bx r1 - thumb_func_end sub_8097F78 - - thumb_func_start sub_8097FA4 -sub_8097FA4: @ 8097FA4 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, =sub_8097FE4 - movs r1, 0xFF - bl CreateTask - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x8 - adds r1, r6, 0 - bl StoreWordInTwoHalfwords - strb r5, [r6, 0x1B] - ldr r0, =0x0000ffff - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097FA4 - - thumb_func_start sub_8097FE4 -sub_8097FE4: @ 8097FE4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r4, r1, r0 - adds r0, r4, 0 - adds r0, 0x8 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r2, r0, r1 - ldrh r1, [r4, 0xC] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08098020 - ldrh r0, [r4, 0xE] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] -_08098020: - ldrh r1, [r4, 0xC] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _08098030 - ldrh r0, [r4, 0xE] - negs r0, r0 - strh r0, [r4, 0xE] -_08098030: - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8097FE4 - - thumb_func_start sub_8098044 -sub_8098044: @ 8098044 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - adds r0, 0x8 - mov r1, sp - bl LoadWordFromTwoHalfwords - adds r0, r4, 0 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098044 - - thumb_func_start sub_8098074 -sub_8098074: @ 8098074 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0 - ldr r7, =gMapObjects -_08098082: - cmp r4, r6 - beq _080980A8 - cmp r4, r5 - beq _080980A8 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _080980A8 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - cmp r4, r0 - beq _080980A8 - adds r0, r1, 0 - bl FreezeMapObject -_080980A8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08098082 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8098074 - - thumb_func_start sub_80980C0 -sub_80980C0: @ 80980C0 - movs r0, 0 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - movs r0, 0 - bx lr - thumb_func_end sub_80980C0 - - thumb_func_start sub_80980D0 -sub_80980D0: @ 80980D0 - push {lr} - adds r2, r1, 0 - ldrh r0, [r2, 0x26] - subs r0, 0x8 - strh r0, [r2, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xA0 - negs r1, r1 - cmp r0, r1 - bne _080980EC - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] -_080980EC: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80980D0 - - thumb_func_start sub_80980F4 -sub_80980F4: @ 80980F4 - ldr r0, =0x0000ff60 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - movs r0, 0 - bx lr - .pool - thumb_func_end sub_80980F4 - - thumb_func_start sub_8098108 -sub_8098108: @ 8098108 - push {lr} - ldrh r0, [r1, 0x26] - adds r0, 0x8 - strh r0, [r1, 0x26] - lsls r0, 16 - cmp r0, 0 - bne _0809811C - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] -_0809811C: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8098108 - - thumb_func_start sub_8098124 -sub_8098124: @ 8098124 - movs r0, 0x1 - bx lr - thumb_func_end sub_8098124 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h index 33694fe98..f0880a641 100644 --- a/include/map_obj_8097404.h +++ b/include/map_obj_8097404.h @@ -8,7 +8,7 @@ // Exported type declarations // Exported RAM declarations -extern void *gUnknown_020375B8; +extern u8 *gUnknown_020375B8; // Exported ROM declarations void sub_8097AC8(struct Sprite *); diff --git a/ld_script.txt b/ld_script.txt index eb682c035..0659e638a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -98,7 +98,6 @@ SECTIONS { src/field_map_obj.o(.text); asm/field_ground_effect.o(.text); src/field_map_obj_helpers.o(.text); - asm/map_obj_8097404.o(.text); asm/field_message_box.o(.text); asm/map_obj_lock.o(.text); src/text_window.o(.text); diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index b0f7442f4..a9c6dcc5c 100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -2,8 +2,13 @@ #include "field_ground_effect.h" #include "field_map_obj.h" #include "field_effect.h" +#include "map_obj_8097404.h" +#include "malloc.h" +#include "task.h" +#include "util.h" extern void sub_8097D68(struct Sprite *sprite); +extern void sub_8097FE4(u8); typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); @@ -523,3 +528,317 @@ void DoRippleFieldEffect(struct MapObject *mapObject, struct Sprite *sprite) gFieldEffectArguments[3] = 3; FieldEffectStart(FLDEFF_RIPPLE); } + +#ifdef NONMATCHING +bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite) +{ + bool32 ableToStore = FALSE; + if (gUnknown_020375B8 == NULL) + { + gUnknown_020375B8 = AllocZeroed(0x14); + gUnknown_020375B8[0] = mapObject->localId; + gUnknown_020375B8[16] = 1; + ableToStore = TRUE; + } + else + { + u8 i; + u8 firstFreeSlot; + bool32 found; + for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++) + { + if (firstFreeSlot == 16 && gUnknown_020375B8[i] == 0) + firstFreeSlot = i; + + if (gUnknown_020375B8[i] == mapObject->localId) + { + found = TRUE; + break; + } + } + + if (!found && firstFreeSlot != 16) + { + gUnknown_020375B8[firstFreeSlot] = mapObject->localId; + gUnknown_020375B8[16]++; + ableToStore = TRUE; // the nonmatching problem is that ableToStore == TRUE isnt being merged with the above ableToStore = TRUE assignment. + } + } + + if (ableToStore == TRUE) + { + mapObject->mapobj_bit_12 = TRUE; + mapObject->mapobj_bit_9 = TRUE; + } + + sprite->data[2] = 1; + return TRUE; +} +#else +__attribute__((naked)) +bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + adds r4, r0, 0\n\ + mov r8, r1\n\ + movs r0, 0\n\ + mov r12, r0\n\ + ldr r0, =gUnknown_020375B8\n\ + ldr r1, [r0]\n\ + adds r6, r0, 0\n\ + cmp r1, 0\n\ + bne _08097E80\n\ + movs r0, 0x14\n\ + bl AllocZeroed\n\ + str r0, [r6]\n\ + ldrb r1, [r4, 0x8]\n\ + strb r1, [r0]\n\ + ldr r1, [r6]\n\ + movs r0, 0x1\n\ + strb r0, [r1, 0x10]\n\ + b _08097ECC\n\ + .pool\n\ +_08097E80:\n\ + movs r2, 0x10\n\ + movs r5, 0\n\ + movs r1, 0\n\ + adds r3, r6, 0\n\ + b _08097E90\n\ +_08097E8A:\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ +_08097E90:\n\ + cmp r1, 0xF\n\ + bhi _08097EB2\n\ + cmp r2, 0x10\n\ + bne _08097EA4\n\ + ldr r0, [r3]\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _08097EA4\n\ + adds r2, r1, 0\n\ +_08097EA4:\n\ + ldr r0, [r3]\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + ldrb r7, [r4, 0x8]\n\ + cmp r0, r7\n\ + bne _08097E8A\n\ + movs r5, 0x1\n\ +_08097EB2:\n\ + cmp r5, 0\n\ + bne _08097ECE\n\ + cmp r2, 0x10\n\ + beq _08097ECE\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldrb r1, [r4, 0x8]\n\ + strb r1, [r0]\n\ + ldr r1, [r6]\n\ + ldrb r0, [r1, 0x10]\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x10]\n\ + movs r0, 0x1\n\ +_08097ECC:\n\ + mov r12, r0\n\ +_08097ECE:\n\ + mov r1, r12\n\ + cmp r1, 0x1\n\ + bne _08097EE0\n\ + ldrb r0, [r4, 0x1]\n\ + movs r1, 0x10\n\ + orrs r0, r1\n\ + movs r1, 0x2\n\ + orrs r0, r1\n\ + strb r0, [r4, 0x1]\n\ +_08097EE0:\n\ + movs r0, 0x1\n\ + mov r7, r8\n\ + strh r0, [r7, 0x32]\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .syntax divided"); +} +#endif + +// this function is very similar to the above one and I don't want to decompile this one until the above is matching. +__attribute__((naked)) +bool32 sub_8097EF0(struct MapObject *mapObject, struct Sprite *sprite) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + adds r6, r0, 0\n\ + mov r8, r1\n\ + movs r0, 0x1\n\ + strh r0, [r1, 0x32]\n\ + ldr r5, =gUnknown_020375B8\n\ + ldr r0, [r5]\n\ + cmp r0, 0\n\ + beq _08097F68\n\ + movs r7, 0\n\ + adds r0, r6, 0\n\ + bl sub_8097F78\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x10\n\ + beq _08097F28\n\ + ldr r0, [r5]\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r1, [r5]\n\ + ldrb r0, [r1, 0x10]\n\ + subs r0, 0x1\n\ + strb r0, [r1, 0x10]\n\ + movs r7, 0x1\n\ +_08097F28:\n\ + ldr r0, [r5]\n\ + ldrb r4, [r0, 0x10]\n\ + cmp r4, 0\n\ + bne _08097F36\n\ + bl Free\n\ + str r4, [r5]\n\ +_08097F36:\n\ + cmp r7, 0x1\n\ + bne _08097F68\n\ + ldrb r0, [r6, 0x5]\n\ + bl GetFieldObjectGraphicsInfo\n\ + ldrb r1, [r0, 0xC]\n\ + lsls r1, 25\n\ + lsrs r1, 31\n\ + lsls r1, 4\n\ + ldrb r2, [r6, 0x1]\n\ + movs r0, 0x11\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + movs r1, 0x3\n\ + negs r1, r1\n\ + ands r0, r1\n\ + strb r0, [r6, 0x1]\n\ + mov r2, r8\n\ + adds r2, 0x2C\n\ + ldrb r1, [r2]\n\ + movs r0, 0x41\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ +_08097F68:\n\ + movs r0, 0x1\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .pool\n\ + .syntax divided"); +} + +u8 sub_8097F78(struct MapObject *mapObject) +{ + u8 i; + + for(i = 0; i < 0x10; i++) + { + if(gUnknown_020375B8[i] == mapObject->localId) + return i; + } + return 0x10; +} + +void sub_8097FA4(struct MapObject *mapObject) +{ + u8 taskId = CreateTask(sub_8097FE4, 0xFF); + struct Task *task = &gTasks[taskId]; + + StoreWordInTwoHalfwords(&task->data[0], (u32)mapObject); + mapObject->mapobj_unk_1B = taskId; + task->data[3] = 0xFFFF; +} + +void sub_8097FE4(u8 taskId) +{ + struct MapObject *mapObject; + struct Sprite *sprite; + struct Task *task = &gTasks[taskId]; + + LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&mapObject); // load the map object pointer. + sprite = &gSprites[mapObject->spriteId]; + + if(!(task->data[2] & 0x3)) + sprite->pos2.y += task->data[3]; + + if(!(task->data[2] & 0xF)) + task->data[3] = -task->data[3]; + + task->data[2]++; +} + +void sub_8098044(u8 taskId) +{ + u32 word; + struct Task *task = &gTasks[taskId]; + + LoadWordFromTwoHalfwords(&task->data[0], &word); // huh??? why does it load a word that never gets used??? + DestroyTask(taskId); +} + +void sub_8098074(u8 var1, u8 var2) +{ + u8 i; + + for(i = 0; i < 0x10; i++) + { + if(i != var1 && i != var2 && + gMapObjects[i].active && i != gPlayerAvatar.mapObjectId) + FreezeMapObject(&gMapObjects[i]); + } +} + +bool32 sub_80980C0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->pos2.y = 0; + sprite->data[2]++; + return FALSE; +} + +bool32 sub_80980D0(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->pos2.y -= 8; + + if(sprite->pos2.y == -160) + sprite->data[2]++; + return FALSE; +} + +bool32 sub_80980F4(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->pos2.y = -160; + sprite->data[2]++; + return FALSE; +} + +bool32 sub_8098108(struct MapObject *mapObject, struct Sprite *sprite) +{ + sprite->pos2.y += 8; + + if(!sprite->pos2.y) + sprite->data[2]++; + return FALSE; +} + +// though this function returns FALSE without doing anything, this header is required due to being in an array of functions which needs it. +bool32 sub_8098124(struct MapObject *mapObject, struct Sprite *sprite) +{ + return TRUE; +} -- cgit v1.2.3 From 536a338ff9aac796c542b3bb01a822c2a28df0a5 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Tue, 30 Jan 2018 18:22:56 -0500 Subject: cleanup --- src/field_map_obj_helpers.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index a9c6dcc5c..27f1de479 100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -43,7 +43,7 @@ bool8 FreezeMapObject(struct MapObject *mapObject) void FreezeMapObjects(void) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < MAP_OBJECTS_COUNT; i++) if (gMapObjects[i].active && i != gPlayerAvatar.mapObjectId) FreezeMapObject(&gMapObjects[i]); } @@ -51,7 +51,7 @@ void FreezeMapObjects(void) void FreezeMapObjectsExceptOne(u8 a1) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < MAP_OBJECTS_COUNT; i++) if (i != a1 && gMapObjects[i].active && i != gPlayerAvatar.mapObjectId) FreezeMapObject(&gMapObjects[i]); } @@ -69,7 +69,7 @@ void npc_sync_anim_pause_bits(struct MapObject *mapObject) void UnfreezeMapObjects(void) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < MAP_OBJECTS_COUNT; i++) if (gMapObjects[i].active) npc_sync_anim_pause_bits(&gMapObjects[i]); } @@ -748,12 +748,12 @@ u8 sub_8097F78(struct MapObject *mapObject) { u8 i; - for(i = 0; i < 0x10; i++) + for(i = 0; i < MAP_OBJECTS_COUNT; i++) { if(gUnknown_020375B8[i] == mapObject->localId) return i; } - return 0x10; + return MAP_OBJECTS_COUNT; } void sub_8097FA4(struct MapObject *mapObject) @@ -797,7 +797,7 @@ void sub_8098074(u8 var1, u8 var2) { u8 i; - for(i = 0; i < 0x10; i++) + for(i = 0; i < MAP_OBJECTS_COUNT; i++) { if(i != var1 && i != var2 && gMapObjects[i].active && i != gPlayerAvatar.mapObjectId) @@ -837,7 +837,7 @@ bool32 sub_8098108(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } -// though this function returns FALSE without doing anything, this header is required due to being in an array of functions which needs it. +// though this function returns TRUE without doing anything, this header is required due to being in an array of functions which needs it. bool32 sub_8098124(struct MapObject *mapObject, struct Sprite *sprite) { return TRUE; -- cgit v1.2.3 From 05bd37bf469638c5f918733d074ec930af3f6508 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Tue, 30 Jan 2018 18:30:59 -0500 Subject: rename header --- include/field_map_obj_helpers.h | 30 +++++++++++++++++++++++++++--- include/map_obj_8097404.h | 34 ---------------------------------- src/field_map_obj.c | 2 +- src/field_map_obj_helpers.c | 2 +- src/item_use.c | 2 +- src/trainer_see.c | 2 +- 6 files changed, 31 insertions(+), 41 deletions(-) delete mode 100644 include/map_obj_8097404.h diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index ba797ec98..031c7a8ab 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -1,7 +1,31 @@ -#ifndef GUARD_FIELDMAPOBJHELP_H -#define GUARD_FIELDMAPOBJHELP_H +#ifndef GUARD_FIELD_MAP_OBJ_HELPERS_H +#define GUARD_FIELD_MAP_OBJ_HELPERS_H +// Exported type declarations + +// Exported RAM declarations +extern u8 *gUnknown_020375B8; + +// Exported ROM declarations +void sub_8097AC8(struct Sprite *); +void npc_sync_anim_pause_bits(struct MapObject *); +void oamt_npc_ministep_reset(struct Sprite *, u8, u8); +u8 sub_8097F78(struct MapObject *); +bool8 obj_npc_ministep(struct Sprite *sprite); +bool8 sub_80976EC(struct Sprite *sprite); +void sub_80976DC(struct Sprite *, u8); +void sub_809783C(struct Sprite *, u8, u8, u8); +void DoShadowFieldEffect(struct MapObject *); +u8 sub_809785C(struct Sprite *); +u8 sub_80978E4(struct Sprite *); +void obj_anim_image_set_and_seek(struct Sprite *, u8, u8); +bool8 sub_80979BC(struct Sprite *); +void sub_8097750(struct Sprite *); +bool8 sub_8097758(struct Sprite *); +void sub_8097FA4(struct MapObject *); +void sub_8098044(u8); void UnfreezeMapObjects(void); +void FreezeMapObjectsExceptOne(u8 mapObjectId); void sub_8097B78(u8, u8); -#endif +#endif //GUARD_FIELD_MAP_OBJ_HELPERS_H diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h deleted file mode 100644 index f0880a641..000000000 --- a/include/map_obj_8097404.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// Created by scott on 9/7/2017. -// - -#ifndef GUARD_MAP_OBJ_8097404_H -#define GUARD_MAP_OBJ_8097404_H - -// Exported type declarations - -// Exported RAM declarations -extern u8 *gUnknown_020375B8; - -// Exported ROM declarations -void sub_8097AC8(struct Sprite *); -void npc_sync_anim_pause_bits(struct MapObject *); -void oamt_npc_ministep_reset(struct Sprite *, u8, u8); -u8 sub_8097F78(struct MapObject *); -bool8 obj_npc_ministep(struct Sprite *sprite); -bool8 sub_80976EC(struct Sprite *sprite); -void sub_80976DC(struct Sprite *, u8); -void sub_809783C(struct Sprite *, u8, u8, u8); -void DoShadowFieldEffect(struct MapObject *); -u8 sub_809785C(struct Sprite *); -u8 sub_80978E4(struct Sprite *); -void obj_anim_image_set_and_seek(struct Sprite *, u8, u8); -bool8 sub_80979BC(struct Sprite *); -void sub_8097750(struct Sprite *); -bool8 sub_8097758(struct Sprite *); -void sub_8097FA4(struct MapObject *); -void sub_8098044(u8); -void UnfreezeMapObjects(void); -void FreezeMapObjectsExceptOne(u8 mapObjectId); - -#endif //GUARD_MAP_OBJ_8097404_H diff --git a/src/field_map_obj.c b/src/field_map_obj.c index df80494b3..906eff4b7 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -14,7 +14,7 @@ #include "rom_818CFC8.h" #include "rom_81BE66C.h" #include "field_ground_effect.h" -#include "map_obj_8097404.h" +#include "field_map_obj_helpers.h" #include "mauville_old_man.h" #include "metatile_behavior.h" #include "field_effect.h" diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index 27f1de479..ed578ad61 100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -2,7 +2,7 @@ #include "field_ground_effect.h" #include "field_map_obj.h" #include "field_effect.h" -#include "map_obj_8097404.h" +#include "field_map_obj_helpers.h" #include "malloc.h" #include "task.h" #include "util.h" diff --git a/src/item_use.c b/src/item_use.c index 4c7276bb8..8fe705a50 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -15,7 +15,7 @@ #include "field_screen.h" #include "field_weather.h" #include "item.h" -#include "map_obj_8097404.h" +#include "field_map_obj_helpers.h" #include "mail.h" #include "metatile_behavior.h" #include "overworld.h" diff --git a/src/trainer_see.c b/src/trainer_see.c index 38773ec50..7706da703 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -6,7 +6,7 @@ #include "field_effect.h" #include "field_map_obj.h" #include "field_player_avatar.h" -#include "map_obj_8097404.h" +#include "field_map_obj_helpers.h" #include "pokenav.h" #include "task.h" #include "util.h" -- cgit v1.2.3 From d5d62c9d4ddb047ad11129127102c63d54be6e54 Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Tue, 30 Jan 2018 19:28:38 -0500 Subject: fix ewram --- src/field_message_box.c | 2 +- sym_ewram.txt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/field_message_box.c b/src/field_message_box.c index ea80b2ea9..9570040eb 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -5,7 +5,7 @@ #include "task.h" #include "text.h" -u8 gUnknown_020375BC = 0; +EWRAM_DATA u8 gUnknown_020375BC = 0; void textbox_fdecode_auto_and_task_add(u8*, int); void textbox_auto_and_task_add(void); diff --git a/sym_ewram.txt b/sym_ewram.txt index 67df29d3b..2f7cb3f13 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -643,7 +643,6 @@ gUnknown_020375B8: @ 20375B8 .space 0x4 gUnknown_020375BC: @ 20375BC - .space 0x4 .include "src/field_message_box.o" -- cgit v1.2.3 From 3ff5db0b69a56fe916c156bc97d7753b570a12d7 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Tue, 30 Jan 2018 21:17:36 -0500 Subject: forward declarations --- src/field_map_obj_helpers.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index ed578ad61..1e0e9b66b 100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -7,9 +7,6 @@ #include "task.h" #include "util.h" -extern void sub_8097D68(struct Sprite *sprite); -extern void sub_8097FE4(u8); - typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); extern const struct Coords16 gUnknown_0850DB7C[4]; @@ -23,6 +20,9 @@ extern u8 gUnknown_0850E846[]; extern s16 gUnknown_0850E84A[]; extern u8 gUnknown_0850E850[]; +void sub_8097D68(struct Sprite *sprite); +void sub_8097FE4(u8); + bool8 FreezeMapObject(struct MapObject *mapObject) { if (mapObject->mapobj_bit_6 || mapObject->mapobj_bit_8) -- cgit v1.2.3 From 4190475be597210004053900b300e984a6c859ef Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Wed, 31 Jan 2018 00:07:30 -0500 Subject: remove symbol from EWRAM --- sym_ewram.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/sym_ewram.txt b/sym_ewram.txt index 2f7cb3f13..aaf0616c4 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -642,8 +642,6 @@ gUnknown_020375B6: @ 20375B6 gUnknown_020375B8: @ 20375B8 .space 0x4 -gUnknown_020375BC: @ 20375BC - .include "src/field_message_box.o" .align 2 -- cgit v1.2.3 From db6185275eeacef224ed76dfc733f912cb5350b7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 31 Jan 2018 13:05:36 +0100 Subject: start decompiling rayquaza scene --- asm/rayquaza_scene.s | 1295 +-------------------------------------------- include/graphics.h | 5 + include/rayquaza_scene.h | 15 + include/scanline_effect.h | 4 +- src/rayquaza_scene.c | 406 +++++++++++++- sym_ewram.txt | 2 +- 6 files changed, 430 insertions(+), 1297 deletions(-) create mode 100644 include/rayquaza_scene.h diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s index 8832d3942..611c34f5f 100644 --- a/asm/rayquaza_scene.s +++ b/asm/rayquaza_scene.s @@ -5,1266 +5,7 @@ .text - thumb_func_start sub_81D6720 -sub_81D6720: @ 81D6720 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r5, r1, 0 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r6, =gUnknown_0203CF60 - ldr r0, =0x00002018 - bl AllocZeroed - str r0, [r6] - ldr r1, =0x00002006 - adds r0, r1 - strb r4, [r0] - ldr r0, [r6] - mov r1, r8 - str r1, [r0] - ldr r1, =0x00002007 - adds r0, r1 - strb r5, [r0] - ldr r0, =sub_81D6774 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6720 - - thumb_func_start sub_81D6774 -sub_81D6774: @ 81D6774 - push {lr} - bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram - bl ScanlineEffect_Stop - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - movs r0, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl FillPalette - ldr r1, =gUnknown_0862A6A0 - ldr r0, =gUnknown_0203CF60 - ldr r0, [r0] - ldr r2, =0x00002006 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl CreateTask - ldr r0, =sub_81D67D0 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6774 - - thumb_func_start sub_81D67D0 -sub_81D67D0: @ 81D67D0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_81D67D0 - - thumb_func_start sub_81D67EC -sub_81D67EC: @ 81D67EC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81D67EC - - thumb_func_start sub_81D6800 -sub_81D6800: @ 81D6800 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D6830 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r4, =gUnknown_0203CF60 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - bl Free - adds r0, r5, 0 - bl DestroyTask -_081D6830: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6800 - - thumb_func_start sub_81D6840 -sub_81D6840: @ 81D6840 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081D68B2 - ldr r2, =gUnknown_0203CF60 - ldr r1, [r2] - ldr r4, =0x00002007 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _081D6888 - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_81D6800 - b _081D68B0 - .pool -_081D6888: - ldr r4, =0x00002006 - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, [r2] - ldr r1, =0x00002004 - adds r0, r2, r1 - strh r5, [r0] - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r3, =gUnknown_0862A6A0 - adds r2, r4 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] -_081D68B0: - str r0, [r1] -_081D68B2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6840 - - thumb_func_start sub_81D68C8 -sub_81D68C8: @ 81D68C8 - push {lr} - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, =0x00001888 - movs r0, 0x44 - bl SetGpuReg - ldr r0, =gPlttBufferUnfaded - movs r1, 0 - strh r1, [r0] - ldr r0, =gPlttBufferFaded - strh r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D68C8 - - thumb_func_start sub_81D6904 -sub_81D6904: @ 81D6904 - push {lr} - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81D6904 - - thumb_func_start sub_81D691C -sub_81D691C: @ 81D691C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - bl sub_81D750C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D697E - movs r0, 0 - ldrsh r1, [r5, r0] - cmp r1, 0x40 - bne _081D6954 - bl sub_81D7438 - b _081D6978 - .pool -_081D6954: - cmp r1, 0x90 - bne _081D695E - bl sub_81D7480 - b _081D6978 -_081D695E: - cmp r1, 0x94 - beq _081D6974 - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _081D6978 - adds r0, r4, 0 - movs r1, 0 - bl sub_81D75B4 - b _081D697E -_081D6974: - bl sub_81D74C8 -_081D6978: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_081D697E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D691C - - thumb_func_start sub_81D6984 -sub_81D6984: @ 81D6984 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0862A72C - mov r8, r0 - movs r1, 0x58 - movs r2, 0x48 - movs r3, 0x3 - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, =gSprites - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D6A20 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - mov r0, r8 - movs r1, 0x38 - movs r2, 0x68 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r0, =gUnknown_0862A750 - movs r1, 0x4B - movs r2, 0x65 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2] - ldr r0, =gUnknown_0862A774 - movs r1, 0x6D - movs r2, 0x72 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6984 - - thumb_func_start sub_81D6A20 -sub_81D6A20: @ 81D6A20 - push {r4,lr} - adds r3, r0, 0 - movs r0, 0x2E - adds r0, r3 - mov r12, r0 - ldrh r0, [r0, 0xA] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - mov r1, r12 - strh r0, [r1, 0xA] - cmp r0, 0 - bne _081D6A84 - ldrh r1, [r3, 0x20] - movs r2, 0x20 - ldrsh r0, [r3, r2] - cmp r0, 0x48 - beq _081D6A84 - subs r0, r1, 0x1 - strh r0, [r3, 0x20] - ldr r2, =gSprites - movs r4, 0x2E - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] -_081D6A84: - adds r0, r3, 0 - adds r0, 0x2B - ldrb r3, [r0] - cmp r3, 0x1 - beq _081D6AE4 - cmp r3, 0x1 - bgt _081D6A9C - cmp r3, 0 - beq _081D6AA6 - b _081D6B68 - .pool -_081D6A9C: - cmp r3, 0x2 - beq _081D6B24 - cmp r3, 0x3 - beq _081D6AE4 - b _081D6B68 -_081D6AA6: - ldr r2, =gSprites - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - b _081D6B5E - .pool -_081D6AE4: - ldr r2, =gSprites - mov r0, r12 - movs r3, 0x2 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - mov r4, r12 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0 - strh r3, [r0, 0x26] - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - negs r1, r1 - b _081D6B58 - .pool -_081D6B24: - ldr r2, =gSprites - mov r3, r12 - movs r4, 0x2 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - movs r0, 0x2 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x1 - strh r3, [r0, 0x26] - mov r4, r12 - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000fffe -_081D6B58: - strh r1, [r0, 0x24] - movs r0, 0x4 - ldrsh r1, [r4, r0] -_081D6B5E: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] -_081D6B68: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6A20 - - thumb_func_start sub_81D6B7C -sub_81D6B7C: @ 81D6B7C - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r5, =gUnknown_0862A81C - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x60 - movs r3, 0x1 - bl CreateSprite - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, =gSprites - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D6D20 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - adds r0, r5, 0 - movs r1, 0xA8 - movs r2, 0x60 - movs r3, 0x1 - bl CreateSprite - lsls r0, 8 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x70 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0xA8 - movs r2, 0x70 - movs r3, 0x1 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - orrs r0, r1 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0xA8 - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x68 - movs r2, 0x80 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x88 - movs r2, 0x80 - movs r3, 0x2 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x6] - adds r0, r5, 0 - movs r1, 0xB8 - movs r2, 0x80 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - orrs r0, r1 - strh r0, [r4, 0x6] - ldr r0, =gUnknown_0862A84C - movs r1, 0xD0 - movs r2, 0x84 - movs r3, 0 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x8] - ldr r0, =gUnknown_0862A864 - movs r1, 0xC8 - movs r2, 0x78 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - orrs r0, r1 - strh r0, [r4, 0x8] - ldrh r1, [r4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartSpriteAnim - ldrh r1, [r4, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x3 - bl StartSpriteAnim - ldrb r1, [r4, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartSpriteAnim - ldrh r1, [r4, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartSpriteAnim - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartSpriteAnim - ldrh r1, [r4, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x7 - bl StartSpriteAnim - ldrb r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x8 - bl StartSpriteAnim - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D6B7C - - thumb_func_start sub_81D6D20 -sub_81D6D20: @ 81D6D20 - push {r4-r7,lr} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2E - ldrh r0, [r3, 0xA] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r3, 0xA] - ldr r7, =gSprites - cmp r0, 0 - bne _081D6E0E - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x98 - beq _081D6E0E - adds r0, r1, 0x1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r4, 0x2E] - movs r2, 0xFF - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x2] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x4] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x6] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x8] - ands r2, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] -_081D6E0E: - adds r6, r7, 0 - movs r5, 0xFF - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2B - ldrb r2, [r0] - cmp r2, 0x1 - beq _081D6EE0 - cmp r2, 0x1 - bgt _081D6E34 - cmp r2, 0 - beq _081D6E40 - b _081D6FC8 - .pool -_081D6E34: - cmp r2, 0x2 - bne _081D6E3A - b _081D6F68 -_081D6E3A: - cmp r2, 0x3 - beq _081D6EE0 - b _081D6FC8 -_081D6E40: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x4] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x6] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - b _081D6FC6 -_081D6EE0: - movs r2, 0x1 - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x8] - b _081D6FBE -_081D6F68: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 -_081D6FBE: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 -_081D6FC6: - strh r2, [r0, 0x26] -_081D6FC8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D6D20 - - thumb_func_start sub_81D6FD0 -sub_81D6FD0: @ 81D6FD0 - push {lr} - bl sub_81D67EC - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - thumb_func_end sub_81D6FD0 - - thumb_func_start sub_81D6FE0 -sub_81D6FE0: @ 81D6FE0 - push {r4,lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862A888 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D6FE0 - - thumb_func_start sub_81D706C -sub_81D706C: @ 81D706C - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gRaySceneClouds_Gfx - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D7082: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D7082 - ldr r0, =gRaySceneClouds2_Tilemap - ldr r4, =gUnknown_0203CF60 - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gRaySceneClouds1_Tilemap - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneClouds3_Tilemap - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneClouds_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - ldr r0, =gUnknown_0862A8C4 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A8F8 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A924 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A9D4 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AA14 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AA34 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862A8CC - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862A9DC - bl LoadCompressedObjectPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D706C - - thumb_func_start sub_81D7134 -sub_81D7134: @ 81D7134 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, =gTasks + 0x8 - adds r5, r6, r7 - bl ScanlineEffect_Clear - bl sub_81D6FE0 - bl sub_81D706C - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, =gScanlineEffectRegBuffers - ldr r2, =0x010003c0 - add r0, sp, 0x4 - bl CpuFastSet - ldr r2, =gUnknown_0862A87C - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl ScanlineEffect_SetParams - strh r4, [r5] - ldr r0, =sub_81D7228 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x2] - ldr r0, =gUnknown_0203CF60 - ldr r0, [r0] - ldr r1, =0x00002006 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081D71CC - bl sub_81D6984 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x4] - bl sub_81D6B7C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81D691C - str r1, [r0] - b _081D71EE - .pool -_081D71CC: - bl sub_81D7664 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x4] - bl sub_81D78BC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x6] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =sub_81D736C - str r1, [r0] - bl StopMapMusic -_081D71EE: - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =sub_81D6FD0 - bl SetVBlankCallback - movs r0, 0x53 - bl PlaySE - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7134 + thumb_func_start sub_81D7228 sub_81D7228: @ 81D7228 @@ -1277,7 +18,7 @@ sub_81D7228: @ 81D7228 ldr r0, =gTasks + 0x8 adds r3, r1, r0 movs r1, 0x18 - ldr r7, =gUnknown_0203CF60 + ldr r7, =sRayScene ldr r4, =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 @@ -1781,7 +522,7 @@ sub_81D7600: @ 81D7600 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 - ldr r1, =sub_81D6840 + ldr r1, =Task_SetNextAnim str r1, [r0] _081D7652: pop {r4-r7} @@ -2765,7 +1506,7 @@ sub_81D7E10: @ 81D7E10 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] adds r1, 0x4 movs r0, 0 @@ -2836,7 +1577,7 @@ _081D7ED0: cmp r0, 0 bne _081D7ED0 ldr r0, =gRaySceneClouds2_Tilemap - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram @@ -3146,7 +1887,7 @@ sub_81D8164: @ 81D8164 adds r1, r4 lsls r1, 3 adds r1, r0 - ldr r0, =sub_81D6840 + ldr r0, =Task_SetNextAnim str r0, [r1] _081D8192: pop {r4} @@ -3299,7 +2040,7 @@ sub_81D82B0: @ 81D82B0 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] adds r1, 0x4 movs r0, 0 @@ -3375,7 +2116,7 @@ _081D8380: cmp r6, 0 bne _081D8380 ldr r0, =gRaySceneRayquazaLight_Tilemap - ldr r5, =gUnknown_0203CF60 + ldr r5, =sRayScene ldr r1, [r5] adds r1, 0x4 bl LZDecompressWram @@ -3441,7 +2182,7 @@ sub_81D844C: @ 81D844C lsrs r0, 16 cmp r0, 0x6F bhi _081D848C - ldr r0, =gUnknown_0203CF60 + ldr r0, =sRayScene ldr r0, [r0] ldr r3, =0x00002008 adds r0, r3 @@ -3462,7 +2203,7 @@ _081D8492: strh r0, [r1] cmp r2, 0 bne _081D84E0 - ldr r0, =gUnknown_0203CF60 + ldr r0, =sRayScene ldr r1, [r0] ldr r2, =0x00002008 adds r3, r1, r2 @@ -3531,7 +2272,7 @@ sub_81D84EC: @ 81D84EC bl BlendPalettes ldr r0, =sub_81D67EC bl SetVBlankCallback - ldr r0, =gUnknown_0203CF60 + ldr r0, =sRayScene ldr r0, [r0] ldr r1, =0x00002008 adds r2, r0, r1 @@ -3708,7 +2449,7 @@ sub_81D8684: @ 81D8684 adds r1, r4 lsls r1, 3 adds r1, r0 - ldr r0, =sub_81D6840 + ldr r0, =Task_SetNextAnim str r0, [r1] _081D86B8: pop {r4} @@ -3906,7 +2647,7 @@ sub_81D8828: @ 81D8828 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] adds r1, 0x4 movs r0, 0 @@ -3986,7 +2727,7 @@ _081D8904: cmp r0, 0 bne _081D8904 ldr r0, =gRayChaseRayquazaChase2_Tilemap - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram @@ -4342,7 +3083,7 @@ sub_81D8BEC: @ 81D8BEC adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 - ldr r1, =sub_81D6840 + ldr r1, =Task_SetNextAnim str r1, [r0] _081D8C26: pop {r4-r6} @@ -4361,7 +3102,7 @@ sub_81D8C38: @ 81D8C38 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] adds r1, 0x4 movs r0, 0 @@ -4426,7 +3167,7 @@ _081D8CEA: cmp r0, 0 bne _081D8CEA ldr r0, =gRaySceneHushRing_Tilemap - ldr r4, =gUnknown_0203CF60 + ldr r4, =sRayScene ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 @@ -4815,7 +3556,7 @@ _081D9078: adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 - ldr r1, =sub_81D6840 + ldr r1, =Task_SetNextAnim str r1, [r0] b _081D90A0 .pool diff --git a/include/graphics.h b/include/graphics.h index 5917e9d2a..c089ec254 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2678,5 +2678,10 @@ extern const u8 gRaySceneGroudonLeft_Pal[]; extern const u8 gRaySceneKyogreRight_Pal[]; extern const u8 gRaySceneRayquazaHover_Pal[]; extern const u8 gRaySceneSplash_Pal[]; +extern const u8 gRaySceneClouds_Gfx[]; +extern const u8 gRaySceneClouds_Pal[]; +extern const u8 gRaySceneClouds2_Tilemap[]; +extern const u8 gRaySceneClouds1_Tilemap[]; +extern const u8 gRaySceneClouds3_Tilemap[]; #endif //GUARD_GRAPHICS_H diff --git a/include/rayquaza_scene.h b/include/rayquaza_scene.h new file mode 100644 index 000000000..e997c9db7 --- /dev/null +++ b/include/rayquaza_scene.h @@ -0,0 +1,15 @@ +#ifndef GUARD_RAYQUAZA_SCENE_H +#define GUARD_RAYQUAZA_SCENE_H + +enum +{ + RAY_ANIM_DUO_FIGHT_PRE, + RAY_ANIM_DUO_FIGHT, + RAY_ANIM_TAKES_FLIGHT, + RAY_ANIM_DESCENDS, + RAY_ANIM_CHARGES, + RAY_ANIM_CHACES_AWAY, + RAY_ANIM_END +}; + +#endif // GUARD_RAYQUAZA_SCENE_H diff --git a/include/scanline_effect.h b/include/scanline_effect.h index 54dfe17bd..eb837e7e2 100644 --- a/include/scanline_effect.h +++ b/include/scanline_effect.h @@ -1,7 +1,7 @@ #ifndef GUARD_SCANLINE_EFFECT_H #define GUARD_SCANLINE_EFFECT_H -// DMA control value to ransfer a single 16-bit value at HBlank +// DMA control value to transfer a single 16-bit value at HBlank #define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1) #define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS) @@ -36,7 +36,7 @@ struct ScanlineEffect extern struct ScanlineEffect gScanlineEffect; -extern u16 gScanlineEffectRegBuffers[][0x3C0]; +extern u16 gScanlineEffectRegBuffers[2][0x3C0]; void ScanlineEffect_Stop(void); void ScanlineEffect_Clear(void); diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index ce8747395..72aeab94e 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1,15 +1,19 @@ #include "global.h" +#include "rayquaza_scene.h" #include "sprite.h" #include "task.h" #include "graphics.h" #include "bg.h" - -struct UnkRayquazaStruct -{ - u32 field_0; - u32 field_4; - u32 field_8; -}; +#include "main.h" +#include "malloc.h" +#include "palette.h" +#include "scanline_effect.h" +#include "menu.h" +#include "menu_helpers.h" +#include "gpu_regs.h" +#include "decompress.h" +#include "sound.h" +#include "constants/songs.h" // this file's functions void sub_81D7134(u8 taskId); @@ -17,21 +21,21 @@ void sub_81D7F4C(u8 taskId); void sub_81D84EC(u8 taskId); void sub_81D8980(u8 taskId); void sub_81D8DB4(u8 taskId); -void sub_81D6800(u8 taskId); +void Task_EndAfterFadeScreen(u8 taskId); void sub_81D8260(struct Sprite *sprite); void sub_81D961C(struct Sprite *sprite); // const rom data -const TaskFunc gUnknown_0862A6A0[] = +const TaskFunc sTasksForAnimations[] = { - sub_81D7134, - sub_81D7134, - sub_81D7F4C, - sub_81D84EC, - sub_81D8980, - sub_81D8DB4, - sub_81D6800 + sub_81D7134, // RAY_ANIM_DUO_FIGHT_PRE + sub_81D7134, // RAY_ANIM_DUO_FIGHT + sub_81D7F4C, // RAY_ANIM_TAKES_FLIGHT + sub_81D84EC, // RAY_ANIM_DESCENDS + sub_81D8980, // RAY_ANIM_CHARGES + sub_81D8DB4, // RAY_ANIM_CHACES_AWAY + Task_EndAfterFadeScreen // RAY_ANIM_END }; static const struct OamData sOamData_862A6BC = @@ -372,7 +376,12 @@ const struct SpriteTemplate gUnknown_0862A864 = .callback = SpriteCallbackDummy, }; -const struct UnkRayquazaStruct gUnknown_0862A87C = {0x4000014, 0xA2600001, 1}; +const struct ScanlineEffectParams gUnknown_0862A87C = +{ + .dmaDest = (vu16 *)REG_ADDR_BG1HOFS, + .dmaControl = 0xA2600001, + .initState = 1 +}; const struct BgTemplate gUnknown_0862A888[] = { @@ -1162,3 +1171,366 @@ const struct BgTemplate gUnknown_0862AD08[] = } }; +struct RaySceneStruct +{ + MainCallback callback; + u8 tilemapBuffers[3][0x800]; + u8 field_1804[0x800]; + u16 field_2004; + u8 animId; + bool8 onlyOneAnim; +}; + +extern struct RaySceneStruct *sRayScene; + +// this file's functions +void sub_81D6774(void); +void sub_81D67D0(void); +void sub_81D750C(void); +void sub_81D7438(void); +void sub_81D7480(void); +void sub_81D74C8(void); +void sub_81D75B4(u8 taskId, s8 palDelay); +void sub_81D6A20(struct Sprite *sprite); +void sub_81D6D20(struct Sprite *sprite); +void sub_81D7228(u8 taskId); +void sub_81D736C(u8 taskId); +u8 sub_81D7664(void); +u8 sub_81D78BC(void); + +// code +void sub_81D6720(u8 animId, bool8 onlyOneAnim, MainCallback callback) +{ + sRayScene = AllocZeroed(0x2018); + sRayScene->animId = animId; + sRayScene->callback = callback; + sRayScene->onlyOneAnim = onlyOneAnim; + SetMainCallback2(sub_81D6774); +} + +void sub_81D6774(void) +{ + SetVBlankHBlankCallbacksToNull(); + clear_scheduled_bg_copies_to_vram(); + ScanlineEffect_Stop(); + FreeAllSpritePalettes(); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FillPalette(0, 0xF0, 0x20); + CreateTask(sTasksForAnimations[sRayScene->animId], 0); + SetMainCallback2(sub_81D67D0); +} + +void sub_81D67D0(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +void sub_81D67EC(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void Task_EndAfterFadeScreen(u8 taskId) +{ + if (!gPaletteFade.active) + { + ResetSpriteData(); + FreeAllSpritePalettes(); + SetMainCallback2(sRayScene->callback); + Free(sRayScene); + DestroyTask(taskId); + } +} + +void Task_SetNextAnim(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (sRayScene->onlyOneAnim == TRUE) + { + gTasks[taskId].func = Task_EndAfterFadeScreen; + } + else + { + sRayScene->animId++; + sRayScene->field_2004 = 0; + gTasks[taskId].func = sTasksForAnimations[sRayScene->animId]; + } + } +} + +void sub_81D68C8(void) +{ + SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0V, 0x1888); + gPlttBufferUnfaded[0] = 0; + gPlttBufferFaded[0] = 0; +} + +void sub_81D6904(void) +{ + SetGpuReg(REG_OFFSET_WININ, 0x3F); + SetGpuReg(REG_OFFSET_WINOUT, 0x3F); +} + +void sub_81D691C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D750C(); + if (!gPaletteFade.active) + { + s16 counter = data[0]; + if (counter == 64) + { + sub_81D7438(); + } + else if (counter == 144) + { + sub_81D7480(); + } + else + { + switch (counter) + { + case 328: + sub_81D75B4(taskId, 0); + return; + case 148: + sub_81D74C8(); + break; + } + } + + data[0]++; + } +} + +u8 sub_81D6984(void) +{ + u8 spriteId; + s16 *data; + + spriteId = CreateSprite(&gUnknown_0862A72C, 88, 72, 3); + gSprites[spriteId].callback = sub_81D6A20; + data = gSprites[spriteId].data; + data[0] = CreateSprite(&gUnknown_0862A72C, 56, 104, 3); + data[1] = CreateSprite(&gUnknown_0862A750, 75, 101, 0); + data[2] = CreateSprite(&gUnknown_0862A774, 109, 114, 1); + StartSpriteAnim(&gSprites[data[0]], 1); + return spriteId; +} + +void sub_81D6A20(struct Sprite *sprite) +{ + s16 *data = sprite->data; + data[5]++; + data[5] &= 0x1F; + if (data[5] == 0 && sprite->pos1.x != 72) + { + sprite->pos1.x--; + gSprites[sprite->data[0]].pos1.x--; + gSprites[data[1]].pos1.x--; + gSprites[data[2]].pos1.x--; + } + + switch (sprite->animCmdIndex) + { + case 0: + gSprites[data[1]].pos2.x = 0; + gSprites[data[1]].pos2.y = 0; + gSprites[data[2]].pos2.x = 0; + gSprites[data[2]].pos2.y = 0; + break; + case 1: + case 3: + gSprites[data[1]].pos2.x = -1; + gSprites[data[1]].pos2.y = 0; + gSprites[data[2]].pos2.x = -1; + gSprites[data[2]].pos2.y = 0; + break; + case 2: + gSprites[data[1]].pos2.x = -1; + gSprites[data[1]].pos2.y = 1; + gSprites[data[2]].pos2.x = -2; + gSprites[data[2]].pos2.y = 1; + break; + } +} + +u8 sub_81D6B7C(void) +{ + u8 spriteId; + s16 *data; + + spriteId = CreateSprite(&gUnknown_0862A81C, 136, 96, 1); + gSprites[spriteId].callback = sub_81D6D20; + data = gSprites[spriteId].data; + + data[0] = CreateSprite(&gUnknown_0862A81C, 168, 96, 1) << 8; + data[0] |= CreateSprite(&gUnknown_0862A81C, 136, 112, 1); + data[1] = CreateSprite(&gUnknown_0862A81C, 168, 112, 1) << 8; + data[1] |= CreateSprite(&gUnknown_0862A81C, 136, 128, 1); + data[2] = CreateSprite(&gUnknown_0862A81C, 168, 128, 1) << 8; + data[2] |= CreateSprite(&gUnknown_0862A81C, 104, 128, 2); + data[3] = CreateSprite(&gUnknown_0862A81C, 136, 128, 2) << 8; + data[3] |= CreateSprite(&gUnknown_0862A81C, 184, 128, 0); + data[4] = CreateSprite(&gUnknown_0862A84C, 208, 132, 0) << 8; + data[4] |= CreateSprite(&gUnknown_0862A864, 200, 120, 1); + + StartSpriteAnim(&gSprites[data[0] >> 8], 1); + StartSpriteAnim(&gSprites[data[0] & 0xFF], 2); + StartSpriteAnim(&gSprites[data[1] >> 8], 3); + StartSpriteAnim(&gSprites[data[1] & 0xFF], 4); + StartSpriteAnim(&gSprites[data[2] >> 8], 5); + StartSpriteAnim(&gSprites[data[2] & 0xFF], 6); + StartSpriteAnim(&gSprites[data[3] >> 8], 7); + StartSpriteAnim(&gSprites[data[3] & 0xFF], 8); + + return spriteId; +} + +void sub_81D6D20(struct Sprite *sprite) +{ + s16 *data = sprite->data; + data[5]++; + data[5] &= 0x1F; + if (data[5] == 0 && sprite->pos1.x != 152) + { + sprite->pos1.x++; + gSprites[sprite->data[0] >> 8].pos1.x++; + gSprites[sprite->data[0] & 0xFF].pos1.x++; + gSprites[data[1] >> 8].pos1.x++; + gSprites[data[1] & 0xFF].pos1.x++; + gSprites[data[2] >> 8].pos1.x++; + gSprites[data[2] & 0xFF].pos1.x++; + gSprites[data[3] >> 8].pos1.x++; + gSprites[data[3] & 0xFF].pos1.x++; + gSprites[data[4] >> 8].pos1.x++; + gSprites[data[4] & 0xFF].pos1.x++; + } + + switch (gSprites[data[2] & 0xFF].animCmdIndex) + { + case 0: + sprite->pos2.y = 0; + gSprites[data[0] >> 8].pos2.y = 0; + gSprites[data[0] & 0xFF].pos2.y = 0; + gSprites[data[1] >> 8].pos2.y = 0; + gSprites[data[1] & 0xFF].pos2.y = 0; + gSprites[data[2] >> 8].pos2.y = 0; + gSprites[data[2] & 0xFF].pos2.y = 0; + gSprites[data[3] >> 8].pos2.y = 0; + gSprites[data[3] & 0xFF].pos2.y = 0; + gSprites[data[4] >> 8].pos2.y = 0; + gSprites[data[4] & 0xFF].pos2.y = 0; + break; + case 1: + case 3: + sprite->pos2.y = 1; + gSprites[data[0] >> 8].pos2.y = 1; + gSprites[data[0] & 0xFF].pos2.y = 1; + gSprites[data[1] >> 8].pos2.y = 1; + gSprites[data[1] & 0xFF].pos2.y = 1; + gSprites[data[2] >> 8].pos2.y = 1; + gSprites[data[2] & 0xFF].pos2.y = 1; + gSprites[data[3] >> 8].pos2.y = 1; + gSprites[data[3] & 0xFF].pos2.y = 1; + gSprites[data[4] >> 8].pos2.y = 1; + gSprites[data[4] & 0xFF].pos2.y = 1; + break; + case 2: + sprite->pos2.y = 2; + gSprites[data[0] >> 8].pos2.y = 2; + gSprites[data[0] & 0xFF].pos2.y = 2; + gSprites[data[1] >> 8].pos2.y = 2; + gSprites[data[1] & 0xFF].pos2.y = 2; + gSprites[data[2] >> 8].pos2.y = 2; + gSprites[data[4] & 0xFF].pos2.y = 2; + break; + } +} + +void sub_81D6FD0(void) +{ + sub_81D67EC(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +void sub_81D6FE0(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0862A888, 3); + SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); + SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + ShowBg(2); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +void sub_81D706C(void) +{ + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(0, gRaySceneClouds_Gfx, 0, 0, 0); + while (free_temp_tile_data_buffers_if_possible()); + + LZDecompressWram(gRaySceneClouds2_Tilemap, sRayScene->tilemapBuffers[0]); + LZDecompressWram(gRaySceneClouds1_Tilemap, sRayScene->tilemapBuffers[1]); + LZDecompressWram(gRaySceneClouds3_Tilemap, sRayScene->tilemapBuffers[2]); + LoadCompressedPalette(gRaySceneClouds_Pal, 0, 0x40); + LoadCompressedObjectPic(&gUnknown_0862A8C4); + LoadCompressedObjectPic(&gUnknown_0862A8F8); + LoadCompressedObjectPic(&gUnknown_0862A924); + LoadCompressedObjectPic(&gUnknown_0862A9D4); + LoadCompressedObjectPic(&gUnknown_0862AA14); + LoadCompressedObjectPic(&gUnknown_0862AA34); + LoadCompressedObjectPalette(&gUnknown_0862A8CC); + LoadCompressedObjectPalette(&gUnknown_0862A9DC); +} + +void sub_81D7134(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ScanlineEffect_Clear(); + sub_81D6FE0(); + sub_81D706C(); + CpuFastFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers)); + ScanlineEffect_SetParams(gUnknown_0862A87C); + data[0] = 0; + data[1] = CreateTask(sub_81D7228, 0); + if (sRayScene->animId == RAY_ANIM_DUO_FIGHT_PRE) + { + data[2] = sub_81D6984(); + data[3] = sub_81D6B7C(); + gTasks[taskId].func = sub_81D691C; + } + else + { + data[2] = sub_81D7664(); + data[3] = sub_81D78BC(); + gTasks[taskId].func = sub_81D736C; + StopMapMusic(); + } + + BlendPalettes(-1, 0x10, 0); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + SetVBlankCallback(sub_81D6FD0); + PlaySE(SE_T_OOAME); +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 67911a3cc..eb26556c4 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1527,4 +1527,4 @@ gUnknown_0203CF58: @ 203CF58 gUnknown_0203CF5C: @ 203CF5C .space 0x4 -gUnknown_0203CF60: @ 203CF60 +sRayScene: @ 203CF60 -- cgit v1.2.3 From 78bd2b0849f357f0d2fbbb8e1e69e50d630dd9b0 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 31 Jan 2018 15:26:57 -0500 Subject: move save rodata to source and use saveblock chunk macros --- data/save.s | 20 -------------------- include/global.h | 3 +++ ld_script.txt | 2 +- src/save.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 59 insertions(+), 22 deletions(-) delete mode 100644 data/save.s diff --git a/data/save.s b/data/save.s deleted file mode 100644 index 23a8d3928..000000000 --- a/data/save.s +++ /dev/null @@ -1,20 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gSaveSectionOffsets:: @ 85CDC00 - .2byte 0, 0xF2C - .2byte 0, 0xF80 - .2byte 0xF80, 0xF80 - .2byte 0x1F00, 0xF80 - .2byte 0x2E80, 0xF08 - .2byte 0, 0xF80 - .2byte 0xF80, 0xF80 - .2byte 0x1F00, 0xF80 - .2byte 0x2E80, 0xF80 - .2byte 0x3E00, 0xF80 - .2byte 0x4D80, 0xF80 - .2byte 0x5D00, 0xF80 - .2byte 0x6C80, 0xF80 - .2byte 0x7C00, 0x7D0 diff --git a/include/global.h b/include/global.h index 9f6c45df1..f358dafe7 100644 --- a/include/global.h +++ b/include/global.h @@ -37,6 +37,9 @@ #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 +#define min(a, b) ((a) < (b) ? (a) : (b)) +#define max(a, b) ((a) >= (b) ? (a) : (b)) + #define HEAP_SIZE 0x1C000 extern u8 gStringVar1[]; diff --git a/ld_script.txt b/ld_script.txt index 871729691..345afb27f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -484,7 +484,7 @@ SECTIONS { src/battle_controller_link_partner.o(.rodata); src/battle_message.o(.rodata); data/cable_car.o(.rodata); - data/save.o(.rodata); + src/save.o(.rodata); data/field_effect_helpers.o(.rodata); data/contest_ai.o(.rodata); src/battle_controller_safari.o(.rodata); diff --git a/src/save.c b/src/save.c index 023ca6870..138ec7cce 100644 --- a/src/save.c +++ b/src/save.c @@ -4,13 +4,67 @@ #include "constants/game_stat.h" #include "task.h" +// for the chunk declarations +extern struct SaveBlock2 gSaveblock2; +extern struct SaveBlock1 gSaveblock1; +extern struct PokemonStorage gPokemonStorage; + extern struct SaveSectionLocation gRamSaveSectionLocations[0xE]; extern u8 gDecompressionBuffer[]; extern u32 gFlashMemoryPresent; extern u16 gUnknown_03006294; extern bool8 gSoftResetDisabled; -extern const struct SaveSectionOffsets gSaveSectionOffsets[0xE]; +// Divide save blocks into individual chunks to be written to flash sectors + +// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer +#define SECTOR_DATA_SIZE 3968 +#define SECTOR_FOOTER_SIZE 128 + +/* + * Sector Layout: + * + * Sectors 0 - 13: Save Slot 1 + * Sectors 14 - 27: Save Slot 2 + * Sectors 28 - 29: Hall of Fame + * Sectors 30 - 31: e-Reader battle tower data, maybe? (note: depreciated in Emerald US) + * + * There are two save slots for saving the player's game data. We alternate between + * them each time the game is saved, so that if the current save slot is corrupt, + * we can load the previous one. We also rotate the sectors in each save slot + * so that the same data is not always being written to the same sector. This + * might be done to reduce wear on the flash memory, but I'm not sure, since all + * 14 sectors get written anyway. + */ + +// (u8 *)structure was removed from the first statement of the macro in Emerald. +// This is because malloc is used to allocate addresses so storing the raw +// addresses should not be done in the offsets information. +#define SAVEBLOCK_CHUNK(structure, chunkNum) \ +{ \ + chunkNum * SECTOR_DATA_SIZE, \ + min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \ +} \ + +const struct SaveSectionOffsets gSaveSectionOffsets[] = +{ + SAVEBLOCK_CHUNK(gSaveblock2, 0), + + SAVEBLOCK_CHUNK(gSaveblock1, 0), + SAVEBLOCK_CHUNK(gSaveblock1, 1), + SAVEBLOCK_CHUNK(gSaveblock1, 2), + SAVEBLOCK_CHUNK(gSaveblock1, 3), + + SAVEBLOCK_CHUNK(gPokemonStorage, 0), + SAVEBLOCK_CHUNK(gPokemonStorage, 1), + SAVEBLOCK_CHUNK(gPokemonStorage, 2), + SAVEBLOCK_CHUNK(gPokemonStorage, 3), + SAVEBLOCK_CHUNK(gPokemonStorage, 4), + SAVEBLOCK_CHUNK(gPokemonStorage, 5), + SAVEBLOCK_CHUNK(gPokemonStorage, 6), + SAVEBLOCK_CHUNK(gPokemonStorage, 7), + SAVEBLOCK_CHUNK(gPokemonStorage, 8), +}; extern void DoSaveFailedScreen(u8); // save_failed_screen extern void LoadSerializedGame(void); // load_save -- cgit v1.2.3 From a998cba4f03b34c147acb78d4b70766a50346afe Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 31 Jan 2018 15:53:38 -0500 Subject: depreciate depreciate --- src/save.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/save.c b/src/save.c index 138ec7cce..0c35c3795 100644 --- a/src/save.c +++ b/src/save.c @@ -27,7 +27,7 @@ extern bool8 gSoftResetDisabled; * Sectors 0 - 13: Save Slot 1 * Sectors 14 - 27: Save Slot 2 * Sectors 28 - 29: Hall of Fame - * Sectors 30 - 31: e-Reader battle tower data, maybe? (note: depreciated in Emerald US) + * Sectors 30 - 31: e-Reader battle tower data, maybe? (note: deprecated in Emerald US) * * There are two save slots for saving the player's game data. We alternate between * them each time the game is saved, so that if the current save slot is corrupt, -- cgit v1.2.3 From eb6aed50e56f36ce416f7ecc8edfacea1da61bf1 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 31 Jan 2018 16:12:46 -0600 Subject: Update save.c with recorded battle sector --- src/save.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/save.c b/src/save.c index 0c35c3795..8d77e801a 100644 --- a/src/save.c +++ b/src/save.c @@ -27,7 +27,8 @@ extern bool8 gSoftResetDisabled; * Sectors 0 - 13: Save Slot 1 * Sectors 14 - 27: Save Slot 2 * Sectors 28 - 29: Hall of Fame - * Sectors 30 - 31: e-Reader battle tower data, maybe? (note: deprecated in Emerald US) + * Sector 30: e-Reader/Mystery Gift Stuff (note: e-Reader is deprecated in Emerald US) + * Sector 31: Recorded Battle * * There are two save slots for saving the player's game data. We alternate between * them each time the game is saved, so that if the current save slot is corrupt, -- cgit v1.2.3 From 68146af07cfc5103120a41837765c9d668114f74 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 1 Feb 2018 11:17:07 +0100 Subject: more ray scene work --- asm/rayquaza_scene.s | 3084 -------------------------------------------------- include/graphics.h | 17 + include/palette.h | 1 + src/rayquaza_scene.c | 918 ++++++++++++++- 4 files changed, 933 insertions(+), 3087 deletions(-) diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s index 611c34f5f..a7614239a 100644 --- a/asm/rayquaza_scene.s +++ b/asm/rayquaza_scene.s @@ -5,3092 +5,8 @@ .text - - thumb_func_start sub_81D7228 -sub_81D7228: @ 81D7228 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r3, r1, r0 - movs r1, 0x18 - ldr r7, =sRayScene - ldr r4, =gScanlineEffectRegBuffers - movs r0, 0xF0 - lsls r0, 3 - adds r5, r4, r0 -_081D7244: - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r0, 0 - cmp r1, 0x2F - bgt _081D726C - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3] - b _081D72CA - .pool -_081D726C: - cmp r1, 0x3F - bgt _081D7280 - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x2] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x2] - b _081D72CA -_081D7280: - cmp r1, 0x4B - bgt _081D7294 - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x4] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x4] - b _081D72CA -_081D7294: - cmp r1, 0x53 - bgt _081D72A8 - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x6] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x6] - b _081D72CA -_081D72A8: - cmp r1, 0x57 - bgt _081D72BC - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0x8] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0x8] - b _081D72CA -_081D72BC: - lsls r1, 1 - adds r2, r1, r4 - ldrh r0, [r3, 0xA] - lsrs r0, 8 - strh r0, [r2] - adds r1, r5 - ldrh r0, [r3, 0xA] -_081D72CA: - lsrs r0, 8 - strh r0, [r1] - movs r1, 0x80 - lsls r1, 9 - adds r0, r6, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x5B - ble _081D7244 - ldr r0, [r7] - ldr r1, =0x00002006 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081D7324 - movs r1, 0xE0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r1, 0xC0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x2] - adds r0, r1 - strh r0, [r3, 0x2] - movs r1, 0xA0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r3, 0x4] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x6] - adds r0, r1 - strh r0, [r3, 0x6] - ldrh r0, [r3, 0x8] - adds r0, 0xC0 - b _081D735E - .pool -_081D7324: - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r1, 0xA0 - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r3, 0x2] - adds r0, r1 - strh r0, [r3, 0x2] - movs r1, 0x80 - lsls r1, 2 - adds r0, r1, 0 - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r3, 0x4] - movs r1, 0xC0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x6] - adds r0, r1 - strh r0, [r3, 0x6] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r3, 0x8] - adds r0, r1 -_081D735E: - strh r0, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r0, 0x80 - strh r0, [r3, 0xA] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D7228 - - thumb_func_start sub_81D736C -sub_81D736C: @ 81D736C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r7, =gTasks + 0x8 - adds r4, r0, r7 - bl sub_81D750C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081D742E - movs r0, 0 - ldrsh r1, [r4, r0] - cmp r1, 0x20 - beq _081D739C - cmp r1, 0x70 - bne _081D73AC -_081D739C: - bl sub_81D7438 - b _081D7428 - .pool -_081D73AC: - cmp r1, 0xD8 - bne _081D73B6 - bl sub_81D7480 - b _081D7428 -_081D73B6: - cmp r1, 0xDC - bne _081D73C0 - bl sub_81D74C8 - b _081D7428 -_081D73C0: - movs r0, 0xBE - lsls r0, 1 - cmp r1, r0 - beq _081D73D8 - adds r0, 0x20 - cmp r1, r0 - bne _081D7428 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_81D75B4 - b _081D742E -_081D73D8: - movs r1, 0x91 - lsls r1, 2 - movs r0, 0x50 - bl SetGpuReg - adds r2, r7, 0 - subs r2, 0x8 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_81D752C - str r1, [r0] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0x8] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x4] - strh r1, [r0, 0xC] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x6] - strh r1, [r0, 0xE] - bl ScanlineEffect_Stop -_081D7428: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081D742E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D736C - - thumb_func_start sub_81D7438 -sub_81D7438: @ 81D7438 - push {r4,lr} - sub sp, 0xC - movs r0, 0x57 - bl PlaySE - ldr r0, =0x00007fff - ldr r1, =0x0000ffff - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7438 - - thumb_func_start sub_81D7480 -sub_81D7480: @ 81D7480 - push {r4,lr} - sub sp, 0xC - movs r0, 0x57 - bl PlaySE - ldr r0, =0x00007fff - ldr r1, =0x0000ffff - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl sub_80A2C44 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7480 - - thumb_func_start sub_81D74C8 -sub_81D74C8: @ 81D74C8 - push {r4,lr} - sub sp, 0xC - ldr r0, =0x00007fff - ldr r1, =0x0000ffff - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x4 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0x4 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D74C8 - - thumb_func_start sub_81D750C -sub_81D750C: @ 81D750C - push {lr} - movs r1, 0x80 - lsls r1, 3 - movs r0, 0x2 - movs r2, 0x1 - bl ChangeBgX - movs r1, 0x80 - lsls r1, 4 - movs r0, 0x2 - movs r2, 0x2 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_81D750C - - thumb_func_start sub_81D752C -sub_81D752C: @ 81D752C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl sub_81D7860 - movs r0, 0x6 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_81D7D14 - movs r0, 0x1 - bl GetBgY - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - bl GetBgY - cmp r0, 0 - beq _081D757A - movs r0, 0x80 - lsls r0, 8 - cmp r4, r0 - bls _081D7586 -_081D757A: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgY -_081D7586: - ldrh r2, [r5] - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x10 - beq _081D75A6 - adds r2, 0x1 - strh r2, [r5] - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg -_081D75A6: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D752C - - thumb_func_start sub_81D75B4 -sub_81D75B4: @ 81D75B4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x54 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - lsls r4, 24 - asrs r4, 24 - movs r1, 0 - str r1, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81D7600 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D75B4 - - thumb_func_start sub_81D7600 -sub_81D7600: @ 81D7600 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, =gTasks + 0x8 - adds r5, r6, r7 - bl sub_81D750C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081D7652 - ldrb r0, [r5, 0x2] - bl DestroyTask - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl ResetSpriteData - bl FreeAllSpritePalettes - strh r4, [r5] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =Task_SetNextAnim - str r1, [r0] -_081D7652: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7600 - - thumb_func_start sub_81D7664 -sub_81D7664: @ 81D7664 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0862A8D4 - mov r8, r0 - movs r1, 0x62 - movs r2, 0x48 - movs r3, 0x3 - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, =gSprites - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D7700 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - mov r0, r8 - movs r1, 0x42 - movs r2, 0x68 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r0, =gUnknown_0862A900 - movs r1, 0x55 - movs r2, 0x65 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2] - ldr r0, =gUnknown_0862A92C - movs r1, 0x77 - movs r2, 0x72 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D7664 - - thumb_func_start sub_81D7700 -sub_81D7700: @ 81D7700 - push {r4,lr} - adds r3, r0, 0 - movs r0, 0x2E - adds r0, r3 - mov r12, r0 - ldrh r0, [r0, 0xA] - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - mov r1, r12 - strh r0, [r1, 0xA] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - bne _081D7768 - ldrh r1, [r3, 0x20] - movs r2, 0x20 - ldrsh r0, [r3, r2] - cmp r0, 0x48 - beq _081D7768 - subs r0, r1, 0x1 - strh r0, [r3, 0x20] - ldr r2, =gSprites - movs r4, 0x2E - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] -_081D7768: - adds r0, r3, 0 - adds r0, 0x2B - ldrb r3, [r0] - cmp r3, 0x1 - beq _081D77C8 - cmp r3, 0x1 - bgt _081D7780 - cmp r3, 0 - beq _081D778A - b _081D784C - .pool -_081D7780: - cmp r3, 0x2 - beq _081D7808 - cmp r3, 0x3 - beq _081D77C8 - b _081D784C -_081D778A: - ldr r2, =gSprites - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - mov r0, r12 - movs r4, 0x4 - ldrsh r1, [r0, r4] - b _081D7842 - .pool -_081D77C8: - ldr r2, =gSprites - mov r0, r12 - movs r3, 0x2 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - mov r4, r12 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0 - strh r3, [r0, 0x26] - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - negs r1, r1 - b _081D783C - .pool -_081D7808: - ldr r2, =gSprites - mov r3, r12 - movs r4, 0x2 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000ffff - strh r1, [r0, 0x24] - movs r0, 0x2 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x1 - strh r3, [r0, 0x26] - mov r4, r12 - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000fffe -_081D783C: - strh r1, [r0, 0x24] - movs r0, 0x4 - ldrsh r1, [r4, r0] -_081D7842: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] -_081D784C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7700 - - thumb_func_start sub_81D7860 -sub_81D7860: @ 81D7860 - push {r4,lr} - adds r1, r0, 0 - adds r3, r1, 0 - adds r3, 0x2E - ldrh r2, [r1, 0x22] - movs r4, 0x22 - ldrsh r0, [r1, r4] - cmp r0, 0xA0 - bgt _081D78B0 - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r1, 0x22] - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r1, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - movs r4, 0x2 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - movs r0, 0x4 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] -_081D78B0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7860 - - thumb_func_start sub_81D78BC -sub_81D78BC: @ 81D78BC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r5, =gUnknown_0862A9E4 - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x60 - movs r3, 0x1 - bl CreateSprite - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, =gSprites - lsls r4, r0, 4 - add r4, r8 - lsls r4, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, =sub_81D7A60 - str r1, [r0] - adds r0, r6, 0 - adds r0, 0x2E - adds r4, r0 - adds r0, r5, 0 - movs r1, 0x9E - movs r2, 0x60 - movs r3, 0x1 - bl CreateSprite - lsls r0, 8 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x70 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x9E - movs r2, 0x70 - movs r3, 0x1 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - orrs r0, r1 - strh r0, [r4, 0x2] - adds r0, r5, 0 - movs r1, 0x9E - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x5E - movs r2, 0x80 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r5, 0 - movs r1, 0x7E - movs r2, 0x80 - movs r3, 0x2 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x6] - adds r0, r5, 0 - movs r1, 0xAE - movs r2, 0x80 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - orrs r0, r1 - strh r0, [r4, 0x6] - ldr r0, =gUnknown_0862AA1C - movs r1, 0xC6 - movs r2, 0x84 - movs r3, 0 - bl CreateSprite - lsls r0, 8 - strh r0, [r4, 0x8] - ldr r0, =gUnknown_0862AA3C - movs r1, 0xBE - movs r2, 0x78 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - orrs r0, r1 - strh r0, [r4, 0x8] - ldrh r1, [r4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartSpriteAnim - ldrh r1, [r4, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x3 - bl StartSpriteAnim - ldrb r1, [r4, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x4 - bl StartSpriteAnim - ldrh r1, [r4, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - bl StartSpriteAnim - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x6 - bl StartSpriteAnim - ldrh r1, [r4, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x7 - bl StartSpriteAnim - ldrb r1, [r4, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x8 - bl StartSpriteAnim - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D78BC - - thumb_func_start sub_81D7A60 -sub_81D7A60: @ 81D7A60 - push {r4-r7,lr} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2E - ldrh r0, [r3, 0xA] - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - strh r0, [r3, 0xA] - movs r1, 0x7 - ands r1, r0 - ldr r7, =gSprites - cmp r1, 0 - bne _081D7B52 - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x98 - beq _081D7B52 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r4, 0x2E] - movs r2, 0xFF - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x2] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x4] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x6] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0x8] - ands r2, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldrh r1, [r0, 0x20] - adds r1, 0x1 - strh r1, [r0, 0x20] -_081D7B52: - adds r6, r7, 0 - movs r5, 0xFF - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2B - ldrb r2, [r0] - cmp r2, 0x1 - beq _081D7C24 - cmp r2, 0x1 - bgt _081D7B78 - cmp r2, 0 - beq _081D7B84 - b _081D7D0C - .pool -_081D7B78: - cmp r2, 0x2 - bne _081D7B7E - b _081D7CAC -_081D7B7E: - cmp r2, 0x3 - beq _081D7C24 - b _081D7D0C -_081D7B84: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x4] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x6] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - b _081D7D0A -_081D7C24: - movs r2, 0x1 - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrb r1, [r3, 0x8] - b _081D7D02 -_081D7CAC: - strh r2, [r4, 0x26] - ldrh r1, [r3] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x2] - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x26] - ldrh r1, [r3, 0x8] - ands r1, r5 -_081D7D02: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 -_081D7D0A: - strh r2, [r0, 0x26] -_081D7D0C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D7A60 - - thumb_func_start sub_81D7D14 -sub_81D7D14: @ 81D7D14 - push {lr} - adds r2, r0, 0 - movs r0, 0x2E - adds r0, r2 - mov r12, r0 - ldrh r1, [r2, 0x22] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r0, 0xA0 - bgt _081D7E08 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r2, 0x22] - ldr r3, =gSprites - ldrh r1, [r2, 0x2E] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - ldrh r0, [r2, 0x2E] - movs r2, 0xFF - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x2] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x2] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x4] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x4] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x6] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x6] - adds r1, r2, 0 - ands r1, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r0, r12 - ldrh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - mov r1, r12 - ldrh r0, [r1, 0x8] - ands r2, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] -_081D7E08: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7D14 - - thumb_func_start sub_81D7E10 -sub_81D7E10: @ 81D7E10 - push {r4,lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AA54 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =sRayScene - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7E10 - - thumb_func_start sub_81D7E9C -sub_81D7E9C: @ 81D7E9C - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gRaySceneClouds_Gfx - movs r4, 0 - str r4, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gRaySceneOvercast_Gfx - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gRaySceneRayquaza_Gfx - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D7ED0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D7ED0 - ldr r0, =gRaySceneClouds2_Tilemap - ldr r4, =sRayScene - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gRaySceneOvercast_Tilemap - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneRayquaza_Tilemap - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneRayquaza_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - ldr r0, =gUnknown_0862AA90 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AA98 - bl LoadCompressedObjectPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7E9C - - thumb_func_start sub_81D7F4C -sub_81D7F4C: @ 81D7F4C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - movs r0, 0xE8 - lsls r0, 1 - bl PlayNewMapMusic - bl sub_81D7E10 - bl sub_81D7E9C - movs r1, 0x94 - lsls r1, 2 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000808 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - ldr r0, =sub_81D81A4 - movs r1, 0 - bl CreateTask - movs r0, 0 - strh r0, [r6] - strh r0, [r6, 0x2] - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81D7FC0 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D7F4C - - thumb_func_start sub_81D7FC0 -sub_81D7FC0: @ 81D7FC0 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _081D802A - cmp r5, 0x1 - bgt _081D7FE8 - cmp r5, 0 - beq _081D7FF4 - b _081D815A - .pool -_081D7FE8: - cmp r5, 0x2 - beq _081D80A4 - cmp r5, 0x3 - bne _081D7FF2 - b _081D8124 -_081D7FF2: - b _081D815A -_081D7FF4: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _081D8024 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r5, [r4, 0x4] - movs r0, 0x1E - strh r0, [r4, 0x6] - strh r5, [r4, 0x8] - movs r0, 0x7 - strh r0, [r4, 0xA] - strh r5, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D815A -_081D8024: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] - b _081D815A -_081D802A: - ldrh r1, [r4, 0x6] - ldrh r3, [r4, 0x4] - adds r0, r1, r3 - strh r0, [r4, 0x4] - ldrh r2, [r4, 0xA] - ldrh r3, [r4, 0x8] - adds r0, r2, r3 - strh r0, [r4, 0x8] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081D8046 - subs r0, r1, 0x3 - strh r0, [r4, 0x6] -_081D8046: - lsls r0, r2, 16 - cmp r0, 0 - beq _081D8050 - subs r0, r2, 0x1 - strh r0, [r4, 0xA] -_081D8050: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _081D8078 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r4, 0x4] - movs r1, 0 - strh r1, [r4, 0x6] - movs r0, 0xC - strh r0, [r4, 0xC] - movs r3, 0x1 - negs r3, r3 - adds r0, r3, 0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_081D8078: - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xC0 - lsls r2, 5 - ldrh r0, [r4, 0x8] - adds r0, 0x20 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - b _081D815A -_081D80A4: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xC0 - lsls r2, 5 - ldrh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 18 - adds r0, 0x20 - ldrh r3, [r4, 0x8] - adds r0, r3 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x8] - movs r5, 0 - str r5, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0xC] - adds r0, r1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0xC - beq _081D80F4 - movs r0, 0xC - negs r0, r0 - cmp r1, r0 - bne _081D815A -_081D80F4: - movs r2, 0xE - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0xE] - movs r3, 0x2 - ldrsh r1, [r4, r3] - ldr r0, =0x00000127 - cmp r1, r0 - ble _081D815A - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0x6 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _081D815A - .pool -_081D8124: - ldrh r0, [r4, 0x4] - adds r0, 0x10 - strh r0, [r4, 0x4] - movs r1, 0xF0 - lsls r1, 7 - movs r2, 0xC0 - lsls r2, 5 - ldrh r0, [r4, 0x8] - adds r0, 0x20 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x4] - movs r3, 0x4 - ldrsh r0, [r4, r3] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r3, 0x78 - bl SetBgAffine - adds r0, r6, 0 - bl sub_81D8164 -_081D815A: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D7FC0 - - thumb_func_start sub_81D8164 -sub_81D8164: @ 81D8164 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D8192 - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =Task_SetNextAnim - str r0, [r1] -_081D8192: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8164 - - thumb_func_start sub_81D81A4 -sub_81D81A4: @ 81D81A4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r1, [r4, 0x2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081D8254 - ldr r0, =gUnknown_0862AAA0 - ldr r3, =gUnknown_0862AAB8 - movs r1, 0 - ldrsh r2, [r4, r1] - lsls r2, 1 - adds r1, r2, r3 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 18 - movs r6, 0xF0 - lsls r6, 15 - adds r1, r6 - asrs r1, 16 - adds r3, 0x1 - adds r2, r3 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r2, 18 - movs r3, 0xA0 - lsls r3, 15 - adds r2, r3 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - movs r0, 0 - ldrsb r0, [r4, r0] - strh r0, [r3, 0x2E] - ldrb r2, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - movs r2, 0x3 - orrs r0, r2 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x5] - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r3, 0x5] - adds r0, r3, 0 - bl InitSpriteAffineAnim - ldrh r1, [r4] - movs r6, 0 - ldrsh r0, [r4, r6] - cmp r0, 0x9 - bne _081D8250 - adds r0, r5, 0 - bl DestroyTask - b _081D825A - .pool -_081D8250: - adds r0, r1, 0x1 - strh r0, [r4] -_081D8254: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] -_081D825A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D81A4 - - thumb_func_start sub_81D8260 -sub_81D8260: @ 81D8260 - push {lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _081D8270 - strh r0, [r2, 0x24] - b _081D829A -_081D8270: - ldr r1, =gUnknown_0862AAB8 - movs r3, 0x2E - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r3, [r2, 0x24] - adds r0, r3 - strh r0, [r2, 0x24] - movs r3, 0x2E - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 -_081D829A: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0xF - ands r0, r1 - strh r0, [r2, 0x30] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8260 - - thumb_func_start sub_81D82B0 -sub_81D82B0: @ 81D82B0 - push {r4,lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AACC - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =sRayScene - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001804 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D82B0 - - thumb_func_start sub_81D8358 -sub_81D8358: @ 81D8358 - push {r4-r7,lr} - sub sp, 0xC - bl reset_temp_tile_data_buffers - ldr r1, =gRaySceneRayquazaLight_Gfx - movs r4, 0 - str r4, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gRaySceneOvercast2_Gfx - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - add r7, sp, 0x8 -_081D8380: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081D8380 - ldr r0, =gRaySceneRayquazaLight_Tilemap - ldr r5, =sRayScene - ldr r1, [r5] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gRaySceneOvercast2_Tilemap - ldr r1, [r5] - ldr r4, =0x00001804 - adds r1, r4 - bl LZDecompressWram - str r6, [sp, 0x4] - ldr r1, [r5] - ldr r0, =0x00001004 - adds r1, r0 - ldr r2, =0x01000200 - add r0, sp, 0x4 - bl CpuFastSet - ldr r1, [r5] - adds r4, r1, r4 - ldr r0, =0x00000804 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, 0 - bl CpuFastSet - str r6, [sp, 0x8] - ldr r1, [r5] - ldr r0, =0x00000904 - adds r1, r0 - ldr r2, =0x010000d0 - adds r0, r7, 0 - bl CpuFastSet - ldr r0, =gRaySceneOvercast2_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - ldr r0, =gPlttBufferUnfaded - ldr r1, =0x00007fff - strh r1, [r0] - ldr r0, =gPlttBufferFaded - strh r1, [r0] - ldr r0, =gUnknown_0862AAFC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AB04 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AB0C - bl LoadCompressedObjectPalette - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8358 - - thumb_func_start sub_81D844C -sub_81D844C: @ 81D844C - push {r4,r5,lr} - movs r0, 0x6 - bl GetGpuReg - lsls r0, 16 - lsrs r2, r0, 16 - adds r1, r2, 0 - subs r1, 0x18 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x6F - bhi _081D848C - ldr r0, =sRayScene - ldr r0, [r0] - ldr r3, =0x00002008 - adds r0, r3 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bgt _081D848C - ldr r1, =0x04000052 - ldr r3, =0x00000d08 - b _081D8492 - .pool -_081D848C: - ldr r1, =0x04000052 - movs r3, 0x80 - lsls r3, 5 -_081D8492: - adds r0, r3, 0 - strh r0, [r1] - cmp r2, 0 - bne _081D84E0 - ldr r0, =sRayScene - ldr r1, [r0] - ldr r2, =0x00002008 - adds r3, r1, r2 - ldrh r4, [r3] - movs r1, 0 - ldrsh r2, [r3, r1] - ldr r1, =0x00001fff - adds r5, r0, 0 - cmp r2, r1 - bgt _081D84D4 - cmp r2, 0x27 - bgt _081D84C8 - adds r0, r4, 0x4 - b _081D84D2 - .pool -_081D84C8: - cmp r2, 0x4F - bgt _081D84D0 - adds r0, r4, 0x2 - b _081D84D2 -_081D84D0: - adds r0, r4, 0x1 -_081D84D2: - strh r0, [r3] -_081D84D4: - ldr r1, [r5] - ldr r2, =0x0000200a - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081D84E0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D844C - - thumb_func_start sub_81D84EC -sub_81D84EC: @ 81D84EC - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, =gTasks + 0x8 - adds r5, r4, r6 - bl sub_81D82B0 - bl sub_81D8358 - ldr r1, =0x00001e41 - movs r0, 0x50 - bl SetGpuRegBits - movs r0, 0x80 - lsls r0, 5 - mov r8, r0 - movs r0, 0x52 - mov r1, r8 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - ldr r0, =sRayScene - ldr r0, [r0] - ldr r1, =0x00002008 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r2, =0x0000200a - adds r0, r2 - strh r1, [r0] - strh r1, [r5] - strh r1, [r5, 0x2] - strh r1, [r5, 0x4] - strh r1, [r5, 0x6] - mov r0, r8 - strh r0, [r5, 0x8] - subs r6, 0x8 - adds r4, r6 - ldr r0, =sub_81D857C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D84EC - - thumb_func_start sub_81D857C -sub_81D857C: @ 81D857C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bhi _081D8674 - lsls r0, 2 - ldr r1, =_081D85A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D85A8: - .4byte _081D85BC - .4byte _081D85DC - .4byte _081D861A - .4byte _081D863A - .4byte _081D8656 -_081D85BC: - ldrh r1, [r5, 0x2] - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _081D8634 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r4, [r5, 0x2] - b _081D864E -_081D85DC: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081D8674 - ldrh r2, [r5, 0x2] - movs r3, 0x2 - ldrsh r0, [r5, r3] - cmp r0, 0xA - bne _081D8614 - strh r1, [r5, 0x2] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - ldr r0, =sub_81D844C - bl SetHBlankCallback - movs r0, 0x3 - bl EnableInterrupts - b _081D8674 - .pool -_081D8614: - adds r0, r2, 0x1 - strh r0, [r5, 0x2] - b _081D8674 -_081D861A: - ldrh r1, [r5, 0x2] - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0x50 - bne _081D8634 - movs r0, 0 - strh r0, [r5, 0x2] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - bl sub_81D86CC - b _081D8674 -_081D8634: - adds r0, r1, 0x1 - strh r0, [r5, 0x2] - b _081D8674 -_081D863A: - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - lsls r0, 16 - movs r1, 0xB8 - lsls r1, 17 - cmp r0, r1 - bne _081D8674 - movs r0, 0 - strh r0, [r5, 0x2] -_081D864E: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _081D8674 -_081D8656: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81D8684 - str r1, [r0] -_081D8674: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D857C - - thumb_func_start sub_81D8684 -sub_81D8684: @ 81D8684 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D86B8 - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =Task_SetNextAnim - str r0, [r1] -_081D86B8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8684 - - thumb_func_start sub_81D86CC -sub_81D86CC: @ 81D86CC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, =gUnknown_0862AB14 - movs r1, 0xA0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 4 - adds r5, r6 - lsls r5, 2 - ldr r4, =gSprites + 0x2E - adds r0, r5, r4 - mov r8, r0 - ldr r0, =gUnknown_0862AB2C - movs r2, 0x30 - negs r2, r2 - movs r1, 0xB8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1] - adds r3, r4, 0 - subs r3, 0x2E - subs r4, 0x12 - adds r4, r5, r4 - ldr r0, =sub_81D874C - str r0, [r4] - adds r5, r3 - ldrb r0, [r5, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r5, 0x5] - movs r4, 0 - ldrsh r1, [r1, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x5] - orrs r1, r2 - strb r1, [r0, 0x5] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D86CC - - thumb_func_start sub_81D874C -sub_81D874C: @ 81D874C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - movs r0, 0x4 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _081D8764 - movs r0, 0xC - strh r0, [r4, 0x6] - movs r0, 0x8 - b _081D87C2 -_081D8764: - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _081D8774 - movs r0, 0x9 - strh r0, [r4, 0x6] - movs r0, 0x7 - b _081D87C2 -_081D8774: - movs r0, 0x86 - lsls r0, 1 - cmp r1, r0 - bne _081D8784 - movs r0, 0x8 - strh r0, [r4, 0x6] - movs r0, 0x6 - b _081D87C2 -_081D8784: - movs r0, 0x8C - lsls r0, 1 - cmp r1, r0 - bne _081D8794 - movs r0, 0x7 - strh r0, [r4, 0x6] - movs r0, 0x5 - b _081D87C2 -_081D8794: - movs r0, 0x92 - lsls r0, 1 - cmp r1, r0 - bne _081D87A4 - movs r0, 0x6 - strh r0, [r4, 0x6] - movs r0, 0x4 - b _081D87C2 -_081D87A4: - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bne _081D87B4 - movs r0, 0x5 - strh r0, [r4, 0x6] - movs r0, 0x3 - b _081D87C2 -_081D87B4: - movs r0, 0xA0 - lsls r0, 1 - cmp r1, r0 - bne _081D87C4 - movs r0, 0x4 - strh r0, [r4, 0x6] - movs r0, 0x2 -_081D87C2: - strh r0, [r4, 0x8] -_081D87C4: - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _081D87EE - ldrh r0, [r5, 0x24] - subs r0, 0x1 - strh r0, [r5, 0x24] - ldr r2, =gSprites - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - subs r1, 0x1 - strh r1, [r0, 0x24] -_081D87EE: - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x8 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _081D8818 - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] - ldr r2, =gSprites - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - strh r1, [r0, 0x26] -_081D8818: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D874C - - thumb_func_start sub_81D8828 -sub_81D8828: @ 81D8828 - push {r4,lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AB44 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =sRayScene - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001804 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8828 - - thumb_func_start sub_81D88D0 -sub_81D88D0: @ 81D88D0 - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gRaySceneRayquazaChase_Gfx - movs r4, 0 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gRaySceneChaseStreaks_Gfx - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gRaySceneChaseBg_Gfx - str r4, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D8904: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D8904 - ldr r0, =gRayChaseRayquazaChase2_Tilemap - ldr r4, =sRayScene - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gRayChaseRayquazaChase_Tilemap - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneChaseStreaks_Tilemap - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneChaseBg_Tilemap - ldr r1, [r4] - ldr r2, =0x00001804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneChase_Pal - movs r1, 0 - movs r2, 0x80 - bl LoadCompressedPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D88D0 - - thumb_func_start sub_81D8980 -sub_81D8980: @ 81D8980 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - bl sub_81D8828 - bl sub_81D88D0 - bl sub_81D68C8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - movs r0, 0 - strh r0, [r6] - strh r0, [r6, 0x2] - ldr r0, =sub_81D8AD8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x4] - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81D89E0 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8980 - - thumb_func_start sub_81D89E0 -sub_81D89E0: @ 81D89E0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - bl sub_81D8BB4 - ldrh r1, [r4, 0x6] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081D8A16 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bgt _081D8A16 - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x59 - bgt _081D8A16 - movs r0, 0x67 - bl PlaySE -_081D8A16: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - movs r0, 0 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _081D8A5C - cmp r5, 0x1 - bgt _081D8A34 - cmp r5, 0 - beq _081D8A3E - b _081D8AC6 - .pool -_081D8A34: - cmp r5, 0x2 - beq _081D8A8C - cmp r5, 0x3 - beq _081D8AA8 - b _081D8AC6 -_081D8A3E: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _081D8AA2 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r5, [r4, 0x2] - b _081D8A9A -_081D8A5C: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x7F - bne _081D8AA2 - movs r0, 0 - strh r0, [r4, 0x2] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldr r2, =gTasks - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_81D8B2C - b _081D8AC4 - .pool -_081D8A8C: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0xC - bne _081D8AA2 - movs r0, 0 - strh r0, [r4, 0x2] -_081D8A9A: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D8AC6 -_081D8AA2: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] - b _081D8AC6 -_081D8AA8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81D8BEC -_081D8AC4: - str r1, [r0] -_081D8AC6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D89E0 - - thumb_func_start sub_81D8AD8 -sub_81D8AD8: @ 81D8AD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r5, r1, r0 - ldrh r1, [r5, 0x1E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081D8B1C - bl Random - movs r4, 0x7 - adds r1, r4, 0 - ands r1, r0 - subs r1, 0x4 - lsls r1, 8 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgX - bl Random - ands r4, r0 - subs r4, 0x4 - lsls r4, 8 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl ChangeBgY -_081D8B1C: - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8AD8 - - thumb_func_start sub_81D8B2C -sub_81D8B2C: @ 81D8B2C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D8B70 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0xA - strh r0, [r4, 0x2] - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 - b _081D8BAA - .pool -_081D8B70: - cmp r0, 0x1 - bne _081D8BAC - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r1, 8 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgX - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r1, 8 - movs r0, 0x1 - movs r2, 0x1 - bl ChangeBgY - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xA - negs r1, r1 - cmp r0, r1 - bne _081D8BAC - movs r1, 0x4 - ldrsh r0, [r4, r1] - negs r0, r0 -_081D8BAA: - strh r0, [r4, 0x4] -_081D8BAC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D8B2C - - thumb_func_start sub_81D8BB4 -sub_81D8BB4: @ 81D8BB4 - push {r4,lr} - movs r4, 0x80 - lsls r4, 3 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgX - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgY - movs r4, 0x80 - lsls r4, 4 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgX - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgY - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D8BB4 - thumb_func_start sub_81D8BEC -sub_81D8BEC: @ 81D8BEC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, =gTasks + 0x8 - adds r4, r5, r6 - bl sub_81D8BB4 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081D8C26 - movs r0, 0 - bl SetVBlankCallback - bl sub_81D6904 - ldrb r0, [r4, 0x4] - bl DestroyTask - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =Task_SetNextAnim - str r1, [r0] -_081D8C26: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8BEC thumb_func_start sub_81D8C38 sub_81D8C38: @ 81D8C38 diff --git a/include/graphics.h b/include/graphics.h index c089ec254..37890fb96 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2673,6 +2673,10 @@ extern const u8 gRaySceneGroudonTail_Gfx[]; extern const u8 gRaySceneKyogreRight_Gfx[]; extern const u8 gRaySceneRayquazaHover_Gfx[]; extern const u8 gRaySceneRayquazaFlyIn_Gfx[]; +extern const u8 gRaySceneOvercast_Gfx[]; +extern const u8 gRaySceneOvercast_Tilemap[]; +extern const u8 gRaySceneRayquaza_Gfx[]; +extern const u8 gRaySceneRayquaza_Tilemap[]; extern const u8 gRaySceneSplash_Gfx[]; extern const u8 gRaySceneGroudonLeft_Pal[]; extern const u8 gRaySceneKyogreRight_Pal[]; @@ -2683,5 +2687,18 @@ extern const u8 gRaySceneClouds_Pal[]; extern const u8 gRaySceneClouds2_Tilemap[]; extern const u8 gRaySceneClouds1_Tilemap[]; extern const u8 gRaySceneClouds3_Tilemap[]; +extern const u8 gRaySceneRayquazaLight_Gfx[]; +extern const u8 gRaySceneRayquazaLight_Tilemap[]; +extern const u8 gRaySceneOvercast2_Gfx[]; +extern const u8 gRaySceneOvercast2_Tilemap[]; +extern const u8 gRaySceneOvercast2_Pal[]; +extern const u8 gRaySceneRayquazaChase_Gfx[]; +extern const u8 gRaySceneChaseStreaks_Gfx[]; +extern const u8 gRaySceneChaseBg_Gfx[]; +extern const u8 gRayChaseRayquazaChase2_Tilemap[]; +extern const u8 gRayChaseRayquazaChase_Tilemap[]; +extern const u8 gRaySceneChaseStreaks_Tilemap[]; +extern const u8 gRaySceneChaseBg_Tilemap[]; +extern const u8 gRaySceneChase_Pal[]; #endif //GUARD_GRAPHICS_H diff --git a/include/palette.h b/include/palette.h index cb03699a6..41cef4048 100644 --- a/include/palette.h +++ b/include/palette.h @@ -67,5 +67,6 @@ void BeginFastPaletteFade(u8); void BeginHardwarePaletteFade(u8, u8, u8, u8, u8); void BlendPalettes(u32, u8, u16); void BlendPalettesUnfaded(u32, u8, u16); +void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7); #endif // GUARD_PALETTE_H diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 72aeab94e..44c4d86f4 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -14,6 +14,8 @@ #include "decompress.h" #include "sound.h" #include "constants/songs.h" +#include "constants/rgb.h" +#include "random.h" // this file's functions void sub_81D7134(u8 taskId); @@ -21,6 +23,12 @@ void sub_81D7F4C(u8 taskId); void sub_81D84EC(u8 taskId); void sub_81D8980(u8 taskId); void sub_81D8DB4(u8 taskId); +void sub_81D857C(u8 taskId); +void sub_81D8684(u8 taskId); +void sub_81D89E0(u8 taskId); +void sub_81D8AD8(u8 taskId); +void sub_81D8B2C(u8 taskId); +void sub_81D8BEC(u8 taskId); void Task_EndAfterFadeScreen(u8 taskId); void sub_81D8260(struct Sprite *sprite); @@ -1174,11 +1182,12 @@ const struct BgTemplate gUnknown_0862AD08[] = struct RaySceneStruct { MainCallback callback; - u8 tilemapBuffers[3][0x800]; - u8 field_1804[0x800]; + u8 tilemapBuffers[4][0x800]; u16 field_2004; u8 animId; bool8 onlyOneAnim; + s16 field_2008; + s16 field_200A; }; extern struct RaySceneStruct *sRayScene; @@ -1190,13 +1199,25 @@ void sub_81D750C(void); void sub_81D7438(void); void sub_81D7480(void); void sub_81D74C8(void); +void sub_81D8BB4(void); void sub_81D75B4(u8 taskId, s8 palDelay); void sub_81D6A20(struct Sprite *sprite); void sub_81D6D20(struct Sprite *sprite); +void sub_81D7860(struct Sprite *sprite); +void sub_81D7D14(struct Sprite *sprite); +void sub_81D7700(struct Sprite *sprite); +void sub_81D7A60(struct Sprite *sprite); +void sub_81D874C(struct Sprite *sprite); void sub_81D7228(u8 taskId); void sub_81D736C(u8 taskId); +void sub_81D752C(u8 taskId); +void sub_81D7600(u8 taskId); +void sub_81D7FC0(u8 taskId); +void sub_81D81A4(u8 taskId); +void sub_81D8164(u8 taskId); u8 sub_81D7664(void); u8 sub_81D78BC(void); +u8 sub_81D86CC(void); // code void sub_81D6720(u8 animId, bool8 onlyOneAnim, MainCallback callback) @@ -1470,7 +1491,7 @@ void sub_81D6FE0(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0862A888, 3); + InitBgsFromTemplates(0, gUnknown_0862A888, ARRAY_COUNT(gUnknown_0862A888)); SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); @@ -1534,3 +1555,894 @@ void sub_81D7134(u8 taskId) SetVBlankCallback(sub_81D6FD0); PlaySE(SE_T_OOAME); } + +void sub_81D7228(u8 taskId) +{ + s16 i; + u16 *data = gTasks[taskId].data; + + for (i = 24; i < 92; i++) + { + if (i <= 47) + { + gScanlineEffectRegBuffers[0][i] = data[0] >> 8; + gScanlineEffectRegBuffers[1][i] = data[0] >> 8; + } + else if (i <= 63) + { + gScanlineEffectRegBuffers[0][i] = data[1] >> 8; + gScanlineEffectRegBuffers[1][i] = data[1] >> 8; + } + else if (i <= 75) + { + gScanlineEffectRegBuffers[0][i] = data[2] >> 8; + gScanlineEffectRegBuffers[1][i] = data[2] >> 8; + } + else if (i <= 83) + { + gScanlineEffectRegBuffers[0][i] = data[3] >> 8; + gScanlineEffectRegBuffers[1][i] = data[3] >> 8; + } + else if (i <= 87) + { + gScanlineEffectRegBuffers[0][i] = data[4] >> 8; + gScanlineEffectRegBuffers[1][i] = data[4] >> 8; + } + else + { + gScanlineEffectRegBuffers[0][i] = data[5] >> 8; + gScanlineEffectRegBuffers[1][i] = data[5] >> 8; + } + } + + if (sRayScene->animId == RAY_ANIM_DUO_FIGHT_PRE) + { + data[0] += 448; + data[1] += 384; + data[2] += 320; + data[3] += 256; + data[4] += 192; + data[5] += 128; + } + else + { + data[0] += 768; + data[1] += 640; + data[2] += 512; + data[3] += 384; + data[4] += 256; + data[5] += 128; + } +} + +void sub_81D736C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D750C(); + if (!gPaletteFade.active) + { + s16 counter = data[0]; + if (counter == 32 || counter == 112) + { + sub_81D7438(); + } + else if (counter == 216) + { + sub_81D7480(); + } + else if (counter == 220) + { + sub_81D74C8(); + } + else + { + switch (counter) + { + case 412: + sub_81D75B4(taskId, 2); + return; + case 380: + SetGpuReg(REG_OFFSET_BLDCNT, 0x244); + gTasks[data[1]].func = sub_81D752C; + gTasks[data[1]].data[0] = 0; + gTasks[data[1]].data[2] = data[2]; + gTasks[data[1]].data[3] = data[3]; + ScanlineEffect_Stop(); + break; + } + } + + data[0]++; + } +} + +void sub_81D7438(void) +{ + PlaySE(SE_T_KAMI); + sub_80A2C44(0x7FFF, 0, 0x10, 0, -1, 0, 0); + sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1); +} + +void sub_81D7480(void) +{ + PlaySE(SE_T_KAMI); + sub_80A2C44(0x7FFF, 0, 0x10, 0x10, -1, 0, 0); + sub_80A2C44(0xFFFF0000, 0, 0x10, 0x10, 0, 0, 1); +} + +void sub_81D74C8(void) +{ + sub_80A2C44(0x7FFF, 4, 0x10, 0, -1, 0, 0); + sub_80A2C44(0xFFFF0000, 4, 0x10, 0, 0, 0, 1); +} + +void sub_81D750C(void) +{ + ChangeBgX(2, 0x400, 1); + ChangeBgY(2, 0x800, 2); +} + +void sub_81D752C(u8 taskId) +{ + u16 bgY; + s16 *data = gTasks[taskId].data; + sub_81D7860(&gSprites[data[2]]); + sub_81D7D14(&gSprites[data[3]]); + + bgY = GetBgY(1); + if (GetBgY(1) == 0 || bgY > 0x8000) + ChangeBgY(1, 0x400, 2); + + if (data[0] != 16) + { + data[0]++; + SetGpuReg(REG_OFFSET_BLDALPHA, (data[0] << 8) | (16 - data[0])); + } +} + +void sub_81D75B4(u8 taskId, s8 palDelay) +{ + PlaySE(SE_T_OOAME_E); + BeginNormalPaletteFade(-1, palDelay, 0, 0x10, 0); + gTasks[taskId].func = sub_81D7600; +} + +void sub_81D7600(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D750C(); + if (!gPaletteFade.active) + { + DestroyTask(data[1]); + ChangeBgY(1, 0, 0); + SetVBlankCallback(NULL); + ScanlineEffect_Stop(); + ResetSpriteData(); + FreeAllSpritePalettes(); + data[0] = 0; + gTasks[taskId].func = Task_SetNextAnim; + } +} + +u8 sub_81D7664(void) +{ + u8 spriteId; + s16 *data; + + spriteId = CreateSprite(&gUnknown_0862A8D4, 98, 72, 3); + gSprites[spriteId].callback = sub_81D7700; + data = gSprites[spriteId].data; + data[0] = CreateSprite(&gUnknown_0862A8D4, 66, 104, 3); + data[1] = CreateSprite(&gUnknown_0862A900, 85, 101, 0); + data[2] = CreateSprite(&gUnknown_0862A92C, 119, 114, 1); + StartSpriteAnim(&gSprites[data[0]], 1); + return spriteId; +} + +void sub_81D7700(struct Sprite *sprite) +{ + s16 *data = sprite->data; + data[5]++; + data[5] &= 0xF; + if (!(data[5] & 7) && sprite->pos1.x != 72) + { + sprite->pos1.x--; + gSprites[sprite->data[0]].pos1.x--; + gSprites[data[1]].pos1.x--; + gSprites[data[2]].pos1.x--; + } + + switch (sprite->animCmdIndex) + { + case 0: + gSprites[data[1]].pos2.x = 0; + gSprites[data[1]].pos2.y = 0; + gSprites[data[2]].pos2.x = 0; + gSprites[data[2]].pos2.y = 0; + break; + case 1: + case 3: + gSprites[data[1]].pos2.x = -1; + gSprites[data[1]].pos2.y = 0; + gSprites[data[2]].pos2.x = -1; + gSprites[data[2]].pos2.y = 0; + break; + case 2: + gSprites[data[1]].pos2.x = -1; + gSprites[data[1]].pos2.y = 1; + gSprites[data[2]].pos2.x = -2; + gSprites[data[2]].pos2.y = 1; + break; + } +} + +void sub_81D7860(struct Sprite *sprite) +{ + s16 *data = sprite->data; + if (sprite->pos1.y <= 160) + { + sprite->pos1.y += 8; + gSprites[sprite->data[0]].pos1.y += 8; + gSprites[data[1]].pos1.y += 8; + gSprites[data[2]].pos1.y += 8; + } +} + +u8 sub_81D78BC(void) +{ + u8 spriteId; + s16 *data; + + spriteId = CreateSprite(&gUnknown_0862A9E4, 126, 96, 1); + gSprites[spriteId].callback = sub_81D7A60; + data = gSprites[spriteId].data; + + data[0] = CreateSprite(&gUnknown_0862A9E4, 158, 96, 1) << 8; + data[0] |= CreateSprite(&gUnknown_0862A9E4, 126, 112, 1); + data[1] = CreateSprite(&gUnknown_0862A9E4, 158, 112, 1) << 8; + data[1] |= CreateSprite(&gUnknown_0862A9E4, 126, 128, 1); + data[2] = CreateSprite(&gUnknown_0862A9E4, 158, 128, 1) << 8; + data[2] |= CreateSprite(&gUnknown_0862A9E4, 94, 128, 2); + data[3] = CreateSprite(&gUnknown_0862A9E4, 126, 128, 2) << 8; + data[3] |= CreateSprite(&gUnknown_0862A9E4, 174, 128, 0); + data[4] = CreateSprite(&gUnknown_0862AA1C, 198, 132, 0) << 8; + data[4] |= CreateSprite(&gUnknown_0862AA3C, 190, 120, 1); + + StartSpriteAnim(&gSprites[data[0] >> 8], 1); + StartSpriteAnim(&gSprites[data[0] & 0xFF], 2); + StartSpriteAnim(&gSprites[data[1] >> 8], 3); + StartSpriteAnim(&gSprites[data[1] & 0xFF], 4); + StartSpriteAnim(&gSprites[data[2] >> 8], 5); + StartSpriteAnim(&gSprites[data[2] & 0xFF], 6); + StartSpriteAnim(&gSprites[data[3] >> 8], 7); + StartSpriteAnim(&gSprites[data[3] & 0xFF], 8); + + return spriteId; +} + +void sub_81D7A60(struct Sprite *sprite) +{ + s16 *data = sprite->data; + data[5]++; + data[5] &= 0xF; + if (!(data[5] & 7) && sprite->pos1.x != 152) + { + sprite->pos1.x++; + gSprites[sprite->data[0] >> 8].pos1.x++; + gSprites[sprite->data[0] & 0xFF].pos1.x++; + gSprites[data[1] >> 8].pos1.x++; + gSprites[data[1] & 0xFF].pos1.x++; + gSprites[data[2] >> 8].pos1.x++; + gSprites[data[2] & 0xFF].pos1.x++; + gSprites[data[3] >> 8].pos1.x++; + gSprites[data[3] & 0xFF].pos1.x++; + gSprites[data[4] >> 8].pos1.x++; + gSprites[data[4] & 0xFF].pos1.x++; + } + + switch (gSprites[data[2] & 0xFF].animCmdIndex) + { + case 0: + sprite->pos2.y = 0; + gSprites[data[0] >> 8].pos2.y = 0; + gSprites[data[0] & 0xFF].pos2.y = 0; + gSprites[data[1] >> 8].pos2.y = 0; + gSprites[data[1] & 0xFF].pos2.y = 0; + gSprites[data[2] >> 8].pos2.y = 0; + gSprites[data[2] & 0xFF].pos2.y = 0; + gSprites[data[3] >> 8].pos2.y = 0; + gSprites[data[3] & 0xFF].pos2.y = 0; + gSprites[data[4] >> 8].pos2.y = 0; + gSprites[data[4] & 0xFF].pos2.y = 0; + break; + case 1: + case 3: + sprite->pos2.y = 1; + gSprites[data[0] >> 8].pos2.y = 1; + gSprites[data[0] & 0xFF].pos2.y = 1; + gSprites[data[1] >> 8].pos2.y = 1; + gSprites[data[1] & 0xFF].pos2.y = 1; + gSprites[data[2] >> 8].pos2.y = 1; + gSprites[data[2] & 0xFF].pos2.y = 1; + gSprites[data[3] >> 8].pos2.y = 1; + gSprites[data[3] & 0xFF].pos2.y = 1; + gSprites[data[4] >> 8].pos2.y = 1; + gSprites[data[4] & 0xFF].pos2.y = 1; + break; + case 2: + sprite->pos2.y = 2; + gSprites[data[0] >> 8].pos2.y = 2; + gSprites[data[0] & 0xFF].pos2.y = 2; + gSprites[data[1] >> 8].pos2.y = 2; + gSprites[data[1] & 0xFF].pos2.y = 2; + gSprites[data[2] >> 8].pos2.y = 2; + gSprites[data[4] & 0xFF].pos2.y = 2; + break; + } +} + +void sub_81D7D14(struct Sprite *sprite) +{ + s16 *data = sprite->data; + if (sprite->pos1.y <= 160) + { + sprite->pos1.y += 8; + gSprites[sprite->data[0] >> 8].pos1.y += 8; + gSprites[sprite->data[0] & 0xFF].pos1.y += 8; + gSprites[data[1] >> 8].pos1.y += 8; + gSprites[data[1] & 0xFF].pos1.y += 8; + gSprites[data[2] >> 8].pos1.y += 8; + gSprites[data[2] & 0xFF].pos1.y += 8; + gSprites[data[3] >> 8].pos1.y += 8; + gSprites[data[3] & 0xFF].pos1.y += 8; + gSprites[data[4] >> 8].pos1.y += 8; + gSprites[data[4] & 0xFF].pos1.y += 8; + } +} + +void sub_81D7E10(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, gUnknown_0862AA54, ARRAY_COUNT(gUnknown_0862AA54)); + SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); + SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + ShowBg(2); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +void sub_81D7E9C(void) +{ + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(0, gRaySceneClouds_Gfx, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(1, gRaySceneOvercast_Gfx, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(2, gRaySceneRayquaza_Gfx, 0, 0, 0); + while (free_temp_tile_data_buffers_if_possible()); + + LZDecompressWram(gRaySceneClouds2_Tilemap, sRayScene->tilemapBuffers[0]); + LZDecompressWram(gRaySceneOvercast_Tilemap, sRayScene->tilemapBuffers[1]); + LZDecompressWram(gRaySceneRayquaza_Tilemap, sRayScene->tilemapBuffers[2]); + LoadCompressedPalette(gRaySceneRayquaza_Pal, 0, 0x40); + LoadCompressedObjectPic(&gUnknown_0862AA90); + LoadCompressedObjectPalette(&gUnknown_0862AA98); +} + +void sub_81D7F4C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + PlayNewMapMusic(MUS_REKKUU_KOURIN); + sub_81D7E10(); + sub_81D7E9C(); + SetGpuReg(REG_OFFSET_BLDCNT, 0x250); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x808); + BlendPalettes(-1, 0x10, 0); + SetVBlankCallback(sub_81D67EC); + CreateTask(sub_81D81A4, 0); + data[0] = 0; + data[1] = 0; + gTasks[taskId].func = sub_81D7FC0; +} + +void sub_81D7FC0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + if (data[1] == 8) + { + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + data[2] = 0; + data[3] = 30; + data[4] = 0; + data[5] = 7; + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + } + break; + case 1: + data[2] += data[3]; + data[4] += data[5]; + if (data[3] > 3) + data[3] -= 3; + if (data[5] != 0) + data[5]--; + if (data[2] > 255) + { + data[2] = 256; + data[3] = 0; + data[6] = 12; + data[7] = -1; + data[1] = 0; + data[0]++; + } + SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32, data[2], data[2], 0); + break; + case 2: + data[1]++; + SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32 + (data[6] >> 2), data[2], data[2], 0); + data[6] += data[7]; + if (data[6] == 12 || data[6] == -12) + { + data[7] *= -1; + if (data[1] > 295) + { + data[0]++; + BeginNormalPaletteFade(-1, 6, 0, 0x10, 0); + } + } + break; + case 3: + data[2] += 16; + SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32, data[2], data[2], 0); + sub_81D8164(taskId); + break; + } +} + +void sub_81D8164(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetVBlankCallback(NULL); + ResetSpriteData(); + FreeAllSpritePalettes(); + gTasks[taskId].func = Task_SetNextAnim; + } +} + +void sub_81D81A4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if ((data[1] & 3) == 0) + { + u8 spriteId = CreateSprite(&gUnknown_0862AAA0, + (gUnknown_0862AAB8[data[0]][0] * 4) + 120, + (gUnknown_0862AAB8[data[0]][1] * 4) + 80, + 0); + gSprites[spriteId].data[0] = (s8)(data[0]); + gSprites[spriteId].oam.objMode = 1; + gSprites[spriteId].oam.affineMode = 3; + gSprites[spriteId].oam.priority = 2; + InitSpriteAffineAnim(&gSprites[spriteId]); + if (data[0] == 9) + { + DestroyTask(taskId); + return; + } + else + { + data[0]++; + } + } + + data[1]++; +} + +void sub_81D8260(struct Sprite *sprite) +{ + if (sprite->data[1] == 0) + { + sprite->pos2.x = 0; + sprite->pos2.y = 0; + } + else + { + sprite->pos2.x += gUnknown_0862AAB8[sprite->data[0]][0]; + sprite->pos2.y += gUnknown_0862AAB8[sprite->data[0]][1]; + } + + sprite->data[1]++; + sprite->data[1] &= 0xF; +} + +void sub_81D82B0(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0862AACC, ARRAY_COUNT(gUnknown_0862AACC)); + SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); + SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); + SetBgTilemapBuffer(3, sRayScene->tilemapBuffers[3]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + schedule_bg_copy_tilemap_to_vram(3); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +void sub_81D8358(void) +{ + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(0, gRaySceneRayquazaLight_Gfx, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(1, gRaySceneOvercast2_Gfx, 0, 0, 0); + while (free_temp_tile_data_buffers_if_possible()); + + LZDecompressWram(gRaySceneRayquazaLight_Tilemap, sRayScene->tilemapBuffers[0]); + LZDecompressWram(gRaySceneOvercast2_Tilemap, sRayScene->tilemapBuffers[3]); + CpuFastFill16(0, sRayScene->tilemapBuffers[2], 0x800); + CpuFastCopy(sRayScene->tilemapBuffers[3], sRayScene->tilemapBuffers[1], 0x800); + CpuFastFill16(0, &sRayScene->tilemapBuffers[1][0x100], 0x340); + + LoadCompressedPalette(gRaySceneOvercast2_Pal, 0, 0x40); + gPlttBufferUnfaded[0] = RGB_WHITE; + gPlttBufferFaded[0] = RGB_WHITE; + LoadCompressedObjectPic(&gUnknown_0862AAFC); + LoadCompressedObjectPic(&gUnknown_0862AB04); + LoadCompressedObjectPalette(&gUnknown_0862AB0C); +} + +void sub_81D844C(void) +{ + u16 VCOUNT = GetGpuReg(REG_OFFSET_VCOUNT); + if (VCOUNT >= 24 && VCOUNT <= 135 && VCOUNT - 24 <= sRayScene->field_2008) + REG_BLDALPHA = 0xD08; + else + REG_BLDALPHA = 0x1000; + + if (VCOUNT == 0) + { + if (sRayScene->field_2008 <= 0x1FFF) + { + if (sRayScene->field_2008 <= 39) + sRayScene->field_2008 += 4; + else if (sRayScene->field_2008 <= 79) + sRayScene->field_2008 += 2; + else + sRayScene->field_2008 += 1; + } + + sRayScene->field_200A++; + } +} + +void sub_81D84EC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D82B0(); + sub_81D8358(); + SetGpuRegBits(REG_OFFSET_BLDCNT, 0x1E41); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000); + BlendPalettes(-1, 0x10, 0); + SetVBlankCallback(sub_81D67EC); + sRayScene->field_2008 = 0; + sRayScene->field_200A = 0; + data[0] = 0; + data[1] = 0; + data[2] = 0; + data[3] = 0; + data[4] = 0x1000; + gTasks[taskId].func = sub_81D857C; +} + +void sub_81D857C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + if (data[1] == 8) + { + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + } + break; + case 1: + if (!gPaletteFade.active) + { + if (data[1] == 10) + { + data[1] = 0; + data[0]++; + SetHBlankCallback(sub_81D844C); + EnableInterrupts(INTR_FLAG_HBLANK | INTR_FLAG_VBLANK); + } + else + { + data[1]++; + } + } + break; + case 2: + if (data[1] == 80) + { + data[1] = 0; + data[0]++; + sub_81D86CC(); + } + else + { + data[1]++; + } + break; + case 3: + if (++data[1] == 368) + { + data[1] = 0; + data[0]++; + } + break; + case 4: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gTasks[taskId].func = sub_81D8684; + break; + } +} + +void sub_81D8684(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + ResetSpriteData(); + FreeAllSpritePalettes(); + gTasks[taskId].func = Task_SetNextAnim; + } +} + +u8 sub_81D86CC(void) +{ + u8 spriteId = CreateSprite(&gUnknown_0862AB14, 160, 0, 0); + s16 *data = gSprites[spriteId].data; + data[0] = CreateSprite(&gUnknown_0862AB2C, 184, -48, 0); + gSprites[spriteId].callback = sub_81D874C; + gSprites[spriteId].oam.priority = 3; + gSprites[data[0]].oam.priority = 3; + return spriteId; +} + +void sub_81D874C(struct Sprite *sprite) +{ + s16 *data = sprite->data; + s16 counter = data[2]; + if (counter == 0) + { + data[3] = 12; + data[4] = 8; + } + else if (counter == 256) + { + data[3] = 9; + data[4] = 7; + } + else if (counter == 268) + { + data[3] = 8; + data[4] = 6; + } + else if (counter == 280) + { + data[3] = 7; + data[4] = 5; + } + else if (counter == 292) + { + data[3] = 6; + data[4] = 4; + } + else if (counter == 304) + { + data[3] = 5; + data[4] = 3; + } + else if (counter == 320) + { + data[3] = 4; + data[4] = 2; + } + + if (data[2] % data[3] == 0) + { + sprite->pos2.x--; + gSprites[data[0]].pos2.x--; + } + if (data[2] % data[4] == 0) + { + sprite->pos2.y++; + gSprites[data[0]].pos2.y++; + } + + data[2]++; +} + +void sub_81D8828(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_0862AB44, ARRAY_COUNT(gUnknown_0862AB44)); + SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); + SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); + SetBgTilemapBuffer(3, sRayScene->tilemapBuffers[3]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + schedule_bg_copy_tilemap_to_vram(3); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_WIN0_ON); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +void sub_81D88D0(void) +{ + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(1, gRaySceneRayquazaChase_Gfx, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(2, gRaySceneChaseStreaks_Gfx, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(3, gRaySceneChaseBg_Gfx, 0, 0, 0); + while (free_temp_tile_data_buffers_if_possible()); + + LZDecompressWram(gRayChaseRayquazaChase2_Tilemap, sRayScene->tilemapBuffers[0]); + LZDecompressWram(gRayChaseRayquazaChase_Tilemap, sRayScene->tilemapBuffers[1]); + LZDecompressWram(gRaySceneChaseStreaks_Tilemap, sRayScene->tilemapBuffers[2]); + LZDecompressWram(gRaySceneChaseBg_Tilemap, sRayScene->tilemapBuffers[3]); + LoadCompressedPalette(gRaySceneChase_Pal, 0, 0x80); +} + +void sub_81D8980(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D8828(); + sub_81D88D0(); + sub_81D68C8(); + BlendPalettes(-1, 0x10, 0); + SetVBlankCallback(sub_81D67EC); + data[0] = 0; + data[1] = 0; + data[2] = CreateTask(sub_81D8AD8, 0); + gTasks[taskId].func = sub_81D89E0; +} + +void sub_81D89E0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D8BB4(); + if ((data[3] & 7) == 0 && data[0] <= 1 && data[1] <= 89) + PlaySE(SE_OP_BASYU); + + data[3]++; + switch (data[0]) + { + case 0: + if (data[1] == 8) + { + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + } + break; + case 1: + if (data[1] == 127) + { + data[1] = 0; + data[0]++; + gTasks[data[2]].func = sub_81D8B2C; + } + else + { + data[1]++; + } + break; + case 2: + if (data[1] == 12) + { + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + } + break; + case 3: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gTasks[taskId].func = sub_81D8BEC; + break; + } +} + +void sub_81D8AD8(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if ((data[15] & 3) == 0) + { + ChangeBgX(1, (Random() % 8 - 4) << 8, 0); + ChangeBgY(1, (Random() % 8 - 4) << 8, 0); + } + + data[15]++; +} + +void sub_81D8B2C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (data[0] == 0) + { + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + data[0]++; + data[1] = 10; + data[2] = -1; + } + else if (data[0] == 1) + { + ChangeBgX(1, data[1] << 8, 2); + ChangeBgY(1, data[1] << 8, 1); + data[1] += data[2]; + if (data[1] == -10) + data[2] *= -1; + } +} + +void sub_81D8BB4(void) +{ + ChangeBgX(2, 0x400, 2); + ChangeBgY(2, 0x400, 1); + ChangeBgX(0, 0x800, 2); + ChangeBgY(0, 0x800, 1); +} + +void sub_81D8BEC(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D8BB4(); + if (!gPaletteFade.active) + { + SetVBlankCallback(NULL); + sub_81D6904(); + DestroyTask(data[2]); + gTasks[taskId].func = Task_SetNextAnim; + } +} -- cgit v1.2.3 From b6974978359be5b0605523f761990bb89919e193 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 1 Feb 2018 14:47:41 +0100 Subject: ray scene is decompiled --- asm/field_specials.s | 4 +- asm/rayquaza_scene.s | 1629 ---------------------------------------------- include/graphics.h | 6 + include/rayquaza_scene.h | 2 + ld_script.txt | 1 - src/rayquaza_scene.c | 920 +++++++++++++++++++------- sym_ewram.txt | 2 +- 7 files changed, 713 insertions(+), 1851 deletions(-) delete mode 100644 asm/rayquaza_scene.s diff --git a/asm/field_specials.s b/asm/field_specials.s index 200ab1fdb..5dd779a47 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -7156,14 +7156,14 @@ sub_813B7D8: @ 813B7D8 ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music movs r0, 0 movs r1, 0x1 - bl sub_81D6720 + bl DoRayquazaScene b _0813B802 .pool _0813B7F8: ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music movs r0, 0x1 movs r1, 0 - bl sub_81D6720 + bl DoRayquazaScene _0813B802: pop {r0} bx r0 diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s deleted file mode 100644 index a7614239a..000000000 --- a/asm/rayquaza_scene.s +++ /dev/null @@ -1,1629 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - - thumb_func_start sub_81D8C38 -sub_81D8C38: @ 81D8C38 - push {r4,lr} - bl ResetVramOamAndBgCntRegs - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0862AD08 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =sRayScene - ldr r1, [r4] - adds r1, 0x4 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00000804 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001004 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8C38 - - thumb_func_start sub_81D8CC4 -sub_81D8CC4: @ 81D8CC4 - push {r4,lr} - sub sp, 0x4 - bl reset_temp_tile_data_buffers - ldr r1, =gRaySceneHushRing_Gfx - movs r4, 0 - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gRaySceneHushBg_Gfx - str r4, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081D8CEA: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D8CEA - ldr r0, =gRaySceneHushRing_Tilemap - ldr r4, =sRayScene - ldr r1, [r4] - ldr r2, =0x00000804 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneHushBg_Tilemap - ldr r1, [r4] - adds r1, 0x4 - bl LZDecompressWram - ldr r0, =gRaySceneHushRing_Map - ldr r1, [r4] - ldr r2, =0x00001004 - adds r1, r2 - bl LZDecompressWram - ldr r0, =gRaySceneHushBg_Pal - movs r1, 0 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, =gUnknown_0862AC28 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC30 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC38 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC40 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC48 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC50 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0862AC58 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862AC60 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862AC68 - bl LoadCompressedObjectPalette - ldr r0, =gUnknown_0862AC70 - bl LoadCompressedObjectPalette - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8CC4 - - thumb_func_start sub_81D8DB4 -sub_81D8DB4: @ 81D8DB4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r6, r4, r5 - bl sub_81D8C38 - bl sub_81D8CC4 - bl sub_81D68C8 - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl ClearGpuRegBits - ldr r1, =0x00000241 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000e09 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, =sub_81D67EC - bl SetVBlankCallback - movs r0, 0 - strh r0, [r6] - strh r0, [r6, 0x2] - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_81D8E80 - str r0, [r4] - ldr r0, =sub_81D8FB0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x4] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0 - strh r2, [r0, 0x8] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0xA] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0xC] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r2, 0x1 - strh r2, [r0, 0xE] - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - strh r2, [r0, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8DB4 - - thumb_func_start sub_81D8E80 -sub_81D8E80: @ 81D8E80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r8, r0 - adds r4, r7, r0 - movs r1, 0 - ldrsh r5, [r4, r1] - cmp r5, 0x1 - beq _081D8EDE - cmp r5, 0x1 - bgt _081D8EB0 - cmp r5, 0 - beq _081D8EBA - b _081D8FA0 - .pool -_081D8EB0: - cmp r5, 0x2 - beq _081D8F1E - cmp r5, 0x3 - beq _081D8F84 - b _081D8FA0 -_081D8EBA: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _081D8F18 - adds r0, r6, 0 - bl sub_81D90A8 - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - strh r5, [r4, 0x2] - b _081D8F30 -_081D8EDE: - ldr r2, =gSprites - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =sub_81D97E0 - cmp r1, r0 - bne _081D8FA0 - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x40 - bne _081D8F18 - adds r0, r6, 0 - bl sub_81D94D4 - adds r0, r6, 0 - bl sub_81D93D8 - b _081D8F2C - .pool -_081D8F18: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] - b _081D8FA0 -_081D8F1E: - ldrh r2, [r4, 0x2] - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r0, 0xE0 - lsls r0, 1 - cmp r1, r0 - bne _081D8F38 -_081D8F2C: - movs r0, 0 - strh r0, [r4, 0x2] -_081D8F30: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D8FA0 -_081D8F38: - adds r0, r2, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r1, 0x90 - bl __modsi3 - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - bne _081D8FA0 - ldr r0, =0x0000fffe - ldr r1, =0x0000ffff - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - ldr r0, =0xffff0000 - str r4, [sp] - str r4, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80A2C44 - b _081D8FA0 - .pool -_081D8F84: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =sub_81D9034 - str r1, [r0] -_081D8FA0: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8E80 - - thumb_func_start sub_81D8FB0 -sub_81D8FB0: @ 81D8FB0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - ldrh r1, [r4] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081D9024 - ldrh r1, [r4, 0x2] - adds r1, 0xE - lsls r1, 8 - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - ands r1, r0 - ldrh r0, [r4, 0x4] - adds r0, 0x9 - movs r2, 0xF - ands r0, r2 - orrs r1, r0 - movs r0, 0x52 - bl SetGpuReg - ldrh r1, [r4, 0x2] - ldrh r0, [r4, 0x6] - subs r1, r0 - strh r1, [r4, 0x2] - ldrh r0, [r4, 0x8] - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r4, 0x4] - lsls r1, 16 - asrs r1, 16 - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - beq _081D9008 - cmp r1, 0 - bne _081D9010 -_081D9008: - movs r1, 0x6 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x6] -_081D9010: - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - beq _081D901C - cmp r0, 0 - bne _081D9024 -_081D901C: - movs r1, 0x8 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x8] -_081D9024: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D8FB0 - - thumb_func_start sub_81D9034 -sub_81D9034: @ 81D9034 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 3 - ldr r7, =gTasks + 0x8 - adds r4, r6, r7 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _081D90A0 - bl StopMapMusic - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D9078 - movs r0, 0 - bl SetVBlankCallback - bl sub_81D6904 - bl ResetSpriteData - bl FreeAllSpritePalettes - ldrb r0, [r4, 0x4] - bl DestroyTask -_081D9078: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _081D909C - strh r5, [r4, 0x2] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, =Task_SetNextAnim - str r1, [r0] - b _081D90A0 - .pool -_081D909C: - adds r0, r1, 0x1 - strh r0, [r4, 0x2] -_081D90A0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9034 - - thumb_func_start sub_81D90A8 -sub_81D90A8: @ 81D90A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldr r0, =gUnknown_0862AC78 - movs r1, 0x40 - movs r2, 0x78 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x6] - movs r0, 0x6 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites + 0x2E - mov r10, r1 - adds r7, r0, r1 - ldr r0, =gUnknown_0862AC90 - movs r1, 0x10 - movs r2, 0x82 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r2, 0x2E - negs r2, r2 - add r2, r10 - mov r8, r2 - movs r1, 0x6 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - movs r6, 0xD - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - movs r2, 0x4 - mov r9, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r5, =gUnknown_0862ACA8 - adds r0, r5, 0 - movs r1, 0xA0 - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r7, r0, r1 - adds r0, r5, 0 - movs r1, 0xC0 - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - adds r0, r5, 0 - movs r1, 0xE0 - movs r2, 0x80 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2] - movs r2, 0x8 - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0x2 - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0 - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x1 - bl StartSpriteAnim - movs r2, 0x2 - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - movs r1, 0x2 - bl StartSpriteAnim - ldr r0, =gUnknown_0862ACC0 - movs r2, 0x41 - negs r2, r2 - movs r1, 0x78 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r7, r0, r1 - ldr r0, =gUnknown_0862ACD8 - movs r2, 0x71 - negs r2, r2 - movs r1, 0x78 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x5] - adds r0, r6, 0 - ands r0, r2 - mov r2, r9 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0 - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x5] - ands r6, r1 - orrs r6, r2 - strb r6, [r0, 0x5] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D90A8 - - thumb_func_start sub_81D9274 -sub_81D9274: @ 81D9274 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, =gTasks + 0x8 - adds r2, r0 - ldr r3, =gSprites - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1C - adds r1, r3 - mov r8, r1 - add r0, r8 - ldr r6, =pokemon_alive_on_battle_side - str r6, [r0] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r4, 0 - strh r4, [r0, 0x36] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x38] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r5, 0x4 - strh r5, [r0, 0x3A] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x3C] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - str r6, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x36] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x38] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x3A] - movs r0, 0x8 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x3C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9274 - - thumb_func_start pokemon_alive_on_battle_side -pokemon_alive_on_battle_side: @ 81D9338 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x36] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081D93CC - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D9370 - ldrh r0, [r4, 0x20] - ldrh r3, [r4, 0x3A] - subs r0, r3 - strh r0, [r4, 0x20] - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, r3 - b _081D939E - .pool -_081D9370: - ldrh r2, [r4, 0x3A] - ldrh r1, [r4, 0x20] - adds r0, r2, r1 - strh r0, [r4, 0x20] - ldr r3, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x20] - adds r2, r1 - strh r2, [r0, 0x20] - movs r2, 0x30 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x3A] - ldrh r2, [r0, 0x20] - adds r1, r2 -_081D939E: - strh r1, [r0, 0x20] - ldrh r1, [r4, 0x38] - adds r1, 0x1 - movs r2, 0 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x3A] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3 - bne _081D93CC - strh r2, [r4, 0x36] - strh r2, [r4, 0x38] - strh r2, [r4, 0x3A] - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] - b _081D93D2 - .pool -_081D93CC: - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] -_081D93D2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end pokemon_alive_on_battle_side - - thumb_func_start sub_81D93D8 -sub_81D93D8: @ 81D93D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, =gTasks + 0x8 - adds r2, r0 - ldr r3, =gSprites - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_81D9420 - str r1, [r0] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - bl StartSpriteAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D93D8 - - thumb_func_start sub_81D9420 -sub_81D9420: @ 81D9420 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - beq _081D9488 - cmp r0, 0x1 - bgt _081D9436 - cmp r0, 0 - beq _081D9440 - b _081D94C4 -_081D9436: - cmp r0, 0x2 - beq _081D9440 - cmp r0, 0x3 - beq _081D9488 - b _081D94C4 -_081D9440: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 26 - movs r1, 0xC - bl __umodsi3 - lsls r0, 24 - ldr r2, =gSprites - cmp r0, 0 - bne _081D9470 - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x2 - strh r1, [r0, 0x20] -_081D9470: - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x26] - b _081D94C4 - .pool -_081D9488: - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =0x0000fffe - strh r1, [r0, 0x26] - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - lsls r1, 26 - lsrs r1, 26 - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081D94C4 - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] -_081D94C4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9420 - - thumb_func_start sub_81D94D4 -sub_81D94D4: @ 81D94D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r1, r0 - movs r0, 0x8 - ldrsh r1, [r1, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r2, =gSprites + 0x2E - adds r4, r0, r2 - subs r2, 0x12 - adds r0, r2 - ldr r3, =sub_81D9528 - str r3, [r0] - movs r0, 0 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r3, [r0] - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r3, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D94D4 - - thumb_func_start sub_81D9528 -sub_81D9528: @ 81D9528 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - ldrh r1, [r7, 0x36] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081D9550 - ldrh r1, [r7, 0x24] - movs r2, 0x24 - ldrsh r0, [r7, r2] - cmp r0, 0x1 - bne _081D954C - ldr r0, =0x0000ffff - b _081D954E - .pool -_081D954C: - movs r0, 0x1 -_081D954E: - strh r0, [r7, 0x24] -_081D9550: - movs r1, 0x38 - ldrsh r0, [r7, r1] - cmp r0, 0x80 - bne _081D95CE - ldr r2, =gUnknown_0862ACF0 - mov r8, r2 - mov r0, r8 - movs r1, 0x98 - movs r2, 0x84 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3C] - ldr r5, =gSprites - movs r1, 0x3C - ldrsh r0, [r7, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r6, 0x4 - orrs r0, r6 - strb r0, [r1, 0x5] - mov r0, r8 - movs r1, 0xE0 - movs r2, 0x84 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3C] - movs r2, 0x3C - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x5] - ands r4, r1 - orrs r4, r6 - strb r4, [r0, 0x5] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r7, 0x38] - adds r0, 0x1 - strh r0, [r7, 0x38] -_081D95CE: - ldrh r1, [r7, 0x38] - movs r2, 0x38 - ldrsh r0, [r7, r2] - cmp r0, 0x7F - ble _081D95F8 - movs r1, 0x26 - ldrsh r0, [r7, r1] - cmp r0, 0x20 - beq _081D95FC - ldrh r0, [r7, 0x3A] - adds r0, 0x1 - strh r0, [r7, 0x3A] - lsls r0, 16 - asrs r0, 20 - strh r0, [r7, 0x26] - b _081D95FC - .pool -_081D95F8: - adds r0, r1, 0x1 - strh r0, [r7, 0x38] -_081D95FC: - ldrh r0, [r7, 0x36] - movs r1, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081D960C - movs r0, 0xA5 - bl PlaySE -_081D960C: - ldrh r0, [r7, 0x36] - adds r0, 0x1 - strh r0, [r7, 0x36] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D9528 - - thumb_func_start sub_81D961C -sub_81D961C: @ 81D961C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r1, [r4, r0] - cmp r1, 0x40 - bgt _081D968C - ldrh r0, [r4, 0x26] - adds r0, 0x2 - strh r0, [r4, 0x26] - ldr r5, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - strh r1, [r0, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _081D964C - b _081D979E -_081D964C: - movs r3, 0x30 - negs r3, r3 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81D9868 - movs r2, 0x5 - strh r2, [r4, 0x36] - ldr r0, =0x0000ffff - strh r0, [r4, 0x38] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x3 - strh r1, [r0, 0x36] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - b _081D979E - .pool -_081D968C: - cmp r1, 0x6F - bgt _081D96BE - adds r0, r4, 0 - bl sub_81D97E0 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081D96A4 - movs r0, 0x68 - bl PlaySE -_081D96A4: - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0x3 - negs r0, r0 - cmp r1, r0 - bne _081D979E - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x30 - movs r3, 0x10 - bl sub_81D9868 - b _081D979E -_081D96BE: - cmp r1, 0x70 - bne _081D96EC - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x7 - strh r1, [r0, 0x36] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x38] - b _081D96F2 - .pool -_081D96EC: - ldr r0, =0x00000147 - cmp r1, r0 - bgt _081D9700 -_081D96F2: - adds r0, r4, 0 - bl sub_81D97E0 - b _081D979E - .pool -_081D9700: - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _081D974C - adds r0, r4, 0 - bl sub_81D97E0 - adds r0, r4, 0 - movs r1, 0x3 - movs r2, 0x30 - movs r3, 0x10 - bl sub_81D9868 - movs r3, 0x1 - strh r3, [r4, 0x24] - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - movs r0, 0xCB - lsls r0, 1 - movs r1, 0 - bl PlayCry1 - ldr r0, =sub_81D98B4 - movs r1, 0 - bl CreateTask - b _081D979E - .pool -_081D974C: - movs r0, 0xB0 - lsls r0, 1 - cmp r1, r0 - beq _081D9790 - adds r0, 0x18 - cmp r1, r0 - bne _081D979E - movs r3, 0 - strh r3, [r4, 0x24] - ldr r2, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - adds r0, r4, 0 - bl sub_81D97E0 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x30 - movs r3, 0x10 - bl sub_81D9868 - ldr r0, =sub_81D97E0 - str r0, [r4, 0x1C] - b _081D97D2 - .pool -_081D9790: - ldr r0, =sub_81D8E80 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl sub_81D9274 -_081D979E: - ldrh r2, [r4, 0x3C] - movs r0, 0x3C - ldrsh r1, [r4, r0] - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - ble _081D97CC - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _081D97CC - movs r1, 0x24 - ldrsh r2, [r4, r1] - negs r2, r2 - strh r2, [r4, 0x24] - ldr r3, =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] -_081D97CC: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_081D97D2: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D961C - - thumb_func_start sub_81D97E0 -sub_81D97E0: @ 81D97E0 - push {r4-r7,lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r4, r0, r5 - ldrh r1, [r3, 0x3A] - ldrh r0, [r4, 0x36] - ands r0, r1 - cmp r0, 0 - bne _081D985C - ldrh r2, [r3, 0x36] - ldrh r1, [r3, 0x26] - adds r0, r2, r1 - strh r0, [r3, 0x26] - movs r7, 0x2E - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x26] - adds r2, r1 - strh r2, [r0, 0x26] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x36] - adds r0, r2 - strh r0, [r3, 0x36] - lsls r0, 16 - asrs r5, r0, 16 - ldrh r6, [r4, 0x38] - movs r7, 0x38 - ldrsh r2, [r4, r7] - cmp r5, r2 - bge _081D9836 - movs r0, 0x36 - ldrsh r1, [r3, r0] - adds r0, r2, 0 - cmn r1, r0 - bgt _081D985C -_081D9836: - cmp r5, r2 - ble _081D9844 - strh r6, [r3, 0x36] - b _081D9854 - .pool -_081D9844: - movs r0, 0x36 - ldrsh r1, [r3, r0] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmn r1, r0 - bge _081D9854 - negs r0, r6 - strh r0, [r3, 0x36] -_081D9854: - movs r7, 0x38 - ldrsh r0, [r3, r7] - negs r0, r0 - strh r0, [r3, 0x38] -_081D985C: - ldrh r0, [r3, 0x3A] - adds r0, 0x1 - strh r0, [r3, 0x3A] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D97E0 - - thumb_func_start sub_81D9868 -sub_81D9868: @ 81D9868 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0x2E - ldrsh r1, [r0, r4] - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - ldr r1, =gSprites - adds r4, r1 - lsls r2, 16 - asrs r2, 16 - ldrh r1, [r0, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - lsls r3, 16 - asrs r3, 16 - ldrh r1, [r0, 0x22] - adds r3, r1 - strh r3, [r4, 0x22] - ldrh r1, [r0, 0x24] - strh r1, [r4, 0x24] - ldrh r1, [r0, 0x26] - strh r1, [r4, 0x26] - adds r1, r5, 0 - bl StartSpriteAnim - adds r0, r4, 0 - adds r1, r5, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D9868 - - thumb_func_start sub_81D98B4 -sub_81D98B4: @ 81D98B4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _081D990C - cmp r1, 0x1 - bgt _081D98DC - cmp r1, 0 - beq _081D98E2 - b _081D99B4 - .pool -_081D98DC: - cmp r1, 0x2 - beq _081D99A4 - b _081D99B4 -_081D98E2: - movs r2, 0x80 - lsls r2, 7 - movs r0, 0x40 - str r0, [sp] - adds r0, 0xC0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x10 - strh r0, [r4, 0x8] - b _081D9922 -_081D990C: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _081D991A - movs r0, 0x12 - bl PlaySE -_081D991A: - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0x2 - bne _081D992A -_081D9922: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _081D99B4 -_081D992A: - ldrh r5, [r4, 0x8] - ldrh r1, [r4, 0x2] - adds r0, r5, r1 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r3, 0x6 - ldrsh r0, [r4, r3] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _081D9954 - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _081D9954 - subs r0, r5, 0x2 - strh r0, [r4, 0x8] -_081D9954: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - movs r2, 0x80 - lsls r2, 7 - movs r0, 0x40 - str r0, [sp] - ldrh r0, [r4, 0x2] - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - str r0, [sp, 0x4] - ldrh r0, [r4, 0x2] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - str r1, [sp, 0x8] - movs r5, 0 - str r5, [sp, 0xC] - movs r0, 0x2 - adds r1, r2, 0 - movs r3, 0x78 - bl SetBgAffine - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - ble _081D99B4 - strh r5, [r4, 0x2] - strh r5, [r4, 0x6] - strh r5, [r4, 0xA] - movs r0, 0x10 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _081D99B4 -_081D99A4: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl ClearGpuRegBits - adds r0, r5, 0 - bl DestroyTask -_081D99B4: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D98B4 - - - .align 2, 0 @ Don't pad with nop. diff --git a/include/graphics.h b/include/graphics.h index 37890fb96..02711009a 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2700,5 +2700,11 @@ extern const u8 gRayChaseRayquazaChase_Tilemap[]; extern const u8 gRaySceneChaseStreaks_Tilemap[]; extern const u8 gRaySceneChaseBg_Tilemap[]; extern const u8 gRaySceneChase_Pal[]; +extern const u8 gRaySceneHushRing_Tilemap[]; +extern const u8 gRaySceneHushBg_Tilemap[]; +extern const u8 gRaySceneHushRing_Map[]; +extern const u8 gRaySceneHushBg_Pal[]; +extern const u8 gRaySceneHushBg_Gfx[]; +extern const u8 gRaySceneHushRing_Gfx[]; #endif //GUARD_GRAPHICS_H diff --git a/include/rayquaza_scene.h b/include/rayquaza_scene.h index e997c9db7..fe66b3df0 100644 --- a/include/rayquaza_scene.h +++ b/include/rayquaza_scene.h @@ -1,6 +1,8 @@ #ifndef GUARD_RAYQUAZA_SCENE_H #define GUARD_RAYQUAZA_SCENE_H +void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)); + enum { RAY_ANIM_DUO_FIGHT_PRE, diff --git a/ld_script.txt b/ld_script.txt index 871729691..6013175d5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -269,7 +269,6 @@ SECTIONS { asm/pokemon_summary_screen.o(.text); asm/pokenav.o(.text); src/rayquaza_scene.o(.text); - asm/rayquaza_scene.o(.text); src/walda_phrase.o(.text); asm/contest_link_81D9DE4.o(.text); asm/trainer_rematch.o(.text); diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 44c4d86f4..e32655578 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -14,28 +14,80 @@ #include "decompress.h" #include "sound.h" #include "constants/songs.h" +#include "constants/species.h" #include "constants/rgb.h" #include "random.h" +struct RaySceneStruct +{ + MainCallback callback; + u8 tilemapBuffers[4][0x800]; + u16 field_2004; // set but unused + u8 animId; + bool8 onlyOneAnim; + s16 field_2008; + s16 field_200A; + u8 unusedFields[12]; // completely unused +}; + +// EWRAM vars +static EWRAM_DATA struct RaySceneStruct *sRayScene = NULL; + // this file's functions -void sub_81D7134(u8 taskId); -void sub_81D7F4C(u8 taskId); -void sub_81D84EC(u8 taskId); -void sub_81D8980(u8 taskId); -void sub_81D8DB4(u8 taskId); -void sub_81D857C(u8 taskId); -void sub_81D8684(u8 taskId); -void sub_81D89E0(u8 taskId); -void sub_81D8AD8(u8 taskId); -void sub_81D8B2C(u8 taskId); -void sub_81D8BEC(u8 taskId); -void Task_EndAfterFadeScreen(u8 taskId); - -void sub_81D8260(struct Sprite *sprite); -void sub_81D961C(struct Sprite *sprite); +static void sub_81D7134(u8 taskId); +static void sub_81D7F4C(u8 taskId); +static void sub_81D84EC(u8 taskId); +static void sub_81D8980(u8 taskId); +static void sub_81D8DB4(u8 taskId); +static void sub_81D857C(u8 taskId); +static void sub_81D8684(u8 taskId); +static void sub_81D89E0(u8 taskId); +static void sub_81D8AD8(u8 taskId); +static void sub_81D8B2C(u8 taskId); +static void sub_81D8BEC(u8 taskId); +static void sub_81D8E80(u8 taskId); +static void sub_81D8FB0(u8 taskId); +static void sub_81D7228(u8 taskId); +static void sub_81D736C(u8 taskId); +static void sub_81D752C(u8 taskId); +static void sub_81D7600(u8 taskId); +static void sub_81D7FC0(u8 taskId); +static void sub_81D81A4(u8 taskId); +static void sub_81D8164(u8 taskId); +static void sub_81D94D4(u8 taskId); +static void sub_81D93D8(u8 taskId); +static void sub_81D9034(u8 taskId); +static void sub_81D90A8(u8 taskId); +static void sub_81D98B4(u8 taskId); +static void Task_EndAfterFadeScreen(u8 taskId); +static void sub_81D6774(void); +static void sub_81D67D0(void); +static void sub_81D750C(void); +static void sub_81D7438(void); +static void sub_81D7480(void); +static void sub_81D74C8(void); +static void sub_81D8BB4(void); +static void sub_81D6A20(struct Sprite *sprite); +static void sub_81D6D20(struct Sprite *sprite); +static void sub_81D7860(struct Sprite *sprite); +static void sub_81D7D14(struct Sprite *sprite); +static void sub_81D7700(struct Sprite *sprite); +static void sub_81D7A60(struct Sprite *sprite); +static void sub_81D874C(struct Sprite *sprite); +static void sub_81D9338(struct Sprite *sprite); +static void sub_81D9420(struct Sprite *sprite); +static void sub_81D8260(struct Sprite *sprite); +static void sub_81D961C(struct Sprite *sprite); +static void sub_81D97E0(struct Sprite *sprite); +static void sub_81D9528(struct Sprite *sprite); +static u8 sub_81D7664(void); +static u8 sub_81D78BC(void); +static u8 sub_81D86CC(void); +static void sub_81D75B4(u8 taskId, s8 palDelay); +static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y); // const rom data -const TaskFunc sTasksForAnimations[] = +static const TaskFunc sTasksForAnimations[] = { sub_81D7134, // RAY_ANIM_DUO_FIGHT_PRE sub_81D7134, // RAY_ANIM_DUO_FIGHT @@ -206,7 +258,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A724[] = sSpriteAnim_862A710 }; -const struct SpriteTemplate gUnknown_0862A72C = +static const struct SpriteTemplate sUnknown_0862A72C = { .tileTag = 30505, .paletteTag = 30505, @@ -228,7 +280,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A74C[] = sSpriteAnim_862A744 }; -const struct SpriteTemplate gUnknown_0862A750 = +static const struct SpriteTemplate sUnknown_0862A750 = { .tileTag = 30506, .paletteTag = 30505, @@ -250,7 +302,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A770[] = sSpriteAnim_862A768 }; -const struct SpriteTemplate gUnknown_0862A774 = +static const struct SpriteTemplate sUnknown_0862A774 = { .tileTag = 30507, .paletteTag = 30505, @@ -337,7 +389,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A7F8[] = sSpriteAnim_862A7E4 }; -const struct SpriteTemplate gUnknown_0862A81C = +static const struct SpriteTemplate sUnknown_0862A81C = { .tileTag = 30508, .paletteTag = 30508, @@ -362,7 +414,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A848[] = sSpriteAnim_862A834 }; -const struct SpriteTemplate gUnknown_0862A84C = +static const struct SpriteTemplate sUnknown_0862A84C = { .tileTag = 30509, .paletteTag = 30508, @@ -373,7 +425,7 @@ const struct SpriteTemplate gUnknown_0862A84C = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_0862A864 = +static const struct SpriteTemplate sUnknown_0862A864 = { .tileTag = 30510, .paletteTag = 30508, @@ -384,14 +436,14 @@ const struct SpriteTemplate gUnknown_0862A864 = .callback = SpriteCallbackDummy, }; -const struct ScanlineEffectParams gUnknown_0862A87C = +static const struct ScanlineEffectParams sUnknown_0862A87C = { .dmaDest = (vu16 *)REG_ADDR_BG1HOFS, .dmaControl = 0xA2600001, .initState = 1 }; -const struct BgTemplate gUnknown_0862A888[] = +static const struct BgTemplate sUnknown_0862A888[] = { { .bg = 0, @@ -446,17 +498,17 @@ static const union AnimCmd *const sSpriteAnimTable_862A8BC[] = sSpriteAnim_862A8A8 }; -const struct CompressedSpriteSheet gUnknown_0862A8C4 = +static const struct CompressedSpriteSheet sUnknown_0862A8C4 = { gRaySceneGroudon_Gfx, 0x3000, 30505 }; -const struct CompressedSpritePalette gUnknown_0862A8CC = +static const struct CompressedSpritePalette sUnknown_0862A8CC = { gRaySceneGroudon_Pal, 30505 }; -const struct SpriteTemplate gUnknown_0862A8D4 = +static const struct SpriteTemplate sUnknown_0862A8D4 = { .tileTag = 30505, .paletteTag = 30505, @@ -478,12 +530,12 @@ static const union AnimCmd *const sSpriteAnimTable_862A8F4[] = sSpriteAnim_862A8EC }; -const struct CompressedSpriteSheet gUnknown_0862A8F8 = +static const struct CompressedSpriteSheet sUnknown_0862A8F8 = { gRaySceneGroudon2_Gfx, 0x200, 30506 }; -const struct SpriteTemplate gUnknown_0862A900 = +static const struct SpriteTemplate sUnknown_0862A900 = { .tileTag = 30506, .paletteTag = 30505, @@ -505,12 +557,12 @@ static const union AnimCmd *const sSpriteAnimTable_862A920[] = sSpriteAnim_862A918 }; -const struct CompressedSpriteSheet gUnknown_0862A924 = +static const struct CompressedSpriteSheet sUnknown_0862A924 = { gRaySceneGroudon3_Gfx, 0x400, 30507 }; -const struct SpriteTemplate gUnknown_0862A92C = +static const struct SpriteTemplate sUnknown_0862A92C = { .tileTag = 30507, .paletteTag = 30505, @@ -597,17 +649,17 @@ static const union AnimCmd *const sSpriteAnimTable_862A9B0[] = sSpriteAnim_862A99C }; -const struct CompressedSpriteSheet gUnknown_0862A9D4 = +static const struct CompressedSpriteSheet sUnknown_0862A9D4 = { gRaySceneKyogre_Gfx, 0xF00, 30508 }; -const struct CompressedSpritePalette gUnknown_0862A9DC = +static const struct CompressedSpritePalette sUnknown_0862A9DC = { gRaySceneKyogre_Pal, 30508 }; -const struct SpriteTemplate gUnknown_0862A9E4 = +static const struct SpriteTemplate sUnknown_0862A9E4 = { .tileTag = 30508, .paletteTag = 30508, @@ -632,12 +684,12 @@ static const union AnimCmd *const sSpriteAnimTable_862AA10[] = sSpriteAnim_862A9FC }; -const struct CompressedSpriteSheet gUnknown_0862AA14 = +static const struct CompressedSpriteSheet sUnknown_0862AA14 = { gRaySceneKyogre2_Gfx, 0xC0, 30509 }; -const struct SpriteTemplate gUnknown_0862AA1C = +static const struct SpriteTemplate sUnknown_0862AA1C = { .tileTag = 30509, .paletteTag = 30508, @@ -648,12 +700,12 @@ const struct SpriteTemplate gUnknown_0862AA1C = .callback = SpriteCallbackDummy, }; -const struct CompressedSpriteSheet gUnknown_0862AA34 = +static const struct CompressedSpriteSheet sUnknown_0862AA34 = { gRaySceneKyogre3_Gfx, 0x200, 30510 }; -const struct SpriteTemplate gUnknown_0862AA3C = +static const struct SpriteTemplate sUnknown_0862AA3C = { .tileTag = 30510, .paletteTag = 30508, @@ -664,7 +716,7 @@ const struct SpriteTemplate gUnknown_0862AA3C = .callback = SpriteCallbackDummy, }; -const struct BgTemplate gUnknown_0862AA54[] = +static const struct BgTemplate sUnknown_0862AA54[] = { { .bg = 0, @@ -719,17 +771,17 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_862AA8C[] = sSpriteAffineAnim_862AA6C }; -const struct CompressedSpriteSheet gUnknown_0862AA90 = +static const struct CompressedSpriteSheet sUnknown_0862AA90 = { gRaySceneSmoke_Gfx, 0x100, 30555 }; -const struct CompressedSpritePalette gUnknown_0862AA98 = +static const struct CompressedSpritePalette sUnknown_0862AA98 = { gRaySceneSmoke_Pal, 30555 }; -const struct SpriteTemplate gUnknown_0862AAA0 = +static const struct SpriteTemplate sUnknown_0862AAA0 = { .tileTag = 30555, .paletteTag = 30555, @@ -740,7 +792,7 @@ const struct SpriteTemplate gUnknown_0862AAA0 = .callback = sub_81D8260, }; -const s8 gUnknown_0862AAB8[][2] = +static const s8 sUnknown_0862AAB8[][2] = { {-1, 5}, {-3, -4}, @@ -754,7 +806,7 @@ const s8 gUnknown_0862AAB8[][2] = {9, 1} }; -const struct BgTemplate gUnknown_0862AACC[] = +static const struct BgTemplate sUnknown_0862AACC[] = { { .bg = 0, @@ -818,22 +870,22 @@ static const union AnimCmd *const sSpriteAnimTable_862AAF8[] = sSpriteAnim_862AAEC }; -const struct CompressedSpriteSheet gUnknown_0862AAFC = +static const struct CompressedSpriteSheet sUnknown_0862AAFC = { gRaySceneRayquazaFly1_Gfx, 0x1000, 30556 }; -const struct CompressedSpriteSheet gUnknown_0862AB04 = +static const struct CompressedSpriteSheet sUnknown_0862AB04 = { gRaySceneRayquazaTail_Gfx, 0x200, 30557 }; -const struct CompressedSpritePalette gUnknown_0862AB0C = +static const struct CompressedSpritePalette sUnknown_0862AB0C = { gRaySceneRayquaza_Pal, 30556 }; -const struct SpriteTemplate gUnknown_0862AB14 = +static const struct SpriteTemplate sUnknown_0862AB14 = { .tileTag = 30556, .paletteTag = 30556, @@ -844,7 +896,7 @@ const struct SpriteTemplate gUnknown_0862AB14 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_0862AB2C = +static const struct SpriteTemplate sUnknown_0862AB2C = { .tileTag = 30557, .paletteTag = 30556, @@ -855,7 +907,7 @@ const struct SpriteTemplate gUnknown_0862AB2C = .callback = SpriteCallbackDummy, }; -const struct BgTemplate gUnknown_0862AB44[] = +static const struct BgTemplate sUnknown_0862AB44[] = { { .bg = 0, @@ -1032,57 +1084,57 @@ static const union AnimCmd *const sSpriteAnimTable_862AC24[] = sSpriteAnim_862AC08 }; -const struct CompressedSpriteSheet gUnknown_0862AC28 = +static const struct CompressedSpriteSheet sUnknown_0862AC28 = { gRaySceneGroudonLeft_Gfx, 0x1800, 30565 }; -const struct CompressedSpriteSheet gUnknown_0862AC30 = +static const struct CompressedSpriteSheet sUnknown_0862AC30 = { gRaySceneGroudonTail_Gfx, 0x80, 30566 }; -const struct CompressedSpriteSheet gUnknown_0862AC38 = +static const struct CompressedSpriteSheet sUnknown_0862AC38 = { gRaySceneKyogreRight_Gfx, 0x600, 30568 }; -const struct CompressedSpriteSheet gUnknown_0862AC40 = +static const struct CompressedSpriteSheet sUnknown_0862AC40 = { gRaySceneRayquazaHover_Gfx, 0x2000, 30569 }; -const struct CompressedSpriteSheet gUnknown_0862AC48 = +static const struct CompressedSpriteSheet sUnknown_0862AC48 = { gRaySceneRayquazaFlyIn_Gfx, 0x800, 30570 }; -const struct CompressedSpriteSheet gUnknown_0862AC50 = +static const struct CompressedSpriteSheet sUnknown_0862AC50 = { gRaySceneSplash_Gfx, 0x300, 30571 }; -const struct CompressedSpritePalette gUnknown_0862AC58 = +static const struct CompressedSpritePalette sUnknown_0862AC58 = { gRaySceneGroudonLeft_Pal, 30565 }; -const struct CompressedSpritePalette gUnknown_0862AC60 = +static const struct CompressedSpritePalette sUnknown_0862AC60 = { gRaySceneKyogreRight_Pal, 30568 }; -const struct CompressedSpritePalette gUnknown_0862AC68 = +static const struct CompressedSpritePalette sUnknown_0862AC68 = { gRaySceneRayquazaHover_Pal, 30569 }; -const struct CompressedSpritePalette gUnknown_0862AC70 = +static const struct CompressedSpritePalette sUnknown_0862AC70 = { gRaySceneSplash_Pal, 30571 }; -const struct SpriteTemplate gUnknown_0862AC78 = +static const struct SpriteTemplate sUnknown_0862AC78 = { .tileTag = 30565, .paletteTag = 30565, @@ -1093,7 +1145,7 @@ const struct SpriteTemplate gUnknown_0862AC78 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_0862AC90 = +static const struct SpriteTemplate sUnknown_0862AC90 = { .tileTag = 30566, .paletteTag = 30565, @@ -1104,7 +1156,7 @@ const struct SpriteTemplate gUnknown_0862AC90 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_0862ACA8 = +static const struct SpriteTemplate sUnknown_0862ACA8 = { .tileTag = 30568, .paletteTag = 30568, @@ -1115,7 +1167,7 @@ const struct SpriteTemplate gUnknown_0862ACA8 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_0862ACC0 = +static const struct SpriteTemplate sUnknown_0862ACC0 = { .tileTag = 30569, .paletteTag = 30569, @@ -1126,7 +1178,7 @@ const struct SpriteTemplate gUnknown_0862ACC0 = .callback = sub_81D961C, }; -const struct SpriteTemplate gUnknown_0862ACD8 = +static const struct SpriteTemplate sUnknown_0862ACD8 = { .tileTag = 30570, .paletteTag = 30569, @@ -1137,7 +1189,7 @@ const struct SpriteTemplate gUnknown_0862ACD8 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_0862ACF0 = +static const struct SpriteTemplate sUnknown_0862ACF0 = { .tileTag = 30571, .paletteTag = 30571, @@ -1148,7 +1200,7 @@ const struct SpriteTemplate gUnknown_0862ACF0 = .callback = SpriteCallbackDummy, }; -const struct BgTemplate gUnknown_0862AD08[] = +static const struct BgTemplate sUnknown_0862AD08[] = { { .bg = 0, @@ -1179,57 +1231,17 @@ const struct BgTemplate gUnknown_0862AD08[] = } }; -struct RaySceneStruct -{ - MainCallback callback; - u8 tilemapBuffers[4][0x800]; - u16 field_2004; - u8 animId; - bool8 onlyOneAnim; - s16 field_2008; - s16 field_200A; -}; - -extern struct RaySceneStruct *sRayScene; - -// this file's functions -void sub_81D6774(void); -void sub_81D67D0(void); -void sub_81D750C(void); -void sub_81D7438(void); -void sub_81D7480(void); -void sub_81D74C8(void); -void sub_81D8BB4(void); -void sub_81D75B4(u8 taskId, s8 palDelay); -void sub_81D6A20(struct Sprite *sprite); -void sub_81D6D20(struct Sprite *sprite); -void sub_81D7860(struct Sprite *sprite); -void sub_81D7D14(struct Sprite *sprite); -void sub_81D7700(struct Sprite *sprite); -void sub_81D7A60(struct Sprite *sprite); -void sub_81D874C(struct Sprite *sprite); -void sub_81D7228(u8 taskId); -void sub_81D736C(u8 taskId); -void sub_81D752C(u8 taskId); -void sub_81D7600(u8 taskId); -void sub_81D7FC0(u8 taskId); -void sub_81D81A4(u8 taskId); -void sub_81D8164(u8 taskId); -u8 sub_81D7664(void); -u8 sub_81D78BC(void); -u8 sub_81D86CC(void); - // code -void sub_81D6720(u8 animId, bool8 onlyOneAnim, MainCallback callback) +void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)) { - sRayScene = AllocZeroed(0x2018); + sRayScene = AllocZeroed(sizeof(*sRayScene)); sRayScene->animId = animId; sRayScene->callback = callback; sRayScene->onlyOneAnim = onlyOneAnim; SetMainCallback2(sub_81D6774); } -void sub_81D6774(void) +static void sub_81D6774(void) { SetVBlankHBlankCallbacksToNull(); clear_scheduled_bg_copies_to_vram(); @@ -1243,7 +1255,7 @@ void sub_81D6774(void) SetMainCallback2(sub_81D67D0); } -void sub_81D67D0(void) +static void sub_81D67D0(void) { RunTasks(); AnimateSprites(); @@ -1252,14 +1264,14 @@ void sub_81D67D0(void) UpdatePaletteFade(); } -void sub_81D67EC(void) +static void sub_81D67EC(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void Task_EndAfterFadeScreen(u8 taskId) +static void Task_EndAfterFadeScreen(u8 taskId) { if (!gPaletteFade.active) { @@ -1271,7 +1283,7 @@ void Task_EndAfterFadeScreen(u8 taskId) } } -void Task_SetNextAnim(u8 taskId) +static void Task_SetNextAnim(u8 taskId) { if (!gPaletteFade.active) { @@ -1288,7 +1300,7 @@ void Task_SetNextAnim(u8 taskId) } } -void sub_81D68C8(void) +static void sub_81D68C8(void) { SetGpuReg(REG_OFFSET_WININ, 0x3F); SetGpuReg(REG_OFFSET_WINOUT, 0); @@ -1298,13 +1310,13 @@ void sub_81D68C8(void) gPlttBufferFaded[0] = 0; } -void sub_81D6904(void) +static void sub_81D6904(void) { SetGpuReg(REG_OFFSET_WININ, 0x3F); SetGpuReg(REG_OFFSET_WINOUT, 0x3F); } -void sub_81D691C(u8 taskId) +static void sub_81D691C(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D750C(); @@ -1336,22 +1348,22 @@ void sub_81D691C(u8 taskId) } } -u8 sub_81D6984(void) +static u8 sub_81D6984(void) { u8 spriteId; s16 *data; - spriteId = CreateSprite(&gUnknown_0862A72C, 88, 72, 3); + spriteId = CreateSprite(&sUnknown_0862A72C, 88, 72, 3); gSprites[spriteId].callback = sub_81D6A20; data = gSprites[spriteId].data; - data[0] = CreateSprite(&gUnknown_0862A72C, 56, 104, 3); - data[1] = CreateSprite(&gUnknown_0862A750, 75, 101, 0); - data[2] = CreateSprite(&gUnknown_0862A774, 109, 114, 1); + data[0] = CreateSprite(&sUnknown_0862A72C, 56, 104, 3); + data[1] = CreateSprite(&sUnknown_0862A750, 75, 101, 0); + data[2] = CreateSprite(&sUnknown_0862A774, 109, 114, 1); StartSpriteAnim(&gSprites[data[0]], 1); return spriteId; } -void sub_81D6A20(struct Sprite *sprite) +static void sub_81D6A20(struct Sprite *sprite) { s16 *data = sprite->data; data[5]++; @@ -1388,25 +1400,25 @@ void sub_81D6A20(struct Sprite *sprite) } } -u8 sub_81D6B7C(void) +static u8 sub_81D6B7C(void) { u8 spriteId; s16 *data; - spriteId = CreateSprite(&gUnknown_0862A81C, 136, 96, 1); + spriteId = CreateSprite(&sUnknown_0862A81C, 136, 96, 1); gSprites[spriteId].callback = sub_81D6D20; data = gSprites[spriteId].data; - data[0] = CreateSprite(&gUnknown_0862A81C, 168, 96, 1) << 8; - data[0] |= CreateSprite(&gUnknown_0862A81C, 136, 112, 1); - data[1] = CreateSprite(&gUnknown_0862A81C, 168, 112, 1) << 8; - data[1] |= CreateSprite(&gUnknown_0862A81C, 136, 128, 1); - data[2] = CreateSprite(&gUnknown_0862A81C, 168, 128, 1) << 8; - data[2] |= CreateSprite(&gUnknown_0862A81C, 104, 128, 2); - data[3] = CreateSprite(&gUnknown_0862A81C, 136, 128, 2) << 8; - data[3] |= CreateSprite(&gUnknown_0862A81C, 184, 128, 0); - data[4] = CreateSprite(&gUnknown_0862A84C, 208, 132, 0) << 8; - data[4] |= CreateSprite(&gUnknown_0862A864, 200, 120, 1); + data[0] = CreateSprite(&sUnknown_0862A81C, 168, 96, 1) << 8; + data[0] |= CreateSprite(&sUnknown_0862A81C, 136, 112, 1); + data[1] = CreateSprite(&sUnknown_0862A81C, 168, 112, 1) << 8; + data[1] |= CreateSprite(&sUnknown_0862A81C, 136, 128, 1); + data[2] = CreateSprite(&sUnknown_0862A81C, 168, 128, 1) << 8; + data[2] |= CreateSprite(&sUnknown_0862A81C, 104, 128, 2); + data[3] = CreateSprite(&sUnknown_0862A81C, 136, 128, 2) << 8; + data[3] |= CreateSprite(&sUnknown_0862A81C, 184, 128, 0); + data[4] = CreateSprite(&sUnknown_0862A84C, 208, 132, 0) << 8; + data[4] |= CreateSprite(&sUnknown_0862A864, 200, 120, 1); StartSpriteAnim(&gSprites[data[0] >> 8], 1); StartSpriteAnim(&gSprites[data[0] & 0xFF], 2); @@ -1420,7 +1432,7 @@ u8 sub_81D6B7C(void) return spriteId; } -void sub_81D6D20(struct Sprite *sprite) +static void sub_81D6D20(struct Sprite *sprite) { s16 *data = sprite->data; data[5]++; @@ -1481,17 +1493,17 @@ void sub_81D6D20(struct Sprite *sprite) } } -void sub_81D6FD0(void) +static void sub_81D6FD0(void) { sub_81D67EC(); ScanlineEffect_InitHBlankDmaTransfer(); } -void sub_81D6FE0(void) +static void sub_81D6FE0(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0862A888, ARRAY_COUNT(gUnknown_0862A888)); + InitBgsFromTemplates(0, sUnknown_0862A888, ARRAY_COUNT(sUnknown_0862A888)); SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); @@ -1506,7 +1518,7 @@ void sub_81D6FE0(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -void sub_81D706C(void) +static void sub_81D706C(void) { reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(0, gRaySceneClouds_Gfx, 0, 0, 0); @@ -1516,24 +1528,24 @@ void sub_81D706C(void) LZDecompressWram(gRaySceneClouds1_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneClouds3_Tilemap, sRayScene->tilemapBuffers[2]); LoadCompressedPalette(gRaySceneClouds_Pal, 0, 0x40); - LoadCompressedObjectPic(&gUnknown_0862A8C4); - LoadCompressedObjectPic(&gUnknown_0862A8F8); - LoadCompressedObjectPic(&gUnknown_0862A924); - LoadCompressedObjectPic(&gUnknown_0862A9D4); - LoadCompressedObjectPic(&gUnknown_0862AA14); - LoadCompressedObjectPic(&gUnknown_0862AA34); - LoadCompressedObjectPalette(&gUnknown_0862A8CC); - LoadCompressedObjectPalette(&gUnknown_0862A9DC); + LoadCompressedObjectPic(&sUnknown_0862A8C4); + LoadCompressedObjectPic(&sUnknown_0862A8F8); + LoadCompressedObjectPic(&sUnknown_0862A924); + LoadCompressedObjectPic(&sUnknown_0862A9D4); + LoadCompressedObjectPic(&sUnknown_0862AA14); + LoadCompressedObjectPic(&sUnknown_0862AA34); + LoadCompressedObjectPalette(&sUnknown_0862A8CC); + LoadCompressedObjectPalette(&sUnknown_0862A9DC); } -void sub_81D7134(u8 taskId) +static void sub_81D7134(u8 taskId) { s16 *data = gTasks[taskId].data; ScanlineEffect_Clear(); sub_81D6FE0(); sub_81D706C(); CpuFastFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers)); - ScanlineEffect_SetParams(gUnknown_0862A87C); + ScanlineEffect_SetParams(sUnknown_0862A87C); data[0] = 0; data[1] = CreateTask(sub_81D7228, 0); if (sRayScene->animId == RAY_ANIM_DUO_FIGHT_PRE) @@ -1556,7 +1568,7 @@ void sub_81D7134(u8 taskId) PlaySE(SE_T_OOAME); } -void sub_81D7228(u8 taskId) +static void sub_81D7228(u8 taskId) { s16 i; u16 *data = gTasks[taskId].data; @@ -1615,7 +1627,7 @@ void sub_81D7228(u8 taskId) } } -void sub_81D736C(u8 taskId) +static void sub_81D736C(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D750C(); @@ -1656,33 +1668,33 @@ void sub_81D736C(u8 taskId) } } -void sub_81D7438(void) +static void sub_81D7438(void) { PlaySE(SE_T_KAMI); sub_80A2C44(0x7FFF, 0, 0x10, 0, -1, 0, 0); sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1); } -void sub_81D7480(void) +static void sub_81D7480(void) { PlaySE(SE_T_KAMI); sub_80A2C44(0x7FFF, 0, 0x10, 0x10, -1, 0, 0); sub_80A2C44(0xFFFF0000, 0, 0x10, 0x10, 0, 0, 1); } -void sub_81D74C8(void) +static void sub_81D74C8(void) { sub_80A2C44(0x7FFF, 4, 0x10, 0, -1, 0, 0); sub_80A2C44(0xFFFF0000, 4, 0x10, 0, 0, 0, 1); } -void sub_81D750C(void) +static void sub_81D750C(void) { ChangeBgX(2, 0x400, 1); ChangeBgY(2, 0x800, 2); } -void sub_81D752C(u8 taskId) +static void sub_81D752C(u8 taskId) { u16 bgY; s16 *data = gTasks[taskId].data; @@ -1700,14 +1712,14 @@ void sub_81D752C(u8 taskId) } } -void sub_81D75B4(u8 taskId, s8 palDelay) +static void sub_81D75B4(u8 taskId, s8 palDelay) { PlaySE(SE_T_OOAME_E); BeginNormalPaletteFade(-1, palDelay, 0, 0x10, 0); gTasks[taskId].func = sub_81D7600; } -void sub_81D7600(u8 taskId) +static void sub_81D7600(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D750C(); @@ -1724,22 +1736,22 @@ void sub_81D7600(u8 taskId) } } -u8 sub_81D7664(void) +static u8 sub_81D7664(void) { u8 spriteId; s16 *data; - spriteId = CreateSprite(&gUnknown_0862A8D4, 98, 72, 3); + spriteId = CreateSprite(&sUnknown_0862A8D4, 98, 72, 3); gSprites[spriteId].callback = sub_81D7700; data = gSprites[spriteId].data; - data[0] = CreateSprite(&gUnknown_0862A8D4, 66, 104, 3); - data[1] = CreateSprite(&gUnknown_0862A900, 85, 101, 0); - data[2] = CreateSprite(&gUnknown_0862A92C, 119, 114, 1); + data[0] = CreateSprite(&sUnknown_0862A8D4, 66, 104, 3); + data[1] = CreateSprite(&sUnknown_0862A900, 85, 101, 0); + data[2] = CreateSprite(&sUnknown_0862A92C, 119, 114, 1); StartSpriteAnim(&gSprites[data[0]], 1); return spriteId; } -void sub_81D7700(struct Sprite *sprite) +static void sub_81D7700(struct Sprite *sprite) { s16 *data = sprite->data; data[5]++; @@ -1776,7 +1788,7 @@ void sub_81D7700(struct Sprite *sprite) } } -void sub_81D7860(struct Sprite *sprite) +static void sub_81D7860(struct Sprite *sprite) { s16 *data = sprite->data; if (sprite->pos1.y <= 160) @@ -1788,25 +1800,25 @@ void sub_81D7860(struct Sprite *sprite) } } -u8 sub_81D78BC(void) +static u8 sub_81D78BC(void) { u8 spriteId; s16 *data; - spriteId = CreateSprite(&gUnknown_0862A9E4, 126, 96, 1); + spriteId = CreateSprite(&sUnknown_0862A9E4, 126, 96, 1); gSprites[spriteId].callback = sub_81D7A60; data = gSprites[spriteId].data; - data[0] = CreateSprite(&gUnknown_0862A9E4, 158, 96, 1) << 8; - data[0] |= CreateSprite(&gUnknown_0862A9E4, 126, 112, 1); - data[1] = CreateSprite(&gUnknown_0862A9E4, 158, 112, 1) << 8; - data[1] |= CreateSprite(&gUnknown_0862A9E4, 126, 128, 1); - data[2] = CreateSprite(&gUnknown_0862A9E4, 158, 128, 1) << 8; - data[2] |= CreateSprite(&gUnknown_0862A9E4, 94, 128, 2); - data[3] = CreateSprite(&gUnknown_0862A9E4, 126, 128, 2) << 8; - data[3] |= CreateSprite(&gUnknown_0862A9E4, 174, 128, 0); - data[4] = CreateSprite(&gUnknown_0862AA1C, 198, 132, 0) << 8; - data[4] |= CreateSprite(&gUnknown_0862AA3C, 190, 120, 1); + data[0] = CreateSprite(&sUnknown_0862A9E4, 158, 96, 1) << 8; + data[0] |= CreateSprite(&sUnknown_0862A9E4, 126, 112, 1); + data[1] = CreateSprite(&sUnknown_0862A9E4, 158, 112, 1) << 8; + data[1] |= CreateSprite(&sUnknown_0862A9E4, 126, 128, 1); + data[2] = CreateSprite(&sUnknown_0862A9E4, 158, 128, 1) << 8; + data[2] |= CreateSprite(&sUnknown_0862A9E4, 94, 128, 2); + data[3] = CreateSprite(&sUnknown_0862A9E4, 126, 128, 2) << 8; + data[3] |= CreateSprite(&sUnknown_0862A9E4, 174, 128, 0); + data[4] = CreateSprite(&sUnknown_0862AA1C, 198, 132, 0) << 8; + data[4] |= CreateSprite(&sUnknown_0862AA3C, 190, 120, 1); StartSpriteAnim(&gSprites[data[0] >> 8], 1); StartSpriteAnim(&gSprites[data[0] & 0xFF], 2); @@ -1820,7 +1832,7 @@ u8 sub_81D78BC(void) return spriteId; } -void sub_81D7A60(struct Sprite *sprite) +static void sub_81D7A60(struct Sprite *sprite) { s16 *data = sprite->data; data[5]++; @@ -1881,7 +1893,7 @@ void sub_81D7A60(struct Sprite *sprite) } } -void sub_81D7D14(struct Sprite *sprite) +static void sub_81D7D14(struct Sprite *sprite) { s16 *data = sprite->data; if (sprite->pos1.y <= 160) @@ -1900,11 +1912,11 @@ void sub_81D7D14(struct Sprite *sprite) } } -void sub_81D7E10(void) +static void sub_81D7E10(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(1, gUnknown_0862AA54, ARRAY_COUNT(gUnknown_0862AA54)); + InitBgsFromTemplates(1, sUnknown_0862AA54, ARRAY_COUNT(sUnknown_0862AA54)); SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); @@ -1919,7 +1931,7 @@ void sub_81D7E10(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -void sub_81D7E9C(void) +static void sub_81D7E9C(void) { reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(0, gRaySceneClouds_Gfx, 0, 0, 0); @@ -1931,11 +1943,11 @@ void sub_81D7E9C(void) LZDecompressWram(gRaySceneOvercast_Tilemap, sRayScene->tilemapBuffers[1]); LZDecompressWram(gRaySceneRayquaza_Tilemap, sRayScene->tilemapBuffers[2]); LoadCompressedPalette(gRaySceneRayquaza_Pal, 0, 0x40); - LoadCompressedObjectPic(&gUnknown_0862AA90); - LoadCompressedObjectPalette(&gUnknown_0862AA98); + LoadCompressedObjectPic(&sUnknown_0862AA90); + LoadCompressedObjectPalette(&sUnknown_0862AA98); } -void sub_81D7F4C(u8 taskId) +static void sub_81D7F4C(u8 taskId) { s16 *data = gTasks[taskId].data; PlayNewMapMusic(MUS_REKKUU_KOURIN); @@ -1951,7 +1963,7 @@ void sub_81D7F4C(u8 taskId) gTasks[taskId].func = sub_81D7FC0; } -void sub_81D7FC0(u8 taskId) +static void sub_81D7FC0(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -2012,7 +2024,7 @@ void sub_81D7FC0(u8 taskId) } } -void sub_81D8164(u8 taskId) +static void sub_81D8164(u8 taskId) { if (!gPaletteFade.active) { @@ -2023,14 +2035,14 @@ void sub_81D8164(u8 taskId) } } -void sub_81D81A4(u8 taskId) +static void sub_81D81A4(u8 taskId) { s16 *data = gTasks[taskId].data; if ((data[1] & 3) == 0) { - u8 spriteId = CreateSprite(&gUnknown_0862AAA0, - (gUnknown_0862AAB8[data[0]][0] * 4) + 120, - (gUnknown_0862AAB8[data[0]][1] * 4) + 80, + u8 spriteId = CreateSprite(&sUnknown_0862AAA0, + (sUnknown_0862AAB8[data[0]][0] * 4) + 120, + (sUnknown_0862AAB8[data[0]][1] * 4) + 80, 0); gSprites[spriteId].data[0] = (s8)(data[0]); gSprites[spriteId].oam.objMode = 1; @@ -2051,7 +2063,7 @@ void sub_81D81A4(u8 taskId) data[1]++; } -void sub_81D8260(struct Sprite *sprite) +static void sub_81D8260(struct Sprite *sprite) { if (sprite->data[1] == 0) { @@ -2060,19 +2072,19 @@ void sub_81D8260(struct Sprite *sprite) } else { - sprite->pos2.x += gUnknown_0862AAB8[sprite->data[0]][0]; - sprite->pos2.y += gUnknown_0862AAB8[sprite->data[0]][1]; + sprite->pos2.x += sUnknown_0862AAB8[sprite->data[0]][0]; + sprite->pos2.y += sUnknown_0862AAB8[sprite->data[0]][1]; } sprite->data[1]++; sprite->data[1] &= 0xF; } -void sub_81D82B0(void) +static void sub_81D82B0(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0862AACC, ARRAY_COUNT(gUnknown_0862AACC)); + InitBgsFromTemplates(0, sUnknown_0862AACC, ARRAY_COUNT(sUnknown_0862AACC)); SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); @@ -2090,7 +2102,7 @@ void sub_81D82B0(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -void sub_81D8358(void) +static void sub_81D8358(void) { reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(0, gRaySceneRayquazaLight_Gfx, 0, 0, 0); @@ -2106,12 +2118,12 @@ void sub_81D8358(void) LoadCompressedPalette(gRaySceneOvercast2_Pal, 0, 0x40); gPlttBufferUnfaded[0] = RGB_WHITE; gPlttBufferFaded[0] = RGB_WHITE; - LoadCompressedObjectPic(&gUnknown_0862AAFC); - LoadCompressedObjectPic(&gUnknown_0862AB04); - LoadCompressedObjectPalette(&gUnknown_0862AB0C); + LoadCompressedObjectPic(&sUnknown_0862AAFC); + LoadCompressedObjectPic(&sUnknown_0862AB04); + LoadCompressedObjectPalette(&sUnknown_0862AB0C); } -void sub_81D844C(void) +static void sub_81D844C(void) { u16 VCOUNT = GetGpuReg(REG_OFFSET_VCOUNT); if (VCOUNT >= 24 && VCOUNT <= 135 && VCOUNT - 24 <= sRayScene->field_2008) @@ -2135,7 +2147,7 @@ void sub_81D844C(void) } } -void sub_81D84EC(u8 taskId) +static void sub_81D84EC(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D82B0(); @@ -2154,7 +2166,7 @@ void sub_81D84EC(u8 taskId) gTasks[taskId].func = sub_81D857C; } -void sub_81D857C(u8 taskId) +static void sub_81D857C(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -2213,7 +2225,7 @@ void sub_81D857C(u8 taskId) } } -void sub_81D8684(u8 taskId) +static void sub_81D8684(u8 taskId) { if (!gPaletteFade.active) { @@ -2225,18 +2237,18 @@ void sub_81D8684(u8 taskId) } } -u8 sub_81D86CC(void) +static u8 sub_81D86CC(void) { - u8 spriteId = CreateSprite(&gUnknown_0862AB14, 160, 0, 0); + u8 spriteId = CreateSprite(&sUnknown_0862AB14, 160, 0, 0); s16 *data = gSprites[spriteId].data; - data[0] = CreateSprite(&gUnknown_0862AB2C, 184, -48, 0); + data[0] = CreateSprite(&sUnknown_0862AB2C, 184, -48, 0); gSprites[spriteId].callback = sub_81D874C; gSprites[spriteId].oam.priority = 3; gSprites[data[0]].oam.priority = 3; return spriteId; } -void sub_81D874C(struct Sprite *sprite) +static void sub_81D874C(struct Sprite *sprite) { s16 *data = sprite->data; s16 counter = data[2]; @@ -2290,11 +2302,11 @@ void sub_81D874C(struct Sprite *sprite) data[2]++; } -void sub_81D8828(void) +static void sub_81D8828(void) { ResetVramOamAndBgCntRegs(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0862AB44, ARRAY_COUNT(gUnknown_0862AB44)); + InitBgsFromTemplates(0, sUnknown_0862AB44, ARRAY_COUNT(sUnknown_0862AB44)); SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); @@ -2312,7 +2324,7 @@ void sub_81D8828(void) SetGpuReg(REG_OFFSET_BLDCNT, 0); } -void sub_81D88D0(void) +static void sub_81D88D0(void) { reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(1, gRaySceneRayquazaChase_Gfx, 0, 0, 0); @@ -2327,7 +2339,7 @@ void sub_81D88D0(void) LoadCompressedPalette(gRaySceneChase_Pal, 0, 0x80); } -void sub_81D8980(u8 taskId) +static void sub_81D8980(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8828(); @@ -2341,7 +2353,7 @@ void sub_81D8980(u8 taskId) gTasks[taskId].func = sub_81D89E0; } -void sub_81D89E0(u8 taskId) +static void sub_81D89E0(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8BB4(); @@ -2393,7 +2405,7 @@ void sub_81D89E0(u8 taskId) } } -void sub_81D8AD8(u8 taskId) +static void sub_81D8AD8(u8 taskId) { s16 *data = gTasks[taskId].data; if ((data[15] & 3) == 0) @@ -2405,7 +2417,7 @@ void sub_81D8AD8(u8 taskId) data[15]++; } -void sub_81D8B2C(u8 taskId) +static void sub_81D8B2C(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) @@ -2426,7 +2438,7 @@ void sub_81D8B2C(u8 taskId) } } -void sub_81D8BB4(void) +static void sub_81D8BB4(void) { ChangeBgX(2, 0x400, 2); ChangeBgY(2, 0x400, 1); @@ -2434,7 +2446,7 @@ void sub_81D8BB4(void) ChangeBgY(0, 0x800, 1); } -void sub_81D8BEC(u8 taskId) +static void sub_81D8BEC(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8BB4(); @@ -2446,3 +2458,475 @@ void sub_81D8BEC(u8 taskId) gTasks[taskId].func = Task_SetNextAnim; } } + +static void sub_81D8C38(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, sUnknown_0862AD08, ARRAY_COUNT(sUnknown_0862AD08)); + SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]); + SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]); + SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + schedule_bg_copy_tilemap_to_vram(2); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_WIN0_ON); + ShowBg(0); + ShowBg(1); + ShowBg(2); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void sub_81D8CC4(void) +{ + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(2, gRaySceneHushRing_Gfx, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(0, gRaySceneHushBg_Gfx, 0, 0, 0); + while (free_temp_tile_data_buffers_if_possible()); + + LZDecompressWram(gRaySceneHushRing_Tilemap, sRayScene->tilemapBuffers[1]); + LZDecompressWram(gRaySceneHushBg_Tilemap, sRayScene->tilemapBuffers[0]); + LZDecompressWram(gRaySceneHushRing_Map, sRayScene->tilemapBuffers[2]); + LoadCompressedPalette(gRaySceneHushBg_Pal, 0, 0x60); + LoadCompressedObjectPic(&sUnknown_0862AC28); + LoadCompressedObjectPic(&sUnknown_0862AC30); + LoadCompressedObjectPic(&sUnknown_0862AC38); + LoadCompressedObjectPic(&sUnknown_0862AC40); + LoadCompressedObjectPic(&sUnknown_0862AC48); + LoadCompressedObjectPic(&sUnknown_0862AC50); + LoadCompressedObjectPalette(&sUnknown_0862AC58); + LoadCompressedObjectPalette(&sUnknown_0862AC60); + LoadCompressedObjectPalette(&sUnknown_0862AC68); + LoadCompressedObjectPalette(&sUnknown_0862AC70); +} + +static void sub_81D8DB4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + sub_81D8C38(); + sub_81D8CC4(); + sub_81D68C8(); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0x241); + SetGpuReg(REG_OFFSET_BLDALPHA, 0xE09); + BlendPalettes(-1, 0x10, 0); + SetVBlankCallback(sub_81D67EC); + data[0] = 0; + data[1] = 0; + gTasks[taskId].func = sub_81D8E80; + data[2] = CreateTask(sub_81D8FB0, 0); + gTasks[data[2]].data[0] = 0; + gTasks[data[2]].data[1] = 0; + gTasks[data[2]].data[2] = 0; + gTasks[data[2]].data[3] = 1; + gTasks[data[2]].data[4] = 1; +} + +static void sub_81D8E80(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + if (data[1] == 8) + { + sub_81D90A8(taskId); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + } + break; + case 1: + if (gSprites[data[5]].callback == sub_81D97E0) + { + if (data[1] == 64) + { + sub_81D94D4(taskId); + sub_81D93D8(taskId); + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + } + } + break; + case 2: + if (data[1] == 448) + { + data[1] = 0; + data[0]++; + } + else + { + data[1]++; + if (data[1] % 144 == 0) + { + sub_80A2C44(0xFFFE, 0, 0x10, 0, -1, 0, 0); + sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1); + } + } + break; + case 3: + BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); + gTasks[taskId].func = sub_81D9034; + break; + } +} + +static void sub_81D8FB0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if ((data[0] & 0xF) == 0) + { + SetGpuReg(REG_OFFSET_BLDALPHA, ((data[1] + 14) << 8 & 0x1F00) | ((data[2] + 9) & 0xF)); + data[1] -= data[3]; + data[2] += data[4]; + if (data[1] == -3 || data[1] == 0) + data[3] *= -1; + if (data[2] == 3 || data[2] == 0) + data[4] *= -1; + } + + data[0]++; +} + +static void sub_81D9034(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + StopMapMusic(); + if (data[1] == 0) + { + SetVBlankCallback(NULL); + sub_81D6904(); + ResetSpriteData(); + FreeAllSpritePalettes(); + DestroyTask(data[2]); + } + + if (data[1] == 32) + { + data[1] = 0; + gTasks[taskId].func = Task_SetNextAnim; + } + else + { + data[1]++; + } + } +} + +static void sub_81D90A8(u8 taskId) +{ + s16 *taskData, *spriteData; + + taskData = gTasks[taskId].data; + + taskData[3] = CreateSprite(&sUnknown_0862AC78, 64, 120, 0); + spriteData = gSprites[taskData[3]].data; + spriteData[0] = CreateSprite(&sUnknown_0862AC90, 16, 130, 0); + gSprites[taskData[3]].oam.priority = 1; + gSprites[spriteData[0]].oam.priority = 1; + + taskData[4] = CreateSprite(&sUnknown_0862ACA8, 160, 128, 1); + spriteData = gSprites[taskData[4]].data; + spriteData[0] = CreateSprite(&sUnknown_0862ACA8, 192, 128, 1); + spriteData[1] = CreateSprite(&sUnknown_0862ACA8, 224, 128, 1); + gSprites[taskData[4]].oam.priority = 1; + gSprites[spriteData[0]].oam.priority = 1; + gSprites[spriteData[1]].oam.priority = 1; + StartSpriteAnim(&gSprites[spriteData[0]], 1); + StartSpriteAnim(&gSprites[spriteData[1]], 2); + + taskData[5] = CreateSprite(&sUnknown_0862ACC0, 120, -65, 0); + spriteData = gSprites[taskData[5]].data; + spriteData[0] = CreateSprite(&sUnknown_0862ACD8, 120, -113, 0); + gSprites[taskData[5]].oam.priority = 1; + gSprites[spriteData[0]].oam.priority = 1; +} + +static void sub_81D9274(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + + gSprites[taskData[3]].callback = sub_81D9338; + gSprites[taskData[3]].data[4] = 0; + gSprites[taskData[3]].data[5] = 0; + gSprites[taskData[3]].data[6] = 4; + gSprites[taskData[3]].data[7] = 0; + + gSprites[taskData[4]].callback = sub_81D9338; + gSprites[taskData[4]].data[4] = 0; + gSprites[taskData[4]].data[5] = 0; + gSprites[taskData[4]].data[6] = 4; + gSprites[taskData[4]].data[7] = 1; +} + +static void sub_81D9338(struct Sprite *sprite) +{ + if ((sprite->data[4] & 7) == 0) + { + if (sprite->data[7] == 0) + { + sprite->pos1.x -= sprite->data[6]; + gSprites[sprite->data[0]].pos1.x -= sprite->data[6]; + } + else + { + sprite->pos1.x += sprite->data[6]; + gSprites[sprite->data[0]].pos1.x += sprite->data[6]; + gSprites[sprite->data[1]].pos1.x += sprite->data[6]; + } + + sprite->data[5]++; + sprite->data[6] -= sprite->data[5]; + if (sprite->data[5] == 3) + { + sprite->data[4] = 0; + sprite->data[5] = 0; + sprite->data[6] = 0; + sprite->callback = SpriteCallbackDummy; + return; + } + } + + sprite->data[4]++; +} + +static void sub_81D93D8(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + gSprites[taskData[3]].callback = sub_81D9420; + StartSpriteAnim(&gSprites[taskData[3]], 1); +} + +static void sub_81D9420(struct Sprite *sprite) +{ + switch (sprite->animCmdIndex) + { + case 0: + case 2: + if (sprite->animDelayCounter % 12 == 0) + { + sprite->pos1.x -= 2; + gSprites[sprite->data[0]].pos1.x -=2; + } + gSprites[sprite->data[0]].pos2.y = 0; + break; + case 1: + case 3: + gSprites[sprite->data[0]].pos2.y = -2; + if ((sprite->animDelayCounter & 15) == 0) + { + sprite->pos1.y++; + gSprites[sprite->data[0]].pos1.y++; + } + break; + } +} + +static void sub_81D94D4(u8 taskId) +{ + s16 *taskData, *spriteData; + + taskData = gTasks[taskId].data; + spriteData = gSprites[taskData[4]].data; + + gSprites[taskData[4]].callback = sub_81D9528; + gSprites[spriteData[0]].callback = sub_81D9528; + gSprites[spriteData[1]].callback = sub_81D9528; +} + +static void sub_81D9528(struct Sprite *sprite) +{ + if ((sprite->data[4] & 3) == 0) + { + if (sprite->pos2.x == 1) + sprite->pos2.x = -1; + else + sprite->pos2.x = 1; + } + if (sprite->data[5] == 128) + { + sprite->data[7] = CreateSprite(&sUnknown_0862ACF0, 152, 132, 0); + gSprites[sprite->data[7]].oam.priority = 1; + sprite->data[7] = CreateSprite(&sUnknown_0862ACF0, 224, 132, 0); + gSprites[sprite->data[7]].oam.priority = 1; + gSprites[sprite->data[7]].hFlip = 1; + sprite->data[5]++; + } + if (sprite->data[5] > 127) + { + if (sprite->pos2.y != 32) + { + sprite->data[6]++; + sprite->pos2.y = sprite->data[6] >> 4; + } + } + else + { + sprite->data[5]++; + } + + if (sprite->data[4] % 64 == 0) + PlaySE(SE_W250); + + sprite->data[4]++; +} + +static void sub_81D961C(struct Sprite *sprite) +{ + s16 counter = sprite->data[7]; + if (counter <= 64) + { + sprite->pos2.y += 2; + gSprites[sprite->data[0]].pos2.y += 2; + if (sprite->data[7] == 64) + { + sub_81D9868(sprite, 1, 0, -48); + sprite->data[4] = 5; + sprite->data[5] = -1; + gSprites[sprite->data[0]].data[4] = 3; + gSprites[sprite->data[0]].data[5] = 5; + } + } + else if (counter <= 111) + { + sub_81D97E0(sprite); + if (sprite->data[4] == 0) + PlaySE(SE_BT_START); + if (sprite->data[4] == -3) + sub_81D9868(sprite, 2, 48, 16); + } + else if (counter == 112) + { + gSprites[sprite->data[0]].data[4] = 7; + gSprites[sprite->data[0]].data[5] = 3; + sub_81D97E0(sprite); + } + else if (counter <= 327) + { + sub_81D97E0(sprite); + } + else if (counter == 328) + { + sub_81D97E0(sprite); + sub_81D9868(sprite, 3, 48, 16); + sprite->pos2.x = 1; + gSprites[sprite->data[0]].pos2.x = 1; + PlayCry1(SPECIES_RAYQUAZA, 0); + CreateTask(sub_81D98B4, 0); + } + else + { + switch (counter) + { + case 376: + sprite->pos2.x = 0; + gSprites[sprite->data[0]].pos2.x = 0; + sub_81D97E0(sprite); + sub_81D9868(sprite, 2, 48, 16); + sprite->callback = sub_81D97E0; + return; + case 352: + sub_81D9274(FindTaskIdByFunc(sub_81D8E80)); + break; + } + } + + if (sprite->data[7] > 328 && (sprite->data[7] & 1) == 0) + { + sprite->pos2.x *= -1; + gSprites[sprite->data[0]].pos2.x = sprite->pos2.x; + } + + sprite->data[7]++; +} + +static void sub_81D97E0(struct Sprite *sprite) +{ + struct Sprite *sprite2 = &gSprites[sprite->data[0]]; + if (!(sprite->data[6] & sprite2->data[4])) + { + sprite->pos2.y += sprite->data[4]; + gSprites[sprite->data[0]].pos2.y += sprite->data[4]; + sprite->data[4] += sprite->data[5]; + if (sprite->data[4] >= sprite2->data[5] || sprite->data[4] <= -sprite2->data[5]) + { + if (sprite->data[4] > sprite2->data[5]) + sprite->data[4] = sprite2->data[5]; + else if (sprite->data[4] < -sprite2->data[5]) + sprite->data[4] = -sprite2->data[5]; + + sprite->data[5] *= -1; + } + } + + sprite->data[6]++; +} + +static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y) +{ + struct Sprite *sprite2 = &gSprites[sprite->data[0]]; + + sprite2->pos1.x = sprite->pos1.x + x; + sprite2->pos1.y = sprite->pos1.y + y; + + sprite2->pos2.x = sprite->pos2.x; + sprite2->pos2.y = sprite->pos2.y; + + StartSpriteAnim(sprite, animNum); + StartSpriteAnim(sprite2, animNum); +} + +static void sub_81D98B4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + SetBgAffine(2, 0x4000, 0x4000, 0x78, 0x40, 0x100, 0x100, 0); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + data[4] = 16; + data[0]++; + break; + case 1: + if (data[5] == 8) + PlaySE(SE_JIDO_DOA); + if (data[2] == 2) + { + data[0]++; + } + else + { + data[1] += data[4]; + data[5]++; + if (data[3] % 3 == 0 && data[4] != 4) + data[4] -= 2; + + data[3]++; + SetBgAffine(2, 0x4000, 0x4000, 0x78, 0x40, 0x100 - data[1], 0x100 - data[1], 0); + if (data[1] > 255) + { + data[1] = 0; + data[3] = 0; + data[5] = 0; + data[4] = 16; + data[2]++; + } + } + break; + case 2: + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + DestroyTask(taskId); + break; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index eb26556c4..459905083 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1527,4 +1527,4 @@ gUnknown_0203CF58: @ 203CF58 gUnknown_0203CF5C: @ 203CF5C .space 0x4 -sRayScene: @ 203CF60 + .include "src/rayquaza_scene.o" -- cgit v1.2.3 From 9976e21f6a7175a0f31bec39ab8e35c05cd5946b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 1 Feb 2018 14:53:27 +0100 Subject: give some names ray scene --- src/rayquaza_scene.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index e32655578..0b97c7986 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -34,11 +34,11 @@ struct RaySceneStruct static EWRAM_DATA struct RaySceneStruct *sRayScene = NULL; // this file's functions -static void sub_81D7134(u8 taskId); -static void sub_81D7F4C(u8 taskId); -static void sub_81D84EC(u8 taskId); -static void sub_81D8980(u8 taskId); -static void sub_81D8DB4(u8 taskId); +static void Task_DuoFightAnim(u8 taskId); +static void Task_RayTakesFlightAnim(u8 taskId); +static void Task_RayDescendsAnim(u8 taskId); +static void Task_RayChargesAnim(u8 taskId); +static void Task_RayChasesAwayAnim(u8 taskId); static void sub_81D857C(u8 taskId); static void sub_81D8684(u8 taskId); static void sub_81D89E0(u8 taskId); @@ -89,12 +89,12 @@ static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y); // const rom data static const TaskFunc sTasksForAnimations[] = { - sub_81D7134, // RAY_ANIM_DUO_FIGHT_PRE - sub_81D7134, // RAY_ANIM_DUO_FIGHT - sub_81D7F4C, // RAY_ANIM_TAKES_FLIGHT - sub_81D84EC, // RAY_ANIM_DESCENDS - sub_81D8980, // RAY_ANIM_CHARGES - sub_81D8DB4, // RAY_ANIM_CHACES_AWAY + Task_DuoFightAnim, // RAY_ANIM_DUO_FIGHT_PRE + Task_DuoFightAnim, // RAY_ANIM_DUO_FIGHT + Task_RayTakesFlightAnim, // RAY_ANIM_TAKES_FLIGHT + Task_RayDescendsAnim, // RAY_ANIM_DESCENDS + Task_RayChargesAnim, // RAY_ANIM_CHARGES + Task_RayChasesAwayAnim, // RAY_ANIM_CHACES_AWAY Task_EndAfterFadeScreen // RAY_ANIM_END }; @@ -1538,7 +1538,7 @@ static void sub_81D706C(void) LoadCompressedObjectPalette(&sUnknown_0862A9DC); } -static void sub_81D7134(u8 taskId) +static void Task_DuoFightAnim(u8 taskId) { s16 *data = gTasks[taskId].data; ScanlineEffect_Clear(); @@ -1947,7 +1947,7 @@ static void sub_81D7E9C(void) LoadCompressedObjectPalette(&sUnknown_0862AA98); } -static void sub_81D7F4C(u8 taskId) +static void Task_RayTakesFlightAnim(u8 taskId) { s16 *data = gTasks[taskId].data; PlayNewMapMusic(MUS_REKKUU_KOURIN); @@ -2147,7 +2147,7 @@ static void sub_81D844C(void) } } -static void sub_81D84EC(u8 taskId) +static void Task_RayDescendsAnim(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D82B0(); @@ -2339,7 +2339,7 @@ static void sub_81D88D0(void) LoadCompressedPalette(gRaySceneChase_Pal, 0, 0x80); } -static void sub_81D8980(u8 taskId) +static void Task_RayChargesAnim(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8828(); @@ -2501,7 +2501,7 @@ static void sub_81D8CC4(void) LoadCompressedObjectPalette(&sUnknown_0862AC70); } -static void sub_81D8DB4(u8 taskId) +static void Task_RayChasesAwayAnim(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8C38(); -- cgit v1.2.3 From be08cc06f289374e9dd1e5a86fdf73d217360a91 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 1 Feb 2018 15:32:12 +0100 Subject: more function names in ray scene --- src/rayquaza_scene.c | 62 ++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 0b97c7986..05a015078 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -40,28 +40,28 @@ static void Task_RayDescendsAnim(u8 taskId); static void Task_RayChargesAnim(u8 taskId); static void Task_RayChasesAwayAnim(u8 taskId); static void sub_81D857C(u8 taskId); -static void sub_81D8684(u8 taskId); +static void Task_RayDescendsEnd(u8 taskId); static void sub_81D89E0(u8 taskId); static void sub_81D8AD8(u8 taskId); static void sub_81D8B2C(u8 taskId); -static void sub_81D8BEC(u8 taskId); +static void Task_RayChargesEnd(u8 taskId); static void sub_81D8E80(u8 taskId); static void sub_81D8FB0(u8 taskId); static void sub_81D7228(u8 taskId); static void sub_81D736C(u8 taskId); static void sub_81D752C(u8 taskId); -static void sub_81D7600(u8 taskId); +static void Task_DuoFightEnd(u8 taskId); static void sub_81D7FC0(u8 taskId); static void sub_81D81A4(u8 taskId); -static void sub_81D8164(u8 taskId); +static void Task_RayTakesFlightEnd(u8 taskId); static void sub_81D94D4(u8 taskId); static void sub_81D93D8(u8 taskId); -static void sub_81D9034(u8 taskId); +static void Task_RayChasesAwayEnd(u8 taskId); static void sub_81D90A8(u8 taskId); static void sub_81D98B4(u8 taskId); static void Task_EndAfterFadeScreen(u8 taskId); -static void sub_81D6774(void); -static void sub_81D67D0(void); +static void CB2_InitRayquazaScene(void); +static void CB2_RayquazaScene(void); static void sub_81D750C(void); static void sub_81D7438(void); static void sub_81D7480(void); @@ -83,7 +83,7 @@ static void sub_81D9528(struct Sprite *sprite); static u8 sub_81D7664(void); static u8 sub_81D78BC(void); static u8 sub_81D86CC(void); -static void sub_81D75B4(u8 taskId, s8 palDelay); +static void DuoFightEnd(u8 taskId, s8 palDelay); static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y); // const rom data @@ -1238,10 +1238,10 @@ void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)) sRayScene->animId = animId; sRayScene->callback = callback; sRayScene->onlyOneAnim = onlyOneAnim; - SetMainCallback2(sub_81D6774); + SetMainCallback2(CB2_InitRayquazaScene); } -static void sub_81D6774(void) +static void CB2_InitRayquazaScene(void) { SetVBlankHBlankCallbacksToNull(); clear_scheduled_bg_copies_to_vram(); @@ -1252,10 +1252,10 @@ static void sub_81D6774(void) ResetTasks(); FillPalette(0, 0xF0, 0x20); CreateTask(sTasksForAnimations[sRayScene->animId], 0); - SetMainCallback2(sub_81D67D0); + SetMainCallback2(CB2_RayquazaScene); } -static void sub_81D67D0(void) +static void CB2_RayquazaScene(void) { RunTasks(); AnimateSprites(); @@ -1264,7 +1264,7 @@ static void sub_81D67D0(void) UpdatePaletteFade(); } -static void sub_81D67EC(void) +static void VblankCB_RayquazaScene(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -1336,7 +1336,7 @@ static void sub_81D691C(u8 taskId) switch (counter) { case 328: - sub_81D75B4(taskId, 0); + DuoFightEnd(taskId, 0); return; case 148: sub_81D74C8(); @@ -1495,7 +1495,7 @@ static void sub_81D6D20(struct Sprite *sprite) static void sub_81D6FD0(void) { - sub_81D67EC(); + VblankCB_RayquazaScene(); ScanlineEffect_InitHBlankDmaTransfer(); } @@ -1651,7 +1651,7 @@ static void sub_81D736C(u8 taskId) switch (counter) { case 412: - sub_81D75B4(taskId, 2); + DuoFightEnd(taskId, 2); return; case 380: SetGpuReg(REG_OFFSET_BLDCNT, 0x244); @@ -1712,14 +1712,14 @@ static void sub_81D752C(u8 taskId) } } -static void sub_81D75B4(u8 taskId, s8 palDelay) +static void DuoFightEnd(u8 taskId, s8 palDelay) { PlaySE(SE_T_OOAME_E); BeginNormalPaletteFade(-1, palDelay, 0, 0x10, 0); - gTasks[taskId].func = sub_81D7600; + gTasks[taskId].func = Task_DuoFightEnd; } -static void sub_81D7600(u8 taskId) +static void Task_DuoFightEnd(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D750C(); @@ -1956,7 +1956,7 @@ static void Task_RayTakesFlightAnim(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, 0x250); SetGpuReg(REG_OFFSET_BLDALPHA, 0x808); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(sub_81D67EC); + SetVBlankCallback(VblankCB_RayquazaScene); CreateTask(sub_81D81A4, 0); data[0] = 0; data[1] = 0; @@ -2019,12 +2019,12 @@ static void sub_81D7FC0(u8 taskId) case 3: data[2] += 16; SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32, data[2], data[2], 0); - sub_81D8164(taskId); + Task_RayTakesFlightEnd(taskId); break; } } -static void sub_81D8164(u8 taskId) +static void Task_RayTakesFlightEnd(u8 taskId) { if (!gPaletteFade.active) { @@ -2155,7 +2155,7 @@ static void Task_RayDescendsAnim(u8 taskId) SetGpuRegBits(REG_OFFSET_BLDCNT, 0x1E41); SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(sub_81D67EC); + SetVBlankCallback(VblankCB_RayquazaScene); sRayScene->field_2008 = 0; sRayScene->field_200A = 0; data[0] = 0; @@ -2220,12 +2220,12 @@ static void sub_81D857C(u8 taskId) break; case 4: BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gTasks[taskId].func = sub_81D8684; + gTasks[taskId].func = Task_RayDescendsEnd; break; } } -static void sub_81D8684(u8 taskId) +static void Task_RayDescendsEnd(u8 taskId) { if (!gPaletteFade.active) { @@ -2346,7 +2346,7 @@ static void Task_RayChargesAnim(u8 taskId) sub_81D88D0(); sub_81D68C8(); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(sub_81D67EC); + SetVBlankCallback(VblankCB_RayquazaScene); data[0] = 0; data[1] = 0; data[2] = CreateTask(sub_81D8AD8, 0); @@ -2400,7 +2400,7 @@ static void sub_81D89E0(u8 taskId) break; case 3: BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gTasks[taskId].func = sub_81D8BEC; + gTasks[taskId].func = Task_RayChargesEnd; break; } } @@ -2446,7 +2446,7 @@ static void sub_81D8BB4(void) ChangeBgY(0, 0x800, 1); } -static void sub_81D8BEC(u8 taskId) +static void Task_RayChargesEnd(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8BB4(); @@ -2511,7 +2511,7 @@ static void Task_RayChasesAwayAnim(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, 0x241); SetGpuReg(REG_OFFSET_BLDALPHA, 0xE09); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(sub_81D67EC); + SetVBlankCallback(VblankCB_RayquazaScene); data[0] = 0; data[1] = 0; gTasks[taskId].func = sub_81D8E80; @@ -2575,7 +2575,7 @@ static void sub_81D8E80(u8 taskId) break; case 3: BeginNormalPaletteFade(-1, 4, 0, 0x10, 0); - gTasks[taskId].func = sub_81D9034; + gTasks[taskId].func = Task_RayChasesAwayEnd; break; } } @@ -2597,7 +2597,7 @@ static void sub_81D8FB0(u8 taskId) data[0]++; } -static void sub_81D9034(u8 taskId) +static void Task_RayChasesAwayEnd(u8 taskId) { s16 *data = gTasks[taskId].data; if (!gPaletteFade.active) -- cgit v1.2.3 From af068e74ad55b2c6feb638c790f1f9f0c792f74c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 1 Feb 2018 23:39:53 +0100 Subject: more function names in ray scene --- src/rayquaza_scene.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 05a015078..e2701cd99 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -39,19 +39,19 @@ static void Task_RayTakesFlightAnim(u8 taskId); static void Task_RayDescendsAnim(u8 taskId); static void Task_RayChargesAnim(u8 taskId); static void Task_RayChasesAwayAnim(u8 taskId); -static void sub_81D857C(u8 taskId); +static void Task_HandleRayDescends(u8 taskId); static void Task_RayDescendsEnd(u8 taskId); -static void sub_81D89E0(u8 taskId); +static void Task_HandleRayCharges(u8 taskId); static void sub_81D8AD8(u8 taskId); static void sub_81D8B2C(u8 taskId); static void Task_RayChargesEnd(u8 taskId); -static void sub_81D8E80(u8 taskId); +static void Task_HandleRayChasesAway(u8 taskId); static void sub_81D8FB0(u8 taskId); static void sub_81D7228(u8 taskId); -static void sub_81D736C(u8 taskId); +static void Task_HandleDuoFight(u8 taskId); static void sub_81D752C(u8 taskId); static void Task_DuoFightEnd(u8 taskId); -static void sub_81D7FC0(u8 taskId); +static void Task_HandleRayTakesFlight(u8 taskId); static void sub_81D81A4(u8 taskId); static void Task_RayTakesFlightEnd(u8 taskId); static void sub_81D94D4(u8 taskId); @@ -1316,7 +1316,7 @@ static void sub_81D6904(void) SetGpuReg(REG_OFFSET_WINOUT, 0x3F); } -static void sub_81D691C(u8 taskId) +static void Task_HandleDuoFightPre(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D750C(); @@ -1493,7 +1493,7 @@ static void sub_81D6D20(struct Sprite *sprite) } } -static void sub_81D6FD0(void) +static void VblankCB_DuoFight(void) { VblankCB_RayquazaScene(); ScanlineEffect_InitHBlankDmaTransfer(); @@ -1552,19 +1552,19 @@ static void Task_DuoFightAnim(u8 taskId) { data[2] = sub_81D6984(); data[3] = sub_81D6B7C(); - gTasks[taskId].func = sub_81D691C; + gTasks[taskId].func = Task_HandleDuoFightPre; } else { data[2] = sub_81D7664(); data[3] = sub_81D78BC(); - gTasks[taskId].func = sub_81D736C; + gTasks[taskId].func = Task_HandleDuoFight; StopMapMusic(); } BlendPalettes(-1, 0x10, 0); BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); - SetVBlankCallback(sub_81D6FD0); + SetVBlankCallback(VblankCB_DuoFight); PlaySE(SE_T_OOAME); } @@ -1627,7 +1627,7 @@ static void sub_81D7228(u8 taskId) } } -static void sub_81D736C(u8 taskId) +static void Task_HandleDuoFight(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D750C(); @@ -1960,10 +1960,10 @@ static void Task_RayTakesFlightAnim(u8 taskId) CreateTask(sub_81D81A4, 0); data[0] = 0; data[1] = 0; - gTasks[taskId].func = sub_81D7FC0; + gTasks[taskId].func = Task_HandleRayTakesFlight; } -static void sub_81D7FC0(u8 taskId) +static void Task_HandleRayTakesFlight(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -2163,10 +2163,10 @@ static void Task_RayDescendsAnim(u8 taskId) data[2] = 0; data[3] = 0; data[4] = 0x1000; - gTasks[taskId].func = sub_81D857C; + gTasks[taskId].func = Task_HandleRayDescends; } -static void sub_81D857C(u8 taskId) +static void Task_HandleRayDescends(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -2350,10 +2350,10 @@ static void Task_RayChargesAnim(u8 taskId) data[0] = 0; data[1] = 0; data[2] = CreateTask(sub_81D8AD8, 0); - gTasks[taskId].func = sub_81D89E0; + gTasks[taskId].func = Task_HandleRayCharges; } -static void sub_81D89E0(u8 taskId) +static void Task_HandleRayCharges(u8 taskId) { s16 *data = gTasks[taskId].data; sub_81D8BB4(); @@ -2514,7 +2514,7 @@ static void Task_RayChasesAwayAnim(u8 taskId) SetVBlankCallback(VblankCB_RayquazaScene); data[0] = 0; data[1] = 0; - gTasks[taskId].func = sub_81D8E80; + gTasks[taskId].func = Task_HandleRayChasesAway; data[2] = CreateTask(sub_81D8FB0, 0); gTasks[data[2]].data[0] = 0; gTasks[data[2]].data[1] = 0; @@ -2523,7 +2523,7 @@ static void Task_RayChasesAwayAnim(u8 taskId) gTasks[data[2]].data[4] = 1; } -static void sub_81D8E80(u8 taskId) +static void Task_HandleRayChasesAway(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -2837,7 +2837,7 @@ static void sub_81D961C(struct Sprite *sprite) sprite->callback = sub_81D97E0; return; case 352: - sub_81D9274(FindTaskIdByFunc(sub_81D8E80)); + sub_81D9274(FindTaskIdByFunc(Task_HandleRayChasesAway)); break; } } -- cgit v1.2.3 From 14d2caaf8dbaaaad4850407a6ec9396bb8769bab Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 12:32:12 +0100 Subject: start decompiling berry tag screen --- asm/berry_tag_screen.s | 831 +-------------------------------------------- asm/item_menu_icons.s | 6 +- data/berry_tag_screen.s | 34 -- include/berry_tag_screen.h | 6 + include/graphics.h | 6 + include/item_menu_icons.h | 4 + include/item_use.h | 54 +++ include/menu_helpers.h | 1 + include/strings.h | 13 + ld_script.txt | 3 +- src/berry_tag_screen.c | 412 ++++++++++++++++++++++ sym_ewram.txt | 2 +- 12 files changed, 512 insertions(+), 860 deletions(-) delete mode 100644 data/berry_tag_screen.s create mode 100644 include/berry_tag_screen.h create mode 100644 include/item_use.h create mode 100644 src/berry_tag_screen.c diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s index 8a32f5b3a..422ea2f85 100644 --- a/asm/berry_tag_screen.s +++ b/asm/berry_tag_screen.s @@ -5,824 +5,13 @@ .text - thumb_func_start sub_8177C14 -sub_8177C14: @ 8177C14 - push {r4,lr} - ldr r4, =gUnknown_0203BCF4 - ldr r0, =0x0000180c - bl AllocZeroed - str r0, [r4] - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemIdToBerryType - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xC0 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - ldr r0, =sub_8177C84 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8177C14 - - thumb_func_start sub_8177C54 -sub_8177C54: @ 8177C54 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8177C54 - - thumb_func_start sub_8177C70 -sub_8177C70: @ 8177C70 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8177C70 - - thumb_func_start sub_8177C84 -sub_8177C84: @ 8177C84 - push {lr} -_08177C86: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08177CAA - bl sub_8177CB0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08177CAA - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08177C86 -_08177CAA: - pop {r0} - bx r0 - thumb_func_end sub_8177C84 - - thumb_func_start sub_8177CB0 -sub_8177CB0: @ 8177CB0 - push {lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xF - bls _08177CC4 - b _08177DF4 -_08177CC4: - lsls r0, 2 - ldr r1, =_08177CD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08177CD8: - .4byte _08177D18 - .4byte _08177D26 - .4byte _08177D2C - .4byte _08177D40 - .4byte _08177D46 - .4byte _08177D4C - .4byte _08177D5C - .4byte _08177D78 - .4byte _08177D84 - .4byte _08177D8A - .4byte _08177D90 - .4byte _08177D96 - .4byte _08177D9C - .4byte _08177DA6 - .4byte _08177DB4 - .4byte _08177DC2 -_08177D18: - bl SetVBlankHBlankCallbacksToNull - bl ResetVramOamAndBgCntRegs - bl clear_scheduled_bg_copies_to_vram - b _08177DDC -_08177D26: - bl ScanlineEffect_Stop - b _08177DDC -_08177D2C: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _08177DDA - .pool -_08177D40: - bl ResetSpriteData - b _08177DDC -_08177D46: - bl FreeAllSpritePalettes - b _08177DDC -_08177D4C: - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _08177DDC - bl ResetTasks - b _08177DDC -_08177D5C: - bl sub_8177E14 - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - ldr r1, =0x00001808 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _08177DDC - .pool -_08177D78: - bl sub_8177E88 - lsls r0, 24 - cmp r0, 0 - beq _08177E0C - b _08177DDC -_08177D84: - bl sub_8178008 - b _08177DDC -_08177D8A: - bl sub_8178090 - b _08177DDC -_08177D90: - bl sub_81780F4 - b _08177DDC -_08177D96: - bl sub_8178338 - b _08177DDC -_08177D9C: - bl sub_817839C - bl sub_8178404 - b _08177DDC -_08177DA6: - ldr r0, =sub_8178654 - movs r1, 0 - bl CreateTask - b _08177DDC - .pool -_08177DB4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _08177DDC -_08177DC2: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_08177DDA: - strb r0, [r2, 0x8] -_08177DDC: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08177E0C - .pool -_08177DF4: - ldr r0, =sub_8177C70 - bl SetVBlankCallback - ldr r0, =sub_8177C54 - bl SetMainCallback2 - movs r0, 0x1 - b _08177E0E - .pool -_08177E0C: - movs r0, 0 -_08177E0E: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_8177CB0 - - thumb_func_start sub_8177E14 -sub_8177E14: @ 8177E14 - push {r4,lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085EFCF0 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203BCF4 - ldr r1, [r4] - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 4 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8177E14 - - thumb_func_start sub_8177E88 -sub_8177E88: @ 8177E88 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0203BCF4 - ldr r0, [r1] - ldr r2, =0x00001808 - adds r0, r2 - ldrh r0, [r0] - adds r7, r1, 0 - cmp r0, 0x5 - bls _08177E9E - b _08177FEC -_08177E9E: - lsls r0, 2 - ldr r1, =_08177EB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08177EB4: - .4byte _08177ECC - .4byte _08177EF8 - .4byte _08177F1C - .4byte _08177F3C - .4byte _08177FA8 - .4byte _08177FC8 -_08177ECC: - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D9BB44 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0203BCF4 - ldr r1, [r0] - ldr r0, =0x00001808 - adds r1, r0 - b _08177FD6 - .pool -_08177EF8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08177F06 - b _08177FFC -_08177F06: - ldr r0, =gUnknown_08D9BF98 - ldr r4, =gUnknown_0203BCF4 - ldr r1, [r4] - bl LZDecompressWram - ldr r1, [r4] - b _08177FD2 - .pool -_08177F1C: - ldr r0, =gUnknown_08D9C13C - ldr r1, [r7] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - bl LZDecompressWram - ldr r1, [r7] - ldr r0, =0x00001808 - adds r1, r0 - b _08177FD6 - .pool -_08177F3C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08177F78 - movs r2, 0 - ldr r6, =gUnknown_0203BCF4 - movs r5, 0x80 - lsls r5, 4 - ldr r4, =0x00004042 - ldr r3, =0x000003ff -_08177F52: - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r5 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08177F52 - b _08177F98 - .pool -_08177F78: - movs r2, 0 - ldr r6, =gUnknown_0203BCF4 - movs r5, 0x80 - lsls r5, 4 - ldr r4, =0x00005042 - ldr r3, =0x000003ff -_08177F84: - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r5 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08177F84 -_08177F98: - ldr r1, [r7] - b _08177FD2 - .pool -_08177FA8: - ldr r0, =gUnknown_08D9BEF0 - movs r1, 0 - movs r2, 0xC0 - bl LoadCompressedPalette - ldr r0, =gUnknown_0203BCF4 - ldr r1, [r0] - ldr r0, =0x00001808 - adds r1, r0 - b _08177FD6 - .pool -_08177FC8: - ldr r0, =gUnknown_0857FDEC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0203BCF4 - ldr r1, [r0] -_08177FD2: - ldr r2, =0x00001808 - adds r1, r2 -_08177FD6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08177FFC - .pool -_08177FEC: - ldr r0, =gUnknown_0857FDF4 - bl LoadCompressedObjectPalette - movs r0, 0x1 - b _08177FFE - .pool -_08177FFC: - movs r0, 0 -_08177FFE: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8177E88 - - thumb_func_start sub_8178008 -sub_8178008: @ 8178008 - push {r4,lr} - ldr r0, =gUnknown_085EFD28 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_085EFD00 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_08178020: - lsls r0, r4, 24 - lsrs r0, 24 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08178020 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178008 - - thumb_func_start sub_817804C -sub_817804C: @ 817804C - push {r4-r6,lr} - sub sp, 0x14 - ldr r6, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_085EFD20 - adds r4, r5 - str r4, [sp, 0x8] - lsls r6, 24 - asrs r6, 24 - str r6, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParameterized2 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817804C - - thumb_func_start sub_8178090 -sub_8178090: @ 8178090 - push {r4,lr} - sub sp, 0x8 - movs r0, 0 - bl GetBgTilemapBuffer - ldr r1, =gUnknown_0203BCF4 - ldr r1, [r1] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - movs r2, 0x80 - lsls r2, 4 - bl memcpy - movs r0, 0x3 - movs r1, 0xFF - bl FillWindowPixelBuffer - ldr r4, =gText_BerryTag - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x3 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_817804C - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178090 - - thumb_func_start sub_81780F4 -sub_81780F4: @ 81780F4 - push {lr} - bl sub_8178110 - bl sub_8178174 - bl itemid_copy_name - bl sub_81782D0 - bl sub_8178304 - pop {r0} - bx r0 - thumb_func_end sub_81780F4 - - thumb_func_start sub_8178110 -sub_8178110: @ 8178110 - push {r4-r6,lr} - sub sp, 0x8 - ldr r5, =gUnknown_0203BCF4 - ldr r0, [r5] - movs r4, 0xC0 - lsls r4, 5 - adds r0, r4 - ldrb r0, [r0] - bl GetBerryInfo - adds r6, r0, 0 - ldr r0, =gStringVar1 - ldr r1, [r5] - adds r1, r4 - ldrh r1, [r1] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar2 - adds r1, r6, 0 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_UnkF908Var1Var2 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_817804C - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178110 - - thumb_func_start sub_8178174 -sub_8178174: @ 8178174 - push {r4-r7,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r4, r0, 0 - ldr r2, =gText_SizeSlash - movs r7, 0x1 - str r7, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldrh r0, [r4, 0x8] - cmp r0, 0 - beq _08178230 - adds r1, r0, 0 - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - movs r1, 0xFE - bl __divsi3 - adds r5, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _081781C8 - adds r5, 0xA -_081781C8: - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - movs r1, 0xA - bl __udivsi3 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0x64 - bl __udivsi3 - adds r5, r0, 0 - ldr r0, =gStringVar1 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_Var1DotVar2 - adds r0, r4, 0 - bl StringExpandPlaceholders - str r7, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x28 - bl PrintTextOnWindow - b _08178242 - .pool -_08178230: - ldr r2, =gText_ThreeMarks - str r7, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x28 - bl PrintTextOnWindow -_08178242: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178174 - - thumb_func_start itemid_copy_name -itemid_copy_name: @ 8178250 - push {r4-r6,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r6, r0, 0 - ldr r2, =gText_FirmSlash - movs r5, 0x11 - str r5, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _081782B0 - ldr r0, =gBerryFirmnessStringPointers - ldrb r1, [r6, 0x7] - subs r1, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x28 - bl PrintTextOnWindow - b _081782C2 - .pool -_081782B0: - ldr r2, =gText_ThreeMarks - str r5, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x28 - bl PrintTextOnWindow -_081782C2: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end itemid_copy_name - - thumb_func_start sub_81782D0 -sub_81782D0: @ 81782D0 - push {lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - ldr r2, [r0, 0xC] - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81782D0 - thumb_func_start sub_8178304 -sub_8178304: @ 8178304 - push {lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - ldr r2, [r0, 0x10] - movs r0, 0x11 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178304 - thumb_func_start sub_8178338 -sub_8178338: @ 8178338 - push {r4,lr} - ldr r4, =gUnknown_0203BCF4 - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x38 - movs r2, 0x40 - bl sub_80D50D4 - ldr r1, [r4] - ldr r2, =0x00001802 - adds r1, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178338 thumb_func_start sub_817836C sub_817836C: @ 817836C push {lr} - ldr r0, =gUnknown_0203BCF4 + ldr r0, =sBerryTag ldr r0, [r0] ldr r1, =0x00001802 adds r0, r1 @@ -844,7 +33,7 @@ sub_817839C: @ 817839C push {r4,lr} movs r0, 0x40 bl sub_80D518C - ldr r4, =gUnknown_0203BCF4 + ldr r4, =sBerryTag ldr r1, [r4] ldr r2, =0x00001803 adds r1, r2 @@ -882,7 +71,7 @@ sub_817839C: @ 817839C thumb_func_start sub_8178404 sub_8178404: @ 8178404 push {r4,r5,lr} - ldr r4, =gUnknown_0203BCF4 + ldr r4, =sBerryTag ldr r0, [r4] movs r1, 0xC0 lsls r1, 5 @@ -929,7 +118,7 @@ _08178462: ldrb r0, [r5, 0x16] cmp r0, 0 beq _0817849C - ldr r3, =gUnknown_0203BCF4 + ldr r3, =sBerryTag ldr r0, [r3] ldr r1, =0x00001804 adds r0, r1 @@ -946,7 +135,7 @@ _08178462: b _081784B6 .pool _0817849C: - ldr r3, =gUnknown_0203BCF4 + ldr r3, =sBerryTag ldr r0, [r3] ldr r1, =0x00001804 adds r0, r1 @@ -1071,7 +260,7 @@ sub_8178594: @ 8178594 push {r4,lr} movs r4, 0 _08178598: - ldr r0, =gUnknown_0203BCF4 + ldr r0, =sBerryTag ldr r0, [r0] ldr r1, =0x00001803 adds r0, r1 @@ -1137,7 +326,7 @@ sub_8178610: @ 8178610 bne _08178642 bl sub_817836C bl sub_8178594 - ldr r0, =gUnknown_0203BCF4 + ldr r0, =sBerryTag ldr r0, [r0] bl Free bl FreeAllWindowBuffers @@ -1312,7 +501,7 @@ _0817877A: lsls r0, 16 lsrs r0, 16 bl ItemIdToBerryType - ldr r1, =gUnknown_0203BCF4 + ldr r1, =sBerryTag ldr r1, [r1] lsls r0, 24 lsrs r0, 24 @@ -1445,7 +634,7 @@ _0817887E: movs r0, 0x1 b _0817889A _08178882: - bl itemid_copy_name + bl sub_8178250 b _081788A6 _08178888: bl sub_8178174 @@ -1476,7 +665,7 @@ _081788B8: ldrh r5, [r6] _081788BA: ldr r2, =gSprites - ldr r3, =gUnknown_0203BCF4 + ldr r3, =sBerryTag ldr r0, [r3] ldr r1, =0x00001802 adds r0, r1 diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s index 1adc0feb7..2ef0e4913 100644 --- a/asm/item_menu_icons.s +++ b/asm/item_menu_icons.s @@ -527,8 +527,8 @@ _080D5082: .pool thumb_func_end sub_80D5070 - thumb_func_start sub_80D50D4 -sub_80D50D4: @ 80D50D4 + thumb_func_start CreateBerryTagSprite +CreateBerryTagSprite: @ 80D50D4 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 @@ -554,7 +554,7 @@ sub_80D50D4: @ 80D50D4 pop {r1} bx r1 .pool - thumb_func_end sub_80D50D4 + thumb_func_end CreateBerryTagSprite thumb_func_start sub_80D510C sub_80D510C: @ 80D510C diff --git a/data/berry_tag_screen.s b/data/berry_tag_screen.s deleted file mode 100644 index 13078e8e5..000000000 --- a/data/berry_tag_screen.s +++ /dev/null @@ -1,34 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085EFCF0:: @ 85EFCF0 - .4byte 0x000001f0, 0x000011e1, 0x000021d2, 0x000031c3 - - .align 2 -gUnknown_085EFD00:: @ 85EFD00 - .incbin "graphics/interface/berry_tag_screen.gbapal" - - .align 2 -gUnknown_085EFD20:: @ 85EFD20 struct TextColor - .byte 0x00, 0x02, 0x03 - - .byte 0x0F, 0x0E, 0x0D - - .align 2 -gUnknown_085EFD28:: @ 85EFD28 - window_template 0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045 - window_template 0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055 - window_template 0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d - window_template 0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101 - null_window_template - - .align 2 -gBerryFirmnessStringPointers:: @ 85EFD50 - .4byte gBerryFirmnessString_VerySoft - .4byte gBerryFirmnessString_Soft - .4byte gBerryFirmnessString_Hard - .4byte gBerryFirmnessString_VeryHard - .4byte gBerryFirmnessString_SuperHard diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h new file mode 100644 index 000000000..60932ff80 --- /dev/null +++ b/include/berry_tag_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_TAG_SCREEN_H +#define GUARD_BERRY_TAG_SCREEN_H + +void BerryTagScreen_814625C(u8 taskId); + +#endif // GUARD_BERRY_TAG_SCREEN_H diff --git a/include/graphics.h b/include/graphics.h index 5917e9d2a..6731dc973 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2654,6 +2654,12 @@ extern const u8 gBattleTerrainPalette_StadiumWallace[]; extern const u8 gPokedexMenu2_Gfx[]; extern const u8 gPokedexText_Pal[]; +// berry tag screen +extern const u8 gUnknown_08D9BB44[]; +extern const u8 gUnknown_08D9BF98[]; +extern const u8 gUnknown_08D9C13C[]; +extern const u8 gUnknown_08D9BEF0[]; + // rayquaza scene gfx extern const u8 gRaySceneGroudon_Gfx[]; extern const u8 gRaySceneGroudon2_Gfx[]; diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 553e7c262..c4f7ac92b 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -1,6 +1,10 @@ #ifndef GUARD_ITEM_MENU_ICONS #define GUARD_ITEM_MENU_ICONS +extern const struct CompressedSpriteSheet gUnknown_0857FDEC; +extern const struct CompressedSpritePalette gUnknown_0857FDF4; + u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3); +u8 CreateBerryTagSprite(u8 id, s16 x, s16 y); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/item_use.h b/include/item_use.h new file mode 100644 index 000000000..ee7939824 --- /dev/null +++ b/include/item_use.h @@ -0,0 +1,54 @@ +#ifndef GUARD_ITEM_USE_H +#define GUARD_ITEM_USE_H + +extern u16 gSpecialVar_ItemId; + +void ItemUseOutOfBattle_Mail(u8); +void ItemUseOutOfBattle_Bike(u8); +void ItemUseOnFieldCB_Bike(u8); +void ItemUseOutOfBattle_Rod(u8); +void ItemUseOnFieldCB_Rod(u8); +void ItemUseOutOfBattle_Itemfinder(u8); +void ItemUseOnFieldCB_Itemfinder(u8); +void RunItemfinderResults(u8); +void ExitItemfinder(u8); +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8); +void sub_80C9720(u8); +void sub_80C9838(u8, s16, s16); +u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); +void SetPlayerDirectionTowardsItem(u8); +void DisplayItemRespondingMessageAndExitItemfinder(u8); +void RotatePlayerAndExitItemfinder(u8); +void ItemUseOutOfBattle_PokeblockCase(u8); +void ItemUseOutOfBattle_CoinCase(u8); +void ItemUseOutOfBattle_SSTicket(u8); +void sub_80C9D00(u8); +void ItemUseOutOfBattle_WailmerPail(u8); +void sub_80C9D74(u8); +void ItemUseOutOfBattle_Medicine(u8); +void ItemUseOutOfBattle_SacredAsh(u8); +void ItemUseOutOfBattle_PPRecovery(u8); +void ItemUseOutOfBattle_PPUp(u8); +void ItemUseOutOfBattle_RareCandy(u8); +void ItemUseOutOfBattle_TMHM(u8); +void sub_80C9EE4(u8); +void sub_80C9F10(u8); +void sub_80C9F80(u8); +void sub_80C9FC0(u8); +void ItemUseOutOfBattle_Repel(u8); +void ItemUseOutOfBattle_BlackWhiteFlute(u8); +void task08_080A1C44(u8); +u8 CanUseEscapeRopeOnCurrMap(void); +void ItemUseOutOfBattle_EscapeRope(u8); +void ItemUseOutOfBattle_EvolutionStone(u8); +void ItemUseInBattle_PokeBall(u8); +void ItemUseInBattle_StatIncrease(u8); +void ItemUseInBattle_Medicine(u8); +void ItemUseInBattle_PPRecovery(u8); +void ItemUseInBattle_Escape(u8); +void ItemUseOutOfBattle_EnigmaBerry(u8); +void ItemUseInBattle_EnigmaBerry(u8); +void ItemUseOutOfBattle_CannotUse(u8); +u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); + +#endif // GUARD_ITEM_USE_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 14b6d32ca..a91c89645 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -17,6 +17,7 @@ void sub_812225C(u16 *, u16 *, u8, u8); void sub_8122298(u16 *, u16 *, u8, u8, u8); void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data); bool8 sub_81221AC(void); +bool8 sub_81221EC(void); void ResetVramOamAndBgCntRegs(void); void SetVBlankHBlankCallbacksToNull(void); void ResetAllBgsCoordinates(void); diff --git a/include/strings.h b/include/strings.h index 305007c5d..9c998ca51 100644 --- a/include/strings.h +++ b/include/strings.h @@ -210,4 +210,17 @@ extern const u8 gText_LoadingEvent[]; extern const u8 gText_DontRemoveCableTurnOff[]; extern const u8 gText_LinkStandby2[]; +// berry tag screen text +extern const u8 gBerryFirmnessString_VerySoft[]; +extern const u8 gBerryFirmnessString_Soft[]; +extern const u8 gBerryFirmnessString_Hard[]; +extern const u8 gBerryFirmnessString_VeryHard[]; +extern const u8 gBerryFirmnessString_SuperHard[]; +extern const u8 gText_BerryTag[]; +extern const u8 gText_UnkF908Var1Var2[]; +extern const u8 gText_SizeSlash[]; +extern const u8 gText_Var1DotVar2[]; +extern const u8 gText_ThreeMarks[]; +extern const u8 gText_FirmSlash[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 345afb27f..ec8840ebc 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -229,6 +229,7 @@ SECTIONS { asm/credits.o(.text); src/lottery_corner.o(.text); src/diploma.o(.text); + src/berry_tag_screen.o(.text); asm/berry_tag_screen.o(.text); src/mystery_event_menu.o(.text); src/save_failed_screen.o(.text); @@ -504,7 +505,7 @@ SECTIONS { src/lottery_corner.o(.rodata); src/diploma.o(.rodata); data/strings.o(.rodata); - data/berry_tag_screen.o(.rodata); + src/berry_tag_screen.o(.rodata); src/mystery_event_menu.o(.rodata); src/save_failed_screen.o(.rodata); data/braille_puzzles.o(.rodata); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c new file mode 100644 index 000000000..365fd5120 --- /dev/null +++ b/src/berry_tag_screen.c @@ -0,0 +1,412 @@ +#include "global.h" +#include "berry_tag_screen.h" +#include "berry.h" +#include "decompress.h" +#include "field_map_obj.h" +#include "item_menu.h" +#include "constants/items.h" +#include "item_use.h" +#include "main.h" +#include "menu.h" +#include "text.h" +#include "window.h" +#include "task.h" +#include "menu_helpers.h" +#include "palette.h" +#include "overworld.h" +#include "constants/songs.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "bg.h" +#include "malloc.h" +#include "scanline_effect.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "item_menu_icons.h" +#include "decompress.h" +#include "international_string_util.h" + +// const rom data +const struct BgTemplate gUnknown_085EFCF0[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +const u16 gUnknown_085EFD00[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); + +const struct TextColor gUnknown_085EFD20[] = +{ + {0, 2, 3}, + {15, 14, 13} +}; + +const struct WindowTemplate gUnknown_085EFD28[] = +{ + {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, + {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, + {0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d}, + {0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101}, + DUMMY_WIN_TEMPLATE +}; + +const u8 *const gBerryFirmnessStringPointers[] = +{ + gBerryFirmnessString_VerySoft, + gBerryFirmnessString_Soft, + gBerryFirmnessString_Hard, + gBerryFirmnessString_VeryHard, + gBerryFirmnessString_SuperHard +}; + +// this file's functions +void sub_8177C84(void); +void sub_8177E14(void); +void sub_8178008(void); +void sub_8178090(void); +void sub_81780F4(void); +void sub_8178338(void); +void sub_817839C(void); +void sub_8178404(void); +void sub_8178110(void); +void sub_8178174(void); +void sub_8178250(void); +void sub_81782D0(void); +void sub_8178304(void); +bool8 sub_8177CB0(void); +bool8 sub_8177E88(void); +void sub_8178654(u8 taskId); + +// code +struct BerryTagScreenStruct +{ + u16 tilemapBuffers[3][0x400]; + u16 berryId; + u8 berrySpriteId; + u16 field_1804; + u16 field_1806; + u16 field_1808; +}; + +extern struct BerryTagScreenStruct *sBerryTag; + +void sub_8177C14(void) +{ + sBerryTag = AllocZeroed(0x180C); + sBerryTag->berryId = ItemIdToBerryType(gSpecialVar_ItemId); + SetMainCallback2(sub_8177C84); +} + +void sub_8177C54(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +void sub_8177C70(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8177C84(void) +{ + while (1) + { + if (sub_81221EC() == TRUE) + break; + if (sub_8177CB0() == TRUE) + break; + if (sub_81221AC() == TRUE) + break; + } +} + +bool8 sub_8177CB0(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankHBlankCallbacksToNull(); + ResetVramOamAndBgCntRegs(); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = 1; + gMain.state++; + break; + case 3: + ResetSpriteData(); + gMain.state++; + break; + case 4: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 5: + if (!sub_81221AC()) + ResetTasks(); + gMain.state++; + break; + case 6: + sub_8177E14(); + sBerryTag->field_1808 = 0; + gMain.state++; + break; + case 7: + if (sub_8177E88()) + gMain.state++; + break; + case 8: + sub_8178008(); + gMain.state++; + break; + case 9: + sub_8178090(); + gMain.state++; + break; + case 10: + sub_81780F4(); + gMain.state++; + break; + case 11: + sub_8178338(); + gMain.state++; + break; + case 12: + sub_817839C(); + sub_8178404(); + gMain.state++; + break; + case 13: + CreateTask(sub_8178654, 0); + gMain.state++; + break; + case 14: + BlendPalettes(-1, 0x10, 0); + gMain.state++; + break; + case 15: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + gPaletteFade.bufferTransferDisabled = 0; + gMain.state++; + break; + default: // done + SetVBlankCallback(sub_8177C70); + SetMainCallback2(sub_8177C54); + return TRUE; + } + + return FALSE; +} + +void sub_8177E14(void) +{ + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085EFCF0, ARRAY_COUNT(gUnknown_085EFCF0)); + SetBgTilemapBuffer(2, sBerryTag->tilemapBuffers[0]); + SetBgTilemapBuffer(3, sBerryTag->tilemapBuffers[1]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(2); + schedule_bg_copy_tilemap_to_vram(3); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); +} + +bool8 sub_8177E88(void) +{ + u16 i; + + switch (sBerryTag->field_1808) + { + case 0: + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(2, gUnknown_08D9BB44, 0, 0, 0); + sBerryTag->field_1808++; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() != TRUE) + { + LZDecompressWram(gUnknown_08D9BF98, sBerryTag->tilemapBuffers[0]); + sBerryTag->field_1808++; + } + break; + case 2: + LZDecompressWram(gUnknown_08D9C13C, sBerryTag->tilemapBuffers[2]); + sBerryTag->field_1808++; + break; + case 3: + if (gSaveBlock2Ptr->playerGender == MALE) + { + for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++) + sBerryTag->tilemapBuffers[1][i] = 0x4042; + } + else + { + for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++) + sBerryTag->tilemapBuffers[1][i] = 0x5042; + } + sBerryTag->field_1808++; + break; + case 4: + LoadCompressedPalette(gUnknown_08D9BEF0, 0, 0xC0); + sBerryTag->field_1808++; + break; + case 5: + LoadCompressedObjectPic(&gUnknown_0857FDEC); + sBerryTag->field_1808++; + break; + default: + LoadCompressedObjectPalette(&gUnknown_0857FDF4); + return TRUE; // done + } + + return FALSE; +} + +void sub_8178008(void) +{ + u16 i; + + InitWindows(gUnknown_085EFD28); + DeactivateAllTextPrinters(); + LoadPalette(gUnknown_085EFD00, 0xF0, 0x20); + for (i = 0; i < ARRAY_COUNT(gUnknown_085EFD28) - 1; i++) + PutWindowTilemap(i); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); +} + +void sub_817804C(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) +{ + AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, &gUnknown_085EFD20[colorStructId], speed, text); +} + +void sub_8178090(void) +{ + memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); + FillWindowPixelBuffer(3, 0xFF); + sub_817804C(3, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); + PutWindowTilemap(3); + schedule_bg_copy_tilemap_to_vram(0); +} + +void sub_81780F4(void) +{ + sub_8178110(); + sub_8178174(); + sub_8178250(); + sub_81782D0(); + sub_8178304(); +} + +void sub_8178110(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, 2, 2); + StringCopy(gStringVar2, berry->name); + StringExpandPlaceholders(gStringVar4, gText_UnkF908Var1Var2); + sub_817804C(0, gStringVar4, 0, 1, 0, 0); +} + +void sub_8178174(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(1, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); + if (berry->size != 0) + { + u32 inches, fraction; + + inches = 1000 * berry->size / 254; + if (inches % 10 > 4) + inches += 10; + fraction = (inches % 100) / 10; + inches /= 100; + + ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2); + ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2); + StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2); + PrintTextOnWindow(1, 1, gStringVar4, 0x28, 1, 0, NULL); + } + else + { + PrintTextOnWindow(1, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); + } +} + +void sub_8178250(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(1, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); + if (berry->firmness != 0) + PrintTextOnWindow(1, 1, gBerryFirmnessStringPointers[berry->firmness - 1], 0x28, 0x11, 0, NULL); + else + PrintTextOnWindow(1, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); +} + +void sub_81782D0(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(2, 1, berry->description1, 0, 1, 0, NULL); +} + +void sub_8178304(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(2, 1, berry->description2, 0, 0x11, 0, NULL); +} + +void sub_8178338(void) +{ + sBerryTag->berrySpriteId = CreateBerryTagSprite(sBerryTag->berryId - 1, 56, 64); +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 67911a3cc..6fdacb5c0 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1267,7 +1267,7 @@ gUnknown_0203BCE8: @ 203BCE8 .include "src/lottery_corner.o" .include "src/diploma.o" -gUnknown_0203BCF4: @ 203BCF4 +sBerryTag: @ 203BCF4 .space 0x4 .include "src/mystery_event_menu.o" -- cgit v1.2.3 From ebc8af50f10ac6b8bcaf5215a72e6219d053f732 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 14:03:48 +0100 Subject: decompile berry tag screen --- asm/berry_tag_screen.s | 727 --------------------------------------------- asm/item_menu.s | 2 +- asm/item_menu_icons.s | 12 +- include/berry_tag_screen.h | 2 +- include/item.h | 1 + include/item_menu.h | 13 + include/item_menu_icons.h | 2 + ld_script.txt | 1 - src/berry_tag_screen.c | 311 ++++++++++++++++--- 9 files changed, 295 insertions(+), 776 deletions(-) delete mode 100644 asm/berry_tag_screen.s diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s deleted file mode 100644 index 422ea2f85..000000000 --- a/asm/berry_tag_screen.s +++ /dev/null @@ -1,727 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - - thumb_func_start sub_817836C -sub_817836C: @ 817836C - push {lr} - ldr r0, =sBerryTag - ldr r0, [r0] - ldr r1, =0x00001802 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - bl sub_80D510C - pop {r0} - bx r0 - .pool - thumb_func_end sub_817836C - - thumb_func_start sub_817839C -sub_817839C: @ 817839C - push {r4,lr} - movs r0, 0x40 - bl sub_80D518C - ldr r4, =sBerryTag - ldr r1, [r4] - ldr r2, =0x00001803 - adds r1, r2 - strb r0, [r1] - movs r0, 0x68 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001804 - adds r1, r2 - strb r0, [r1] - movs r0, 0x90 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001805 - adds r1, r2 - strb r0, [r1] - movs r0, 0xB8 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001806 - adds r1, r2 - strb r0, [r1] - movs r0, 0xE0 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001807 - adds r1, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817839C - - thumb_func_start sub_8178404 -sub_8178404: @ 8178404 - push {r4,r5,lr} - ldr r4, =sBerryTag - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r5, r0, 0 - ldrb r0, [r5, 0x15] - cmp r0, 0 - beq _08178448 - ldr r3, =gSprites - ldr r0, [r4] - ldr r1, =0x00001803 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _08178462 - .pool -_08178448: - ldr r3, =gSprites - ldr r0, [r4] - ldr r1, =0x00001803 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178462: - strb r1, [r0] - adds r4, r3, 0 - ldrb r0, [r5, 0x16] - cmp r0, 0 - beq _0817849C - ldr r3, =sBerryTag - ldr r0, [r3] - ldr r1, =0x00001804 - adds r0, r1 - ldrb r1, [r0] - 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 - b _081784B6 - .pool -_0817849C: - ldr r3, =sBerryTag - ldr r0, [r3] - ldr r1, =0x00001804 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_081784B6: - strb r1, [r0] - ldrb r0, [r5, 0x17] - cmp r0, 0 - beq _081784E8 - ldr r0, [r3] - ldr r1, =0x00001805 - adds r0, r1 - ldrb r1, [r0] - 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 - b _08178500 - .pool -_081784E8: - ldr r0, [r3] - ldr r1, =0x00001805 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178500: - strb r1, [r0] - ldrb r0, [r5, 0x18] - cmp r0, 0 - beq _0817852C - ldr r0, [r3] - ldr r1, =0x00001806 - adds r0, r1 - ldrb r1, [r0] - 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 - b _08178544 - .pool -_0817852C: - ldr r0, [r3] - ldr r1, =0x00001806 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178544: - strb r1, [r0] - ldrb r0, [r5, 0x19] - cmp r0, 0 - beq _08178570 - ldr r0, [r3] - ldr r1, =0x00001807 - adds r0, r1 - ldrb r1, [r0] - 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 - b _08178588 - .pool -_08178570: - ldr r0, [r3] - ldr r1, =0x00001807 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178588: - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178404 - - thumb_func_start sub_8178594 -sub_8178594: @ 8178594 - push {r4,lr} - movs r4, 0 -_08178598: - ldr r0, =sBerryTag - ldr r0, [r0] - ldr r1, =0x00001803 - adds r0, r1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08178598 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178594 - - thumb_func_start sub_81785D0 -sub_81785D0: @ 81785D0 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8178610 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81785D0 - - thumb_func_start sub_8178610 -sub_8178610: @ 8178610 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08178642 - bl sub_817836C - bl sub_8178594 - ldr r0, =sBerryTag - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, =bag_menu_mail_related - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08178642: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178610 - - thumb_func_start sub_8178654 -sub_8178654: @ 8178654 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081786A6 - ldr r3, =gMain - ldrh r0, [r3, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _08178688 - movs r1, 0x1 - negs r1, r1 - adds r0, r2, 0 - bl sub_81786AC - b _081786A6 - .pool -_08178688: - cmp r1, 0x80 - bne _08178696 - adds r0, r2, 0 - movs r1, 0x1 - bl sub_81786AC - b _081786A6 -_08178696: - ldrh r1, [r3, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081786A6 - adds r0, r4, 0 - bl sub_81785D0 -_081786A6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8178654 - - thumb_func_start sub_81786AC -sub_81786AC: @ 81786AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r2, =gTasks + 0x8 - adds r4, r0, r2 - ldr r2, =gUnknown_0203CE58 - ldrh r0, [r2, 0xE] - ldrh r2, [r2, 0x18] - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - lsrs r7, r1, 24 - asrs r6, r1, 24 - adds r0, r6 - cmp r0, 0x2D - bhi _08178718 - lsls r1, r0, 16 - lsrs r1, 16 - movs r0, 0x4 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - cmp r0, 0 - beq _08178718 - cmp r6, 0 - bge _081786F4 - movs r0, 0x2 - b _081786F6 - .pool -_081786F4: - movs r0, 0x1 -_081786F6: - strh r0, [r4, 0x2] - movs r0, 0 - strh r0, [r4] - movs r0, 0x5 - bl PlaySE - lsls r0, r7, 24 - asrs r0, 24 - bl sub_8178728 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81787AC - str r1, [r0] -_08178718: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81786AC - - thumb_func_start sub_8178728 -sub_8178728: @ 8178728 - push {r4-r6,lr} - ldr r5, =gUnknown_0203CE70 - adds r6, r5, 0 - subs r6, 0xA - lsls r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - ble _08178764 - ldrh r0, [r6] - cmp r0, 0x3 - bls _08178752 - ldrh r1, [r5] - adds r1, 0x8 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - cmp r0, 0 - bne _08178760 -_08178752: - ldrh r0, [r6] - adds r0, r4 - strh r0, [r6] - b _0817877A - .pool -_08178760: - ldrh r0, [r5] - b _08178776 -_08178764: - ldrh r1, [r6] - cmp r1, 0x3 - bhi _08178770 - ldrh r0, [r5] - cmp r0, 0 - bne _08178776 -_08178770: - adds r0, r1, r4 - strh r0, [r6] - b _0817877A -_08178776: - adds r0, r4 - strh r0, [r5] -_0817877A: - ldrh r1, [r6] - ldrh r5, [r5] - adds r1, r5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBerryType - ldr r1, =sBerryTag - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xC0 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178728 - - thumb_func_start sub_81787AC -sub_81787AC: @ 81787AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - ldrh r0, [r6] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6] - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _08178828 - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, 0x70 - beq _08178888 - cmp r0, 0x70 - bgt _081787FE - cmp r0, 0x40 - beq _0817881A - cmp r0, 0x40 - bgt _081787F4 - cmp r0, 0x30 - beq _08178898 - b _081788A6 - .pool -_081787F4: - cmp r0, 0x50 - beq _0817888E - cmp r0, 0x60 - beq _08178820 - b _081788A6 -_081787FE: - cmp r0, 0xA0 - beq _08178824 - cmp r0, 0xA0 - bgt _08178810 - cmp r0, 0x80 - beq _08178882 - cmp r0, 0x90 - beq _08178878 - b _081788A6 -_08178810: - cmp r0, 0xB0 - beq _08178872 - cmp r0, 0xC0 - beq _0817886C - b _081788A6 -_0817881A: - bl sub_8178110 - b _081788A6 -_08178820: - movs r0, 0x1 - b _0817889A -_08178824: - movs r0, 0x2 - b _0817889A -_08178828: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x70 - beq _0817887E - cmp r0, 0x70 - bgt _0817884C - cmp r0, 0x40 - beq _0817886C - cmp r0, 0x40 - bgt _08178842 - cmp r0, 0x30 - beq _08178868 - b _081788A6 -_08178842: - cmp r0, 0x50 - beq _08178872 - cmp r0, 0x60 - beq _08178878 - b _081788A6 -_0817884C: - cmp r0, 0xA0 - beq _0817888E - cmp r0, 0xA0 - bgt _0817885E - cmp r0, 0x80 - beq _08178882 - cmp r0, 0x90 - beq _08178888 - b _081788A6 -_0817885E: - cmp r0, 0xB0 - beq _08178898 - cmp r0, 0xC0 - beq _081788A2 - b _081788A6 -_08178868: - movs r0, 0x2 - b _0817889A -_0817886C: - bl sub_8178304 - b _081788A6 -_08178872: - bl sub_81782D0 - b _081788A6 -_08178878: - bl sub_8178404 - b _081788A6 -_0817887E: - movs r0, 0x1 - b _0817889A -_08178882: - bl sub_8178250 - b _081788A6 -_08178888: - bl sub_8178174 - b _081788A6 -_0817888E: - bl sub_817836C - bl sub_8178338 - b _081788A6 -_08178898: - movs r0, 0 -_0817889A: - movs r1, 0 - bl FillWindowPixelBuffer - b _081788A6 -_081788A2: - bl sub_8178110 -_081788A6: - movs r2, 0x2 - ldrsh r0, [r6, r2] - cmp r0, 0x1 - bne _081788B8 - ldrh r0, [r6] - negs r0, r0 - lsls r0, 16 - lsrs r5, r0, 16 - b _081788BA -_081788B8: - ldrh r5, [r6] -_081788BA: - ldr r2, =gSprites - ldr r3, =sBerryTag - ldr r0, [r3] - ldr r1, =0x00001802 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - movs r4, 0 - adds r7, r2, 0 - ldr r2, =0x00001803 -_081788D6: - ldr r0, [r3] - adds r0, r2 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x26] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _081788D6 - movs r4, 0x80 - lsls r4, 5 - ldrb r2, [r6, 0x2] - movs r0, 0x1 - adds r1, r4, 0 - bl ChangeBgY - ldrb r2, [r6, 0x2] - movs r0, 0x2 - adds r1, r4, 0 - bl ChangeBgY - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _08178922 - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8178654 - str r0, [r1] -_08178922: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81787AC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s index 591b91775..010e83c49 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -4524,7 +4524,7 @@ ItemMenu_CheckTag: @ 81AD378 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 ldr r2, [r1] - ldr r1, =sub_8177C14 + ldr r1, =DoBerryTagScreen str r1, [r2] bl unknown_ItemMenu_Confirm pop {r0} diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s index 2ef0e4913..0d42796d4 100644 --- a/asm/item_menu_icons.s +++ b/asm/item_menu_icons.s @@ -556,15 +556,15 @@ CreateBerryTagSprite: @ 80D50D4 .pool thumb_func_end CreateBerryTagSprite - thumb_func_start sub_80D510C -sub_80D510C: @ 80D510C + thumb_func_start FreeBerryTagSpritePalette +FreeBerryTagSpritePalette: @ 80D510C push {lr} ldr r0, =0x00007544 bl FreeSpritePaletteByTag pop {r0} bx r0 .pool - thumb_func_end sub_80D510C + thumb_func_end FreeBerryTagSpritePalette thumb_func_start sub_80D511C sub_80D511C: @ 80D511C @@ -617,8 +617,8 @@ _080D5172: .pool thumb_func_end sub_80D511C - thumb_func_start sub_80D518C -sub_80D518C: @ 80D518C + thumb_func_start CreateBerryFlavorCircleSprite +CreateBerryFlavorCircleSprite: @ 80D518C push {lr} adds r1, r0, 0 ldr r0, =gUnknown_0857FE10 @@ -632,6 +632,6 @@ sub_80D518C: @ 80D518C pop {r1} bx r1 .pool - thumb_func_end sub_80D518C + thumb_func_end CreateBerryFlavorCircleSprite .align 2, 0 @ Don't pad with nop. diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h index 60932ff80..b987b8d04 100644 --- a/include/berry_tag_screen.h +++ b/include/berry_tag_screen.h @@ -1,6 +1,6 @@ #ifndef GUARD_BERRY_TAG_SCREEN_H #define GUARD_BERRY_TAG_SCREEN_H -void BerryTagScreen_814625C(u8 taskId); + #endif // GUARD_BERRY_TAG_SCREEN_H diff --git a/include/item.h b/include/item.h index a136f03ec..06eb08046 100644 --- a/include/item.h +++ b/include/item.h @@ -60,5 +60,6 @@ u8 ItemId_GetBattleUsage(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); +u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos); #endif // ITEM_H diff --git a/include/item_menu.h b/include/item_menu.h index 85655e9d5..0ddd6766b 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -2,11 +2,24 @@ #define GUARD_item_menu_H // Exported type declarations +struct BagStruct +{ + void *func; + u8 unk4; + u8 pocket; + u8 unk6[2]; + u16 unk8[5]; + u16 unk12[5]; + void *unk1C; +}; + +extern struct BagStruct gUnknown_0203CE58; // Exported RAM declarations // Exported ROM declarations void sub_81AAC50(void); void sub_81AAC70(void); +void bag_menu_mail_related(void); #endif //GUARD_item_menu_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index c4f7ac92b..c3932390c 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -6,5 +6,7 @@ extern const struct CompressedSpritePalette gUnknown_0857FDF4; u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3); u8 CreateBerryTagSprite(u8 id, s16 x, s16 y); +void FreeBerryTagSpritePalette(void); +u8 CreateBerryFlavorCircleSprite(s16 x); #endif // GUARD_ITEM_MENU_ICONS diff --git a/ld_script.txt b/ld_script.txt index ec8840ebc..31d699fc1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -230,7 +230,6 @@ SECTIONS { src/lottery_corner.o(.text); src/diploma.o(.text); src/berry_tag_screen.o(.text); - asm/berry_tag_screen.o(.text); src/mystery_event_menu.o(.text); src/save_failed_screen.o(.text); src/braille_puzzles.o(.text); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 365fd5120..9b921be08 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -5,6 +5,7 @@ #include "field_map_obj.h" #include "item_menu.h" #include "constants/items.h" +#include "item.h" #include "item_use.h" #include "main.h" #include "menu.h" @@ -29,7 +30,7 @@ #include "international_string_util.h" // const rom data -const struct BgTemplate gUnknown_085EFCF0[] = +static const struct BgTemplate gUnknown_085EFCF0[] = { { .bg = 0, @@ -69,15 +70,15 @@ const struct BgTemplate gUnknown_085EFCF0[] = } }; -const u16 gUnknown_085EFD00[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); +static const u16 gUnknown_085EFD00[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); -const struct TextColor gUnknown_085EFD20[] = +static const struct TextColor gUnknown_085EFD20[] = { {0, 2, 3}, {15, 14, 13} }; -const struct WindowTemplate gUnknown_085EFD28[] = +static const struct WindowTemplate gUnknown_085EFD28[] = { {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, @@ -86,7 +87,7 @@ const struct WindowTemplate gUnknown_085EFD28[] = DUMMY_WIN_TEMPLATE }; -const u8 *const gBerryFirmnessStringPointers[] = +static const u8 *const gBerryFirmnessStringPointers[] = { gBerryFirmnessString_VerySoft, gBerryFirmnessString_Soft, @@ -96,22 +97,26 @@ const u8 *const gBerryFirmnessStringPointers[] = }; // this file's functions -void sub_8177C84(void); -void sub_8177E14(void); -void sub_8178008(void); -void sub_8178090(void); -void sub_81780F4(void); -void sub_8178338(void); -void sub_817839C(void); -void sub_8178404(void); -void sub_8178110(void); -void sub_8178174(void); -void sub_8178250(void); -void sub_81782D0(void); -void sub_8178304(void); -bool8 sub_8177CB0(void); -bool8 sub_8177E88(void); -void sub_8178654(u8 taskId); +static void sub_8177C84(void); +static void sub_8177E14(void); +static void sub_8178008(void); +static void sub_8178090(void); +static void sub_81780F4(void); +static void sub_8178338(void); +static void sub_817839C(void); +static void sub_8178404(void); +static void sub_8178110(void); +static void sub_8178174(void); +static void sub_8178250(void); +static void sub_81782D0(void); +static void sub_8178304(void); +static bool8 sub_8177CB0(void); +static bool8 sub_8177E88(void); +static void sub_8178654(u8 taskId); +static void sub_8178610(u8 taskId); +static void sub_81787AC(u8 taskId); +static void sub_81786AC(u8 taskId, s8 toMove); +static void sub_8178728(s8 toMove); // code struct BerryTagScreenStruct @@ -119,21 +124,20 @@ struct BerryTagScreenStruct u16 tilemapBuffers[3][0x400]; u16 berryId; u8 berrySpriteId; - u16 field_1804; - u16 field_1806; + u8 flavorCircleIds[FLAVOR_COUNT]; u16 field_1808; }; extern struct BerryTagScreenStruct *sBerryTag; -void sub_8177C14(void) +void DoBerryTagScreen(void) { sBerryTag = AllocZeroed(0x180C); sBerryTag->berryId = ItemIdToBerryType(gSpecialVar_ItemId); SetMainCallback2(sub_8177C84); } -void sub_8177C54(void) +static void sub_8177C54(void) { RunTasks(); AnimateSprites(); @@ -142,14 +146,14 @@ void sub_8177C54(void) UpdatePaletteFade(); } -void sub_8177C70(void) +static void sub_8177C70(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_8177C84(void) +static void sub_8177C84(void) { while (1) { @@ -162,7 +166,7 @@ void sub_8177C84(void) } } -bool8 sub_8177CB0(void) +static bool8 sub_8177CB0(void) { switch (gMain.state) { @@ -246,7 +250,7 @@ bool8 sub_8177CB0(void) return FALSE; } -void sub_8177E14(void) +static void sub_8177E14(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_085EFCF0, ARRAY_COUNT(gUnknown_085EFCF0)); @@ -263,7 +267,7 @@ void sub_8177E14(void) ShowBg(3); } -bool8 sub_8177E88(void) +static bool8 sub_8177E88(void) { u16 i; @@ -314,7 +318,7 @@ bool8 sub_8177E88(void) return FALSE; } -void sub_8178008(void) +static void sub_8178008(void) { u16 i; @@ -327,12 +331,12 @@ void sub_8178008(void) schedule_bg_copy_tilemap_to_vram(1); } -void sub_817804C(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) +static void sub_817804C(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) { AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, &gUnknown_085EFD20[colorStructId], speed, text); } -void sub_8178090(void) +static void sub_8178090(void) { memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); FillWindowPixelBuffer(3, 0xFF); @@ -341,7 +345,7 @@ void sub_8178090(void) schedule_bg_copy_tilemap_to_vram(0); } -void sub_81780F4(void) +static void sub_81780F4(void) { sub_8178110(); sub_8178174(); @@ -350,7 +354,7 @@ void sub_81780F4(void) sub_8178304(); } -void sub_8178110(void) +static void sub_8178110(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, 2, 2); @@ -359,7 +363,7 @@ void sub_8178110(void) sub_817804C(0, gStringVar4, 0, 1, 0, 0); } -void sub_8178174(void) +static void sub_8178174(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); PrintTextOnWindow(1, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); @@ -384,7 +388,7 @@ void sub_8178174(void) } } -void sub_8178250(void) +static void sub_8178250(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); PrintTextOnWindow(1, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); @@ -394,19 +398,246 @@ void sub_8178250(void) PrintTextOnWindow(1, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); } -void sub_81782D0(void) +static void sub_81782D0(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); PrintTextOnWindow(2, 1, berry->description1, 0, 1, 0, NULL); } -void sub_8178304(void) +static void sub_8178304(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); PrintTextOnWindow(2, 1, berry->description2, 0, 0x11, 0, NULL); } -void sub_8178338(void) +static void sub_8178338(void) { sBerryTag->berrySpriteId = CreateBerryTagSprite(sBerryTag->berryId - 1, 56, 64); } + +static void sub_817836C(void) +{ + DestroySprite(&gSprites[sBerryTag->berrySpriteId]); + FreeBerryTagSpritePalette(); +} + +static void sub_817839C(void) +{ + sBerryTag->flavorCircleIds[FLAVOR_SPICY] = CreateBerryFlavorCircleSprite(64); + sBerryTag->flavorCircleIds[FLAVOR_DRY] = CreateBerryFlavorCircleSprite(104); + sBerryTag->flavorCircleIds[FLAVOR_SWEET] = CreateBerryFlavorCircleSprite(144); + sBerryTag->flavorCircleIds[FLAVOR_BITTER] = CreateBerryFlavorCircleSprite(184); + sBerryTag->flavorCircleIds[FLAVOR_SOUR] = CreateBerryFlavorCircleSprite(224); +} + +static void sub_8178404(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + + if (berry->spicy) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 1; + + if (berry->dry) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 1; + + if (berry->sweet) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 1; + + if (berry->bitter) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 1; + + if (berry->sour) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 1; +} + +static void sub_8178594(void) +{ + u16 i; + + for (i = 0; i < FLAVOR_COUNT; i++) + DestroySprite(&gSprites[sBerryTag->flavorCircleIds[i]]); +} + +static void sub_81785D0(u8 taskId) +{ + PlaySE(SE_SELECT); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gTasks[taskId].func = sub_8178610; +} + +static void sub_8178610(u8 taskId) +{ + if (!gPaletteFade.active) + { + sub_817836C(); + sub_8178594(); + Free(sBerryTag); + FreeAllWindowBuffers(); + SetMainCallback2(bag_menu_mail_related); + DestroyTask(taskId); + } +} + +static void sub_8178654(u8 taskId) +{ + if (!gPaletteFade.active) + { + u16 arrowKeys = gMain.newAndRepeatedKeys & DPAD_ANY; + if (arrowKeys == DPAD_UP) + sub_81786AC(taskId, -1); + else if (arrowKeys == DPAD_DOWN) + sub_81786AC(taskId, 1); + else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + sub_81785D0(taskId); + } +} + +static void sub_81786AC(u8 taskId, s8 toMove) +{ + s16 *data = gTasks[taskId].data; + s16 currPocketPosition = gUnknown_0203CE58.unk12[3] + gUnknown_0203CE58.unk8[3]; + u32 newPocketPosition = currPocketPosition + toMove; + if (newPocketPosition < 46 && BagGetItemIdByPocketPosition(BAG_BERRIES, newPocketPosition) != 0) + { + if (toMove < 0) + data[1] = 2; + else + data[1] = 1; + + data[0] = 0; + PlaySE(SE_SELECT); + sub_8178728(toMove); + gTasks[taskId].func = sub_81787AC; + } +} + +static void sub_8178728(s8 toMove) +{ + u16 *scrollPos = &gUnknown_0203CE58.unk12[3]; + u16 *cursorPos = &gUnknown_0203CE58.unk8[3]; + if (toMove > 0) + { + if (*cursorPos < 4 || BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + 8) == 0) + *cursorPos += toMove; + else + *scrollPos += toMove; + } + else + { + if (*cursorPos > 3 || *scrollPos == 0) + *cursorPos += toMove; + else + *scrollPos += toMove; + } + + sBerryTag->berryId = ItemIdToBerryType(BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + *cursorPos)); +} + +static void sub_81787AC(u8 taskId) +{ + u16 i; + s16 posY; + s16 *data = gTasks[taskId].data; + data[0] += 0x10; + data[0] &= 0xFF; + + if (data[1] == 1) + { + switch (data[0]) + { + case 0x30: + FillWindowPixelBuffer(0, 0); + break; + case 0x40: + sub_8178110(); + break; + case 0x50: + sub_817836C(); + sub_8178338(); + break; + case 0x60: + FillWindowPixelBuffer(1, 0); + break; + case 0x70: + sub_8178174(); + break; + case 0x80: + sub_8178250(); + break; + case 0x90: + sub_8178404(); + break; + case 0xA0: + FillWindowPixelBuffer(2, 0); + break; + case 0xB0: + sub_81782D0(); + break; + case 0xC0: + sub_8178304(); + break; + } + } + else + { + switch (data[0]) + { + case 0x30: + FillWindowPixelBuffer(2, 0); + break; + case 0x40: + sub_8178304(); + break; + case 0x50: + sub_81782D0(); + break; + case 0x60: + sub_8178404(); + break; + case 0x70: + FillWindowPixelBuffer(1, 0); + break; + case 0x80: + sub_8178250(); + break; + case 0x90: + sub_8178174(); + break; + case 0xA0: + sub_817836C(); + sub_8178338(); + break; + case 0xB0: + FillWindowPixelBuffer(0, 0); + break; + case 0xC0: + sub_8178110(); + break; + } + } + + if (data[1] == 1) + posY = -data[0]; + else + posY = data[0]; + + gSprites[sBerryTag->berrySpriteId].pos2.y = posY; + for (i = 0; i < FLAVOR_COUNT; i++) + gSprites[sBerryTag->flavorCircleIds[i]].pos2.y = posY; + + ChangeBgY(1, 0x1000, data[1]); + ChangeBgY(2, 0x1000, data[1]); + + if (data[0] == 0) + gTasks[taskId].func = sub_8178654; +} -- cgit v1.2.3 From b6437b8d80bfeab60467812ae09128d615dc0588 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 14:41:56 +0100 Subject: document berry tag screen --- src/berry_tag_screen.c | 280 +++++++++++++++++++++++++------------------------ sym_ewram.txt | 5 +- 2 files changed, 146 insertions(+), 139 deletions(-) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 9b921be08..1e029bece 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -29,8 +29,29 @@ #include "decompress.h" #include "international_string_util.h" +// There are 4 windows used in berry tag screen. +enum +{ + WIN_BERRY_NAME, + WIN_SIZE_FIRM, + WIN_DESC, + WIN_BERRY_TAG +}; + +struct BerryTagScreenStruct +{ + u16 tilemapBuffers[3][0x400]; + u16 berryId; + u8 berrySpriteId; + u8 flavorCircleIds[FLAVOR_COUNT]; + u16 gfxState; +}; + +// EWRAM vars +static EWRAM_DATA struct BerryTagScreenStruct *sBerryTag = NULL; + // const rom data -static const struct BgTemplate gUnknown_085EFCF0[] = +static const struct BgTemplate sBackgroundTemplates[] = { { .bg = 0, @@ -70,24 +91,24 @@ static const struct BgTemplate gUnknown_085EFCF0[] = } }; -static const u16 gUnknown_085EFD00[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); +static const u16 sFontPalette[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); -static const struct TextColor gUnknown_085EFD20[] = +static const struct TextColor sTextColors[] = { {0, 2, 3}, {15, 14, 13} }; -static const struct WindowTemplate gUnknown_085EFD28[] = +static const struct WindowTemplate sWindowTemplates[] = { - {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, - {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, - {0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d}, - {0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101}, + {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, // WIN_BERRY_NAME + {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, // WIN_SIZE_FIRM + {0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d}, // WIN_DESC + {0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101}, // WIN_BERRY_TAG DUMMY_WIN_TEMPLATE }; -static const u8 *const gBerryFirmnessStringPointers[] = +static const u8 *const sBerryFirmnessStrings[] = { gBerryFirmnessString_VerySoft, gBerryFirmnessString_Soft, @@ -97,47 +118,36 @@ static const u8 *const gBerryFirmnessStringPointers[] = }; // this file's functions -static void sub_8177C84(void); -static void sub_8177E14(void); -static void sub_8178008(void); -static void sub_8178090(void); -static void sub_81780F4(void); -static void sub_8178338(void); -static void sub_817839C(void); -static void sub_8178404(void); -static void sub_8178110(void); -static void sub_8178174(void); -static void sub_8178250(void); -static void sub_81782D0(void); -static void sub_8178304(void); -static bool8 sub_8177CB0(void); -static bool8 sub_8177E88(void); -static void sub_8178654(u8 taskId); -static void sub_8178610(u8 taskId); -static void sub_81787AC(u8 taskId); -static void sub_81786AC(u8 taskId, s8 toMove); -static void sub_8178728(s8 toMove); +static void CB2_InitBerryTagScreen(void); +static void HandleInitBackgrounds(void); +static void HandleInitWindows(void); +static void AddBerryTagTextToBg0(void); +static void PrintAllBerryData(void); +static void CreateBerrySprite(void); +static void CreateFlavorCircleSprites(void); +static void SetFlavorCirclesVisiblity(void); +static void PrintBerryNumberAndName(void); +static void PrintBerrySize(void); +static void PrintBerryFirmness(void); +static void PrintBerryDescription1(void); +static void PrintBerryDescription2(void); +static bool8 InitBerryTagScreen(void); +static bool8 LoadBerryTagGfx(void); +static void Task_HandleInput(u8 taskId); +static void Task_CloseBerryTagScreen(u8 taskId); +static void Task_DisplayAnotherBerry(u8 taskId); +static void TryChangeDisplayedBerry(u8 taskId, s8 toMove); +static void HandleBagCursorPositionChange(s8 toMove); // code -struct BerryTagScreenStruct -{ - u16 tilemapBuffers[3][0x400]; - u16 berryId; - u8 berrySpriteId; - u8 flavorCircleIds[FLAVOR_COUNT]; - u16 field_1808; -}; - -extern struct BerryTagScreenStruct *sBerryTag; - void DoBerryTagScreen(void) { - sBerryTag = AllocZeroed(0x180C); + sBerryTag = AllocZeroed(sizeof(*sBerryTag)); sBerryTag->berryId = ItemIdToBerryType(gSpecialVar_ItemId); - SetMainCallback2(sub_8177C84); + SetMainCallback2(CB2_InitBerryTagScreen); } -static void sub_8177C54(void) +static void CB2_BerryTagScreen(void) { RunTasks(); AnimateSprites(); @@ -146,27 +156,27 @@ static void sub_8177C54(void) UpdatePaletteFade(); } -static void sub_8177C70(void) +static void VblankCB(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_8177C84(void) +static void CB2_InitBerryTagScreen(void) { while (1) { if (sub_81221EC() == TRUE) break; - if (sub_8177CB0() == TRUE) + if (InitBerryTagScreen() == TRUE) break; if (sub_81221AC() == TRUE) break; } } -static bool8 sub_8177CB0(void) +static bool8 InitBerryTagScreen(void) { switch (gMain.state) { @@ -199,37 +209,37 @@ static bool8 sub_8177CB0(void) gMain.state++; break; case 6: - sub_8177E14(); - sBerryTag->field_1808 = 0; + HandleInitBackgrounds(); + sBerryTag->gfxState = 0; gMain.state++; break; case 7: - if (sub_8177E88()) + if (LoadBerryTagGfx()) gMain.state++; break; case 8: - sub_8178008(); + HandleInitWindows(); gMain.state++; break; case 9: - sub_8178090(); + AddBerryTagTextToBg0(); gMain.state++; break; case 10: - sub_81780F4(); + PrintAllBerryData(); gMain.state++; break; case 11: - sub_8178338(); + CreateBerrySprite(); gMain.state++; break; case 12: - sub_817839C(); - sub_8178404(); + CreateFlavorCircleSprites(); + SetFlavorCirclesVisiblity(); gMain.state++; break; case 13: - CreateTask(sub_8178654, 0); + CreateTask(Task_HandleInput, 0); gMain.state++; break; case 14: @@ -242,18 +252,18 @@ static bool8 sub_8177CB0(void) gMain.state++; break; default: // done - SetVBlankCallback(sub_8177C70); - SetMainCallback2(sub_8177C54); + SetVBlankCallback(VblankCB); + SetMainCallback2(CB2_BerryTagScreen); return TRUE; } return FALSE; } -static void sub_8177E14(void) +static void HandleInitBackgrounds(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085EFCF0, ARRAY_COUNT(gUnknown_085EFCF0)); + InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); SetBgTilemapBuffer(2, sBerryTag->tilemapBuffers[0]); SetBgTilemapBuffer(3, sBerryTag->tilemapBuffers[1]); ResetAllBgsCoordinates(); @@ -267,27 +277,27 @@ static void sub_8177E14(void) ShowBg(3); } -static bool8 sub_8177E88(void) +static bool8 LoadBerryTagGfx(void) { u16 i; - switch (sBerryTag->field_1808) + switch (sBerryTag->gfxState) { case 0: reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(2, gUnknown_08D9BB44, 0, 0, 0); - sBerryTag->field_1808++; + sBerryTag->gfxState++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != TRUE) { LZDecompressWram(gUnknown_08D9BF98, sBerryTag->tilemapBuffers[0]); - sBerryTag->field_1808++; + sBerryTag->gfxState++; } break; case 2: LZDecompressWram(gUnknown_08D9C13C, sBerryTag->tilemapBuffers[2]); - sBerryTag->field_1808++; + sBerryTag->gfxState++; break; case 3: if (gSaveBlock2Ptr->playerGender == MALE) @@ -300,15 +310,15 @@ static bool8 sub_8177E88(void) for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++) sBerryTag->tilemapBuffers[1][i] = 0x5042; } - sBerryTag->field_1808++; + sBerryTag->gfxState++; break; case 4: LoadCompressedPalette(gUnknown_08D9BEF0, 0, 0xC0); - sBerryTag->field_1808++; + sBerryTag->gfxState++; break; case 5: LoadCompressedObjectPic(&gUnknown_0857FDEC); - sBerryTag->field_1808++; + sBerryTag->gfxState++; break; default: LoadCompressedObjectPalette(&gUnknown_0857FDF4); @@ -318,55 +328,55 @@ static bool8 sub_8177E88(void) return FALSE; } -static void sub_8178008(void) +static void HandleInitWindows(void) { u16 i; - InitWindows(gUnknown_085EFD28); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - LoadPalette(gUnknown_085EFD00, 0xF0, 0x20); - for (i = 0; i < ARRAY_COUNT(gUnknown_085EFD28) - 1; i++) + LoadPalette(sFontPalette, 0xF0, 0x20); + for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) PutWindowTilemap(i); schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(1); } -static void sub_817804C(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) +static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) { - AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, &gUnknown_085EFD20[colorStructId], speed, text); + AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, &sTextColors[colorStructId], speed, text); } -static void sub_8178090(void) +static void AddBerryTagTextToBg0(void) { memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); - FillWindowPixelBuffer(3, 0xFF); - sub_817804C(3, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); - PutWindowTilemap(3); + FillWindowPixelBuffer(WIN_BERRY_TAG, 0xFF); + PrintTextInBerryTagScreen(WIN_BERRY_TAG, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); + PutWindowTilemap(WIN_BERRY_TAG); schedule_bg_copy_tilemap_to_vram(0); } -static void sub_81780F4(void) +static void PrintAllBerryData(void) { - sub_8178110(); - sub_8178174(); - sub_8178250(); - sub_81782D0(); - sub_8178304(); + PrintBerryNumberAndName(); + PrintBerrySize(); + PrintBerryFirmness(); + PrintBerryDescription1(); + PrintBerryDescription2(); } -static void sub_8178110(void) +static void PrintBerryNumberAndName(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, 2, 2); StringCopy(gStringVar2, berry->name); StringExpandPlaceholders(gStringVar4, gText_UnkF908Var1Var2); - sub_817804C(0, gStringVar4, 0, 1, 0, 0); + PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0); } -static void sub_8178174(void) +static void PrintBerrySize(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(1, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); if (berry->size != 0) { u32 inches, fraction; @@ -380,48 +390,48 @@ static void sub_8178174(void) ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2); ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2); StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2); - PrintTextOnWindow(1, 1, gStringVar4, 0x28, 1, 0, NULL); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL); } else { - PrintTextOnWindow(1, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); } } -static void sub_8178250(void) +static void PrintBerryFirmness(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(1, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); if (berry->firmness != 0) - PrintTextOnWindow(1, 1, gBerryFirmnessStringPointers[berry->firmness - 1], 0x28, 0x11, 0, NULL); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL); else - PrintTextOnWindow(1, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); } -static void sub_81782D0(void) +static void PrintBerryDescription1(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(2, 1, berry->description1, 0, 1, 0, NULL); + PrintTextOnWindow(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL); } -static void sub_8178304(void) +static void PrintBerryDescription2(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(2, 1, berry->description2, 0, 0x11, 0, NULL); + PrintTextOnWindow(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL); } -static void sub_8178338(void) +static void CreateBerrySprite(void) { sBerryTag->berrySpriteId = CreateBerryTagSprite(sBerryTag->berryId - 1, 56, 64); } -static void sub_817836C(void) +static void DestroyBerrySprite(void) { DestroySprite(&gSprites[sBerryTag->berrySpriteId]); FreeBerryTagSpritePalette(); } -static void sub_817839C(void) +static void CreateFlavorCircleSprites(void) { sBerryTag->flavorCircleIds[FLAVOR_SPICY] = CreateBerryFlavorCircleSprite(64); sBerryTag->flavorCircleIds[FLAVOR_DRY] = CreateBerryFlavorCircleSprite(104); @@ -430,7 +440,7 @@ static void sub_817839C(void) sBerryTag->flavorCircleIds[FLAVOR_SOUR] = CreateBerryFlavorCircleSprite(224); } -static void sub_8178404(void) +static void SetFlavorCirclesVisiblity(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); @@ -460,7 +470,7 @@ static void sub_8178404(void) gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 1; } -static void sub_8178594(void) +static void DestroyFlavorCircleSprites(void) { u16 i; @@ -468,19 +478,19 @@ static void sub_8178594(void) DestroySprite(&gSprites[sBerryTag->flavorCircleIds[i]]); } -static void sub_81785D0(u8 taskId) +static void PrepareToCloseBerryTagScreen(u8 taskId) { PlaySE(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gTasks[taskId].func = sub_8178610; + gTasks[taskId].func = Task_CloseBerryTagScreen; } -static void sub_8178610(u8 taskId) +static void Task_CloseBerryTagScreen(u8 taskId) { if (!gPaletteFade.active) { - sub_817836C(); - sub_8178594(); + DestroyBerrySprite(); + DestroyFlavorCircleSprites(); Free(sBerryTag); FreeAllWindowBuffers(); SetMainCallback2(bag_menu_mail_related); @@ -488,21 +498,21 @@ static void sub_8178610(u8 taskId) } } -static void sub_8178654(u8 taskId) +static void Task_HandleInput(u8 taskId) { if (!gPaletteFade.active) { u16 arrowKeys = gMain.newAndRepeatedKeys & DPAD_ANY; if (arrowKeys == DPAD_UP) - sub_81786AC(taskId, -1); + TryChangeDisplayedBerry(taskId, -1); else if (arrowKeys == DPAD_DOWN) - sub_81786AC(taskId, 1); + TryChangeDisplayedBerry(taskId, 1); else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - sub_81785D0(taskId); + PrepareToCloseBerryTagScreen(taskId); } } -static void sub_81786AC(u8 taskId, s8 toMove) +static void TryChangeDisplayedBerry(u8 taskId, s8 toMove) { s16 *data = gTasks[taskId].data; s16 currPocketPosition = gUnknown_0203CE58.unk12[3] + gUnknown_0203CE58.unk8[3]; @@ -516,12 +526,12 @@ static void sub_81786AC(u8 taskId, s8 toMove) data[0] = 0; PlaySE(SE_SELECT); - sub_8178728(toMove); - gTasks[taskId].func = sub_81787AC; + HandleBagCursorPositionChange(toMove); + gTasks[taskId].func = Task_DisplayAnotherBerry; } } -static void sub_8178728(s8 toMove) +static void HandleBagCursorPositionChange(s8 toMove) { u16 *scrollPos = &gUnknown_0203CE58.unk12[3]; u16 *cursorPos = &gUnknown_0203CE58.unk8[3]; @@ -543,7 +553,7 @@ static void sub_8178728(s8 toMove) sBerryTag->berryId = ItemIdToBerryType(BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + *cursorPos)); } -static void sub_81787AC(u8 taskId) +static void Task_DisplayAnotherBerry(u8 taskId) { u16 i; s16 posY; @@ -559,32 +569,32 @@ static void sub_81787AC(u8 taskId) FillWindowPixelBuffer(0, 0); break; case 0x40: - sub_8178110(); + PrintBerryNumberAndName(); break; case 0x50: - sub_817836C(); - sub_8178338(); + DestroyBerrySprite(); + CreateBerrySprite(); break; case 0x60: FillWindowPixelBuffer(1, 0); break; case 0x70: - sub_8178174(); + PrintBerrySize(); break; case 0x80: - sub_8178250(); + PrintBerryFirmness(); break; case 0x90: - sub_8178404(); + SetFlavorCirclesVisiblity(); break; case 0xA0: FillWindowPixelBuffer(2, 0); break; case 0xB0: - sub_81782D0(); + PrintBerryDescription1(); break; case 0xC0: - sub_8178304(); + PrintBerryDescription2(); break; } } @@ -596,32 +606,32 @@ static void sub_81787AC(u8 taskId) FillWindowPixelBuffer(2, 0); break; case 0x40: - sub_8178304(); + PrintBerryDescription2(); break; case 0x50: - sub_81782D0(); + PrintBerryDescription1(); break; case 0x60: - sub_8178404(); + SetFlavorCirclesVisiblity(); break; case 0x70: FillWindowPixelBuffer(1, 0); break; case 0x80: - sub_8178250(); + PrintBerryFirmness(); break; case 0x90: - sub_8178174(); + PrintBerrySize(); break; case 0xA0: - sub_817836C(); - sub_8178338(); + DestroyBerrySprite(); + CreateBerrySprite(); break; case 0xB0: FillWindowPixelBuffer(0, 0); break; case 0xC0: - sub_8178110(); + PrintBerryNumberAndName(); break; } } @@ -639,5 +649,5 @@ static void sub_81787AC(u8 taskId) ChangeBgY(2, 0x1000, data[1]); if (data[0] == 0) - gTasks[taskId].func = sub_8178654; + gTasks[taskId].func = Task_HandleInput; } diff --git a/sym_ewram.txt b/sym_ewram.txt index 6fdacb5c0..c7a1efdf6 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1266,10 +1266,7 @@ gUnknown_0203BCE8: @ 203BCE8 .include "src/lottery_corner.o" .include "src/diploma.o" - -sBerryTag: @ 203BCF4 - .space 0x4 - + .include "src/berry_tag_screen.o" .include "src/mystery_event_menu.o" .include "src/save_failed_screen.o" -- cgit v1.2.3 From 79fbee559f89ed3a072bf120cfc1e11855b07e88 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 14:42:29 +0100 Subject: add func to include --- include/berry_tag_screen.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h index b987b8d04..b50d31590 100644 --- a/include/berry_tag_screen.h +++ b/include/berry_tag_screen.h @@ -1,6 +1,6 @@ #ifndef GUARD_BERRY_TAG_SCREEN_H #define GUARD_BERRY_TAG_SCREEN_H - +void DoBerryTagScreen(void) #endif // GUARD_BERRY_TAG_SCREEN_H -- cgit v1.2.3 From e13eacda39cc01ff0f1b9f8e39374956a8f3f136 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 16:06:20 +0100 Subject: decompile item icon --- asm/field_specials.s | 2 +- asm/item_icon.s | 468 ------------------------------------------- asm/item_menu_icons.s | 2 +- asm/link.s | 2 +- asm/party_menu.s | 186 +++++++++++++++++ asm/player_pc.s | 2 +- asm/pokemon_summary_screen.s | 2 +- asm/shop.s | 2 +- data/item_icon.s | 15 -- include/constants/items.h | 3 + include/item_icon.h | 15 +- ld_script.txt | 3 +- src/decoration.c | 8 +- src/item_icon.c | 169 ++++++++++++++++ sym_ewram.txt | 7 +- 15 files changed, 378 insertions(+), 508 deletions(-) delete mode 100644 asm/item_icon.s create mode 100644 src/item_icon.c diff --git a/asm/field_specials.s b/asm/field_specials.s index 200ab1fdb..30f2bf882 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5764,7 +5764,7 @@ sub_813ABD4: @ 813ABD4 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 - bl AddItemIconObject + bl AddItemIconSprite ldr r4, =gUnknown_0203AB6C strb r0, [r4] lsls r0, 24 diff --git a/asm/item_icon.s b/asm/item_icon.s deleted file mode 100644 index e3fe4189a..000000000 --- a/asm/item_icon.s +++ /dev/null @@ -1,468 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start AllocItemIconTemporaryBuffers -@ bool8 AllocItemIconTemporaryBuffers() -AllocItemIconTemporaryBuffers: @ 81AFDE4 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CEBC - movs r0, 0x90 - lsls r0, 1 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _081AFE1A - ldr r4, =gUnknown_0203CEC0 - movs r0, 0x80 - lsls r0, 2 - bl AllocZeroed - str r0, [r4] - cmp r0, 0 - beq _081AFE14 - movs r0, 0x1 - b _081AFE1C - .pool -_081AFE14: - ldr r0, [r5] - bl Free -_081AFE1A: - movs r0, 0 -_081AFE1C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end AllocItemIconTemporaryBuffers - - thumb_func_start FreeItemIconTemporaryBuffers -@ void FreeItemIconTemporaryBuffers() -FreeItemIconTemporaryBuffers: @ 81AFE24 - push {lr} - ldr r0, =gUnknown_0203CEBC - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_0203CEC0 - ldr r0, [r0] - bl Free - pop {r0} - bx r0 - .pool - thumb_func_end FreeItemIconTemporaryBuffers - - thumb_func_start CopyItemIconPicTo4x4Buffer -@ void CopyItemIconPicTo4x4Buffer(void *src, void *dest) -CopyItemIconPicTo4x4Buffer: @ 81AFE44 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 -_081AFE4C: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 5 - adds r0, r6, r0 - lsls r1, r4, 7 - adds r1, r5, r1 - movs r2, 0x30 - bl CpuSet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081AFE4C - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end CopyItemIconPicTo4x4Buffer - - thumb_func_start AddItemIconObject -@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) -AddItemIconObject: @ 81AFE70 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - bl AllocItemIconTemporaryBuffers - lsls r0, 24 - cmp r0, 0 - beq _081AFF28 - adds r0, r5, 0 - movs r1, 0 - bl GetItemIconPicOrPalette - ldr r4, =gUnknown_0203CEBC - ldr r1, [r4] - bl LZDecompressWram - ldr r0, [r4] - ldr r4, =gUnknown_0203CEC0 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r4 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - lsls r2, r7, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, 0 - movs r1, 0x1 - bl GetItemIconPicOrPalette - str r0, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - movs r0, 0x18 - bl Alloc - adds r5, r0, 0 - ldr r0, =gUnknown_08614FF4 - adds r1, r5, 0 - movs r2, 0xC - bl CpuSet - strh r7, [r5] - strh r6, [r5, 0x2] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeItemIconTemporaryBuffers - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - b _081AFF2A - .pool -_081AFF28: - movs r0, 0x40 -_081AFF2A: - add sp, 0x10 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObject - - thumb_func_start AddItemIconObjectWithCustomObjectTemplate -@ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) -AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - bl AllocItemIconTemporaryBuffers - lsls r0, 24 - cmp r0, 0 - beq _081AFFEC - adds r0, r5, 0 - movs r1, 0 - bl GetItemIconPicOrPalette - ldr r4, =gUnknown_0203CEBC - ldr r1, [r4] - bl LZDecompressWram - ldr r0, [r4] - ldr r4, =gUnknown_0203CEC0 - ldr r1, [r4] - bl CopyItemIconPicTo4x4Buffer - ldr r0, [r4] - str r0, [sp] - ldr r4, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r4 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - lsls r2, r7, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, 0 - movs r1, 0x1 - bl GetItemIconPicOrPalette - str r0, [sp, 0x8] - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r4 - orrs r1, r6 - str r1, [r0, 0x4] - bl LoadCompressedObjectPalette - movs r0, 0x18 - bl Alloc - adds r5, r0, 0 - mov r0, r8 - adds r1, r5, 0 - movs r2, 0xC - bl CpuSet - strh r7, [r5] - strh r6, [r5, 0x2] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl FreeItemIconTemporaryBuffers - adds r0, r5, 0 - bl Free - adds r0, r4, 0 - b _081AFFEE - .pool -_081AFFEC: - movs r0, 0x40 -_081AFFEE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddItemIconObjectWithCustomObjectTemplate - - thumb_func_start GetItemIconPicOrPalette -@ u32 GetItemIconPicOrPalette(u16 itemId, u8 which) -GetItemIconPicOrPalette: @ 81AFFFC - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r0, =0x0000ffff - cmp r3, r0 - bne _081B0018 - ldr r3, =0x00000179 - b _081B0022 - .pool -_081B0018: - movs r0, 0xBC - lsls r0, 1 - cmp r3, r0 - bls _081B0022 - movs r3, 0 -_081B0022: - ldr r2, =gItemIconTable - lsls r0, r1, 2 - lsls r1, r3, 3 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end GetItemIconPicOrPalette - - thumb_func_start sub_81B0038 -sub_81B0038: @ 81B0038 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r4, 24 - lsrs r6, r4, 24 - bl reset_brm - ldr r0, =gUnknown_0203CEC4 - mov r10, r0 - movs r0, 0x8E - lsls r0, 2 - bl Alloc - adds r5, r0, 0 - mov r1, r10 - str r5, [r1] - cmp r5, 0 - bne _081B0088 - ldr r0, [sp, 0x2C] - bl SetMainCallback2 - b _081B0194 - .pool -_081B0088: - ldr r3, =gUnknown_0203CEC8 - movs r1, 0xF - mov r4, r8 - ands r1, r4 - ldrb r2, [r3, 0x8] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x8] - ldr r0, [sp, 0x2C] - str r0, [r3] - movs r4, 0 - strb r7, [r3, 0xB] - lsls r2, r6, 2 - ldrh r1, [r5, 0xA] - movs r0, 0x3 - ands r0, r1 - orrs r0, r2 - strh r0, [r5, 0xA] - ldr r0, [sp, 0x28] - str r0, [r5] - str r4, [r5, 0x4] - ldrb r1, [r5, 0x8] - movs r0, 0xF - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x8] - mov r1, r10 - ldr r2, [r1] - ldrh r0, [r2, 0x8] - movs r4, 0xFE - lsls r4, 3 - adds r1, r4, 0 - orrs r0, r1 - strh r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xFE - lsls r1, 10 - orrs r0, r1 - str r0, [r2, 0x8] - adds r6, r3, 0 - mov r5, r8 - cmp r5, 0x4 - bne _081B00F0 - ldrb r0, [r2, 0x8] - movs r1, 0x1 - orrs r0, r1 - b _081B00F8 - .pool -_081B00F0: - ldrb r1, [r2, 0x8] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 -_081B00F8: - strb r0, [r2, 0x8] - mov r0, r9 - cmp r0, 0xFF - beq _081B0114 - movs r0, 0x3 - mov r1, r9 - ands r0, r1 - lsls r0, 4 - ldrb r2, [r6, 0x8] - movs r1, 0x31 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r6, 0x8] -_081B0114: - movs r2, 0 - ldr r5, =gUnknown_0203CEC4 - movs r4, 0x86 - lsls r4, 2 - movs r3, 0 -_081B011E: - ldr r0, [r5] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _081B011E - movs r2, 0 - ldr r4, =gUnknown_0203CEC4 - movs r3, 0xFF -_081B0138: - ldr r0, [r4] - adds r0, 0xC - adds r0, r2 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x2 - bls _081B0138 - ldr r4, [sp] - cmp r4, 0 - bne _081B015C - strb r4, [r6, 0x9] - b _081B017E - .pool -_081B015C: - adds r1, r6, 0 - movs r0, 0x9 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _081B017A - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - bne _081B017E -_081B017A: - movs r0, 0 - strb r0, [r6, 0x9] -_081B017E: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl CalculatePlayerPartyCount - ldr r0, =c2_811EBD0 - bl SetMainCallback2 -_081B0194: - 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_81B0038 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s index 1adc0feb7..6ce0fa4b3 100644 --- a/asm/item_menu_icons.s +++ b/asm/item_menu_icons.s @@ -348,7 +348,7 @@ AddBagItemIconObject: @ 80D4F38 adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 - bl AddItemIconObject + bl AddItemIconSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 diff --git a/asm/link.s b/asm/link.s index a3d621601..c4094286a 100644 --- a/asm/link.s +++ b/asm/link.s @@ -46462,7 +46462,7 @@ _080214C6: lsrs r3, 16 ldr r0, =gUnknown_082F436C adds r1, r2, 0 - bl AddItemIconObjectWithCustomObjectTemplate + bl AddCustomItemIconSprite lsls r0, 24 lsrs r0, 24 mov r2, r9 diff --git a/asm/party_menu.s b/asm/party_menu.s index 0dc03a1e2..25aa4bade 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -4,6 +4,192 @@ .syntax unified .text + + thumb_func_start sub_81B0038 +sub_81B0038: @ 81B0038 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + lsls r4, 24 + lsrs r6, r4, 24 + bl reset_brm + ldr r0, =gUnknown_0203CEC4 + mov r10, r0 + movs r0, 0x8E + lsls r0, 2 + bl Alloc + adds r5, r0, 0 + mov r1, r10 + str r5, [r1] + cmp r5, 0 + bne _081B0088 + ldr r0, [sp, 0x2C] + bl SetMainCallback2 + b _081B0194 + .pool +_081B0088: + ldr r3, =gUnknown_0203CEC8 + movs r1, 0xF + mov r4, r8 + ands r1, r4 + ldrb r2, [r3, 0x8] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x8] + ldr r0, [sp, 0x2C] + str r0, [r3] + movs r4, 0 + strb r7, [r3, 0xB] + lsls r2, r6, 2 + ldrh r1, [r5, 0xA] + movs r0, 0x3 + ands r0, r1 + orrs r0, r2 + strh r0, [r5, 0xA] + ldr r0, [sp, 0x28] + str r0, [r5] + str r4, [r5, 0x4] + ldrb r1, [r5, 0x8] + movs r0, 0xF + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x8] + mov r1, r10 + ldr r2, [r1] + ldrh r0, [r2, 0x8] + movs r4, 0xFE + lsls r4, 3 + adds r1, r4, 0 + orrs r0, r1 + strh r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xFE + lsls r1, 10 + orrs r0, r1 + str r0, [r2, 0x8] + adds r6, r3, 0 + mov r5, r8 + cmp r5, 0x4 + bne _081B00F0 + ldrb r0, [r2, 0x8] + movs r1, 0x1 + orrs r0, r1 + b _081B00F8 + .pool +_081B00F0: + ldrb r1, [r2, 0x8] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 +_081B00F8: + strb r0, [r2, 0x8] + mov r0, r9 + cmp r0, 0xFF + beq _081B0114 + movs r0, 0x3 + mov r1, r9 + ands r0, r1 + lsls r0, 4 + ldrb r2, [r6, 0x8] + movs r1, 0x31 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r6, 0x8] +_081B0114: + movs r2, 0 + ldr r5, =gUnknown_0203CEC4 + movs r4, 0x86 + lsls r4, 2 + movs r3, 0 +_081B011E: + ldr r0, [r5] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _081B011E + movs r2, 0 + ldr r4, =gUnknown_0203CEC4 + movs r3, 0xFF +_081B0138: + ldr r0, [r4] + adds r0, 0xC + adds r0, r2 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x2 + bls _081B0138 + ldr r4, [sp] + cmp r4, 0 + bne _081B015C + strb r4, [r6, 0x9] + b _081B017E + .pool +_081B015C: + adds r1, r6, 0 + movs r0, 0x9 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _081B017A + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + bne _081B017E +_081B017A: + movs r0, 0 + strb r0, [r6, 0x9] +_081B017E: + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl CalculatePlayerPartyCount + ldr r0, =c2_811EBD0 + bl SetMainCallback2 +_081B0194: + 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_81B0038 thumb_func_start sub_81B01B0 sub_81B01B0: @ 81B01B0 diff --git a/asm/player_pc.s b/asm/player_pc.s index 5d9314f80..8feac2886 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -2179,7 +2179,7 @@ sub_816C060: @ 816C060 adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 - bl AddItemIconObject + bl AddItemIconSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index a04939c12..a94d69b96 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5756,7 +5756,7 @@ sub_81C6F90: @ 81C6F90 adds r0, r4, 0 adds r1, r4, 0 adds r2, r6, 0 - bl AddItemIconObject + bl AddItemIconSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 diff --git a/asm/shop.s b/asm/shop.s index 70429c7cf..97dbd07c8 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -969,7 +969,7 @@ _080E02AE: ldr r0, =0x0000083e adds r1, r3, r0 adds r0, r1, 0 - bl AddItemIconObject + bl AddItemIconSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 diff --git a/data/item_icon.s b/data/item_icon.s index 41fb7d9a1..6fd94d0a0 100644 --- a/data/item_icon.s +++ b/data/item_icon.s @@ -6,18 +6,3 @@ @ 8614410 .include "data/graphics/items/item_icon_table.inc" -gUnknown_08614FE0:: @ 8614FE0 - .2byte 0 - .2byte 0x8000 - .2byte 0x2400 - .2byte 0 - -gUnknown_08614FE8:: @ 8614FE8 - obj_image_anim_frame 0, 0 - obj_image_anim_end - -gUnknown_08614FF0:: @ 8614FF0 - .4byte gUnknown_08614FE8 - -gUnknown_08614FF4:: @ 8614FF4 - spr_template 0, 0, gUnknown_08614FE0, gUnknown_08614FF0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/include/constants/items.h b/include/constants/items.h index 6135b8d6f..388ffba18 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -383,6 +383,9 @@ #define ITEM_MAGMA_EMBLEM 375 #define ITEM_OLD_SEA_MAP 376 +#define ITEM_LAST_ID 376 +#define ITEM_FIELD_ARROW 377 + #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY #define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY #define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1)) diff --git a/include/item_icon.h b/include/item_icon.h index a43b72f39..b702b2045 100644 --- a/include/item_icon.h +++ b/include/item_icon.h @@ -1,17 +1,16 @@ -// -// Created by scott on 10/20/2017. -// - #ifndef GUARD_ITEM_ICON_H #define GUARD_ITEM_ICON_H -extern EWRAM_DATA void *gUnknown_0203CEBC; -extern EWRAM_DATA void *gUnknown_0203CEC0; +extern void *gItemIconDecompressionBuffer; +extern void *gItemIcon4x4Buffer; -extern const struct SpriteTemplate gUnknown_08614FF4; +extern const struct SpriteTemplate gItemIconSpriteTemplate; bool8 AllocItemIconTemporaryBuffers(void); -void CopyItemIconPicTo4x4Buffer(void *src, void *dest); void FreeItemIconTemporaryBuffers(void); +void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId); +u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); +const void *GetItemIconPicOrPalette(u16 itemId, u8 which); #endif //GUARD_ITEM_ICON_H diff --git a/ld_script.txt b/ld_script.txt index 345afb27f..702120178 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -255,7 +255,7 @@ SECTIONS { asm/menu_indicators.o(.text); src/unk_text_util.o(.text); src/save_location.o(.text); - asm/item_icon.o(.text); + src/item_icon.o(.text); asm/party_menu.o(.text); asm/battle_tent.o(.text); src/unk_text_util_2.o(.text); @@ -526,6 +526,7 @@ SECTIONS { data/menu_indicators.o(.rodata); src/save_location.o(.rodata); data/item_icon.o(.rodata); + src/item_icon.o(.rodata); data/party_menu.o(.rodata); data/battle_tent.o(.rodata); src/unk_text_util_2.o(.rodata); diff --git a/src/decoration.c b/src/decoration.c index 68a455285..68dcb26fb 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -2013,9 +2013,9 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor) { return MAX_SPRITES; } - LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gUnknown_0203CEBC); - CopyItemIconPicTo4x4Buffer(gUnknown_0203CEBC, gUnknown_0203CEC0); - sheet.data = gUnknown_0203CEC0; + LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gItemIconDecompressionBuffer); + CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer); + sheet.data = gItemIcon4x4Buffer; sheet.size = 0x200; sheet.tag = tilesTag; LoadSpriteSheet(&sheet); @@ -2023,7 +2023,7 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor) palette.tag = paletteTag; LoadCompressedObjectPalette(&palette); template = malloc(sizeof(struct SpriteTemplate)); - *template = gUnknown_08614FF4; + *template = gItemIconSpriteTemplate; template->tileTag = tilesTag; template->paletteTag = paletteTag; spriteId = CreateSprite(template, 0, 0, 0); diff --git a/src/item_icon.c b/src/item_icon.c new file mode 100644 index 000000000..4aaad9c31 --- /dev/null +++ b/src/item_icon.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "item_icon.h" +#include "malloc.h" +#include "sprite.h" +#include "decompress.h" +#include "constants/items.h" + +// EWRAM vars +EWRAM_DATA void *gItemIconDecompressionBuffer = NULL; +EWRAM_DATA void *gItemIcon4x4Buffer = NULL; + +// const rom data +extern const void *const gItemIconTable[][2]; // todo: move to C file + +static const struct OamData sOamData_ItemIcon = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 2, + .affineParam = 0 +}; + +static const union AnimCmd sSpriteAnim_ItemIcon[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_ItemIcon[] = +{ + sSpriteAnim_ItemIcon +}; + +const struct SpriteTemplate gItemIconSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &sOamData_ItemIcon, + .anims = sSpriteAnimTable_ItemIcon, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +// code +bool8 AllocItemIconTemporaryBuffers(void) +{ + gItemIconDecompressionBuffer = gItemIconDecompressionBuffer; // needed to match + gItemIconDecompressionBuffer = Alloc(0x120); + if (gItemIconDecompressionBuffer == NULL) + return FALSE; + + gItemIcon4x4Buffer = gItemIcon4x4Buffer; // needed to match + gItemIcon4x4Buffer = AllocZeroed(0x200); + if (gItemIcon4x4Buffer == NULL) + { + Free(gItemIconDecompressionBuffer); + return FALSE; + } + + return TRUE; +} + +void FreeItemIconTemporaryBuffers(void) +{ + Free(gItemIconDecompressionBuffer); + Free(gItemIcon4x4Buffer); +} + +void CopyItemIconPicTo4x4Buffer(const void *src, void *dest) +{ + u8 i; + + for (i = 0; i < 3; i++) + CpuCopy16(src + i * 96, dest + i * 128, 0x60); +} + +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId) +{ + if (!AllocItemIconTemporaryBuffers()) + { + return MAX_SPRITES; + } + else + { + u8 spriteId; + struct SpriteSheet spriteSheet; + struct CompressedSpritePalette spritePalette; + struct SpriteTemplate *spriteTemplate; + + LZDecompressWram(GetItemIconPicOrPalette(itemId, 0), gItemIconDecompressionBuffer); + CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer); + spriteSheet.data = gItemIcon4x4Buffer; + spriteSheet.size = 0x200; + spriteSheet.tag = tilesTag; + LoadSpriteSheet(&spriteSheet); + + spritePalette.data = GetItemIconPicOrPalette(itemId, 1); + spritePalette.tag = paletteTag; + LoadCompressedObjectPalette(&spritePalette); + + spriteTemplate = Alloc(sizeof(*spriteTemplate)); + CpuCopy16(&gItemIconSpriteTemplate, spriteTemplate, sizeof(*spriteTemplate)); + spriteTemplate->tileTag = tilesTag; + spriteTemplate->paletteTag = paletteTag; + spriteId = CreateSprite(spriteTemplate, 0, 0, 0); + + FreeItemIconTemporaryBuffers(); + Free(spriteTemplate); + + return spriteId; + } +} + +u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) +{ + if (!AllocItemIconTemporaryBuffers()) + { + return MAX_SPRITES; + } + else + { + u8 spriteId; + struct SpriteSheet spriteSheet; + struct CompressedSpritePalette spritePalette; + struct SpriteTemplate *spriteTemplate; + + LZDecompressWram(GetItemIconPicOrPalette(itemId, 0), gItemIconDecompressionBuffer); + CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer); + spriteSheet.data = gItemIcon4x4Buffer; + spriteSheet.size = 0x200; + spriteSheet.tag = tilesTag; + LoadSpriteSheet(&spriteSheet); + + spritePalette.data = GetItemIconPicOrPalette(itemId, 1); + spritePalette.tag = paletteTag; + LoadCompressedObjectPalette(&spritePalette); + + spriteTemplate = Alloc(sizeof(*spriteTemplate)); + CpuCopy16(customSpriteTemplate, spriteTemplate, sizeof(*spriteTemplate)); + spriteTemplate->tileTag = tilesTag; + spriteTemplate->paletteTag = paletteTag; + spriteId = CreateSprite(spriteTemplate, 0, 0, 0); + + FreeItemIconTemporaryBuffers(); + Free(spriteTemplate); + + return spriteId; + } +} + +const void *GetItemIconPicOrPalette(u16 itemId, u8 which) +{ + if (itemId == 0xFFFF) + itemId = ITEM_FIELD_ARROW; + else if (itemId > ITEM_LAST_ID) + itemId = 0; + + return gItemIconTable[itemId][which]; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 67911a3cc..a1f49334c 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1409,12 +1409,7 @@ gUnknown_0203CE8C: @ 203CE8C .space 0x10 .include "src/unk_text_util.o" - -gUnknown_0203CEBC: @ 203CEBC - .space 0x4 - -gUnknown_0203CEC0: @ 203CEC0 - .space 0x4 + .include "src/item_icon.o" gUnknown_0203CEC4: @ 203CEC4 .space 0x4 -- cgit v1.2.3 From 0826ea552edf3c50c50fa9836605d5a1547ed92a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 16:09:17 +0100 Subject: forgot a semicolon LMAO --- include/berry_tag_screen.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h index b50d31590..26664bea6 100644 --- a/include/berry_tag_screen.h +++ b/include/berry_tag_screen.h @@ -1,6 +1,6 @@ #ifndef GUARD_BERRY_TAG_SCREEN_H #define GUARD_BERRY_TAG_SCREEN_H -void DoBerryTagScreen(void) +void DoBerryTagScreen(void); #endif // GUARD_BERRY_TAG_SCREEN_H -- cgit v1.2.3 From 27452ca822f6e4096cfc1545c8192ebdd06cdf06 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2018 19:00:01 +0100 Subject: decompile rtc reset screen --- asm/reset_rtc_screen.s | 1342 -------------------------------------------- asm/title_screen.s | 2 +- data/reset_rtc_screen.s | 78 --- include/reset_rtc_screen.h | 6 + include/strings.h | 13 + ld_script.txt | 4 +- src/reset_rtc_screen.c | 640 +++++++++++++++++++++ src/start_menu.c | 7 + 8 files changed, 669 insertions(+), 1423 deletions(-) delete mode 100644 asm/reset_rtc_screen.s delete mode 100644 data/reset_rtc_screen.s create mode 100644 include/reset_rtc_screen.h create mode 100644 src/reset_rtc_screen.c diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s deleted file mode 100644 index b314afbf5..000000000 --- a/asm/reset_rtc_screen.s +++ /dev/null @@ -1,1342 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_809E8E8 -sub_809E8E8: @ 809E8E8 - push {lr} - adds r3, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0xC - ldrsh r1, [r0, r2] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r1, r0 - beq _0809E9FE - strh r1, [r3, 0x30] - subs r0, r1, 0x1 - cmp r0, 0x5 - bhi _0809E9FE - lsls r0, 2 - ldr r1, =_0809E920 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0809E920: - .4byte _0809E938 - .4byte _0809E95C - .4byte _0809E980 - .4byte _0809E9A4 - .4byte _0809E9CE - .4byte _0809E9F8 -_0809E938: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0x1 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x41 - ands r0, r1 - strb r0, [r2] - movs r0, 0x35 - b _0809E9C6 -_0809E95C: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0x1 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x41 - ands r0, r1 - strb r0, [r2] - movs r0, 0x56 - b _0809E9C6 -_0809E980: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0x1 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x41 - ands r0, r1 - strb r0, [r2] - movs r0, 0x65 - b _0809E9C6 -_0809E9A4: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0x1 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x41 - ands r0, r1 - strb r0, [r2] - movs r0, 0x74 -_0809E9C6: - strh r0, [r3, 0x20] - movs r0, 0x44 - strh r0, [r3, 0x22] - b _0809E9FE -_0809E9CE: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0x2 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x42 - ands r0, r1 - strb r0, [r2] - movs r0, 0x99 - strh r0, [r3, 0x20] - movs r0, 0x50 - strh r0, [r3, 0x22] - b _0809E9FE -_0809E9F8: - adds r0, r3, 0 - bl DestroySprite -_0809E9FE: - pop {r0} - bx r0 - thumb_func_end sub_809E8E8 - - thumb_func_start sub_809EA04 -sub_809EA04: @ 809EA04 - push {lr} - adds r3, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0xC - ldrsh r1, [r0, r2] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r1, r0 - beq _0809EAFE - strh r1, [r3, 0x30] - subs r0, r1, 0x1 - cmp r0, 0x5 - bhi _0809EAFE - lsls r0, 2 - ldr r1, =_0809EA3C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0809EA3C: - .4byte _0809EA54 - .4byte _0809EA78 - .4byte _0809EA9C - .4byte _0809EAC0 - .4byte _0809EAEA - .4byte _0809EAF8 -_0809EA54: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x40 - ands r0, r1 - strb r0, [r2] - movs r0, 0x35 - b _0809EAE2 -_0809EA78: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x40 - ands r0, r1 - strb r0, [r2] - movs r0, 0x56 - b _0809EAE2 -_0809EA9C: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x40 - ands r0, r1 - strb r0, [r2] - movs r0, 0x65 - b _0809EAE2 -_0809EAC0: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r0, 0 - strb r0, [r1] - subs r2, 0x12 - ldrb r1, [r2] - subs r0, 0x40 - ands r0, r1 - strb r0, [r2] - movs r0, 0x74 -_0809EAE2: - strh r0, [r3, 0x20] - movs r0, 0x5C - strh r0, [r3, 0x22] - b _0809EAFE -_0809EAEA: - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809EAFE -_0809EAF8: - adds r0, r3, 0 - bl DestroySprite -_0809EAFE: - pop {r0} - bx r0 - thumb_func_end sub_809EA04 - - thumb_func_start sub_809EB04 -sub_809EB04: @ 809EB04 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_085104C4 - bl LoadSpritePalette - ldr r0, =gSpriteTemplate_85104F0 - mov r8, r0 - movs r1, 0x35 - movs r2, 0x44 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - ldr r6, =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r6, 0 - adds r4, 0x1C - adds r2, r0, r4 - ldr r1, =sub_809E8E8 - str r1, [r2] - adds r0, r6 - strh r5, [r0, 0x2E] - ldr r1, =0x0000ffff - strh r1, [r0, 0x30] - mov r0, r8 - movs r1, 0x35 - movs r2, 0x44 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r4 - ldr r1, =sub_809EA04 - str r1, [r4] - adds r0, r6 - strh r5, [r0, 0x2E] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x30] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809EB04 - - thumb_func_start sub_809EB8C -sub_809EB8C: @ 809EB8C - push {lr} - ldr r0, =gUnknown_085104C4 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .pool - thumb_func_end sub_809EB8C - - thumb_func_start sub_809EBA0 -sub_809EBA0: @ 809EBA0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl sub_8198070 - adds r0, r4, 0 - bl RemoveWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809EBA0 - - thumb_func_start sub_809EBC4 -sub_809EBC4: @ 809EBC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r10, r0 - adds r0, r1, 0 - mov r9, r2 - adds r1, r3, 0 - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r2, [sp, 0x38] - mov r8, r2 - mov r2, r10 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r3, r0, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r1, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r2, r8 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r7, =gStringVar4 - ldr r4, =gStringVar1 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - adds r7, r0, 0 - ldr r1, =gText_Day - bl StringCopy - adds r7, r0, 0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - adds r7, r0, 0 - ldr r5, =gText_Colon3 - adds r1, r5, 0 - bl StringCopy - adds r7, r0, 0 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - adds r7, r0, 0 - adds r1, r5, 0 - bl StringCopy - adds r7, r0, 0 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - ldr r2, =gStringVar4 - mov r0, r9 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r0, r10 - movs r1, 0x1 - ldr r3, [sp, 0xC] - bl PrintTextOnWindow - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809EBC4 - - thumb_func_start sub_809ECB4 -sub_809ECB4: @ 809ECB4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - adds r4, r0, 0 - mov r9, r1 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r0, [sp, 0x24] - mov r8, r0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0x85 - lsls r2, 2 - adds r0, r4, 0 - movs r1, 0 - movs r3, 0xE - bl SetWindowBorderStyle - str r5, [sp] - str r6, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - mov r3, r9 - bl sub_809EBC4 - ldr r2, =gText_Confirm2 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - movs r3, 0x7E - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809ECB4 - - thumb_func_start sub_809ED38 -sub_809ED38: @ 809ED38 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r3, 16 - lsrs r3, 16 - adds r1, r3, 0 - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809ED52 - ldrh r0, [r4] - subs r0, 0x1 - b _0809ED6C -_0809ED52: - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - beq _0809ED60 - ldrh r0, [r4] - adds r0, 0x1 - b _0809ED8A -_0809ED60: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0809ED7A - ldrh r0, [r4] - subs r0, 0xA -_0809ED6C: - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, r5 - bge _0809ED96 - strh r2, [r4] - b _0809ED96 -_0809ED7A: - movs r0, 0x10 - ands r1, r0 - cmp r1, 0 - bne _0809ED86 - movs r0, 0 - b _0809ED98 -_0809ED86: - ldrh r0, [r4] - adds r0, 0xA -_0809ED8A: - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, r2 - ble _0809ED96 - strh r5, [r4] -_0809ED96: - movs r0, 0x1 -_0809ED98: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809ED38 - - thumb_func_start sub_809EDA0 -sub_809EDA0: @ 809EDA0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x8] - bx lr - .pool - thumb_func_end sub_809EDA0 - - thumb_func_start sub_809EDB8 -sub_809EDB8: @ 809EDB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, =gTasks + 0x8 - adds r0, r4, r5 - ldrb r0, [r0, 0x10] - bl sub_809EBA0 - bl sub_809EB8C - subs r5, 0x8 - adds r4, r5 - ldr r0, =sub_809EDA0 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809EDB8 - - thumb_func_start sub_809EDE8 -sub_809EDE8: @ 809EDE8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r7, r0, 3 - ldr r0, =gTasks + 0x8 - mov r8, r0 - adds r5, r7, r0 - ldrb r4, [r5, 0x4] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - ldr r1, =gUnknown_08510420 - 0x4 - adds r2, r0, r1 - ldr r1, =gMain - ldrh r3, [r1, 0x2E] - movs r0, 0x2 - ands r0, r3 - mov r12, r1 - cmp r0, 0 - beq _0809EE3C - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, =sub_809EDB8 - str r1, [r0] - movs r0, 0 - strh r0, [r5, 0x2] - movs r0, 0x6 - b _0809EE5C - .pool -_0809EE3C: - movs r0, 0x10 - ands r0, r3 - cmp r0, 0 - beq _0809EE4A - ldrb r0, [r2, 0x7] - cmp r0, 0 - bne _0809EE5C -_0809EE4A: - mov r3, r12 - ldrh r1, [r3, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809EE66 - ldrb r0, [r2, 0x6] - cmp r0, 0 - beq _0809EE66 -_0809EE5C: - strh r0, [r5, 0x4] - movs r0, 0x5 - bl PlaySE - b _0809EEF4 -_0809EE66: - cmp r4, 0x5 - bne _0809EEB4 - mov r0, r12 - ldrh r1, [r0, 0x2E] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0809EEF4 - ldr r1, =gLocalTime - ldrh r0, [r5, 0x6] - strh r0, [r1] - ldrh r0, [r5, 0x8] - strb r0, [r1, 0x2] - ldrh r0, [r5, 0xA] - strb r0, [r1, 0x3] - ldrh r0, [r5, 0xC] - strb r0, [r1, 0x4] - movs r0, 0x5 - bl PlaySE - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_809EDB8 - str r1, [r0] - strh r4, [r5, 0x2] - movs r0, 0x6 - strh r0, [r5, 0x4] - b _0809EEF4 - .pool -_0809EEB4: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r5, r0 - ldrh r1, [r2, 0x2] - ldrh r2, [r2, 0x4] - mov r3, r12 - ldrh r4, [r3, 0x30] - movs r3, 0xC0 - ands r3, r4 - bl sub_809ED38 - cmp r0, 0 - beq _0809EEF4 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5, 0x10] - ldrh r3, [r5, 0x6] - ldrb r1, [r5, 0x8] - str r1, [sp] - ldrb r1, [r5, 0xA] - str r1, [sp, 0x4] - ldrb r1, [r5, 0xC] - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0x1 - bl sub_809EBC4 - ldrb r0, [r5, 0x10] - movs r1, 0x2 - bl CopyWindowToVram -_0809EEF4: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809EDE8 - - thumb_func_start sub_809EF00 -sub_809EF00: @ 809EF00 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r6, r0, 2 - add r6, r8 - lsls r6, 3 - ldr r0, =gTasks + 0x8 - mov r9, r0 - adds r5, r6, r0 - movs r0, 0 - strh r0, [r5] - ldr r1, =gLocalTime - ldrh r0, [r1] - strh r0, [r5, 0x6] - movs r0, 0x2 - ldrsb r0, [r1, r0] - strh r0, [r5, 0x8] - movs r0, 0x3 - ldrsb r0, [r1, r0] - strh r0, [r5, 0xA] - movs r0, 0x4 - ldrsb r0, [r1, r0] - strh r0, [r5, 0xC] - ldr r0, =gUnknown_08510420 - bl AddWindow - strh r0, [r5, 0x10] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x6] - ldrb r2, [r5, 0x8] - ldrb r3, [r5, 0xA] - ldrb r4, [r5, 0xC] - str r4, [sp] - bl sub_809ECB4 - mov r0, r8 - bl sub_809EB04 - movs r0, 0x2 - strh r0, [r5, 0x4] - movs r0, 0x8 - negs r0, r0 - add r9, r0 - add r6, r9 - ldr r0, =sub_809EDE8 - str r0, [r6] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809EF00 - - thumb_func_start sub_809EF88 -sub_809EF88: @ 809EF88 - push {r4-r7,lr} - sub sp, 0x4 - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl SetVBlankCallback - movs r2, 0xA0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, =0x040000d4 - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, =0x81000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - mov r4, sp - movs r6, 0 - movs r5, 0x80 - lsls r5, 5 - ldr r7, =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0809EFCA: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _0809EFCA - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - bl LoadOam - bl ScanlineEffect_Stop - bl ScanlineEffect_Clear - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - bl sub_809F048 - ldr r0, =sub_809F0AC - bl SetVBlankCallback - ldr r0, =sub_809F090 - bl SetMainCallback2 - ldr r0, =sub_809F200 - movs r1, 0x50 - bl CreateTask - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809EF88 - - thumb_func_start sub_809F048 -sub_809F048: @ 809F048 - push {lr} - bl clear_scheduled_bg_copies_to_vram - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08510404 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - ldr r0, =gUnknown_08510408 - bl InitWindows - bl DeactivateAllTextPrinters - bl sub_81973A4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_809F048 - - thumb_func_start sub_809F090 -sub_809F090: @ 809F090 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_809F090 - - thumb_func_start sub_809F0AC -sub_809F0AC: @ 809F0AC - push {lr} - bl ProcessSpriteCopyRequests - bl LoadOam - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_809F0AC - - thumb_func_start sub_809F0C0 -sub_809F0C0: @ 809F0C0 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - movs r1, 0 - movs r3, 0xF - bl sub_8197B1C - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_809F0C0 - - thumb_func_start sub_809F0F8 -sub_809F0F8: @ 809F0F8 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - movs r0, 0 - ldrsh r5, [r6, r0] - cmp r5, 0 - beq _0809F11C - cmp r5, 0x1 - beq _0809F1B2 - b _0809F1F8 - .pool -_0809F11C: - movs r2, 0x85 - lsls r2, 2 - movs r0, 0 - movs r1, 0 - movs r3, 0xE - bl SetWindowBorderStyle - ldr r2, =gText_PresentTime - movs r0, 0x1 - str r0, [sp] - movs r4, 0xFF - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldr r1, =gLocalTime - ldrh r3, [r1] - ldrb r0, [r1, 0x2] - str r0, [sp] - ldrb r0, [r1, 0x3] - str r0, [sp, 0x4] - ldrb r0, [r1, 0x4] - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x11 - bl sub_809EBC4 - ldr r2, =gText_PreviousTime - movs r0, 0x21 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xA0 - ldrh r3, [r0] - adds r0, 0x2 - ldrb r0, [r0] - str r0, [sp] - adds r0, r1, 0 - adds r0, 0xA3 - ldrb r0, [r0] - str r0, [sp, 0x4] - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x31 - bl sub_809EBC4 - ldr r0, =gText_ResetRTCConfirmCancel - bl sub_809F0C0 - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] -_0809F1B2: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809F1E4 - adds r0, r7, 0 - bl DestroyTask - bl DoSoftReset - b _0809F1F8 - .pool -_0809F1E4: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809F1F8 - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl DestroyTask -_0809F1F8: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_809F0F8 - - thumb_func_start sub_809F200 -sub_809F200: @ 809F200 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x6 - bls _0809F21C - b _0809F404 -_0809F21C: - lsls r0, 2 - ldr r1, =_0809F230 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0809F230: - .4byte _0809F24C - .4byte _0809F268 - .4byte _0809F2B4 - .4byte _0809F310 - .4byte _0809F398 - .4byte _0809F3C8 - .4byte _0809F3EA -_0809F24C: - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - strh r0, [r5] - b _0809F404 - .pool -_0809F268: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809F276 - b _0809F404 -_0809F276: - ldr r0, =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _0809F282 - cmp r0, 0x2 - bne _0809F29C -_0809F282: - ldr r0, =gText_NoSaveFileCantSetTime - bl sub_809F0C0 - movs r0, 0x5 - strh r0, [r5] - b _0809F404 - .pool -_0809F29C: - bl RtcCalcLocalTime - ldr r0, =sub_809F0F8 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x2] - b _0809F334 - .pool -_0809F2B4: - ldr r2, =gTasks - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0x1 - bne _0809F2CA - b _0809F404 -_0809F2CA: - movs r0, 0 - movs r1, 0 - bl sub_8198070 - ldr r0, =gText_PleaseResetTime - bl sub_809F0C0 - ldr r2, =gLocalTime - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xA0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, =sub_809EF00 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x2] - movs r0, 0x3 - strh r0, [r5] - b _0809F404 - .pool -_0809F310: - ldr r2, =gTasks - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809F404 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0809F340 - ldrb r0, [r5, 0x2] - bl DestroyTask -_0809F334: - movs r0, 0x2 - strh r0, [r5] - b _0809F404 - .pool -_0809F340: - ldrb r0, [r5, 0x2] - bl DestroyTask - bl RtcReset - ldr r4, =gLocalTime - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x2 - ldrsb r1, [r4, r1] - movs r2, 0x3 - ldrsb r2, [r4, r2] - movs r3, 0x4 - ldrsb r3, [r4, r3] - bl RtcCalcLocalTimeOffset - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xA0 - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, =0x00004040 - ldrh r1, [r4] - bl VarSet - bl DisableResetRTC - ldr r0, =gText_ClockHasBeenReset - bl sub_809F0C0 - movs r0, 0x4 - strh r0, [r5] - b _0809F404 - .pool -_0809F398: - movs r0, 0 - bl TrySavingData - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809F3B8 - ldr r0, =gText_SaveCompleted - bl sub_809F0C0 - movs r0, 0x49 - bl PlaySE - b _0809F3C4 - .pool -_0809F3B8: - ldr r0, =gText_SaveFailed - bl sub_809F0C0 - movs r0, 0x16 - bl PlaySE -_0809F3C4: - movs r0, 0x5 - strh r0, [r5] -_0809F3C8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809F404 - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x6 - strh r0, [r5] -_0809F3EA: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0809F404 - adds r0, r4, 0 - bl DestroyTask - bl FreeAllWindowBuffers - bl DoSoftReset -_0809F404: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809F200 - - thumb_func_start sub_809F41C -sub_809F41C: @ 809F41C - push {lr} - ldr r0, =0x00000861 - bl FlagSet - movs r0, 0x86 - lsls r0, 4 - bl FlagSet - ldr r0, =0x00000862 - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809F41C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/title_screen.s b/asm/title_screen.s index 32594424a..9a494c321 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -1243,7 +1243,7 @@ c2_reset_rtc_screen_1: @ 80AAF0C lsls r0, 24 cmp r0, 0 bne _080AAF1E - ldr r0, =sub_809EF88 + ldr r0, =CB2_InitResetRtcScreen bl SetMainCallback2 _080AAF1E: pop {r0} diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s deleted file mode 100644 index 6d3964da8..000000000 --- a/data/reset_rtc_screen.s +++ /dev/null @@ -1,78 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_08510404:: @ 8510404 struct BgTemplate - .4byte 0x000001f0 - - .align 2 -gUnknown_08510408:: @ 8510408 - window_template 0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155 - window_template 0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9 - null_window_template - - .align 2 -gUnknown_08510420:: @ 8510420 - window_template 0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf - - .align 2 -gUnknown_08510428:: @ 8510428 - .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0 - .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0 - .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0 - .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0 - .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0 - - .align 2 -gOamData_08510464:: @ 8510464 - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gResetRtcScreen_DownArrowGfx:: @ 851046C - .incbin "graphics/misc/reset_rtc_screen_downarrow.4bpp" - - .align 2 -gResetRtcScreen_RightArrowGfx:: @ 851048C - .incbin "graphics/misc/reset_rtc_screen_rightarrow.4bpp" - - .align 2 -gResetRtcScreen_ArrowPal: @ 85104AC - .incbin "graphics/misc/reset_rtc_screen_arrow.gbapal" - - .align 2 -gSpriteImageTable_85104B4:: @ 85104B4 - obj_frame_tiles gResetRtcScreen_DownArrowGfx, 0x20 - obj_frame_tiles gResetRtcScreen_RightArrowGfx, 0x20 - - .align 2 -gUnknown_085104C4:: @ 85104C4 - obj_pal gResetRtcScreen_ArrowPal, 0x1000 - - .align 2 -gSpriteAnim_85104CC:: @ 85104CC - obj_image_anim_frame 0, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_85104D4: @ 85104D4 - obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_85104DC:: @ 85104DC - obj_image_anim_frame 1, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_85104E4:: @ 85104E4 - .4byte gSpriteAnim_85104CC - .4byte gSpriteAnim_85104D4 - .4byte gSpriteAnim_85104DC - - .align 2 -gSpriteTemplate_85104F0:: @ 85104F0 - spr_template 0xFFFF, 0x1000, gOamData_08510464, gSpriteAnimTable_85104E4, gSpriteImageTable_85104B4, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h new file mode 100644 index 000000000..5807dec99 --- /dev/null +++ b/include/reset_rtc_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RESET_RTC_SCREEN_H +#define GUARD_RESET_RTC_SCREEN_H + +void CB2_InitResetRtcScreen(void); + +#endif // GUARD_RESET_RTC_SCREEN_H diff --git a/include/strings.h b/include/strings.h index 305007c5d..33f306c41 100644 --- a/include/strings.h +++ b/include/strings.h @@ -152,6 +152,19 @@ extern const u8 gText_EggNickname[]; extern const u8 gText_Pokemon[]; extern const u8 gText_InGameClockUsable[]; +// reset rtc screen texts +extern const u8 gText_Day[]; +extern const u8 gText_Colon3[]; +extern const u8 gText_Confirm2[]; +extern const u8 gText_PresentTime[]; +extern const u8 gText_PreviousTime[]; +extern const u8 gText_ResetRTCConfirmCancel[]; +extern const u8 gText_NoSaveFileCantSetTime[]; +extern const u8 gText_PleaseResetTime[]; +extern const u8 gText_ClockHasBeenReset[]; +extern const u8 gText_SaveCompleted[]; +extern const u8 gText_SaveFailed[]; + // menu texts extern const u8 gText_MenuPokedex[]; extern const u8 gText_MenuPokemon[]; diff --git a/ld_script.txt b/ld_script.txt index 345afb27f..8bcafd0f2 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -108,7 +108,7 @@ SECTIONS { src/coord_event_weather.o(.text); asm/field_tasks.o(.text); src/clock.o(.text); - asm/reset_rtc_screen.o(.text); + src/reset_rtc_screen.o(.text); src/start_menu.o(.text); asm/start_menu.o(.text); src/tileset_anims.o(.text); @@ -409,7 +409,7 @@ SECTIONS { src/scrcmd.o(.rodata); src/coord_event_weather.o(.rodata); data/field_tasks.o(.rodata); - data/reset_rtc_screen.o(.rodata); + src/reset_rtc_screen.o(.rodata); src/start_menu.o(.rodata); src/tileset_anims.o(.rodata); src/palette.o(.rodata); diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c new file mode 100644 index 000000000..16cc72166 --- /dev/null +++ b/src/reset_rtc_screen.c @@ -0,0 +1,640 @@ +#include "global.h" +#include "reset_rtc_screen.h" +#include "event_data.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "rtc.h" +#include "save.h" +#include "sprite.h" +#include "constants/songs.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" +#include "scanline_effect.h" +#include "bg.h" +#include "window.h" +#include "gpu_regs.h" +#include "new_menu_helpers.h" + +struct ResetRtcStruct +{ + /*0x0*/ u8 dataIndex; + /*0x2*/ u16 minVal; + /*0x4*/ u16 maxVal; + /*0x6*/ u8 left; + /*0x7*/ u8 right; + /*0x8*/ u8 unk8; +}; + +// this file's functions +static void CB2_ResetRtcScreen(void); +static void VBlankCB(void); +static void Task_ResetRtcScreen(u8 taskId); +static void sub_809F048(void); + +// const rom data +static const struct BgTemplate sBackgroundTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + } +}; + +static const struct WindowTemplate sUnknown_08510408[] = +{ + {0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155}, + {0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9}, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sUnknown_08510420 = {0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf}; + +static const struct ResetRtcStruct sUnknown_08510428[5] = +{ + { + .dataIndex = 3, + .minVal = 1, + .maxVal = 9999, + .left = 0, + .right = 2, + .unk8 = 0, + }, + { + .dataIndex = 4, + .minVal = 0, + .maxVal = 23, + .left = 1, + .right = 3, + .unk8 = 0, + }, + { + .dataIndex = 5, + .minVal = 0, + .maxVal = 59, + .left = 2, + .right = 4, + .unk8 = 0, + }, + { + .dataIndex = 6, + .minVal = 0, + .maxVal = 59, + .left = 3, + .right = 5, + .unk8 = 0, + }, + { + .dataIndex = 7, + .minVal = 0, + .maxVal = 0, + .left = 4, + .right = 0, + .unk8 = 6, + }, +}; + +static const struct OamData sOamData_08510464 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const u8 sResetRtcScreen_DownArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_downarrow.4bpp"); +static const u8 sResetRtcScreen_RightArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_rightarrow.4bpp"); +static const u16 sResetRtcScreen_ArrowPal[] = INCBIN_U16("graphics/misc/reset_rtc_screen_arrow.gbapal"); + +static const struct SpriteFrameImage sSpriteImageTable_85104B4[] = +{ + obj_frame_tiles(sResetRtcScreen_DownArrowGfx), + obj_frame_tiles(sResetRtcScreen_RightArrowGfx) +}; + +static const struct SpritePalette sSpritePalette_Arrow = +{ + sResetRtcScreen_ArrowPal, 0x1000 +}; + +static const union AnimCmd sSpriteAnim_85104CC[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_85104D4[] = +{ + ANIMCMD_FRAME(0, 158, .vFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_85104DC[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_85104E4[] = +{ + sSpriteAnim_85104CC, + sSpriteAnim_85104D4, + sSpriteAnim_85104DC, +}; + +static const struct SpriteTemplate sSpriteTemplate_85104F0 = +{ + .tileTag = 0xFFFF, + .paletteTag = 0x1000, + .oam = &sOamData_08510464, + .anims = sSpriteAnimTable_85104E4, + .images = sSpriteImageTable_85104B4, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +// code +static void SpriteCB_ResetRtcCusor0(struct Sprite *sprite) +{ + int state = gTasks[sprite->data[0]].data[2]; + if (state != sprite->data[1]) + { + sprite->data[1] = state; + switch (state) + { + case 1: + sprite->invisible = FALSE; + sprite->animNum = 1; + sprite->animDelayCounter = 0; + sprite->pos1.x = 53; + sprite->pos1.y = 68; + break; + case 2: + sprite->invisible = FALSE; + sprite->animNum = 1; + sprite->animDelayCounter = 0; + sprite->pos1.x = 86; + sprite->pos1.y = 68; + break; + case 3: + sprite->invisible = FALSE; + sprite->animNum = 1; + sprite->animDelayCounter = 0; + sprite->pos1.x = 101; + sprite->pos1.y = 68; + break; + case 4: + sprite->invisible = FALSE; + sprite->animNum = 1; + sprite->animDelayCounter = 0; + sprite->pos1.x = 116; + sprite->pos1.y = 68; + break; + case 5: + sprite->invisible = FALSE; + sprite->animNum = 2; + sprite->animDelayCounter = 0; + sprite->pos1.x = 153; + sprite->pos1.y = 80; + break; + case 6: + DestroySprite(sprite); + break; + } + } +} + +static void SpriteCB_ResetRtcCusor1(struct Sprite *sprite) +{ + int state = gTasks[sprite->data[0]].data[2]; + if (state != sprite->data[1]) + { + sprite->data[1] = state; + switch (state) + { + case 1: + sprite->invisible = FALSE; + sprite->animNum = 0; + sprite->animDelayCounter = 0; + sprite->pos1.x = 53; + sprite->pos1.y = 92; + break; + case 2: + sprite->invisible = FALSE; + sprite->animNum = 0; + sprite->animDelayCounter = 0; + sprite->pos1.x = 86; + sprite->pos1.y = 92; + break; + case 3: + sprite->invisible = FALSE; + sprite->animNum = 0; + sprite->animDelayCounter = 0; + sprite->pos1.x = 101; + sprite->pos1.y = 92; + break; + case 4: + sprite->invisible = FALSE; + sprite->animNum = 0; + sprite->animDelayCounter = 0; + sprite->pos1.x = 116; + sprite->pos1.y = 92; + break; + case 5: + sprite->invisible = TRUE; + break; + case 6: + DestroySprite(sprite); + break; + } + } +} + +static void CreateCursor(u8 taskId) +{ + u32 spriteId; + + LoadSpritePalette(&sSpritePalette_Arrow); + + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0); + gSprites[spriteId].callback = SpriteCB_ResetRtcCusor0; + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = -1; + + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0); + gSprites[spriteId].callback = SpriteCB_ResetRtcCusor1; + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = -1; +} + +static void FreeCursorPalette(void) +{ + FreeSpritePaletteByTag(sSpritePalette_Arrow.tag); +} + +static void HideChooseTimeWindow(u8 windowId) +{ + sub_8198070(windowId, FALSE); + RemoveWindow(windowId); + schedule_bg_copy_tilemap_to_vram(0); +} + +static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u8 seconds) +{ + u8 *dest = gStringVar4; + + ConvertIntToDecimalStringN(gStringVar1, days, 1, 4); + dest = StringCopy(dest, gStringVar1); + dest = StringCopy(dest, gText_Day); + + ConvertIntToDecimalStringN(gStringVar1, hours, 1, 3); + dest = StringCopy(dest, gStringVar1); + dest = StringCopy(dest, gText_Colon3); + + ConvertIntToDecimalStringN(gStringVar1, minutes, 2, 2); + dest = StringCopy(dest, gStringVar1); + dest = StringCopy(dest, gText_Colon3); + + ConvertIntToDecimalStringN(gStringVar1, seconds, 2, 2); + dest = StringCopy(dest, gStringVar1); + + PrintTextOnWindow(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL); +} + +static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds) +{ + SetWindowBorderStyle(windowId, FALSE, 0x214, 0xE); + PrintTime(windowId, 0, 1, days, hours, minutes, seconds); + PrintTextOnWindow(windowId, 1, gText_Confirm2, 126, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); +} + +static bool32 MoveTimeUpDown(s16 *val, int minVal, int maxVal, u16 keys) +{ + if (keys & DPAD_DOWN) + { + (*val)--; + if (*val < minVal) + *val = maxVal; + } + else if (keys & DPAD_UP) + { + (*val)++; + if (*val > maxVal) + *val = minVal; + } + else if (keys & DPAD_LEFT) + { + *val -= 10; + if (*val < minVal) + *val = maxVal; + } + else if (keys & DPAD_RIGHT) + { + *val += 10; + if (*val > maxVal) + *val = minVal; + } + else + { + return FALSE; + } + + return TRUE; +} + +static void Task_ResetRtc_3(u8 taskId) +{ + gTasks[taskId].data[0] = 1; +} + +static void Task_ResetRtc_2(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + HideChooseTimeWindow(data[8]); + FreeCursorPalette(); + gTasks[taskId].func = Task_ResetRtc_3; +} + +static void Task_ResetRtc_1(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u8 selection = data[2]; + const struct ResetRtcStruct *selectionInfo = &sUnknown_08510428[selection - 1]; + + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].func = Task_ResetRtc_2; + data[1] = 0; + data[2] = 6; + PlaySE(SE_SELECT); + return; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + if (selectionInfo->right) + { + data[2] = selectionInfo->right; + PlaySE(SE_SELECT); + return; + } + } + + if (gMain.newKeys & DPAD_LEFT) + { + if (selectionInfo->left) + { + data[2] = selectionInfo->left; + PlaySE(SE_SELECT); + return; + } + } + + if (selection == 5) + { + if (gMain.newKeys & A_BUTTON) + { + gLocalTime.days = data[3]; + gLocalTime.hours = data[4]; + gLocalTime.minutes = data[5]; + gLocalTime.seconds = data[6]; + PlaySE(SE_SELECT); + gTasks[taskId].func = Task_ResetRtc_2; + data[1] = 1; + data[2] = 6; + } + } + else if (MoveTimeUpDown(&data[selectionInfo->dataIndex], selectionInfo->minVal, selectionInfo->maxVal, gMain.newAndRepeatedKeys & (DPAD_UP | DPAD_DOWN))) + { + PlaySE(SE_SELECT); + PrintTime(data[8], 0, 1, data[3], data[4], data[5], data[6]); + CopyWindowToVram(data[8], 2); + } +} + +static void Task_ResetRtc_0(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[0] = 0; + data[3] = gLocalTime.days; + data[4] = gLocalTime.hours; + data[5] = gLocalTime.minutes; + data[6] = gLocalTime.seconds; + data[8] = AddWindow(&sUnknown_08510420); + ShowChooseTimeWindow(data[8], data[3], data[4], data[5], data[6]); + CreateCursor(taskId); + data[2] = 2; + gTasks[taskId].func = Task_ResetRtc_1; +} + +void CB2_InitResetRtcScreen(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetVBlankCallback(NULL); + DmaClear16(3, PLTT, PLTT_SIZE); + DmaFillLarge16(3, 0, (u8 *)VRAM, 0x18000, 0x1000); + ResetOamRange(0, 128); + LoadOam(); + ScanlineEffect_Stop(); + ScanlineEffect_Clear(); + ResetSpriteData(); + ResetTasks(); + ResetPaletteFade(); + sub_809F048(); + SetVBlankCallback(VBlankCB); + SetMainCallback2(CB2_ResetRtcScreen); + CreateTask(Task_ResetRtcScreen, 80); +} + +static void sub_809F048(void) +{ + clear_scheduled_bg_copies_to_vram(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); + schedule_bg_copy_tilemap_to_vram(0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + InitWindows(sUnknown_08510408); + DeactivateAllTextPrinters(); + sub_81973A4(); +} + +static void CB2_ResetRtcScreen(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void VBlankCB(void) +{ + ProcessSpriteCopyRequests(); + LoadOam(); + TransferPlttBuffer(); +} + +static void ShowMessage(const u8 *str) +{ + sub_8197B1C(1, FALSE, 0x200, 0xF); + PrintTextOnWindow(1, 1, str, 0, 1, 0, NULL); + schedule_bg_copy_tilemap_to_vram(0); +} + +static void Task_ShowResetRtcPrompt(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + SetWindowBorderStyle(0, FALSE, 0x214, 0xE); + PrintTextOnWindow(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); + PrintTime( + 0, + 0, + 17, + gLocalTime.days, + gLocalTime.hours, + gLocalTime.minutes, + gLocalTime.seconds); + PrintTextOnWindow(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0); + PrintTime( + 0, + 0, + 49, + gSaveBlock2Ptr->lastBerryTreeUpdate.days, + gSaveBlock2Ptr->lastBerryTreeUpdate.hours, + gSaveBlock2Ptr->lastBerryTreeUpdate.minutes, + gSaveBlock2Ptr->lastBerryTreeUpdate.seconds); + ShowMessage(gText_ResetRTCConfirmCancel); + CopyWindowToVram(0, 2); + schedule_bg_copy_tilemap_to_vram(0); + data[0]++; + case 1: + if (gMain.newKeys & B_BUTTON) + { + DestroyTask(taskId); + DoSoftReset(); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + DestroyTask(taskId); + } + break; + } +} + +static void Task_ResetRtcScreen(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF); + data[0] = 1; + break; + case 1: + if (!gPaletteFade.active) + { + if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + { + ShowMessage(gText_NoSaveFileCantSetTime); + data[0] = 5; + } + else + { + RtcCalcLocalTime(); + data[1] = CreateTask(Task_ShowResetRtcPrompt, 80); + data[0] = 2; + } + } + break; + case 2: + if (gTasks[data[1]].isActive != TRUE) + { + sub_8198070(0, FALSE); + ShowMessage(gText_PleaseResetTime); + gLocalTime = gSaveBlock2Ptr->lastBerryTreeUpdate; + data[1] = CreateTask(Task_ResetRtc_0, 80); + data[0] = 3; + } + break; + case 3: + if (gTasks[data[1]].data[0]) + { + if (!gTasks[data[1]].data[1]) + { + DestroyTask(data[1]); + data[0] = 2; + } + else + { + DestroyTask(data[1]); + RtcReset(); + RtcCalcLocalTimeOffset( + gLocalTime.days, + gLocalTime.hours, + gLocalTime.minutes, + gLocalTime.seconds); + gSaveBlock2Ptr->lastBerryTreeUpdate = gLocalTime; + VarSet(VAR_DAYS, gLocalTime.days); + DisableResetRTC(); + ShowMessage(gText_ClockHasBeenReset); + data[0] = 4; + } + } + break; + case 4: + if (TrySavingData(0) == 1) + { + ShowMessage(gText_SaveCompleted); + PlaySE(SE_PINPON); + } + else + { + ShowMessage(gText_SaveFailed); + PlaySE(SE_BOO); + } + data[0] = 5; + case 5: + if (gMain.newKeys & A_BUTTON) + { + BeginNormalPaletteFade(-1, 1, 0, 0x10, 0xFFFF); + data[0] = 6; + } + else + { + break; + } + case 6: + if (!gPaletteFade.active) + { + DestroyTask(taskId); + FreeAllWindowBuffers(); + DoSoftReset(); + } + } +} diff --git a/src/start_menu.c b/src/start_menu.c index a820cd992..7671a3e22 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -120,6 +120,13 @@ const struct WindowTemplate gUnknown_085105AC[] = const struct WindowTemplate gUnknown_085105BC = {0, 1, 1, 0xE, 0xA, 0xF, 8}; // code +void SetDexPokemonPokenavFlags(void) // unused +{ + FlagSet(FLAG_SYS_POKEDEX_GET); + FlagSet(FLAG_SYS_POKEMON_GET); + FlagSet(FLAG_SYS_POKENAV_GET); +} + void BuildStartMenuActions(void) { sNumStartMenuActions = 0; -- cgit v1.2.3 From 0c60ffe22ae1335be4dd24c22215eff1f95ab57e Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 4 Feb 2018 16:11:00 +0100 Subject: decompile title screen --- asm/intro.s | 8 +- asm/link.s | 2 +- asm/main_menu.s | 2 +- asm/reset_rtc_screen.s | 6 +- asm/title_screen.s | 1321 ---------------------------------------- data/title_screen.s | 163 ----- include/berry_fix_program.h | 6 + include/clear_save_data_menu.h | 6 + include/constants/rgb.h | 1 + include/intro.h | 8 + include/main_menu.h | 6 + include/reset_rtc_screen.h | 6 + include/title_screen.h | 8 + ld_script.txt | 4 +- src/berry_fix_program.c | 2 +- src/title_screen.c | 783 ++++++++++++++++++++++++ 16 files changed, 836 insertions(+), 1496 deletions(-) delete mode 100644 asm/title_screen.s delete mode 100644 data/title_screen.s create mode 100644 include/berry_fix_program.h create mode 100644 include/clear_save_data_menu.h create mode 100644 include/intro.h create mode 100644 include/main_menu.h create mode 100644 include/reset_rtc_screen.h create mode 100644 include/title_screen.h create mode 100644 src/title_screen.c diff --git a/asm/intro.s b/asm/intro.s index 3e95c6ec7..a0149851e 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -59,7 +59,7 @@ sub_816CC54: @ 816CC54 lsls r0, 24 cmp r0, 0 bne _0816CC66 - ldr r0, =c2_title_screen_1 + ldr r0, =CB2_InitTitleScreen bl SetMainCallback2 _0816CC66: pop {r0} @@ -337,13 +337,13 @@ _0816CEFA: .pool thumb_func_end c2_copyright_1 - thumb_func_start c2_show_copyright_and_intro_again_2 -c2_show_copyright_and_intro_again_2: @ 816CF0C + thumb_func_start CB2_InitCopyrightScreenAfterTitleScreen +CB2_InitCopyrightScreenAfterTitleScreen: @ 816CF0C push {lr} bl do_copyright_screen pop {r0} bx r0 - thumb_func_end c2_show_copyright_and_intro_again_2 + thumb_func_end CB2_InitCopyrightScreenAfterTitleScreen thumb_func_start task_intro_1 @ void task_intro_1(int task_id) diff --git a/asm/link.s b/asm/link.s index a3d621601..de0ec51a1 100644 --- a/asm/link.s +++ b/asm/link.s @@ -28867,7 +28867,7 @@ sub_80186A4: @ 80186A4 movs r0, 0x3 bl GetBgTilemapBuffer bl Free - ldr r0, =c2_title_screen_1 + ldr r0, =CB2_InitTitleScreen bl SetMainCallback2 pop {r0} bx r0 diff --git a/asm/main_menu.s b/asm/main_menu.s index 08e0c3103..9c6cd1253 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -1608,7 +1608,7 @@ _08030578: ldr r0, =gUnknown_02022D06 strh r4, [r0] bl FreeAllWindowBuffers - ldr r0, =c2_title_screen_1 + ldr r0, =CB2_InitTitleScreen bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s index b314afbf5..5877ff00e 100644 --- a/asm/reset_rtc_screen.s +++ b/asm/reset_rtc_screen.s @@ -830,8 +830,8 @@ sub_809EF00: @ 809EF00 .pool thumb_func_end sub_809EF00 - thumb_func_start sub_809EF88 -sub_809EF88: @ 809EF88 + thumb_func_start CB2_InitResetRtcScreen +CB2_InitResetRtcScreen: @ 809EF88 push {r4-r7,lr} sub sp, 0x4 movs r0, 0 @@ -905,7 +905,7 @@ _0809EFCA: pop {r0} bx r0 .pool - thumb_func_end sub_809EF88 + thumb_func_end CB2_InitResetRtcScreen thumb_func_start sub_809F048 sub_809F048: @ 809F048 diff --git a/asm/title_screen.s b/asm/title_screen.s deleted file mode 100644 index 32594424a..000000000 --- a/asm/title_screen.s +++ /dev/null @@ -1,1321 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80AA40C -sub_80AA40C: @ 80AA40C - push {lr} - adds r3, r0, 0 - ldr r2, =gTasks - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AA43C - ldrb r0, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x1] - movs r0, 0x42 - strh r0, [r3, 0x22] - b _080AA46A - .pool -_080AA43C: - ldrh r1, [r3, 0x22] - movs r2, 0x22 - ldrsh r0, [r3, r2] - cmp r0, 0x42 - beq _080AA44A - adds r0, r1, 0x1 - strh r0, [r3, 0x22] -_080AA44A: - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080AA458 - subs r0, r1, 0x1 - strh r0, [r3, 0x2E] -_080AA458: - ldr r0, =gUnknown_0853FF70 - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - movs r0, 0x52 - bl SetGpuReg -_080AA46A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80AA40C - - thumb_func_start sub_80AA474 -sub_80AA474: @ 80AA474 - push {lr} - adds r3, r0, 0 - ldr r2, =gTasks - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080AA4A0 - ldrb r0, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x1] - movs r0, 0x42 - b _080AA4AC - .pool -_080AA4A0: - ldrh r1, [r3, 0x22] - movs r2, 0x22 - ldrsh r0, [r3, r2] - cmp r0, 0x42 - beq _080AA4AE - adds r0, r1, 0x1 -_080AA4AC: - strh r0, [r3, 0x22] -_080AA4AE: - pop {r0} - bx r0 - thumb_func_end sub_80AA474 - - thumb_func_start sub_80AA4B4 -sub_80AA4B4: @ 80AA4B4 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080AA4DC - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080AA4DC - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080AA4E8 -_080AA4DC: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080AA4E8: - pop {r0} - bx r0 - thumb_func_end sub_80AA4B4 - - thumb_func_start sub_80AA4EC -sub_80AA4EC: @ 80AA4EC - push {r4-r7,lr} - lsls r0, 16 - ldr r2, =0xffc00000 - adds r0, r2 - lsrs r0, 16 - movs r6, 0 - lsls r7, r1, 16 -_080AA4FA: - lsls r5, r0, 16 - asrs r5, 16 - ldr r0, =gUnknown_085400D8 - adds r1, r5, 0 - asrs r2, r7, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl StartSpriteAnim - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r5, 0x20 - lsls r5, 16 - lsrs r0, r5, 16 - cmp r6, 0x4 - bls _080AA4FA - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80AA4EC - - thumb_func_start sub_80AA548 -sub_80AA548: @ 80AA548 - push {r4-r6,lr} - lsls r0, 16 - ldr r2, =0xffc00000 - adds r0, r2 - lsrs r0, 16 - movs r5, 0 - lsls r6, r1, 16 -_080AA556: - lsls r4, r0, 16 - asrs r4, 16 - ldr r0, =gUnknown_085400D8 - adds r1, r4, 0 - asrs r2, r6, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r1, r5, 0x5 - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x20 - lsls r4, 16 - lsrs r0, r4, 16 - cmp r5, 0x4 - bls _080AA556 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80AA548 - - thumb_func_start title_screen_logo_shine_obj_callback_type1 -@ void title_screen_logo_shine_obj_callback_type1(struct obj *obj) -title_screen_logo_shine_obj_callback_type1: @ 80AA5A4 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x20] - movs r0, 0x20 - ldrsh r1, [r3, r0] - ldr r0, =0x0000010f - cmp r1, r0 - bgt _080AA63C - movs r4, 0x2E - ldrsh r0, [r3, r4] - adds r4, r2, 0 - cmp r0, 0 - beq _080AA630 - cmp r1, 0x77 - bgt _080AA5E0 - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0x1E - bgt _080AA5F8 - adds r1, 0x1 - strh r1, [r3, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x1E - bgt _080AA5F8 - adds r0, r1, 0x1 - b _080AA5F6 - .pool -_080AA5E0: - ldrh r1, [r3, 0x30] - movs r4, 0x30 - ldrsh r0, [r3, r4] - cmp r0, 0 - beq _080AA5F8 - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - beq _080AA5F8 - subs r0, r1, 0x2 -_080AA5F6: - strh r0, [r3, 0x30] -_080AA5F8: - ldrh r1, [r3, 0x30] - movs r0, 0x1F - ands r0, r1 - lsls r2, r0, 10 - lsls r1, r0, 5 - adds r2, r1 - orrs r2, r0 - movs r1, 0x20 - ldrsh r0, [r3, r1] - ldrh r4, [r3, 0x20] - cmp r0, 0x84 - beq _080AA61C - cmp r0, 0x88 - beq _080AA61C - cmp r0, 0x8C - beq _080AA61C - cmp r0, 0x90 - bne _080AA62C -_080AA61C: - ldr r1, =gPlttBufferFaded - ldr r0, =0x000033f8 - strh r0, [r1] - b _080AA630 - .pool -_080AA62C: - ldr r0, =gPlttBufferFaded - strh r2, [r0] -_080AA630: - adds r0, r4, 0x4 - strh r0, [r3, 0x20] - b _080AA648 - .pool -_080AA63C: - ldr r1, =gPlttBufferFaded - movs r0, 0 - strh r0, [r1] - adds r0, r3, 0 - bl DestroySprite -_080AA648: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end title_screen_logo_shine_obj_callback_type1 - - thumb_func_start title_screen_logo_shine_obj_callback_type2 -@ void title_screen_logo_shine_obj_callback_type2(struct obj *obj) -title_screen_logo_shine_obj_callback_type2: @ 80AA654 - push {lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x20] - movs r0, 0x20 - ldrsh r1, [r2, r0] - ldr r0, =0x0000010f - cmp r1, r0 - bgt _080AA670 - adds r0, r3, 0 - adds r0, 0x8 - strh r0, [r2, 0x20] - b _080AA676 - .pool -_080AA670: - adds r0, r2, 0 - bl DestroySprite -_080AA676: - pop {r0} - bx r0 - thumb_func_end title_screen_logo_shine_obj_callback_type2 - - thumb_func_start title_screen_add_logo_shine_obj -@ void title_screen_add_logo_shine_obj(int a1) -title_screen_add_logo_shine_obj: @ 80AA67C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - beq _080AA6D0 - cmp r5, 0x1 - bgt _080AA698 - cmp r5, 0 - beq _080AA69C - b _080AA766 -_080AA698: - cmp r5, 0x2 - bne _080AA766 -_080AA69C: - ldr r0, =gUnknown_08540124 - movs r1, 0 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x1] - strh r5, [r0, 0x2E] - b _080AA766 - .pool -_080AA6D0: - ldr r0, =gUnknown_08540124 - mov r9, r0 - movs r1, 0 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r6, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x1] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r2, 0x8 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x1] - strh r5, [r1, 0x2E] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - mov r0, r9 - movs r1, 0 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r0, r1, r5 - ldr r2, =title_screen_logo_shine_obj_callback_type2 - mov r10, r2 - str r2, [r0] - adds r1, r6 - ldrb r2, [r1, 0x1] - adds r0, r4, 0 - ands r0, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x1] - movs r1, 0x50 - negs r1, r1 - mov r0, r9 - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r5 - mov r1, r10 - str r1, [r5] - adds r0, r6 - ldrb r1, [r0, 0x1] - ands r4, r1 - mov r2, r8 - orrs r4, r2 - strb r4, [r0, 0x1] -_080AA766: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end title_screen_add_logo_shine_obj - - thumb_func_start title_screen_vblank_callback -@ void title_screen_vblank_callback() -title_screen_vblank_callback: @ 80AA780 - push {lr} - bl ScanlineEffect_InitHBlankDmaTransfer - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, =gBattle_BG1_Y - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - pop {r0} - bx r0 - .pool - thumb_func_end title_screen_vblank_callback - - thumb_func_start c2_title_screen_1 -@ void c2_title_screen_1() -c2_title_screen_1: @ 80AA7A4 - push {r4,lr} - sub sp, 0x14 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _080AA7E0 - lsls r0, 2 - ldr r1, =_080AA7C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080AA7C8: - .4byte _080AA7E0 - .4byte _080AA8C4 - .4byte _080AA998 - .4byte _080AA9E0 - .4byte _080AAA14 - .4byte _080AAAF0 -_080AA7E0: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x00007fff - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - add r1, sp, 0xC - movs r0, 0 - strh r0, [r1] - ldr r1, =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0x10] - add r0, sp, 0x10 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0xC - strh r2, [r0] - str r0, [r1] - ldr r0, =0x05000002 - str r0, [r1, 0x4] - ldr r0, =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _080AAB1E - .pool -_080AA8C4: - ldr r0, =gTitleScreenPokemonLogoGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, =gUnknown_08DE0644 - ldr r1, =0x06004800 - bl LZ77UnCompVram - ldr r0, =gTitleScreenBgPalettes - movs r2, 0xF0 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - ldr r0, =gTitleScreenRayquazaGfx - ldr r1, =0x06008000 - bl LZ77UnCompVram - ldr r0, =gTitleScreenRayquazaTilemap - ldr r1, =0x0600d000 - bl LZ77UnCompVram - ldr r0, =gTitleScreenCloudsGfx - ldr r1, =0x0600c000 - bl LZ77UnCompVram - ldr r0, =gUnknown_08DDE458 - ldr r1, =0x0600d800 - bl LZ77UnCompVram - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x9 - strb r0, [r1] - ldr r0, =gUnknown_08540048 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085400F0 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0854013C - bl LoadCompressedObjectPic - ldr r0, =gTitleScreenEmeraldVersionPal - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_08540100 - bl LoadSpritePalette - ldr r0, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0] - b _080AAB1E - .pool -_080AA998: - ldr r0, =task_title_screen_1 - movs r1, 0 - 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 r2, 0 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, =0x0000fff0 - strh r0, [r1, 0xC] - subs r0, 0x10 - strh r0, [r1, 0xE] - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - b _080AAB1E - .pool -_080AA9E0: - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =title_screen_vblank_callback - bl SetVBlankCallback - ldr r0, =gMain - movs r2, 0x87 - lsls r2, 3 - adds r0, r2 - movs r1, 0x4 - strb r1, [r0] - b _080AAB1E - .pool -_080AAA14: - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x78 - movs r1, 0x50 - movs r3, 0 - bl sub_816F2A8 - movs r1, 0xE3 - lsls r1, 8 - movs r0, 0x28 - bl SetGpuReg - ldr r4, =0x0000ffff - movs r0, 0x2A - adds r1, r4, 0 - bl SetGpuReg - movs r1, 0xE0 - lsls r1, 8 - movs r0, 0x2C - bl SetGpuReg - movs r0, 0x2E - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0 - bl SetGpuReg - movs r0, 0x46 - movs r1, 0 - bl SetGpuReg - ldr r1, =0x00001f1f - movs r0, 0x48 - bl SetGpuReg - ldr r1, =0x00003f1f - movs r0, 0x4A - bl SetGpuReg - movs r0, 0x50 - movs r1, 0x84 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0xC - bl SetGpuReg - ldr r1, =0x00001a0b - movs r0, 0x8 - bl SetGpuReg - ldr r1, =0x00001b0e - movs r0, 0xA - bl SetGpuReg - ldr r1, =0x00004981 - movs r0, 0xC - bl SetGpuReg - movs r0, 0x1 - bl EnableInterrupts - ldr r1, =0x0000b441 - movs r0, 0 - bl SetGpuReg - ldr r0, =0x0000019d - bl m4aSongNumStart - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - b _080AAB1E - .pool -_080AAAF0: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080AAB1E - movs r0, 0 - bl title_screen_add_logo_shine_obj - str r4, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0xA0 - movs r2, 0x4 - movs r3, 0x4 - bl ScanlineEffect_InitWave - ldr r0, =c2_title_screen_2 - bl SetMainCallback2 -_080AAB1E: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end c2_title_screen_1 - - thumb_func_start c2_title_screen_2 -@ void c2_title_screen_2() -c2_title_screen_2: @ 80AAB2C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end c2_title_screen_2 - - thumb_func_start task_title_screen_1 -@ void task_title_screen_1(int task_id) -task_title_screen_1: @ 80AAB44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF - ands r0, r1 - ldr r6, =gTasks - cmp r0, 0 - bne _080AAB6A - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r1, r6 - movs r2, 0xA - ldrsh r1, [r1, r2] - adds r4, r0, 0 - cmp r1, 0 - beq _080AAB7C -_080AAB6A: - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r0, r6 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0xA] - strh r2, [r0, 0x8] - adds r4, r3, 0 -_080AAB7C: - adds r0, r4, r5 - lsls r0, 3 - adds r6, r0, r6 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080AABC0 - ldrh r0, [r6, 0x8] - cmp r0, 0xB0 - bne _080AABA0 - movs r0, 0x1 - bl title_screen_add_logo_shine_obj - b _080AABAA - .pool -_080AABA0: - cmp r0, 0x40 - bne _080AABAA - movs r0, 0x2 - bl title_screen_add_logo_shine_obj -_080AABAA: - ldr r0, =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - subs r0, 0x1 - strh r0, [r1, 0x8] - b _080AAC32 - .pool -_080AABC0: - ldr r1, =0x00001441 - movs r0, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - ldr r1, =0x00003f50 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r0, =gUnknown_08540018 - movs r1, 0x62 - movs r2, 0x2 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x40 - strh r0, [r1, 0x2E] - strh r5, [r1, 0x30] - ldr r0, =gUnknown_08540030 - movs r1, 0xA2 - movs r2, 0x2 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - strh r5, [r1, 0x30] - movs r0, 0x90 - strh r0, [r6, 0x8] - ldr r0, =task_title_screen_2 - str r0, [r6] -_080AAC32: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_title_screen_1 - - thumb_func_start task_title_screen_2 -@ void task_title_screen_2(int task_id) -task_title_screen_2: @ 80AAC50 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF - ands r0, r1 - ldr r2, =gTasks - cmp r0, 0 - bne _080AAC76 - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - adds r1, r2 - movs r3, 0xA - ldrsh r1, [r1, r3] - adds r6, r0, 0 - cmp r1, 0 - beq _080AAC88 -_080AAC76: - lsls r3, r4, 2 - adds r0, r3, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0xA] - strh r2, [r0, 0x8] - adds r6, r3, 0 -_080AAC88: - ldr r1, =gTasks - adds r0, r6, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - movs r1, 0x8 - ldrsh r7, [r5, r1] - cmp r7, 0 - beq _080AACA8 - subs r0, 0x1 - strh r0, [r5, 0x8] - b _080AACE2 - .pool -_080AACA8: - movs r0, 0x1 - strh r0, [r5, 0xA] - ldr r1, =0x00002142 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x00000f06 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r1, =0x00001741 - movs r0, 0 - bl SetGpuReg - movs r0, 0x80 - movs r1, 0x6C - bl sub_80AA4EC - movs r0, 0x80 - movs r1, 0x94 - bl sub_80AA548 - strh r7, [r5, 0x10] - ldr r0, =task_title_screen_3 - str r0, [r5] -_080AACE2: - ldr r2, =gTasks - adds r0, r6, r4 - lsls r0, 3 - adds r3, r0, r2 - ldrh r1, [r3, 0x8] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080AAD02 - ldrh r1, [r3, 0xC] - movs r5, 0xC - ldrsh r0, [r3, r5] - cmp r0, 0 - beq _080AAD02 - adds r0, r1, 0x1 - strh r0, [r3, 0xC] -_080AAD02: - adds r0, r6, r4 - lsls r0, 3 - adds r3, r0, r2 - ldrh r1, [r3, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AAD20 - ldrh r1, [r3, 0xE] - movs r5, 0xE - ldrsh r0, [r3, r5] - cmp r0, 0 - beq _080AAD20 - adds r0, r1, 0x1 - strh r0, [r3, 0xE] -_080AAD20: - adds r4, r6, r4 - lsls r4, 3 - adds r4, r2 - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r5, r1, 8 - lsls r1, 24 - lsrs r1, 16 - movs r0, 0x2C - bl SetGpuReg - lsrs r5, 16 - movs r0, 0x2E - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0xF - strh r0, [r4, 0x12] - movs r0, 0x6 - strh r0, [r4, 0x14] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_title_screen_2 - - thumb_func_start task_title_screen_3 -@ void task_title_screen_3(int task_id) -task_title_screen_3: @ 80AAD64 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080AAD84 - movs r0, 0x8 - ands r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080AADB0 -_080AAD84: - movs r0, 0x4 - bl FadeOutBGM - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =Cb2_GoToMainMenu - bl SetMainCallback2 - b _080AAE98 - .pool -_080AADB0: - ldrh r1, [r2, 0x2C] - movs r0, 0x46 - ands r0, r1 - cmp r0, 0x46 - bne _080AADC8 - ldr r0, =c2_clear_save_data_screen_1 - bl SetMainCallback2 - b _080AAE98 - .pool -_080AADC8: - movs r0, 0x26 - ands r0, r1 - cmp r0, 0x26 - bne _080AADFC - bl CanResetRTC - cmp r0, 0x1 - bne _080AADFC - movs r0, 0x4 - bl FadeOutBGM - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =c2_reset_rtc_screen_1 - bl SetMainCallback2 - b _080AAE98 - .pool -_080AADFC: - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0x6 - bne _080AAE30 - movs r0, 0x4 - bl FadeOutBGM - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =c2_berry_program_update_screen_1 - bl SetMainCallback2 - b _080AAE98 - .pool -_080AAE30: - movs r0, 0x2C - movs r1, 0 - bl SetGpuReg - movs r0, 0x2E - movs r1, 0 - bl SetGpuReg - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080AAE72 - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] - ldr r2, =gBattle_BG1_Y - movs r1, 0x10 - ldrsh r0, [r3, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r2] - ldr r1, =gBattle_BG1_X - movs r0, 0 - strh r0, [r1] -_080AAE72: - ldrb r0, [r3, 0x8] - bl title_screen_update_rayquaza_ring_palette - ldr r0, =gMPlayInfo_BGM - ldr r1, =0x0000ffff - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _080AAE98 - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =c2_show_copyright_and_intro_again_1 - bl SetMainCallback2 -_080AAE98: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_title_screen_3 - - thumb_func_start Cb2_GoToMainMenu -Cb2_GoToMainMenu: @ 80AAEB8 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080AAECA - ldr r0, =CB2_InitMainMenu - bl SetMainCallback2 -_080AAECA: - pop {r0} - bx r0 - .pool - thumb_func_end Cb2_GoToMainMenu - - thumb_func_start c2_show_copyright_and_intro_again_1 -c2_show_copyright_and_intro_again_1: @ 80AAED4 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080AAEE6 - ldr r0, =c2_show_copyright_and_intro_again_2 - bl SetMainCallback2 -_080AAEE6: - pop {r0} - bx r0 - .pool - thumb_func_end c2_show_copyright_and_intro_again_1 - - thumb_func_start c2_clear_save_data_screen_1 -c2_clear_save_data_screen_1: @ 80AAEF0 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080AAF02 - ldr r0, =CB2_InitClearSaveDataScreen - bl SetMainCallback2 -_080AAF02: - pop {r0} - bx r0 - .pool - thumb_func_end c2_clear_save_data_screen_1 - - thumb_func_start c2_reset_rtc_screen_1 -c2_reset_rtc_screen_1: @ 80AAF0C - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080AAF1E - ldr r0, =sub_809EF88 - bl SetMainCallback2 -_080AAF1E: - pop {r0} - bx r0 - .pool - thumb_func_end c2_reset_rtc_screen_1 - - thumb_func_start c2_berry_program_update_screen_1 -c2_berry_program_update_screen_1: @ 80AAF28 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080AAF3E - bl m4aMPlayAllStop - ldr r0, =InitBerryFixProgram - bl SetMainCallback2 -_080AAF3E: - pop {r0} - bx r0 - .pool - thumb_func_end c2_berry_program_update_screen_1 - - thumb_func_start title_screen_update_rayquaza_ring_palette -@ void title_screen_update_rayquaza_ring_palette(u8 a1) -title_screen_update_rayquaza_ring_palette: @ 80AAF48 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080AAF9C - adds r0, r1, 0 - movs r1, 0x80 - bl Cos - lsls r0, 16 - asrs r0, 16 - adds r2, r0, 0 - adds r2, 0x80 - lsls r0, r2, 5 - subs r0, r2 - cmp r0, 0 - bge _080AAF72 - adds r0, 0xFF -_080AAF72: - asrs r0, 8 - movs r3, 0x1F - subs r1, r3, r0 - movs r0, 0x16 - muls r0, r2 - cmp r0, 0 - bge _080AAF82 - adds r0, 0xFF -_080AAF82: - asrs r0, 8 - subs r0, r3, r0 - lsls r0, 5 - orrs r1, r0 - movs r0, 0xC0 - lsls r0, 6 - orrs r1, r0 - mov r0, sp - strh r1, [r0] - movs r1, 0xEF - movs r2, 0x2 - bl LoadPalette -_080AAF9C: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end title_screen_update_rayquaza_ring_palette - - .align 2, 0 @ Don't pad with nop. diff --git a/data/title_screen.s b/data/title_screen.s deleted file mode 100644 index b07464ce9..000000000 --- a/data/title_screen.s +++ /dev/null @@ -1,163 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - - .incbin "graphics/title_screen/unk_853EF78.gbapal" - - .align 2 -gTitleScreenRayquazaGfx:: @ 853F058 - .incbin "graphics/title_screen/rayquaza.4bpp.lz" - - .align 2 -gTitleScreenRayquazaTilemap:: @ 853F83C - .incbin "graphics/title_screen/rayquaza.bin.lz" - - .align 2 -gTitleScreenLogoShineGfx:: @ 853FB3C - .incbin "graphics/title_screen/logo_shine.4bpp.lz" - - .align 2 -gTitleScreenCloudsGfx:: @ 853FC8C - .incbin "graphics/title_screen/clouds.4bpp.lz" - - .align 2 -gUnknown_0853FF70:: @ 853FF70 - .2byte 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710 - .2byte 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10 - .2byte 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008 - .2byte 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000 - .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 - .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 - .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 - .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 - - .align 2 -gUnknown_0853FFF0:: @ 853FFF0 - .byte 0xa0, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_0853FFF8:: @ 853FFF8 - .byte 0xa0, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_08540000:: @ 8540000 - .2byte 0x0000, 0x001e, 0xffff, 0x0000 - - .align 2 -gUnknown_08540008:: @ 8540008 - .2byte 0x0040, 0x001e, 0xffff, 0x0000 - - .align 2 -gUnknown_08540010:: @ 8540010 - .4byte gUnknown_08540000 - - .align 2 -gUnknown_08540014:: @ 8540014 - .4byte gUnknown_08540008 - - .align 2 -gUnknown_08540018:: @ 8540018 - spr_template 0x03e8, 0x03e8, gUnknown_0853FFF0, gUnknown_08540010, NULL, gDummySpriteAffineAnimTable, sub_80AA40C - - .align 2 -gUnknown_08540030:: @ 8540030 - spr_template 0x03e8, 0x03e8, gUnknown_0853FFF8, gUnknown_08540014, NULL, gDummySpriteAffineAnimTable, sub_80AA474 - - .align 2 -gUnknown_08540048:: @ 8540048 - obj_tiles gTitleScreenEmeraldVersionGfx, 0x1000, 0x03e8 - null_obj_tiles - - .align 2 -gUnknown_08540058:: @ 8540058 - .byte 0xa0, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_08540060:: @ 8540060 - .2byte 0x0001, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540068:: @ 8540068 - .2byte 0x0005, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540070:: @ 8540070 - .2byte 0x0009, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540078:: @ 8540078 - .2byte 0x000d, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540080:: @ 8540080 - .2byte 0x0011, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540088:: @ 8540088 - .2byte 0x0015, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540090:: @ 8540090 - .2byte 0x0019, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540098:: @ 8540098 - .2byte 0x001d, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_085400A0:: @ 85400A0 - .2byte 0x0021, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_085400A8:: @ 85400A8 - .2byte 0x0025, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_085400B0:: @ 85400B0 - .4byte gUnknown_08540060 - .4byte gUnknown_08540068 - .4byte gUnknown_08540070 - .4byte gUnknown_08540078 - .4byte gUnknown_08540080 - .4byte gUnknown_08540088 - .4byte gUnknown_08540090 - .4byte gUnknown_08540098 - .4byte gUnknown_085400A0 - .4byte gUnknown_085400A8 - - .align 2 -gUnknown_085400D8:: @ 85400D8 - spr_template 0x03e9, 0x03e9, gUnknown_08540058, gUnknown_085400B0, NULL, gDummySpriteAffineAnimTable, sub_80AA4B4 - - .align 2 -gUnknown_085400F0:: @ 85400F0 - obj_tiles gTitleScreenPressStartGfx, 0x0520, 0x03e9 - null_obj_tiles - - .align 2 -gUnknown_08540100:: @ 8540100 - obj_pal gTitleScreenPressStartPal, 0x03e9 - null_obj_pal - - .align 2 -gUnknown_08540110:: @ 8540110 - .byte 0xa0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_08540118:: @ 8540118 - .2byte 0x0000, 0x0004, 0xffff, 0x0000 - - .align 2 -gUnknown_08540120:: @ 8540120 - .4byte gUnknown_08540118 - - .align 2 -gUnknown_08540124:: @ 8540124 - spr_template 0x03ea, 0x03e9, gUnknown_08540110, gUnknown_08540120, NULL, gDummySpriteAffineAnimTable, title_screen_logo_shine_obj_callback_type1 - - .align 2 -gUnknown_0854013C:: @ 854013C - obj_tiles gTitleScreenLogoShineGfx, 0x0800, 0x03ea - null_obj_tiles diff --git a/include/berry_fix_program.h b/include/berry_fix_program.h new file mode 100644 index 000000000..6c31a0c8b --- /dev/null +++ b/include/berry_fix_program.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_FIX_PROGRAM_H +#define GUARD_BERRY_FIX_PROGRAM_H + +void CB2_InitBerryFixProgram(void); + +#endif // GUARD_BERRY_FIX_PROGRAM_H diff --git a/include/clear_save_data_menu.h b/include/clear_save_data_menu.h new file mode 100644 index 000000000..86ba99849 --- /dev/null +++ b/include/clear_save_data_menu.h @@ -0,0 +1,6 @@ +#ifndef GUARD_CLEAR_SAVE_DATA_MENU_H +#define GUARD_CLEAR_SAVE_DATA_MENU_H + +void CB2_InitClearSaveDataScreen(void); + +#endif // GUARD_CLEAR_SAVE_DATA_MENU_H diff --git a/include/constants/rgb.h b/include/constants/rgb.h index 2c22df32a..8b323799f 100644 --- a/include/constants/rgb.h +++ b/include/constants/rgb.h @@ -2,6 +2,7 @@ #define GUARD_RGB_H #define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) #define RGB_BLACK RGB(0, 0, 0) #define RGB_WHITE RGB(31, 31, 31) diff --git a/include/intro.h b/include/intro.h new file mode 100644 index 000000000..53a446418 --- /dev/null +++ b/include/intro.h @@ -0,0 +1,8 @@ +#ifndef GUARD_INTRO_H +#define GUARD_INTRO_H + +void CB2_InitCopyrightScreenAfterBootup(void); +void CB2_InitCopyrightScreenAfterTitleScreen(void); +void sub_816F2A8(u16, u16, u16, u16); + +#endif // GUARD_INTRO_H diff --git a/include/main_menu.h b/include/main_menu.h new file mode 100644 index 000000000..08cd913dc --- /dev/null +++ b/include/main_menu.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MAIN_MENU_H +#define GUARD_MAIN_MENU_H + +void CB2_InitMainMenu(void); + +#endif // GUARD_MAIN_MENU_H diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h new file mode 100644 index 000000000..5807dec99 --- /dev/null +++ b/include/reset_rtc_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_RESET_RTC_SCREEN_H +#define GUARD_RESET_RTC_SCREEN_H + +void CB2_InitResetRtcScreen(void); + +#endif // GUARD_RESET_RTC_SCREEN_H diff --git a/include/title_screen.h b/include/title_screen.h new file mode 100644 index 000000000..b660792fc --- /dev/null +++ b/include/title_screen.h @@ -0,0 +1,8 @@ +#ifndef GUARD_TITLE_SCREEN_H +#define GUARD_TITLE_SCREEN_H + +extern const u16 gUnknown_0853FF70[]; + +void CB2_InitTitleScreen(void); + +#endif // GUARD_TITLE_SCREEN_H diff --git a/ld_script.txt b/ld_script.txt index 345afb27f..3327dcb17 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -119,7 +119,7 @@ SECTIONS { src/task.o(.text); src/reshow_battle_screen.o(.text); asm/battle_anim_80A9C70.o(.text); - asm/title_screen.o(.text); + src/title_screen.o(.text); asm/field_screen.o(.text); src/battle_setup.o(.text); asm/cable_club.o(.text); @@ -419,7 +419,7 @@ SECTIONS { data/rom_8525F58.o(.rodata); data/map_events.o(.rodata); data/battle_anim_80A9C70.o(.rodata); - data/title_screen.o(.rodata); + src/title_screen.o(.rodata); data/field_screen.o(.rodata); src/battle_setup.o(.rodata); data/cable_club.o(.rodata); diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 7b968a221..8b1cd6a37 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -133,7 +133,7 @@ extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; // .text -void InitBerryFixProgram(void) +void CB2_InitBerryFixProgram(void) { DisableInterrupts(0xFFFF); EnableInterrupts(0x0001); diff --git a/src/title_screen.c b/src/title_screen.c new file mode 100644 index 000000000..4e25c8152 --- /dev/null +++ b/src/title_screen.c @@ -0,0 +1,783 @@ +#include "global.h" +#include "title_screen.h" +#include "sprite.h" +#include "gba/m4a_internal.h" +#include "clear_save_data_menu.h" +#include "decompress.h" +#include "event_data.h" +#include "intro.h" +#include "m4a.h" +#include "main.h" +#include "main_menu.h" +#include "palette.h" +#include "reset_rtc_screen.h" +#include "berry_fix_program.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "scanline_effect.h" +#include "gpu_regs.h" +#include "trig.h" +#include "constants/rgb.h" + +#define VERSION_BANNER_SHAPE 1 +#define VERSION_BANNER_RIGHT_TILEOFFSET 64 +#define VERSION_BANNER_BYTES 0x1000 +#define VERSION_BANNER_LEFT_X 98 +#define VERSION_BANNER_RIGHT_X 162 +#define VERSION_BANNER_Y 2 +#define VERSION_BANNER_Y_GOAL 66 +#define START_BANNER_X 128 + +#define CLEAR_SAVE_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_UP) +#define RESET_RTC_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_LEFT) +#define BERRY_UPDATE_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON) +#define A_B_START_SELECT (A_BUTTON | B_BUTTON | START_BUTTON | SELECT_BUTTON) + +extern struct MusicPlayerInfo gMPlayInfo_BGM; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; + +extern const u8 gTitleScreenEmeraldVersionGfx[]; +extern const u8 gTitleScreenPressStartGfx[]; +extern const u8 gTitleScreenPokemonLogoGfx[]; +extern const u8 gUnknown_08DE0644[]; +extern const u8 gUnknown_08DDE458[]; +extern const u16 gTitleScreenBgPalettes[]; +extern const u16 gTitleScreenPressStartPal[]; +extern const u16 gTitleScreenEmeraldVersionPal[]; + +// this file's functions +static void MainCB2(void); +static void Task_TitleScreenPhase1(u8); +static void Task_TitleScreenPhase2(u8); +static void Task_TitleScreenPhase3(u8); +static void CB2_GoToMainMenu(void); +static void CB2_GoToClearSaveDataScreen(void); +static void CB2_GoToResetRtcScreen(void); +static void CB2_GoToBerryFixScreen(void); +static void CB2_GoToCopyrightScreen(void); +static void UpdateLegendaryMarkingColor(u8); + +static void SpriteCB_VersionBannerLeft(struct Sprite *sprite); +static void SpriteCB_VersionBannerRight(struct Sprite *sprite); +static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite); +static void SpriteCB_PokemonLogoShine(struct Sprite *sprite); + +// const rom data +static const u16 sUnusedUnknownPal[] = INCBIN_U16("graphics/title_screen/unk_853EF78.gbapal"); + +static const u8 sTitleScreenRayquazaGfx[] = INCBIN_U8("graphics/title_screen/rayquaza.4bpp.lz"); +static const u8 sTitleScreenRayquazaTilemap[] = INCBIN_U8("graphics/title_screen/rayquaza.bin.lz"); +static const u8 sTitleScreenLogoShineGfx[] = INCBIN_U8("graphics/title_screen/logo_shine.4bpp.lz"); +static const u8 sTitleScreenCloudsGfx[] = INCBIN_U8("graphics/title_screen/clouds.4bpp.lz"); + +const u16 gUnknown_0853FF70[] = +{ + 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710, + 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10, + 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008, + 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, +}; + +static const struct OamData sVersionBannerLeftOamData = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 1, + .shape = VERSION_BANNER_SHAPE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sVersionBannerRightOamData = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 1, + .shape = VERSION_BANNER_SHAPE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sVersionBannerLeftAnimSequence[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sVersionBannerRightAnimSequence[] = +{ + ANIMCMD_FRAME(VERSION_BANNER_RIGHT_TILEOFFSET, 30), + ANIMCMD_END, +}; + +static const union AnimCmd *const sVersionBannerLeftAnimTable[] = +{ + sVersionBannerLeftAnimSequence, +}; + +static const union AnimCmd *const sVersionBannerRightAnimTable[] = +{ + sVersionBannerRightAnimSequence, +}; + +static const struct SpriteTemplate sVersionBannerLeftSpriteTemplate = +{ + .tileTag = 1000, + .paletteTag = 1000, + .oam = &sVersionBannerLeftOamData, + .anims = sVersionBannerLeftAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_VersionBannerLeft, +}; + +static const struct SpriteTemplate sVersionBannerRightSpriteTemplate = +{ + .tileTag = 1000, + .paletteTag = 1000, + .oam = &sVersionBannerRightOamData, + .anims = sVersionBannerRightAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_VersionBannerRight, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_EmeraldVersion[] = +{ + {gTitleScreenEmeraldVersionGfx, VERSION_BANNER_BYTES, 1000}, + {NULL}, +}; + +static const struct OamData sOamData_CopyrightBanner = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sCopyrightBannerAnim0[] = +{ + ANIMCMD_FRAME(1, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim1[] = +{ + ANIMCMD_FRAME(5, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim2[] = +{ + ANIMCMD_FRAME(9, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim3[] = +{ + ANIMCMD_FRAME(13, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim4[] = +{ + ANIMCMD_FRAME(17, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim5[] = +{ + ANIMCMD_FRAME(21, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim6[] = +{ + ANIMCMD_FRAME(25, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim7[] = +{ + ANIMCMD_FRAME(29, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim8[] = +{ + ANIMCMD_FRAME(33, 4), + ANIMCMD_END, +}; +static const union AnimCmd sCopyrightBannerAnim9[] = +{ + ANIMCMD_FRAME(37, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sStartCopyrightBannerAnimTable[] = +{ + sCopyrightBannerAnim0, + sCopyrightBannerAnim1, + sCopyrightBannerAnim2, + sCopyrightBannerAnim3, + sCopyrightBannerAnim4, + sCopyrightBannerAnim5, + sCopyrightBannerAnim6, + sCopyrightBannerAnim7, + sCopyrightBannerAnim8, + sCopyrightBannerAnim9, +}; + +static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate = +{ + .tileTag = 1001, + .paletteTag = 1001, + .oam = &sOamData_CopyrightBanner, + .anims = sStartCopyrightBannerAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PressStartCopyrightBanner, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_PressStart[] = +{ + {gTitleScreenPressStartGfx, 0x520, 1001}, + {NULL}, +}; + +static const struct SpritePalette sSpritePalette_PressStart[] = +{ + {gTitleScreenPressStartPal, 1001}, + {NULL}, +}; + +static const struct OamData sPokemonLogoShineOamData = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sPokemonLogoShineAnimSequence[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sPokemonLogoShineAnimTable[] = +{ + sPokemonLogoShineAnimSequence, +}; + +static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate = +{ + .tileTag = 1002, + .paletteTag = 1001, + .oam = &sPokemonLogoShineOamData, + .anims = sPokemonLogoShineAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_PokemonLogoShine, +}; + +static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] = +{ + {sTitleScreenLogoShineGfx, 0x800, 1002}, + {NULL}, +}; + +// code +static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) +{ + if (gTasks[sprite->data[1]].data[1] != 0) + { + sprite->oam.objMode = 0; + sprite->pos1.y = VERSION_BANNER_Y_GOAL; + } + else + { + if (sprite->pos1.y != VERSION_BANNER_Y_GOAL) + sprite->pos1.y++; + if (sprite->data[0] != 0) + sprite->data[0]--; + SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[sprite->data[0]]); + } +} + +static void SpriteCB_VersionBannerRight(struct Sprite *sprite) +{ + if (gTasks[sprite->data[1]].data[1] != 0) + { + sprite->oam.objMode = 0; + sprite->pos1.y = VERSION_BANNER_Y_GOAL; + } + else + { + if (sprite->pos1.y != VERSION_BANNER_Y_GOAL) + sprite->pos1.y++; + } +} + +static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite) +{ + if (sprite->data[0] == 1) + { + sprite->data[1]++; + // Alternate between hidden and shown every 16th frame + if (sprite->data[1] & 0x10) + sprite->invisible = FALSE; + else + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + } +} + +static void CreatePressStartBanner(s16 x, s16 y) +{ + u8 i; + u8 spriteId; + + x -= 64; + for (i = 0; i < 5; i++, x += 32) + { + spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0); + StartSpriteAnim(&gSprites[spriteId], i); + gSprites[spriteId].data[0] = 1; + } +} + +static void CreateCopyrightBanner(s16 x, s16 y) +{ + u8 i; + u8 spriteId; + + x -= 64; + for (i = 0; i < 5; i++, x += 32) + { + spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0); + StartSpriteAnim(&gSprites[spriteId], i + 5); + } +} + +static void SpriteCB_PokemonLogoShine(struct Sprite *sprite) +{ + if (sprite->pos1.x < 272) + { + if (sprite->data[0]) // Flash background + { + u16 backgroundColor; + + if (sprite->pos1.x < DISPLAY_WIDTH / 2) + { + // Brighten background color + if (sprite->data[1] < 31) + sprite->data[1]++; + if (sprite->data[1] < 31) + sprite->data[1]++; + } + else + { + // Darken background color + if (sprite->data[1] != 0) + sprite->data[1]--; + if (sprite->data[1] != 0) + sprite->data[1]--; + } + + backgroundColor = _RGB(sprite->data[1], sprite->data[1], sprite->data[1]); + if (sprite->pos1.x == DISPLAY_WIDTH / 2 + 12 + || sprite->pos1.x == DISPLAY_WIDTH / 2 + 16 + || sprite->pos1.x == DISPLAY_WIDTH / 2 + 20 + || sprite->pos1.x == DISPLAY_WIDTH / 2 + 24) + gPlttBufferFaded[0] = RGB(24, 31, 12); + else + gPlttBufferFaded[0] = backgroundColor; + } + sprite->pos1.x += 4; + } + else + { + gPlttBufferFaded[0] = RGB_BLACK; + DestroySprite(sprite); + } +} + +static void SpriteCB_PokemonLogoShine2(struct Sprite *sprite) +{ + if (sprite->pos1.x < 272) + sprite->pos1.x += 8; + else + DestroySprite(sprite); +} + +static void StartPokemonLogoShine(u8 flashBg) +{ + u8 spriteId; + + switch (flashBg) + { + case 0: + case 2: + spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); + gSprites[spriteId].oam.objMode = 2; + gSprites[spriteId].data[0] = flashBg; + break; + case 1: + spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); + gSprites[spriteId].oam.objMode = 2; + gSprites[spriteId].data[0] = flashBg; + gSprites[spriteId].invisible = TRUE; + + spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); + gSprites[spriteId].callback = SpriteCB_PokemonLogoShine2; + gSprites[spriteId].oam.objMode = 2; + + spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, -80, 68, 0); + gSprites[spriteId].callback = SpriteCB_PokemonLogoShine2; + gSprites[spriteId].oam.objMode = 2; + break; + } +} + +static void VBlankCB(void) +{ + ScanlineEffect_InitHBlankDmaTransfer(); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); +} + +#define tCounter data[0] +#define tSkipToNext data[1] + +void CB2_InitTitleScreen(void) +{ + switch (gMain.state) + { + default: + case 0: + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + *((u16 *)PLTT) = RGB_WHITE; + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *)OAM, OAM_SIZE); + DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); + ResetPaletteFade(); + gMain.state = 1; + break; + case 1: + LZ77UnCompVram(gTitleScreenPokemonLogoGfx, (void *)VRAM); + LZ77UnCompVram(gUnknown_08DE0644, (void *)(VRAM + 0x4800)); + LoadPalette(gTitleScreenBgPalettes, 0, 0x1E0); + LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(VRAM + 0x8000)); + LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(VRAM + 0xD000)); + LZ77UnCompVram(sTitleScreenCloudsGfx, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(gUnknown_08DDE458, (void *)(VRAM + 0xD800)); + ScanlineEffect_Stop(); + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 9; + LoadCompressedObjectPic(&sSpriteSheet_EmeraldVersion[0]); + LoadCompressedObjectPic(&sSpriteSheet_PressStart[0]); + LoadCompressedObjectPic(&sPokemonLogoShineSpriteSheet[0]); + LoadPalette(gTitleScreenEmeraldVersionPal, 0x100, 0x20); + LoadSpritePalette(&sSpritePalette_PressStart[0]); + gMain.state = 2; + break; + case 2: + { + u8 taskId = CreateTask(Task_TitleScreenPhase1, 0); + + gTasks[taskId].tCounter = 256; + gTasks[taskId].tSkipToNext = FALSE; + gTasks[taskId].data[2] = -16; + gTasks[taskId].data[3] = -32; + gMain.state = 3; + break; + } + case 3: + BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF); + SetVBlankCallback(VBlankCB); + gMain.state = 4; + break; + case 4: + sub_816F2A8(0x78, 0x50, 0x100, 0); + SetGpuReg(REG_OFFSET_BG2X_L, -29 * 256); + SetGpuReg(REG_OFFSET_BG2X_H, -1); + SetGpuReg(REG_OFFSET_BG2Y_L, -32 * 256); + SetGpuReg(REG_OFFSET_BG2Y_H, -1); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_WININ, 0x1F1F); + SetGpuReg(REG_OFFSET_WINOUT, 0x3F1F); + SetGpuReg(REG_OFFSET_BLDCNT, 0x84); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0xC); + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_16COLOR | BGCNT_TXT256x256); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(27) | BGCNT_16COLOR | BGCNT_TXT256x256); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(9) | BGCNT_256COLOR | BGCNT_AFF256x256); + EnableInterrupts(INTR_FLAG_VBLANK); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 + | DISPCNT_OBJ_1D_MAP + | DISPCNT_BG2_ON + | DISPCNT_OBJ_ON + | DISPCNT_WIN0_ON + | DISPCNT_OBJWIN_ON); + m4aSongNumStart(0x19D); + gMain.state = 5; + break; + case 5: + if (!UpdatePaletteFade()) + { + StartPokemonLogoShine(0); + ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, SCANLINE_EFFECT_REG_BG1HOFS, TRUE); + SetMainCallback2(MainCB2); + } + break; + } +} + +static void MainCB2(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +// Shine the Pokemon logo two more times, and fade in the version banner +static void Task_TitleScreenPhase1(u8 taskId) +{ + // Skip to next phase when A, B, Start, or Select is pressed + if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].data[1] != 0) + { + gTasks[taskId].tSkipToNext = TRUE; + gTasks[taskId].tCounter = 0; + } + + if (gTasks[taskId].tCounter != 0) + { + u16 frameNum = gTasks[taskId].tCounter; + if (frameNum == 176) + StartPokemonLogoShine(1); + else if (frameNum == 64) + StartPokemonLogoShine(2); + + gTasks[taskId].tCounter--; + } + else + { + u8 spriteId; + + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0x3F50); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 0); + + // Create left side of version banner + spriteId = CreateSprite(&sVersionBannerLeftSpriteTemplate, VERSION_BANNER_LEFT_X, VERSION_BANNER_Y, 0); + gSprites[spriteId].data[0] = 64; + gSprites[spriteId].data[1] = taskId; + + // Create right side of version banner + spriteId = CreateSprite(&sVersionBannerRightSpriteTemplate, VERSION_BANNER_RIGHT_X, VERSION_BANNER_Y, 0); + gSprites[spriteId].data[1] = taskId; + + gTasks[taskId].tCounter = 144; + gTasks[taskId].func = Task_TitleScreenPhase2; + } +} + +// Create "Press Start" and copyright banners, and slide Pokemon logo up +static void Task_TitleScreenPhase2(u8 taskId) +{ + u32 yPos; + + // Skip to next phase when A, B, Start, or Select is pressed + if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].tSkipToNext) + { + gTasks[taskId].tSkipToNext = TRUE; + gTasks[taskId].tCounter = 0; + } + + if (gTasks[taskId].tCounter != 0) + { + gTasks[taskId].tCounter--; + } + else + { + gTasks[taskId].tSkipToNext = TRUE; + SetGpuReg(REG_OFFSET_BLDCNT, 0x2142); + SetGpuReg(REG_OFFSET_BLDALPHA, 0xF06); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 + | DISPCNT_OBJ_1D_MAP + | DISPCNT_BG0_ON + | DISPCNT_BG1_ON + | DISPCNT_BG2_ON + | DISPCNT_OBJ_ON); + CreatePressStartBanner(START_BANNER_X, 108); + CreateCopyrightBanner(START_BANNER_X, 148); + gTasks[taskId].data[4] = 0; + gTasks[taskId].func = Task_TitleScreenPhase3; + } + + if (!(gTasks[taskId].tCounter & 3) && gTasks[taskId].data[2] != 0) + gTasks[taskId].data[2]++; + if (!(gTasks[taskId].tCounter & 1) && gTasks[taskId].data[3] != 0) + gTasks[taskId].data[3]++; + + // Slide Pokemon logo up + yPos = gTasks[taskId].data[3] * 256; + SetGpuReg(REG_OFFSET_BG2Y_L, yPos); + SetGpuReg(REG_OFFSET_BG2Y_H, yPos / 0x10000); + + gTasks[taskId].data[5] = 15; + gTasks[taskId].data[6] = 6; +} + +// Show Rayquaza silhouette and process main title screen input +static void Task_TitleScreenPhase3(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & START_BUTTON)) + { + FadeOutBGM(4); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF); + SetMainCallback2(CB2_GoToMainMenu); + } + else if ((gMain.heldKeys & CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO) + { + SetMainCallback2(CB2_GoToClearSaveDataScreen); + } + else if ((gMain.heldKeys & RESET_RTC_BUTTON_COMBO) == RESET_RTC_BUTTON_COMBO + && CanResetRTC() == TRUE) + { + FadeOutBGM(4); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + SetMainCallback2(CB2_GoToResetRtcScreen); + } + else if ((gMain.heldKeys & BERRY_UPDATE_BUTTON_COMBO) == BERRY_UPDATE_BUTTON_COMBO) + { + FadeOutBGM(4); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + SetMainCallback2(CB2_GoToBerryFixScreen); + } + else + { + SetGpuReg(REG_OFFSET_BG2Y_L, 0); + SetGpuReg(REG_OFFSET_BG2Y_H, 0); + gTasks[taskId].tCounter++; + if (gTasks[taskId].tCounter & 1) + { + gTasks[taskId].data[4]++; + gBattle_BG1_Y = gTasks[taskId].data[4] / 2; + gBattle_BG1_X = 0; + } + UpdateLegendaryMarkingColor(gTasks[taskId].tCounter); + if ((gMPlayInfo_BGM.status & 0xFFFF) == 0) + { + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF); + SetMainCallback2(CB2_GoToCopyrightScreen); + } + } +} + +static void CB2_GoToMainMenu(void) +{ + if (!UpdatePaletteFade()) + SetMainCallback2(CB2_InitMainMenu); +} + +static void CB2_GoToCopyrightScreen(void) +{ + if (!UpdatePaletteFade()) + SetMainCallback2(CB2_InitCopyrightScreenAfterTitleScreen); +} + +static void CB2_GoToClearSaveDataScreen(void) +{ + if (!UpdatePaletteFade()) + SetMainCallback2(CB2_InitClearSaveDataScreen); +} + +static void CB2_GoToResetRtcScreen(void) +{ + if (!UpdatePaletteFade()) + SetMainCallback2(CB2_InitResetRtcScreen); +} + +static void CB2_GoToBerryFixScreen(void) +{ + if (!UpdatePaletteFade()) + { + m4aMPlayAllStop(); + SetMainCallback2(CB2_InitBerryFixProgram); + } +} + +static void UpdateLegendaryMarkingColor(u8 frameNum) +{ + if ((frameNum % 4) == 0) // Change color every 4th frame + { + s32 intensity = Cos(frameNum, 128) + 128; + s32 r = 31 - ((intensity * 32 - intensity) / 256); + s32 g = 31 - (intensity * 22 / 256); + s32 b = 12; + + u16 color = RGB(r, g, b); + LoadPalette(&color, 0xEF, sizeof(color)); + } +} -- cgit v1.2.3 From f78fa6aabfe3c7301eab7250ee2b152feec90b0e Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Mon, 5 Feb 2018 19:46:59 -0600 Subject: rename bank to battler --- asm/battle_anim_80A5C6C.s | 104 +- asm/battle_anim_80D51AC.s | 22 +- asm/battle_anim_80FE840.s | 376 ++-- asm/battle_anim_815A0D4.s | 80 +- asm/battle_anim_8170478.s | 30 +- asm/battle_anim_sound_tasks.s | 4 +- asm/battle_link_817C95C.s | 172 +- asm/contest.s | 14 +- asm/party_menu.s | 18 +- asm/pokemon_1.s | 2 +- asm/pokemon_item_effect.s | 44 +- data/battle_scripts_1.s | 36 +- include/battle.h | 113 +- include/battle_anim.h | 2 +- src/battle_ai_script_commands.c | 180 +- src/battle_ai_switch_items.c | 274 +-- src/battle_anim.c | 70 +- src/battle_bg.c | 2 +- src/battle_controller_link_opponent.c | 770 ++++---- src/battle_controller_link_partner.c | 684 +++---- src/battle_controller_opponent.c | 784 ++++---- src/battle_controller_player.c | 1198 ++++++------ src/battle_controller_player_partner.c | 726 ++++---- src/battle_controller_recorded_opponent.c | 730 ++++---- src/battle_controller_recorded_player.c | 752 ++++---- src/battle_controller_safari.c | 158 +- src/battle_controller_wally.c | 472 ++--- src/battle_controllers.c | 360 ++-- src/battle_gfx_sfx_util.c | 162 +- src/battle_interface.c | 72 +- src/battle_main.c | 1224 ++++++------ src/battle_message.c | 96 +- src/battle_script_commands.c | 2868 ++++++++++++++--------------- src/battle_util.c | 1212 ++++++------ src/battle_util2.c | 20 +- src/pokeball.c | 46 +- src/pokemon_2.c | 36 +- src/pokemon_3.c | 16 +- src/recorded_battle.c | 50 +- src/reshow_battle_screen.c | 40 +- sym_common.txt | 2 +- sym_ewram.txt | 14 +- 42 files changed, 7017 insertions(+), 7018 deletions(-) diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index b543a5ec2..12aa61185 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -40,7 +40,7 @@ _080A5C9C: _080A5CB0: ldr r4, =gUnknown_08525F58 adds r0, r5, 0 - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 22 ldr r1, =gBattleTypeFlags @@ -56,7 +56,7 @@ _080A5CB0: _080A5CD8: ldr r4, =gUnknown_08525F58 adds r0, r5, 0 - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 22 ldr r1, =gBattleTypeFlags @@ -90,7 +90,7 @@ _080A5D24: b _080A5D9A _080A5D28: adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A5D60 @@ -164,7 +164,7 @@ sub_80A5DB8: @ 80A5DB8 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A5DDA @@ -394,7 +394,7 @@ sub_80A5FA0: @ 80A5FA0 adds r7, r4, 0 movs r5, 0 adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -445,7 +445,7 @@ sub_80A600C: @ 80A600C lsls r2, 24 lsrs r7, r2, 24 adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A6030 @@ -476,7 +476,7 @@ _080A603E: lsrs r4, r0, 16 _080A605C: adds r0, r6, 0 - bl GetBankPosition + bl GetBattlerPosition ldr r3, =gUnknown_08525F58 lsls r0, 24 lsrs r0, 22 @@ -494,7 +494,7 @@ _080A605C: cmp r7, 0 beq _080A609C adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080A6096 @@ -605,7 +605,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A6170 @@ -650,7 +650,7 @@ sub_80A6190: @ 80A6190 cmp r0, 0 bne _080A6238 adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A61E4 @@ -699,7 +699,7 @@ _080A621C: ldrh r4, [r1, 0x2] _080A621E: adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A6238 @@ -1596,7 +1596,7 @@ sub_80A6864: @ 80A6864 .pool _080A68A4: ldrb r0, [r7] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A68BC @@ -1806,41 +1806,41 @@ _080A6A04: .pool thumb_func_end sub_80A69CC - thumb_func_start GetBankSide -GetBankSide: @ 80A6A30 + thumb_func_start GetBattlerSide +GetBattlerSide: @ 80A6A30 lsls r0, 24 lsrs r0, 24 - ldr r1, =gBankPositions + ldr r1, =gBattlerPositions adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 bx lr .pool - thumb_func_end GetBankSide + thumb_func_end GetBattlerSide - thumb_func_start GetBankPosition -GetBankPosition: @ 80A6A44 + thumb_func_start GetBattlerPosition +GetBattlerPosition: @ 80A6A44 lsls r0, 24 lsrs r0, 24 - ldr r1, =gBankPositions + ldr r1, =gBattlerPositions adds r0, r1 ldrb r0, [r0] bx lr .pool - thumb_func_end GetBankPosition + thumb_func_end GetBattlerPosition - thumb_func_start GetBankByPosition -GetBankByPosition: @ 80A6A54 + thumb_func_start GetBattlerAtPosition +GetBattlerAtPosition: @ 80A6A54 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 movs r1, 0 - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r2, [r0] cmp r1, r2 bcs _080A6A7E - ldr r4, =gBankPositions + ldr r4, =gBattlerPositions ldrb r0, [r4] cmp r0, r3 beq _080A6A7E @@ -1860,7 +1860,7 @@ _080A6A7E: pop {r1} bx r1 .pool - thumb_func_end GetBankByPosition + thumb_func_end GetBattlerAtPosition thumb_func_start IsBankSpritePresent IsBankSpritePresent: @ 80A6A90 @@ -1883,13 +1883,13 @@ IsBankSpritePresent: @ 80A6A90 b _080A6B18 .pool _080A6ABC: - ldr r0, =gBankPositions + ldr r0, =gBattlerPositions adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0xFF beq _080A6B18 adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A6AF0 @@ -3496,7 +3496,7 @@ _080A76F2: cmp r5, 0 beq _080A771A movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3504,7 +3504,7 @@ _080A76F2: cmp r0, 0 beq _080A771A movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -3514,7 +3514,7 @@ _080A771A: cmp r6, 0 beq _080A7746 movs r0, 0x2 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3522,7 +3522,7 @@ _080A771A: cmp r0, 0 beq _080A7746 movs r0, 0x2 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3534,7 +3534,7 @@ _080A7746: cmp r7, 0 beq _080A7772 movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3542,7 +3542,7 @@ _080A7746: cmp r0, 0 beq _080A7772 movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3555,7 +3555,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 bl IsAnimBankSpriteVisible @@ -3563,7 +3563,7 @@ _080A7772: cmp r0, 0 beq _080A77A0 movs r0, 0x3 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -3592,7 +3592,7 @@ sub_80A77B4: @ 80A77B4 push {lr} lsls r0, 24 lsrs r0, 24 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 pop {r1} @@ -3672,7 +3672,7 @@ _080A7842: bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A785C @@ -3718,7 +3718,7 @@ sub_80A78AC: @ 80A78AC bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A78CC @@ -3811,7 +3811,7 @@ _080A7976: ldrb r6, [r0] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A798E @@ -4567,7 +4567,7 @@ _080A7F42: _080A7F78: lsls r0, r4, 24 lsrs r0, 24 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080A7FD8 @@ -4959,7 +4959,7 @@ _080A825C: sub_80A8278: @ 80A8278 push {r4-r6,lr} movs r5, 0 - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r5, r0 bge _080A82D2 @@ -4998,7 +4998,7 @@ _080A8286: strb r2, [r0, 0x5] _080A82C8: adds r5, 0x1 - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r5, r0 blt _080A8286 @@ -5027,7 +5027,7 @@ _080A82FC: b _080A8320 _080A8300: adds r0, r4, 0 - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x1E @@ -5053,7 +5053,7 @@ sub_80A8328: @ 80A8328 push {r4,lr} lsls r0, 24 lsrs r0, 24 - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r4, r0, 24 bl IsContest @@ -5093,7 +5093,7 @@ sub_80A8364: @ 80A8364 cmp r0, 0 bne _080A838A adds r0, r4, 0 - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -5486,7 +5486,7 @@ _080A86AC: .pool _080A86C4: mov r0, r8 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080A8790 @@ -5943,7 +5943,7 @@ sub_80A8A6C: @ 80A8A6C bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A8AAC @@ -6000,7 +6000,7 @@ sub_80A8AEC: @ 80A8AEC adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A8B1C @@ -6056,7 +6056,7 @@ sub_80A8B64: @ 80A8B64 bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080A8B90 @@ -6108,7 +6108,7 @@ sub_80A8BC4: @ 80A8BC4 strh r0, [r5, 0x8] ldr r7, =gAnimBankAttacker ldrb r0, [r7] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0x8 cmp r0, 0 @@ -6403,7 +6403,7 @@ sub_80A8E30: @ 80A8E30 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080A8E68 @@ -6489,7 +6489,7 @@ sub_80A8EE4: @ 80A8EE4 strh r0, [r4, 0x36] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080A8F24 diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s index 3b1e9dcce..514bf2594 100644 --- a/asm/battle_anim_80D51AC.s +++ b/asm/battle_anim_80D51AC.s @@ -200,7 +200,7 @@ _080D5320: _080D5324: movs r0, 0x3 _080D5326: - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -844,7 +844,7 @@ sub_80D5830: @ 80D5830 lsrs r4, r0, 24 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D584C @@ -873,7 +873,7 @@ sub_80D5860: @ 80D5860 strb r0, [r2] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D5890 @@ -1144,7 +1144,7 @@ _080D5AB2: adds r0, r2, r0 ldrb r6, [r0] adds r0, r2, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D5ADC @@ -1229,7 +1229,7 @@ _080D5B72: adds r0, r1, r0 ldrb r7, [r0] adds r0, r1, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D5B9C @@ -1340,7 +1340,7 @@ sub_80D5C50: @ 80D5C50 lsrs r7, r0, 16 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D5C82 @@ -1551,7 +1551,7 @@ _080D5E18: strh r2, [r5, 0x8] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D5E44 @@ -1624,7 +1624,7 @@ sub_80D5EB8: @ 80D5EB8 lsrs r5, r0, 24 ldr r6, =gAnimBankAttacker ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D5ED4 @@ -1722,7 +1722,7 @@ sub_80D5F3C: @ 80D5F3C .pool _080D5F94: ldrb r0, [r4, 0x12] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080D5FBC @@ -2002,7 +2002,7 @@ _080D61C8: ldr r0, =gAnimBankTarget _080D61CA: ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide movs r1, 0 lsls r0, 24 cmp r0, 0 @@ -2083,7 +2083,7 @@ _080D6274: ldr r0, =gAnimBankTarget _080D6276: ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080D6288 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 59e0556e7..7671f473d 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -24,7 +24,7 @@ sub_80FE840: @ 80FE840 strh r0, [r4, 0x30] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080FE87C @@ -388,7 +388,7 @@ sub_80FEB44: @ 80FEB44 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080FEB90 @@ -496,7 +496,7 @@ sub_80FEC48: @ 80FEC48 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080FEC68 @@ -1028,7 +1028,7 @@ sub_80FF090: @ 80FF090 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080FF0B4 @@ -1082,7 +1082,7 @@ sub_80FF0F4: @ 80FF0F4 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080FF114 @@ -1141,11 +1141,11 @@ _080FF174: bl sub_80A68D4 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide adds r4, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -1641,7 +1641,7 @@ sub_80FF53C: @ 80FF53C strh r1, [r5, 0x24] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080FF586 @@ -1787,7 +1787,7 @@ sub_80FF698: @ 80FF698 _080FF6AA: ldr r6, =gAnimBankTarget ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _080FF6C2 @@ -2460,7 +2460,7 @@ sub_80FFBF4: @ 80FFBF4 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -2982,7 +2982,7 @@ sub_80FFFC0: @ 80FFFC0 bl sub_80A861C strh r0, [r5, 0x1E] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 movs r2, 0x1 @@ -3780,7 +3780,7 @@ _0810065C: _0810065E: ldrb r6, [r0] adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08100688 @@ -4239,7 +4239,7 @@ sub_81009F8: @ 81009F8 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08100A20 @@ -4279,7 +4279,7 @@ sub_8100A50: @ 8100A50 adds r5, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08100A6A @@ -4357,7 +4357,7 @@ sub_8100AE0: @ 8100AE0 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08100B14 @@ -4511,7 +4511,7 @@ _08100C3E: strh r4, [r6, 0x22] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08100C56 @@ -4756,7 +4756,7 @@ sub_8100E1C: @ 8100E1C strh r0, [r5, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08100E44 @@ -4885,7 +4885,7 @@ _08100F06: adds r0, r4 strh r0, [r5, 0x22] ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08100F44 @@ -5525,7 +5525,7 @@ sub_8101440: @ 8101440 bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08101474 @@ -5613,7 +5613,7 @@ sub_81014F4: @ 81014F4 bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810152C @@ -6201,7 +6201,7 @@ sub_8101998: @ 8101998 strh r0, [r4, 0x2E] ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x2 negs r2, r2 @@ -6246,7 +6246,7 @@ sub_81019E8: @ 81019E8 movs r1, 0 bl sub_80A7270 ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] @@ -6303,7 +6303,7 @@ sub_8101A74: @ 8101A74 strh r0, [r4, 0x2E] ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0x3 cmp r0, 0 @@ -6367,12 +6367,12 @@ sub_8101AE8: @ 8101AE8 ldrb r0, [r0] strh r0, [r5, 0x34] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08101B2C @@ -6472,7 +6472,7 @@ _08101BBC: ldrb r0, [r0] strh r0, [r4, 0x32] ldrb r0, [r2] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] @@ -6583,7 +6583,7 @@ sub_8101C94: @ 8101C94 movs r4, 0 strh r0, [r5, 0x8] ldrb r0, [r2] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r2, r0, 24 strh r2, [r5, 0xA] @@ -7539,7 +7539,7 @@ sub_8102434: @ 8102434 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r4, r0 bcs _08102490 @@ -7551,7 +7551,7 @@ _08102448: cmp r0, 0x1 bne _08102464 adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08102464 @@ -7564,7 +7564,7 @@ _08102464: cmp r0, 0x1 bne _08102482 adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7576,7 +7576,7 @@ _08102482: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r4, r0 bcc _08102448 @@ -7605,7 +7605,7 @@ _081024B2: lsls r0, 24 lsrs r4, r0, 24 _081024C2: - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r4, r0 bcc _081024B2 @@ -8115,7 +8115,7 @@ _08102862: _081028D4: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810291C @@ -8857,7 +8857,7 @@ sub_8102EB0: @ 8102EB0 adds r6, r0, 0 ldr r7, =gAnimBankAttacker ldrb r0, [r7] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9149,7 +9149,7 @@ sub_810310C: @ 810310C lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810312C @@ -9208,7 +9208,7 @@ _08103182: adds r1, r5, 0 bl sub_810310C adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 negs r1, r0 @@ -9474,7 +9474,7 @@ _081033AE: adds r1, r5, 0 bl sub_810310C adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081033D4 @@ -9735,7 +9735,7 @@ sub_810358C: @ 810358C adds r0, r1 ldrb r6, [r0] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081035E4 @@ -9876,7 +9876,7 @@ sub_81036DC: @ 81036DC ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08103718 @@ -9994,7 +9994,7 @@ sub_81037D8: @ 81037D8 bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08103804 @@ -10020,7 +10020,7 @@ _08103810: strh r0, [r4, 0x22] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810384C @@ -10119,7 +10119,7 @@ sub_81038C8: @ 81038C8 _081038EC: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810390E @@ -10676,7 +10676,7 @@ _08103D54: strh r0, [r3, 0x4] b _08103DB6 _08103D5C: - ldr r1, =gBankPositions + ldr r1, =gBattlerPositions ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 @@ -11068,7 +11068,7 @@ sub_8104088: @ 8104088 lsrs r7, r0, 16 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081040CC @@ -11147,7 +11147,7 @@ sub_8104154: @ 8104154 strh r0, [r4, 0x24] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08104178 @@ -11354,7 +11354,7 @@ sub_8104304: @ 8104304 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08104322 @@ -12347,7 +12347,7 @@ sub_8104B1C: @ 8104B1C adds r4, r0, 0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08104B50 @@ -12419,7 +12419,7 @@ _08104BC8: _08104BCA: ldrb r5, [r0] adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -12561,7 +12561,7 @@ sub_8104CA4: @ 8104CA4 strh r0, [r4, 0x1A] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -13235,7 +13235,7 @@ _08105234: lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08105260 @@ -13335,7 +13335,7 @@ _08105308: str r3, [sp, 0x4] _08105310: adds r0, r7, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810536C @@ -13486,7 +13486,7 @@ _0810544C: strh r0, [r2, 0x2] _0810546C: mov r0, r8 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08105490 @@ -13583,7 +13583,7 @@ sub_8105538: @ 8105538 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0xA0 cmp r0, 0 @@ -13624,7 +13624,7 @@ sub_810557C: @ 810557C strh r2, [r4, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0xA0 cmp r0, 0 @@ -13952,7 +13952,7 @@ sub_8105810: @ 8105810 strh r0, [r4, 0x20] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08105850 @@ -14686,7 +14686,7 @@ sub_8105DE8: @ 8105DE8 bl sub_80A69CC ldr r6, =gAnimBankAttacker ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08105E08 @@ -15563,7 +15563,7 @@ _0810653A: _08106578: ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -16653,7 +16653,7 @@ _08106E1C: _08106E1E: ldrb r6, [r0] adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17198,7 +17198,7 @@ sub_8107260: @ 8107260 adds r6, r0, 0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08107290 @@ -17239,7 +17239,7 @@ _081072A2: strb r0, [r2] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081072D8 @@ -17424,7 +17424,7 @@ sub_810744C: @ 810744C bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810747C @@ -17797,7 +17797,7 @@ sub_8107730: @ 8107730 cmp r0, 0 bne _0810778A ldrb r0, [r7] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08107784 @@ -17848,11 +17848,11 @@ sub_81077C0: @ 81077C0 adds r6, r0, 0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide adds r4, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -17863,12 +17863,12 @@ sub_81077C0: @ 81077C0 negs r0, r0 strh r0, [r4] ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 beq _08107802 ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -17900,7 +17900,7 @@ _08107828: bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08107842 @@ -18071,7 +18071,7 @@ sub_8107954: @ 8107954 bl SetAnimBgAttribute ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -18176,7 +18176,7 @@ _08107A32: _08107AB4: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 @@ -19280,7 +19280,7 @@ sub_8108384: @ 8108384 push {r4,r5,lr} ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081083B8 @@ -19578,7 +19578,7 @@ sub_81085C8: @ 81085C8 strh r0, [r4, 0xA] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08108600 @@ -19971,7 +19971,7 @@ sub_81088E4: @ 81088E4 lsrs r0, 24 strh r0, [r5, 0x10] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -20748,7 +20748,7 @@ sub_8108F4C: @ 8108F4C bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08108F88 @@ -20800,7 +20800,7 @@ sub_8108FBC: @ 8108FBC adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08108FF0 @@ -20888,7 +20888,7 @@ sub_8109064: @ 8109064 bl sub_80A6838 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08109090 @@ -21039,24 +21039,24 @@ sub_8109198: @ 8109198 adds r6, r0, 0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide adds r4, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _081091DE movs r0, 0x2 - bl GetBankByPosition + bl GetBattlerAtPosition ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _081091D6 movs r0, 0x3 - bl GetBankByPosition + bl GetBattlerAtPosition ldrb r1, [r5] lsls r0, 24 lsrs r0, 24 @@ -21409,7 +21409,7 @@ sub_8109460: @ 8109460 strh r0, [r4, 0x10] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x12] @@ -21822,7 +21822,7 @@ sub_81097B4: @ 81097B4 ldrh r4, [r0, 0x20] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810980C @@ -21994,7 +21994,7 @@ sub_8109930: @ 8109930 lsrs r4, r0, 16 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08109970 @@ -22250,7 +22250,7 @@ _08109B18: strh r0, [r5, 0x3C] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08109B48 @@ -22281,7 +22281,7 @@ _08109B70: strh r0, [r5, 0x30] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08109B94 @@ -22580,7 +22580,7 @@ sub_8109DBC: @ 8109DBC adds r4, r1, r0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -23077,7 +23077,7 @@ sub_810A1A8: @ 810A1A8 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810A1D0 @@ -23131,7 +23131,7 @@ sub_810A214: @ 810A214 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810A23C @@ -23193,7 +23193,7 @@ sub_810A274: @ 810A274 strh r0, [r5, 0x22] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810A2C4 @@ -23578,7 +23578,7 @@ sub_810A5BC: @ 810A5BC bne _0810A5D8 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810A5E0 @@ -23645,7 +23645,7 @@ _0810A64E: cmp r0, 0 bne _0810A666 adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810A66E @@ -24539,7 +24539,7 @@ sub_810AD98: @ 810AD98 movs r0, 0x10 strh r0, [r5, 0x3C] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -24654,7 +24654,7 @@ _0810AE90: lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810AECC @@ -24822,7 +24822,7 @@ _0810AFFA: _0810AFFC: ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -25985,7 +25985,7 @@ sub_810B8EC: @ 810B8EC strh r0, [r4, 0x32] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810B92C @@ -26051,7 +26051,7 @@ _0810B990: bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810B9B6 @@ -26159,7 +26159,7 @@ _0810BA74: _0810BA86: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810BAAC @@ -26279,7 +26279,7 @@ sub_810BB60: @ 810BB60 strh r0, [r4, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldr r1, =0x0000ffec cmp r0, 0 @@ -26314,7 +26314,7 @@ sub_810BBC8: @ 810BBC8 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldr r1, =0x0000ffec cmp r0, 0 @@ -26458,7 +26458,7 @@ _0810BCE0: _0810BCF2: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810BD1C @@ -26655,7 +26655,7 @@ _0810BE6C: bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810BE92 @@ -26721,7 +26721,7 @@ _0810BEF4: movs r1, 0 bl sub_80A8924 ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810BF20 @@ -26764,7 +26764,7 @@ _0810BF52: movs r1, 0 bl sub_80A8924 ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810BF7C @@ -26808,7 +26808,7 @@ _0810BFB6: strh r0, [r5, 0x3A] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810BFCC @@ -27474,7 +27474,7 @@ sub_810C560: @ 810C560 lsls r0, 8 strh r0, [r5, 0x3C] _0810C594: - ldr r3, =gBankPositions + ldr r3, =gBattlerPositions ldrb r0, [r7] adds r0, r3 ldrb r1, [r0] @@ -27699,7 +27699,7 @@ _0810C736: lsls r0, 24 cmp r0, 0 bne _0810C78C - ldr r1, =gBankPositions + ldr r1, =gBattlerPositions ldrb r0, [r6] adds r0, r1 ldrb r1, [r0] @@ -27843,7 +27843,7 @@ _0810C85A: lsls r0, 24 cmp r0, 0 bne _0810C8B4 - ldr r1, =gBankPositions + ldr r1, =gBattlerPositions ldr r0, =gAnimBankTarget ldrb r0, [r0] adds r0, r1 @@ -28050,7 +28050,7 @@ sub_810C9E4: @ 810C9E4 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 @@ -28373,7 +28373,7 @@ _0810CCA6: strh r0, [r5, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810CCCE @@ -28583,7 +28583,7 @@ sub_810CE68: @ 810CE68 bne _0810CE90 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810CE90 @@ -28771,7 +28771,7 @@ _0810D000: negs r0, r0 lsrs r4, r0, 16 _0810D012: - ldr r0, =gBankPositions + ldr r0, =gBattlerPositions add r0, r8 ldrb r1, [r0] adds r0, r7, 0 @@ -28983,7 +28983,7 @@ sub_810D1B4: @ 810D1B4 cmp r0, r1 bne _0810D1E0 ldrb r0, [r2] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -28999,7 +28999,7 @@ _0810D1E0: bl sub_80A6980 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810D1FE @@ -29520,7 +29520,7 @@ sub_810D608: @ 810D608 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D664 - ldr r4, =gBankAttacker + ldr r4, =gBattleAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBankCoord @@ -29808,7 +29808,7 @@ sub_810D874: @ 810D874 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D8B8 - ldr r4, =gBankAttacker + ldr r4, =gBattleAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBankCoord @@ -29857,7 +29857,7 @@ _0810D8BE: .pool _0810D8F8: adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810D918 @@ -29954,7 +29954,7 @@ sub_810D984: @ 810D984 ldr r0, =gAnimMoveTurn ldrb r6, [r0] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810D9CE @@ -30020,7 +30020,7 @@ _0810DA34: _0810DA48: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810DA5E @@ -30130,7 +30130,7 @@ _0810DB1A: strh r0, [r4, 0x1C] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810DB50 @@ -30273,7 +30273,7 @@ _0810DC44: bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810DC72 @@ -30399,7 +30399,7 @@ sub_810DD50: @ 810DD50 bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810DD7C @@ -30460,7 +30460,7 @@ _0810DDE0: bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810DE06 @@ -30682,7 +30682,7 @@ sub_810DFA8: @ 810DFA8 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810DFC8 @@ -30750,7 +30750,7 @@ sub_810E044: @ 810E044 adds r5, r0, 0 ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810E070 @@ -30931,7 +30931,7 @@ sub_810E1C8: @ 810E1C8 adds r5, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810E1F8 @@ -31107,7 +31107,7 @@ _0810E33C: _0810E33E: ldrb r6, [r0] adds r0, r6, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810E354 @@ -32108,7 +32108,7 @@ _0810EAC4: bne _0810EADC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810EAF2 @@ -32119,7 +32119,7 @@ _0810EADC: bne _0810EAF8 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810EAF8 @@ -33040,7 +33040,7 @@ sub_810F1EC: @ 810F1EC mov r8, r0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810F212 @@ -33064,7 +33064,7 @@ _0810F212: bne _0810F2B8 _0810F22E: movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 @@ -33111,7 +33111,7 @@ _0810F284: beq _0810F2B8 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810F2B0 @@ -33128,7 +33128,7 @@ _0810F2B0: _0810F2B8: ldr r6, =gAnimBankAttacker ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810F2CE @@ -33193,7 +33193,7 @@ sub_810F340: @ 810F340 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 movs r1, 0x3C @@ -33370,7 +33370,7 @@ sub_810F46C: @ 810F46C cmp r0, 0 bne _0810F502 movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -33441,7 +33441,7 @@ sub_810F524: @ 810F524 cmp r0, 0 bne _0810F57C movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 @@ -33507,7 +33507,7 @@ _0810F5A6: beq _0810F5EE ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0810F5E0 @@ -33582,7 +33582,7 @@ sub_810F634: @ 810F634 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0810F684 @@ -33645,7 +33645,7 @@ sub_810F6B0: @ 810F6B0 lsls r1, 16 lsrs r7, r1, 16 ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -33833,7 +33833,7 @@ sub_810F83C: @ 810F83C strh r1, [r4, 0xC] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0x8 cmp r0, 0 @@ -35211,7 +35211,7 @@ sub_8110368: @ 8110368 _08110394: ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081103C4 @@ -35299,7 +35299,7 @@ sub_8110438: @ 8110438 _0811045C: ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08110478 @@ -35467,7 +35467,7 @@ sub_81105B4: @ 81105B4 bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081105F0 @@ -35492,7 +35492,7 @@ _081105FC: strh r0, [r4, 0x22] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08110618 @@ -35657,7 +35657,7 @@ sub_8110720: @ 8110720 _08110740: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08110762 @@ -35678,22 +35678,22 @@ _08110762: bne _081107B2 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide adds r4, r0, 0 ldr r5, =gAnimBankTarget ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _081107B2 ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 beq _081107A0 ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -35782,7 +35782,7 @@ sub_8110850: @ 8110850 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08110870 @@ -36066,7 +36066,7 @@ sub_8110AB4: @ 8110AB4 bl AnimateSprite ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08110AE4 @@ -36256,7 +36256,7 @@ _08110C10: beq _08110C6E ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08110C6E @@ -36482,7 +36482,7 @@ sub_8110E4C: @ 8110E4C beq _08110E98 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08110E98 @@ -37195,7 +37195,7 @@ sub_8111418: @ 8111418 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -38287,7 +38287,7 @@ _08111C80: strh r1, [r0, 0x2E] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08111CF4 @@ -39596,7 +39596,7 @@ sub_8112758: @ 8112758 bl SetGpuReg ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081127A0 @@ -39871,7 +39871,7 @@ sub_81129F0: @ 81129F0 bl sub_80A69CC ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08112A24 @@ -40066,7 +40066,7 @@ sub_8112B78: @ 8112B78 strh r0, [r5, 0x24] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08112B9C @@ -40303,7 +40303,7 @@ _08112D56: strh r7, [r5, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide movs r1, 0 lsls r0, 24 cmp r0, 0 @@ -40693,7 +40693,7 @@ sub_8113064: @ 8113064 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081130B4 @@ -40767,7 +40767,7 @@ sub_8113100: @ 8113100 strh r0, [r5, 0x36] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08113164 @@ -40878,7 +40878,7 @@ sub_8113224: @ 8113224 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0811323E @@ -40918,7 +40918,7 @@ sub_8113250: @ 8113250 ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] - ldr r4, =gBankAttacker + ldr r4, =gBattleAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A861C @@ -42085,7 +42085,7 @@ sub_8113BAC: @ 8113BAC adds r0, 0x20 strh r0, [r5, 0x26] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08113C1C @@ -42500,7 +42500,7 @@ _08113F84: adds r0, 0x4 strh r0, [r5, 0x26] ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08113FD8 @@ -43204,13 +43204,13 @@ _0811455C: bne _081145D6 ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0811458C ldrb r0, [r4] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 bne _081145D6 @@ -43264,7 +43264,7 @@ _081145D6: _08114614: ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08114640 @@ -43586,7 +43586,7 @@ _08114902: beq _0811492E _08114908: adds r0, r4, 0 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -43766,7 +43766,7 @@ sub_8114A7C: @ 8114A7C bl sub_80A6980 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08114A9C @@ -45335,7 +45335,7 @@ sub_811572C: @ 811572C strh r0, [r4, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -45846,7 +45846,7 @@ sub_8115B0C: @ 8115B0C strh r1, [r0, 0x12] strh r5, [r0, 0x18] movs r4, 0 - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r1, [r0] mov r9, r3 mov r8, r2 @@ -46650,7 +46650,7 @@ _0811618A: cmp r0, 0x1 bhi _081161DC movs r4, 0 - ldr r5, =gBattleBanksCount + ldr r5, =gBattlersCount ldrb r0, [r5] cmp r4, r0 bcs _081161DC @@ -46957,7 +46957,7 @@ sub_8116420: @ 8116420 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08116444 @@ -47869,13 +47869,13 @@ _08116BA2: bne _08116C26 ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08116BD2 ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 bne _08116C26 @@ -47934,7 +47934,7 @@ _08116C26: _08116C64: ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08116C90 @@ -48306,14 +48306,14 @@ _08116FBA: cmp r0, 0 bne _08117036 ldrb r0, [r1] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08116FEC ldr r0, [r4] ldrb r0, [r0] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 cmp r0, 0 bne _08117036 @@ -48370,7 +48370,7 @@ _08117078: ldr r4, =gUnknown_0203A110 ldr r0, [r4] ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _081170A8 @@ -49098,7 +49098,7 @@ sub_8117660: @ 8117660 beq _0811769C ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0811769C @@ -49198,7 +49198,7 @@ sub_8117754: @ 8117754 lsrs r4, 24 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide ldr r1, =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 @@ -49219,7 +49219,7 @@ sub_8117780: @ 8117780 lsrs r4, 24 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide ldr r1, =gBattleAnimArgs lsls r0, 24 lsrs r0, 24 @@ -49431,7 +49431,7 @@ _08117930: .pool _08117964: adds r0, r7, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08117988 @@ -50065,7 +50065,7 @@ sub_8117E94: @ 8117E94 lsls r0, 24 lsrs r0, 24 ldr r2, =gAnimBankAttacker - ldr r1, =gBankDefender + ldr r1, =gBattleDefender ldrb r1, [r1] strb r1, [r2] ldr r2, =gAnimBankTarget @@ -50085,11 +50085,11 @@ sub_8117EC4: @ 8117EC4 lsrs r5, r0, 24 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide adds r4, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -50117,7 +50117,7 @@ sub_8117F10: @ 8117F10 lsls r0, 24 lsrs r0, 24 ldr r2, =gAnimBankTarget - ldr r1, =gBankDefender + ldr r1, =gBattleDefender ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -50132,7 +50132,7 @@ sub_8117F30: @ 8117F30 lsls r0, 24 lsrs r0, 24 ldr r2, =gAnimBankAttacker - ldr r1, =gBankAttacker + ldr r1, =gBattleAttacker ldrb r1, [r1] strb r1, [r2] ldr r2, =gAnimBankTarget @@ -52078,7 +52078,7 @@ sub_8118FBC: @ 8118FBC lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 ldr r1, =gMonSpritesGfxPtr diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index 09ce04a68..d4c1b90b9 100644 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -778,7 +778,7 @@ sub_815A6C4: @ 815A6C4 bl sub_80A8924 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815A6F8 @@ -921,7 +921,7 @@ sub_815A7EC: @ 815A7EC bne _0815A840 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815A830 @@ -1019,7 +1019,7 @@ sub_815A8C8: @ 815A8C8 lsrs r4, r0, 24 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2484,7 +2484,7 @@ sub_815B49C: @ 815B49C adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815B4BC @@ -2515,7 +2515,7 @@ sub_815B4D4: @ 815B4D4 strh r0, [r4, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815B4F8 @@ -3020,7 +3020,7 @@ _0815B8A8: .pool _0815B8E0: ldrb r0, [r5] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r1, r0, 24 _0815B8EA: @@ -3234,7 +3234,7 @@ _0815BAB6: bne _0815BAF6 ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3392,7 +3392,7 @@ _0815BC02: _0815BC34: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815BC58 @@ -3998,7 +3998,7 @@ _0815C124: _0815C15C: ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r4, r0, 24 bl IsDoubleBattle @@ -4087,7 +4087,7 @@ _0815C224: strh r0, [r5, 0xE] ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4327,7 +4327,7 @@ _0815C41E: strh r0, [r4, 0x32] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815C450 @@ -4434,7 +4434,7 @@ _0815C508: ldr r0, =gAnimBankTarget _0815C50A: ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4645,7 +4645,7 @@ sub_815C6B0: @ 815C6B0 adds r4, r0, 0 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -4685,7 +4685,7 @@ sub_815C700: @ 815C700 strh r0, [r4, 0x2E] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815C744 @@ -5172,7 +5172,7 @@ _0815CAD2: cmp r0, 0 bne _0815CAF8 ldrb r0, [r6, 0x1E] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsls r2, r5, 4 cmp r0, 0 @@ -5695,7 +5695,7 @@ sub_815CED8: @ 815CED8 _0815CF18: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815CFC4 @@ -5733,7 +5733,7 @@ _0815CF18: cmp r0, 0 bne _0815CFBC adds r0, r2, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815CF9C @@ -5801,7 +5801,7 @@ _0815CFC4: cmp r0, 0 bne _0815D054 adds r0, r2, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815D03C @@ -6093,7 +6093,7 @@ _0815D26E: movs r0, 0x18 strh r0, [r4, 0x18] adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -6829,7 +6829,7 @@ sub_815D870: @ 815D870 bl StartSpriteAffineAnim ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815D896 @@ -7261,7 +7261,7 @@ sub_815DB90: @ 815DB90 strh r0, [r4, 0x14] _0815DBD4: ldrb r0, [r2] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815DC04 @@ -7777,7 +7777,7 @@ sub_815E01C: @ 815E01C adds r5, r0, 0 ldr r6, =gAnimBankAttacker ldrb r0, [r6] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -7839,7 +7839,7 @@ _0815E09A: _0815E0A8: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815E0C8 @@ -7925,7 +7925,7 @@ _0815E144: _0815E14E: ldr r5, =gAnimBankAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815E188 @@ -8451,7 +8451,7 @@ _0815E4EE: bl sub_80A68D4 mov r1, r10 ldrb r0, [r1] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9365,7 +9365,7 @@ _0815ECAC: _0815ECB4: ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815ECD0 @@ -9617,7 +9617,7 @@ _0815EEAA: ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9999,7 +9999,7 @@ sub_815F18C: @ 815F18C movs r1, 0x3 bl GetBankCoord ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _0815F1B8 @@ -10362,7 +10362,7 @@ sub_815F48C: @ 815F48C adds r5, r0, 0 ldr r4, =gAnimBankTarget ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815F4B8 @@ -10960,7 +10960,7 @@ _0815F940: strh r0, [r6, 0xA] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11047,7 +11047,7 @@ _0815F9F4: _0815FA28: ldr r4, =gAnimBankAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815FAC8 @@ -11255,7 +11255,7 @@ _0815FBE8: strh r0, [r6, 0xA] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11309,7 +11309,7 @@ _0815FC56: bne _0815FCD6 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815FCB4 @@ -11385,7 +11385,7 @@ _0815FD08: bl sub_80A8610 ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 @@ -11444,7 +11444,7 @@ _0815FD8C: mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x18] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x18] @@ -11585,7 +11585,7 @@ _0815FE92: strb r0, [r2] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -11654,7 +11654,7 @@ _0815FF6E: strh r0, [r4, 0x32] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815FF9C @@ -11900,7 +11900,7 @@ sub_8160164: @ 8160164 strh r0, [r4, 0xE] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 @@ -12074,7 +12074,7 @@ sub_81602E0: @ 81602E0 adds r4, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] @@ -12117,7 +12117,7 @@ sub_8160338: @ 8160338 adds r4, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0816037C diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index 956b30186..ad37b18d2 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -857,7 +857,7 @@ sub_8170BB0: @ 8170BB0 adds r1, r0, r1 ldrb r1, [r1] mov r9, r1 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08170BF8 @@ -1283,7 +1283,7 @@ _08170F54: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 bl sub_80A82E4 @@ -1335,7 +1335,7 @@ _08170F54: ldr r0, =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1371,7 +1371,7 @@ sub_8171030: @ 8171030 lsrs r5, r0, 24 ldr r6, =gSprites movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition ldr r1, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1422,7 +1422,7 @@ sub_81710A8: @ 81710A8 lsrs r5, r0, 24 ldr r6, =gSprites movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition ldr r4, =gBankSpriteIds lsls r0, 24 lsrs r0, 24 @@ -1438,7 +1438,7 @@ sub_81710A8: @ 81710A8 cmp r0, 0 bge _081710F4 movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -4764,7 +4764,7 @@ _08172C36: adds r0, r4 strh r0, [r5, 0x8] ldrb r0, [r3] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08172C78 @@ -4838,7 +4838,7 @@ _08172CDA: adds r0, r2 strh r0, [r5, 0x8] ldrb r0, [r3] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08172D10 @@ -4879,7 +4879,7 @@ _08172D28: strh r1, [r0, 0x8] ldr r0, =gAnimBankAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 @@ -5347,7 +5347,7 @@ _08173118: cmp r0, 0 bne _08173160 mov r0, r8 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 movs r1, 0x3F cmp r0, 0 @@ -5575,7 +5575,7 @@ sub_817330C: @ 817330C movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -5587,7 +5587,7 @@ sub_817330C: @ 817330C adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5732,7 +5732,7 @@ sub_817345C: @ 817345C .pool _08173478: movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition ldr r1, =gAnimBankAttacker strb r0, [r1] movs r0, 0x1 @@ -5740,12 +5740,12 @@ _08173478: .pool _0817348C: movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition ldr r1, =gAnimBankAttacker strb r0, [r1] movs r0, 0 _08173498: - bl GetBankByPosition + bl GetBattlerAtPosition ldr r1, =gAnimBankTarget strb r0, [r1] _081734A0: diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s index 949934e1d..85148c8b6 100644 --- a/asm/battle_anim_sound_tasks.s +++ b/asm/battle_anim_sound_tasks.s @@ -379,7 +379,7 @@ _08158E1E: .pool _08158E38: adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08158E5C @@ -504,7 +504,7 @@ _08158F2E: .pool _08158F48: adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08158F6C diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index f1a398ad6..b9205632b 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -34,26 +34,26 @@ _0817C988: movs r1, 0x81 lsls r1, 2 adds r7, r0, r1 - ldr r5, =gBankAttacker + ldr r5, =gBattleAttacker ldrb r0, [r5] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gEffectBank ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, =gStringInfo ldr r0, [r0] ldrb r0, [r0, 0x7] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] @@ -83,7 +83,7 @@ _0817CA10: str r1, [sp, 0x8] cmp r6, 0 bne _0817CA3C - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -94,7 +94,7 @@ _0817CA10: b _0817CA4C .pool _0817CA3C: - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -105,7 +105,7 @@ _0817CA3C: _0817CA4C: adds r1, r0 str r1, [sp, 0xC] - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] ldr r1, =gStringInfo ldr r1, [r1] @@ -134,20 +134,20 @@ _0817CA4C: bl _0817E0A2 .pool _0817CA9C: - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 25 mov r8, r0 - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r5, r0, 25 ldr r0, =gEffectBank ldrb r0, [r0] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r3, r0, 25 ldr r1, [sp] @@ -572,7 +572,7 @@ _0817D0DC: lsls r3, 2 adds r3, r7, r3 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -602,7 +602,7 @@ _0817D124: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -635,7 +635,7 @@ _0817D16C: lsls r0, 2 adds r5, r7, r0 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -716,7 +716,7 @@ _0817D216: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -776,7 +776,7 @@ _0817D296: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -834,7 +834,7 @@ _0817D314: adds r3, r0 adds r3, r7, r3 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -940,8 +940,8 @@ _0817D3F2: bne _0817D3FE bl _0817E0A6 _0817D3FE: - ldr r0, =gBankAttacker - ldr r1, =gBankDefender + ldr r0, =gBattleAttacker + ldr r1, =gBattleDefender ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -1015,7 +1015,7 @@ _0817D498: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1092,7 +1092,7 @@ _0817D53C: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1162,7 +1162,7 @@ _0817D5CE: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1227,7 +1227,7 @@ _0817D65E: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1314,7 +1314,7 @@ _0817D704: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1354,7 +1354,7 @@ _0817D76C: bl _0817E0A6 _0817D77E: ldr r6, =gBattlePartyID - ldr r5, =gBankAttacker + ldr r5, =gBattleAttacker ldrb r0, [r5] lsls r0, 1 adds r0, r6 @@ -1408,7 +1408,7 @@ _0817D7D8: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1452,7 +1452,7 @@ _0817D838: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1498,7 +1498,7 @@ _0817D8A4: _0817D8B6: ldr r2, =gBattlePartyID mov r8, r2 - ldr r6, =gBankAttacker + ldr r6, =gBattleAttacker ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -1574,7 +1574,7 @@ _0817D94C: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1640,7 +1640,7 @@ _0817D9C2: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1672,7 +1672,7 @@ _0817D9C2: .pool _0817DA24: ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1715,7 +1715,7 @@ _0817DA68: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1748,7 +1748,7 @@ _0817DA68: .pool _0817DACC: ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1803,7 +1803,7 @@ _0817DB24: lsls r4, 3 adds r3, r4 adds r3, r7, r3 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1839,7 +1839,7 @@ _0817DB76: .pool _0817DB90: ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1876,7 +1876,7 @@ _0817DBD4: adds r3, r0 adds r3, r7, r3 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1944,7 +1944,7 @@ _0817DC62: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2022,7 +2022,7 @@ _0817DCFC: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2050,7 +2050,7 @@ _0817DD38: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2122,7 +2122,7 @@ _0817DDC8: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2155,7 +2155,7 @@ _0817DE10: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2254,7 +2254,7 @@ _0817DEDC: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2332,7 +2332,7 @@ _0817DF70: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2414,7 +2414,7 @@ _0817DFE6: ands r0, r2 strb r0, [r1] ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2557,16 +2557,16 @@ _0817E122: lsls r1, 2 adds r1, r0, r1 str r1, [sp, 0x8] - ldr r2, =gBankAttacker + ldr r2, =gBattleAttacker mov r10, r2 ldrb r0, [r2] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 mov r1, r10 @@ -2593,7 +2593,7 @@ _0817E122: _0817E184: mov r2, r10 ldrb r0, [r2] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 25 lsls r0, 3 @@ -2617,7 +2617,7 @@ _0817E184: strb r1, [r0] mov r1, r10 ldrb r0, [r1] - bl GetBankPosition + bl GetBattlerPosition lsls r0, 24 lsrs r0, 25 lsls r0, 3 @@ -2812,9 +2812,9 @@ sub_817E32C: @ 817E32C movs r1, 0x81 lsls r1, 2 adds r4, r0, r1 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r2, r0, 24 cmp r5, 0x12 @@ -3244,14 +3244,14 @@ sub_817E684: @ 817E684 movs r2, 0x81 lsls r2, 2 adds r7, r0, r2 - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r3, r0, 24 mov r0, r10 @@ -3298,7 +3298,7 @@ _0817E6F0: .4byte _0817E760 _0817E760: ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -3330,7 +3330,7 @@ _0817E79C: lsls r2, r0, 4 ldr r4, =0x0000ffff ldr r1, [r1] - ldr r3, =gBankAttacker + ldr r3, =gBattleAttacker ldrh r0, [r1] cmp r6, r0 bne _0817E7E0 @@ -3708,15 +3708,15 @@ sub_817EA80: @ 817EA80 movs r1, 0x81 lsls r1, 2 adds r5, r0, r1 - ldr r3, =gBankAttacker + ldr r3, =gBattleAttacker mov r8, r3 ldrb r0, [r3] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r2, r0, 24 lsls r0, r4, 1 @@ -4006,7 +4006,7 @@ _0817ECCC: lsrs r0, 5 subs r6, r0, 0x1 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4165,7 +4165,7 @@ _0817EE1C: bne _0817EEBC adds r2, r4, 0 ldr r1, =gBattlePartyID - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4269,9 +4269,9 @@ sub_817EECC: @ 817EECC beq _0817EEE6 b _0817F1FA _0817EEE6: - ldr r4, =gBankAttacker + ldr r4, =gBattleAttacker ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4291,7 +4291,7 @@ _0817EEF8: bgt _0817EF10 b _0817F1FA _0817EF10: - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] muls r0, r1 adds r0, r5 @@ -4367,7 +4367,7 @@ _0817EF8A: beq _0817EF98 b _0817F1FA _0817EF98: - ldr r2, =gBankAttacker + ldr r2, =gBattleAttacker ldrb r0, [r2] adds r0, r6 ldrb r0, [r0] @@ -4386,11 +4386,11 @@ _0817EF98: mov r10, r3 mov r8, r0 add r7, sp, 0x10 - ldr r4, =gBankDefender + ldr r4, =gBattleDefender mov r9, r4 _0817EFC2: lsls r1, r5, 1 - ldr r6, =gBankAttacker + ldr r6, =gBattleAttacker ldrb r0, [r6] movs r2, 0x58 muls r0, r2 @@ -4414,13 +4414,13 @@ _0817EFC2: ldr r4, =gSideStatuses mov r1, r9 ldrb r0, [r1] - bl GetBankPosition + bl GetBattlerPosition movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] - ldr r2, =gBankAttacker + ldr r2, =gBattleAttacker ldrb r0, [r2] movs r4, 0x58 muls r0, r4 @@ -4437,7 +4437,7 @@ _0817EFC2: str r4, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r6, =gBankAttacker + ldr r6, =gBattleAttacker ldrb r4, [r6] str r4, [sp, 0x8] mov r6, r9 @@ -4448,7 +4448,7 @@ _0817EFC2: ldr r4, =gBattleMoveDamage str r3, [r4] ldr r1, =gStatuses3 - ldr r2, =gBankAttacker + ldr r2, =gBattleAttacker ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -4472,7 +4472,7 @@ _0817EFC2: str r0, [r4] _0817F06A: ldr r0, =gProtectStructs - ldr r6, =gBankAttacker + ldr r6, =gBattleAttacker ldrb r1, [r6] lsls r1, 4 adds r1, r0 @@ -4513,7 +4513,7 @@ _0817F0B4: cmp r5, 0x3 ble _0817EFC2 movs r5, 0 - ldr r3, =gBankAttacker + ldr r3, =gBattleAttacker ldr r6, =gMoveSelectionCursor ldr r4, =gBattlePartyID mov r8, r4 @@ -4545,9 +4545,9 @@ _0817F0D8: movs r7, 0 _0817F0F6: movs r5, 0 - ldr r4, =gBankDefender + ldr r4, =gBattleDefender ldr r6, =gEnemyParty - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] add r0, r10 ldrb r3, [r0] @@ -4582,7 +4582,7 @@ _0817F11A: adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 - ldr r2, =gBankAttacker + ldr r2, =gBattleAttacker ldrb r0, [r2] lsls r0, 1 add r0, r8 @@ -4598,7 +4598,7 @@ _0817F11A: adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r4, =gBankAttacker + ldr r4, =gBattleAttacker ldrb r3, [r4] mov r2, r10 adds r0, r3, r2 @@ -4625,7 +4625,7 @@ _0817F1D4: _0817F1DC: ldr r2, =gBattleMoveDamage ldr r1, =gMoveSelectionCursor - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4695,7 +4695,7 @@ _0817F270: cmp r2, 0x95 bne _0817F294 ldr r2, =gBattleMons - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -4801,7 +4801,7 @@ GetBankMoveSlotId: @ 817F33C lsls r1, 16 lsrs r7, r1, 16 adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 ldr r6, =gEnemyParty cmp r0, 0 diff --git a/asm/contest.s b/asm/contest.s index ba451fbdb..8760464aa 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1048,7 +1048,7 @@ _080D8004: bl sub_80DC594 bl sub_80DC5E8 bl sub_80DC7EC - ldr r1, =gBankPositions + ldr r1, =gBattlerPositions strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] @@ -1058,9 +1058,9 @@ _080D8004: strb r2, [r1, 0x3] ldr r0, =gBattleTypeFlags str r4, [r0] - ldr r4, =gBankAttacker + ldr r4, =gBattleAttacker strb r2, [r4] - ldr r0, =gBankDefender + ldr r0, =gBattleDefender strb r3, [r0] bl sub_80DB0C4 ldr r2, =gBankSpriteIds @@ -2548,7 +2548,7 @@ _080D8DD0: adds r4, r0 strh r5, [r4, 0xC] ldr r1, =gBankSpriteIds - ldr r0, =gBankAttacker + ldr r0, =gBattleAttacker ldrb r0, [r0] adds r0, r1 strb r5, [r0] @@ -13798,7 +13798,7 @@ sub_80DEA20: @ 80DEA20 bl CreateInvisibleSpriteWithCallback ldr r1, =gBankSpriteIds strb r0, [r1, 0x3] - ldr r0, =gBankDefender + ldr r0, =gBattleDefender ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -13905,12 +13905,12 @@ _080DEAD0: .4byte _080DEB60 .4byte _080DEB60 _080DEB54: - ldr r1, =gBankDefender + ldr r1, =gBattleDefender movs r0, 0x2 b _080DEB64 .pool _080DEB60: - ldr r1, =gBankDefender + ldr r1, =gBattleDefender movs r0, 0x3 _080DEB64: strb r0, [r1] diff --git a/asm/party_menu.s b/asm/party_menu.s index 9232d0ac6..6112d2413 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -16041,7 +16041,7 @@ _081B8AF8: b _081B8B24 _081B8AFC: adds r0, r4, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081B8B1E @@ -16060,7 +16060,7 @@ _081B8B1E: lsls r0, 24 lsrs r4, r0, 24 _081B8B24: - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r4, r0 bcc _081B8AFC @@ -16228,7 +16228,7 @@ _081B8CBE: bne _081B8CFC movs r5, 0x1 movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition mov r2, sp ldr r1, =gBattlePartyID lsls r0, 24 @@ -16255,7 +16255,7 @@ _081B8CF0: _081B8CFC: movs r5, 0x2 movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition mov r1, sp ldr r4, =gBattlePartyID lsls r0, 24 @@ -16264,7 +16264,7 @@ _081B8CFC: ldrh r0, [r0] strb r0, [r1] movs r0, 0x2 - bl GetBankByPosition + bl GetBattlerAtPosition mov r1, sp lsls r0, 24 lsrs r0, 23 @@ -16339,24 +16339,24 @@ sub_81B8D88: @ 81B8D88 lsrs r7, r1, 24 lsls r0, 24 lsrs r0, 24 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081B8DB0 movs r0, 0 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 b _081B8DBC _081B8DB0: movs r0, 0x1 - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 _081B8DBC: - bl GetBankByPosition + bl GetBattlerAtPosition lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1250 diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s index 15b4af009..0ab5a3307 100644 --- a/asm/pokemon_1.s +++ b/asm/pokemon_1.s @@ -581,7 +581,7 @@ _080689E4: beq _080689CE _080689F4: adds r0, r5, 0 - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _080689CE diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index fb8ea0d3c..6da70ff2f 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -114,17 +114,17 @@ _0806BDC4: lsrs r1, r0, 24 cmp r1, 0 beq _0806BE64 - ldr r0, =gActiveBank + ldr r0, =gActiveBattler strb r2, [r0] ldrb r0, [r0] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x1C] - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldr r4, [sp, 0xC] subs r4, 0xD ldrb r0, [r0] @@ -148,7 +148,7 @@ _0806BE3C: ldr r1, [sp, 0x1C] adds r1, 0x2 str r1, [sp, 0x1C] - ldr r0, =gBattleBanksCount + ldr r0, =gBattlersCount ldrb r0, [r0] cmp r1, r0 bge _0806BE70 @@ -165,7 +165,7 @@ _0806BE3C: b _0806BE70 .pool _0806BE64: - ldr r0, =gActiveBank + ldr r0, =gActiveBattler strb r1, [r0] movs r3, 0x4 str r3, [sp, 0x38] @@ -200,7 +200,7 @@ _0806BE9A: ands r0, r1 cmp r0, 0 beq _0806BECC - ldr r0, =gActiveBank + ldr r0, =gActiveBattler ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -297,7 +297,7 @@ _0806BF76: cmp r0, 0 beq _0806BFA4 ldr r1, =gBattleMons - ldr r0, =gActiveBank + ldr r0, =gActiveBattler ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -323,7 +323,7 @@ _0806BFA4: bl _0806CD4C _0806BFB2: ldr r6, =gBattleMons - ldr r5, =gActiveBank + ldr r5, =gActiveBattler ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -362,7 +362,7 @@ _0806BFFC: cmp r3, 0 beq _0806C042 ldr r7, =gBattleMons - ldr r5, =gActiveBank + ldr r5, =gActiveBattler ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -396,7 +396,7 @@ _0806C042: bl _0806CD4C _0806C050: ldr r6, =gBattleMons - ldr r5, =gActiveBank + ldr r5, =gActiveBattler ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -433,7 +433,7 @@ _0806C08C: cmp r3, 0 beq _0806C0D2 ldr r7, =gBattleMons - ldr r5, =gActiveBank + ldr r5, =gActiveBattler ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -467,7 +467,7 @@ _0806C0D2: bl _0806CD4C _0806C0E0: ldr r6, =gBattleMons - ldr r5, =gActiveBank + ldr r5, =gActiveBattler ldrb r0, [r5] movs r4, 0x58 muls r0, r4 @@ -506,9 +506,9 @@ _0806C120: cmp r0, 0 beq _0806C168 ldr r5, =gSideTimers - ldr r4, =gActiveBank + ldr r4, =gActiveBattler ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -519,7 +519,7 @@ _0806C120: cmp r0, 0 bne _0806C168 ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 @@ -965,7 +965,7 @@ _0806C4FC: ldr r3, [sp, 0x38] cmp r3, 0x4 beq _0806C55C - ldr r2, =gAbsentBankFlags + ldr r2, =gAbsentBattlerFlags ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 @@ -983,14 +983,14 @@ _0806C4FC: lsrs r1, 24 ldr r0, [sp, 0x38] bl CopyPlayerPartyMonToBattleData - ldr r0, =gActiveBank + ldr r0, =gActiveBattler ldrb r0, [r0] b _0806C574 .pool _0806C55C: - ldr r3, =gAbsentBankFlags + ldr r3, =gAbsentBattlerFlags ldr r1, =gBitTable - ldr r2, =gActiveBank + ldr r2, =gActiveBattler ldrb r0, [r2] eors r0, r4 lsls r0, 2 @@ -1001,7 +1001,7 @@ _0806C55C: strb r0, [r3] ldrb r0, [r2] _0806C574: - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0806C5B2 @@ -1135,9 +1135,9 @@ _0806C65E: ands r0, r3 cmp r0, 0 bne _0806C6EC - ldr r4, =gActiveBank + ldr r4, =gActiveBattler ldrb r0, [r4] - bl GetBankSide + bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0806C6EC diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8ab5ea2f1..8c39348e2 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -735,7 +735,7 @@ BattleScript_AlreadyPoisoned:: goto BattleScript_MoveEnd BattleScript_ImmunityProtected:: - copybyte gEffectBank, gBankDefender + copybyte gEffectBank, gBattleDefender setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention goto BattleScript_MoveEnd @@ -1055,7 +1055,7 @@ BattleScript_AlreadyParalyzed:: goto BattleScript_MoveEnd BattleScript_LimberProtected:: - copybyte gEffectBank, gBankDefender + copybyte gEffectBank, gBattleDefender setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention goto BattleScript_MoveEnd @@ -1513,7 +1513,7 @@ BattleScript_EffectCurse:: jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: - copybyte gBankDefender, gBankAttacker + copybyte gBattleDefender, gBattleAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation @@ -1534,7 +1534,7 @@ BattleScript_CurseTryDefence:: BattleScript_CurseEnd:: goto BattleScript_MoveEnd BattleScript_GhostCurse:: - jumpifbytenotequal gBankAttacker, gBankDefender, BattleScript_DoGhostCurse + jumpifbytenotequal gBattleAttacker, gBattleDefender, BattleScript_DoGhostCurse getmovetarget ATTACKER BattleScript_DoGhostCurse:: attackcanceler @@ -1603,7 +1603,7 @@ BattleScript_PerishSongLoop:: jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected BattleScript_PerishSongLoopIncrement:: addbyte sBANK, 0x1 - jumpifbytenotequal sBANK, gBattleBanksCount, BattleScript_PerishSongLoop + jumpifbytenotequal sBANK, gBattlersCount, BattleScript_PerishSongLoop goto BattleScript_MoveEnd BattleScript_PerishSongNotAffected:: @@ -2217,7 +2217,7 @@ BattleScript_EffectWillOWisp:: goto BattleScript_MoveEnd BattleScript_WaterVeilPrevents:: - copybyte gEffectBank, gBankDefender + copybyte gEffectBank, gBattleDefender setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention goto BattleScript_MoveEnd @@ -2598,11 +2598,11 @@ BattleScript_EffectTeeterDance:: attackcanceler attackstring ppreduce - setbyte gBankDefender, 0x0 + setbyte gBattleDefender, 0x0 BattleScript_TeeterDanceLoop:: movevaluescleanup setmoveeffect EFFECT_CONFUSION - jumpifbyteequal gBankAttacker, gBankDefender, BattleScript_TeeterDanceLoopIncrement + jumpifbyteequal gBattleAttacker, gBattleDefender, BattleScript_TeeterDanceLoopIncrement jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused @@ -2618,8 +2618,8 @@ BattleScript_TeeterDanceDoMoveEndIncrement:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 BattleScript_TeeterDanceLoopIncrement:: - addbyte gBankDefender, 0x1 - jumpifbytenotequal gBankDefender, gBattleBanksCount, BattleScript_TeeterDanceLoop + addbyte gBattleDefender, 0x1 + jumpifbytenotequal gBattleDefender, gBattlersCount, BattleScript_TeeterDanceLoop end BattleScript_TeeterDanceOwnTempoPrevents:: @@ -2935,7 +2935,7 @@ BattleScript_82DA908:: switchinanim GBANK_1, FALSE waitstate switchineffects 5 - jumpifbytenotequal gBank1, gBattleBanksCount, BattleScript_82DA908 + jumpifbytenotequal gBank1, gBattlersCount, BattleScript_82DA908 BattleScript_82DA92C:: end2 @@ -3228,7 +3228,7 @@ BattleScript_DamagingWeatherContinues:: playanimation2 ATTACKER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 BattleScript_DamagingWeatherLoop:: - copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 + copyarraywithindex gBattleAttacker, gBattleTurnOrder, gBattleCommunication, 0x1 weatherdamage jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement printfromtable gSandStormHailDmgStringIds @@ -3243,7 +3243,7 @@ BattleScript_DamagingWeatherLoop:: BattleScript_DamagingWeatherLoopIncrement:: jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd addbyte gBattleCommunication, 0x1 - jumpifbytenotequal gBattleCommunication, gBattleBanksCount, BattleScript_DamagingWeatherLoop + jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop BattleScript_DamagingWeatherContinuesEnd:: bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE end2 @@ -3521,7 +3521,7 @@ BattleScript_RapidSpinAway:: BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE waitmessage 0x40 - copybyte gBankDefender, sBANK + copybyte gBattleDefender, sBANK return BattleScript_LeechSeedFree:: @@ -4032,7 +4032,7 @@ BattleScript_WeatherFormChanges:: BattleScript_WeatherFormChangesLoop:: trycastformdatachange addbyte sBANK, 0x1 - jumpifbytenotequal sBANK, gBattleBanksCount, BattleScript_WeatherFormChangesLoop + jumpifbytenotequal sBANK, gBattlersCount, BattleScript_WeatherFormChangesLoop return BattleScript_CastformChange:: @@ -4053,7 +4053,7 @@ BattleScript_82DB4B8:: BattleScript_82DB4BE:: pause 0x20 BattleScript_82DB4C1:: - setbyte gBankDefender, 0x0 + setbyte gBattleDefender, 0x0 setstatchanger ATK, 1, TRUE BattleScript_82DB4CD:: trygetintimidatetarget BattleScript_82DB51B @@ -4068,7 +4068,7 @@ BattleScript_82DB4CD:: printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 BattleScript_82DB510:: - addbyte gBankDefender, 0x1 + addbyte gBattleDefender, 0x1 goto BattleScript_82DB4CD BattleScript_82DB51B:: return @@ -4474,7 +4474,7 @@ BattleScript_82DB887:: waitmessage 0x40 BattleScript_82DB89D:: addbyte gBattleCommunication + 1, 0x1 - jumpifbytenotequal gBattleCommunication + 1, gBattleBanksCount, BattleScript_82DB887 + jumpifbytenotequal gBattleCommunication + 1, gBattlersCount, BattleScript_82DB887 setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication + 1, 0x0 end2 diff --git a/include/battle.h b/include/battle.h index a437f41d4..eafa72098 100644 --- a/include/battle.h +++ b/include/battle.h @@ -11,46 +11,45 @@ #include "battle_bg.h" /* - * Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. * A battler may be in one of four positions on the field. The first bit determines * what side the battler is on, either the player's side or the opponent's side. * The second bit determines whether the pokemon is on the left or right of the * given side. Note that the opponent's mons are drawn opposite because the position - * numbers correspond to their perspective. The bank number is usually the same + * numbers correspond to their perspective. The battler number is usually the same * as the position, except in the case of link battles. * - * +---------------------- + - * | Opponent's side:| - * | 3 1 | - * | | - * | | - * |Player's side: | - * | 0 2 | - * ------------------------+ - * | | - * | | - * +-----------------------+ + * + ------------------------- + + * | Opponent's side | + * | 3 1 | + * | | + * | | + * | Player's side | + * | 0 2 | + * ----------------------------+ + * | | + * | | + * +---------------------------+ */ -#define BATTLE_BANKS_COUNT 4 +#define MAX_BATTLERS_COUNT 4 #define B_POSITION_PLAYER_LEFT 0 #define B_POSITION_OPPONENT_LEFT 1 #define B_POSITION_PLAYER_RIGHT 2 #define B_POSITION_OPPONENT_RIGHT 3 -#define B_POSITION_PARTNER(position) ((position) ^ 2) +#define B_POSITION_PARTNER(position) ((position) ^ 2) #define B_POSITION_OPPOSITE(position) ((position) ^ 1) -#define SIDE_PLAYER 0x0 -#define SIDE_OPPONENT 0x1 +#define B_SIDE_PLAYER 0 +#define B_SIDE_OPPONENT 1 -#define BIT_SIDE 0x1 -#define BIT_MON 0x2 +#define BIT_SIDE 1 +#define BIT_FLANK 2 -#define GET_BANK_POSITION(bank) (gBankPositions[bank]) -#define GET_BANK_SIDE(bank) (GetBankPosition(bank) & BIT_SIDE) -#define GET_BANK_SIDE2(bank) (GET_BANK_POSITION(bank) & BIT_SIDE) +#define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler]) +#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE) +#define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE) // Battle Type Flags @@ -133,8 +132,8 @@ extern u8 gBattleOutcome; #define STATUS2_LOCK_CONFUSE 0x00000C00 #define STATUS2_MULTIPLETURNS 0x00001000 #define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank -#define STATUS2_INFATUATED_WITH(bank) (gBitTable[bank] << 16) +#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler +#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16) #define STATUS2_FOCUS_ENERGY 0x00100000 #define STATUS2_TRANSFORMED 0x00200000 #define STATUS2_RECHARGE 0x00400000 @@ -148,7 +147,7 @@ extern u8 gBattleOutcome; #define STATUS2_DEFENSE_CURL 0x40000000 #define STATUS2_TORMENT 0x80000000 -// Seems like per-bank statuses. Not quite sure how to categorize these +// Seems like per-battler statuses. Not quite sure how to categorize these #define STATUS3_LEECHSEED_BANK 0x3 #define STATUS3_LEECHSEED 0x4 #define STATUS3_ALWAYS_HITS 0x18 // two bits @@ -169,7 +168,7 @@ extern u8 gBattleOutcome; #define STATUS3_TRACE 0x100000 #define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; // @@ -197,8 +196,8 @@ extern u32 gStatuses3[BATTLE_BANKS_COUNT]; #define HITMARKER_OBEYS 0x02000000 #define HITMARKER_x4000000 0x04000000 #define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) (gBitTable[bank] << 0x1C) -#define HITMARKER_UNK(bank) (0x10000000 << bank) +#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) +#define HITMARKER_UNK(battler) (0x10000000 << battler) extern u32 gHitMarker; @@ -339,7 +338,7 @@ struct TrainerMonNoItemDefaultMoves u16 species; }; -u8 GetBankSide(u8 bank); +u8 GetBattlerSide(u8 battler); struct TrainerMonItemDefaultMoves { @@ -434,7 +433,7 @@ struct DisableStruct /*0x1A*/ u8 unk1A[2]; }; -extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT]; +extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT]; struct ProtectStruct { @@ -474,7 +473,7 @@ struct ProtectStruct /* field_E */ u16 fieldE; }; -extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT]; +extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; struct SpecialStatus { @@ -496,7 +495,7 @@ struct SpecialStatus u8 field13; }; -extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT]; +extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; struct SideTimer { @@ -518,12 +517,12 @@ extern struct SideTimer gSideTimers[]; struct WishFutureKnock { - u8 futureSightCounter[BATTLE_BANKS_COUNT]; - u8 futureSightAttacker[BATTLE_BANKS_COUNT]; - s32 futureSightDmg[BATTLE_BANKS_COUNT]; - u16 futureSightMove[BATTLE_BANKS_COUNT]; - u8 wishCounter[BATTLE_BANKS_COUNT]; - u8 wishUserID[BATTLE_BANKS_COUNT]; + u8 futureSightCounter[MAX_BATTLERS_COUNT]; + u8 futureSightAttacker[MAX_BATTLERS_COUNT]; + s32 futureSightDmg[MAX_BATTLERS_COUNT]; + u16 futureSightMove[MAX_BATTLERS_COUNT]; + u8 wishCounter[MAX_BATTLERS_COUNT]; + u8 wishUserID[MAX_BATTLERS_COUNT]; u8 weatherDuration; u8 knockedOffPokes[2]; }; @@ -546,16 +545,16 @@ struct AI_ThinkingStruct struct UsedMoves { - u16 moves[BATTLE_BANKS_COUNT]; - u16 unknown[BATTLE_BANKS_COUNT]; + u16 moves[MAX_BATTLERS_COUNT]; + u16 unknown[MAX_BATTLERS_COUNT]; }; struct BattleHistory { - struct UsedMoves usedMoves[BATTLE_BANKS_COUNT]; - u8 abilities[BATTLE_BANKS_COUNT]; - u8 itemEffects[BATTLE_BANKS_COUNT]; - u16 trainerItems[BATTLE_BANKS_COUNT]; + struct UsedMoves usedMoves[MAX_BATTLERS_COUNT]; + u8 abilities[MAX_BATTLERS_COUNT]; + u8 itemEffects[MAX_BATTLERS_COUNT]; + u16 trainerItems[MAX_BATTLERS_COUNT]; u8 itemsNo; }; @@ -661,9 +660,9 @@ struct BattleStruct u16 expValue; u8 field_52; u8 sentInPokes; - bool8 selectionScriptFinished[BATTLE_BANKS_COUNT]; + bool8 selectionScriptFinished[MAX_BATTLERS_COUNT]; u8 field_58[4]; - u8 monToSwitchIntoId[BATTLE_BANKS_COUNT]; + u8 monToSwitchIntoId[MAX_BATTLERS_COUNT]; u8 field_60[4][3]; u8 runTries; u8 caughtMonNick[11]; @@ -675,8 +674,8 @@ struct BattleStruct u8 field_7D; u8 field_7E; u8 formToChangeInto; - u8 chosenMovePositions[BATTLE_BANKS_COUNT]; - u8 stateIdAfterSelScript[BATTLE_BANKS_COUNT]; + u8 chosenMovePositions[MAX_BATTLERS_COUNT]; + u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT]; u8 field_88; u8 field_89; u8 field_8A; @@ -709,12 +708,12 @@ struct BattleStruct u8 synchronizeMoveEffect; u8 field_B3; void (*savedCallback)(void); - u16 usedHeldItems[BATTLE_BANKS_COUNT]; + u16 usedHeldItems[MAX_BATTLERS_COUNT]; u8 chosenItem[4]; // why is this an u8? u8 AI_itemType[2]; u8 AI_itemFlags[2]; - u16 choicedMove[BATTLE_BANKS_COUNT]; - u16 changedItems[BATTLE_BANKS_COUNT]; + u16 choicedMove[MAX_BATTLERS_COUNT]; + u16 changedItems[MAX_BATTLERS_COUNT]; u8 intimidateBank; u8 switchInItemsCounter; u8 field_DA; @@ -722,7 +721,7 @@ struct BattleStruct u8 fillerDC[0xDF-0xDC]; u8 field_DF; u8 mirrorMoveArrays[32]; - u16 castformPalette[BATTLE_BANKS_COUNT][16]; + u16 castformPalette[MAX_BATTLERS_COUNT][16]; u8 field_180; u8 field_181; u8 field_182; @@ -735,7 +734,7 @@ struct BattleStruct u8 field_1A4[96]; u8 field_204[104]; u8 field_26C[40]; - u8 AI_monToSwitchIntoId[BATTLE_BANKS_COUNT]; + u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT]; u8 field_298[8]; u8 field_2A0; u8 field_2A1; @@ -839,7 +838,7 @@ struct BattleScripting u8 atk49_state; u8 bankWithAbility; u8 multihitMoveEffect; - u8 bank; + u8 battler; u8 animTurn; u8 animTargetsHit; u8 statChanger; @@ -871,9 +870,9 @@ enum }; // rom_80A5C6C -u8 GetBankSide(u8 bank); -u8 GetBankPosition(u8 bank); -u8 GetBankByPosition(u8 bank); +u8 GetBattlerSide(u8 bank); +u8 GetBattlerPosition(u8 bank); +u8 GetBattlerAtPosition(u8 bank); struct BattleSpriteInfo { diff --git a/include/battle_anim.h b/include/battle_anim.h index c208ee1a7..746e19bfe 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -47,7 +47,7 @@ extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT]; extern u8 gAnimMoveTurn; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT]; extern u8 gUnknown_02038440; void ClearBattleAnimationVars(void); diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 5dd9ecdc0..2ddc3fdfe 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -45,17 +45,17 @@ AI scripts. */ extern u32 gBattleTypeFlags; -extern u8 gActiveBank; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u8 gActiveBattler; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; -extern u16 gLastMoves[BATTLE_BANKS_COUNT]; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; +extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern u16 gSideStatuses[2]; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; extern u16 gDynamicBasePower; extern u8 gMoveResultFlags; extern s32 gBattleMoveDamage; @@ -352,7 +352,7 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) defaultScoreMoves >>= 1; } - moveLimitations = CheckMoveLimitations(gActiveBank, 0, 0xFF); + moveLimitations = CheckMoveLimitations(gActiveBattler, 0, 0xFF); // ignore moves that aren't possible to use for (i = 0; i < 4; i++) @@ -363,18 +363,18 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) AI_THINKING_STRUCT->simulatedRNG[i] = 100 - (Random() % 16); } gBattleResources->AI_ScriptsStack->size = 0; - sBank_AI = gActiveBank; + sBank_AI = gActiveBattler; // decide a random target bank in doubles if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gBankDefender = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender ^= BIT_MON; + gBattleDefender = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleDefender ^= BIT_FLANK; } // in singles there's only one choice else { - gBankDefender = sBank_AI ^ BIT_SIDE; + gBattleDefender = sBank_AI ^ BIT_SIDE; } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) @@ -491,7 +491,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) else BattleAI_SetupAIData(0xF); - gBankDefender = i; + gBattleDefender = i; if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE)) RecordLastUsedMoveByTarget(); @@ -542,7 +542,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) bestMovePointsForTarget[i] = mostViableMovesScores[0]; // don't use a move against ally if it has less than 100 pts - if (i == (sBank_AI ^ BIT_MON) && bestMovePointsForTarget[i] < 100) + if (i == (sBank_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100) { bestMovePointsForTarget[i] = -1; mostViableMovesScores[0] = mostViableMovesScores[0]; // needed to match @@ -573,8 +573,8 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) } } - gBankDefender = mostViableTargetsArray[Random() % mostViableTargetsNo]; - return actionOrMoveIndex[gBankDefender]; + gBattleDefender = mostViableTargetsArray[Random() % mostViableTargetsNo]; + return actionOrMoveIndex[gBattleDefender]; } static void BattleAI_DoAIProcessing(void) @@ -627,12 +627,12 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] == gLastMoves[gBankDefender]) + if (gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] == gLastMoves[gBattleDefender]) break; - if (gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] != gLastMoves[gBankDefender] // HACK: This redundant condition is a hack to make the asm match. - && gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] == 0) + if (gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] != gLastMoves[gBattleDefender] // HACK: This redundant condition is a hack to make the asm match. + && gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBankDefender].moves[i] = gLastMoves[gBankDefender]; + gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] = gLastMoves[gBattleDefender]; break; } } @@ -723,7 +723,7 @@ static void BattleAICmd_if_hp_less_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -738,7 +738,7 @@ static void BattleAICmd_if_hp_more_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -753,7 +753,7 @@ static void BattleAICmd_if_hp_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -768,7 +768,7 @@ static void BattleAICmd_if_hp_not_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -784,7 +784,7 @@ static void BattleAICmd_if_status(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -802,7 +802,7 @@ static void BattleAICmd_if_not_status(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -820,7 +820,7 @@ static void BattleAICmd_if_status2(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -838,7 +838,7 @@ static void BattleAICmd_if_not_status2(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -856,7 +856,7 @@ static void BattleAICmd_if_status3(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -874,7 +874,7 @@ static void BattleAICmd_if_not_status3(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; status = AIScriptRead32(gAIScriptPtr + 2); @@ -892,9 +892,9 @@ static void BattleAICmd_if_side_affecting(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; - side = GET_BANK_SIDE(bank); + side = GET_BATTLER_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); if ((gSideStatuses[side] & status) != 0) @@ -911,9 +911,9 @@ static void BattleAICmd_if_not_side_affecting(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; - side = GET_BANK_SIDE(bank); + side = GET_BATTLER_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); if ((gSideStatuses[side] & status) == 0) @@ -1126,13 +1126,13 @@ static void BattleAICmd_get_type(void) AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1; break; case AI_TYPE1_TARGET: // target primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankDefender].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleDefender].type1; break; case AI_TYPE2_USER: // AI user secondary type AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2; break; case AI_TYPE2_TARGET: // target secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBankDefender].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleDefender].type2; break; case AI_TYPE_MOVE: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -1149,11 +1149,11 @@ static u8 BattleAI_GetWantedBank(u8 bank) return sBank_AI; case AI_TARGET: default: - return gBankDefender; + return gBattleDefender; case AI_USER_PARTNER: - return sBank_AI ^ BIT_MON; + return sBank_AI ^ BIT_FLANK; case AI_TARGET_PARTNER: - return gBankDefender ^ BIT_MON; + return gBattleDefender ^ BIT_FLANK; } } @@ -1212,8 +1212,8 @@ static void BattleAICmd_get_how_powerful_move_is(void) && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1) { gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove]; - AI_CalcDmg(sBank_AI, gBankDefender); - TypeCalc(gCurrentMove, sBank_AI, gBankDefender); + AI_CalcDmg(sBank_AI, gBattleDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; if (moveDmgs[checkedMove] == 0) moveDmgs[checkedMove] = 1; @@ -1248,7 +1248,7 @@ static void BattleAICmd_get_last_used_bank_move(void) if (gAIScriptPtr[1] == AI_USER) AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; else - AI_THINKING_STRUCT->funcResult = gLastMoves[gBankDefender]; + AI_THINKING_STRUCT->funcResult = gLastMoves[gBattleDefender]; gAIScriptPtr += 2; } @@ -1271,7 +1271,7 @@ static void BattleAICmd_if_not_equal_(void) // same as if_not_equal static void BattleAICmd_if_user_goes(void) { - if (GetWhoStrikesFirst(sBank_AI, gBankDefender, TRUE) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBattleDefender, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1279,7 +1279,7 @@ static void BattleAICmd_if_user_goes(void) static void BattleAICmd_if_user_doesnt_go(void) { - if (GetWhoStrikesFirst(sBank_AI, gBankDefender, TRUE) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBattleDefender, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1305,9 +1305,9 @@ static void BattleAICmd_count_usable_party_mons(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -1316,8 +1316,8 @@ static void BattleAICmd_count_usable_party_mons(void) { u32 position; bankOnField1 = gBattlePartyID[bank]; - position = GetBankPosition(bank) ^ BIT_MON; - bankOnField2 = gBattlePartyID[GetBankByPosition(position)]; + position = GetBattlerPosition(bank) ^ BIT_FLANK; + bankOnField2 = gBattlePartyID[GetBattlerAtPosition(position)]; } else // in singles there's only one bank by side { @@ -1358,9 +1358,9 @@ static void BattleAICmd_get_ability(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; - if (gActiveBank != bank) + if (gActiveBattler != bank) { if (BATTLE_HISTORY->abilities[bank] != 0) { @@ -1493,7 +1493,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void) if (gCurrentMove) { - TypeCalc(gCurrentMove, sBank_AI, gBankDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1528,7 +1528,7 @@ static void BattleAICmd_if_type_effectiveness(void) gBattleMoveDamage = AI_EFFECTIVENESS_x1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - TypeCalc(gCurrentMove, sBank_AI, gBankDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); if (gBattleMoveDamage == 120) gBattleMoveDamage = AI_EFFECTIVENESS_x2; @@ -1572,11 +1572,11 @@ static void BattleAICmd_if_status_in_party(void) bank = sBank_AI; break; default: - bank = gBankDefender; + bank = gBattleDefender; break; } - party = (GetBankSide(bank) == SIDE_PLAYER) ? gPlayerParty : gEnemyParty; + party = (GetBattlerSide(bank) == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -1609,11 +1609,11 @@ static void BattleAICmd_if_status_not_in_party(void) bank = sBank_AI; break; default: - bank = gBankDefender; + bank = gBattleDefender; break; } - party = (GetBankSide(bank) == SIDE_PLAYER) ? gPlayerParty : gEnemyParty; + party = (GetBattlerSide(bank) == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -1669,7 +1669,7 @@ static void BattleAICmd_if_stat_level_less_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1684,7 +1684,7 @@ static void BattleAICmd_if_stat_level_more_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1699,7 +1699,7 @@ static void BattleAICmd_if_stat_level_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1714,7 +1714,7 @@ static void BattleAICmd_if_stat_level_not_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1736,8 +1736,8 @@ static void BattleAICmd_if_can_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBankDefender); - TypeCalc(gCurrentMove, sBank_AI, gBankDefender); + AI_CalcDmg(sBank_AI, gBattleDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gBankDefender].hp <= gBattleMoveDamage) + if (gBattleMons[gBattleDefender].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1765,14 +1765,14 @@ static void BattleAICmd_if_cant_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBankDefender); - TypeCalc(gCurrentMove, sBank_AI, gBankDefender); + AI_CalcDmg(sBank_AI, gBattleDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1802,7 +1802,7 @@ static void BattleAICmd_if_has_move(void) return; } case AI_USER_PARTNER: - if (gBattleMons[sBank_AI ^ BIT_MON].hp == 0) + if (gBattleMons[sBank_AI ^ BIT_FLANK].hp == 0) { gAIScriptPtr += 8; return; @@ -1811,7 +1811,7 @@ static void BattleAICmd_if_has_move(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI ^ BIT_MON].moves[i] == *movePtr) + if (gBattleMons[sBank_AI ^ BIT_FLANK].moves[i] == *movePtr) break; } } @@ -1829,7 +1829,7 @@ static void BattleAICmd_if_has_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i] == *movePtr) break; } if (i == 4) @@ -1873,7 +1873,7 @@ static void BattleAICmd_if_doesnt_have_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i] == *movePtr) break; } if (i != 4) @@ -1911,8 +1911,8 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - // UB: checks sBank_AI instead of gBankDefender - if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankDefender].moves[i]].effect == gAIScriptPtr[2]) + // UB: checks sBank_AI instead of gBattleDefender + if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -1945,7 +1945,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankDefender].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankDefender].moves[i]].effect == gAIScriptPtr[2]) + if (BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1963,7 +1963,7 @@ static void BattleAICmd_if_any_move_disabled_or_encored(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; if (gAIScriptPtr[2] == 0) { @@ -1993,7 +1993,7 @@ static void BattleAICmd_if_curr_move_disabled_or_encored(void) switch (gAIScriptPtr[1]) { case 0: - if (gDisableStructs[gActiveBank].disabledMove == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBattler].disabledMove == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2001,7 +2001,7 @@ static void BattleAICmd_if_curr_move_disabled_or_encored(void) gAIScriptPtr += 6; return; case 1: - if (gDisableStructs[gActiveBank].encoredMove == AI_THINKING_STRUCT->moveConsidered) + if (gDisableStructs[gActiveBattler].encoredMove == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2041,9 +2041,9 @@ static void BattleAICmd_get_hold_effect(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; - if (gActiveBank != bank) + if (gActiveBattler != bank) AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]); else AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[bank].item); @@ -2079,7 +2079,7 @@ static void BattleAICmd_get_gender(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality); @@ -2093,7 +2093,7 @@ static void BattleAICmd_is_first_turn_for(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn; @@ -2107,7 +2107,7 @@ static void BattleAICmd_get_stockpile_count(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter; @@ -2128,7 +2128,7 @@ static void BattleAICmd_get_used_held_item(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; // This is likely a leftover from Ruby's code and its ugly ewram access #ifdef NONMATCHING @@ -2168,7 +2168,7 @@ static void BattleAICmd_get_protect_count(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBankDefender; + bank = gBattleDefender; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses; @@ -2221,7 +2221,7 @@ static void BattleAICmd_if_level_cond(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[sBank_AI].level > gBattleMons[gBankDefender].level) + if (gBattleMons[sBank_AI].level > gBattleMons[gBattleDefender].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2229,7 +2229,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[sBank_AI].level < gBattleMons[gBankDefender].level) + if (gBattleMons[sBank_AI].level < gBattleMons[gBattleDefender].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2237,7 +2237,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[sBank_AI].level == gBattleMons[gBankDefender].level) + if (gBattleMons[sBank_AI].level == gBattleMons[gBattleDefender].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2249,7 +2249,7 @@ static void BattleAICmd_if_level_cond(void) static void BattleAICmd_if_target_taunted(void) { - if (gDisableStructs[gBankDefender].tauntTimer1 != 0) + if (gDisableStructs[gBattleDefender].tauntTimer1 != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2257,7 +2257,7 @@ static void BattleAICmd_if_target_taunted(void) static void BattleAICmd_if_target_not_taunted(void) { - if (gDisableStructs[gBankDefender].tauntTimer1 == 0) + if (gDisableStructs[gBattleDefender].tauntTimer1 == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2265,7 +2265,7 @@ static void BattleAICmd_if_target_not_taunted(void) static void BattleAICmd_if_target_is_ally(void) { - if ((sBank_AI & BIT_SIDE) == (gBankDefender & BIT_SIDE)) + if ((sBank_AI & BIT_SIDE) == (gBattleDefender & BIT_SIDE)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 60212f849..7d187559b 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -10,14 +10,14 @@ #include "constants/items.h" #include "pokemon_item_effects.h" -extern u8 gActiveBank; -extern u8 gAbsentBankFlags; +extern u8 gActiveBattler; +extern u8 gAbsentBattlerFlags; extern u32 gBattleTypeFlags; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; -extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT]; +extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gDynamicBasePower; extern u8 gMoveResultFlags; extern u8 gCritMultiplier; @@ -35,10 +35,10 @@ static bool8 ShouldUseItem(void); static bool8 ShouldSwitchIfPerishSong(void) { - if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG - && gDisableStructs[gActiveBank].perishSongTimer1 == 0) + if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG + && gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -60,15 +60,15 @@ static bool8 ShouldSwitchIfWonderGuard(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) return FALSE; - opposingPosition = B_POSITION_OPPOSITE(GetBankPosition(gActiveBank)); + opposingPosition = B_POSITION_OPPOSITE(GetBattlerPosition(gActiveBattler)); - if (gBattleMons[GetBankByPosition(opposingPosition)].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[GetBattlerAtPosition(opposingPosition)].ability != ABILITY_WONDER_GUARD) return FALSE; // check if pokemon has a super effective move - for (opposingBank = GetBankByPosition(opposingPosition), i = 0; i < 4; i++) + for (opposingBank = GetBattlerAtPosition(opposingPosition), i = 0; i < 4; i++) { - move = gBattleMons[gActiveBank].moves[i]; + move = gBattleMons[gActiveBattler].moves[i]; if (move == MOVE_NONE) continue; @@ -80,7 +80,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) // get party information if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if ((gActiveBank & BIT_MON) == 0) + if ((gActiveBattler & BIT_FLANK) == 0) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -90,7 +90,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) firstId = 0, lastId = 6; } - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -104,13 +104,13 @@ static bool8 ShouldSwitchIfWonderGuard(void) continue; if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) continue; - if (i == gBattlePartyID[gActiveBank]) + if (i == gBattlePartyID[gActiveBattler]) continue; GetMonData(&party[i], MON_DATA_SPECIES); // unused return value GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value - for (opposingBank = GetBankByPosition(opposingPosition), j = 0; j < 4; j++) + for (opposingBank = GetBattlerAtPosition(opposingPosition), j = 0; j < 4; j++) { move = GetMonData(&party[i], MON_DATA_MOVE1 + j); if (move == MOVE_NONE) @@ -120,7 +120,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % 3 < 2) { // we found a mon - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -141,42 +141,42 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) return FALSE; - if (gLastLandedMoves[gActiveBank] == 0) + if (gLastLandedMoves[gActiveBattler] == 0) return FALSE; - if (gLastLandedMoves[gActiveBank] == 0xFFFF) + if (gLastLandedMoves[gActiveBattler] == 0xFFFF) return FALSE; - if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0) + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)))]) - bankIn2 = gActiveBank; + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler)))]) + bankIn2 = gActiveBattler; else - bankIn2 = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank))); + bankIn2 = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler))); } else { - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; } - if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_FIRE) + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_FIRE) absorbingTypeAbility = ABILITY_FLASH_FIRE; - else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_WATER) + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_WATER) absorbingTypeAbility = ABILITY_WATER_ABSORB; - else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_ELECTRIC) + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_ELECTRIC) absorbingTypeAbility = ABILITY_VOLT_ABSORB; else return FALSE; - if (gBattleMons[gActiveBank].ability == absorbingTypeAbility) + if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility) return FALSE; if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if ((gActiveBank & BIT_MON) == 0) + if ((gActiveBattler & BIT_FLANK) == 0) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -186,7 +186,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) firstId = 0, lastId = 6; } - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -220,7 +220,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (absorbingTypeAbility == monAbility && Random() & 1) { // we found a mon - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -231,22 +231,22 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) static bool8 ShouldSwitchIfNaturalCure(void) { - if (!(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)) + if (!(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)) return FALSE; - if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE) + if (gBattleMons[gActiveBattler].ability != ABILITY_NATURAL_CURE) return FALSE; - if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) + if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 2) return FALSE; - if ((gLastLandedMoves[gActiveBank] == 0 || gLastLandedMoves[gActiveBank] == 0xFFFF) && Random() & 1) + if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1) { - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } - else if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0 && Random() & 1) + else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1) { - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -257,7 +257,7 @@ static bool8 ShouldSwitchIfNaturalCure(void) return TRUE; if (Random() & 1) { - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -273,14 +273,14 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) u8 moveFlags; u16 move; - opposingPosition = B_POSITION_OPPOSITE(GetBankPosition(gActiveBank)); - opposingBank = GetBankByPosition(opposingPosition); + opposingPosition = B_POSITION_OPPOSITE(GetBattlerPosition(gActiveBattler)); + opposingBank = GetBattlerAtPosition(opposingPosition); - if (!(gAbsentBankFlags & gBitTable[opposingBank])) + if (!(gAbsentBattlerFlags & gBitTable[opposingBank])) { for (i = 0; i < 4; i++) { - move = gBattleMons[gActiveBank].moves[i]; + move = gBattleMons[gActiveBattler].moves[i]; if (move == MOVE_NONE) continue; @@ -297,13 +297,13 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) return FALSE; - opposingBank = GetBankByPosition(B_POSITION_PARTNER(opposingPosition)); + opposingBank = GetBattlerAtPosition(B_POSITION_PARTNER(opposingPosition)); - if (!(gAbsentBankFlags & gBitTable[opposingBank])) + if (!(gAbsentBattlerFlags & gBitTable[opposingBank])) { for (i = 0; i < 4; i++) { - move = gBattleMons[gActiveBank].moves[i]; + move = gBattleMons[gActiveBattler].moves[i]; if (move == MOVE_NONE) continue; @@ -328,8 +328,8 @@ static bool8 AreStatsRaised(void) for (i = 0; i < BATTLE_STATS_NO; i++) { - if (gBattleMons[gActiveBank].statStages[i] > 6) - buffedStatsValue += gBattleMons[gActiveBank].statStages[i] - 6; + if (gBattleMons[gActiveBattler].statStages[i] > 6) + buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - 6; } return (buffedStatsValue > 3); @@ -345,32 +345,32 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) u16 move; u8 moveFlags; - if (gLastLandedMoves[gActiveBank] == 0) + if (gLastLandedMoves[gActiveBattler] == 0) return FALSE; - if (gLastLandedMoves[gActiveBank] == 0xFFFF) + if (gLastLandedMoves[gActiveBattler] == 0xFFFF) return FALSE; - if (gLastHitBy[gActiveBank] == 0xFF) + if (gLastHitBy[gActiveBattler] == 0xFF) return FALSE; - if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0) + if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank)))]) - bankIn2 = gActiveBank; + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler)))]) + bankIn2 = gActiveBattler; else - bankIn2 = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gActiveBank))); + bankIn2 = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler))); } else { - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if ((gActiveBank & BIT_MON) == 0) + if ((gActiveBattler & BIT_FLANK) == 0) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -380,7 +380,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) firstId = 0, lastId = 6; } - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) else monAbility = gBaseStats[species].ability1; - moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBank], species, monAbility); + moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBattler], species, monAbility); if (moveFlags & flags) { - bankIn1 = gLastHitBy[gActiveBank]; + bankIn1 = gLastHitBy[gActiveBattler]; for (j = 0; j < 4; j++) { @@ -425,7 +425,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) { - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -446,19 +446,19 @@ static bool8 ShouldSwitch(void) s32 i; s32 availableToSwitch; - if (gBattleMons[*(activeBankPtr = &gActiveBank)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + if (gBattleMons[*(activeBankPtr = &gActiveBattler)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) return FALSE; - if (gStatuses3[gActiveBank] & STATUS3_ROOTED) + if (gStatuses3[gActiveBattler] & STATUS3_ROOTED) return FALSE; - if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0)) return FALSE; - if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0)) return FALSE; // misses the flying or levitate check if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0)) { - if (gBattleMons[gActiveBank].type1 == TYPE_STEEL) + if (gBattleMons[gActiveBattler].type1 == TYPE_STEEL) return FALSE; - if (gBattleMons[gActiveBank].type2 == TYPE_STEEL) + if (gBattleMons[gActiveBattler].type2 == TYPE_STEEL) return FALSE; } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) @@ -468,10 +468,10 @@ static bool8 ShouldSwitch(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = *activeBankPtr; - if (gAbsentBankFlags & gBitTable[GetBankByPosition(GetBankPosition(*activeBankPtr) ^ BIT_MON)]) + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(*activeBankPtr) ^ BIT_FLANK)]) bankIn2 = *activeBankPtr; else - bankIn2 = GetBankByPosition(GetBankPosition(*activeBankPtr) ^ BIT_MON); + bankIn2 = GetBattlerAtPosition(GetBattlerPosition(*activeBankPtr) ^ BIT_FLANK); } else { @@ -481,7 +481,7 @@ static bool8 ShouldSwitch(void) if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if ((gActiveBank & BIT_MON) == 0) + if ((gActiveBattler & BIT_FLANK) == 0) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -491,7 +491,7 @@ static bool8 ShouldSwitch(void) firstId = 0, lastId = 6; } - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -543,9 +543,9 @@ void AI_TrySwitchOrUseItem(void) u8 bankIn1, bankIn2; s32 firstId; s32 lastId; // + 1 - u8 bankIdentity = GetBankPosition(gActiveBank); + u8 bankIdentity = GetBattlerPosition(gActiveBattler); - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -554,25 +554,25 @@ void AI_TrySwitchOrUseItem(void) { if (ShouldSwitch()) { - if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) == 6) + if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6) { s32 monToSwitchId = GetMostSuitableMonToSwitchInto(); if (monToSwitchId == 6) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - bankIn1 = GetBankByPosition(bankIdentity); + bankIn1 = GetBattlerAtPosition(bankIdentity); bankIn2 = bankIn1; } else { - bankIn1 = GetBankByPosition(bankIdentity); - bankIn2 = GetBankByPosition(bankIdentity ^ BIT_MON); + bankIn1 = GetBattlerAtPosition(bankIdentity); + bankIn2 = GetBattlerAtPosition(bankIdentity ^ BIT_FLANK); } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if ((gActiveBank & BIT_MON) == 0) + if ((gActiveBattler & BIT_FLANK) == 0) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -599,10 +599,10 @@ void AI_TrySwitchOrUseItem(void) } } - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = monToSwitchId; + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = monToSwitchId; } - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler); return; } else if (ShouldUseItem()) @@ -611,7 +611,7 @@ void AI_TrySwitchOrUseItem(void) } } - EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBank ^ BIT_SIDE) << 8); + EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); } static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var) @@ -651,34 +651,34 @@ u8 GetMostSuitableMonToSwitchInto(void) u8 invalidMons; u16 move; - if (*(gBattleStruct->monToSwitchIntoId + gActiveBank) != 6) - return *(gBattleStruct->monToSwitchIntoId + gActiveBank); + if (*(gBattleStruct->monToSwitchIntoId + gActiveBattler) != 6) + return *(gBattleStruct->monToSwitchIntoId + gActiveBattler); if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - return gBattlePartyID[gActiveBank] + 1; + return gBattlePartyID[gActiveBattler] + 1; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)]) - bankIn2 = gActiveBank; + bankIn1 = gActiveBattler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + bankIn2 = gActiveBattler; else - bankIn2 = GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON); + bankIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); // UB: It considers the opponent only player's side even though it can battle alongside player; - opposingBank = Random() & BIT_MON; - if (gAbsentBankFlags & gBitTable[opposingBank]) - opposingBank ^= BIT_MON; + opposingBank = Random() & BIT_FLANK; + if (gAbsentBattlerFlags & gBitTable[opposingBank]) + opposingBank ^= BIT_FLANK; } else { - opposingBank = GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_SIDE); - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; + opposingBank = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_SIDE); + bankIn1 = gActiveBattler; + bankIn2 = gActiveBattler; } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if ((gActiveBank & BIT_MON) == 0) + if ((gActiveBattler & BIT_FLANK) == 0) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -688,7 +688,7 @@ u8 GetMostSuitableMonToSwitchInto(void) firstId = 0, lastId = 6; } - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -734,7 +734,7 @@ u8 GetMostSuitableMonToSwitchInto(void) for (i = 0; i < 4; i++) { move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); - if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVE_RESULT_SUPER_EFFECTIVE) + if (move != MOVE_NONE && TypeCalc(move, gActiveBattler, opposingBank) & MOVE_RESULT_SUPER_EFFECTIVE) break; } @@ -779,8 +779,8 @@ u8 GetMostSuitableMonToSwitchInto(void) gBattleMoveDamage = 0; if (move != MOVE_NONE && gBattleMoves[move].power != 1) { - AI_CalcDmg(gActiveBank, opposingBank); - TypeCalc(move, gActiveBank, opposingBank); + AI_CalcDmg(gActiveBattler, opposingBank); + TypeCalc(move, gActiveBattler, opposingBank); } if (bestDmg < gBattleMoveDamage) { @@ -817,10 +817,10 @@ static bool8 ShouldUseItem(void) u8 validMons = 0; bool8 shouldUse = FALSE; - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT) return FALSE; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -855,14 +855,14 @@ static bool8 ShouldUseItem(void) else itemEffects = gItemEffectTable[item - 13]; - *(gBattleStruct->AI_itemType + gActiveBank / 2) = GetAI_ItemType(item, itemEffects); + *(gBattleStruct->AI_itemType + gActiveBattler / 2) = GetAI_ItemType(item, itemEffects); - switch (*(gBattleStruct->AI_itemType + gActiveBank / 2)) + switch (*(gBattleStruct->AI_itemType + gActiveBattler / 2)) { case AI_ITEM_FULL_RESTORE: - if (gBattleMons[gActiveBank].hp >= gBattleMons[gActiveBank].maxHP / 4) + if (gBattleMons[gActiveBattler].hp >= gBattleMons[gActiveBattler].maxHP / 4) break; - if (gBattleMons[gActiveBank].hp == 0) + if (gBattleMons[gActiveBattler].hp == 0) break; shouldUse = TRUE; break; @@ -870,65 +870,65 @@ static bool8 ShouldUseItem(void) paramOffset = GetItemEffectParamOffset(item, 4, 4); if (paramOffset == 0) break; - if (gBattleMons[gActiveBank].hp == 0) + if (gBattleMons[gActiveBattler].hp == 0) break; - if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 4 || gBattleMons[gActiveBank].maxHP - gBattleMons[gActiveBank].hp > itemEffects[paramOffset]) + if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 4 || gBattleMons[gActiveBattler].maxHP - gBattleMons[gActiveBattler].hp > itemEffects[paramOffset]) shouldUse = TRUE; break; case AI_ITEM_CURE_CONDITION: - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0; - if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0; + if (itemEffects[3] & 0x20 && gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) { - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; shouldUse = TRUE; } - if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS1_POISON || gBattleMons[gActiveBank].status1 & STATUS1_TOXIC_POISON)) + if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON)) { - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x10; shouldUse = TRUE; } - if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS1_BURN) + if (itemEffects[3] & 0x8 && gBattleMons[gActiveBattler].status1 & STATUS1_BURN) { - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; shouldUse = TRUE; } - if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS1_FREEZE) + if (itemEffects[3] & 0x4 && gBattleMons[gActiveBattler].status1 & STATUS1_FREEZE) { - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; shouldUse = TRUE; } - if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS1_PARALYSIS) + if (itemEffects[3] & 0x2 && gBattleMons[gActiveBattler].status1 & STATUS1_PARALYSIS) { - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; shouldUse = TRUE; } - if (itemEffects[3] & 0x1 && gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + if (itemEffects[3] & 0x1 && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) { - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; shouldUse = TRUE; } break; case AI_ITEM_X_STAT: - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0; - if (gDisableStructs[gActiveBank].isFirstTurn == 0) + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0; + if (gDisableStructs[gActiveBattler].isFirstTurn == 0) break; if (itemEffects[0] & 0xF) - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; if (itemEffects[1] & 0xF0) - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; if (itemEffects[1] & 0xF) - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; if (itemEffects[2] & 0xF) - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; if (itemEffects[2] & 0xF0) - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; if (itemEffects[0] & 0x30) - *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x80; + *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x80; shouldUse = TRUE; break; case AI_ITEM_GUARD_SPECS: - bankSide = GetBankSide(gActiveBank); - if (gDisableStructs[gActiveBank].isFirstTurn != 0 && gSideTimers[bankSide].mistTimer == 0) + bankSide = GetBattlerSide(gActiveBattler); + if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[bankSide].mistTimer == 0) shouldUse = TRUE; break; case AI_ITEM_NOT_RECOGNIZABLE: @@ -938,7 +938,7 @@ static bool8 ShouldUseItem(void) if (shouldUse) { EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); - *(gBattleStruct->chosenItem + (gActiveBank / 2) * 2) = item; + *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2) = item; gBattleResources->battleHistory->trainerItems[i] = 0; return shouldUse; } diff --git a/src/battle_anim.c b/src/battle_anim.c index c1051f93a..93d4de7b3 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -25,8 +25,8 @@ #define ANIM_SPRITE_INDEX_COUNT 8 -extern u8 gBankAttacker; -extern u8 gBankDefender; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; extern u16 gBattle_WIN1H; @@ -35,8 +35,8 @@ extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; @@ -132,7 +132,7 @@ EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; EWRAM_DATA static u16 sAnimMoveIndex = 0; // set but unused. EWRAM_DATA u8 gAnimBankAttacker = 0; EWRAM_DATA u8 gAnimBankTarget = 0; -EWRAM_DATA u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT] = {0}; +EWRAM_DATA u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gUnknown_02038440 = 0; // const rom data @@ -221,8 +221,8 @@ void ClearBattleAnimationVars(void) void DoMoveAnim(u16 move) { - gAnimBankAttacker = gBankAttacker; - gAnimBankTarget = gBankDefender; + gAnimBankAttacker = gBattleAttacker; + gAnimBankTarget = gBattleDefender; LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE); } @@ -234,9 +234,9 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo { sub_80A8278(); UpdateOamPriorityInAllHealthboxes(0); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - if (GetBankSide(i) != 0) + if (GetBattlerSide(i) != 0) gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES); else gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES); @@ -613,7 +613,7 @@ static void ScriptCmd_monbg(void) if (IsAnimBankSpriteVisible(bank)) { - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else @@ -629,10 +629,10 @@ static void ScriptCmd_monbg(void) } - bank ^= BIT_MON; + bank ^= BIT_FLANK; if (IsAnimBankSpriteVisible(bank)) { - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else @@ -718,7 +718,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) if (IsContest()) bankIdentity = 0; else - bankIdentity = GetBankPosition(bank); + bankIdentity = GetBattlerPosition(bank); sub_8118FBC(1, 0, 0, bankIdentity, unknownStruct.unk8, unknownStruct.unk0, unknownStruct.unk4, unknownStruct.unkA); @@ -750,7 +750,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], 0x90, 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + 0x120), 0x20); - sub_8118FBC(2, 0, 0, GetBankPosition(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA); + sub_8118FBC(2, 0, 0, GetBattlerPosition(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA); } } @@ -876,7 +876,7 @@ static void ScriptCmd_clearmonbg(void) if (sMonAnimTaskIdArray[0] != 0xFF) gSprites[gBankSpriteIds[bank]].invisible = 0; if (animBankId > 1 && sMonAnimTaskIdArray[1] != 0xFF) - gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0; + gSprites[gBankSpriteIds[bank ^ BIT_FLANK]].invisible = 0; else animBankId = 0; @@ -893,7 +893,7 @@ static void sub_80A4980(u8 taskId) if (gTasks[taskId].data[1] != 1) { u8 to_BG2; - u8 position = GetBankPosition(gTasks[taskId].data[2]); + u8 position = GetBattlerPosition(gTasks[taskId].data[2]); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) to_BG2 = FALSE; else @@ -937,7 +937,7 @@ static void ScriptCmd_monbg_22(void) if (IsAnimBankSpriteVisible(bank)) { - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else @@ -946,10 +946,10 @@ static void ScriptCmd_monbg_22(void) sub_80A438C(bank, toBG_2, FALSE); } - bank ^= BIT_MON; + bank ^= BIT_FLANK; if (animBankId > 1 && IsAnimBankSpriteVisible(bank)) { - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else @@ -982,8 +982,8 @@ static void ScriptCmd_clearmonbg_23(void) if (IsAnimBankSpriteVisible(bank)) gSprites[gBankSpriteIds[bank]].invisible = 0; - if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON)) - gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0; + if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_FLANK)) + gSprites[gBankSpriteIds[bank ^ BIT_FLANK]].invisible = 0; else animBankId = 0; @@ -1001,7 +1001,7 @@ static void sub_80A4BB0(u8 taskId) { bool8 toBG_2; u8 bank = gTasks[taskId].data[2]; - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) toBG_2 = FALSE; else @@ -1009,7 +1009,7 @@ static void sub_80A4BB0(u8 taskId) if (IsAnimBankSpriteVisible(bank)) sub_80A477C(toBG_2); - if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON)) + if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_FLANK)) sub_80A477C(toBG_2 ^ 1); DestroyTask(taskId); @@ -1145,7 +1145,7 @@ static void ScriptCmd_fadetobgfromset(void) if (IsContest()) gTasks[taskId].tBackgroundId = bg3; - else if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + else if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) gTasks[taskId].tBackgroundId = bg2; else gTasks[taskId].tBackgroundId = bg1; @@ -1272,7 +1272,7 @@ s8 BattleAnimAdjustPanning(s8 pan) { if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].statusAnimActive) { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) pan = PAN_SIDE_OPPONENT; else pan = PAN_SIDE_PLAYER; @@ -1282,9 +1282,9 @@ s8 BattleAnimAdjustPanning(s8 pan) if (gAnimBankAttacker != gAnimBankTarget || gAnimBankAttacker != 2 || pan != PAN_SIDE_OPPONENT) pan *= -1; } - else if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER) + else if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_PLAYER) { - if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER) + if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) { if (pan == PAN_SIDE_OPPONENT) pan = PAN_SIDE_PLAYER; @@ -1292,7 +1292,7 @@ s8 BattleAnimAdjustPanning(s8 pan) pan *= -1; } } - else if (GetBankSide(gAnimBankTarget) == SIDE_OPPONENT) + else if (GetBattlerSide(gAnimBankTarget) == B_SIDE_OPPONENT) { if (pan == PAN_SIDE_PLAYER) pan = PAN_SIDE_OPPONENT; @@ -1314,14 +1314,14 @@ s8 BattleAnimAdjustPanning2(s8 pan) { if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].statusAnimActive) { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) pan = PAN_SIDE_OPPONENT; else pan = PAN_SIDE_PLAYER; } else { - if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER || IsContest()) + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER || IsContest()) pan = -pan; } return pan; @@ -1705,7 +1705,7 @@ static void ScriptCmd_monbgprio_28(void) else bank = gAnimBankAttacker; - bankIdentity = GetBankPosition(bank); + bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT)) { SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); @@ -1731,14 +1731,14 @@ static void ScriptCmd_monbgprio_2A(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; - if (GetBankSide(gAnimBankAttacker) != GetBankSide(gAnimBankTarget)) + if (GetBattlerSide(gAnimBankAttacker) != GetBattlerSide(gAnimBankTarget)) { if (wantedBank != ANIM_ATTACKER) bank = gAnimBankTarget; else bank = gAnimBankAttacker; - bankIdentity = GetBankPosition(bank); + bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT)) { SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); @@ -1778,7 +1778,7 @@ static void ScriptCmd_doublebattle_2D(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + && GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { if (wantedBank == ANIM_ATTACKER) { @@ -1813,7 +1813,7 @@ static void ScriptCmd_doublebattle_2E(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) + && GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) { if (wantedBank == ANIM_ATTACKER) { diff --git a/src/battle_bg.c b/src/battle_bg.c index 4bb1e65a9..cb106adae 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -363,7 +363,7 @@ void sub_8035D74(u8 taskId) case 0: if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { name = gLinkPlayers[i].name; linkPlayer = &gLinkPlayers[i]; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 1733ee966..0c7d929a4 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -25,32 +25,32 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gUnknown_020243FC; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct UnusedControllerStruct gUnknown_02022D0C; extern u16 gTrainerBattleOpponent_A; @@ -203,15 +203,15 @@ static void nullsub_28(void) void SetControllerToLinkOpponent(void) { - gBattleBankFunc[gActiveBank] = LinkOpponentBufferRunCommand; + gBattlerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand; } static void LinkOpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sLinkOpponentBufferCommands)) - sLinkOpponentBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkOpponentBufferCommands)) + sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkOpponentBufferExecCompleted(); } @@ -219,32 +219,32 @@ static void LinkOpponentBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkOpponentBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkOpponentBufferExecCompleted(); } static void sub_8064470(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); LinkOpponentBufferExecCompleted(); } } static void sub_80644D8(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; LinkOpponentBufferExecCompleted(); } } @@ -256,13 +256,13 @@ static void sub_8064520(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) r8 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -271,39 +271,39 @@ static void sub_8064520(void) if (r8) { - if (r4 || !IsAnimBankSpriteVisible(gActiveBank ^ BIT_MON)) + if (r4 || !IsAnimBankSpriteVisible(gActiveBattler ^ BIT_FLANK)) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) return; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; - if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_80644D8; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_80644D8; } } @@ -311,48 +311,48 @@ static void sub_8064734(void) { bool32 r10 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); } if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) { - sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -361,56 +361,56 @@ static void sub_8064734(void) } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; r10 = TRUE; } if (r10) { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { - if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 1) + if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 1) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; } if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - SetBankEnemyShadowSpriteCallback(gActiveBank ^ BIT_MON, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattleBankFunc[gActiveBank] = sub_8064520; + gBattlerFuncs[gActiveBattler] = sub_8064520; } } } static void sub_8064B04(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); } else { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); LinkOpponentBufferExecCompleted(); @@ -421,13 +421,13 @@ static void sub_8064B04(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { @@ -437,21 +437,21 @@ static void CompleteOnHealthbarDone(void) static void sub_8064C14(void) { - if (!gSprites[gBankSpriteIds[gActiveBank]].inUse) + if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) { - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } static void sub_8064C58(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - EnemyShadowCallbackToSetInvisible(gActiveBank); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + EnemyShadowCallbackToSetInvisible(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -464,7 +464,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -483,21 +483,21 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_8064D60(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_8064DD0; + gBattlerFuncs[gActiveBattler] = sub_8064DD0; } } static void sub_8064DD0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive && !IsCryPlayingOrClearCrySongs()) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - || gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy_2) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + || gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); LinkOpponentBufferExecCompleted(); @@ -507,67 +507,67 @@ static void sub_8064DD0(void) static void sub_8064E50(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); - CopyBattleSpriteInvisibility(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_8064D60; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + CopyBattleSpriteInvisibility(gActiveBattler); + gBattlerFuncs[gActiveBattler] = sub_8064D60; } } static void sub_8064F40(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8064E50; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerFuncs[gActiveBattler] = sub_8064E50; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) LinkOpponentBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) LinkOpponentBufferExecCompleted(); } static void LinkOpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = LinkOpponentBufferRunCommand; + gBattlerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } @@ -578,13 +578,13 @@ static void LinkOpponentHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyLinkOpponentMonData(gBattlePartyID[gActiveBank], monData); + size += CopyLinkOpponentMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -606,7 +606,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES); @@ -672,7 +672,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -687,7 +687,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -912,13 +912,13 @@ static void LinkOpponentHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetLinkOpponentMonData(gBattlePartyID[gActiveBank]); + SetLinkOpponentMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -931,11 +931,11 @@ static void LinkOpponentHandleSetMonData(void) static void SetLinkOpponentMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -976,10 +976,10 @@ static void SetLinkOpponentMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -993,196 +993,196 @@ static void SetLinkOpponentMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } } static void LinkOpponentHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleLoadMonSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_806A068(species, GetBankPosition(gActiveBank)); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBank, 2), - GetBankSpriteDefault_Y(gActiveBank), - sub_80A82E4(gActiveBank)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBankCoord(gActiveBattler, 2), + GetBankSpriteDefault_Y(gActiveBattler), + sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8064B04; + gBattlerFuncs[gActiveBattler] = sub_8064B04; } static void LinkOpponentHandleSwitchInAnim(void) { - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - sub_8066494(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_8064F40; + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + sub_8066494(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_8064F40; } static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) @@ -1194,7 +1194,7 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, @@ -1219,37 +1219,37 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) static void LinkOpponentHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - EnemyShadowCallbackToSetInvisible(gActiveBank); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + EnemyShadowCallbackToSetInvisible(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattleBankFunc[gActiveBank] = sub_8064C58; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); + gBattlerFuncs[gActiveBattler] = sub_8064C58; } break; } @@ -1262,39 +1262,39 @@ static void LinkOpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 152; else // first mon xPos = 200; if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) { - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); else trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); } else { - if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_FIRE_RED - || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_LEAF_GREEN) + if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED + || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - if (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender != 0) + if (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender != 0) trainerPicId = gUnknown_0831F578[0x4F]; else trainerPicId = gUnknown_0831F578[0x4E]; } - else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_SAPPHIRE) + else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY + || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - if (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender != 0) + if (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender != 0) trainerPicId = gUnknown_0831F578[0x51]; else trainerPicId = gUnknown_0831F578[0x50]; } else { - trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender); + trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender); } } } @@ -1327,73 +1327,73 @@ static void LinkOpponentHandleDrawTrainerPic(void) } } - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, - sub_80A82E4(gActiveBank)); + sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void LinkOpponentHandleTrainerSlide(void) { u32 trainerPicId; - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); else trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; - gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 96; + gSprites[gBankSpriteIds[gActiveBattler]].pos1.x += 32; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle bank function + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle bank function LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_8064470; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerFuncs[gActiveBattler] = sub_8064470; } static void LinkOpponentHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT); - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039934; - gBattleBankFunc[gActiveBank] = sub_8064C14; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039934; + gBattlerFuncs[gActiveBattler] = sub_8064C14; } } } @@ -1420,25 +1420,25 @@ static void LinkOpponentHandlePause(void) static void LinkOpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { LinkOpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = LinkOpponentDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = LinkOpponentDoMoveAnimation; sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr); } } @@ -1446,26 +1446,26 @@ static void LinkOpponentHandleMoveAnimation(void) static void LinkOpponentDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1473,20 +1473,20 @@ static void LinkOpponentDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; LinkOpponentBufferExecCompleted(); } break; @@ -1499,10 +1499,10 @@ static void LinkOpponentHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; sub_817C95C(*stringId); } @@ -1546,23 +1546,23 @@ static void LinkOpponentHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void LinkOpponentHandleExpUpdate(void) @@ -1572,24 +1572,24 @@ static void LinkOpponentHandleExpUpdate(void) static void LinkOpponentHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void LinkOpponentHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1646,7 +1646,7 @@ static void LinkOpponentHandleCmd37(void) static void LinkOpponentHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } @@ -1664,16 +1664,16 @@ static void LinkOpponentHandleCmd40(void) static void LinkOpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { LinkOpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1686,25 +1686,25 @@ static void LinkOpponentHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } LinkOpponentBufferExecCompleted(); @@ -1712,7 +1712,7 @@ static void LinkOpponentHandlePlayFanfareOrBGM(void) static void LinkOpponentHandleFaintingCry(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, 25, 5); LinkOpponentBufferExecCompleted(); @@ -1720,7 +1720,7 @@ static void LinkOpponentHandleFaintingCry(void) static void LinkOpponentHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; LinkOpponentBufferExecCompleted(); } @@ -1730,46 +1730,46 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_80676FC); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_80676FC); taskId = CreateTask(sub_8067618, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_28; + gBattlerFuncs[gActiveBattler] = nullsub_28; } static void sub_8067618(u8 taskId) { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_8066494(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_8066494(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_8066494(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_8066494(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_8066494(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_8066494(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_8064734; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_8064734; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1782,50 +1782,50 @@ static void sub_80676FC(struct Sprite *sprite) static void LinkOpponentHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { LinkOpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; - if (gBattleBufferA[gActiveBank][2] != 0) + if (gBattleBufferA[gActiveBattler][2] != 0) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E < 2) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E++; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++; return; } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0; } } - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_806782C; + gBattlerFuncs[gActiveBattler] = sub_806782C; } } static void sub_806782C(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; LinkOpponentBufferExecCompleted(); } } static void LinkOpponentHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; LinkOpponentBufferExecCompleted(); } @@ -1836,25 +1836,25 @@ static void LinkOpponentHandleCmd50(void) static void LinkOpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) LinkOpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; sub_817E32C(animationId); } @@ -1862,7 +1862,7 @@ static void LinkOpponentHandleBattleAnimation(void) static void LinkOpponentHandleLinkStandbyMsg(void) { - sub_81851A8(&gBattleBufferA[gActiveBank][2]); + sub_81851A8(&gBattleBufferA[gActiveBattler][2]); LinkOpponentBufferExecCompleted(); } @@ -1873,18 +1873,18 @@ static void LinkOpponentHandleResetActionMoveSelection(void) static void LinkOpponentHandleCmd55(void) { - sub_81851A8(&gBattleBufferA[gActiveBank][4]); + sub_81851A8(&gBattleBufferA[gActiveBattler][4]); - if (gBattleBufferA[gActiveBank][1] == B_OUTCOME_DREW) - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW) + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; else - gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ B_OUTCOME_DREW; + gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW; - gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2]; + gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBattler][2]; FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_92(void) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 9835f6cb2..d184370f4 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -25,32 +25,32 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gUnknown_020243FC; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern struct UnusedControllerStruct gUnknown_02022D0C; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; @@ -198,15 +198,15 @@ static void nullsub_112(void) void SetControllerToLinkPartner(void) { - gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; } static void LinkPartnerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sLinkPartnerBufferCommands)) - sLinkPartnerBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkPartnerBufferCommands)) + sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkPartnerBufferExecCompleted(); } @@ -214,26 +214,26 @@ static void LinkPartnerBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkPartnerBufferExecCompleted(); } static void sub_814AF54(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); } } static void sub_814AFBC(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; LinkPartnerBufferExecCompleted(); } } @@ -244,13 +244,13 @@ static void sub_814B004(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -261,84 +261,84 @@ static void sub_814B004(void) if (r6) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_814AFBC; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_814AFBC; } } static void sub_814B0E8(void) { - 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) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleBankFunc[gActiveBank] = sub_814B004; + gBattlerFuncs[gActiveBattler] = sub_814B004; } } static void sub_814B290(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].animEnded && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) LinkPartnerBufferExecCompleted(); } static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); LinkPartnerBufferExecCompleted(); } } static void sub_814B340(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } static void sub_814B3DC(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -351,7 +351,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -370,20 +370,20 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_814B4E0(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) { - CopyBattleSpriteInvisibility(gActiveBank); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + CopyBattleSpriteInvisibility(gActiveBattler); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_814B554; + gBattlerFuncs[gActiveBattler] = sub_814B554; } } static void sub_814B554(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { LinkPartnerBufferExecCompleted(); } @@ -391,66 +391,66 @@ static void sub_814B554(void) static void sub_814B5A8(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); - gBattleBankFunc[gActiveBank] = sub_814B4E0; + gBattlerFuncs[gActiveBattler] = sub_814B4E0; } } static void sub_814B69C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - gBattleBankFunc[gActiveBank] = sub_814B5A8; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + gBattlerFuncs[gActiveBattler] = sub_814B5A8; } } static void LinkPartnerBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) LinkPartnerBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) LinkPartnerBufferExecCompleted(); } @@ -461,13 +461,13 @@ static void LinkPartnerHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyLinkPartnerMonData(gBattlePartyID[gActiveBank], monData); + size += CopyLinkPartnerMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -489,7 +489,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); @@ -555,7 +555,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -570,7 +570,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -795,13 +795,13 @@ static void LinkPartnerHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetLinkPartnerMonData(gBattlePartyID[gActiveBank]); + SetLinkPartnerMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -814,11 +814,11 @@ static void LinkPartnerHandleSetMonData(void) static void SetLinkPartnerMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -859,10 +859,10 @@ static void SetLinkPartnerMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -876,167 +876,167 @@ static void SetLinkPartnerMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); } static void LinkPartnerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; LinkPartnerBufferExecCompleted(); } @@ -1045,28 +1045,28 @@ static void LinkPartnerHandleLoadMonSprite(void) { u16 species; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); - sub_806A068(species, GetBankPosition(gActiveBank)); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBank, 2), - GetBankSpriteDefault_Y(gActiveBank), - sub_80A82E4(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); - gBattleBankFunc[gActiveBank] = sub_814B290; + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBankCoord(gActiveBattler, 2), + GetBankSpriteDefault_Y(gActiveBattler), + sub_80A82E4(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerFuncs[gActiveBattler] = sub_814B290; } static void LinkPartnerHandleSwitchInAnim(void) { - ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_814CC98(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_814B69C; + ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_814CC98(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_814B69C; } static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) @@ -1077,7 +1077,7 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, @@ -1102,36 +1102,36 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) static void LinkPartnerHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattleBankFunc[gActiveBank] = sub_814B3DC; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); + gBattlerFuncs[gActiveBattler] = sub_814B3DC; } break; } @@ -1144,7 +1144,7 @@ static void LinkPartnerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 90; else // first mon xPos = 32; @@ -1154,31 +1154,31 @@ static void LinkPartnerHandleDrawTrainerPic(void) xPos = 80; } - if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_FIRE_RED - || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_LEAF_GREEN) + if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED + || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; } - else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_SAPPHIRE) + else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY + || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; } else { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender; } - DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBank)); + DecompressTrainerBackPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void LinkPartnerHandleTrainerSlide(void) @@ -1188,34 +1188,34 @@ static void LinkPartnerHandleTrainerSlide(void) static void LinkPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_814AF54; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerFuncs[gActiveBattler] = sub_814AF54; } static void LinkPartnerHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; - gBattleBankFunc[gActiveBank] = sub_814B340; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerFuncs[gActiveBattler] = sub_814B340; } } } @@ -1242,25 +1242,25 @@ static void LinkPartnerHandlePause(void) static void LinkPartnerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { LinkPartnerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = LinkPartnerDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = LinkPartnerDoMoveAnimation; sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr); } } @@ -1268,26 +1268,26 @@ static void LinkPartnerHandleMoveAnimation(void) static void LinkPartnerDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1295,20 +1295,20 @@ static void LinkPartnerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; LinkPartnerBufferExecCompleted(); } break; @@ -1321,10 +1321,10 @@ static void LinkPartnerHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; sub_817C95C(*stringId); } @@ -1368,23 +1368,23 @@ static void LinkPartnerHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void LinkPartnerHandleExpUpdate(void) @@ -1394,24 +1394,24 @@ static void LinkPartnerHandleExpUpdate(void) static void LinkPartnerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void LinkPartnerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1468,7 +1468,7 @@ static void LinkPartnerHandleCmd37(void) static void LinkPartnerHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } @@ -1486,16 +1486,16 @@ static void LinkPartnerHandleCmd40(void) static void LinkPartnerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { LinkPartnerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1508,25 +1508,25 @@ static void LinkPartnerHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } LinkPartnerBufferExecCompleted(); @@ -1534,7 +1534,7 @@ static void LinkPartnerHandlePlayFanfareOrBGM(void) static void LinkPartnerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); LinkPartnerBufferExecCompleted(); @@ -1542,7 +1542,7 @@ static void LinkPartnerHandleFaintingCry(void) static void LinkPartnerHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; LinkPartnerBufferExecCompleted(); } @@ -1553,46 +1553,46 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) u8 taskId; u32 trainerPicId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); - if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_FIRE_RED - || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_LEAF_GREEN) + if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED + || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; } - else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_SAPPHIRE) + else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY + || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; } else { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender; } LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_814DCCC, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_112; + gBattlerFuncs[gActiveBattler] = nullsub_112; } static void sub_814DCCC(u8 taskId) @@ -1603,62 +1603,62 @@ static void sub_814DCCC(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_814CC98(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_814CC98(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_814CC98(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_814CC98(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_814CC98(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_814CC98(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_814B0E8; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_814B0E8; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } static void LinkPartnerHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { LinkPartnerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_814DE9C; + gBattlerFuncs[gActiveBattler] = sub_814DE9C; } } static void sub_814DE9C(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; LinkPartnerBufferExecCompleted(); } } static void LinkPartnerHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; LinkPartnerBufferExecCompleted(); } @@ -1669,25 +1669,25 @@ static void LinkPartnerHandleCmd50(void) static void LinkPartnerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } LinkPartnerBufferExecCompleted(); } static void LinkPartnerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) LinkPartnerBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; sub_817E32C(animationId); } @@ -1695,7 +1695,7 @@ static void LinkPartnerHandleBattleAnimation(void) static void LinkPartnerHandleLinkStandbyMsg(void) { - sub_81851A8(&gBattleBufferA[gActiveBank][2]); + sub_81851A8(&gBattleBufferA[gActiveBattler][2]); LinkPartnerBufferExecCompleted(); } @@ -1706,13 +1706,13 @@ static void LinkPartnerHandleResetActionMoveSelection(void) static void LinkPartnerHandleCmd55(void) { - sub_81851A8(&gBattleBufferA[gActiveBank][4]); - gBattleOutcome = gBattleBufferA[gActiveBank][1]; - gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2]; + sub_81851A8(&gBattleBufferA[gActiveBattler][4]); + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; + gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBattler][2]; FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkPartnerBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_113(void) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 6940fdc73..7131cbde6 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -29,26 +29,26 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gActiveBattler; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void *gUnknown_020244D8; extern void *gUnknown_020244DC; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern struct UnusedControllerStruct gUnknown_02022D0C; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gUnknown_020243FC; @@ -207,15 +207,15 @@ static void nullsub_26(void) void SetControllerToOpponent(void) { - gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand; + gBattlerFuncs[gActiveBattler] = OpponentBufferRunCommand; } static void OpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sOpponentBufferCommands)) - sOpponentBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sOpponentBufferCommands)) + sOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else OpponentBufferExecCompleted(); } @@ -223,32 +223,32 @@ static void OpponentBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } static void sub_805F240(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); OpponentBufferExecCompleted(); } } static void sub_805F2A8(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; OpponentBufferExecCompleted(); } } @@ -260,42 +260,42 @@ static void sub_805F2F0(void) if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) || (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) var = TRUE; var2 = FALSE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) var = TRUE; var2 = TRUE; } - gUnknown_020244D8 = &gBattleSpritesDataPtr->healthBoxesData[gActiveBank]; - gUnknown_020244DC = &gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON]; + gUnknown_020244D8 = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler]; + gUnknown_020244DC = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK]; if (var) { if (var2 == TRUE) { - if (var2 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (var2 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); } else return; } - else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - if (GetBankPosition(gActiveBank) == 3) + if (GetBattlerPosition(gActiveBattler) == 3) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 == 0 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 == 0 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 == 0) { FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); @@ -303,14 +303,14 @@ static void sub_805F2F0(void) else return; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; } else return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_805F2A8; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_805F2A8; } } @@ -319,60 +319,60 @@ static void sub_805F560(void) bool32 sp = FALSE; bool32 r10 = FALSE; - 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].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) - sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (GetBankPosition(gActiveBank) == 1) + if (GetBattlerPosition(gActiveBattler) == 1) m4aMPlayContinue(&gMPlayInfo_BGM); } else m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; sp = TRUE; } if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { r10 = TRUE; } } else { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r10 = TRUE; } @@ -382,29 +382,29 @@ static void sub_805F560(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - SetBankEnemyShadowSpriteCallback(gActiveBank ^ BIT_MON, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattleBankFunc[gActiveBank] = sub_805F2F0; + gBattlerFuncs[gActiveBattler] = sub_805F2F0; } } static void sub_805F994(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + if (gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); OpponentBufferExecCompleted(); @@ -413,11 +413,11 @@ static void sub_805F994(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else OpponentBufferExecCompleted(); @@ -425,21 +425,21 @@ static void CompleteOnHealthbarDone(void) static void sub_805FAC4(void) { - if (!gSprites[gBankSpriteIds[gActiveBank]].inUse) + if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) { - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); OpponentBufferExecCompleted(); } } static void sub_805FB08(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - EnemyShadowCallbackToSetInvisible(gActiveBank); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + EnemyShadowCallbackToSetInvisible(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -452,7 +452,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -471,19 +471,19 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_805FC10(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_805FC80; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattlerFuncs[gActiveBattler] = sub_805FC80; } } static void sub_805FC80(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive && !IsCryPlayingOrClearCrySongs()) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy || gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy_2) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy || gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); OpponentBufferExecCompleted(); @@ -493,60 +493,60 @@ static void sub_805FC80(void) static void sub_805FD00(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); - CopyBattleSpriteInvisibility(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_805FC10; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + CopyBattleSpriteInvisibility(gActiveBattler); + gBattlerFuncs[gActiveBattler] = sub_805FC10; } } static void sub_805FDF0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_805FD00; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerFuncs[gActiveBattler] = sub_805FD00; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) OpponentBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) OpponentBufferExecCompleted(); } static void OpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand; + gBattlerFuncs[gActiveBattler] = OpponentBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } @@ -557,13 +557,13 @@ static void OpponentHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += GetOpponentMonData(gBattlePartyID[gActiveBank], monData); + size += GetOpponentMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -585,7 +585,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES); @@ -651,7 +651,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -666,7 +666,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -884,14 +884,14 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst) static void OpponentHandleGetRawMonData(void) { struct BattlePokemon battleMon; - u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; - u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBank][1]; + u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = src[i]; - EmitDataTransfer(1, gBattleBufferA[gActiveBank][2], dst); + EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); OpponentBufferExecCompleted(); } @@ -900,13 +900,13 @@ static void OpponentHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetOpponentMonData(gBattlePartyID[gActiveBank]); + SetOpponentMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -919,11 +919,11 @@ static void OpponentHandleSetMonData(void) static void SetOpponentMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -964,10 +964,10 @@ static void SetOpponentMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -981,198 +981,198 @@ static void SetOpponentMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } } static void OpponentHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; OpponentBufferExecCompleted(); } static void OpponentHandleLoadMonSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_806A068(species, GetBankPosition(gActiveBank)); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBank, 2), - GetBankSpriteDefault_Y(gActiveBank), - sub_80A82E4(gActiveBank)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBankCoord(gActiveBattler, 2), + GetBankSpriteDefault_Y(gActiveBattler), + sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = species; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = species; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_805F994; + gBattlerFuncs[gActiveBattler] = sub_805F994; } static void OpponentHandleSwitchInAnim(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - sub_80613DC(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_805FDF0; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + sub_80613DC(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_805FDF0; } static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) @@ -1184,7 +1184,7 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), @@ -1209,37 +1209,37 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) static void OpponentHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - EnemyShadowCallbackToSetInvisible(gActiveBank); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + EnemyShadowCallbackToSetInvisible(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); OpponentBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattleBankFunc[gActiveBank] = sub_805FB08; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); + gBattlerFuncs[gActiveBattler] = sub_805FB08; } break; } @@ -1262,7 +1262,7 @@ static void OpponentHandleDrawTrainerPic(void) { if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = sub_81D5588(gTrainerBattleOpponent_A); else trainerPicId = sub_81D5588(gTrainerBattleOpponent_B); @@ -1276,7 +1276,7 @@ static void OpponentHandleDrawTrainerPic(void) { if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); else trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); @@ -1292,7 +1292,7 @@ static void OpponentHandleDrawTrainerPic(void) } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (gActiveBank != 1) + if (gActiveBattler != 1) trainerPicId = gTrainers[gTrainerBattleOpponent_B].trainerPic; else trainerPicId = gTrainers[gTrainerBattleOpponent_A].trainerPic; @@ -1304,7 +1304,7 @@ static void OpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) { - if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 152; else // first mon xPos = 200; @@ -1314,20 +1314,20 @@ static void OpponentHandleDrawTrainerPic(void) xPos = 176; } - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, - sub_80A82E4(gActiveBank)); + sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void OpponentHandleTrainerSlide(void) @@ -1346,7 +1346,7 @@ static void OpponentHandleTrainerSlide(void) { if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = sub_81D5588(gTrainerBattleOpponent_A); else trainerPicId = sub_81D5588(gTrainerBattleOpponent_B); @@ -1360,7 +1360,7 @@ static void OpponentHandleTrainerSlide(void) { if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); else trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); @@ -1376,7 +1376,7 @@ static void OpponentHandleTrainerSlide(void) } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (gActiveBank != 1) + if (gActiveBattler != 1) trainerPicId = gTrainers[gTrainerBattleOpponent_B].trainerPic; else trainerPicId = gTrainers[gTrainerBattleOpponent_A].trainerPic; @@ -1386,47 +1386,47 @@ static void OpponentHandleTrainerSlide(void) trainerPicId = gTrainers[gTrainerBattleOpponent_A].trainerPic; } - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; - gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 96; + gSprites[gBankSpriteIds[gActiveBattler]].pos1.x += 32; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } static void OpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_805F240; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerFuncs[gActiveBattler] = sub_805F240; } static void OpponentHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT); - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039934; - gBattleBankFunc[gActiveBank] = sub_805FAC4; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039934; + gBattlerFuncs[gActiveBattler] = sub_805FAC4; } } } @@ -1453,51 +1453,51 @@ static void OpponentHandlePause(void) static void OpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { OpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = OpponentDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = OpponentDoMoveAnimation; } } } static void OpponentDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1505,20 +1505,20 @@ static void OpponentDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; OpponentBufferExecCompleted(); } break; @@ -1531,11 +1531,11 @@ static void OpponentHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; - sub_81A57E4(gActiveBank, *stringId); + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + sub_81A57E4(gActiveBattler, *stringId); } static void OpponentHandlePrintSelectionString(void) @@ -1564,7 +1564,7 @@ static void OpponentHandleChooseMove(void) else { u8 chosenMoveId; - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER)) { @@ -1581,18 +1581,18 @@ static void OpponentHandleChooseMove(void) EmitTwoReturnValues(1, ACTION_RUN, 0); break; case 6: - EmitTwoReturnValues(1, 15, gBankDefender); + EmitTwoReturnValues(1, 15, gBattleDefender); break; default: if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) - gBankDefender = gActiveBank; + gBattleDefender = gActiveBattler; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankDefender << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattleDefender << 8)); break; } OpponentBufferExecCompleted(); @@ -1607,11 +1607,11 @@ static void OpponentHandleChooseMove(void) } while (move == MOVE_NONE); if (gBattleMoves[move].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) - EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBank << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBattler << 8)); else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByPosition(Random() & 2) << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(Random() & 2) << 8)); else - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByPosition(B_POSITION_PLAYER_LEFT) << 8)); + EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) << 8)); OpponentBufferExecCompleted(); } @@ -1620,7 +1620,7 @@ static void OpponentHandleChooseMove(void) static void OpponentHandleChooseItem(void) { - EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBank / 2) * 2)); + EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2)); OpponentBufferExecCompleted(); } @@ -1628,7 +1628,7 @@ static void OpponentHandleChoosePokemon(void) { s32 chosenMonId; - if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) == 6) + if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6) { chosenMonId = GetMostSuitableMonToSwitchInto(); @@ -1638,17 +1638,17 @@ static void OpponentHandleChoosePokemon(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - bank2 = bank1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + bank2 = bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); } else { - bank1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - bank2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + bank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) { - if (gActiveBank == 1) + if (gActiveBattler == 1) firstId = 0, lastId = 3; else firstId = 3, lastId = 6; @@ -1671,12 +1671,12 @@ static void OpponentHandleChoosePokemon(void) } else { - chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank); - *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; + chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler); + *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; } - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = chosenMonId; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId; EmitChosenMonReturnValue(1, chosenMonId, NULL); OpponentBufferExecCompleted(); } @@ -1691,23 +1691,23 @@ static void OpponentHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = (gBattleBufferA[gActiveBank][3] << 8) | gBattleBufferA[gActiveBank][2]; + hpVal = (gBattleBufferA[gActiveBattler][3] << 8) | gBattleBufferA[gActiveBattler][2]; if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void OpponentHandleExpUpdate(void) @@ -1717,24 +1717,24 @@ static void OpponentHandleExpUpdate(void) static void OpponentHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void OpponentHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1791,7 +1791,7 @@ static void OpponentHandleCmd37(void) static void OpponentHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; OpponentBufferExecCompleted(); } @@ -1809,16 +1809,16 @@ static void OpponentHandleCmd40(void) static void OpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { OpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1831,25 +1831,25 @@ static void OpponentHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); OpponentBufferExecCompleted(); } static void OpponentHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } OpponentBufferExecCompleted(); @@ -1857,7 +1857,7 @@ static void OpponentHandlePlayFanfareOrBGM(void) static void OpponentHandleFaintingCry(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, 25, 5); OpponentBufferExecCompleted(); @@ -1865,7 +1865,7 @@ static void OpponentHandleFaintingCry(void) static void OpponentHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; OpponentBufferExecCompleted(); } @@ -1875,23 +1875,23 @@ static void OpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_806280C); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_806280C); taskId = CreateTask(sub_8062828, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_26; + gBattlerFuncs[gActiveBattler] = nullsub_26; } static void sub_806280C(struct Sprite *sprite) @@ -1903,79 +1903,79 @@ static void sub_806280C(struct Sprite *sprite) static void sub_8062828(u8 taskId) { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_80613DC(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_80613DC(gActiveBattler, FALSE); } else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_80613DC(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_80613DC(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_80613DC(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_80613DC(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_80613DC(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_80613DC(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_805F560; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_805F560; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } static void OpponentHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { OpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; - if (gBattleBufferA[gActiveBank][2] != 0) + if (gBattleBufferA[gActiveBattler][2] != 0) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E < 2) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E++; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++; return; } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0; } } - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_8062A2C; + gBattlerFuncs[gActiveBattler] = sub_8062A2C; } } static void sub_8062A2C(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; OpponentBufferExecCompleted(); } } static void OpponentHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; OpponentBufferExecCompleted(); } @@ -1986,25 +1986,25 @@ static void OpponentHandleCmd50(void) static void OpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } OpponentBufferExecCompleted(); } static void OpponentHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) OpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index e8a6898f8..8d52ee377 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -28,31 +28,31 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gAbsentBankFlags; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gAbsentBattlerFlags; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; extern u8 gPlayerDpadHoldFrames; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gMultiUsePlayerCursor; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u16 gPartnerTrainerId; extern struct SpriteTemplate gUnknown_0202499C; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gSpecialVar_ItemId; extern u8 gUnknown_0203CEE8; extern u8 gUnknown_0203CEE9; extern u8 gUnknown_0203CF00[]; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u8 gNumberOfMovesToChoose; extern u16 gBattle_BG0_X; @@ -60,7 +60,7 @@ extern u16 gBattle_BG0_Y; extern s32 gUnknown_0203CD70; extern u8 gBankInMenu; extern u32 gBattlePalaceMoveSelectionRngValue; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u8 gUnknown_020244B4[]; extern u16 gUnknown_020243FC; extern struct UnusedControllerStruct gUnknown_02022D0C; @@ -243,33 +243,33 @@ void nullsub_21(void) void SetControllerToPlayer(void) { - gBattleBankFunc[gActiveBank] = PlayerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = PlayerBufferRunCommand; gDoingBattleAnim = FALSE; gPlayerDpadHoldFrames = 0; } static void PlayerBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = PlayerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = PlayerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } static void PlayerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sPlayerBufferCommands)) - sPlayerBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sPlayerBufferCommands)) + sPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else PlayerBufferExecCompleted(); } @@ -277,16 +277,16 @@ static void PlayerBufferRunCommand(void) static void CompleteOnBankSpritePosX_0(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) PlayerBufferExecCompleted(); } static void HandleInputChooseAction(void) { - u16 itemId = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u16 itemId = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - dp11b_obj_instanciate(gActiveBank, 1, 7, 1); - dp11b_obj_instanciate(gActiveBank, 0, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); if (gMain.newAndRepeatedKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2) gPlayerDpadHoldFrames++; @@ -297,7 +297,7 @@ static void HandleInputChooseAction(void) { PlaySE(SE_SELECT); - switch (gActionSelectionCursor[gActiveBank]) + switch (gActionSelectionCursor[gActiveBattler]) { case 0: EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); @@ -316,52 +316,52 @@ static void HandleInputChooseAction(void) } else if (gMain.newKeys & DPAD_LEFT) { - if (gActionSelectionCursor[gActiveBank] & 1) // if is ACTION_USE_ITEM or ACTION_RUN + if (gActionSelectionCursor[gActiveBattler] & 1) // if is ACTION_USE_ITEM or ACTION_RUN { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gActionSelectionCursor[gActiveBank] & 1)) // if is ACTION_USE_MOVE or ACTION_SWITCH + if (!(gActionSelectionCursor[gActiveBattler] & 1)) // if is ACTION_USE_MOVE or ACTION_SWITCH { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_UP) { - if (gActionSelectionCursor[gActiveBank] & 2) // if is ACTION_SWITCH or ACTION_RUN + if (gActionSelectionCursor[gActiveBattler] & 2) // if is ACTION_SWITCH or ACTION_RUN { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gActionSelectionCursor[gActiveBank] & 2)) // if is ACTION_USE_MOVE or ACTION_USE_ITEM + if (!(gActionSelectionCursor[gActiveBattler] & 2)) // if is ACTION_USE_MOVE or ACTION_USE_ITEM { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - && GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT - && !(gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_PLAYER_LEFT)]) + && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT + && !(gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - if (gBattleBufferA[gActiveBank][1] == ACTION_USE_ITEM) + if (gBattleBufferA[gActiveBattler][1] == ACTION_USE_ITEM) { // Add item to bag if it is a ball if (itemId <= ITEM_PREMIER_BALL) @@ -382,9 +382,9 @@ static void HandleInputChooseAction(void) static void sub_80577F0(void) // unused { - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); - gBattleBankFunc[gActiveBank] = HandleInputChooseTarget; + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); + gBattlerFuncs[gActiveBattler] = HandleInputChooseTarget; } static void HandleInputChooseTarget(void) @@ -397,14 +397,14 @@ static void HandleInputChooseTarget(void) // what a weird loop i = 0; - if (gBattleBanksCount != 0) + if (gBattlersCount != 0) { do { if (i != gMultiUsePlayerCursor) dp11b_obj_free(i, 1); i++; - } while (i < gBattleBanksCount); + } while (i < gBattlersCount); } if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2) @@ -416,7 +416,7 @@ static void HandleInputChooseTarget(void) { PlaySE(SE_SELECT); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; - EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBank] | (gMultiUsePlayerCursor << 8)); + EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); dp11b_obj_free(gMultiUsePlayerCursor, 1); PlayerBufferExecCompleted(); } @@ -424,9 +424,9 @@ static void HandleInputChooseTarget(void) { PlaySE(SE_SELECT); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; - gBattleBankFunc[gActiveBank] = HandleInputChooseMove; - dp11b_obj_instanciate(gActiveBank, 1, 7, 1); - dp11b_obj_instanciate(gActiveBank, 0, 7, 1); + gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; + dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); + dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); dp11b_obj_free(gMultiUsePlayerCursor, 1); } else if (gMain.newKeys & (DPAD_LEFT | DPAD_UP)) @@ -436,9 +436,9 @@ static void HandleInputChooseTarget(void) do { - u8 currSelIdentity = GetBankPosition(gMultiUsePlayerCursor); + u8 currSelIdentity = GetBattlerPosition(gMultiUsePlayerCursor); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (currSelIdentity == identities[i]) break; @@ -447,17 +447,17 @@ static void HandleInputChooseTarget(void) { if (--i < 0) i = 4; // UB: array out of range - gMultiUsePlayerCursor = GetBankByPosition(identities[i]); - } while (gMultiUsePlayerCursor == gBattleBanksCount); + gMultiUsePlayerCursor = GetBattlerAtPosition(identities[i]); + } while (gMultiUsePlayerCursor == gBattlersCount); i = 0; - switch (GetBankPosition(gMultiUsePlayerCursor)) + switch (GetBattlerPosition(gMultiUsePlayerCursor)) { case B_POSITION_PLAYER_LEFT: case B_POSITION_PLAYER_RIGHT: - if (gActiveBank != gMultiUsePlayerCursor) + if (gActiveBattler != gMultiUsePlayerCursor) i++; - else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank])].target & MOVE_TARGET_USER) + else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER) i++; break; case B_POSITION_OPPONENT_LEFT: @@ -466,7 +466,7 @@ static void HandleInputChooseTarget(void) break; } - if (gAbsentBankFlags & gBitTable[gMultiUsePlayerCursor]) + if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor]) i = 0; } while (i == 0); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; @@ -478,9 +478,9 @@ static void HandleInputChooseTarget(void) do { - u8 currSelIdentity = GetBankPosition(gMultiUsePlayerCursor); + u8 currSelIdentity = GetBattlerPosition(gMultiUsePlayerCursor); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (currSelIdentity == identities[i]) break; @@ -489,17 +489,17 @@ static void HandleInputChooseTarget(void) { if (++i > 3) i = 0; - gMultiUsePlayerCursor = GetBankByPosition(identities[i]); - } while (gMultiUsePlayerCursor == gBattleBanksCount); + gMultiUsePlayerCursor = GetBattlerAtPosition(identities[i]); + } while (gMultiUsePlayerCursor == gBattlersCount); i = 0; - switch (GetBankPosition(gMultiUsePlayerCursor)) + switch (GetBattlerPosition(gMultiUsePlayerCursor)) { case B_POSITION_PLAYER_LEFT: case B_POSITION_PLAYER_RIGHT: - if (gActiveBank != gMultiUsePlayerCursor) + if (gActiveBattler != gMultiUsePlayerCursor) i++; - else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank])].target & MOVE_TARGET_USER) + else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER) i++; break; case B_POSITION_OPPONENT_LEFT: @@ -508,7 +508,7 @@ static void HandleInputChooseTarget(void) break; } - if (gAbsentBankFlags & gBitTable[gMultiUsePlayerCursor]) + if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor]) i = 0; } while (i == 0); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; @@ -518,7 +518,7 @@ static void HandleInputChooseTarget(void) static void HandleInputChooseMove(void) { bool32 canSelectTarget = FALSE; - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2) gPlayerDpadHoldFrames++; @@ -530,7 +530,7 @@ static void HandleInputChooseMove(void) u8 moveTarget; PlaySE(SE_SELECT); - if (moveInfo->moves[gMoveSelectionCursor[gActiveBank]] == MOVE_CURSE) + if (moveInfo->moves[gMoveSelectionCursor[gActiveBattler]] == MOVE_CURSE) { if (moveInfo->monType1 != TYPE_GHOST && moveInfo->monType2 != TYPE_GHOST) moveTarget = MOVE_TARGET_x10; @@ -539,17 +539,17 @@ static void HandleInputChooseMove(void) } else { - moveTarget = gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBank]]].target; + moveTarget = gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].target; } if (moveTarget & MOVE_TARGET_x10) - gMultiUsePlayerCursor = gActiveBank; + gMultiUsePlayerCursor = gActiveBattler; else - gMultiUsePlayerCursor = GetBankByPosition((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE); + gMultiUsePlayerCursor = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE); - if (!gBattleBufferA[gActiveBank][1]) // not a double battle + if (!gBattleBufferA[gActiveBattler][1]) // not a double battle { - if (moveTarget & MOVE_TARGET_USER && !gBattleBufferA[gActiveBank][2]) + if (moveTarget & MOVE_TARGET_USER && !gBattleBufferA[gActiveBattler][2]) canSelectTarget++; } else // double battle @@ -557,32 +557,32 @@ static void HandleInputChooseMove(void) if (!(moveTarget & (MOVE_TARGET_RANDOM | MOVE_TARGET_BOTH | MOVE_TARGET_DEPENDS | MOVE_TARGET_FOES_AND_ALLY | MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_x10))) canSelectTarget++; // either selected or user - if (moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]] == 0) + if (moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]] == 0) { canSelectTarget = FALSE; } else if (!(moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) && CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) <= 1) { - gMultiUsePlayerCursor = GetDefaultMoveTarget(gActiveBank); + gMultiUsePlayerCursor = GetDefaultMoveTarget(gActiveBattler); canSelectTarget = FALSE; } } if (!canSelectTarget) { - EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBank] | (gMultiUsePlayerCursor << 8)); + EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); PlayerBufferExecCompleted(); } else { - gBattleBankFunc[gActiveBank] = HandleInputChooseTarget; + gBattlerFuncs[gActiveBattler] = HandleInputChooseTarget; if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) - gMultiUsePlayerCursor = gActiveBank; - else if (gAbsentBankFlags & gBitTable[GetBankByPosition(B_POSITION_OPPONENT_LEFT)]) - gMultiUsePlayerCursor = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + gMultiUsePlayerCursor = gActiveBattler; + else if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]) + gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else - gMultiUsePlayerCursor = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; } @@ -595,50 +595,50 @@ static void HandleInputChooseMove(void) } else if (gMain.newKeys & DPAD_LEFT) { - if (gMoveSelectionCursor[gActiveBank] & 1) + if (gMoveSelectionCursor[gActiveBattler] & 1) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 1; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 1; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); } } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gMoveSelectionCursor[gActiveBank] & 1) - && (gMoveSelectionCursor[gActiveBank] ^ 1) < gNumberOfMovesToChoose) + if (!(gMoveSelectionCursor[gActiveBattler] & 1) + && (gMoveSelectionCursor[gActiveBattler] ^ 1) < gNumberOfMovesToChoose) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 1; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 1; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); } } else if (gMain.newKeys & DPAD_UP) { - if (gMoveSelectionCursor[gActiveBank] & 2) + if (gMoveSelectionCursor[gActiveBattler] & 2) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 2; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 2; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); } } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gMoveSelectionCursor[gActiveBank] & 2) - && (gMoveSelectionCursor[gActiveBank] ^ 2) < gNumberOfMovesToChoose) + if (!(gMoveSelectionCursor[gActiveBattler] & 2) + && (gMoveSelectionCursor[gActiveBattler] ^ 2) < gNumberOfMovesToChoose) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 2; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 2; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); } @@ -647,16 +647,16 @@ static void HandleInputChooseMove(void) { if (gNumberOfMovesToChoose > 1 && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) { - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29); - if (gMoveSelectionCursor[gActiveBank] != 0) + if (gMoveSelectionCursor[gActiveBattler] != 0) gMultiUsePlayerCursor = 0; else - gMultiUsePlayerCursor = gMoveSelectionCursor[gActiveBank] + 1; + gMultiUsePlayerCursor = gMoveSelectionCursor[gActiveBattler] + 1; MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); BattleHandleAddTextPrinter(gText_BattleSwitchWhich, 0xB); - gBattleBankFunc[gActiveBank] = HandleMoveSwitchting; + gBattlerFuncs[gActiveBattler] = HandleMoveSwitchting; } } } @@ -677,35 +677,35 @@ u32 sub_8057FBC(void) // unused gBattle_BG0_Y = 0x140; var = 0xFF; } - if (gMain.newKeys & DPAD_LEFT && gMoveSelectionCursor[gActiveBank] & 1) + if (gMain.newKeys & DPAD_LEFT && gMoveSelectionCursor[gActiveBattler] & 1) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 1; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 1; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); } - if (gMain.newKeys & DPAD_RIGHT && !(gMoveSelectionCursor[gActiveBank] & 1) - && (gMoveSelectionCursor[gActiveBank] ^ 1) < gNumberOfMovesToChoose) + if (gMain.newKeys & DPAD_RIGHT && !(gMoveSelectionCursor[gActiveBattler] & 1) + && (gMoveSelectionCursor[gActiveBattler] ^ 1) < gNumberOfMovesToChoose) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 1; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 1; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); } - if (gMain.newKeys & DPAD_UP && gMoveSelectionCursor[gActiveBank] & 2) + if (gMain.newKeys & DPAD_UP && gMoveSelectionCursor[gActiveBattler] & 2) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 2; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 2; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); } - if (gMain.newKeys & DPAD_DOWN && !(gMoveSelectionCursor[gActiveBank] & 2) - && (gMoveSelectionCursor[gActiveBank] ^ 2) < gNumberOfMovesToChoose) + if (gMain.newKeys & DPAD_DOWN && !(gMoveSelectionCursor[gActiveBattler] & 2) + && (gMoveSelectionCursor[gActiveBattler] ^ 2) < gNumberOfMovesToChoose) { - MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]); - gMoveSelectionCursor[gActiveBank] ^= 2; + MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]); + gMoveSelectionCursor[gActiveBattler] ^= 2; PlaySE(SE_SELECT); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); } return var; @@ -721,73 +721,73 @@ static void HandleMoveSwitchting(void) { PlaySE(SE_SELECT); - if (gMoveSelectionCursor[gActiveBank] != gMultiUsePlayerCursor) + if (gMoveSelectionCursor[gActiveBattler] != gMultiUsePlayerCursor) { - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); s32 i; // swap moves and pp - i = moveInfo->moves[gMoveSelectionCursor[gActiveBank]]; - moveInfo->moves[gMoveSelectionCursor[gActiveBank]] = moveInfo->moves[gMultiUsePlayerCursor]; + i = moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]; + moveInfo->moves[gMoveSelectionCursor[gActiveBattler]] = moveInfo->moves[gMultiUsePlayerCursor]; moveInfo->moves[gMultiUsePlayerCursor] = i; - i = moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]]; - moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]] = moveInfo->currentPp[gMultiUsePlayerCursor]; + i = moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]]; + moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]] = moveInfo->currentPp[gMultiUsePlayerCursor]; moveInfo->currentPp[gMultiUsePlayerCursor] = i; - i = moveInfo->maxPp[gMoveSelectionCursor[gActiveBank]]; - moveInfo->maxPp[gMoveSelectionCursor[gActiveBank]] = moveInfo->maxPp[gMultiUsePlayerCursor]; + i = moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]]; + moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]] = moveInfo->maxPp[gMultiUsePlayerCursor]; moveInfo->maxPp[gMultiUsePlayerCursor] = i; - if (gDisableStructs[gActiveBank].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBank]]) + if (gDisableStructs[gActiveBattler].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBattler]]) { - gDisableStructs[gActiveBank].unk18_b &= (~gBitTable[gMoveSelectionCursor[gActiveBank]]); - gDisableStructs[gActiveBank].unk18_b |= gBitTable[gMultiUsePlayerCursor]; + gDisableStructs[gActiveBattler].unk18_b &= (~gBitTable[gMoveSelectionCursor[gActiveBattler]]); + gDisableStructs[gActiveBattler].unk18_b |= gBitTable[gMultiUsePlayerCursor]; } MoveSelectionDisplayMoveNames(); for (i = 0; i < 4; i++) - perMovePPBonuses[i] = (gBattleMons[gActiveBank].ppBonuses & (3 << (i * 2))) >> (i * 2); + perMovePPBonuses[i] = (gBattleMons[gActiveBattler].ppBonuses & (3 << (i * 2))) >> (i * 2); - totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBank]]; - perMovePPBonuses[gMoveSelectionCursor[gActiveBank]] = perMovePPBonuses[gMultiUsePlayerCursor]; + totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]]; + perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]] = perMovePPBonuses[gMultiUsePlayerCursor]; perMovePPBonuses[gMultiUsePlayerCursor] = totalPPBonuses; totalPPBonuses = 0; for (i = 0; i < 4; i++) totalPPBonuses |= perMovePPBonuses[i] << (i * 2); - gBattleMons[gActiveBank].ppBonuses = totalPPBonuses; + gBattleMons[gActiveBattler].ppBonuses = totalPPBonuses; for (i = 0; i < 4; i++) { - gBattleMons[gActiveBank].moves[i] = moveInfo->moves[i]; - gBattleMons[gActiveBank].pp[i] = moveInfo->currentPp[i]; + gBattleMons[gActiveBattler].moves[i] = moveInfo->moves[i]; + gBattleMons[gActiveBattler].pp[i] = moveInfo->currentPp[i]; } - if (!(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + if (!(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { for (i = 0; i < 4; i++) { - moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i); - moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i); + moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i); + moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP1 + i); } - totalPPBonuses = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES); + totalPPBonuses = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP_BONUSES); for (i = 0; i < 4; i++) perMovePPBonuses[i] = (totalPPBonuses & (3 << (i * 2))) >> (i * 2); - i = moveStruct.moves[gMoveSelectionCursor[gActiveBank]]; - moveStruct.moves[gMoveSelectionCursor[gActiveBank]] = moveStruct.moves[gMultiUsePlayerCursor]; + i = moveStruct.moves[gMoveSelectionCursor[gActiveBattler]]; + moveStruct.moves[gMoveSelectionCursor[gActiveBattler]] = moveStruct.moves[gMultiUsePlayerCursor]; moveStruct.moves[gMultiUsePlayerCursor] = i; - i = moveStruct.currentPp[gMoveSelectionCursor[gActiveBank]]; - moveStruct.currentPp[gMoveSelectionCursor[gActiveBank]] = moveStruct.currentPp[gMultiUsePlayerCursor]; + i = moveStruct.currentPp[gMoveSelectionCursor[gActiveBattler]]; + moveStruct.currentPp[gMoveSelectionCursor[gActiveBattler]] = moveStruct.currentPp[gMultiUsePlayerCursor]; moveStruct.currentPp[gMultiUsePlayerCursor] = i; - totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBank]]; - perMovePPBonuses[gMoveSelectionCursor[gActiveBank]] = perMovePPBonuses[gMultiUsePlayerCursor]; + totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]]; + perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]] = perMovePPBonuses[gMultiUsePlayerCursor]; perMovePPBonuses[gMultiUsePlayerCursor] = totalPPBonuses; totalPPBonuses = 0; @@ -796,17 +796,17 @@ static void HandleMoveSwitchting(void) for (i = 0; i < 4; i++) { - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]); - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]); + SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]); + SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]); } - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES, &totalPPBonuses); + SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses); } } - gBattleBankFunc[gActiveBank] = HandleInputChooseMove; - gMoveSelectionCursor[gActiveBank] = gMultiUsePlayerCursor; - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; + gMoveSelectionCursor[gActiveBattler] = gMultiUsePlayerCursor; + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpString(); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); @@ -815,8 +815,8 @@ static void HandleMoveSwitchting(void) { PlaySE(SE_SELECT); MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor); - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); - gBattleBankFunc[gActiveBank] = HandleInputChooseMove; + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); + gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; MoveSelectionDisplayPpString(); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); @@ -825,15 +825,15 @@ static void HandleMoveSwitchting(void) { if (gMultiUsePlayerCursor & 1) { - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29); + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29); else MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor); gMultiUsePlayerCursor ^= 1; PlaySE(SE_SELECT); - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0); else MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); @@ -843,15 +843,15 @@ static void HandleMoveSwitchting(void) { if (!(gMultiUsePlayerCursor & 1) && (gMultiUsePlayerCursor ^ 1) < gNumberOfMovesToChoose) { - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29); + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29); else MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor); gMultiUsePlayerCursor ^= 1; PlaySE(SE_SELECT); - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0); else MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); @@ -861,15 +861,15 @@ static void HandleMoveSwitchting(void) { if (gMultiUsePlayerCursor & 2) { - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29); + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29); else MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor); gMultiUsePlayerCursor ^= 2; PlaySE(SE_SELECT); - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0); else MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); @@ -879,15 +879,15 @@ static void HandleMoveSwitchting(void) { if (!(gMultiUsePlayerCursor & 2) && (gMultiUsePlayerCursor ^ 2) < gNumberOfMovesToChoose) { - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29); + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29); else MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor); gMultiUsePlayerCursor ^= 2; PlaySE(SE_SELECT); - if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank]) + if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler]) MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0); else MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); @@ -938,7 +938,7 @@ void sub_80587B0(void) else sub_800ADF8(); - gBattleBankFunc[gActiveBank] = sub_80586F8; + gBattlerFuncs[gActiveBattler] = sub_80586F8; } } else @@ -953,32 +953,32 @@ void sub_80587B0(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } static void sub_80588B4(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(gSaveBlock2Ptr->playerGender); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); PlayerBufferExecCompleted(); } } static void sub_8058924(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; PlayerBufferExecCompleted(); } } @@ -989,33 +989,33 @@ static void sub_805896C(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) var = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) var = TRUE; } - if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_8058924; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_8058924; } } @@ -1024,58 +1024,58 @@ static void sub_8058B40(void) bool32 r9 = FALSE; bool32 r8 = FALSE; - 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].ballAnimActive) - sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) m4aMPlayContinue(&gMPlayInfo_BGM); else m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; r9 = TRUE; } if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { r8 = TRUE; } } else { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -1084,63 +1084,63 @@ static void sub_8058B40(void) if (r9 && r8) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattleBankFunc[gActiveBank] = sub_805896C; + gBattlerFuncs[gActiveBattler] = sub_805896C; } } static void sub_8058EDC(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - CopyBattleSpriteInvisibility(gActiveBank); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + CopyBattleSpriteInvisibility(gActiveBattler); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_8058FC0; + gBattlerFuncs[gActiveBattler] = sub_8058FC0; } } static void sub_8058FC0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } static void sub_805902C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); - gBattleBankFunc[gActiveBank] = sub_8058EDC; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + gBattlerFuncs[gActiveBattler] = sub_8058EDC; } } @@ -1155,17 +1155,17 @@ void c3_0802FDF4(u8 taskId) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } @@ -1202,13 +1202,13 @@ static void Task_GiveExpToMon(u8 taskId) SetMonData(mon, MON_DATA_EXP, &nextLvlExp); CalculateMonStats(mon); gainedExp -= nextLvlExp - currExp; - savedActiveBank = gActiveBank; - gActiveBank = bank; + savedActiveBank = gActiveBattler; + gActiveBattler = bank; EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); - gActiveBank = savedActiveBank; + gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_MON])) + && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_FLANK])) gTasks[taskId].func = sub_8059544; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; @@ -1217,7 +1217,7 @@ static void Task_GiveExpToMon(u8 taskId) { currExp += gainedExp; SetMonData(mon, MON_DATA_EXP, &currExp); - gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -1281,17 +1281,17 @@ static void sub_8059400(u8 taskId) SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &expOnNextLvl); CalculateMonStats(&gPlayerParty[monId]); gainedExp -= expOnNextLvl - currExp; - savedActiveBank = gActiveBank; - gActiveBank = bank; + savedActiveBank = gActiveBattler; + gActiveBattler = bank; EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); - gActiveBank = savedActiveBank; + gActiveBattler = savedActiveBank; gTasks[taskId].func = sub_8059544; } else { currExp += gainedExp; SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp); - gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -1303,8 +1303,8 @@ static void sub_8059544(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; u8 monIndex = gTasks[taskId].tExpTask_monId; - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON]) - bank ^= BIT_MON; + if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) + bank ^= BIT_FLANK; InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP); gTasks[taskId].func = sub_80595A4; @@ -1320,8 +1320,8 @@ static void sub_80595A4(u8 taskId) GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON]) - UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_MON], &gPlayerParty[monIndex], HEALTHBOX_ALL); + if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) + UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); else UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL); @@ -1337,31 +1337,31 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId) monIndex = gTasks[taskId].tExpTask_monId; GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value bank = gTasks[taskId].tExpTask_bank; - gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } static void sub_80596A8(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); PlayerBufferExecCompleted(); } } static void sub_8059744(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -1378,9 +1378,9 @@ static void sub_80597CC(void) { u8 r4; - gBattleBankFunc[gActiveBank] = sub_8059828; - r4 = gTasks[gUnknown_03005D7C[gActiveBank]].data[0]; - DestroyTask(gUnknown_03005D7C[gActiveBank]); + gBattlerFuncs[gActiveBattler] = sub_8059828; + r4 = gTasks[gUnknown_03005D7C[gActiveBattler]].data[0]; + DestroyTask(gUnknown_03005D7C[gActiveBattler]); FreeAllWindowBuffers(); sub_81B89AC(r4); } @@ -1395,7 +1395,7 @@ static void sub_8059828(void) else EmitChosenMonReturnValue(1, 6, NULL); - if ((gBattleBufferA[gActiveBank][1] & 0xF) == 1) + if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1) PrintLinkStandbyMsg(); PlayerBufferExecCompleted(); @@ -1406,7 +1406,7 @@ static void OpenBagAndChooseItem(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBank] = CompleteWhenChoseItem; + gBattlerFuncs[gActiveBattler] = CompleteWhenChoseItem; nullsub_35(); FreeAllWindowBuffers(); sub_81AABB0(); @@ -1424,13 +1424,13 @@ static void CompleteWhenChoseItem(void) static void CompleteOnSpecialAnimDone(void) { - if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) PlayerBufferExecCompleted(); } static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -1486,7 +1486,7 @@ static void PlayerHandleUnknownYesNoInput(void) static void MoveSelectionDisplayMoveNames(void) { s32 i; - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); gNumberOfMovesToChoose = 0; for (i = 0; i < 4; i++) @@ -1510,15 +1510,15 @@ static void MoveSelectionDisplayPpNumber(void) u8 *txtPtr; struct ChooseMoveStruct *moveInfo; - if (gBattleBufferA[gActiveBank][2] == TRUE) // check if we didn't want to display pp number + if (gBattleBufferA[gActiveBattler][2] == TRUE) // check if we didn't want to display pp number return; SetPpNumbersPaletteInMoveSelection(); - moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); - txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]], STR_CONV_MODE_RIGHT_ALIGN, 2); + moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); + txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); txtPtr[0] = CHAR_SLASH; txtPtr++; - ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBank]], STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); BattleHandleAddTextPrinter(gDisplayedStringBattle, 9); } @@ -1526,7 +1526,7 @@ static void MoveSelectionDisplayPpNumber(void) static void MoveSelectionDisplayMoveType(void) { u8 *txtPtr; - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType); txtPtr[0] = EXT_CTRL_CODE_BEGIN; @@ -1536,7 +1536,7 @@ static void MoveSelectionDisplayMoveType(void) txtPtr[0] = 1; txtPtr++; - StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBank]]].type]); + StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 10); } @@ -1592,13 +1592,13 @@ void SetCB2ToReshowScreenAfterMenu2(void) static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) PlayerBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) PlayerBufferExecCompleted(); } @@ -1619,13 +1619,13 @@ static void PlayerHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyPlayerMonData(gBattlePartyID[gActiveBank], monData); + size += CopyPlayerMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -1647,7 +1647,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); @@ -1713,7 +1713,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -1728,7 +1728,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -1946,14 +1946,14 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst) void PlayerHandleGetRawMonData(void) { struct BattlePokemon battleMon; - u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; - u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBank][1]; + u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = src[i]; - EmitDataTransfer(1, gBattleBufferA[gActiveBank][2], dst); + EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); PlayerBufferExecCompleted(); } @@ -1962,13 +1962,13 @@ static void PlayerHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetPlayerMonData(gBattlePartyID[gActiveBank]); + SetPlayerMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -1981,11 +1981,11 @@ static void PlayerHandleSetMonData(void) static void SetPlayerMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -2026,10 +2026,10 @@ static void SetPlayerMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -2043,187 +2043,187 @@ static void SetPlayerMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); } static void PlayerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; PlayerBufferExecCompleted(); } static void PlayerHandleLoadMonSprite(void) { - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpritePosX_0; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpritePosX_0; } static void PlayerHandleSwitchInAnim(void) { - ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; - sub_805B258(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_805902C; + ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; + sub_805B258(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_805902C; } static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) @@ -2234,7 +2234,7 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, @@ -2259,36 +2259,36 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) static void PlayerHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); PlayerBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattleBankFunc[gActiveBank] = sub_8059744; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); + gBattlerFuncs[gActiveBattler] = sub_8059744; } break; } @@ -2326,7 +2326,7 @@ static void PlayerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 90; else // first mon xPos = 32; @@ -2352,32 +2352,32 @@ static void PlayerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != STEVEN_PARTNER_ID) { trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A1C0(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); - - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; - gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0; - gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1; + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y = 48; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineMode = 0; + gSprites[gBankSpriteIds[gActiveBattler]].hFlip = 1; } // use the back pic in any other scenario else { - DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); + DecompressTrainerBackPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; } - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void PlayerHandleTrainerSlide(void) @@ -2406,49 +2406,49 @@ static void PlayerHandleTrainerSlide(void) trainerPicId = gSaveBlock2Ptr->playerGender; } - DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30); + DecompressTrainerBackPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } static void PlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); - gBattleBankFunc[gActiveBank] = sub_80588B4; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + gBattlerFuncs[gActiveBattler] = sub_80588B4; } static void PlayerHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; - gBattleBankFunc[gActiveBank] = sub_80596A8; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerFuncs[gActiveBattler] = sub_80596A8; } } } @@ -2463,23 +2463,23 @@ static void PlayerHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); - gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); + gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void PlayerHandleBallThrowAnim(void) { - u8 ballThrowCaseId = gBattleBufferA[gActiveBank][1]; + u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1]; gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); - gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); + gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void PlayerHandlePause(void) { - u8 var = gBattleBufferA[gActiveBank][1]; + u8 var = gBattleBufferA[gActiveBattler][1]; // WTF is this?? while (var != 0) @@ -2490,25 +2490,25 @@ static void PlayerHandlePause(void) static void PlayerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { PlayerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = PlayerDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = PlayerDoMoveAnimation; sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr); } } @@ -2516,26 +2516,26 @@ static void PlayerHandleMoveAnimation(void) static void PlayerDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -2543,20 +2543,20 @@ static void PlayerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlayerBufferExecCompleted(); } break; @@ -2569,17 +2569,17 @@ static void PlayerHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; sub_817C95C(*stringId); - sub_81A57E4(gActiveBank, *stringId); + sub_81A57E4(gActiveBattler, *stringId); } static void PlayerHandlePrintSelectionString(void) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) PlayerHandlePrintString(); else PlayerBufferExecCompleted(); @@ -2591,7 +2591,7 @@ static void HandleChooseActionAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 160; - gBattleBankFunc[gActiveBank] = HandleInputChooseAction; + gBattlerFuncs[gActiveBattler] = HandleInputChooseAction; } } @@ -2599,27 +2599,27 @@ static void PlayerHandleChooseAction(void) { s32 i; - gBattleBankFunc[gActiveBank] = HandleChooseActionAfterDma3; + gBattlerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; sub_817F2A8(); BattleHandleAddTextPrinter(gText_BattleMenu, 2); for (i = 0; i < 4; i++) ActionSelectionDestroyCursorAt(i); - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo); BattleHandleAddTextPrinter(gDisplayedStringBattle, 1); } static void PlayerHandleUnknownYesNoBox(void) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0); BattleHandleAddTextPrinter(gText_BattleYesNoChoice, 12); gMultiUsePlayerCursor = 1; BattleCreateYesNoCursorAt(1); - gBattleBankFunc[gActiveBank] = PlayerHandleUnknownYesNoInput; + gBattlerFuncs[gActiveBattler] = PlayerHandleUnknownYesNoInput; } else { @@ -2633,13 +2633,13 @@ static void HandleChooseMoveAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 320; - gBattleBankFunc[gActiveBank] = HandleInputChooseMove; + gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; } } static void PlayerChooseMoveInBattlePalace(void) { - if (--*(gBattleStruct->field_298 + gActiveBank) == 0) + if (--*(gBattleStruct->field_298 + gActiveBattler) == 0) { gBattlePalaceMoveSelectionRngValue = gRngValue; EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); @@ -2651,13 +2651,13 @@ static void PlayerHandleChooseMove(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - *(gBattleStruct->field_298 + gActiveBank) = 8; - gBattleBankFunc[gActiveBank] = PlayerChooseMoveInBattlePalace; + *(gBattleStruct->field_298 + gActiveBattler) = 8; + gBattlerFuncs[gActiveBattler] = PlayerChooseMoveInBattlePalace; } else { InitMoveSelectionsVarsAndStrings(); - gBattleBankFunc[gActiveBank] = HandleChooseMoveAfterDma3; + gBattlerFuncs[gActiveBattler] = HandleChooseMoveAfterDma3; } } @@ -2665,7 +2665,7 @@ void InitMoveSelectionsVarsAndStrings(void) { MoveSelectionDisplayMoveNames(); gMultiUsePlayerCursor = 0xFF; - MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0); + MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpString(); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); @@ -2676,11 +2676,11 @@ static void PlayerHandleChooseItem(void) s32 i; BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattleBankFunc[gActiveBank] = OpenBagAndChooseItem; - gBankInMenu = gActiveBank; + gBattlerFuncs[gActiveBattler] = OpenBagAndChooseItem; + gBankInMenu = gActiveBattler; for (i = 0; i < 3; i++) - gUnknown_0203CF00[i] = gBattleBufferA[gActiveBank][1 + i]; + gUnknown_0203CF00[i] = gBattleBufferA[gActiveBattler][1 + i]; } static void PlayerHandleChoosePokemon(void) @@ -2688,23 +2688,23 @@ static void PlayerHandleChoosePokemon(void) s32 i; for (i = 0; i < 3; i++) - gUnknown_0203CF00[i] = gBattleBufferA[gActiveBank][4 + i]; + gUnknown_0203CF00[i] = gBattleBufferA[gActiveBattler][4 + i]; - if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBank][1] & 0xF) != 2) + if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBattler][1] & 0xF) != 2) { - EmitChosenMonReturnValue(1, gBattlePartyID[gActiveBank] + 1, gUnknown_0203CF00); + EmitChosenMonReturnValue(1, gBattlePartyID[gActiveBattler] + 1, gUnknown_0203CF00); PlayerBufferExecCompleted(); } else { - gUnknown_03005D7C[gActiveBank] = CreateTask(TaskDummy, 0xFF); - gTasks[gUnknown_03005D7C[gActiveBank]].data[0] = gBattleBufferA[gActiveBank][1] & 0xF; - *(&gBattleStruct->field_49) = gBattleBufferA[gActiveBank][1] >> 4; - *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBank][2]; - *(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBank][3]; + gUnknown_03005D7C[gActiveBattler] = CreateTask(TaskDummy, 0xFF); + gTasks[gUnknown_03005D7C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF; + *(&gBattleStruct->field_49) = gBattleBufferA[gActiveBattler][1] >> 4; + *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBattler][2]; + *(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBattler][3]; BeginNormalPaletteFade(-1, 0, 0, 16, 0); - gBattleBankFunc[gActiveBank] = sub_80597CC; - gBankInMenu = gActiveBank; + gBattlerFuncs[gActiveBattler] = sub_80597CC; + gBankInMenu = gActiveBattler; } } @@ -2720,32 +2720,32 @@ static void PlayerHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal > 0) gUnknown_0203CD70 += hpVal; if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], 0, HP_CURRENT); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], 0, HP_CURRENT); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void PlayerHandleExpUpdate(void) { - u8 monId = gBattleBufferA[gActiveBank][1]; + u8 monId = gBattleBufferA[gActiveBattler][1]; if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_MON_LEVEL) { @@ -2758,12 +2758,12 @@ static void PlayerHandleExpUpdate(void) LoadBattleBarGfx(1); GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); // unused return value - expPointsToGive = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + expPointsToGive = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); taskId = CreateTask(Task_GiveExpToMon, 10); gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; - gTasks[taskId].tExpTask_bank = gActiveBank; - gBattleBankFunc[gActiveBank] = nullsub_21; + gTasks[taskId].tExpTask_bank = gActiveBattler; + gBattlerFuncs[gActiveBattler] = nullsub_21; } } @@ -2774,32 +2774,32 @@ static void PlayerHandleExpUpdate(void) static void PlayerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void PlayerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void PlayerHandleStatusXor(void) { - u8 val = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBank][1]; + u8 val = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1]; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_STATUS, &val); + SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_STATUS, &val); PlayerBufferExecCompleted(); } @@ -2810,13 +2810,13 @@ static void PlayerHandleDataTransfer(void) static void PlayerHandleDMA3Transfer(void) { - u32 dstArg = gBattleBufferA[gActiveBank][1] - | (gBattleBufferA[gActiveBank][2] << 8) - | (gBattleBufferA[gActiveBank][3] << 16) - | (gBattleBufferA[gActiveBank][4] << 24); - u16 sizeArg = gBattleBufferA[gActiveBank][5] | (gBattleBufferA[gActiveBank][6] << 8); + u32 dstArg = gBattleBufferA[gActiveBattler][1] + | (gBattleBufferA[gActiveBattler][2] << 8) + | (gBattleBufferA[gActiveBattler][3] << 16) + | (gBattleBufferA[gActiveBattler][4] << 24); + u16 sizeArg = gBattleBufferA[gActiveBattler][5] | (gBattleBufferA[gActiveBattler][6] << 8); - const u8 *src = &gBattleBufferA[gActiveBank][7]; + const u8 *src = &gBattleBufferA[gActiveBattler][7]; u8 *dst = (u8*)(dstArg); u32 size = sizeArg; @@ -2837,7 +2837,7 @@ static void PlayerHandleDMA3Transfer(void) static void PlayerHandlePlayBGM(void) { - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); PlayerBufferExecCompleted(); } @@ -2878,7 +2878,7 @@ static void PlayerHandleCmd37(void) static void PlayerHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; PlayerBufferExecCompleted(); } @@ -2896,16 +2896,16 @@ static void PlayerHandleCmd40(void) static void PlayerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { PlayerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -2918,25 +2918,25 @@ static void PlayerHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); PlayerBufferExecCompleted(); } static void PlayerHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } PlayerBufferExecCompleted(); @@ -2944,7 +2944,7 @@ static void PlayerHandlePlayFanfareOrBGM(void) static void PlayerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); PlayerBufferExecCompleted(); @@ -2952,7 +2952,7 @@ static void PlayerHandleFaintingCry(void) static void PlayerHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; PlayerBufferExecCompleted(); } @@ -2962,29 +2962,29 @@ static void PlayerHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(task05_08033660, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_21; + gBattlerFuncs[gActiveBattler] = nullsub_21; } void sub_805CC00(struct Sprite *sprite) @@ -3006,93 +3006,93 @@ static void task05_08033660(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_805B258(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_805B258(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_805B258(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_805B258(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_805B258(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_805B258(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_8058B40; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_8058B40; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } static void PlayerHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { PlayerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_805CE38; + gBattlerFuncs[gActiveBattler] = sub_805CE38; } } static void sub_805CE38(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; PlayerBufferExecCompleted(); } } static void PlayerHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; PlayerBufferExecCompleted(); } static void PlayerHandleCmd50(void) { - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); PlayerBufferExecCompleted(); } static void PlayerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } PlayerBufferExecCompleted(); } static void PlayerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) PlayerBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; sub_817E32C(animationId); } @@ -3100,15 +3100,15 @@ static void PlayerHandleBattleAnimation(void) static void PlayerHandleLinkStandbyMsg(void) { - sub_81851A8(&gBattleBufferA[gActiveBank][2]); - switch (gBattleBufferA[gActiveBank][1]) + sub_81851A8(&gBattleBufferA[gActiveBattler][2]); + switch (gBattleBufferA[gActiveBattler][1]) { case 0: PrintLinkStandbyMsg(); // fall through case 1: - dp11b_obj_free(gActiveBank, 1); - dp11b_obj_free(gActiveBank, 0); + dp11b_obj_free(gActiveBattler, 1); + dp11b_obj_free(gActiveBattler, 0); break; case 2: PrintLinkStandbyMsg(); @@ -3119,17 +3119,17 @@ static void PlayerHandleLinkStandbyMsg(void) static void PlayerHandleResetActionMoveSelection(void) { - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case RESET_ACTION_MOVE_SELECTION: - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; break; case RESET_ACTION_SELECTION: - gActionSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; break; case RESET_MOVE_SELECTION: - gMoveSelectionCursor[gActiveBank] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; break; } PlayerBufferExecCompleted(); @@ -3137,13 +3137,13 @@ static void PlayerHandleResetActionMoveSelection(void) static void PlayerHandleCmd55(void) { - sub_81851A8(&gBattleBufferA[gActiveBank][4]); - gBattleOutcome = gBattleBufferA[gActiveBank][1]; - gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2]; + sub_81851A8(&gBattleBufferA[gActiveBattler][4]); + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; + gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBattler][2]; FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_22(void) diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 1da8ee04c..2b21dab94 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -24,33 +24,33 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u8 gBankInMenu; extern u16 gUnknown_020243FC; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern struct UnusedControllerStruct gUnknown_02022D0C; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; @@ -213,15 +213,15 @@ static void nullsub_77(void) void SetControllerToPlayerPartner(void) { - gBattleBankFunc[gActiveBank] = PlayerPartnerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand; } static void PlayerPartnerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sPlayerPartnerBufferCommands)) - sPlayerPartnerBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sPlayerPartnerBufferCommands)) + sPlayerPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else PlayerPartnerBufferExecCompleted(); } @@ -229,26 +229,26 @@ static void PlayerPartnerBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerPartnerBufferExecCompleted(); } static void sub_81BAE98(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); PlayerPartnerBufferExecCompleted(); } } static void sub_81BAF00(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; PlayerPartnerBufferExecCompleted(); } } @@ -259,13 +259,13 @@ static void sub_81BAF48(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -276,59 +276,59 @@ static void sub_81BAF48(void) if (r6) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_81BAF00; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_81BAF00; } } static void sub_81BB02C(void) { - 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) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleBankFunc[gActiveBank] = sub_81BAF48; + gBattlerFuncs[gActiveBattler] = sub_81BAF48; } } static void sub_81BB1D4(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].animEnded && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) PlayerPartnerBufferExecCompleted(); } static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlayerPartnerBufferExecCompleted(); } } @@ -366,13 +366,13 @@ static void Task_GiveExpToMon(u8 taskId) SetMonData(mon, MON_DATA_EXP, &nextLvlExp); CalculateMonStats(mon); gainedExp -= nextLvlExp - currExp; - savedActiveBank = gActiveBank; - gActiveBank = bank; + savedActiveBank = gActiveBattler; + gActiveBattler = bank; EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); - gActiveBank = savedActiveBank; + gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_MON])) + && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_FLANK])) gTasks[taskId].func = sub_81BB628; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; @@ -381,7 +381,7 @@ static void Task_GiveExpToMon(u8 taskId) { currExp += gainedExp; SetMonData(mon, MON_DATA_EXP, &currExp); - gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -445,17 +445,17 @@ static void sub_81BB4E4(u8 taskId) SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &expOnNextLvl); CalculateMonStats(&gPlayerParty[monId]); gainedExp -= expOnNextLvl - currExp; - savedActiveBank = gActiveBank; - gActiveBank = bank; + savedActiveBank = gActiveBattler; + gActiveBattler = bank; EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); - gActiveBank = savedActiveBank; + gActiveBattler = savedActiveBank; gTasks[taskId].func = sub_81BB628; } else { currExp += gainedExp; SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp); - gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -467,8 +467,8 @@ static void sub_81BB628(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; u8 monIndex = gTasks[taskId].tExpTask_monId; - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON]) - bank ^= BIT_MON; + if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) + bank ^= BIT_FLANK; InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP); gTasks[taskId].func = sub_81BB688; @@ -484,8 +484,8 @@ static void sub_81BB688(u8 taskId) GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON]) - UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_MON], &gPlayerParty[monIndex], HEALTHBOX_ALL); + if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) + UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); else UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL); @@ -501,31 +501,31 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId) monIndex = gTasks[taskId].tExpTask_monId; GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value bank = gTasks[taskId].tExpTask_bank; - gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } static void sub_81BB78C(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); PlayerPartnerBufferExecCompleted(); } } static void sub_81BB828(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); PlayerPartnerBufferExecCompleted(); } } @@ -538,7 +538,7 @@ static void CompleteOnInactiveTextPrinter2(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -557,20 +557,20 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_81BB92C(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) { - CopyBattleSpriteInvisibility(gActiveBank); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + CopyBattleSpriteInvisibility(gActiveBattler); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_81BB9A0; + gBattlerFuncs[gActiveBattler] = sub_81BB9A0; } } static void sub_81BB9A0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { PlayerPartnerBufferExecCompleted(); } @@ -578,66 +578,66 @@ static void sub_81BB9A0(void) static void sub_81BB9F4(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); - gBattleBankFunc[gActiveBank] = sub_81BB92C; + gBattlerFuncs[gActiveBattler] = sub_81BB92C; } } static void sub_81BBAE8(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - gBattleBankFunc[gActiveBank] = sub_81BB9F4; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + gBattlerFuncs[gActiveBattler] = sub_81BB9F4; } } static void PlayerPartnerBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = PlayerPartnerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) PlayerPartnerBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) PlayerPartnerBufferExecCompleted(); } @@ -648,13 +648,13 @@ static void PlayerPartnerHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyPlayerPartnerMonData(gBattlePartyID[gActiveBank], monData); + size += CopyPlayerPartnerMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -676,7 +676,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); @@ -742,7 +742,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -757,7 +757,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -982,13 +982,13 @@ static void PlayerPartnerHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetPlayerPartnerMonData(gBattlePartyID[gActiveBank]); + SetPlayerPartnerMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -1001,11 +1001,11 @@ static void PlayerPartnerHandleSetMonData(void) static void SetPlayerPartnerMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -1046,10 +1046,10 @@ static void SetPlayerPartnerMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -1063,167 +1063,167 @@ static void SetPlayerPartnerMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); } static void PlayerPartnerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; PlayerPartnerBufferExecCompleted(); } @@ -1232,28 +1232,28 @@ static void PlayerPartnerHandleLoadMonSprite(void) { u16 species; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); - sub_806A068(species, GetBankPosition(gActiveBank)); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBank, 2), - GetBankSpriteDefault_Y(gActiveBank), - sub_80A82E4(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); - gBattleBankFunc[gActiveBank] = sub_81BB1D4; + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBankCoord(gActiveBattler, 2), + GetBankSpriteDefault_Y(gActiveBattler), + sub_80A82E4(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerFuncs[gActiveBattler] = sub_81BB1D4; } static void PlayerPartnerHandleSwitchInAnim(void) { - ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_81BD0E4(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_81BBAE8; + ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_81BD0E4(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_81BBAE8; } static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) @@ -1264,7 +1264,7 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, @@ -1289,36 +1289,36 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) static void PlayerPartnerHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); PlayerPartnerBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattleBankFunc[gActiveBank] = sub_81BB828; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); + gBattlerFuncs[gActiveBattler] = sub_81BB828; } break; } @@ -1348,31 +1348,31 @@ static void PlayerPartnerHandleDrawTrainerPic(void) // Use back pic only if the partner is Steven if (gPartnerTrainerId == STEVEN_PARTNER_ID) { - DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); - - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + DecompressTrainerBackPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; } else // otherwise use front sprite { - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A1C0(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); - - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; - gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0; - gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1; + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y = 48; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineMode = 0; + gSprites[gBankSpriteIds[gActiveBattler]].hFlip = 1; } - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void PlayerPartnerHandleTrainerSlide(void) @@ -1382,34 +1382,34 @@ static void PlayerPartnerHandleTrainerSlide(void) static void PlayerPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_81BAE98; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerFuncs[gActiveBattler] = sub_81BAE98; } static void PlayerPartnerHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; - gBattleBankFunc[gActiveBank] = sub_81BB78C; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerFuncs[gActiveBattler] = sub_81BB78C; } } } @@ -1436,51 +1436,51 @@ static void PlayerPartnerHandlePause(void) static void PlayerPartnerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { PlayerPartnerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = PlayerPartnerDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = PlayerPartnerDoMoveAnimation; } } } static void PlayerPartnerDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1488,20 +1488,20 @@ static void PlayerPartnerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlayerPartnerBufferExecCompleted(); } break; @@ -1514,10 +1514,10 @@ static void PlayerPartnerHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; } static void PlayerPartnerHandlePrintSelectionString(void) @@ -1539,21 +1539,21 @@ static void PlayerPartnerHandleUnknownYesNoBox(void) static void PlayerPartnerHandleChooseMove(void) { u8 chosenMoveId; - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); BattleAI_SetupAIData(0xF); chosenMoveId = BattleAI_ChooseMoveOrAction(); if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) - gBankDefender = gActiveBank; + gBattleDefender = gActiveBattler; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } - EmitTwoReturnValues(1, 10, chosenMoveId | (gBankDefender << 8)); + EmitTwoReturnValues(1, 10, chosenMoveId | (gBattleDefender << 8)); PlayerPartnerBufferExecCompleted(); } @@ -1568,8 +1568,8 @@ static void PlayerPartnerHandleChoosePokemon(void) if (chosenMonId == 6) // just switch to the next mon { - u8 playerMonIdentity = GetBankByPosition(B_POSITION_PLAYER_LEFT); - u8 selfIdentity = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + u8 playerMonIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + u8 selfIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); for (chosenMonId = 3; chosenMonId < 6; chosenMonId++) { @@ -1582,7 +1582,7 @@ static void PlayerPartnerHandleChoosePokemon(void) } } - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = chosenMonId; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId; EmitChosenMonReturnValue(1, chosenMonId, NULL); PlayerPartnerBufferExecCompleted(); } @@ -1597,28 +1597,28 @@ static void PlayerPartnerHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void PlayerPartnerHandleExpUpdate(void) { - u8 monId = gBattleBufferA[gActiveBank][1]; + u8 monId = gBattleBufferA[gActiveBattler][1]; if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_MON_LEVEL) { @@ -1631,12 +1631,12 @@ static void PlayerPartnerHandleExpUpdate(void) LoadBattleBarGfx(1); GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); // unused return value - expPointsToGive = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + expPointsToGive = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); taskId = CreateTask(Task_GiveExpToMon, 10); gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; - gTasks[taskId].tExpTask_bank = gActiveBank; - gBattleBankFunc[gActiveBank] = nullsub_21; + gTasks[taskId].tExpTask_bank = gActiveBattler; + gBattlerFuncs[gActiveBattler] = nullsub_21; } } @@ -1647,24 +1647,24 @@ static void PlayerPartnerHandleExpUpdate(void) static void PlayerPartnerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void PlayerPartnerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1721,7 +1721,7 @@ static void PlayerPartnerHandleCmd37(void) static void PlayerPartnerHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; PlayerPartnerBufferExecCompleted(); } @@ -1739,16 +1739,16 @@ static void PlayerPartnerHandleCmd40(void) static void PlayerPartnerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { PlayerPartnerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1761,25 +1761,25 @@ static void PlayerPartnerHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); PlayerPartnerBufferExecCompleted(); } static void PlayerPartnerHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } PlayerPartnerBufferExecCompleted(); @@ -1787,7 +1787,7 @@ static void PlayerPartnerHandlePlayFanfareOrBGM(void) static void PlayerPartnerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); PlayerPartnerBufferExecCompleted(); @@ -1795,7 +1795,7 @@ static void PlayerPartnerHandleFaintingCry(void) static void PlayerPartnerHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; PlayerPartnerBufferExecCompleted(); } @@ -1805,16 +1805,16 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); if (gPartnerTrainerId == STEVEN_PARTNER_ID) @@ -1829,16 +1829,16 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) } - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_81BE2C8, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_77; + gBattlerFuncs[gActiveBattler] = nullsub_77; } static void sub_81BE2C8(u8 taskId) @@ -1849,62 +1849,62 @@ static void sub_81BE2C8(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_81BD0E4(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_81BD0E4(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_81BD0E4(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_81BD0E4(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_81BD0E4(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_81BD0E4(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_81BB02C; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_81BB02C; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } static void PlayerPartnerHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { PlayerPartnerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_81BE498; + gBattlerFuncs[gActiveBattler] = sub_81BE498; } } static void sub_81BE498(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; PlayerPartnerBufferExecCompleted(); } } static void PlayerPartnerHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; PlayerPartnerBufferExecCompleted(); } @@ -1915,25 +1915,25 @@ static void PlayerPartnerHandleCmd50(void) static void PlayerPartnerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } PlayerPartnerBufferExecCompleted(); } static void PlayerPartnerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) PlayerPartnerBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } @@ -1949,11 +1949,11 @@ static void PlayerPartnerHandleResetActionMoveSelection(void) static void PlayerPartnerHandleCmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerPartnerBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_128(void) diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index e970c5f58..290eee61b 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -26,32 +26,32 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u16 gUnknown_020243FC; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct UnusedControllerStruct gUnknown_02022D0C; extern u16 gTrainerBattleOpponent_A; @@ -202,15 +202,15 @@ static void nullsub_70(void) void SetControllerToRecordedOpponent(void) { - gBattleBankFunc[gActiveBank] = RecordedOpponentBufferRunCommand; + gBattlerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand; } static void RecordedOpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sRecordedOpponentBufferCommands)) - sRecordedOpponentBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sRecordedOpponentBufferCommands)) + sRecordedOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else RecordedOpponentBufferExecCompleted(); } @@ -218,32 +218,32 @@ static void RecordedOpponentBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) RecordedOpponentBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) RecordedOpponentBufferExecCompleted(); } static void sub_81865C8(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); RecordedOpponentBufferExecCompleted(); } } static void sub_8186630(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; RecordedOpponentBufferExecCompleted(); } } @@ -254,8 +254,8 @@ static void sub_8186678(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].animEnded) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].animEnded) { var = TRUE; } @@ -263,10 +263,10 @@ static void sub_8186678(void) } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].animEnded - && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].animEnded) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].animEnded + && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) { var = TRUE; } @@ -274,23 +274,23 @@ static void sub_8186678(void) if (var) { - if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) return; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_8186630; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_8186630; } } @@ -299,38 +299,38 @@ static void sub_818686C(void) bool32 r9 = FALSE; bool32 r8 = FALSE; - 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].ballAnimActive) - sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) { - if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -338,24 +338,24 @@ static void sub_818686C(void) m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; r9 = TRUE; } if (!IsDoubleBattle()) { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { r8 = TRUE; } } else { - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -365,36 +365,36 @@ static void sub_818686C(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - SetBankEnemyShadowSpriteCallback(gActiveBank ^ BIT_MON, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattleBankFunc[gActiveBank] = sub_8186678; + gBattlerFuncs[gActiveBattler] = sub_8186678; } } static void sub_8186C48(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); } else { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); RecordedOpponentBufferExecCompleted(); @@ -405,13 +405,13 @@ static void sub_8186C48(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { @@ -421,21 +421,21 @@ static void CompleteOnHealthbarDone(void) static void sub_8186D58(void) { - if (!gSprites[gBankSpriteIds[gActiveBank]].inUse) + if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) { - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); RecordedOpponentBufferExecCompleted(); } } static void sub_8186D9C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - EnemyShadowCallbackToSetInvisible(gActiveBank); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + EnemyShadowCallbackToSetInvisible(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); RecordedOpponentBufferExecCompleted(); } } @@ -448,7 +448,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -467,22 +467,22 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_8186EA4(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_8186F14; + gBattlerFuncs[gActiveBattler] = sub_8186F14; } } static void sub_8186F14(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy - || gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy_2) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + || gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); RecordedOpponentBufferExecCompleted(); @@ -492,67 +492,67 @@ static void sub_8186F14(void) static void sub_8186F94(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); - CopyBattleSpriteInvisibility(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_8186EA4; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + CopyBattleSpriteInvisibility(gActiveBattler); + gBattlerFuncs[gActiveBattler] = sub_8186EA4; } } static void sub_8187084(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8186F94; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerFuncs[gActiveBattler] = sub_8186F94; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) RecordedOpponentBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) RecordedOpponentBufferExecCompleted(); } static void RecordedOpponentBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = RecordedOpponentBufferRunCommand; + gBattlerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } @@ -563,13 +563,13 @@ static void RecordedOpponentHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyRecordedOpponentMonData(gBattlePartyID[gActiveBank], monData); + size += CopyRecordedOpponentMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -591,7 +591,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES); @@ -657,7 +657,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -672,7 +672,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -897,13 +897,13 @@ static void RecordedOpponentHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetRecordedOpponentMonData(gBattlePartyID[gActiveBank]); + SetRecordedOpponentMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -916,11 +916,11 @@ static void RecordedOpponentHandleSetMonData(void) static void SetRecordedOpponentMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -961,10 +961,10 @@ static void SetRecordedOpponentMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -978,198 +978,198 @@ static void SetRecordedOpponentMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } } static void RecordedOpponentHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; RecordedOpponentBufferExecCompleted(); } static void RecordedOpponentHandleLoadMonSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_806A068(species, GetBankPosition(gActiveBank)); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBank, 2), - GetBankSpriteDefault_Y(gActiveBank), - sub_80A82E4(gActiveBank)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBankCoord(gActiveBattler, 2), + GetBankSpriteDefault_Y(gActiveBattler), + sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); + SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); - gBattleBankFunc[gActiveBank] = sub_8186C48; + gBattlerFuncs[gActiveBattler] = sub_8186C48; } static void RecordedOpponentHandleSwitchInAnim(void) { - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - sub_81885D8(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_8187084; + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + sub_81885D8(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_8187084; } static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) @@ -1181,7 +1181,7 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), @@ -1205,37 +1205,37 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) static void RecordedOpponentHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - EnemyShadowCallbackToSetInvisible(gActiveBank); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + EnemyShadowCallbackToSetInvisible(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); RecordedOpponentBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattleBankFunc[gActiveBank] = sub_8186D9C; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); + gBattlerFuncs[gActiveBattler] = sub_8186D9C; } break; } @@ -1248,14 +1248,14 @@ static void RecordedOpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 152; else // first mon xPos = 200; if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) { - if (gActiveBank == 1) + if (gActiveBattler == 1) trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A); else trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B); @@ -1278,20 +1278,20 @@ static void RecordedOpponentHandleDrawTrainerPic(void) } } - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, - sub_80A82E4(gActiveBank)); + sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void RecordedOpponentHandleTrainerSlide(void) @@ -1301,31 +1301,31 @@ static void RecordedOpponentHandleTrainerSlide(void) static void RecordedOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_81865C8; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerFuncs[gActiveBattler] = sub_81865C8; } static void RecordedOpponentHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT); - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039934; - gBattleBankFunc[gActiveBank] = sub_8186D58; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039934; + gBattlerFuncs[gActiveBattler] = sub_8186D58; } } } @@ -1352,51 +1352,51 @@ static void RecordedOpponentHandlePause(void) static void RecordedOpponentHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { RecordedOpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = RecordedOpponentDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = RecordedOpponentDoMoveAnimation; } } } static void RecordedOpponentDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1404,20 +1404,20 @@ static void RecordedOpponentDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; RecordedOpponentBufferExecCompleted(); } break; @@ -1430,10 +1430,10 @@ static void RecordedOpponentHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void RecordedOpponentHandlePrintSelectionString(void) @@ -1443,7 +1443,7 @@ static void RecordedOpponentHandlePrintSelectionString(void) static void RecordedOpponentHandleChooseAction(void) { - EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0); + EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBattler), 0); RecordedOpponentBufferExecCompleted(); } @@ -1460,8 +1460,8 @@ static void RecordedOpponentHandleChooseMove(void) } else { - u8 moveId = RecordedBattle_ReadBankAction(gActiveBank); - u8 target = RecordedBattle_ReadBankAction(gActiveBank); + u8 moveId = RecordedBattle_ReadBankAction(gActiveBattler); + u8 target = RecordedBattle_ReadBankAction(gActiveBattler); EmitTwoReturnValues(1, 10, moveId | (target << 8)); } @@ -1475,8 +1475,8 @@ static void RecordedOpponentHandleChooseItem(void) static void RecordedOpponentHandleChoosePokemon(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank); - EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBank), NULL); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_ReadBankAction(gActiveBattler); + EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); RecordedOpponentBufferExecCompleted(); } @@ -1490,23 +1490,23 @@ static void RecordedOpponentHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void RecordedOpponentHandleExpUpdate(void) @@ -1516,24 +1516,24 @@ static void RecordedOpponentHandleExpUpdate(void) static void RecordedOpponentHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void RecordedOpponentHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1590,7 +1590,7 @@ static void RecordedOpponentHandleCmd37(void) static void RecordedOpponentHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; RecordedOpponentBufferExecCompleted(); } @@ -1608,16 +1608,16 @@ static void RecordedOpponentHandleCmd40(void) static void RecordedOpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { RecordedOpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1630,25 +1630,25 @@ static void RecordedOpponentHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); RecordedOpponentBufferExecCompleted(); } static void RecordedOpponentHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } RecordedOpponentBufferExecCompleted(); @@ -1656,7 +1656,7 @@ static void RecordedOpponentHandlePlayFanfareOrBGM(void) static void RecordedOpponentHandleFaintingCry(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, 25, 5); RecordedOpponentBufferExecCompleted(); @@ -1664,7 +1664,7 @@ static void RecordedOpponentHandleFaintingCry(void) static void RecordedOpponentHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; RecordedOpponentBufferExecCompleted(); } @@ -1674,46 +1674,46 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_818962C); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_818962C); taskId = CreateTask(sub_8189548, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_70; + gBattlerFuncs[gActiveBattler] = nullsub_70; } static void sub_8189548(u8 taskId) { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_81885D8(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_81885D8(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_81885D8(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_81885D8(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_81885D8(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_81885D8(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_818686C; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_818686C; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1726,50 +1726,50 @@ static void sub_818962C(struct Sprite *sprite) static void RecordedOpponentHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { RecordedOpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; - if (gBattleBufferA[gActiveBank][2] != 0) + if (gBattleBufferA[gActiveBattler][2] != 0) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E < 2) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E++; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++; return; } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0; } } - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_818975C; + gBattlerFuncs[gActiveBattler] = sub_818975C; } } static void sub_818975C(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; RecordedOpponentBufferExecCompleted(); } } static void RecordedOpponentHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; RecordedOpponentBufferExecCompleted(); } @@ -1780,25 +1780,25 @@ static void RecordedOpponentHandleCmd50(void) static void RecordedOpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } RecordedOpponentBufferExecCompleted(); } static void RecordedOpponentHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) RecordedOpponentBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } @@ -1814,15 +1814,15 @@ static void RecordedOpponentHandleResetActionMoveSelection(void) static void RecordedOpponentHandleCmd55(void) { - if (gBattleBufferA[gActiveBank][1] == B_OUTCOME_DREW) - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW) + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; else - gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ B_OUTCOME_DREW; + gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW; FadeOutMapMusic(5); BeginFastPaletteFade(3); RecordedOpponentBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_119(void) diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 775ea3e7c..ad8cb3a05 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -25,33 +25,33 @@ #include "data2.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; extern u8 gBankInMenu; extern u16 gUnknown_020243FC; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u8 gBattleCommunication[]; extern u8 gUnknown_0203C7B4; extern struct MusicPlayerInfo gMPlayInfo_BGM; @@ -201,15 +201,15 @@ static void nullsub_120(void) void SetControllerToRecordedPlayer(void) { - gBattleBankFunc[gActiveBank] = RecordedPlayerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand; } static void RecordedPlayerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sRecordedPlayerBufferCommands)) - sRecordedPlayerBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sRecordedPlayerBufferCommands)) + sRecordedPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else RecordedPlayerBufferExecCompleted(); } @@ -217,26 +217,26 @@ static void RecordedPlayerBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) RecordedPlayerBufferExecCompleted(); } static void sub_81899F0(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); RecordedPlayerBufferExecCompleted(); } } static void sub_8189A58(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; RecordedPlayerBufferExecCompleted(); } } @@ -245,53 +245,53 @@ static void sub_8189AA0(void) { bool32 r6 = FALSE; - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } } - if (r6 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (r6 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_8189A58; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_8189A58; } } else { if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -302,8 +302,8 @@ static void sub_8189AA0(void) if (r6) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3; - gBattleBankFunc[gActiveBank] = sub_8189A58; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; + gBattlerFuncs[gActiveBattler] = sub_8189A58; } } } @@ -312,48 +312,48 @@ static void sub_8189D40(void) { bool32 r10 = FALSE; - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); } } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40 + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 && !IsCryPlayingOrClearCrySongs()) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) { if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) m4aMPlayContinue(&gMPlayInfo_BGM); } else @@ -362,68 +362,68 @@ static void sub_8189D40(void) } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1; r10 = TRUE; } - if (r10 && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (r10 && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0; - gBattleBankFunc[gActiveBank] = sub_8189AA0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; + gBattlerFuncs[gActiveBattler] = sub_8189AA0; } } static void sub_818A064(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].animEnded && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0) + if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) RecordedPlayerBufferExecCompleted(); } static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); RecordedPlayerBufferExecCompleted(); } } static void sub_818A114(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); RecordedPlayerBufferExecCompleted(); } } static void sub_818A1B0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); RecordedPlayerBufferExecCompleted(); } } @@ -436,7 +436,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -455,20 +455,20 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_818A2B4(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) { - CopyBattleSpriteInvisibility(gActiveBank); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + CopyBattleSpriteInvisibility(gActiveBattler); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleBankFunc[gActiveBank] = sub_818A328; + gBattlerFuncs[gActiveBattler] = sub_818A328; } } static void sub_818A328(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { RecordedPlayerBufferExecCompleted(); } @@ -476,66 +476,66 @@ static void sub_818A328(void) static void sub_818A37C(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); - gBattleBankFunc[gActiveBank] = sub_818A2B4; + gBattlerFuncs[gActiveBattler] = sub_818A2B4; } } static void sub_818A470(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); } - if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) + if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - gBattleBankFunc[gActiveBank] = sub_818A37C; + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + gBattlerFuncs[gActiveBattler] = sub_818A37C; } } static void RecordedPlayerBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = RecordedPlayerBufferRunCommand; + gBattlerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) RecordedPlayerBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) RecordedPlayerBufferExecCompleted(); } @@ -546,13 +546,13 @@ static void RecordedPlayerHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyRecordedPlayerMonData(gBattlePartyID[gActiveBank], monData); + size += CopyRecordedPlayerMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -574,7 +574,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); @@ -640,7 +640,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -655,7 +655,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -880,13 +880,13 @@ static void RecordedPlayerHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetRecordedPlayerMonData(gBattlePartyID[gActiveBank]); + SetRecordedPlayerMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -899,11 +899,11 @@ static void RecordedPlayerHandleSetMonData(void) static void SetRecordedPlayerMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -944,10 +944,10 @@ static void SetRecordedPlayerMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -961,167 +961,167 @@ static void SetRecordedPlayerMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); } static void RecordedPlayerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++) - dst[i] = gBattleBufferA[gActiveBank][3 + i]; + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) + dst[i] = gBattleBufferA[gActiveBattler][3 + i]; RecordedPlayerBufferExecCompleted(); } @@ -1130,28 +1130,28 @@ static void RecordedPlayerHandleLoadMonSprite(void) { u16 species; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); - sub_806A068(species, GetBankPosition(gActiveBank)); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBank, 2), - GetBankSpriteDefault_Y(gActiveBank), - sub_80A82E4(gActiveBank)); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); - gBattleBankFunc[gActiveBank] = sub_818A064; + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBankCoord(gActiveBattler, 2), + GetBankSpriteDefault_Y(gActiveBattler), + sub_80A82E4(gActiveBattler)); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerFuncs[gActiveBattler] = sub_818A064; } static void RecordedPlayerHandleSwitchInAnim(void) { - ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_818BA6C(gActiveBank, gBattleBufferA[gActiveBank][2]); - gBattleBankFunc[gActiveBank] = sub_818A470; + ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_818BA6C(gActiveBattler, gBattleBufferA[gActiveBattler][2]); + gBattlerFuncs[gActiveBattler] = sub_818A470; } static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) @@ -1162,7 +1162,7 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, @@ -1187,36 +1187,36 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) static void RecordedPlayerHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); RecordedPlayerBufferExecCompleted(); } } static void DoSwitchOutAnimation(void) { - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattleBankFunc[gActiveBank] = sub_818A1B0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); + gBattlerFuncs[gActiveBattler] = sub_818A1B0; } break; } @@ -1241,7 +1241,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((GetBankPosition(gActiveBank) & BIT_MON) != 0) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 90; else // first mon xPos = 32; @@ -1266,31 +1266,31 @@ static void RecordedPlayerHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); - DecompressTrainerFrontPic(trainerPicId, gActiveBank); - sub_806A1C0(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); - - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; - gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0; - gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1; + DecompressTrainerFrontPic(trainerPicId, gActiveBattler); + sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y = 48; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBankSpriteIds[gActiveBattler]].oam.affineMode = 0; + gSprites[gBankSpriteIds[gActiveBattler]].hFlip = 1; } else { - DecompressTrainerBackPic(trainerPicId, gActiveBank); - sub_806A12C(trainerPicId, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank)); - - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; + DecompressTrainerBackPic(trainerPicId, gActiveBattler); + sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; } - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void RecordedPlayerHandleTrainerSlide(void) @@ -1300,34 +1300,34 @@ static void RecordedPlayerHandleTrainerSlide(void) static void RecordedPlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); - gBattleBankFunc[gActiveBank] = sub_81899F0; + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerFuncs[gActiveBattler] = sub_81899F0; } static void RecordedPlayerHandleFaintAnimation(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++; + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; - gBattleBankFunc[gActiveBank] = sub_818A114; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerFuncs[gActiveBattler] = sub_818A114; } } } @@ -1354,51 +1354,51 @@ static void RecordedPlayerHandlePause(void) static void RecordedPlayerHandleMoveAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { RecordedPlayerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = RecordedPlayerDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = RecordedPlayerDoMoveAnimation; } } } static void RecordedPlayerDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); - u8 multihit = gBattleBufferA[gActiveBank][11]; + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); + u8 multihit = gBattleBufferA[gActiveBattler][11]; - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1406,20 +1406,20 @@ static void RecordedPlayerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; RecordedPlayerBufferExecCompleted(); } break; @@ -1432,10 +1432,10 @@ static void RecordedPlayerHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void RecordedPlayerHandlePrintSelectionString(void) @@ -1445,9 +1445,9 @@ static void RecordedPlayerHandlePrintSelectionString(void) static void ChooseActionInBattlePalace(void) { - if (gBattleCommunication[4] >= gBattleBanksCount / 2) + if (gBattleCommunication[4] >= gBattlersCount / 2) { - EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0); + EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBattler), 0); RecordedPlayerBufferExecCompleted(); } } @@ -1456,11 +1456,11 @@ static void RecordedPlayerHandleChooseAction(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gBattleBankFunc[gActiveBank] = ChooseActionInBattlePalace; + gBattlerFuncs[gActiveBattler] = ChooseActionInBattlePalace; } else { - EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0); + EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBattler), 0); RecordedPlayerBufferExecCompleted(); } } @@ -1478,8 +1478,8 @@ static void RecordedPlayerHandleChooseMove(void) } else { - u8 moveId = RecordedBattle_ReadBankAction(gActiveBank); - u8 target = RecordedBattle_ReadBankAction(gActiveBank); + u8 moveId = RecordedBattle_ReadBankAction(gActiveBattler); + u8 target = RecordedBattle_ReadBankAction(gActiveBattler); EmitTwoReturnValues(1, 10, moveId | (target << 8)); } @@ -1493,8 +1493,8 @@ static void RecordedPlayerHandleChooseItem(void) static void RecordedPlayerHandleChoosePokemon(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank); - EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBank), NULL); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_ReadBankAction(gActiveBattler); + EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); RecordedPlayerBufferExecCompleted(); } @@ -1508,24 +1508,24 @@ static void RecordedPlayerHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], 0, HP_CURRENT); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], 0, HP_CURRENT); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void RecordedPlayerHandleExpUpdate(void) @@ -1535,24 +1535,24 @@ static void RecordedPlayerHandleExpUpdate(void) static void RecordedPlayerHandleStatusIconUpdate(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON); - bank = gActiveBank; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void RecordedPlayerHandleStatusAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1], - gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24)); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation; + InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], + gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1609,7 +1609,7 @@ static void RecordedPlayerHandleCmd37(void) static void RecordedPlayerHandleCmd38(void) { - gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1]; + gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1]; RecordedPlayerBufferExecCompleted(); } @@ -1627,16 +1627,16 @@ static void RecordedPlayerHandleCmd40(void) static void RecordedPlayerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { RecordedPlayerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1649,25 +1649,25 @@ static void RecordedPlayerHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); RecordedPlayerBufferExecCompleted(); } static void RecordedPlayerHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } RecordedPlayerBufferExecCompleted(); @@ -1675,7 +1675,7 @@ static void RecordedPlayerHandlePlayFanfareOrBGM(void) static void RecordedPlayerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); RecordedPlayerBufferExecCompleted(); @@ -1683,7 +1683,7 @@ static void RecordedPlayerHandleFaintingCry(void) static void RecordedPlayerHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; RecordedPlayerBufferExecCompleted(); } @@ -1694,35 +1694,35 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) u8 taskId; u32 trainerPicId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender; + trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender; else trainerPicId = gSaveBlock2Ptr->playerGender; LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_818CC24, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_120; + gBattlerFuncs[gActiveBattler] = nullsub_120; } static void sub_818CC24(u8 taskId) @@ -1733,62 +1733,62 @@ static void sub_818CC24(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; + gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_818BA6C(gActiveBank, FALSE); + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_818BA6C(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_818BA6C(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); - sub_818BA6C(gActiveBank, FALSE); - gActiveBank ^= BIT_MON; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_818BA6C(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + sub_818BA6C(gActiveBattler, FALSE); + gActiveBattler ^= BIT_FLANK; } - gBattleBankFunc[gActiveBank] = sub_8189D40; - gActiveBank = savedActiveBank; + gBattlerFuncs[gActiveBattler] = sub_8189D40; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } static void RecordedPlayerHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { RecordedPlayerBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; - if (gBattleBufferA[gActiveBank][2] != 0) - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D; + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattleBankFunc[gActiveBank] = sub_818CDF4; + gBattlerFuncs[gActiveBattler] = sub_818CDF4; } } static void sub_818CDF4(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0; RecordedPlayerBufferExecCompleted(); } } static void RecordedPlayerHandleCmd49(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; RecordedPlayerBufferExecCompleted(); } @@ -1799,25 +1799,25 @@ static void RecordedPlayerHandleCmd50(void) static void RecordedPlayerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBank)) + if (IsBankSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1]; - CopyBattleSpriteInvisibility(gActiveBank); + gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + CopyBattleSpriteInvisibility(gActiveBattler); } RecordedPlayerBufferExecCompleted(); } static void RecordedPlayerHandleBattleAnimation(void) { - if (!mplay_80342A4(gActiveBank)) + if (!mplay_80342A4(gActiveBattler)) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) RecordedPlayerBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } @@ -1833,11 +1833,11 @@ static void RecordedPlayerHandleResetActionMoveSelection(void) static void RecordedPlayerHandleCmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); RecordedPlayerBufferExecCompleted(); - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_121(void) diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index a605e4cb8..9e90d660c 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -23,20 +23,20 @@ #include "pokeblock.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -180,15 +180,15 @@ static void nullsub_114(void) void SetControllerToSafari(void) { - gBattleBankFunc[gActiveBank] = SafariBufferRunCommand; + gBattlerFuncs[gActiveBattler] = SafariBufferRunCommand; } static void SafariBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sSafariBufferCommands)) - sSafariBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sSafariBufferCommands)) + sSafariBufferCommands[gBattleBufferA[gActiveBattler][0]](); else SafariBufferExecCompleted(); } @@ -200,7 +200,7 @@ static void HandleInputChooseAction(void) { PlaySE(SE_SELECT); - switch (gActionSelectionCursor[gActiveBank]) + switch (gActionSelectionCursor[gActiveBattler]) { case 0: EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_BALL, 0); @@ -219,49 +219,49 @@ static void HandleInputChooseAction(void) } else if (gMain.newKeys & DPAD_LEFT) { - if (gActionSelectionCursor[gActiveBank] & 1) + if (gActionSelectionCursor[gActiveBattler] & 1) { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gActionSelectionCursor[gActiveBank] & 1)) + if (!(gActionSelectionCursor[gActiveBattler] & 1)) { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 1; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 1; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_UP) { - if (gActionSelectionCursor[gActiveBank] & 2) + if (gActionSelectionCursor[gActiveBattler] & 2) { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gActionSelectionCursor[gActiveBank] & 2)) + if (!(gActionSelectionCursor[gActiveBattler] & 2)) { PlaySE(SE_SELECT); - ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]); - gActionSelectionCursor[gActiveBank] ^= 2; - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); + gActionSelectionCursor[gActiveBattler] ^= 2; + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); } } } static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) SafariBufferExecCompleted(); } @@ -273,7 +273,7 @@ static void CompleteOnInactiveTextPrinter(void) static void CompleteOnHealthboxSpriteCallbackDummy(void) { - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) SafariBufferExecCompleted(); } @@ -289,7 +289,7 @@ static void sub_81595E4(void) static void CompleteOnSpecialAnimDone(void) { - if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) SafariBufferExecCompleted(); } @@ -297,7 +297,7 @@ static void SafariOpenPokeblockCase(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBank] = CompleteWhenChosePokeblock; + gBattlerFuncs[gActiveBattler] = CompleteWhenChosePokeblock; FreeAllWindowBuffers(); OpenPokeblockCaseInBattle(); } @@ -314,29 +314,29 @@ static void CompleteWhenChosePokeblock(void) static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) SafariBufferExecCompleted(); } static void SafariBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = SafariBufferRunCommand; + gBattlerFuncs[gActiveBattler] = SafariBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) SafariBufferExecCompleted(); } @@ -377,18 +377,18 @@ static void SafariHandleReturnMonToBall(void) static void SafariHandleDrawTrainerPic(void) { - DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBank); - sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite( + DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBattler); + sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void SafariHandleTrainerSlide(void) @@ -415,18 +415,18 @@ static void SafariHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void SafariHandleBallThrowAnim(void) { - u8 ballThrowCaseId = gBattleBufferA[gActiveBank][1]; + u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1]; gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void SafariHandlePause(void) @@ -445,15 +445,15 @@ static void SafariHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void SafariHandlePrintSelectionString(void) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) SafariHandlePrintString(); else SafariBufferExecCompleted(); @@ -465,7 +465,7 @@ static void HandleChooseActionAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 160; - gBattleBankFunc[gActiveBank] = HandleInputChooseAction; + gBattlerFuncs[gActiveBattler] = HandleInputChooseAction; } } @@ -473,13 +473,13 @@ static void SafariHandleChooseAction(void) { s32 i; - gBattleBankFunc[gActiveBank] = HandleChooseActionAfterDma3; + gBattlerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; BattleHandleAddTextPrinter(gText_SafariZoneMenu, 2); for (i = 0; i < 4; i++) ActionSelectionDestroyCursorAt(i); - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo2); BattleHandleAddTextPrinter(gDisplayedStringBattle, 1); } @@ -499,8 +499,8 @@ static void SafariHandleChooseItem(void) s32 i; BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattleBankFunc[gActiveBank] = SafariOpenPokeblockCase; - gBankInMenu = gActiveBank; + gBattlerFuncs[gActiveBattler] = SafariOpenPokeblockCase; + gBankInMenu = gActiveBattler; } static void SafariHandleChoosePokemon(void) @@ -525,7 +525,7 @@ static void SafariHandleExpUpdate(void) static void SafariHandleStatusIconUpdate(void) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_SAFARI_BALLS_TEXT); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_SAFARI_BALLS_TEXT); SafariBufferExecCompleted(); } @@ -613,25 +613,25 @@ static void SafariHandlePlaySE(void) { s8 pan; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) pan = PAN_SIDE_PLAYER; else pan = PAN_SIDE_OPPONENT; - PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan); + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); SafariBufferExecCompleted(); } static void SafariHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } SafariBufferExecCompleted(); @@ -639,7 +639,7 @@ static void SafariHandlePlayFanfareOrBGM(void) static void SafariHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry1(species, 25); SafariBufferExecCompleted(); @@ -647,17 +647,17 @@ static void SafariHandleFaintingCry(void) static void SafariHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; SafariBufferExecCompleted(); } static void SafariHandleIntroTrainerBallThrow(void) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_SAFARI_ALL_TEXT); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); - gBattleBankFunc[gActiveBank] = CompleteOnHealthboxSpriteCallbackDummy; + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + gBattlerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy; } static void SafariHandleDrawPartyStatusSummary(void) @@ -682,13 +682,13 @@ static void SafariHandleSpriteInvisibility(void) static void SafariHandleBattleAnimation(void) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) SafariBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } static void SafariHandleLinkStandbyMsg(void) @@ -703,12 +703,12 @@ static void SafariHandleResetActionMoveSelection(void) static void SafariHandleCmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); SafariBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) - gBattleBankFunc[gActiveBank] = sub_81595E4; + gBattlerFuncs[gActiveBattler] = sub_81595E4; } static void nullsub_115(void) diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 11fb0074f..d12a0a907 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -29,26 +29,26 @@ #include "party_menu.h" extern u32 gBattleExecBuffer; -extern u8 gActiveBank; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gAbsentBankFlags; -extern u8 gBattleBanksCount; +extern u8 gActiveBattler; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gAbsentBattlerFlags; +extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gMultiUsePlayerCursor; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u16 gPartnerTrainerId; extern struct SpriteTemplate gUnknown_0202499C; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gSpecialVar_ItemId; -extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT]; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u8 gNumberOfMovesToChoose; extern u16 gBattle_BG0_X; @@ -56,7 +56,7 @@ extern u16 gBattle_BG0_Y; extern s32 gUnknown_0203CD70; extern u8 gBankInMenu; extern u32 gBattlePalaceMoveSelectionRngValue; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u8 gUnknown_020244B4[]; extern u16 gUnknown_020243FC; extern struct UnusedControllerStruct gUnknown_02022D0C; @@ -204,7 +204,7 @@ static void nullsub_117(void) void SetControllerToWally(void) { - gBattleBankFunc[gActiveBank] = WallyBufferRunCommand; + gBattlerFuncs[gActiveBattler] = WallyBufferRunCommand; gBattleStruct->wallyBattleState = 0; gBattleStruct->wallyMovesState = 0; gBattleStruct->wallyWaitFrames = 0; @@ -213,10 +213,10 @@ void SetControllerToWally(void) static void WallyBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBank]) + if (gBattleExecBuffer & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sWallyBufferCommands)) - sWallyBufferCommands[gBattleBufferA[gActiveBank][0]](); + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sWallyBufferCommands)) + sWallyBufferCommands[gBattleBufferA[gActiveBattler][0]](); else WallyBufferExecCompleted(); } @@ -284,7 +284,7 @@ static void WallyHandleActions(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } @@ -304,7 +304,7 @@ static void OpenBagAfterPaletteFade(void) { if (!gPaletteFade.active) { - gBattleBankFunc[gActiveBank] = CompleteOnChosenItem; + gBattlerFuncs[gActiveBattler] = CompleteOnChosenItem; nullsub_35(); FreeAllWindowBuffers(); DoWallyTutorialBagMenu(); @@ -322,30 +322,30 @@ static void CompleteOnChosenItem(void) static void sub_816864C(void) { - 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].ballAnimActive) - sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive - && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL); - sub_8076918(gActiveBank ^ BIT_MON); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler ^ BIT_FLANK); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); } - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); - sub_8076918(gActiveBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); + UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + sub_8076918(gActiveBattler); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattleBankFunc[gActiveBank] = sub_8168818; + gBattlerFuncs[gActiveBattler] = sub_8168818; } } @@ -354,23 +354,23 @@ static void sub_8168818(void) { bool32 r4 = FALSE; - if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) r4 = TRUE; - if (r4 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 - && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (r4 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 + && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } @@ -378,24 +378,24 @@ static void sub_8168818(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } } static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBank]; + u8 spriteId = gBankSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -414,46 +414,46 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_8168A20(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); WallyBufferExecCompleted(); } } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) + if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } static void CompleteOnFinishedBattleAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive) WallyBufferExecCompleted(); } static void WallyBufferExecCompleted(void) { - gBattleBankFunc[gActiveBank] = WallyBufferRunCommand; + gBattlerFuncs[gActiveBattler] = WallyBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); PrepareBufferDataTransferLink(2, 4, &playerId); - gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP; + gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP; } else { - gBattleExecBuffer &= ~gBitTable[gActiveBank]; + gBattleExecBuffer &= ~gBitTable[gActiveBattler]; } } static void CompleteOnFinishedStatusAnimation(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive) WallyBufferExecCompleted(); } @@ -464,13 +464,13 @@ static void WallyHandleGetMonData(void) u8 monToCheck; s32 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyWallyMonData(gBattlePartyID[gActiveBank], monData); + size += CopyWallyMonData(gBattlePartyID[gActiveBattler], monData); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -492,7 +492,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst) u32 data32; s32 size = 0; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); @@ -558,7 +558,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE); + data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE); dst[0] = data16; dst[1] = data16 >> 8; size = 2; @@ -573,7 +573,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst) case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE); + dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE); size = 1; break; case REQUEST_OTID_BATTLE: @@ -798,13 +798,13 @@ static void WallyHandleSetMonData(void) u8 monToCheck; u8 i; - if (gBattleBufferA[gActiveBank][2] == 0) + if (gBattleBufferA[gActiveBattler][2] == 0) { - SetWallyMonData(gBattlePartyID[gActiveBank]); + SetWallyMonData(gBattlePartyID[gActiveBattler]); } else { - monToCheck = gBattleBufferA[gActiveBank][2]; + monToCheck = gBattleBufferA[gActiveBattler][2]; for (i = 0; i < 6; i++) { if (monToCheck & 1) @@ -817,11 +817,11 @@ static void WallyHandleSetMonData(void) static void SetWallyMonData(u8 monId) { - struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3]; - struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3]; + struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3]; + struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3]; s32 i; - switch (gBattleBufferA[gActiveBank][1]) + switch (gBattleBufferA[gActiveBattler][1]) { case REQUEST_ALL_BATTLE: { @@ -862,10 +862,10 @@ static void SetWallyMonData(u8 monId) } break; case REQUEST_SPECIES_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HELDITEM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: for (i = 0; i < 4; i++) @@ -879,158 +879,158 @@ static void SetWallyMonData(u8 monId) case REQUEST_MOVE2_BATTLE: case REQUEST_MOVE3_BATTLE: case REQUEST_MOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PP_DATA_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]); break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: case REQUEST_PPMOVE3_BATTLE: case REQUEST_PPMOVE4_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_OTID_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_EXP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_EV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_FRIENDSHIP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKERUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LOCATION_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MET_GAME_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_POKEBALL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ALL_IVS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]); - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]); - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]); break; case REQUEST_HP_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_IV_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_PERSONALITY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CHECKSUM_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_STATUS_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_LEVEL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MAX_HP_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_ATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_DEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPEED_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPATK_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SPDEF_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SHEEN_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_COOL_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_BEAUTY_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_CUTE_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_SMART_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_TOUGH_RIBBON_BATTLE: - SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]); + SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); } static void WallyHandleSetRawMonData(void) @@ -1050,48 +1050,48 @@ static void WallyHandleSwitchInAnim(void) static void WallyHandleReturnMonToBall(void) { - if (gBattleBufferA[gActiveBank][1] == 0) + if (gBattleBufferA[gActiveBattler][1] == 0) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattleBankFunc[gActiveBank] = sub_8168A20; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); + gBattlerFuncs[gActiveBattler] = sub_8168A20; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]); + FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); WallyBufferExecCompleted(); } } static void WallyHandleDrawTrainerPic(void) { - DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBank); - sub_806A12C(BACK_PIC_WALLY, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, + DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBattler); + sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords), 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void WallyHandleTrainerSlide(void) { - DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBank); - sub_806A12C(BACK_PIC_WALLY, GetBankPosition(gActiveBank)); - gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, + DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBattler); + sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler)); + gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords), 30); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; - gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } static void WallyHandleTrainerSlideBack(void) @@ -1113,18 +1113,18 @@ static void WallyHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; } static void WallyHandleBallThrowAnim(void) { - u8 ballThrowCaseId = gBattleBufferA[gActiveBank][1]; + u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1]; gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation; + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; } static void WallyHandlePause(void) @@ -1134,46 +1134,46 @@ static void WallyHandlePause(void) static void WallyHandleMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); - gAnimMoveTurn = gBattleBufferA[gActiveBank][3]; - gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8); - gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24); - gAnimFriendship = gBattleBufferA[gActiveBank][10]; - gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8); - gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16]; - gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality; + gAnimMoveTurn = gBattleBufferA[gActiveBattler][3]; + gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8); + gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24); + gAnimFriendship = gBattleBufferA[gActiveBattler][10]; + gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16]; + gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality; if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE { WallyBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; - gBattleBankFunc[gActiveBank] = WallyDoMoveAnimation; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; + gBattlerFuncs[gActiveBattler] = WallyDoMoveAnimation; } } static void WallyDoMoveAnimation(void) { - u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8); + u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8); - switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState) + switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { sub_805EB9C(0); DoMoveAnim(move); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } break; case 2: @@ -1181,19 +1181,19 @@ static void WallyDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute) + if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) { - InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); } - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } break; case 3: - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { CopyAllBattleSpritesInvisibilities(); - TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; + TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; WallyBufferExecCompleted(); } break; @@ -1206,15 +1206,15 @@ static void WallyHandlePrintString(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - stringId = (u16*)(&gBattleBufferA[gActiveBank][2]); + stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; + gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void WallyHandlePrintSelectionString(void) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) WallyHandlePrintString(); else WallyBufferExecCompleted(); @@ -1226,7 +1226,7 @@ static void HandleChooseActionAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 160; - gBattleBankFunc[gActiveBank] = WallyHandleActions; + gBattlerFuncs[gActiveBattler] = WallyHandleActions; } } @@ -1234,13 +1234,13 @@ static void WallyHandleChooseAction(void) { s32 i; - gBattleBankFunc[gActiveBank] = HandleChooseActionAfterDma3; + gBattlerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; BattleHandleAddTextPrinter(gText_BattleMenu, 2); for (i = 0; i < 4; i++) ActionSelectionDestroyCursorAt(i); - ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0); + ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillWallyDo); BattleHandleAddTextPrinter(gDisplayedStringBattle, 1); } @@ -1281,8 +1281,8 @@ static void WallyHandleChooseMove(void) static void WallyHandleChooseItem(void) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattleBankFunc[gActiveBank] = OpenBagAfterPaletteFade; - gBankInMenu = gActiveBank; + gBattlerFuncs[gActiveBattler] = OpenBagAfterPaletteFade; + gBankInMenu = gActiveBattler; } static void WallyHandleChoosePokemon(void) @@ -1300,24 +1300,24 @@ static void WallyHandleHealthBarUpdate(void) s16 hpVal; LoadBattleBarGfx(0); - hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], 0, HP_CURRENT); + SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], 0, HP_CURRENT); } - gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone; + gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void WallyHandleExpUpdate(void) @@ -1402,16 +1402,16 @@ static void WallyHandleCmd40(void) static void WallyHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE) + if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) { WallyBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; - DoHitAnimHealthboxEffect(gActiveBank); - gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; + gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + DoHitAnimHealthboxEffect(gActiveBattler); + gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1422,20 +1422,20 @@ static void WallyHandleCmd42(void) static void WallyHandlePlaySE(void) { - PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlaySE(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); WallyBufferExecCompleted(); } static void WallyHandlePlayFanfareOrBGM(void) { - if (gBattleBufferA[gActiveBank][3]) + if (gBattleBufferA[gActiveBattler][3]) { BattleStopLowHpSound(); - PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } else { - PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); + PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8)); } WallyBufferExecCompleted(); @@ -1443,7 +1443,7 @@ static void WallyHandlePlayFanfareOrBGM(void) static void WallyHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); PlayCry1(species, 25); WallyBufferExecCompleted(); @@ -1451,7 +1451,7 @@ static void WallyHandleFaintingCry(void) static void WallyHandleIntroSlide(void) { - HandleIntroSlide(gBattleBufferA[gActiveBank][1]); + HandleIntroSlide(gBattleBufferA[gActiveBattler][1]); gUnknown_020243FC |= 1; WallyBufferExecCompleted(); } @@ -1461,29 +1461,29 @@ static void WallyHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); + oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; - gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; + gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); + StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_WALLY].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum; + gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_816AC04, 5); - gTasks[taskId].data[0] = gActiveBank; + gTasks[taskId].data[0] = gActiveBattler; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1) - gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1) + gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattleBankFunc[gActiveBank] = nullsub_21; + gBattlerFuncs[gActiveBattler] = nullsub_21; } static void sub_816AA80(u8 bank) @@ -1494,7 +1494,7 @@ static void sub_816AA80(u8 bank) gBattlePartyID[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - sub_806A068(species, GetBankPosition(bank)); + sub_806A068(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), GetBankSpriteDefault_Y(bank), @@ -1521,27 +1521,27 @@ static void sub_816AC04(u8 taskId) } else { - u8 savedActiveBank = gActiveBank; + u8 savedActiveBank = gActiveBattler; - gActiveBank = gTasks[taskId].data[0]; - gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank]; - sub_816AA80(gActiveBank); - gBattleBankFunc[gActiveBank] = sub_816864C; - gActiveBank = savedActiveBank; + gActiveBattler = gTasks[taskId].data[0]; + gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + sub_816AA80(gActiveBattler); + gBattlerFuncs[gActiveBattler] = sub_816864C; + gActiveBattler = savedActiveBank; DestroyTask(taskId); } } static void WallyHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { WallyBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1; - gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1; + gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); WallyBufferExecCompleted(); } } @@ -1563,13 +1563,13 @@ static void WallyHandleSpriteInvisibility(void) static void WallyHandleBattleAnimation(void) { - u8 animationId = gBattleBufferA[gActiveBank][1]; - u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8); + u8 animationId = gBattleBufferA[gActiveBattler][1]; + u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); - if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument)) + if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) WallyBufferExecCompleted(); else - gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation; + gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } static void WallyHandleLinkStandbyMsg(void) @@ -1584,13 +1584,13 @@ static void WallyHandleResetActionMoveSelection(void) static void WallyHandleCmd55(void) { - gBattleOutcome = gBattleBufferA[gActiveBank][1]; + gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); BeginFastPaletteFade(3); WallyBufferExecCompleted(); if (!(gBattleTypeFlags & BATTLE_TYPE_WILD) && gBattleTypeFlags & BATTLE_TYPE_LINK) - gBattleBankFunc[gActiveBank] = sub_80587B0; + gBattlerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_118(void) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 499d816be..aafc106aa 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -15,28 +15,28 @@ extern u32 gBattleTypeFlags; extern u32 gBattleExecBuffer; extern void (*gBattleMainFunc)(void); -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); -extern u8 gBankPositions[BATTLE_BANKS_COUNT]; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; -extern u8 gActiveBank; +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; +extern u8 gActiveBattler; extern u8 gUnknown_0202428C; extern u32 gUnknown_02022FF4; extern u8 gUnknown_0203C7B4; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBuffersTransferData[0x100]; extern u8 gUnknown_02022D08; extern u8 gUnknown_02022D09; extern u8 gUnknown_02022D0A; -extern u8 gBankAttacker; -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u8 gEffectBank; extern u16 gBattleWeather; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern u16 gChosenMove; extern u16 gLastUsedItem; @@ -76,10 +76,10 @@ void SetUpBattleVarsAndBirchZigzagoon(void) gBattleMainFunc = nullsub_20; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - gBattleBankFunc[i] = nullsub_21; - gBankPositions[i] = 0xFF; + gBattlerFuncs[i] = nullsub_21; + gBattlerPositions[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; } @@ -124,7 +124,7 @@ void sub_8032768(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) sub_81B8D64(i, 0); } @@ -145,34 +145,34 @@ static void SetControllersVariables(void) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { - gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToPlayerPartner; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToPlayerPartner; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[3] = SetControllerToOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } else { - gBattleBankFunc[0] = SetControllerToPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToPlayerPartner; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToPlayerPartner; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[3] = SetControllerToOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } - gBattleBanksCount = 4; + gBattlersCount = 4; sub_81B8D64(0, 0); sub_81B8D64(1, 0); @@ -189,18 +189,18 @@ static void SetControllersVariables(void) gBattleMainFunc = BeginBattleIntro; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - gBattleBankFunc[0] = SetControllerToSafari; + gBattlerFuncs[0] = SetControllerToSafari; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) - gBattleBankFunc[0] = SetControllerToWally; + gBattlerFuncs[0] = SetControllerToWally; else - gBattleBankFunc[0] = SetControllerToPlayer; + gBattlerFuncs[0] = SetControllerToPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBanksCount = 2; + gBattlersCount = 2; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { @@ -210,32 +210,32 @@ static void SetControllersVariables(void) { gBattleMainFunc = BeginBattleIntro; - gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToRecordedOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToRecordedOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBanksCount = 2; + gBattlersCount = 2; } else // see how the banks are switched { - gBattleBankFunc[1] = SetControllerToRecordedPlayer; - gBankPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[1] = SetControllerToRecordedPlayer; + gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[0] = SetControllerToRecordedOpponent; - gBankPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[0] = SetControllerToRecordedOpponent; + gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattleBanksCount = 2; + gBattlersCount = 2; } } else { - gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; } } } @@ -243,19 +243,19 @@ static void SetControllersVariables(void) { gBattleMainFunc = BeginBattleIntro; - gBattleBankFunc[0] = SetControllerToPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToPlayer; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToPlayer; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[3] = SetControllerToOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; - gBattleBanksCount = 4; + gBattlersCount = 4; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { @@ -263,19 +263,19 @@ static void SetControllersVariables(void) { gBattleMainFunc = BeginBattleIntro; - gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBankPositions[0] = 0; + gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerPositions[0] = 0; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = 1; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = 1; - gBattleBankFunc[2] = SetControllerToRecordedPlayer; - gBankPositions[2] = 2; + gBattlerFuncs[2] = SetControllerToRecordedPlayer; + gBattlerPositions[2] = 2; - gBattleBankFunc[3] = SetControllerToOpponent; - gBankPositions[3] = 3; + gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerPositions[3] = 3; - gBattleBanksCount = 4; + gBattlersCount = 4; sub_81B8D64(0, 0); sub_81B8D64(1, 0); @@ -291,7 +291,7 @@ static void SetControllersVariables(void) { u8 var; // multiplayer Id in a recorded battle? - for (var = gUnknown_0203C7B4, i = 0; i < BATTLE_BANKS_COUNT; i++) + for (var = gUnknown_0203C7B4, i = 0; i < MAX_BATTLERS_COUNT; i++) { switch (gLinkPlayers[i].lp_field_18) { @@ -307,17 +307,17 @@ static void SetControllersVariables(void) if (i == var) { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; + gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -325,34 +325,34 @@ static void SetControllersVariables(void) else if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[var].lp_field_18 & 1)) || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[var].lp_field_18 & 1))) { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; + gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } } else { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent; + gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_LEFT; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_LEFT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBankPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_RIGHT; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_RIGHT; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -361,52 +361,52 @@ static void SetControllersVariables(void) } else if (gBattleTypeFlags & BATTLE_TYPE_WILD) { - gBattleBankFunc[0] = SetControllerToRecordedPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[2] = SetControllerToRecordedPlayer; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToRecordedPlayer; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { - gBattleBankFunc[1] = SetControllerToRecordedOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToRecordedOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[3] = SetControllerToRecordedOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToRecordedOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } else { - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[3] = SetControllerToOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } } else { - gBattleBankFunc[1] = SetControllerToRecordedPlayer; - gBankPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[1] = SetControllerToRecordedPlayer; + gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[3] = SetControllerToRecordedPlayer; - gBankPositions[3] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[3] = SetControllerToRecordedPlayer; + gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { - gBattleBankFunc[0] = SetControllerToRecordedOpponent; - gBankPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[0] = SetControllerToRecordedOpponent; + gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToRecordedOpponent; - gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[2] = SetControllerToRecordedOpponent; + gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; } else { - gBattleBankFunc[0] = SetControllerToOpponent; - gBankPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[0] = SetControllerToOpponent; + gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToOpponent; - gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[2] = SetControllerToOpponent; + gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; } } } @@ -424,23 +424,23 @@ static void SetControllersVariablesInLinkBattle(void) { gBattleMainFunc = BeginBattleIntro; - gBattleBankFunc[0] = SetControllerToPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToLinkOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToLinkOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBanksCount = 2; + gBattlersCount = 2; } else { - gBattleBankFunc[1] = SetControllerToPlayer; - gBankPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[1] = SetControllerToPlayer; + gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[0] = SetControllerToLinkOpponent; - gBankPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[0] = SetControllerToLinkOpponent; + gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattleBanksCount = 2; + gBattlersCount = 2; } } else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -449,35 +449,35 @@ static void SetControllersVariablesInLinkBattle(void) { gBattleMainFunc = BeginBattleIntro; - gBattleBankFunc[0] = SetControllerToPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToLinkOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToLinkOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToPlayer; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToPlayer; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[3] = SetControllerToLinkOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToLinkOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; - gBattleBanksCount = 4; + gBattlersCount = 4; } else { - gBattleBankFunc[1] = SetControllerToPlayer; - gBankPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[1] = SetControllerToPlayer; + gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[0] = SetControllerToLinkOpponent; - gBankPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[0] = SetControllerToLinkOpponent; + gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[3] = SetControllerToPlayer; - gBankPositions[3] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[3] = SetControllerToPlayer; + gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[2] = SetControllerToLinkOpponent; - gBankPositions[2] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[2] = SetControllerToLinkOpponent; + gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; - gBattleBanksCount = 4; + gBattlersCount = 4; } } else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) @@ -486,35 +486,35 @@ static void SetControllersVariablesInLinkBattle(void) { gBattleMainFunc = BeginBattleIntro; - gBattleBankFunc[0] = SetControllerToPlayer; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToLinkPartner; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToLinkPartner; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[3] = SetControllerToOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; - gBattleBanksCount = 4; + gBattlersCount = 4; } else { - gBattleBankFunc[0] = SetControllerToLinkPartner; - gBankPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerFuncs[0] = SetControllerToLinkPartner; + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattleBankFunc[1] = SetControllerToLinkOpponent; - gBankPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerFuncs[1] = SetControllerToLinkOpponent; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattleBankFunc[2] = SetControllerToPlayer; - gBankPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerFuncs[2] = SetControllerToPlayer; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattleBankFunc[3] = SetControllerToLinkOpponent; - gBankPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlerFuncs[3] = SetControllerToLinkOpponent; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; - gBattleBanksCount = 4; + gBattlersCount = 4; } sub_81B8D64(0, 0); @@ -533,7 +533,7 @@ static void SetControllersVariablesInLinkBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_WILD) gBattleMainFunc = BeginBattleIntro; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { switch (gLinkPlayers[i].lp_field_18) { @@ -549,17 +549,17 @@ static void SetControllersVariablesInLinkBattle(void) if (i == multiplayerId) { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer; + gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gBankPositions[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBankPositions[gLinkPlayers[i].lp_field_18] = 2; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -569,34 +569,34 @@ static void SetControllersVariablesInLinkBattle(void) if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1)) || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1))) { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner; + gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gBankPositions[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBankPositions[gLinkPlayers[i].lp_field_18] = 2; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } } else { - gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent; + gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: - gBankPositions[gLinkPlayers[i].lp_field_18] = 1; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = 1; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: - gBankPositions[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPositions[gLinkPlayers[i].lp_field_18] = 3; gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; break; } @@ -604,7 +604,7 @@ static void SetControllersVariablesInLinkBattle(void) } } - gBattleBanksCount = 4; + gBattlersCount = 4; } } @@ -614,13 +614,13 @@ static void SetBattlePartyIds(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < 6; j++) { if (i < 2) { - if (GET_BANK_SIDE2(i) == SIDE_PLAYER) + if (GET_BATTLER_SIDE2(i) == B_SIDE_PLAYER) { if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE @@ -645,7 +645,7 @@ static void SetBattlePartyIds(void) } else { - if (GET_BANK_SIDE2(i) == SIDE_PLAYER) + if (GET_BATTLER_SIDE2(i) == B_SIDE_PLAYER) { if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0 && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2. @@ -693,14 +693,14 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size) case 0: for (i = 0; i < size; i++) { - gBattleBufferA[gActiveBank][i] = *data; + gBattleBufferA[gActiveBattler][i] = *data; data++; } break; case 1: for (i = 0; i < size; i++) { - gBattleBufferB[gActiveBank][i] = *data; + gBattleBufferB[gActiveBattler][i] = *data; data++; } break; @@ -751,12 +751,12 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) gTasks[gUnknown_02022D08].data[14] = 0; } gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankDefender; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBattler; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattleAttacker; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattleDefender; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBattlerFlags; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BANK] = gEffectBank; for (i = 0; i < size; i++) @@ -920,9 +920,9 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; - gBankDefender = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; - gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; + gBattleAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; + gBattleDefender = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; + gAbsentBattlerFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; } break; @@ -1123,13 +1123,13 @@ void EmitPrintString(u8 bufferId, u16 stringID) stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; - stringInfo->scrActive = gBattleScripting.bank; + stringInfo->scrActive = gBattleScripting.battler; stringInfo->unk1605E = gBattleStruct->field_52; stringInfo->hpScale = gBattleStruct->hpScale; stringInfo->StringBank = gStringBank; stringInfo->moveType = gBattleMoves[gCurrentMove].type; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { @@ -1155,10 +1155,10 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; - stringInfo->scrActive = gBattleScripting.bank; + stringInfo->scrActive = gBattleScripting.battler; stringInfo->unk1605E = gBattleStruct->field_52; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 4bfbebf98..a6b6f7a09 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -23,17 +23,17 @@ #include "contest.h" #include "constants/songs.h" -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gActiveBank; -extern u8 gBattleBanksCount; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gActiveBattler; +extern u8 gBattlersCount; extern u16 gUnknown_020243FC; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gBankPositions[BATTLE_BANKS_COUNT]; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; -extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; extern struct MusicPlayerInfo gMPlayInfo_BGM; @@ -109,7 +109,7 @@ static const struct CompressedSpriteSheet gUnknown_0832C100 = gUnknown_08C1F8E8, 0x1000, TAG_HEALTHBOX_SAFARI_TILE }; -static const struct CompressedSpriteSheet gUnknown_0832C108[BATTLE_BANKS_COUNT] = +static const struct CompressedSpriteSheet gUnknown_0832C108[MAX_BATTLERS_COUNT] = { {gBlankGfxCompressed, 0x0100, 0xd704}, {gBlankGfxCompressed, 0x0120, 0xd705}, @@ -127,10 +127,10 @@ static const struct SpritePalette gUnknown_0832C128[2] = void AllocateBattleSpritesData(void) { gBattleSpritesDataPtr = AllocZeroed(sizeof(struct BattleSpriteData)); - gBattleSpritesDataPtr->bankData = AllocZeroed(sizeof(struct BattleSpriteInfo) * BATTLE_BANKS_COUNT); - gBattleSpritesDataPtr->healthBoxesData = AllocZeroed(sizeof(struct BattleHealthboxInfo) * BATTLE_BANKS_COUNT); + gBattleSpritesDataPtr->bankData = AllocZeroed(sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); + gBattleSpritesDataPtr->healthBoxesData = AllocZeroed(sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT); gBattleSpritesDataPtr->animationData = AllocZeroed(sizeof(struct BattleAnimationInfo)); - gBattleSpritesDataPtr->battleBars = AllocZeroed(sizeof(struct BattleBarInfo) * BATTLE_BANKS_COUNT); + gBattleSpritesDataPtr->battleBars = AllocZeroed(sizeof(struct BattleBarInfo) * MAX_BATTLERS_COUNT); } void FreeBattleSpritesData(void) @@ -149,17 +149,17 @@ u16 ChooseMoveAndTargetInBattlePalace(void) { s32 i, var1, var2; s32 chosenMoveId = -1; - struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); - u8 unusableMovesBits = CheckMoveLimitations(gActiveBank, 0, 0xFF); + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); + u8 unusableMovesBits = CheckMoveLimitations(gActiveBattler, 0, 0xFF); s32 percent = Random() % 100; - i = (gBattleStruct->field_92 & gBitTable[gActiveBank]) ? 2 : 0; + i = (gBattleStruct->field_92 & gBitTable[gActiveBattler]) ? 2 : 0; var2 = i; var1 = i + 2; for (; i < var1; i++) { - if (gUnknown_0831C494[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)][i] > percent) + if (gUnknown_0831C494[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)][i] > percent) break; } @@ -234,13 +234,13 @@ u16 ChooseMoveAndTargetInBattlePalace(void) if (Random() % 100 > 49) { - gProtectStructs[gActiveBank].flag_x10 = 1; + gProtectStructs[gActiveBattler].flag_x10 = 1; return 0; } } else { - gProtectStructs[gActiveBank].flag_x10 = 1; + gProtectStructs[gActiveBattler].flag_x10 = 1; return 0; } } @@ -258,11 +258,11 @@ u16 ChooseMoveAndTargetInBattlePalace(void) } if (var1 & MOVE_TARGET_x10) - chosenMoveId |= (gActiveBank << 8); + chosenMoveId |= (gActiveBattler << 8); else if (var1 == MOVE_TARGET_SELECTED) chosenMoveId |= (BattlePalaceGetTargetRetValue()); else - chosenMoveId |= (GetBankByPosition((GetBankPosition(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8); + chosenMoveId |= (GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE) << 8); return chosenMoveId; } @@ -297,21 +297,21 @@ static u16 BattlePalaceGetTargetRetValue(void) { u8 opposing1, opposing2; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - opposing1 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - opposing2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + opposing1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + opposing2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { - opposing1 = GetBankByPosition(B_POSITION_PLAYER_LEFT); - opposing2 = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + opposing1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + opposing2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp) - return (((gActiveBank & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8; + return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8; - switch (gUnknown_0831C604[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)]) + switch (gUnknown_0831C604[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)]) { case 0: if (gBattleMons[opposing1].hp > gBattleMons[opposing2].hp) @@ -324,11 +324,11 @@ static u16 BattlePalaceGetTargetRetValue(void) else return opposing2 << 8; case 2: - return (((gActiveBank & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8; + return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8; } } - return (gActiveBank ^ BIT_SIDE) << 8; + return (gActiveBattler ^ BIT_SIDE) << 8; } void sub_805D714(struct Sprite *sprite) @@ -388,36 +388,36 @@ static void sub_805D7EC(struct Sprite *sprite) void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 1; if (!isStatus2) { if (status == STATUS1_FREEZE) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_FRZ); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_FRZ); else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PSN); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_PSN); else if (status == STATUS1_BURN) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_BRN); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_BRN); else if (status & STATUS1_SLEEP) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_SLP); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_SLP); else if (status == STATUS1_PARALYSIS) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PRZ); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_PRZ); else // no animation - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 0; } else { if (status & STATUS2_INFATUATION) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_INFATUATION); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_INFATUATION); else if (status & STATUS2_CONFUSION) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_CONFUSION); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_CONFUSION); else if (status & STATUS2_CURSED) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_CURSED); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_CURSED); else if (status & STATUS2_NIGHTMARE) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_NIGHTMARE); + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_NIGHTMARE); else if (status & STATUS2_WRAPPED) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_WRAPPED); // this animation doesn't actually exist + LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_WRAPPED); // this animation doesn't actually exist else // no animation - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 0; } } @@ -524,7 +524,7 @@ bool8 mplay_80342A4(u8 bank) if (IsSEPlaying()) { gBattleSpritesDataPtr->healthBoxesData[bank].field_8++; - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_8 < 30) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_8 < 30) return TRUE; m4aMPlayStop(&gMPlayInfo_SE1); @@ -561,7 +561,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) } otId = GetMonData(mon, MON_DATA_OT_ID); - position = GetBankPosition(bank); + position = GetBattlerPosition(bank); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[position], species, currentPersonality); @@ -614,7 +614,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) } otId = GetMonData(mon, MON_DATA_OT_ID); - position = GetBankPosition(bank); + position = GetBattlerPosition(bank); if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) { @@ -665,7 +665,7 @@ void nullsub_24(u16 species) void DecompressTrainerFrontPic(u16 frontPicId, u8 bank) { - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); DecompressPicFromTable_2(&gTrainerFrontPicTable[frontPicId], gMonSpritesGfxPtr->sprites[position], SPECIES_NONE); @@ -674,7 +674,7 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 bank) void DecompressTrainerBackPic(u16 backPicId, u8 bank) { - u8 position = GetBankPosition(bank); + u8 position = GetBattlerPosition(bank); DecompressPicFromTable_2(&gTrainerBackPicTable[backPicId], gMonSpritesGfxPtr->sprites[position], SPECIES_NONE); @@ -713,7 +713,7 @@ void sub_805DFFC(void) numberOfBanks = 4; } for (i = 0; i < numberOfBanks; i++) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[i]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[i]]); } bool8 BattleLoadAllHealthBoxesGfx(u8 state) @@ -739,9 +739,9 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) else if (state == 3) LoadCompressedObjectPic(&gUnknown_0832C0D8); else if (state == 4) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[0]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]); else if (state == 5) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[1]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]); else retVal = TRUE; } @@ -756,13 +756,13 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) else if (state == 5) LoadCompressedObjectPic(&gUnknown_0832C0F0[1]); else if (state == 6) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[0]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]); else if (state == 7) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[1]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]); else if (state == 8) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[2]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[2]]); else if (state == 9) - LoadCompressedObjectPic(&gUnknown_0832C108[gBankPositions[3]]); + LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[3]]); else retVal = TRUE; } @@ -807,7 +807,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) gHealthBoxesIds[*bank] = CreateBankHealthboxSprites(*bank); (*bank)++; - if (*bank == gBattleBanksCount) + if (*bank == gBattlersCount) { *bank = 0; (*state1)++; @@ -815,20 +815,20 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) break; case 4: SetBankHealthboxSpritePos(*bank); - if (gBankPositions[*bank] <= 1) + if (gBattlerPositions[*bank] <= 1) DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], FALSE); else DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE); (*bank)++; - if (*bank == gBattleBanksCount) + if (*bank == gBattlersCount) { *bank = 0; (*state1)++; } break; case 5: - if (GetBankSide(*bank) == SIDE_PLAYER) + if (GetBattlerSide(*bank) == B_SIDE_PLAYER) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) UpdateHealthboxAttribute(gHealthBoxesIds[*bank], &gPlayerParty[gBattlePartyID[*bank]], HEALTHBOX_ALL); @@ -839,7 +839,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) } SetHealthboxSpriteInvisible(gHealthBoxesIds[*bank]); (*bank)++; - if (*bank == gBattleBanksCount) + if (*bank == gBattlersCount) { *bank = 0; (*state1)++; @@ -857,21 +857,21 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) void ClearSpritesHealthboxAnimData(void) { - memset(gBattleSpritesDataPtr->healthBoxesData, 0, sizeof(struct BattleHealthboxInfo) * BATTLE_BANKS_COUNT); + memset(gBattleSpritesDataPtr->healthBoxesData, 0, sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT); memset(gBattleSpritesDataPtr->animationData, 0, sizeof(struct BattleAnimationInfo)); } static void ClearSpritesBankHealthboxAnimData(void) { ClearSpritesHealthboxAnimData(); - memset(gBattleSpritesDataPtr->bankData, 0, sizeof(struct BattleSpriteInfo) * BATTLE_BANKS_COUNT); + memset(gBattleSpritesDataPtr->bankData, 0, sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); } void CopyAllBattleSpritesInvisibilities(void) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBankSpriteIds[i]].invisible; } @@ -921,14 +921,14 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) } else { - position = GetBankPosition(bankAtk); + position = GetBattlerPosition(bankAtk); - if (GetBankSide(bankDef) == SIDE_OPPONENT) + if (GetBattlerSide(bankDef) == B_SIDE_OPPONENT) targetSpecies = GetMonData(&gEnemyParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES); else targetSpecies = GetMonData(&gPlayerParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES); - if (GetBankSide(bankAtk) == SIDE_PLAYER) + if (GetBattlerSide(bankAtk) == B_SIDE_PLAYER) { personalityValue = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_PERSONALITY); otId = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID); @@ -991,11 +991,11 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite) if (IsContest()) position = 0; else - position = GetBankPosition(bank); + position = GetBattlerPosition(bank); if (IsContest()) LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]); - else if (GetBankSide(bank) != SIDE_PLAYER) + else if (GetBattlerSide(bank) != B_SIDE_PLAYER) LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[position]); else LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]); @@ -1018,7 +1018,7 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite) { if (!IsContest()) { - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); else BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank); @@ -1057,7 +1057,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) { if (!gBattleSpritesDataPtr->bankData[bank].lowHpSong) { - if (!gBattleSpritesDataPtr->bankData[bank ^ BIT_MON].lowHpSong) + if (!gBattleSpritesDataPtr->bankData[bank ^ BIT_FLANK].lowHpSong) PlaySE(SE_HINSI); gBattleSpritesDataPtr->bankData[bank].lowHpSong = 1; } @@ -1070,7 +1070,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) m4aSongNumStop(SE_HINSI); return; } - if (IsDoubleBattle() && !gBattleSpritesDataPtr->bankData[bank ^ BIT_MON].lowHpSong) + if (IsDoubleBattle() && !gBattleSpritesDataPtr->bankData[bank ^ BIT_FLANK].lowHpSong) { m4aSongNumStop(SE_HINSI); return; @@ -1080,11 +1080,11 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) void BattleStopLowHpSound(void) { - u8 playerBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); + u8 playerBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0; if (IsDoubleBattle()) - gBattleSpritesDataPtr->bankData[playerBank ^ BIT_MON].lowHpSong = 0; + gBattleSpritesDataPtr->bankData[playerBank ^ BIT_FLANK].lowHpSong = 0; m4aSongNumStop(SE_HINSI); } @@ -1101,8 +1101,8 @@ void sub_805EAE8(void) { if (gMain.inBattle) { - u8 playerBank1 = GetBankByPosition(B_POSITION_PLAYER_LEFT); - u8 playerBank2 = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + u8 playerBank1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + u8 playerBank2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]); u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]); @@ -1117,7 +1117,7 @@ void sub_805EB9C(u8 affineMode) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (IsBankSpritePresent(i)) { @@ -1143,13 +1143,13 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); - bank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + bank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; if (IsDoubleBattle()) { - bank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + bank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; } @@ -1189,7 +1189,7 @@ void SpriteCB_SetInvisible(struct Sprite *sprite) void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) return; if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) @@ -1245,7 +1245,7 @@ void AllocateMonSpritesGfx(void) gMonSpritesGfxPtr = AllocZeroed(sizeof(*gMonSpritesGfxPtr)); gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x8000); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000); *(gMonSpritesGfxPtr->templates + i) = gUnknown_08329D98[i]; diff --git a/src/battle_interface.c b/src/battle_interface.c index f7b585ca4..b006a9d31 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -153,10 +153,10 @@ enum HEALTHBOX_GFX_117, }; -extern u8 gBankPositions[BATTLE_BANKS_COUNT]; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern const u8 * const gNatureNamePointers[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; @@ -907,7 +907,7 @@ u8 CreateBankHealthboxSprites(u8 bank) if (!IsDoubleBattle()) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); @@ -932,10 +932,10 @@ u8 CreateBankHealthboxSprites(u8 bank) } else { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { - healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; @@ -947,8 +947,8 @@ u8 CreateBankHealthboxSprites(u8 bank) } else { - healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; @@ -960,9 +960,9 @@ u8 CreateBankHealthboxSprites(u8 bank) } } - unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBankPositions[bank]], 140, 60, 0); + unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBattlerPositions[bank]], 140, 60, 0); unkSpritePtr = &gSprites[unkSpriteId]; - SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBankSide(bank)]); + SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBattlerSide(bank)]); unkSpritePtr->subspriteMode = 2; unkSpritePtr->oam.priority = 1; @@ -1087,7 +1087,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; @@ -1105,14 +1105,14 @@ void SetBankHealthboxSpritePos(u8 bank) if (!IsDoubleBattle()) { - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) x = 44, y = 30; else x = 158, y = 88; } else { - switch (GetBankPosition(bank)) + switch (GetBattlerPosition(bank)) { case B_POSITION_PLAYER_LEFT: x = 159, y = 76; @@ -1156,7 +1156,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId); spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; - if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { objVram = (void*)(OBJ_VRAM0); if (!IsDoubleBattle()) @@ -1180,7 +1180,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u8 text[32]; void *objVram; - if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER && !IsDoubleBattle()) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER && !IsDoubleBattle()) { spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; if (maxOrCurrent != HP_CURRENT) // singles, max @@ -1214,7 +1214,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); bank = gSprites[healthboxSpriteId].data[6]; - if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) + if (IsDoubleBattle() == TRUE || GetBattlerSide(bank) == B_SIDE_OPPONENT) { UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent); } @@ -1223,7 +1223,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u32 var; u8 i; - if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { if (maxOrCurrent == HP_CURRENT) var = 29; @@ -1258,7 +1258,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 u8 text[32]; void *objVram; - if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible { @@ -1335,7 +1335,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 } else { - if (GetBankSide(bank) == SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side + if (GetBattlerSide(bank) == B_SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side { CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116), (void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * 32), @@ -1354,7 +1354,7 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) u8 i, var, nature, healthboxSpriteId_2; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankPosition(gSprites[healthboxSpriteId].data[6]) * 384)]; + barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBattlerPosition(gSprites[healthboxSpriteId].data[6]) * 384)]; var = 5; nature = GetNature(mon); StringCopy(text + 6, gNatureNamePointers[nature]); @@ -1415,17 +1415,17 @@ void SwapHpBarsWithHpText(void) s32 i; u8 spriteId; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy - && GetBankSide(i) != SIDE_OPPONENT - && (IsDoubleBattle() || GetBankSide(i) != SIDE_PLAYER)) + && GetBattlerSide(i) != B_SIDE_OPPONENT + && (IsDoubleBattle() || GetBattlerSide(i) != B_SIDE_PLAYER)) { bool8 noBars; gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars ^= 1; noBars = gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars; - if (GetBankSide(i) == SIDE_PLAYER) + if (GetBattlerSide(i) == B_SIDE_PLAYER) { if (!IsDoubleBattle()) continue; @@ -1486,9 +1486,9 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar u8 ballIconSpritesIds[6]; u8 taskId; - if (!arg2 || GetBankPosition(bank) != B_POSITION_OPPONENT_RIGHT) + if (!arg2 || GetBattlerPosition(bank) != B_POSITION_OPPONENT_RIGHT) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { isOpponent = FALSE; bar_X = 136, bar_Y = 96; @@ -1567,7 +1567,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar gSprites[ballIconSpritesIds[i]].data[2] = isOpponent; } - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -1712,7 +1712,7 @@ void sub_8073C30(u8 taskId) { for (i = 0; i < 6; i++) { - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { gSprites[sp[5 - i]].data[1] = 7 * i; gSprites[sp[5 - i]].data[3] = 0; @@ -1964,7 +1964,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; - if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { sub_8075198((void*)(0x6010040 + spriteTileNum), windowTileData, 6); ptr = (void*)(OBJ_VRAM0); @@ -1992,7 +1992,7 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus) return; bank = gSprites[healthboxSpriteId].data[6]; - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) return; if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) return; @@ -2016,7 +2016,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) bank = gSprites[healthboxSpriteId].data[6]; healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS); if (!IsDoubleBattle()) @@ -2075,7 +2075,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2); CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96); - if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) + if (IsDoubleBattle() == TRUE || GetBattlerSide(bank) == B_SIDE_OPPONENT) { if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) { @@ -2181,9 +2181,9 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem u8 bank = gSprites[healthboxSpriteId].data[6]; if (elementId == HEALTHBOX_ALL && !IsDoubleBattle()) - GetBankSide(bank); // pointless function call + GetBattlerSide(bank); // pointless function call - if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { u8 isDoubles; diff --git a/src/battle_main.c b/src/battle_main.c index 9027b1d14..a0f89f019 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -77,7 +77,7 @@ extern u16 gBattle_WIN1H; extern u16 gBattle_WIN1V; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; -extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; +extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; extern void (*gPreBattleCallback1)(void); extern void (*gBattleMainFunc)(void); extern void (*gCB2_AfterEvolution)(void); @@ -87,54 +87,54 @@ extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; extern u8 gDecompressionBuffer[]; extern u16 gUnknown_020243FC; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; -extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void); -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gStringBank; extern u32 gUnknown_02022F88; extern u32 gHitMarker; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; extern u16 gPaydayMoney; extern u16 gBattleWeather; extern u16 gPauseCounterBattle; extern u16 gRandomTurnNumber; -extern u8 gActiveBank; -extern u8 gBattleBanksCount; -extern u8 gBankAttacker; -extern u8 gBankDefender; +extern u8 gActiveBattler; +extern u8 gBattlersCount; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; extern u8 gLeveledUpInBattle; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u32 gBattleExecBuffer; extern u8 gMultiHitCounter; extern u8 gMoveResultFlags; extern s32 gBattleMoveDamage; -extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; -extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastHitByType[BATTLE_BANKS_COUNT]; -extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT]; -extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; -extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; -extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; +extern const u8* gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT]; +extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastHitByType[MAX_BATTLERS_COUNT]; +extern u16 gLastResultingMoves[MAX_BATTLERS_COUNT]; +extern u16 gLockedMoves[MAX_BATTLERS_COUNT]; +extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; +extern u8 gUnknown_02024284[MAX_BATTLERS_COUNT]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern u16 gSideStatuses[2]; extern u16 gCurrentMove; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; -extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; -extern u8 gActionForBanks[BATTLE_BANKS_COUNT]; -extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; +extern u8 gActionForBanks[MAX_BATTLERS_COUNT]; +extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u8 gCurrentActionFuncId; extern u8 gLastUsedAbility; extern u8 gUnknown_0203CF00[]; -extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern const u8* gSelectionBattleScripts[MAX_BATTLERS_COUNT]; extern const u8* gBattlescriptCurrInstr; -extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gCurrentTurnActionNumber; extern u16 gDynamicBasePower; extern u8 gCritMultiplier; @@ -2506,7 +2506,7 @@ static void sub_8039A48(struct Sprite *sprite) } else { - u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankPosition(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); + u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; @@ -2709,8 +2709,8 @@ static void BattleMainCB1(void) { gBattleMainFunc(); - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) - gBattleBankFunc[gActiveBank](); + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + gBattlerFuncs[gActiveBattler](); } static void BattleStartClearSetData(void) @@ -2722,7 +2722,7 @@ static void BattleStartClearSetData(void) TurnValuesCleanUp(FALSE); SpecialStatusesClear(); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { gStatuses3[i] = 0; @@ -2752,8 +2752,8 @@ static void BattleStartClearSetData(void) dataPtr[j] = 0; } - gBankAttacker = 0; - gBankDefender = 0; + gBattleAttacker = 0; + gBattleDefender = 0; gBattleWeather = 0; dataPtr = (u8 *)&gWishFutureKnock; @@ -2788,7 +2788,7 @@ static void BattleStartClearSetData(void) gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; gLeveledUpInBattle = 0; - gAbsentBankFlags = 0; + gAbsentBattlerFlags = 0; gBattleStruct->runTries = 0; gBattleStruct->field_79 = 0; gBattleStruct->field_7A = 0; @@ -2809,7 +2809,7 @@ static void BattleStartClearSetData(void) *(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { *(gBattleStruct->AI_monToSwitchIntoId + i) = 6; } @@ -2831,19 +2831,19 @@ static void BattleStartClearSetData(void) void SwitchInClearSetData(void) { - struct DisableStruct disableStructCopy = gDisableStructs[gActiveBank]; + struct DisableStruct disableStructCopy = gDisableStructs[gActiveBattler]; s32 i; u8 *ptr; if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) { for (i = 0; i < BATTLE_STATS_NO; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - for (i = 0; i < gBattleBanksCount; i++) + gBattleMons[gActiveBattler].statStages[i] = 6; + for (i = 0; i < gBattlersCount; i++) { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; - if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBank) + if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBattler) { gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; gDisableStructs[i].bankWithSureHit = 0; @@ -2852,14 +2852,14 @@ void SwitchInClearSetData(void) } if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { - gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); - gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); + gBattleMons[gActiveBattler].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); + gStatuses3[gActiveBattler] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(gActiveBank) != GetBankSide(i) + if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i) && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 - && (gDisableStructs[i].bankWithSureHit == gActiveBank)) + && (gDisableStructs[i].bankWithSureHit == gActiveBattler)) { gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS); gStatuses3[i] |= 0x10; @@ -2868,77 +2868,77 @@ void SwitchInClearSetData(void) } else { - gBattleMons[gActiveBank].status2 = 0; - gStatuses3[gActiveBank] = 0; + gBattleMons[gActiveBattler].status2 = 0; + gStatuses3[gActiveBattler] = 0; } - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) - gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); - if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank) + if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler)) + gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler)); + if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler) gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); } - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; - ptr = (u8 *)&gDisableStructs[gActiveBank]; + ptr = (u8 *)&gDisableStructs[gActiveBattler]; for (i = 0; i < sizeof(struct DisableStruct); i++) ptr[i] = 0; if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { - gDisableStructs[gActiveBank].substituteHP = disableStructCopy.substituteHP; - gDisableStructs[gActiveBank].bankWithSureHit = disableStructCopy.bankWithSureHit; - gDisableStructs[gActiveBank].perishSongTimer1 = disableStructCopy.perishSongTimer1; - gDisableStructs[gActiveBank].perishSongTimer2 = disableStructCopy.perishSongTimer2; - gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape; + gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP; + gDisableStructs[gActiveBattler].bankWithSureHit = disableStructCopy.bankWithSureHit; + gDisableStructs[gActiveBattler].perishSongTimer1 = disableStructCopy.perishSongTimer1; + gDisableStructs[gActiveBattler].perishSongTimer2 = disableStructCopy.perishSongTimer2; + gDisableStructs[gActiveBattler].bankPreventingEscape = disableStructCopy.bankPreventingEscape; } gMoveResultFlags = 0; - gDisableStructs[gActiveBank].isFirstTurn = 2; - gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; - gLastMoves[gActiveBank] = 0; - gLastLandedMoves[gActiveBank] = 0; - gLastHitByType[gActiveBank] = 0; - gLastResultingMoves[gActiveBank] = 0; - gLastPrintedMoves[gActiveBank] = 0; - gLastHitBy[gActiveBank] = 0xFF; - - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - - gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); - - for (i = 0; i < gBattleBanksCount; i++) - { - if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) + gDisableStructs[gActiveBattler].isFirstTurn = 2; + gDisableStructs[gActiveBattler].truantUnknownBit = disableStructCopy.truantUnknownBit; + gLastMoves[gActiveBattler] = 0; + gLastLandedMoves[gActiveBattler] = 0; + gLastHitByType[gActiveBattler] = 0; + gLastResultingMoves[gActiveBattler] = 0; + gLastPrintedMoves[gActiveBattler] = 0; + gLastHitBy[gActiveBattler] = 0xFF; + + *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 0) = 0; + *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 1) = 0; + *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + + gBattleStruct->field_92 &= ~(gBitTable[gActiveBattler]); + + for (i = 0; i < gBattlersCount; i++) + { + if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler)) { *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0; *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0; } - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; } - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0; - gBattleResources->flags->flags[gActiveBank] = 0; + gBattleResources->flags->flags[gActiveBattler] = 0; gCurrentMove = 0; gBattleStruct->field_DA = 0xFF; - ClearBankMoveHistory(gActiveBank); - ClearBankAbilityHistory(gActiveBank); + ClearBankMoveHistory(gActiveBattler); + ClearBankAbilityHistory(gActiveBattler); } void FaintClearSetData(void) @@ -2947,91 +2947,91 @@ void FaintClearSetData(void) u8 *ptr; for (i = 0; i < BATTLE_STATS_NO; i++) - gBattleMons[gActiveBank].statStages[i] = 6; + gBattleMons[gActiveBattler].statStages[i] = 6; - gBattleMons[gActiveBank].status2 = 0; - gStatuses3[gActiveBank] = 0; + gBattleMons[gActiveBattler].status2 = 0; + gStatuses3[gActiveBattler] = 0; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank) + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; - if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank)) - gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank)); - if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank) + if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler)) + gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler)); + if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler) gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); } - gActionSelectionCursor[gActiveBank] = 0; - gMoveSelectionCursor[gActiveBank] = 0; + gActionSelectionCursor[gActiveBattler] = 0; + gMoveSelectionCursor[gActiveBattler] = 0; - ptr = (u8 *)&gDisableStructs[gActiveBank]; + ptr = (u8 *)&gDisableStructs[gActiveBattler]; for (i = 0; i < sizeof(struct DisableStruct); i++) ptr[i] = 0; - gProtectStructs[gActiveBank].protected = 0; - gProtectStructs[gActiveBank].endured = 0; - gProtectStructs[gActiveBank].onlyStruggle = 0; - gProtectStructs[gActiveBank].helpingHand = 0; - gProtectStructs[gActiveBank].bounceMove = 0; - gProtectStructs[gActiveBank].stealMove = 0; - gProtectStructs[gActiveBank].flag0Unknown = 0; - gProtectStructs[gActiveBank].prlzImmobility = 0; - gProtectStructs[gActiveBank].confusionSelfDmg = 0; - gProtectStructs[gActiveBank].targetNotAffected = 0; - gProtectStructs[gActiveBank].chargingTurn = 0; - gProtectStructs[gActiveBank].fleeFlag = 0; - gProtectStructs[gActiveBank].usedImprisionedMove = 0; - gProtectStructs[gActiveBank].loveImmobility = 0; - gProtectStructs[gActiveBank].usedDisabledMove = 0; - gProtectStructs[gActiveBank].usedTauntedMove = 0; - gProtectStructs[gActiveBank].flag2Unknown = 0; - gProtectStructs[gActiveBank].flinchImmobility = 0; - gProtectStructs[gActiveBank].notFirstStrike = 0; - - gDisableStructs[gActiveBank].isFirstTurn = 2; - - gLastMoves[gActiveBank] = 0; - gLastLandedMoves[gActiveBank] = 0; - gLastHitByType[gActiveBank] = 0; - gLastResultingMoves[gActiveBank] = 0; - gLastPrintedMoves[gActiveBank] = 0; - gLastHitBy[gActiveBank] = 0xFF; - - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; - - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; - *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; - - gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]); - - for (i = 0; i < gBattleBanksCount; i++) - { - if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank)) + gProtectStructs[gActiveBattler].protected = 0; + gProtectStructs[gActiveBattler].endured = 0; + gProtectStructs[gActiveBattler].onlyStruggle = 0; + gProtectStructs[gActiveBattler].helpingHand = 0; + gProtectStructs[gActiveBattler].bounceMove = 0; + gProtectStructs[gActiveBattler].stealMove = 0; + gProtectStructs[gActiveBattler].flag0Unknown = 0; + gProtectStructs[gActiveBattler].prlzImmobility = 0; + gProtectStructs[gActiveBattler].confusionSelfDmg = 0; + gProtectStructs[gActiveBattler].targetNotAffected = 0; + gProtectStructs[gActiveBattler].chargingTurn = 0; + gProtectStructs[gActiveBattler].fleeFlag = 0; + gProtectStructs[gActiveBattler].usedImprisionedMove = 0; + gProtectStructs[gActiveBattler].loveImmobility = 0; + gProtectStructs[gActiveBattler].usedDisabledMove = 0; + gProtectStructs[gActiveBattler].usedTauntedMove = 0; + gProtectStructs[gActiveBattler].flag2Unknown = 0; + gProtectStructs[gActiveBattler].flinchImmobility = 0; + gProtectStructs[gActiveBattler].notFirstStrike = 0; + + gDisableStructs[gActiveBattler].isFirstTurn = 2; + + gLastMoves[gActiveBattler] = 0; + gLastLandedMoves[gActiveBattler] = 0; + gLastHitByType[gActiveBattler] = 0; + gLastResultingMoves[gActiveBattler] = 0; + gLastPrintedMoves[gActiveBattler] = 0; + gLastHitBy[gActiveBattler] = 0xFF; + + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0; + + *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 0) = 0; + *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 1) = 0; + *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + + gBattleStruct->field_92 &= ~(gBitTable[gActiveBattler]); + + for (i = 0; i < gBattlersCount; i++) + { + if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler)) { *(gBattleStruct->mirrorMoves + i * 2 + 0) = 0; *(gBattleStruct->mirrorMoves + i * 2 + 1) = 0; } - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; - *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; + *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0; + *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0; } - gBattleResources->flags->flags[gActiveBank] = 0; + gBattleResources->flags->flags[gActiveBattler] = 0; - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; - ClearBankMoveHistory(gActiveBank); - ClearBankAbilityHistory(gActiveBank); + ClearBankMoveHistory(gActiveBattler); + ClearBankAbilityHistory(gActiveBattler); } static void BattleIntroGetMonsData(void) @@ -3039,16 +3039,16 @@ static void BattleIntroGetMonsData(void) switch (gBattleCommunication[MULTIUSE_STATE]) { case 0: - gActiveBank = gBattleCommunication[1]; + gActiveBattler = gBattleCommunication[1]; EmitGetMonData(0, 0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleCommunication[MULTIUSE_STATE]++; break; case 1: if (gBattleExecBuffer == 0) { gBattleCommunication[1]++; - if (gBattleCommunication[1] == gBattleBanksCount) + if (gBattleCommunication[1] == gBattlersCount) gBattleMainFunc = BattleIntroPrepareBackgroundSlide; else gBattleCommunication[MULTIUSE_STATE] = 0; @@ -3061,9 +3061,9 @@ static void BattleIntroPrepareBackgroundSlide(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByPosition(0); + gActiveBattler = GetBattlerAtPosition(0); EmitIntroSlide(0, gBattleTerrain); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; gBattleCommunication[0] = 0; gBattleCommunication[1] = 0; @@ -3078,12 +3078,12 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) if (gBattleExecBuffer) return; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) - && GetBankSide(gActiveBank) == SIDE_PLAYER) + && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - ptr = (u8 *)&gBattleMons[gActiveBank]; + ptr = (u8 *)&gBattleMons[gActiveBattler]; for (i = 0; i < sizeof(struct BattlePokemon); i++) ptr[i] = 0; } @@ -3091,46 +3091,46 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) { u16* hpOnSwitchout; - ptr = (u8 *)&gBattleMons[gActiveBank]; + ptr = (u8 *)&gBattleMons[gActiveBattler]; for (i = 0; i < sizeof(struct BattlePokemon); i++) - ptr[i] = gBattleBufferB[gActiveBank][4 + i]; + ptr[i] = gBattleBufferB[gActiveBattler][4 + i]; - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; - gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); - hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(gActiveBank)]; - *hpOnSwitchout = gBattleMons[gActiveBank].hp; + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility); + hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; + *hpOnSwitchout = gBattleMons[gActiveBattler].hp; for (i = 0; i < BATTLE_STATS_NO; i++) - gBattleMons[gActiveBank].statStages[i] = 6; - gBattleMons[gActiveBank].status2 = 0; + gBattleMons[gActiveBattler].statStages[i] = 6; + gBattleMons[gActiveBattler].status2 = 0; } - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_LEFT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - if (GetBankSide(gActiveBank) == SIDE_OPPONENT + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x4000000))) { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } } else { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) { if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -3138,28 +3138,28 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x4000000))) { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } EmitLoadMonSprite(0); - MarkBufferBankForExecution(gActiveBank); - gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); + MarkBufferBankForExecution(gActiveBattler); + gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); } } if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBankPosition(gActiveBank) == B_POSITION_PLAYER_RIGHT - || GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT + || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } - if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankPosition(gActiveBank) == B_POSITION_OPPONENT_RIGHT) + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) @@ -3192,9 +3192,9 @@ static void BattleIntroDrawPartySummaryScreens(void) hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); for (i = 0; i < PARTY_SIZE; i++) { @@ -3210,9 +3210,9 @@ static void BattleIntroDrawPartySummaryScreens(void) hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle; } @@ -3246,8 +3246,8 @@ static void BattleIntroPrintTrainerWantsToBattle(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); + gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + PrepareStringBattle(STRINGID_INTROMSG, gActiveBattler); gBattleMainFunc = BattleIntroPrintOpponentSendsOut; } } @@ -3280,7 +3280,7 @@ static void BattleIntroPrintOpponentSendsOut(void) else position = B_POSITION_OPPONENT_LEFT; - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(position)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(position)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; } @@ -3300,12 +3300,12 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) else position = B_POSITION_OPPONENT_RIGHT; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankPosition(gActiveBank) == position) + if (GetBattlerPosition(gActiveBattler) == position) { EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } @@ -3332,12 +3332,12 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void) if (gBattleExecBuffer) return; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankPosition(gActiveBank) == position) + if (GetBattlerPosition(gActiveBattler) == position) { EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) { gBattleMainFunc = BattleIntroOpponent2SendsOutMonAnimation; @@ -3387,9 +3387,9 @@ _0803B29A:\n\ ldr r2, [r0]\n\ cmp r2, 0\n\ bne _0803B2F2\n\ - ldr r0, =gActiveBank\n\ + ldr r0, =gActiveBattler\n\ strb r2, [r0]\n\ - ldr r1, =gBattleBanksCount\n\ + ldr r1, =gBattlersCount\n\ adds r4, r0, 0\n\ ldrb r1, [r1]\n\ cmp r2, r1\n\ @@ -3397,7 +3397,7 @@ _0803B29A:\n\ adds r6, r4, 0\n\ _0803B2B2:\n\ ldrb r0, [r4]\n\ - bl GetBankPosition\n\ + bl GetBattlerPosition\n\ lsls r0, 24\n\ lsrs r0, 24\n\ cmp r0, r5\n\ @@ -3416,10 +3416,10 @@ _0803B2D8:\n\ ldrb r0, [r6]\n\ adds r0, 0x1\n\ strb r0, [r6]\n\ - ldr r1, =gBattleBanksCount\n\ + ldr r1, =gBattlersCount\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - ldr r4, =gActiveBank\n\ + ldr r4, =gActiveBattler\n\ ldrb r1, [r1]\n\ cmp r0, r1\n\ bcc _0803B2B2\n\ @@ -3442,16 +3442,16 @@ static void BattleIntroRecordMonsToDex(void) { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x4000000))) { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } } gBattleMainFunc = BattleIntroPrintPlayerSendsOut; @@ -3483,7 +3483,7 @@ static void BattleIntroPrintPlayerSendsOut(void) position = B_POSITION_PLAYER_LEFT; if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByPosition(position)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(position)); gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; } @@ -3505,12 +3505,12 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) else position = B_POSITION_PLAYER_RIGHT; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankPosition(gActiveBank) == position) + if (GetBattlerPosition(gActiveBattler) == position) { EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } @@ -3540,12 +3540,12 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) if (gBattleExecBuffer) return; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankPosition(gActiveBank) == position) + if (GetBattlerPosition(gActiveBattler) == position) { EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (gBattleTypeFlags & (BATTLE_TYPE_MULTI)) { gBattleMainFunc = BattleIntroPlayer2SendsOutMonAnimation; @@ -3565,12 +3565,12 @@ void sub_803B598(void) // unused { if (gBattleExecBuffer == 0) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], FALSE); - MarkBufferBankForExecution(gActiveBank); + EmitSwitchInAnim(0, gBattlePartyID[gActiveBattler], FALSE); + MarkBufferBankForExecution(gActiveBattler); } } @@ -3593,13 +3593,13 @@ static void TryDoEventsBeforeFirstTurn(void) if (gBattleStruct->switchInAbilitiesCounter == 0) { - for (i = 0; i < gBattleBanksCount; i++) - gBanksByTurnOrder[i] = i; - for (i = 0; i < gBattleBanksCount - 1; i++) + for (i = 0; i < gBattlersCount; i++) + gBattleTurnOrder[i] = i; + for (i = 0; i < gBattlersCount - 1; i++) { - for (j = i + 1; j < gBattleBanksCount; j++) + for (j = i + 1; j < gBattlersCount; j++) { - if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0) + if (GetWhoStrikesFirst(gBattleTurnOrder[i], gBattleTurnOrder[j], TRUE) != 0) SwapTurnOrder(i, j); } } @@ -3611,9 +3611,9 @@ static void TryDoEventsBeforeFirstTurn(void) return; } // check all switch in abilities happening from the fastest mon to slowest - while (gBattleStruct->switchInAbilitiesCounter < gBattleBanksCount) + while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount) { - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) + if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBattleTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) effect++; gBattleStruct->switchInAbilitiesCounter++; @@ -3626,9 +3626,9 @@ static void TryDoEventsBeforeFirstTurn(void) if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) return; // check all switch in items having effect from the fastest mon to slowest - while (gBattleStruct->switchInItemsCounter < gBattleBanksCount) + while (gBattleStruct->switchInItemsCounter < gBattlersCount) { - if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) + if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattleTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0) effect++; gBattleStruct->switchInItemsCounter++; @@ -3636,7 +3636,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (effect) return; } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { *(gBattleStruct->monToSwitchIntoId + i) = 6; gActionForBanks[i] = ACTION_INIT_VALUE; @@ -3644,7 +3644,7 @@ static void TryDoEventsBeforeFirstTurn(void) } TurnValuesCleanUp(FALSE); SpecialStatusesClear(); - *(&gBattleStruct->field_91) = gAbsentBankFlags; + *(&gBattleStruct->field_91) = gAbsentBattlerFlags; BattleHandleAddTextPrinter(gText_EmptyString3, 0); gBattleMainFunc = HandleTurnActionSelectionState; ResetSentPokesToOpponentValue(); @@ -3652,7 +3652,7 @@ static void TryDoEventsBeforeFirstTurn(void) for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); *(&gBattleStruct->turnEffectsTracker) = 0; @@ -3682,7 +3682,7 @@ static void HandleEndTurn_ContinueBattle(void) gBattleMainFunc = BattleTurnPassed; for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) @@ -3742,7 +3742,7 @@ void BattleTurnPassed(void) gBattleStruct->field_DA++; } - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { gActionForBanks[i] = ACTION_INIT_VALUE; gChosenMovesByBanks[i] = MOVE_NONE; @@ -3751,7 +3751,7 @@ void BattleTurnPassed(void) for (i = 0; i < 4; i++) *(gBattleStruct->monToSwitchIntoId + i) = 6; - *(&gBattleStruct->field_91) = gAbsentBankFlags; + *(&gBattleStruct->field_91) = gAbsentBattlerFlags; BattleHandleAddTextPrinter(gText_EmptyString3, 0); gBattleMainFunc = HandleTurnActionSelectionState; gRandomTurnNumber = Random(); @@ -3768,54 +3768,54 @@ u8 IsRunningFromBattleImpossible(void) u8 side; s32 i; - if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gActiveBank].holdEffect; + if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gActiveBattler].holdEffect; else - holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); - gStringBank = gActiveBank; + gStringBank = gActiveBattler; if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) return 0; if (gBattleTypeFlags & BATTLE_TYPE_LINK) return 0; - if (gBattleMons[gActiveBank].ability == ABILITY_RUN_AWAY) + if (gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY) return 0; - side = GetBankSide(gActiveBank); + side = GetBattlerSide(gActiveBattler); - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (side != GetBankSide(i) + if (side != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_SHADOW_TAG) { - gBattleScripting.bank = i; + gBattleScripting.battler = i; gLastUsedAbility = gBattleMons[i].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; return 2; } - if (side != GetBankSide(i) - && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE - && gBattleMons[gActiveBank].type1 != TYPE_FLYING - && gBattleMons[gActiveBank].type2 != TYPE_FLYING + if (side != GetBattlerSide(i) + && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE + && gBattleMons[gActiveBattler].type1 != TYPE_FLYING + && gBattleMons[gActiveBattler].type2 != TYPE_FLYING && gBattleMons[i].ability == ABILITY_ARENA_TRAP) { - gBattleScripting.bank = i; + gBattleScripting.battler = i; gLastUsedAbility = gBattleMons[i].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; return 2; } } - i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0); - if (i != 0 && (gBattleMons[gActiveBank].type1 == TYPE_STEEL || gBattleMons[gActiveBank].type2 == TYPE_STEEL)) + i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0); + if (i != 0 && (gBattleMons[gActiveBattler].type1 == TYPE_STEEL || gBattleMons[gActiveBattler].type2 == TYPE_STEEL)) { - gBattleScripting.bank = i - 1; + gBattleScripting.battler = i - 1; gLastUsedAbility = gBattleMons[i - 1].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; return 2; } - if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) - || (gStatuses3[gActiveBank] & STATUS3_ROOTED)) + if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) + || (gStatuses3[gActiveBattler] & STATUS3_ROOTED)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; return 1; @@ -3848,7 +3848,7 @@ void sub_803BDA0(u8 bank) for (i = 0; i < 3; i++) { *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; - *((bank ^ BIT_MON) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + *((bank ^ BIT_FLANK) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; } } else @@ -3878,91 +3878,91 @@ static void HandleTurnActionSelectionState(void) s32 i; gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - u8 position = GetBankPosition(gActiveBank); - switch (gBattleCommunication[gActiveBank]) + u8 position = GetBattlerPosition(gActiveBattler); + switch (gBattleCommunication[gActiveBattler]) { case STATE_TURN_START_RECORD: // recorded battle related on start of every turn RecordedBattle_CopyBankMoves(); - gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN; + gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; break; case STATE_BEFORE_ACTION_CHOSEN: // choose an action - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; if (gBattleTypeFlags & BATTLE_TYPE_MULTI - || !(position & BIT_MON) - || gBattleStruct->field_91 & gBitTable[GetBankByPosition(position ^ BIT_MON)] - || gBattleCommunication[GetBankByPosition(position ^ BIT_MON)] == 5) + || !(position & BIT_FLANK) + || gBattleStruct->field_91 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)] + || gBattleCommunication[GetBattlerAtPosition(position ^ BIT_FLANK)] == 5) { - if (gBattleStruct->field_91 & gBitTable[gActiveBank]) + if (gBattleStruct->field_91 & gBitTable[gActiveBattler]) { - gActionForBanks[gActiveBank] = ACTION_NOTHING_FAINTED; + gActionForBanks[gActiveBattler] = ACTION_NOTHING_FAINTED; if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED; + gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED; else - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; } else { - if (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[gActiveBank].status2 & STATUS2_RECHARGE) + if (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[gActiveBattler].status2 & STATUS2_RECHARGE) { - gActionForBanks[gActiveBank] = ACTION_USE_MOVE; - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + gActionForBanks[gActiveBattler] = ACTION_USE_MOVE; + gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; } else { EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); - MarkBufferBankForExecution(gActiveBank); - gBattleCommunication[gActiveBank]++; + MarkBufferBankForExecution(gActiveBattler); + gBattleCommunication[gActiveBattler]++; } } } break; case STATE_WAIT_ACTION_CHOSEN: // try to perform an action - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); - gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1]; + RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); + gActionForBanks[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; - switch (gBattleBufferB[gActiveBank][1]) + switch (gBattleBufferB[gActiveBattler][1]) { case ACTION_USE_MOVE: if (AreAllMovesUnusable()) { - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CONFIRMED_STANDBY; - *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3]; + gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3]; return; } - else if (gDisableStructs[gActiveBank].encoredMove != 0) + else if (gDisableStructs[gActiveBattler].encoredMove != 0) { - gChosenMovesByBanks[gActiveBank] = gDisableStructs[gActiveBank].encoredMove; - *(gBattleStruct->chosenMovePositions + gActiveBank) = gDisableStructs[gActiveBank].encoredMovePos; - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + gChosenMovesByBanks[gActiveBattler] = gDisableStructs[gActiveBattler].encoredMove; + *(gBattleStruct->chosenMovePositions + gActiveBattler) = gDisableStructs[gActiveBattler].encoredMovePos; + gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; return; } else { struct ChooseMoveStruct moveInfo; - moveInfo.species = gBattleMons[gActiveBank].species; - moveInfo.monType1 = gBattleMons[gActiveBank].type1; - moveInfo.monType2 = gBattleMons[gActiveBank].type2; + moveInfo.species = gBattleMons[gActiveBattler].species; + moveInfo.monType1 = gBattleMons[gActiveBattler].type1; + moveInfo.monType2 = gBattleMons[gActiveBattler].type2; for (i = 0; i < 4; i++) { - moveInfo.moves[i] = gBattleMons[gActiveBank].moves[i]; - moveInfo.currentPp[i] = gBattleMons[gActiveBank].pp[i]; + moveInfo.moves[i] = gBattleMons[gActiveBattler].moves[i]; + moveInfo.currentPp[i] = gBattleMons[gActiveBattler].pp[i]; moveInfo.maxPp[i] = CalculatePPWithBonus( - gBattleMons[gActiveBank].moves[i], - gBattleMons[gActiveBank].ppBonuses, + gBattleMons[gActiveBattler].moves[i], + gBattleMons[gActiveBattler].ppBonuses, i); } EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } break; case ACTION_USE_ITEM: @@ -3971,142 +3971,142 @@ static void HandleTurnActionSelectionState(void) | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000)) { - RecordedBattle_ClearBankAction(gActiveBank, 1); - gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + RecordedBattle_ClearBankAction(gActiveBattler, 1); + gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed; + gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN; return; } else { - EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); + EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); + MarkBufferBankForExecution(gActiveBattler); } break; case ACTION_SWITCH: - *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; - if (gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) + *(gBattleStruct->field_58 + gActiveBattler) = gBattlePartyID[gActiveBattler]; + if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gBattleTypeFlags & BATTLE_TYPE_ARENA - || gStatuses3[gActiveBank] & STATUS3_ROOTED) + || gStatuses3[gActiveBattler] & STATUS3_ROOTED) { - EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); } - else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) - || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) - && gBattleMons[gActiveBank].type1 != TYPE_FLYING - && gBattleMons[gActiveBank].type2 != TYPE_FLYING - && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) - || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0)) - && (gBattleMons[gActiveBank].type1 == TYPE_STEEL - || gBattleMons[gActiveBank].type2 == TYPE_STEEL))) + else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0)) + || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0)) + && gBattleMons[gActiveBattler].type1 != TYPE_FLYING + && gBattleMons[gActiveBattler].type2 != TYPE_FLYING + && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE) + || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0)) + && (gBattleMons[gActiveBattler].type1 == TYPE_STEEL + || gBattleMons[gActiveBattler].type2 == TYPE_STEEL))) { - EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBank]); + EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]); } else { - if (gActiveBank == 2 && gActionForBanks[0] == ACTION_SWITCH) - EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); - else if (gActiveBank == 3 && gActionForBanks[1] == ACTION_SWITCH) - EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + if (gActiveBattler == 2 && gActionForBanks[0] == ACTION_SWITCH) + EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); + else if (gActiveBattler == 3 && gActionForBanks[1] == ACTION_SWITCH) + EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); else - EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]); + EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); } - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; case ACTION_SAFARI_ZONE_BALL: if (IsPlayerPartyAndPokemonStorageFull()) { - gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox; - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintFullBox; + gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN; return; } break; case ACTION_POKEBLOCK_CASE: - EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); + EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); + MarkBufferBankForExecution(gActiveBattler); break; case ACTION_CANCEL_PARTNER: - gBattleCommunication[gActiveBank] = 7; - gBattleCommunication[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] = 1; - RecordedBattle_ClearBankAction(gActiveBank, 1); - if (gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE) + gBattleCommunication[gActiveBattler] = 7; + gBattleCommunication[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] = 1; + RecordedBattle_ClearBankAction(gActiveBattler, 1); + if (gBattleMons[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].status2 & STATUS2_RECHARGE) { EmitCmd50(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); return; } - else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH) + else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_SWITCH) { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 2); + RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 2); } - else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_RUN) + else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_RUN) { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); } - else if (gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE - && (gProtectStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].onlyStruggle - || gDisableStructs[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)].encoredMove)) + else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_USE_MOVE + && (gProtectStructs[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].onlyStruggle + || gDisableStructs[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].encoredMove)) { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); } else if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gActionForBanks[GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE) + && gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_USE_MOVE) { gRngValue = gBattlePalaceMoveSelectionRngValue; - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 1); + RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); } else { - RecordedBattle_ClearBankAction(GetBankByPosition(GetBankPosition(gActiveBank) ^ BIT_MON), 3); + RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 3); } EmitCmd50(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); return; } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) - && gBattleBufferB[gActiveBank][1] == ACTION_RUN) + && gBattleBufferB[gActiveBattler][1] == ACTION_RUN) { - gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch; - gBattleCommunication[gActiveBank] = 8; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + gSelectionBattleScripts[gActiveBattler] = BattleScript_AskIfWantsToForfeitMatch; + gBattleCommunication[gActiveBattler] = 8; + *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN; return; } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - && gBattleBufferB[gActiveBank][1] == ACTION_RUN) + && gBattleBufferB[gActiveBattler][1] == ACTION_RUN) { BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); - gBattleCommunication[gActiveBank] = 1; + gBattleCommunication[gActiveBattler] = 1; } else if (IsRunningFromBattleImpossible() - && gBattleBufferB[gActiveBank][1] == ACTION_RUN) + && gBattleBufferB[gActiveBattler][1] == ACTION_RUN) { - gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle; - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; + gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintCantEscapeFromBattle; + gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; + *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN; return; } else { - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; } } break; case STATE_WAIT_ACTION_CASE_CHOSEN: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { - switch (gActionForBanks[gActiveBank]) + switch (gActionForBanks[gActiveBattler]) { case ACTION_USE_MOVE: - switch (gBattleBufferB[gActiveBank][1]) + switch (gBattleBufferB[gActiveBattler][1]) { case 3: case 4: @@ -4115,107 +4115,107 @@ static void HandleTurnActionSelectionState(void) case 7: case 8: case 9: - gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1]; + gActionForBanks[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; return; case 15: - gActionForBanks[gActiveBank] = ACTION_SWITCH; + gActionForBanks[gActiveBattler] = ACTION_SWITCH; sub_803CDF8(); return; default: sub_818603C(2); - if ((gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)) == 0xFFFF) + if ((gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8)) == 0xFFFF) { - gBattleCommunication[gActiveBank] = 1; - RecordedBattle_ClearBankAction(gActiveBank, 1); + gBattleCommunication[gActiveBattler] = 1; + RecordedBattle_ClearBankAction(gActiveBattler, 1); } else if (TrySetCantSelectMoveBattleScript()) { - RecordedBattle_ClearBankAction(gActiveBank, 1); - gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; - *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; - gBattleBufferB[gActiveBank][1] = 0; - *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CHOSEN; + RecordedBattle_ClearBankAction(gActiveBattler, 1); + gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; + *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; + gBattleBufferB[gActiveBattler][1] = 0; + *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CHOSEN; return; } else { if (!(gBattleTypeFlags & BATTLE_TYPE_PALACE)) { - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][2]); - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][3]); + RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][2]); + RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][3]); } - *(gBattleStruct->chosenMovePositions + gActiveBank) = gBattleBufferB[gActiveBank][2]; - gChosenMovesByBanks[gActiveBank] = gBattleMons[gActiveBank].moves[*(gBattleStruct->chosenMovePositions + gActiveBank)]; - *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3]; - gBattleCommunication[gActiveBank]++; + *(gBattleStruct->chosenMovePositions + gActiveBattler) = gBattleBufferB[gActiveBattler][2]; + gChosenMovesByBanks[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)]; + *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3]; + gBattleCommunication[gActiveBattler]++; } break; } break; case ACTION_USE_ITEM: - if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) == 0) + if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) == 0) { - gBattleCommunication[gActiveBank] = 1; + gBattleCommunication[gActiveBattler] = 1; } else { - gLastUsedItem = (gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)); - gBattleCommunication[gActiveBank]++; + gLastUsedItem = (gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)); + gBattleCommunication[gActiveBattler]++; } break; case ACTION_SWITCH: - if (gBattleBufferB[gActiveBank][1] == 6) + if (gBattleBufferB[gActiveBattler][1] == 6) { - gBattleCommunication[gActiveBank] = 1; - RecordedBattle_ClearBankAction(gActiveBank, 1); + gBattleCommunication[gActiveBattler] = 1; + RecordedBattle_ClearBankAction(gActiveBattler, 1); } else { sub_803CDF8(); - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; } break; case ACTION_RUN: gHitMarker |= HITMARKER_RUN; - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; break; case ACTION_WATCHES_CAREFULLY: - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; break; case ACTION_SAFARI_ZONE_BALL: - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; break; case ACTION_POKEBLOCK_CASE: - if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) != 0) + if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) != 0) { - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; } else { - gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN; + gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; } break; case ACTION_GO_NEAR: - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; break; case ACTION_SAFARI_ZONE_RUN: gHitMarker |= HITMARKER_RUN; - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; break; case ACTION_9: - gBattleCommunication[gActiveBank]++; + gBattleCommunication[gActiveBattler]++; break; } } break; case STATE_WAIT_ACTION_CONFIRMED_STANDBY: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { i = (sub_803CDB8() != 0); if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) - || (position & BIT_MON) - || (*(&gBattleStruct->field_91) & gBitTable[GetBankByPosition(position ^ BIT_MON)])) + || (position & BIT_FLANK) + || (*(&gBattleStruct->field_91) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) { EmitLinkStandbyMsg(0, 0, i); } @@ -4223,76 +4223,76 @@ static void HandleTurnActionSelectionState(void) { EmitLinkStandbyMsg(0, 1, i); } - MarkBufferBankForExecution(gActiveBank); - gBattleCommunication[gActiveBank]++; + MarkBufferBankForExecution(gActiveBattler); + gBattleCommunication[gActiveBattler]++; } break; case STATE_WAIT_ACTION_CONFIRMED: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++; } break; case STATE_SELECTION_SCRIPT: - if (*(gBattleStruct->selectionScriptFinished + gActiveBank)) + if (*(gBattleStruct->selectionScriptFinished + gActiveBattler)) { - gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank); + gBattleCommunication[gActiveBattler] = *(gBattleStruct->stateIdAfterSelScript + gActiveBattler); } else { - gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + gBattleAttacker = gActiveBattler; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } - gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; + gSelectionBattleScripts[gActiveBattler] = gBattlescriptCurrInstr; } break; case STATE_WAIT_SET_BEFORE_ACTION: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { - gBattleCommunication[gActiveBank] = 1; + gBattleCommunication[gActiveBattler] = 1; } break; case STATE_SELECTION_SCRIPT_MAY_RUN: - if (*(gBattleStruct->selectionScriptFinished + gActiveBank)) + if (*(gBattleStruct->selectionScriptFinished + gActiveBattler)) { - if (gBattleBufferB[gActiveBank][1] == 13) + if (gBattleBufferB[gActiveBattler][1] == 13) { gHitMarker |= HITMARKER_RUN; - gActionForBanks[gActiveBank] = ACTION_RUN; - gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + gActionForBanks[gActiveBattler] = ACTION_RUN; + gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; } else { - RecordedBattle_ClearBankAction(gActiveBank, 1); - gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank); + RecordedBattle_ClearBankAction(gActiveBattler, 1); + gBattleCommunication[gActiveBattler] = *(gBattleStruct->stateIdAfterSelScript + gActiveBattler); } } else { - gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) + gBattleAttacker = gActiveBattler; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; + if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } - gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; + gSelectionBattleScripts[gActiveBattler] = gBattlescriptCurrInstr; } break; } } // check if everyone chose actions - if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattleBanksCount) + if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattlersCount) { sub_818603C(1); gBattleMainFunc = SetActionsAndBanksTurnOrder; if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gActionForBanks[i] == ACTION_SWITCH) sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i)); @@ -4305,13 +4305,13 @@ static bool8 sub_803CDB8(void) { s32 i, var; - for (var = 0, i = 0; i < gBattleBanksCount; i++) + for (var = 0, i = 0; i < gBattlersCount; i++) { if (gBattleCommunication[i] == 5) var++; } - if (var + 1 == gBattleBanksCount) + if (var + 1 == gBattlersCount) return TRUE; else return FALSE; @@ -4319,18 +4319,18 @@ static bool8 sub_803CDB8(void) static void sub_803CDF8(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1]; - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = gBattleBufferB[gActiveBattler][1]; + RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) { - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0); - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3]; + *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; + *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0); + *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBattler][3]; - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4; - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3]; + *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); + *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4; + *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBattler][3]; } } @@ -4340,9 +4340,9 @@ void SwapTurnOrder(u8 id1, u8 id2) gActionsByTurnOrder[id1] = gActionsByTurnOrder[id2]; gActionsByTurnOrder[id2] = temp; - temp = gBanksByTurnOrder[id1]; - gBanksByTurnOrder[id1] = gBanksByTurnOrder[id2]; - gBanksByTurnOrder[id2] = temp; + temp = gBattleTurnOrder[id1]; + gBattleTurnOrder[id1] = gBattleTurnOrder[id2]; + gBattleTurnOrder[id2] = temp; } u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) @@ -4392,7 +4392,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) // badge boost if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) && FlagGet(FLAG_BADGE03_GET) - && GetBankSide(bank1) == SIDE_PLAYER) + && GetBattlerSide(bank1) == B_SIDE_PLAYER) { speedBank1 = (speedBank1 * 110) / 100; } @@ -4426,7 +4426,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) // badge boost if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) && FlagGet(FLAG_BADGE03_GET) - && GetBankSide(bank2) == SIDE_PLAYER) + && GetBattlerSide(bank2) == B_SIDE_PLAYER) { speedBank2 = (speedBank2 * 110) / 100; } @@ -4507,10 +4507,10 @@ static void SetActionsAndBanksTurnOrder(void) if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gBattleTurnOrder[var] = gActiveBattler; var++; } } @@ -4518,9 +4518,9 @@ static void SetActionsAndBanksTurnOrder(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBank] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == ACTION_RUN) { var = 5; break; @@ -4531,27 +4531,27 @@ static void SetActionsAndBanksTurnOrder(void) { if (gActionForBanks[0] == ACTION_RUN) { - gActiveBank = 0; + gActiveBattler = 0; var = 5; } if (gActionForBanks[2] == ACTION_RUN) { - gActiveBank = 2; + gActiveBattler = 2; var = 5; } } if (var == 5) { - gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[0] = gActiveBank; + gActionsByTurnOrder[0] = gActionForBanks[gActiveBattler]; + gBattleTurnOrder[0] = gActiveBattler; var = 1; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (i != gActiveBank) + if (i != gActiveBattler) { gActionsByTurnOrder[var] = gActionForBanks[i]; - gBanksByTurnOrder[var] = i; + gBattleTurnOrder[var] = i; var++; } } @@ -4561,30 +4561,30 @@ static void SetActionsAndBanksTurnOrder(void) } else { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) + if (gActionForBanks[gActiveBattler] == ACTION_USE_ITEM || gActionForBanks[gActiveBattler] == ACTION_SWITCH) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gBattleTurnOrder[var] = gActiveBattler; var++; } } - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) + if (gActionForBanks[gActiveBattler] != ACTION_USE_ITEM && gActionForBanks[gActiveBattler] != ACTION_SWITCH) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; - gBanksByTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gBattleTurnOrder[var] = gActiveBattler; var++; } } - for (i = 0; i < gBattleBanksCount - 1; i++) + for (i = 0; i < gBattlersCount - 1; i++) { - for (j = i + 1; j < gBattleBanksCount; j++) + for (j = i + 1; j < gBattlersCount; j++) { - u8 bank1 = gBanksByTurnOrder[i]; - u8 bank2 = gBanksByTurnOrder[j]; + u8 bank1 = gBattleTurnOrder[i]; + u8 bank2 = gBattleTurnOrder[j]; if (gActionsByTurnOrder[i] != ACTION_USE_ITEM && gActionsByTurnOrder[j] != ACTION_USE_ITEM && gActionsByTurnOrder[i] != ACTION_SWITCH @@ -4606,32 +4606,32 @@ static void TurnValuesCleanUp(bool8 var0) s32 i; u8 *dataPtr; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (var0) { - gProtectStructs[gActiveBank].protected = 0; - gProtectStructs[gActiveBank].endured = 0; + gProtectStructs[gActiveBattler].protected = 0; + gProtectStructs[gActiveBattler].endured = 0; } else { - dataPtr = (u8*)(&gProtectStructs[gActiveBank]); + dataPtr = (u8*)(&gProtectStructs[gActiveBattler]); for (i = 0; i < sizeof(struct ProtectStruct); i++) dataPtr[i] = 0; - if (gDisableStructs[gActiveBank].isFirstTurn) - gDisableStructs[gActiveBank].isFirstTurn--; + if (gDisableStructs[gActiveBattler].isFirstTurn) + gDisableStructs[gActiveBattler].isFirstTurn--; - if (gDisableStructs[gActiveBank].rechargeCounter) + if (gDisableStructs[gActiveBattler].rechargeCounter) { - gDisableStructs[gActiveBank].rechargeCounter--; - if (gDisableStructs[gActiveBank].rechargeCounter == 0) - gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gActiveBattler].rechargeCounter--; + if (gDisableStructs[gActiveBattler].rechargeCounter == 0) + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_RECHARGE); } } - if (gDisableStructs[gActiveBank].substituteHP == 0) - gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE); + if (gDisableStructs[gActiveBattler].substituteHP == 0) + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_SUBSTITUTE); } gSideTimers[0].followmeTimer = 0; @@ -4640,10 +4640,10 @@ static void TurnValuesCleanUp(bool8 var0) static void SpecialStatusesClear(void) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { s32 i; - u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); + u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBattler]); for (i = 0; i < sizeof(struct SpecialStatus); i++) dataPtr[i] = 0; @@ -4654,14 +4654,14 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { if (!(gHitMarker & HITMARKER_RUN)) { - while (gBattleStruct->focusPunchBank < gBattleBanksCount) + while (gBattleStruct->focusPunchBank < gBattlersCount) { - gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank; + gActiveBattler = gBattleAttacker = gBattleStruct->focusPunchBank; gBattleStruct->focusPunchBank++; - if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH - && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) - && !(gDisableStructs[gBankAttacker].truantCounter) - && !(gProtectStructs[gActiveBank].onlyStruggle)) + if (gChosenMovesByBanks[gActiveBattler] == MOVE_FOCUS_PUNCH + && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) + && !(gDisableStructs[gBattleAttacker].truantCounter) + && !(gProtectStructs[gActiveBattler].onlyStruggle)) { BattleScriptExecute(BattleScript_FocusPunchSetUp); return; @@ -4693,7 +4693,7 @@ static void RunTurnActionsFunctions(void) *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber; sTurnActionsFuncsTable[gCurrentActionFuncId](); - if (gCurrentTurnActionNumber >= gBattleBanksCount) // everyone did their actions, turn finished + if (gCurrentTurnActionNumber >= gBattlersCount) // everyone did their actions, turn finished { gHitMarker &= ~(HITMARKER_x100000); gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; @@ -4716,7 +4716,7 @@ static void HandleEndTurn_BattleWon(void) { gSpecialVar_Result = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattleAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } @@ -4789,7 +4789,7 @@ static void HandleEndTurn_BattleLost(void) else { gBattleTextBuff1[0] = gBattleOutcome; - gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattleAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } @@ -4819,7 +4819,7 @@ static void HandleEndTurn_RanFromBattle(void) } else { - switch (gProtectStructs[gBankAttacker].fleeFlag) + switch (gProtectStructs[gBattleAttacker].fleeFlag) { default: gBattlescriptCurrInstr = BattleScript_GotAwaySafely; @@ -4840,7 +4840,7 @@ static void HandleEndTurn_MonFled(void) { gCurrentActionFuncId = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattlePartyID[gBattleAttacker]); gBattlescriptCurrInstr = BattleScript_WildMonFled; gBattleMainFunc = HandleEndTurn_FinishBattle; @@ -4858,19 +4858,19 @@ static void HandleEndTurn_FinishBattle(void) | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FRONTIER))) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { if (gBattleResults.playerMon1Species == SPECIES_NONE) { - gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name); + gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name); } else { - gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name); + gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name); } } } @@ -5017,9 +5017,9 @@ static void HandleAction_UseMove(void) u8 side; u8 var = 4; - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; - if (*(&gBattleStruct->field_91) & gBitTable[gBankAttacker]) + if (*(&gBattleStruct->field_91) & gBitTable[gBattleAttacker]) { gCurrentActionFuncId = ACTION_FINISHED; return; @@ -5031,186 +5031,186 @@ static void HandleAction_UseMove(void) gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleAttacker); // choose move - if (gProtectStructs[gBankAttacker].onlyStruggle) + if (gProtectStructs[gBattleAttacker].onlyStruggle) { - gProtectStructs[gBankAttacker].onlyStruggle = 0; + gProtectStructs[gBattleAttacker].onlyStruggle = 0; gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } - else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + else if (gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattleAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; + gCurrentMove = gChosenMove = gLockedMoves[gBattleAttacker]; } // encore forces you to use the same move - else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + else if (gDisableStructs[gBattleAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattleAttacker].encoredMove == gBattleMons[gBattleAttacker].moves[gDisableStructs[gBattleAttacker].encoredMovePos]) { - gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gDisableStructs[gBattleAttacker].encoredMove; + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleAttacker].encoredMovePos; + *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(gCurrentMove, 0); } // check if the encored move wasn't overwritten - else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + else if (gDisableStructs[gBattleAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattleAttacker].encoredMove != gBattleMons[gBattleAttacker].moves[gDisableStructs[gBattleAttacker].encoredMovePos]) { - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; - gDisableStructs[gBankAttacker].encoredMovePos = 0; - gDisableStructs[gBankAttacker].encoreTimer1 = 0; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleAttacker].encoredMovePos; + gCurrentMove = gChosenMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; + gDisableStructs[gBattleAttacker].encoredMove = MOVE_NONE; + gDisableStructs[gBattleAttacker].encoredMovePos = 0; + gDisableStructs[gBattleAttacker].encoreTimer1 = 0; + *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(gCurrentMove, 0); } - else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) + else if (gBattleMons[gBattleAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBattleAttacker]) { - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; + *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; } - if (gBattleMons[gBankAttacker].hp != 0) + if (gBattleMons[gBattleAttacker].hp != 0) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) gBattleResults.lastUsedMovePlayer = gCurrentMove; else gBattleResults.lastUsedMoveOpponent = gCurrentMove; } // choose target - side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) + && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) { - gBankDefender = gSideTimers[side].followmeTarget; + gBattleDefender = gSideTimers[side].followmeTarget; } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gSideTimers[side].followmeTimer == 0 && (gBattleMoves[gCurrentMove].power != 0 || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) - && gBattleMons[*(gBattleStruct->moveTarget + gBankAttacker)].ability != ABILITY_LIGHTNING_ROD + && gBattleMons[*(gBattleStruct->moveTarget + gBattleAttacker)].ability != ABILITY_LIGHTNING_ROD && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { - side = GetBankSide(gBankAttacker); - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + side = GetBattlerSide(gBattleAttacker); + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (side != GetBankSide(gActiveBank) - && *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank - && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD - && BankGetTurnOrder(gActiveBank) < var) + if (side != GetBattlerSide(gActiveBattler) + && *(gBattleStruct->moveTarget + gBattleAttacker) != gActiveBattler + && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD + && BankGetTurnOrder(gActiveBattler) < var) { - var = BankGetTurnOrder(gActiveBank); + var = BankGetTurnOrder(gActiveBattler); } } if (var == 4) { if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } } else { - gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); + gBattleDefender = *(gBattleStruct->moveTarget + gBattleAttacker); } - if (gAbsentBankFlags & gBitTable[gBankDefender]) + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) + if (GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender)) { - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); } else { - gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); } } } else { - gActiveBank = gBanksByTurnOrder[var]; - RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); - gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; - gBankDefender = gActiveBank; + gActiveBattler = gBattleTurnOrder[var]; + RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); + gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1; + gBattleDefender = gActiveBattler; } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBankFlags & gBitTable[gBankDefender] - && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) + if (gAbsentBattlerFlags & gBitTable[gBattleDefender] + && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender)) { - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); } } else { - gBankDefender = *(gBattleStruct->moveTarget + gBankAttacker); - if (gAbsentBankFlags & gBitTable[gBankDefender]) + gBattleDefender = *(gBattleStruct->moveTarget + gBattleAttacker); + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) { - if (GetBankSide(gBankAttacker) != GetBankSide(gBankDefender)) + if (GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender)) { - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); } else { - gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetBankByPosition(GetBankPosition(gBankDefender) ^ BIT_MON); + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); } } } // choose battlescript if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gProtectStructs[gBankAttacker].flag_x10) + && gProtectStructs[gBattleAttacker].flag_x10) { - if (gBattleMons[gBankAttacker].hp == 0) + if (gBattleMons[gBattleAttacker].hp == 0) { gCurrentActionFuncId = 12; return; } - else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL) + else if (gPalaceSelectionBattleScripts[gBattleAttacker] != NULL) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker]; - gPalaceSelectionBattleScripts[gBankAttacker] = NULL; + gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattleAttacker]; + gPalaceSelectionBattleScripts[gBattleAttacker] = NULL; } else { @@ -5224,22 +5224,22 @@ static void HandleAction_UseMove(void) } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A56E8(gBankAttacker); + sub_81A56E8(gBattleAttacker); gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; } static void HandleAction_Switch(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gActionSelectionCursor[gBankAttacker] = 0; - gMoveSelectionCursor[gBankAttacker] = 0; + gActionSelectionCursor[gBattleAttacker] = 0; + gMoveSelectionCursor[gBattleAttacker] = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, *(gBattleStruct->field_58 + gBankAttacker)) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, *(gBattleStruct->field_58 + gBattleAttacker)) - gBattleScripting.bank = gBankAttacker; + gBattleScripting.battler = gBattleAttacker; gBattlescriptCurrInstr = BattleScript_ActionSwitch; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; @@ -5249,11 +5249,11 @@ static void HandleAction_Switch(void) static void HandleAction_UseItem(void) { - gBankAttacker = gBankDefender = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleDefender = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - ClearFuryCutterDestinyBondGrudge(gBankAttacker); - gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8); + ClearFuryCutterDestinyBondGrudge(gBattleAttacker); + gLastUsedItem = gBattleBufferB[gBattleAttacker][1] | (gBattleBufferB[gBattleAttacker][2] << 8); if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball { @@ -5263,38 +5263,38 @@ static void HandleAction_UseItem(void) { gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; } - else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + else if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) { gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } else { - gBattleScripting.bank = gBankAttacker; + gBattleScripting.battler = gBattleAttacker; - switch (*(gBattleStruct->AI_itemType + (gBankAttacker >> 1))) + switch (*(gBattleStruct->AI_itemType + (gBattleAttacker >> 1))) { case AI_ITEM_FULL_RESTORE: case AI_ITEM_HEAL_HP: break; case AI_ITEM_CURE_CONDITION: gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1) + if (*(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) & 1) { - if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 0x3E) + if (*(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) & 0x3E) gBattleCommunication[MULTISTRING_CHOOSER] = 5; } else { - while (!(*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1)) + while (!(*(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) & 1)) { - *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) >>= 1; gBattleCommunication[MULTISTRING_CHOOSER]++; } } break; case AI_ITEM_X_STAT: gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1)) & 0x80) + if (*(gBattleStruct->AI_itemFlags + (gBattleAttacker >> 1)) & 0x80) { gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -5303,9 +5303,9 @@ static void HandleAction_UseItem(void) PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) - while (!((*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1))) & 1)) + while (!((*(gBattleStruct->AI_itemFlags + (gBattleAttacker >> 1))) & 1)) { - *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) >>= 1; gBattleTextBuff1[2]++; } @@ -5321,7 +5321,7 @@ static void HandleAction_UseItem(void) break; } - gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBankAttacker / 2)]; + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattleAttacker / 2)]; } gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; } @@ -5399,7 +5399,7 @@ bool8 TryRunFromBattle(u8 bank) if (effect) { - gCurrentTurnActionNumber = gBattleBanksCount; + gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; } @@ -5408,22 +5408,22 @@ bool8 TryRunFromBattle(u8 bank) static void HandleAction_Run(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) { - gCurrentTurnActionNumber = gBattleBanksCount; + gCurrentTurnActionNumber = gBattlersCount; - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - if (gActionForBanks[gActiveBank] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == ACTION_RUN) gBattleOutcome |= B_OUTCOME_LOST; } else { - if (gActionForBanks[gActiveBank] == ACTION_RUN) + if (gActionForBanks[gActiveBattler] == ACTION_RUN) gBattleOutcome |= B_OUTCOME_WON; } } @@ -5433,11 +5433,11 @@ static void HandleAction_Run(void) } else { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) { - if (!TryRunFromBattle(gBankAttacker)) // failed to run away + if (!TryRunFromBattle(gBattleAttacker)) // failed to run away { - ClearFuryCutterDestinyBondGrudge(gBankAttacker); + ClearFuryCutterDestinyBondGrudge(gBattleAttacker); gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; @@ -5445,7 +5445,7 @@ static void HandleAction_Run(void) } else { - if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + if (gBattleMons[gBattleAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; @@ -5453,7 +5453,7 @@ static void HandleAction_Run(void) } else { - gCurrentTurnActionNumber = gBattleBanksCount; + gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_POKE_FLED; } } @@ -5462,7 +5462,7 @@ static void HandleAction_Run(void) static void HandleAction_WatchesCarefully(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; @@ -5471,7 +5471,7 @@ static void HandleAction_WatchesCarefully(void) static void HandleAction_SafariZoneBallThrow(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gNumSafariBalls--; @@ -5482,11 +5482,11 @@ static void HandleAction_SafariZoneBallThrow(void) static void HandleAction_ThrowPokeblock(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1; - gLastUsedItem = gBattleBufferB[gBankAttacker][2]; + gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattleAttacker][1] - 1; + gLastUsedItem = gBattleBufferB[gBattleAttacker][2]; if (gBattleResults.field_1F < 0xFF) gBattleResults.field_1F++; @@ -5506,7 +5506,7 @@ static void HandleAction_ThrowPokeblock(void) static void HandleAction_GoNear(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -5533,19 +5533,19 @@ static void HandleAction_GoNear(void) static void HandleAction_SafriZoneRun(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; PlaySE(SE_NIGERU); - gCurrentTurnActionNumber = gBattleBanksCount; + gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; } static void HandleAction_Action9(void) { - gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattlePartyID[gBattleAttacker]) gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; @@ -5574,7 +5574,7 @@ static void HandleAction_NothingIsFainted(void) static void HandleAction_ActionFinished(void) { - *(gBattleStruct->monToSwitchIntoId + gBanksByTurnOrder[gCurrentTurnActionNumber]) = 6; + *(gBattleStruct->monToSwitchIntoId + gBattleTurnOrder[gCurrentTurnActionNumber]) = 6; gCurrentTurnActionNumber++; gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; SpecialStatusesClear(); @@ -5589,8 +5589,8 @@ static void HandleAction_ActionFinished(void) gMoveResultFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gLastLandedMoves[gBankAttacker] = 0; - gLastHitByType[gBankAttacker] = 0; + gLastLandedMoves[gBattleAttacker] = 0; + gLastHitByType[gBattleAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gDynamicBasePower = 0; gBattleScripting.atk49_state = 0; diff --git a/src/battle_message.c b/src/battle_message.c index 7ab6fcef3..3bfa5b48d 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -16,20 +16,20 @@ extern u16 gLastUsedItem; extern u8 gLastUsedAbility; -extern u8 gActiveBank; -extern u8 gBankAttacker; -extern u8 gBankDefender; +extern u8 gActiveBattler; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; extern u8 gStringBank; extern u8 gEffectBank; -extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT]; +extern u8 gAbilitiesPerBank[MAX_BATTLERS_COUNT]; extern u32 gBattleTypeFlags; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u16 gPartnerTrainerId; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; -extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gUnknown_0203C7B4; extern struct StringInfoBattle *gStringInfo; @@ -1430,16 +1430,16 @@ void BufferStringBattle(u16 stringID) s32 i; const u8* stringPtr = NULL; - gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBank][4]); + gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBattler][4]); gLastUsedItem = gStringInfo->lastItem; gLastUsedAbility = gStringInfo->lastAbility; - gBattleScripting.bank = gStringInfo->scrActive; + gBattleScripting.battler = gStringInfo->scrActive; *(&gBattleStruct->field_52) = gStringInfo->unk1605E; *(&gBattleStruct->hpScale) = gStringInfo->hpScale; gStringBank = gStringInfo->StringBank; *(&gBattleStruct->stringMoveType) = gStringInfo->moveType; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { gAbilitiesPerBank[i] = gStringInfo->abilities[i]; } @@ -1501,7 +1501,7 @@ void BufferStringBattle(u16 stringID) } break; case STRINGID_INTROSENDOUT: // poke first send-out - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -1546,7 +1546,7 @@ void BufferStringBattle(u16 stringID) } break; case STRINGID_RETURNMON: // sending poke to ball msg - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { if (*(&gBattleStruct->hpScale) == 0) stringPtr = gText_PkmnThatsEnough; @@ -1573,7 +1573,7 @@ void BufferStringBattle(u16 stringID) } break; case STRINGID_SWITCHINMON: // switch-in msg - if (GetBankSide(gBattleScripting.bank) == SIDE_PLAYER) + if (GetBattlerSide(gBattleScripting.battler) == B_SIDE_PLAYER) { if (*(&gBattleStruct->hpScale) == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) stringPtr = gText_GoPkmn2; @@ -1590,7 +1590,7 @@ void BufferStringBattle(u16 stringID) { if (gBattleTypeFlags & BATTLE_TYPE_x800000) { - if (gBattleScripting.bank == 1) + if (gBattleScripting.battler == 1) stringPtr = gText_Trainer1SentOutPkmn2; else stringPtr = gText_Trainer2SentOutPkmn; @@ -1609,7 +1609,7 @@ void BufferStringBattle(u16 stringID) { if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (gBattleScripting.bank == 1) + if (gBattleScripting.battler == 1) stringPtr = gText_Trainer1SentOutPkmn2; else stringPtr = gText_Trainer2SentOutPkmn; @@ -1636,7 +1636,7 @@ void BufferStringBattle(u16 stringID) if (gBattleTextBuff1[0] & B_OUTCOME_LINK_BATTLE_RAN) { gBattleTextBuff1[0] &= ~(B_OUTCOME_LINK_BATTLE_RAN); - if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW) gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON); if (gBattleTextBuff1[0] == B_OUTCOME_LOST || gBattleTextBuff1[0] == B_OUTCOME_DREW) @@ -1648,7 +1648,7 @@ void BufferStringBattle(u16 stringID) } else { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW) gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -1754,7 +1754,7 @@ static const u8* TryGetStatusString(u8* src) } #define HANDLE_NICKNAME_STRING_CASE(bank, monIndex) \ - if (GetBankSide(bank) != SIDE_PLAYER) \ + if (GetBattlerSide(bank) != B_SIDE_PLAYER) \ { \ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ toCpy = gText_FoePkmnPrefix; \ @@ -1836,25 +1836,25 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gStringVar3; break; case B_TXT_PLAYER_MON1_NAME: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(B_POSITION_PLAYER_LEFT)]], + GetMonData(&gPlayerParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(B_POSITION_OPPONENT_LEFT)]], + GetMonData(&gEnemyParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(B_POSITION_PLAYER_RIGHT)]], + GetMonData(&gPlayerParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(B_POSITION_OPPONENT_RIGHT)]], + GetMonData(&gEnemyParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; @@ -1884,32 +1884,32 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, - gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker))]) + HANDLE_NICKNAME_STRING_CASE(gBattleAttacker, + gBattlePartyID[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleAttacker))]) break; case B_TXT_ATK_PARTNER_NAME: // attacker partner name - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + GetMonData(&gPlayerParty[gBattlePartyID[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleAttacker)) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPosition(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlePartyID[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleAttacker)) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker]) + HANDLE_NICKNAME_STRING_CASE(gBattleAttacker, gBattlePartyID[gBattleAttacker]) break; case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBankDefender, gBattlePartyID[gBankDefender]) + HANDLE_NICKNAME_STRING_CASE(gBattleDefender, gBattlePartyID[gBattleDefender]) break; case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) break; case B_TXT_ACTIVE_NAME_WITH_PREFIX: // active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gActiveBank, gBattlePartyID[gActiveBank]) + HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlePartyID[gActiveBattler]) break; case B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX: // scripting active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleScripting.bank, gBattlePartyID[gBattleScripting.bank]) + HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, gBattlePartyID[gBattleScripting.battler]) break; case B_TXT_CURRENT_MOVE: // current move name if (gStringInfo->currentMove > LAST_MOVE_INDEX) @@ -1970,13 +1970,13 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gAbilityNames[gLastUsedAbility]; break; case B_TXT_ATK_ABILITY: // attacker ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattleAttacker]]; break; case B_TXT_DEF_ABILITY: // target ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBankDefender]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattleDefender]]; break; case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.bank]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.battler]]; break; case B_TXT_EFF_ABILITY: // effect bank ability toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBank]]; @@ -2048,7 +2048,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gLinkPlayers[GetBankMultiplayerId(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; break; case B_TXT_22: // link scripting active name - toCpy = gLinkPlayers[GetBankMultiplayerId(gBattleScripting.bank)].name; + toCpy = gLinkPlayers[GetBankMultiplayerId(gBattleScripting.battler)].name; break; case B_TXT_PLAYER_NAME: // player name if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) @@ -2085,7 +2085,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) } break; case B_TXT_26: // ? - HANDLE_NICKNAME_STRING_CASE(gBattleScripting.bank, *(&gBattleStruct->field_52)) + HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, *(&gBattleStruct->field_52)) break; case B_TXT_PC_CREATOR_NAME: // lanette pc if (FlagGet(FLAG_SYS_PC_LANETTE)) @@ -2094,37 +2094,37 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gText_Someones; break; case B_TXT_ATK_PREFIX2: - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; break; case B_TXT_DEF_PREFIX2: - if (GetBankSide(gBankDefender) == SIDE_PLAYER) + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; break; case B_TXT_ATK_PREFIX1: - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; break; case B_TXT_DEF_PREFIX1: - if (GetBankSide(gBankDefender) == SIDE_PLAYER) + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; break; case B_TXT_ATK_PREFIX3: - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; break; case B_TXT_DEF_PREFIX3: - if (GetBankSide(gBankDefender) == SIDE_PLAYER) + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; @@ -2266,7 +2266,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) srcID += 2; break; case B_BUFF_MON_NICK_WITH_PREFIX: // poke nick with prefix - if (GetBankSide(src[srcID + 1]) == SIDE_PLAYER) + if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER) { GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text); } @@ -2292,7 +2292,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) srcID += 3; break; case B_BUFF_MON_NICK: // poke nick without prefix - if (GetBankSide(src[srcID + 1]) == SIDE_PLAYER) + if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER) GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); else GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); @@ -2490,10 +2490,10 @@ void BattleHandleAddTextPrinter(const u8 *text, u8 arg1) void SetPpNumbersPaletteInMoveSelection(void) { - struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); const u16 *palPtr = gUnknown_08D85620; - u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBank]], - chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBank]]); + u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], + chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]); gPlttBufferUnfaded[92] = palPtr[(var * 2) + 0]; gPlttBufferUnfaded[91] = palPtr[(var * 2) + 1]; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index be20305fa..8f3036028 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -44,26 +44,26 @@ extern u8 gCritMultiplier; extern s32 gBattleMoveDamage; -extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gActiveBank; +extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u8 gActiveBattler; extern u32 gBattleExecBuffer; -extern u8 gBattleBanksCount; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; -extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gBattlersCount; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; +extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u8 gStringBank; extern u8 gEffectBank; -extern u8 gAbsentBankFlags; +extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; -extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u16 gPauseCounterBattle; extern u16 gPaydayMoney; extern u16 gRandomTurnNumber; -extern u8 gBankAttacker; -extern u8 gBankDefender; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; @@ -78,8 +78,8 @@ extern u16 gDynamicBasePower; extern u16 gLastUsedItem; extern u16 gBattleMovePower; extern s32 gHpDealt; -extern s32 gTakenDmg[BATTLE_BANKS_COUNT]; -extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT]; +extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; +extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT]; extern u8 gSentPokesToOpponent[2]; extern u8 gBank1; extern u16 gExpShareExp; @@ -89,14 +89,14 @@ extern u8 gPlayerPartyCount; extern u16 gMoveToLearn; extern u16 gRandomMove; extern u8 gBankInMenu; -extern u8 gActionForBanks[BATTLE_BANKS_COUNT]; +extern u8 gActionForBanks[MAX_BATTLERS_COUNT]; extern u8 gCurrentTurnActionNumber; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; -extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern u16 gLockedMoves[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u16 gChosenMove; -extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; -extern u16 gLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u8 gUnknown_020241E9; @@ -155,10 +155,10 @@ extern const u8 gText_BattleYesNoChoice[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBankDefender].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) +#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattleDefender].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) -#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBankDefender].moveturnLostHP_physical != 0 \ - || gSpecialStatuses[gBankDefender].moveturnLostHP_special != 0) +#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical != 0 \ + || gSpecialStatuses[gBattleDefender].moveturnLostHP_special != 0) // this file's functions static bool8 IsTwoTurnsMove(u16 move); @@ -1027,7 +1027,7 @@ static void atk00_attackcanceler(void) gCurrentActionFuncId = ACTION_FINISHED; return; } - if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + if (gBattleMons[gBattleAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; @@ -1035,10 +1035,10 @@ static void atk00_attackcanceler(void) } if (AtkCanceller_UnableToUseMove()) return; - if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankDefender, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattleDefender, 0, 0, 0)) return; - if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!gBattleMons[gBattleAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + && !(gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -1047,7 +1047,7 @@ static void atk00_attackcanceler(void) gHitMarker &= ~(HITMARKER_x800000); - if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)) { i = IsMonDisobedient(); // why use the 'i' variable...? switch (i) @@ -1065,44 +1065,44 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBankDefender].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) + if (gProtectStructs[gBattleDefender].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) { - PressurePPLose(gBankAttacker, gBankDefender, MOVE_MAGIC_COAT); - gProtectStructs[gBankDefender].bounceMove = 0; + PressurePPLose(gBattleAttacker, gBattleDefender, MOVE_MAGIC_COAT); + gProtectStructs[gBattleDefender].bounceMove = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; } - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) + if ((gProtectStructs[gBattleTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) { - PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); - gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0; - gBattleScripting.bank = gBanksByTurnOrder[i]; + PressurePPLose(gBattleAttacker, gBattleTurnOrder[i], MOVE_SNATCH); + gProtectStructs[gBattleTurnOrder[i]].stealMove = 0; + gBattleScripting.battler = gBattleTurnOrder[i]; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SnatchedMove; return; } } - if (gSpecialStatuses[gBankDefender].lightningRodRedirected) + if (gSpecialStatuses[gBattleDefender].lightningRodRedirected) { - gSpecialStatuses[gBankDefender].lightningRodRedirected = 0; + gSpecialStatuses[gBattleDefender].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } else if (DEFENDER_IS_PROTECTED - && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)) - && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)))) + && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattleAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleAttacker].type2 == TYPE_GHOST)) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)))) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattleAttacker); gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankDefender] = 0; - gLastHitByType[gBankDefender] = 0; + gLastLandedMoves[gBattleDefender] = 0; + gLastHitByType[gBattleDefender] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1117,14 +1117,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gLastLandedMoves[gBankDefender] = 0; - gLastHitByType[gBankDefender] = 0; + gLastLandedMoves[gBattleDefender] = 0; + gLastHitByType[gBattleDefender] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { TrySetDestinyBondToHappen(); - if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankDefender, 0, 0, move)) + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattleDefender, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; @@ -1159,13 +1159,13 @@ bool8 JumpIfMoveAffectedByProtect(u16 move) static bool8 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBankDefender] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankDefender].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBattleDefender] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattleDefender].bankWithSureHit == gBattleAttacker) { JumpIfMoveFailed(7, move); return TRUE; } - if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankDefender] & STATUS3_ON_AIR) + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattleDefender] & STATUS3_ON_AIR) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1174,7 +1174,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankDefender] & STATUS3_UNDERGROUND) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattleDefender] & STATUS3_UNDERGROUND) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1183,7 +1183,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankDefender] & STATUS3_UNDERWATER) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattleDefender] & STATUS3_UNDERWATER) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1208,9 +1208,9 @@ static void atk01_accuracycheck(void) if (move == 0xFFFE || move == 0xFFFF) { - if (gStatuses3[gBankDefender] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankDefender].bankWithSureHit == gBankAttacker) + if (gStatuses3[gBattleDefender] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattleDefender].bankWithSureHit == gBattleAttacker) gBattlescriptCurrInstr += 7; - else if (gStatuses3[gBankDefender] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + else if (gStatuses3[gBattleDefender] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else if (!JumpIfMoveAffectedByProtect(0)) gBattlescriptCurrInstr += 7; @@ -1231,15 +1231,15 @@ static void atk01_accuracycheck(void) if (AccuracyCalcHelper(move)) return; - if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) { - u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; + u8 acc = gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ACC]; buff = acc; } else { - u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC]; - buff = acc + 6 - gBattleMons[gBankDefender].statStages[STAT_STAGE_EVASION]; + u8 acc = gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ACC]; + buff = acc + 6 - gBattleMons[gBattleDefender].statStages[STAT_STAGE_EVASION]; } if (buff < 0) @@ -1255,25 +1255,25 @@ static void atk01_accuracycheck(void) calc = sAccuracyStageRatios[buff].dividend * moveAcc; calc /= sAccuracyStageRatios[buff].divisor; - if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES) + if (gBattleMons[gBattleAttacker].ability == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost - if (WEATHER_HAS_EFFECT && gBattleMons[gBankDefender].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + if (WEATHER_HAS_EFFECT && gBattleMons[gBattleDefender].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) calc = (calc * 80) / 100; // 1.2 sand veil loss - if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9) + if (gBattleMons[gBattleAttacker].ability == ABILITY_HUSTLE && type < 9) calc = (calc * 80) / 100; // 1.2 hustle loss - if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankDefender].holdEffect; - quality = gEnigmaBerries[gBankDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleDefender].holdEffect; + quality = gEnigmaBerries[gBattleDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); } - gStringBank = gBankDefender; + gStringBank = gBattleDefender; if (holdEffect == HOLD_EFFECT_EVASION_UP) calc = (calc * (100 - quality)) / 100; @@ -1300,7 +1300,7 @@ static void atk02_attackstring(void) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(STRINGID_USEDMOVE, gBankAttacker); + PrepareStringBattle(STRINGID_USEDMOVE, gBattleAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -1314,39 +1314,39 @@ static void atk03_ppreduce(void) if (gBattleExecBuffer) return; - if (!gSpecialStatuses[gBankAttacker].flag20) + if (!gSpecialStatuses[gBattleAttacker].flag20) { switch (gBattleMoves[gCurrentMove].target) { case MOVE_TARGET_FOES_AND_ALLY: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattleAttacker, ABILITY_PRESSURE, 0, 0); break; case MOVE_TARGET_BOTH: case MOVE_TARGET_OPPONENTS_FIELD: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleAttacker, ABILITY_PRESSURE, 0, 0); break; default: - if (gBankAttacker != gBankDefender && gBattleMons[gBankDefender].ability == ABILITY_PRESSURE) + if (gBattleAttacker != gBattleDefender && gBattleMons[gBattleDefender].ability == ABILITY_PRESSURE) ppToDeduct++; break; } } - if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBankAttacker].pp[gCurrMovePos]) + if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattleAttacker].pp[gCurrMovePos]) { - gProtectStructs[gBankAttacker].notFirstStrike = 1; + gProtectStructs[gBattleAttacker].notFirstStrike = 1; - if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > ppToDeduct) - gBattleMons[gBankAttacker].pp[gCurrMovePos] -= ppToDeduct; + if (gBattleMons[gBattleAttacker].pp[gCurrMovePos] > ppToDeduct) + gBattleMons[gBattleAttacker].pp[gCurrMovePos] -= ppToDeduct; else - gBattleMons[gBankAttacker].pp[gCurrMovePos] = 0; + gBattleMons[gBattleAttacker].pp[gCurrMovePos] = 0; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos])) + if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_TRANSFORMED) + && !((gDisableStructs[gBattleAttacker].unk18_b) & gBitTable[gCurrMovePos])) { - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); - MarkBufferBankForExecution(gBankAttacker); + gActiveBattler = gBattleAttacker; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattleAttacker].pp[gCurrMovePos]); + MarkBufferBankForExecution(gBattleAttacker); } } @@ -1359,29 +1359,29 @@ static void atk04_critcalc(void) u8 holdEffect; u16 item, critChance; - item = gBattleMons[gBankAttacker].item; + item = gBattleMons[gBattleAttacker].item; if (item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gBankAttacker].holdEffect; + holdEffect = gEnigmaBerries[gBattleAttacker].holdEffect; else holdEffect = ItemId_GetHoldEffect(item); - gStringBank = gBankAttacker; + gStringBank = gBattleAttacker; - critChance = 2 * ((gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + critChance = 2 * ((gBattleMons[gBattleAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) + (holdEffect == HOLD_EFFECT_SCOPE_LENS) - + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY) - + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD); + + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattleAttacker].species == SPECIES_CHANSEY) + + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattleAttacker].species == SPECIES_FARFETCHD); if (critChance > 4) critChance = 4; - if ((gBattleMons[gBankDefender].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankDefender].ability != ABILITY_SHELL_ARMOR) - && !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT) + if ((gBattleMons[gBattleDefender].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattleDefender].ability != ABILITY_SHELL_ARMOR) + && !(gStatuses3[gBattleAttacker] & STATUS3_CANT_SCORE_A_CRIT) && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) && !(Random() % sCriticalHitChance[critChance])) gCritMultiplier = 2; @@ -1393,32 +1393,32 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 sideStatus = gSideStatuses[GET_BANK_SIDE(gBankDefender)]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankDefender], gCurrentMove, + u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleDefender], gCurrentMove, sideStatus, gDynamicBasePower, - gBattleStruct->dynamicMoveType, gBankAttacker, gBankDefender); + gBattleStruct->dynamicMoveType, gBattleAttacker, gBattleDefender); gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; - if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + if (gStatuses3[gBattleAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) gBattleMoveDamage *= 2; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattleAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattlescriptCurrInstr++; } -void AI_CalcDmg(u8 bankAtk, u8 bankDef) +void AI_CalcDmg(u8 attacker, u8 defender) { - u16 sideStatus = gSideStatuses[GET_BANK_SIDE(bankDef)]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[bankAtk], &gBattleMons[bankDef], gCurrentMove, + u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(defender)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[attacker], &gBattleMons[defender], gCurrentMove, sideStatus, gDynamicBasePower, - gBattleStruct->dynamicMoveType, bankAtk, bankDef); + gBattleStruct->dynamicMoveType, attacker, defender); gDynamicBasePower = 0; gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; - if (gStatuses3[bankAtk] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + if (gStatuses3[attacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) gBattleMoveDamage *= 2; - if (gProtectStructs[bankAtk].helpingHand) + if (gProtectStructs[attacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; } @@ -1470,20 +1470,20 @@ static void atk06_typecalc(void) GET_MOVE_TYPE(gCurrentMove, moveType); // check stab - if (gBattleMons[gBankAttacker].type1 == moveType || gBattleMons[gBankAttacker].type2 == moveType) + if (gBattleMons[gBattleAttacker].type1 == moveType || gBattleMons[gBattleAttacker].type2 == moveType) { gBattleMoveDamage = gBattleMoveDamage * 15; gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[gBankDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattleDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankDefender].ability; + gLastUsedAbility = gBattleMons[gBattleDefender].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBankDefender] = 0; - gLastHitByType[gBankDefender] = 0; + gLastLandedMoves[gBattleDefender] = 0; + gLastHitByType[gBattleDefender] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } else { @@ -1491,7 +1491,7 @@ static void atk06_typecalc(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1499,30 +1499,30 @@ static void atk06_typecalc(void) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 && - gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 && + gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); } i += 3; } } - if (gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + if (gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleAttacker, gCurrentMove) == 2 && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankDefender] = 0; - gLastHitByType[gBankDefender] = 0; + gLastLandedMoves[gBattleDefender] = 0; + gLastHitByType[gBattleDefender] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBankAttacker].targetNotAffected = 1; + gProtectStructs[gBattleAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } @@ -1538,11 +1538,11 @@ static void CheckWonderGuardAndLevitate(void) GET_MOVE_TYPE(gCurrentMove, moveType); - if (gBattleMons[gBankDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattleDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { gLastUsedAbility = ABILITY_LEVITATE; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBankDefender, ABILITY_LEVITATE); + RecordAbilityBattle(gBattleDefender, ABILITY_LEVITATE); return; } @@ -1550,7 +1550,7 @@ static void CheckWonderGuardAndLevitate(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1558,46 +1558,46 @@ static void CheckWonderGuardAndLevitate(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check no effect - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBankAttacker].targetNotAffected = 1; + gProtectStructs[gBattleAttacker].targetNotAffected = 1; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 && - gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 && + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 && + gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBankAttacker].targetNotAffected = 1; + gProtectStructs[gBattleAttacker].targetNotAffected = 1; } // check super effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) flags |= 1; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 - && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 + && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) flags |= 1; // check not very effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) flags |= 2; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 - && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 + && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) flags |= 2; } i += 3; } - if (gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2) + if (gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleAttacker, gCurrentMove) == 2) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankDefender, ABILITY_WONDER_GUARD); + RecordAbilityBattle(gBattleDefender, ABILITY_WONDER_GUARD); } } } @@ -1636,7 +1636,7 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) // same as Mo } } -u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) +u8 TypeCalc(u16 move, u8 attacker, u8 defender) { s32 i = 0; u8 flags = 0; @@ -1648,13 +1648,13 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) moveType = gBattleMoves[move].type; // check stab - if (gBattleMons[bankAtk].type1 == moveType || gBattleMons[bankAtk].type2 == moveType) + if (gBattleMons[attacker].type1 == moveType || gBattleMons[attacker].type2 == moveType) { gBattleMoveDamage = gBattleMoveDamage * 15; gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[bankDef].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[defender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); } @@ -1664,7 +1664,7 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[bankDef].status2 & STATUS2_FORESIGHT) + if (gBattleMons[defender].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1673,19 +1673,19 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[bankDef].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].type1) ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[bankDef].type2 && - gBattleMons[bankDef].type1 != gBattleMons[bankDef].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].type2 && + gBattleMons[defender].type1 != gBattleMons[defender].type2) ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags); } i += 3; } } - if (gBattleMons[bankDef].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) - && AttacksThisTurn(bankAtk, move) == 2 + if (gBattleMons[defender].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED) + && AttacksThisTurn(attacker, move) == 2 && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[move].power) { @@ -1764,42 +1764,42 @@ static void atk07_adjustnormaldamage(void) ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankDefender].holdEffect, quality = gEnigmaBerries[gBankDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleDefender].holdEffect, quality = gEnigmaBerries[gBattleDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); } - gStringBank = gBankDefender; + gStringBank = gBattleDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBankDefender, holdEffect); - gSpecialStatuses[gBankDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleDefender, holdEffect); + gSpecialStatuses[gBattleDefender].focusBanded = 1; } - if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankDefender].endured - && !gSpecialStatuses[gBankDefender].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleDefender].endured + && !gSpecialStatuses[gBattleDefender].focusBanded) goto END; - if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; - if (gProtectStructs[gBankDefender].endured) + if (gProtectStructs[gBattleDefender].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankDefender].focusBanded) + else if (gSpecialStatuses[gBattleDefender].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankDefender].item; + gLastUsedItem = gBattleMons[gBattleDefender].item; } END: @@ -1812,40 +1812,40 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't ApplyRandomDmgMultiplier(); - if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankDefender].holdEffect, quality = gEnigmaBerries[gBankDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleDefender].holdEffect, quality = gEnigmaBerries[gBattleDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); } - gStringBank = gBankDefender; + gStringBank = gBattleDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBankDefender, holdEffect); - gSpecialStatuses[gBankDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleDefender, holdEffect); + gSpecialStatuses[gBattleDefender].focusBanded = 1; } - if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) goto END; - if (!gProtectStructs[gBankDefender].endured && !gSpecialStatuses[gBankDefender].focusBanded) + if (!gProtectStructs[gBattleDefender].endured && !gSpecialStatuses[gBattleDefender].focusBanded) goto END; - if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; - if (gProtectStructs[gBankDefender].endured) + if (gProtectStructs[gBattleDefender].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankDefender].focusBanded) + else if (gSpecialStatuses[gBattleDefender].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankDefender].item; + gLastUsedItem = gBattleMons[gBattleDefender].item; } END: @@ -1878,13 +1878,13 @@ static void atk09_attackanimation(void) { u8 multihit; - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; - if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) multihit = gMultiHitCounter; else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) { - if (gBattleMons[gBankDefender].hp <= gBattleMoveDamage) + if (gBattleMons[gBattleDefender].hp <= gBattleMoveDamage) multihit = 1; else multihit = gMultiHitCounter; @@ -1892,10 +1892,10 @@ static void atk09_attackanimation(void) else multihit = gMultiHitCounter; - EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker], multihit); + EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattleAttacker].friendship, &gDisableStructs[gBattleAttacker], multihit); gBattleScripting.animTurn += 1; gBattleScripting.animTargetsHit += 1; - MarkBufferBankForExecution(gBankAttacker); + MarkBufferBankForExecution(gBattleAttacker); gBattlescriptCurrInstr++; } else @@ -1919,11 +1919,11 @@ static void atk0B_healthbarupdate(void) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) + if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, gActiveBank); + PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, gActiveBattler); } else { @@ -1938,9 +1938,9 @@ static void atk0B_healthbarupdate(void) healthValue = maxPossibleDmgValue; EmitHealthBarUpdate(0, healthValue); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); - if (GetBankSide(gActiveBank) == SIDE_PLAYER && gBattleMoveDamage > 0) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) gBattleResults.unk5_0 = 1; } } @@ -1964,25 +1964,25 @@ static void atk0C_datahpupdate(void) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage) + if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage) { - if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) - gSpecialStatuses[gActiveBank].moveturnLostHP = gBattleMoveDamage; - gDisableStructs[gActiveBank].substituteHP -= gBattleMoveDamage; + if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) + gSpecialStatuses[gActiveBattler].moveturnLostHP = gBattleMoveDamage; + gDisableStructs[gActiveBattler].substituteHP -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) - gSpecialStatuses[gActiveBank].moveturnLostHP = gDisableStructs[gActiveBank].substituteHP; - gHpDealt = gDisableStructs[gActiveBank].substituteHP; - gDisableStructs[gActiveBank].substituteHP = 0; + if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) + gSpecialStatuses[gActiveBattler].moveturnLostHP = gDisableStructs[gActiveBattler].substituteHP; + gHpDealt = gDisableStructs[gActiveBattler].substituteHP; + gDisableStructs[gActiveBattler].substituteHP = 0; } // check substitute fading - if (gDisableStructs[gActiveBank].substituteHP == 0) + if (gDisableStructs[gActiveBattler].substituteHP == 0) { gBattlescriptCurrInstr += 2; BattleScriptPushCursor(); @@ -1995,9 +1995,9 @@ static void atk0C_datahpupdate(void) gHitMarker &= ~(HITMARKER_IGNORE_SUBSTITUTE); if (gBattleMoveDamage < 0) // hp goes up { - gBattleMons[gActiveBank].hp -= gBattleMoveDamage; - if (gBattleMons[gActiveBank].hp > gBattleMons[gActiveBank].maxHP) - gBattleMons[gActiveBank].hp = gBattleMons[gActiveBank].maxHP; + gBattleMons[gActiveBattler].hp -= gBattleMoveDamage; + if (gBattleMons[gActiveBattler].hp > gBattleMons[gActiveBattler].maxHP) + gBattleMons[gActiveBattler].hp = gBattleMons[gActiveBattler].maxHP; } else // hp goes down @@ -2008,68 +2008,68 @@ static void atk0C_datahpupdate(void) } else { - gTakenDmg[gActiveBank] += gBattleMoveDamage; + gTakenDmg[gActiveBattler] += gBattleMoveDamage; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gTakenDmgBanks[gActiveBank] = gBankAttacker; + gTakenDmgBanks[gActiveBattler] = gBattleAttacker; else - gTakenDmgBanks[gActiveBank] = gBankDefender; + gTakenDmgBanks[gActiveBattler] = gBattleDefender; } - if (gBattleMons[gActiveBank].hp > gBattleMoveDamage) + if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage) { - gBattleMons[gActiveBank].hp -= gBattleMoveDamage; + gBattleMons[gActiveBattler].hp -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - gHpDealt = gBattleMons[gActiveBank].hp; - gBattleMons[gActiveBank].hp = 0; + gHpDealt = gBattleMons[gActiveBattler].hp; + gBattleMons[gActiveBattler].hp = 0; } - if (!gSpecialStatuses[gActiveBank].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) - gSpecialStatuses[gActiveBank].moveturnLostHP = gHpDealt; + if (!gSpecialStatuses[gActiveBattler].moveturnLostHP && !(gHitMarker & HITMARKER_x100000)) + gSpecialStatuses[gActiveBattler].moveturnLostHP = gHpDealt; if (moveType <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT) { - gProtectStructs[gActiveBank].physicalDmg = gHpDealt; - gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHpDealt; + gProtectStructs[gActiveBattler].physicalDmg = gHpDealt; + gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBank].physicalBank = gBankAttacker; - gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker; + gProtectStructs[gActiveBattler].physicalBank = gBattleAttacker; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleAttacker; } else { - gProtectStructs[gActiveBank].physicalBank = gBankDefender; - gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankDefender; + gProtectStructs[gActiveBattler].physicalBank = gBattleDefender; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleDefender; } } else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) { - gProtectStructs[gActiveBank].specialDmg = gHpDealt; - gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHpDealt; + gProtectStructs[gActiveBattler].specialDmg = gHpDealt; + gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBank].specialBank = gBankAttacker; - gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker; + gProtectStructs[gActiveBattler].specialBank = gBattleAttacker; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleAttacker; } else { - gProtectStructs[gActiveBank].specialBank = gBankDefender; - gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankDefender; + gProtectStructs[gActiveBattler].specialBank = gBattleDefender; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleDefender; } } } gHitMarker &= ~(HITMARKER_x100000); - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBufferBankForExecution(gActiveBattler); } } else { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0) - gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF; + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0) + gSpecialStatuses[gActiveBattler].moveturnLostHP = 0xFFFF; } gBattlescriptCurrInstr += 2; } @@ -2080,7 +2080,7 @@ static void atk0D_critmessage(void) { if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - PrepareStringBattle(STRINGID_CRITICALHIT, gBankAttacker); + PrepareStringBattle(STRINGID_CRITICALHIT, gBattleAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2092,18 +2092,18 @@ static void atk0E_effectivenesssound(void) if (gBattleExecBuffer) return; - gActiveBank = gBankDefender; + gActiveBattler = gBattleDefender; if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { case MOVE_RESULT_SUPER_EFFECTIVE: EmitPlaySE(0, SE_KOUKA_H); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: EmitPlaySE(0, SE_KOUKA_L); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; case MOVE_RESULT_DOESNT_AFFECT_FOE: case MOVE_RESULT_FAILED: @@ -2116,17 +2116,17 @@ static void atk0E_effectivenesssound(void) if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { EmitPlaySE(0, SE_KOUKA_H); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { EmitPlaySE(0, SE_KOUKA_L); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { EmitPlaySE(0, SE_KOUKA_M); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } break; } @@ -2170,8 +2170,8 @@ static void atk0F_resultmessage(void) stringId = STRINGID_ITDOESNTAFFECT; break; case MOVE_RESULT_FOE_HUNG_ON: - gLastUsedItem = gBattleMons[gBankDefender].item; - gStringBank = gBankDefender; + gLastUsedItem = gBattleMons[gBattleDefender].item; + gStringBank = gBattleDefender; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2199,8 +2199,8 @@ static void atk0F_resultmessage(void) } else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { - gLastUsedItem = gBattleMons[gBankDefender].item; - gStringBank = gBankDefender; + gLastUsedItem = gBattleMons[gBattleDefender].item; + gStringBank = gBattleDefender; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2218,7 +2218,7 @@ static void atk0F_resultmessage(void) } if (stringId) - PrepareStringBattle(stringId, gBankAttacker); + PrepareStringBattle(stringId, gBattleAttacker); gBattlescriptCurrInstr++; } @@ -2228,7 +2228,7 @@ static void atk10_printstring(void) if (gBattleExecBuffer == 0) { u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1); - PrepareStringBattle(var, gBankAttacker); + PrepareStringBattle(var, gBattleAttacker); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2236,10 +2236,10 @@ static void atk10_printstring(void) static void atk11_printselectionstring(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2273,7 +2273,7 @@ static void atk13_printfromtable(void) const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - PrepareStringBattle(*ptr, gBankAttacker); + PrepareStringBattle(*ptr, gBattleAttacker); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2287,9 +2287,9 @@ static void atk14_printselectionstringfromtable(void) const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitPrintSelectionString(0, *ptr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2299,9 +2299,9 @@ static void atk14_printselectionstringfromtable(void) u8 BankGetTurnOrder(u8 bank) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBanksByTurnOrder[i] == bank) + if (gBattleTurnOrder[i] == bank) break; } return i; @@ -2328,22 +2328,22 @@ void SetMoveEffect(bool8 primary, u8 certain) if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_AFFECTS_USER) { - gEffectBank = gBankAttacker; // bank that effects get applied on + gEffectBank = gBattleAttacker; // bank that effects get applied on gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_AFFECTS_USER); affectsUser = MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.bank = gBankDefender; // theoretically the attacker + gBattleScripting.battler = gBattleDefender; // theoretically the attacker } else { - gEffectBank = gBankDefender; - gBattleScripting.bank = gBankAttacker; + gEffectBank = gBattleDefender; + gBattleScripting.battler = gBattleAttacker; } if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9) INCREMENT_RESET_RETURN - if (gSideStatuses[GET_BANK_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gSideStatuses[GET_BATTLER_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7) INCREMENT_RESET_RETURN @@ -2363,17 +2363,17 @@ void SetMoveEffect(bool8 primary, u8 certain) // check active uproar if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF) { - for (gActiveBank = 0; - gActiveBank < gBattleBanksCount && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); - gActiveBank++) + for (gActiveBattler = 0; + gActiveBattler < gBattlersCount && !(gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR); + gActiveBattler++) {} } else - gActiveBank = gBattleBanksCount; + gActiveBattler = gBattlersCount; if (gBattleMons[gEffectBank].status1) break; - if (gActiveBank != gBattleBanksCount) + if (gActiveBattler != gBattlersCount) break; if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) break; @@ -2583,9 +2583,9 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; - gActiveBank = gEffectBank; + gActiveBattler = gEffectBank; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { @@ -2681,10 +2681,10 @@ void SetMoveEffect(bool8 primary, u8 certain) } break; case MOVE_EFFECT_PAYDAY: - if (GET_BANK_SIDE(gBankAttacker) == SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattleAttacker) == B_SIDE_PLAYER) { u16 PayDay = gPaydayMoney; - gPaydayMoney += (gBattleMons[gBankAttacker].level * 5); + gPaydayMoney += (gBattleMons[gBattleAttacker].level * 5); if (PayDay > gPaydayMoney) gPaydayMoney = 0xFFFF; } @@ -2719,7 +2719,7 @@ void SetMoveEffect(bool8 primary, u8 certain) *(gBattleStruct->wrappedMove + gEffectBank * 2 + 0) = gCurrentMove; *(gBattleStruct->wrappedMove + gEffectBank * 2 + 1) = gCurrentMove >> 8; - *(gBattleStruct->wrappedBy + gEffectBank) = gBankAttacker; + *(gBattleStruct->wrappedBy + gEffectBank) = gBattleAttacker; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; @@ -2832,7 +2832,7 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr++; break; case MOVE_EFFECT_RAGE: - gBattleMons[gBankAttacker].status2 |= STATUS2_RAGE; + gBattleMons[gBattleAttacker].status2 |= STATUS2_RAGE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_STEAL_ITEM: @@ -2843,8 +2843,8 @@ void SetMoveEffect(bool8 primary, u8 certain) break; } - side = GetBankSide(gBankAttacker); - if (GetBankSide(gBankAttacker) == SIDE_OPPONENT + side = GetBattlerSide(gBattleAttacker); + if (GetBattlerSide(gBattleAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -2860,56 +2860,56 @@ void SetMoveEffect(bool8 primary, u8 certain) | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_SECRET_BASE)) - && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBankAttacker]])) + && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBattleAttacker]])) { gBattlescriptCurrInstr++; } - else if (gBattleMons[gBankDefender].item - && gBattleMons[gBankDefender].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBattleDefender].item + && gBattleMons[gBattleDefender].ability == ABILITY_STICKY_HOLD) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; - gLastUsedAbility = gBattleMons[gBankDefender].ability; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattleDefender].ability; + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } - else if (gBattleMons[gBankAttacker].item != 0 - || gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBankDefender].item) - || gBattleMons[gBankDefender].item == 0) + else if (gBattleMons[gBattleAttacker].item != 0 + || gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattleDefender].item) + || gBattleMons[gBattleDefender].item == 0) { gBattlescriptCurrInstr++; } else { - u16* changedItem = &gBattleStruct->changedItems[gBankAttacker]; - gLastUsedItem = *changedItem = gBattleMons[gBankDefender].item; - gBattleMons[gBankDefender].item = 0; + u16* changedItem = &gBattleStruct->changedItems[gBattleAttacker]; + gLastUsedItem = *changedItem = gBattleMons[gBattleDefender].item; + gBattleMons[gBattleDefender].item = 0; - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); - MarkBufferBankForExecution(gBankAttacker); + MarkBufferBankForExecution(gBattleAttacker); - gActiveBank = gBankDefender; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankDefender].item); - MarkBufferBankForExecution(gBankDefender); + gActiveBattler = gBattleDefender; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleDefender].item); + MarkBufferBankForExecution(gBattleDefender); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 1) = 0; } } break; case MOVE_EFFECT_PREVENT_ESCAPE: - gBattleMons[gBankDefender].status2 |= STATUS2_ESCAPE_PREVENTION; - gDisableStructs[gBankDefender].bankPreventingEscape = gBankAttacker; + gBattleMons[gBattleDefender].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[gBattleDefender].bankPreventingEscape = gBattleAttacker; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_NIGHTMARE: - gBattleMons[gBankDefender].status2 |= STATUS2_NIGHTMARE; + gBattleMons[gBattleDefender].status2 |= STATUS2_NIGHTMARE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_ALL_STATS_UP: @@ -2921,17 +2921,17 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr = BattleScript_RapidSpinAway; break; case MOVE_EFFECT_REMOVE_PARALYSIS: // Smelling salts - if (!(gBattleMons[gBankDefender].status1 & STATUS1_PARALYSIS)) + if (!(gBattleMons[gBattleDefender].status1 & STATUS1_PARALYSIS)) { gBattlescriptCurrInstr++; } else { - gBattleMons[gBankDefender].status1 &= ~(STATUS1_PARALYSIS); + gBattleMons[gBattleDefender].status1 &= ~(STATUS1_PARALYSIS); - gActiveBank = gBankDefender; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBattleDefender; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; @@ -2978,7 +2978,7 @@ void SetMoveEffect(bool8 primary, u8 certain) } if (gBattleMons[gEffectBank].item) { - side = GetBankSide(gEffectBank); + side = GetBattlerSide(gEffectBank); gLastUsedItem = gBattleMons[gEffectBank].item; gBattleMons[gEffectBank].item = 0; @@ -3010,7 +3010,7 @@ static void atk15_seteffectwithchance(void) { u32 percentChance; - if (gBattleMons[gBankAttacker].ability == ABILITY_SERENE_GRACE) + if (gBattleMons[gBattleAttacker].ability == ABILITY_SERENE_GRACE) percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2; else percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; @@ -3051,12 +3051,12 @@ static void atk17_seteffectsecondary(void) static void atk18_clearstatusfromeffect(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); if (gBattleCommunication[MOVE_EFFECT_BYTE] <= MOVE_EFFECT_TOXIC) - gBattleMons[gActiveBank].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); + gBattleMons[gActiveBattler].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); else - gBattleMons[gActiveBank].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); + gBattleMons[gActiveBattler].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]); gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattlescriptCurrInstr += 2; @@ -3069,14 +3069,14 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[2] != 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) { BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 3); BattleScriptPop(); gBattlescriptCurrInstr = BS_ptr; - gSideStatuses[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); } else { @@ -3089,58 +3089,58 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) { - gActiveBank = gBankAttacker; - bank = gBankDefender; + gActiveBattler = gBattleAttacker; + bank = gBattleDefender; BS_ptr = BattleScript_FaintAttacker; } else { - gActiveBank = gBankDefender; - bank = gBankAttacker; + gActiveBattler = gBattleDefender; + bank = gBattleAttacker; BS_ptr = BattleScript_FaintTarget; } - if (!(gAbsentBankFlags & gBitTable[gActiveBank]) - && gBattleMons[gActiveBank].hp == 0) + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) + && gBattleMons[gActiveBattler].hp == 0) { - gHitMarker |= HITMARKER_FAINTED(gActiveBank); + gHitMarker |= HITMARKER_FAINTED(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 7); gBattlescriptCurrInstr = BS_ptr; - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { gHitMarker |= HITMARKER_x400000; if (gBattleResults.playerFaintCounter < 0xFF) gBattleResults.playerFaintCounter++; - AdjustFriendshipOnBattleFaint(gActiveBank); + AdjustFriendshipOnBattleFaint(gActiveBattler); } else { if (gBattleResults.opponentFaintCounter < 0xFF) gBattleResults.opponentFaintCounter++; - gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL); + gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); } - if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0) + if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattleAttacker].hp != 0) { gHitMarker &= ~(HITMARKER_DESTINYBOND); BattleScriptPush(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } - if ((gStatuses3[gBankDefender] & STATUS3_GRUDGE) + if ((gStatuses3[gBattleDefender] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender) - && gBattleMons[gBankAttacker].hp != 0 + && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender) + && gBattleMons[gBattleAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { - u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBankAttacker); + u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBattleAttacker); - gBattleMons[gBankAttacker].pp[moveIndex] = 0; + gBattleMons[gBattleAttacker].pp[moveIndex] = 0; BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp; - gActiveBank = gBankAttacker; - EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBattleAttacker; + EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); + MarkBufferBankForExecution(gActiveBattler); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankAttacker].moves[moveIndex]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleAttacker].moves[moveIndex]) } } else @@ -3154,9 +3154,9 @@ static void atk1A_dofaintanimation(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); EmitFaintAnimation(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } } @@ -3165,13 +3165,13 @@ static void atk1B_cleareffectsonfaint(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBank].hp == 0) + if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBattler].hp == 0) { - gBattleMons[gActiveBank].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gActiveBattler].status1 = 0; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } FaintClearSetData(); // Effects like attractions, trapping, etc. @@ -3211,7 +3211,7 @@ static void atk1E_jumpifability(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER_SIDE) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattleAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -3224,7 +3224,7 @@ static void atk1E_jumpifability(void) } else if (gBattlescriptCurrInstr[1] == BS_GET_NOT_ATTACKER_SIDE) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattleAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -3257,9 +3257,9 @@ static void atk1F_jumpifsideaffecting(void) const u8* jumpPtr; if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) - side = GET_BANK_SIDE(gBankAttacker); + side = GET_BATTLER_SIDE(gBattleAttacker); else - side = GET_BANK_SIDE(gBankDefender); + side = GET_BATTLER_SIDE(gBattleDefender); flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2); jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4); @@ -3315,20 +3315,20 @@ static void atk21_jumpifstatus3condition(void) u32 flags; const u8 *jumpPtr; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2); jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7); if (gBattlescriptCurrInstr[6]) { - if ((gStatuses3[gActiveBank] & flags) != 0) + if ((gStatuses3[gActiveBattler] & flags) != 0) gBattlescriptCurrInstr += 11; else gBattlescriptCurrInstr = jumpPtr; } else { - if ((gStatuses3[gActiveBank] & flags) != 0) + if ((gStatuses3[gActiveBattler] & flags) != 0) gBattlescriptCurrInstr = jumpPtr; else gBattlescriptCurrInstr += 11; @@ -3363,7 +3363,7 @@ static void atk23_getexp(void) switch (gBattleScripting.atk23_state) { case 0: // check if should receive exp at all - if (GetBankSide(gBank1) != SIDE_OPPONENT || (gBattleTypeFlags & + if (GetBattlerSide(gBank1) != B_SIDE_OPPONENT || (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x4000000 @@ -3495,11 +3495,11 @@ static void atk23_getexp(void) // get exp getter bank if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (!(gBattlePartyID[2] != gBattleStruct->expGetterId) && !(gAbsentBankFlags & gBitTable[2])) + if (!(gBattlePartyID[2] != gBattleStruct->expGetterId) && !(gAbsentBattlerFlags & gBitTable[2])) gBattleStruct->expGetterBank = 2; else { - if (!(gAbsentBankFlags & gBitTable[0])) + if (!(gAbsentBattlerFlags & gBitTable[0])) gBattleStruct->expGetterBank = 0; else gBattleStruct->expGetterBank = 2; @@ -3536,9 +3536,9 @@ static void atk23_getexp(void) BATTLE_LVLUP_STATS->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); - gActiveBank = gBattleStruct->expGetterBank; + gActiveBattler = gBattleStruct->expGetterBank; EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattleScripting.atk23_state++; } @@ -3546,20 +3546,20 @@ static void atk23_getexp(void) case 4: // lvl up if necessary if (gBattleExecBuffer == 0) { - gActiveBank = gBattleStruct->expGetterBank; - if (gBattleBufferB[gActiveBank][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBank][1] == RET_VALUE_LEVELLED_UP) + gActiveBattler = gBattleStruct->expGetterBank; + if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP) { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterId) + HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattleStruct->expGetterId) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterId) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL)) BattleScriptPushCursor(); gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterId]; gBattlescriptCurrInstr = BattleScript_LevelUp; - gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)); + gBattleMoveDamage = (gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8)); AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterId], 0); // update battle mon structure after level up @@ -3674,13 +3674,13 @@ static void atk24(void) s32 foundOpponent; // Impossible to decompile loops. - for (foundPlayer = 0, i = 0; i < gBattleBanksCount; i += 2) + for (foundPlayer = 0, i = 0; i < gBattlersCount; i += 2) { if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40) foundPlayer++; } - for (foundOpponent = 0, i = 1; i < gBattleBanksCount; i += 2) + for (foundOpponent = 0, i = 1; i < gBattlersCount; i += 2) { if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40) foundOpponent++; @@ -3889,7 +3889,7 @@ static void atk24(void) beq _0804AF1A\n\ movs r3, 0\n\ movs r5, 0\n\ - ldr r0, =gBattleBanksCount\n\ + ldr r0, =gBattlersCount\n\ ldrb r1, [r0]\n\ mov r12, r0\n\ ldr r7, =gBattlescriptCurrInstr\n\ @@ -4323,12 +4323,12 @@ static void atk3A_waitstate(void) static void atk3B_healthbar_update(void) { if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gActiveBank = gBankDefender; + gActiveBattler = gBattleDefender; else - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -4340,16 +4340,16 @@ static void atk3C_return(void) static void atk3D_end(void) { if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A5718(gBankAttacker); + sub_81A5718(gBattleAttacker); gMoveResultFlags = 0; - gActiveBank = 0; + gActiveBattler = 0; gCurrentActionFuncId = 0xB; } static void atk3E_end2(void) { - gActiveBank = 0; + gActiveBattler = 0; gCurrentActionFuncId = 0xB; } @@ -4387,14 +4387,14 @@ static void atk43_jumpifabilitypresent(void) static void atk44_endselectionscript(void) { - *(gBankAttacker + gBattleStruct->selectionScriptFinished) = TRUE; + *(gBattleAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } static void atk45_playanimation(void) { const u16* argumentPtr; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3); if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE @@ -4402,7 +4402,7 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE) { EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -4416,17 +4416,17 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES) { EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 7; } - else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) { gBattlescriptCurrInstr += 7; } else { EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 7; } } @@ -4436,7 +4436,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po const u16* argumentPtr; const u8* animationIdPtr; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2); argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6); @@ -4445,7 +4445,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE) { EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -4458,17 +4458,17 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_HAIL_CONTINUES) { EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 10; } - else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) + else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) { gBattlescriptCurrInstr += 10; } else { EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 10; } } @@ -4505,7 +4505,7 @@ static void atk48_playstatchangeanimation(void) s32 changeableStats = 0; u32 statsToCheck = 0; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); statsToCheck = gBattlescriptCurrInstr[2]; if (gBattlescriptCurrInstr[3] & ATK48_STAT_NEGATIVE) // goes down @@ -4517,19 +4517,19 @@ static void atk48_playstatchangeanimation(void) { if (!(gBattlescriptCurrInstr[3] & ATK48_LOWER_FAIL_CHECK)) { - if (gBattleMons[gActiveBank].statStages[currStat] > 0) + if (gBattleMons[gActiveBattler].statStages[currStat] > 0) { statAnimId = checkingStatAnimId; changeableStats++; } } - else if (!gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer - && gBattleMons[gActiveBank].ability != ABILITY_CLEAR_BODY - && gBattleMons[gActiveBank].ability != ABILITY_WHITE_SMOKE - && !(gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE && currStat == STAT_STAGE_ACC) - && !(gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER && currStat == STAT_STAGE_ATK)) + else if (!gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer + && gBattleMons[gActiveBattler].ability != ABILITY_CLEAR_BODY + && gBattleMons[gActiveBattler].ability != ABILITY_WHITE_SMOKE + && !(gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE && currStat == STAT_STAGE_ACC) + && !(gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER && currStat == STAT_STAGE_ATK)) { - if (gBattleMons[gActiveBank].statStages[currStat] > 0) + if (gBattleMons[gActiveBattler].statStages[currStat] > 0) { statAnimId = checkingStatAnimId; changeableStats++; @@ -4552,7 +4552,7 @@ static void atk48_playstatchangeanimation(void) checkingStatAnimId = (gBattlescriptCurrInstr[3] & ATK48_STAT_BY_TWO) ? 0x26 : 0xE; while (statsToCheck != 0) { - if (statsToCheck & 1 && gBattleMons[gActiveBank].statStages[currStat] < 0xC) + if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < 0xC) { statAnimId = checkingStatAnimId; changeableStats++; @@ -4576,7 +4576,7 @@ static void atk48_playstatchangeanimation(void) else if (changeableStats != 0 && gBattleScripting.field_1B == 0) { EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStats > 1) gBattleScripting.field_1B = 1; gBattlescriptCurrInstr += 4; @@ -4607,7 +4607,7 @@ static void atk48_playstatchangeanimation(void) ldrb r0, [r0, 0x1]\n\ str r3, [sp]\n\ bl GetBattleBank\n\ - ldr r2, =gActiveBank\n\ + ldr r2, =gActiveBattler\n\ strb r0, [r2]\n\ ldr r0, [r5]\n\ ldrb r4, [r0, 0x2]\n\ @@ -4644,7 +4644,7 @@ _0804BA26:\n\ ands r0, r1\n\ cmp r0, 0\n\ beq _0804BA58\n\ - ldr r0, =gActiveBank\n\ + ldr r0, =gActiveBattler\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ muls r0, r1\n\ @@ -4652,10 +4652,10 @@ _0804BA26:\n\ b _0804BAA0\n\ .pool\n\ _0804BA58:\n\ - ldr r6, =gActiveBank\n\ + ldr r6, =gActiveBattler\n\ ldrb r0, [r6]\n\ str r3, [sp]\n\ - bl GetBankPosition\n\ + bl GetBattlerPosition\n\ mov r1, r10\n\ ands r1, r0\n\ lsls r0, r1, 1\n\ @@ -4804,7 +4804,7 @@ _0804BB6C:\n\ mov r2, r8\n\ str r3, [sp]\n\ bl EmitBattleAnimation\n\ - ldr r0, =gActiveBank\n\ + ldr r0, =gActiveBattler\n\ ldrb r0, [r0]\n\ bl MarkBufferBankForExecution\n\ ldr r0, =gBattlescriptCurrInstr\n\ @@ -4864,12 +4864,12 @@ static void atk49_moveend(void) arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; - if (gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY) - holdEffectAtk = gEnigmaBerries[gBankAttacker].holdEffect; + if (gBattleMons[gBattleAttacker].item == ITEM_ENIGMA_BERRY) + holdEffectAtk = gEnigmaBerries[gBattleAttacker].holdEffect; else - holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBankAttacker].item); + holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattleAttacker].item); - choicedMoveAtk = &gBattleStruct->choicedMove[gBankAttacker]; + choicedMoveAtk = &gBattleStruct->choicedMove[gBattleAttacker]; GET_MOVE_TYPE(gCurrentMove, moveType); @@ -4878,13 +4878,13 @@ static void atk49_moveend(void) switch (gBattleScripting.atk49_state) { case 0: // rage check - if (gBattleMons[gBankDefender].status2 & STATUS2_RAGE - && gBattleMons[gBankDefender].hp != 0 && gBankAttacker != gBankDefender - && GetBankSide(gBankAttacker) != GetBankSide(gBankDefender) + if (gBattleMons[gBattleDefender].status2 & STATUS2_RAGE + && gBattleMons[gBattleDefender].hp != 0 && gBattleAttacker != gBattleDefender + && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBankDefender].statStages[STAT_STAGE_ATK] <= 0xB) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattleDefender].statStages[STAT_STAGE_ATK] <= 0xB) { - gBattleMons[gBankDefender].statStages[STAT_STAGE_ATK]++; + gBattleMons[gBattleDefender].statStages[STAT_STAGE_ATK]++; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = TRUE; @@ -4892,15 +4892,15 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 1: // defrosting check - if (gBattleMons[gBankDefender].status1 & STATUS1_FREEZE - && gBattleMons[gBankDefender].hp != 0 && gBankAttacker != gBankDefender - && gSpecialStatuses[gBankDefender].moveturnLostHP_special + if (gBattleMons[gBattleDefender].status1 & STATUS1_FREEZE + && gBattleMons[gBattleDefender].hp != 0 && gBattleAttacker != gBattleDefender + && gSpecialStatuses[gBattleDefender].moveturnLostHP_special && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE) { - gBattleMons[gBankDefender].status1 &= ~(STATUS1_FREEZE); - gActiveBank = gBankDefender; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankDefender].status1); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gBattleDefender].status1 &= ~(STATUS1_FREEZE); + gActiveBattler = gBattleDefender; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattleDefender].status1); + MarkBufferBankForExecution(gActiveBattler); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; effect = TRUE; @@ -4908,12 +4908,12 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 2: // target synchronize - if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankDefender, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattleDefender, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; case 3: // contact abilities - if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankDefender, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattleDefender, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4924,7 +4924,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 5: // attacker synchronize - if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBankAttacker, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattleAttacker, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4942,7 +4942,7 @@ static void atk49_moveend(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == *choicedMoveAtk) + if (gBattleMons[gBattleAttacker].moves[i] == *choicedMoveAtk) break; } if (i == 4) @@ -4952,7 +4952,7 @@ static void atk49_moveend(void) } break; case 7: // changed held items - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { u16* changedItem = &gBattleStruct->changedItems[i]; if (*changedItem != 0) @@ -4975,12 +4975,12 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 8: // make attacker sprite invisible - if (gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE) + if (gStatuses3[gBattleAttacker] & (STATUS3_SEMI_INVULNERABLE) && gHitMarker & HITMARKER_NO_ANIMATIONS) { - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitSpriteInvisibility(0, TRUE); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleScripting.atk49_state++; return; } @@ -4988,34 +4988,34 @@ static void atk49_moveend(void) break; case 9: // make attacker sprite visible if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT - || !(gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE)) - || WasUnableToUseMove(gBankAttacker)) + || !(gStatuses3[gBattleAttacker] & (STATUS3_SEMI_INVULNERABLE)) + || WasUnableToUseMove(gBattleAttacker)) { - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBank); - gStatuses3[gBankAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); - gSpecialStatuses[gBankAttacker].restoredBankSprite = 1; + MarkBufferBankForExecution(gActiveBattler); + gStatuses3[gBattleAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); + gSpecialStatuses[gBattleAttacker].restoredBankSprite = 1; gBattleScripting.atk49_state++; return; } gBattleScripting.atk49_state++; break; case 10: // make target sprite visible - if (!gSpecialStatuses[gBankDefender].restoredBankSprite && gBankDefender < gBattleBanksCount - && !(gStatuses3[gBankDefender] & STATUS3_SEMI_INVULNERABLE)) + if (!gSpecialStatuses[gBattleDefender].restoredBankSprite && gBattleDefender < gBattlersCount + && !(gStatuses3[gBattleDefender] & STATUS3_SEMI_INVULNERABLE)) { - gActiveBank = gBankDefender; + gActiveBattler = gBattleDefender; EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBank); - gStatuses3[gBankDefender] &= ~(STATUS3_SEMI_INVULNERABLE); + MarkBufferBankForExecution(gActiveBattler); + gStatuses3[gBattleDefender] &= ~(STATUS3_SEMI_INVULNERABLE); gBattleScripting.atk49_state++; return; } gBattleScripting.atk49_state++; break; case 13: // update substitute - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gDisableStructs[i].substituteHP == 0) gBattleMons[i].status2 &= ~(STATUS2_SUBSTITUTE); @@ -5025,82 +5025,82 @@ static void atk49_moveend(void) case 14: // This case looks interesting, although I am not certain what it does. Probably fine tunes edge cases. if (gHitMarker & HITMARKER_PURSUIT_TRAP) { - gActiveBank = gBankAttacker; - gBankAttacker = gBankDefender; - gBankDefender = gActiveBank; + gActiveBattler = gBattleAttacker; + gBattleAttacker = gBattleDefender; + gBattleDefender = gActiveBattler; gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gLastPrintedMoves[gBankAttacker] = gChosenMove; + gLastPrintedMoves[gBattleAttacker] = gChosenMove; } - if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) - && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattleAttacker]) + && !(gBattleStruct->field_91 & gBitTable[gBattleAttacker]) && gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS) { if (gHitMarker & HITMARKER_OBEYS) { - gLastMoves[gBankAttacker] = gChosenMove; - gLastResultingMoves[gBankAttacker] = gCurrentMove; + gLastMoves[gBattleAttacker] = gChosenMove; + gLastResultingMoves[gBattleAttacker] = gCurrentMove; } else { - gLastMoves[gBankAttacker] = 0xFFFF; - gLastResultingMoves[gBankAttacker] = 0xFFFF; + gLastMoves[gBattleAttacker] = 0xFFFF; + gLastResultingMoves[gBattleAttacker] = 0xFFFF; } - if (!(gHitMarker & HITMARKER_FAINTED(gBankDefender))) - gLastHitBy[gBankDefender] = gBankAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gBattleDefender))) + gLastHitBy[gBattleDefender] = gBattleAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (gChosenMove == 0xFFFF) { - gLastLandedMoves[gBankDefender] = gChosenMove; + gLastLandedMoves[gBattleDefender] = gChosenMove; } else { - gLastLandedMoves[gBankDefender] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankDefender]); + gLastLandedMoves[gBattleDefender] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattleDefender]); } } else { - gLastLandedMoves[gBankDefender] = 0xFFFF; + gLastLandedMoves[gBattleDefender] = 0xFFFF; } } gBattleScripting.atk49_state++; break; case 15: // mirror move - if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattleAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattleAttacker]) && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS - && gBankAttacker != gBankDefender && !(gHitMarker & HITMARKER_FAINTED(gBankDefender)) + && gBattleAttacker != gBattleDefender && !(gHitMarker & HITMARKER_FAINTED(gBattleDefender)) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBankDefender * 2 + 0) = gChosenMove; - *(gBattleStruct->mirrorMoves + gBankDefender * 2 + 1) = gChosenMove >> 8; + *(gBattleStruct->mirrorMoves + gBattleDefender * 2 + 0) = gChosenMove; + *(gBattleStruct->mirrorMoves + gBattleDefender * 2 + 1) = gChosenMove >> 8; - target = gBankDefender; - attacker = gBankAttacker; + target = gBattleDefender; + attacker = gBattleAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove; - target = gBankDefender; - attacker = gBankAttacker; + target = gBattleDefender; + attacker = gBattleAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8; } gBattleScripting.atk49_state++; break; case 16: // if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !gProtectStructs[gBankAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH + && !gProtectStructs[gBattleAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 bank = GetBankByPosition(B_POSITION_PARTNER(GetBankPosition(gBankDefender))); + u8 bank = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gBattleDefender))); if (gBattleMons[bank].hp != 0) { - gBankDefender = bank; + gBattleDefender = bank; gHitMarker |= HITMARKER_NO_ATTACKSTRING; gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); @@ -5136,13 +5136,13 @@ static void atk4A_typecalc2(void) s32 i = 0; u8 moveType = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBankDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattleDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBankDefender].ability; + gLastUsedAbility = gBattleMons[gBattleDefender].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBankDefender] = 0; + gLastLandedMoves[gBattleDefender] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } else { @@ -5150,7 +5150,7 @@ static void atk4A_typecalc2(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBankDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) { break; } @@ -5164,7 +5164,7 @@ static void atk4A_typecalc2(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1) { if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { @@ -5181,22 +5181,22 @@ static void atk4A_typecalc2(void) } } // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2) { - if (gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 + if (gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 - && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 + && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) { flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankDefender].type2 - && gBattleMons[gBankDefender].type1 != gBattleMons[gBankDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 + && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) { flags |= MOVE_RESULT_SUPER_EFFECTIVE; @@ -5207,31 +5207,31 @@ static void atk4A_typecalc2(void) } } - if (gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD + if (gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) - && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2 + && AttacksThisTurn(gBattleAttacker, gCurrentMove) == 2 && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBankDefender] = 0; + gLastLandedMoves[gBattleDefender] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBankAttacker].targetNotAffected = 1; + gProtectStructs[gBattleAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } static void atk4B_returnatktoball(void) { - gActiveBank = gBankAttacker; - if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) + gActiveBattler = gBattleAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { EmitReturnMonToBall(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr++; } @@ -5241,12 +5241,12 @@ static void atk4C_getswitchedmondata(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - gBattlePartyID[gActiveBank] = *(gBattleStruct->monToSwitchIntoId + gActiveBank); + gBattlePartyID[gActiveBattler] = *(gBattleStruct->monToSwitchIntoId + gActiveBattler); - EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlePartyID[gActiveBank]]); - MarkBufferBankForExecution(gActiveBank); + EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlePartyID[gActiveBattler]]); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -5260,46 +5260,46 @@ static void atk4D_switchindataupdate(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - oldData = gBattleMons[gActiveBank]; - monData = (u8*)(&gBattleMons[gActiveBank]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + oldData = gBattleMons[gActiveBattler]; + monData = (u8*)(&gBattleMons[gActiveBattler]); for (i = 0; i < sizeof(struct BattlePokemon); i++) { - monData[i] = gBattleBufferB[gActiveBank][4 + i]; + monData[i] = gBattleBufferB[gActiveBattler][4 + i]; } - gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1; - gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2; - gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility); + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility); // check knocked off item - i = GetBankSide(gActiveBank); - if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBank]]) + i = GetBattlerSide(gActiveBattler); + if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBattler]]) { - gBattleMons[gActiveBank].item = 0; + gBattleMons[gActiveBattler].item = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { for (i = 0; i < BATTLE_STATS_NO; i++) { - gBattleMons[gActiveBank].statStages[i] = oldData.statStages[i]; + gBattleMons[gActiveBattler].statStages[i] = oldData.statStages[i]; } - gBattleMons[gActiveBank].status2 = oldData.status2; + gBattleMons[gActiveBattler].status2 = oldData.status2; } SwitchInClearSetData(); - if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp - && gBattleMons[gActiveBank].hp != 0 && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)) + if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gBattleMons[gActiveBattler].maxHP / 2 >= gBattleMons[gActiveBattler].hp + && gBattleMons[gActiveBattler].hp != 0 && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)) { - gBattleStruct->field_92 |= gBitTable[gActiveBank]; + gBattleStruct->field_92 |= gBitTable[gActiveBattler]; } - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlePartyID[gActiveBattler]); gBattlescriptCurrInstr += 2; } @@ -5309,20 +5309,20 @@ static void atk4E_switchinanim(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (GetBankSide(gActiveBank) == SIDE_OPPONENT + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_x4000000 | BATTLE_TYPE_FRONTIER))) - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality); + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); - gAbsentBankFlags &= ~(gBitTable[gActiveBank]); + gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); - EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], gBattlescriptCurrInstr[2]); - MarkBufferBankForExecution(gActiveBank); + EmitSwitchInAnim(0, gBattlePartyID[gActiveBattler], gBattlescriptCurrInstr[2]); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; @@ -5337,11 +5337,11 @@ static void atk4F_jumpifcantswitch(void) struct Pokemon *party = NULL; s32 r7 = 0; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1] & ~(ATK4F_DONT_CHECK_STATUSES)); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1] & ~(ATK4F_DONT_CHECK_STATUSES)); if (!(gBattlescriptCurrInstr[1] & ATK4F_DONT_CHECK_STATUSES) - && ((gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) - || (gStatuses3[gActiveBank] & STATUS3_ROOTED))) + && ((gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + || (gStatuses3[gActiveBattler] & STATUS3_ROOTED))) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); } @@ -5350,13 +5350,13 @@ static void atk4F_jumpifcantswitch(void) #ifndef NONMATCHING asm("":::"r5"); #endif // NONMATCHING - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) party = gEnemyParty; else party = gPlayerParty; val = 0; - if (2 & gActiveBank) + if (2 & gActiveBattler) val = 3; for (compareVar = val + 3; val < compareVar; val++) @@ -5364,7 +5364,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBank] != val) + && gBattlePartyID[gActiveBattler] != val) break; } @@ -5377,19 +5377,19 @@ static void atk4F_jumpifcantswitch(void) { if (gBattleTypeFlags & BATTLE_TYPE_x800000) { - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { party = gPlayerParty; val = 0; - if (sub_806D82C(GetBankMultiplayerId(gActiveBank)) == TRUE) + if (sub_806D82C(GetBankMultiplayerId(gActiveBattler)) == TRUE) val = 3; } else { party = gEnemyParty; - if (gActiveBank == 1) + if (gActiveBattler == 1) val = 0; else val = 3; @@ -5397,14 +5397,14 @@ static void atk4F_jumpifcantswitch(void) } else { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) party = gEnemyParty; else party = gPlayerParty; val = 0; - if (sub_806D82C(GetBankMultiplayerId(gActiveBank)) == TRUE) + if (sub_806D82C(GetBankMultiplayerId(gActiveBattler)) == TRUE) val = 3; } @@ -5413,7 +5413,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBank] != val) + && gBattlePartyID[gActiveBattler] != val) break; } @@ -5422,12 +5422,12 @@ static void atk4F_jumpifcantswitch(void) else gBattlescriptCurrInstr += 6; } - else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankSide(gActiveBank) == SIDE_OPPONENT) + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) { party = gEnemyParty; val = 0; - if (gActiveBank == 3) + if (gActiveBattler == 3) val = 3; for (compareVar = val + 3; val < compareVar; val++) @@ -5435,7 +5435,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBank] != val) + && gBattlePartyID[gActiveBattler] != val) break; } @@ -5446,12 +5446,12 @@ static void atk4F_jumpifcantswitch(void) } else { - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) { - r7 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + r7 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + compareVar = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else compareVar = r7; @@ -5459,10 +5459,10 @@ static void atk4F_jumpifcantswitch(void) } else { - r7 = GetBankByPosition(B_POSITION_PLAYER_LEFT); + r7 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + compareVar = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); else compareVar = r7; @@ -5486,12 +5486,12 @@ static void atk4F_jumpifcantswitch(void) static void sub_804CF10(u8 arg0) { - *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; - gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]); + *(gBattleStruct->field_58 + gActiveBattler) = gBattlePartyID[gActiveBattler]; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; + gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]); - EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); + EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBattler]); + MarkBufferBankForExecution(gActiveBattler); } static void atk50_openpartyscreen(void) @@ -5509,27 +5509,27 @@ static void atk50_openpartyscreen(void) { if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) { - if (sub_80423F4(gActiveBank, 6, 6)) + if (sub_80423F4(gActiveBattler, 6, 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(6); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } } else { EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } } @@ -5541,88 +5541,88 @@ static void atk50_openpartyscreen(void) if (gBitTable[0] & hitmarkerFaintBits) { - gActiveBank = 0; + gActiveBattler = 0; if (sub_80423F4(0, 6, 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitCmd42(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(gBattleStruct->monToSwitchIntoId[2]); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } else { EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); flags |= 1; } } if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits)) { - gActiveBank = 2; + gActiveBattler = 2; if (sub_80423F4(2, 6, 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitCmd42(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(gBattleStruct->monToSwitchIntoId[0]); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } else if (!(flags & 1)) { EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } if (gBitTable[1] & hitmarkerFaintBits) { - gActiveBank = 1; + gActiveBattler = 1; if (sub_80423F4(1, 6, 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitCmd42(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(gBattleStruct->monToSwitchIntoId[3]); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } else { EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); flags |= 2; } } if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits)) { - gActiveBank = 3; + gActiveBattler = 3; if (sub_80423F4(3, 6, 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitCmd42(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(gBattleStruct->monToSwitchIntoId[1]); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } else if (!(flags & 2)) { EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } @@ -5632,13 +5632,13 @@ static void atk50_openpartyscreen(void) flag40_2 = gSpecialStatuses[2].flag40; if (!flag40_2 && hitmarkerFaintBits != 0) { - if (gAbsentBankFlags & gBitTable[0]) - gActiveBank = 2; + if (gAbsentBattlerFlags & gBitTable[0]) + gActiveBattler = 2; else - gActiveBank = 0; + gActiveBattler = 0; EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } @@ -5648,13 +5648,13 @@ static void atk50_openpartyscreen(void) flag40_3 = gSpecialStatuses[3].flag40; if (!flag40_3 && hitmarkerFaintBits != 0) { - if (gAbsentBankFlags & gBitTable[1]) - gActiveBank = 3; + if (gAbsentBattlerFlags & gBitTable[1]) + gActiveBattler = 3; else - gActiveBank = 1; + gActiveBattler = 1; EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } } @@ -5669,34 +5669,34 @@ static void atk50_openpartyscreen(void) hitmarkerFaintBits = gHitMarker >> 0x1C; if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits) { - gActiveBank = 2; + gActiveBattler = 2; if (sub_80423F4(2, gBattleBufferB[0][1], 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitCmd42(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(gBattleStruct->monToSwitchIntoId[0]); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } } if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1]) { - gActiveBank = 3; + gActiveBattler = 3; if (sub_80423F4(3, gBattleBufferB[1][1], 6)) { - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); EmitCmd42(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } - else if (!gSpecialStatuses[gActiveBank].flag40) + else if (!gSpecialStatuses[gActiveBattler].flag40) { sub_804CF10(gBattleStruct->monToSwitchIntoId[1]); - gSpecialStatuses[gActiveBank].flag40 = 1; + gSpecialStatuses[gActiveBattler].flag40 = 1; } } gBattlescriptCurrInstr += 6; @@ -5718,12 +5718,12 @@ static void atk50_openpartyscreen(void) { if (gBitTable[gBank1] & hitmarkerFaintBits) break; - if (gBank1 >= gBattleBanksCount) + if (gBank1 >= gBattlersCount) break; gBank1++; } - if (gBank1 == gBattleBanksCount) + if (gBank1 == gBattlersCount) gBattlescriptCurrInstr = jumpPtr; } else @@ -5740,45 +5740,45 @@ static void atk50_openpartyscreen(void) } else if (sub_80423F4(bank, 6, 6)) { - gActiveBank = bank; - gAbsentBankFlags |= gBitTable[gActiveBank]; - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); + gActiveBattler = bank; + gAbsentBattlerFlags |= gBitTable[gActiveBattler]; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gBattlescriptCurrInstr = jumpPtr; } else { - gActiveBank = bank; - *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank]; - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6; - gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]); + gActiveBattler = bank; + *(gBattleStruct->field_58 + gActiveBattler) = gBattlePartyID[gActiveBattler]; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; + gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]); - EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBank ^ 2)), 0, gBattleStruct->field_60[gActiveBank]); - MarkBufferBankForExecution(gActiveBank); + EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), 0, gBattleStruct->field_60[gActiveBattler]); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 6; - if (GetBankPosition(gActiveBank) == 0 && gBattleResults.playerSwitchesCounter < 0xFF) + if (GetBattlerPosition(gActiveBattler) == 0 && gBattleResults.playerSwitchesCounter < 0xFF) gBattleResults.playerSwitchesCounter++; if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - for (gActiveBank = 0; gActiveBank < gBattleBanksCount; gActiveBank++) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActiveBank != bank) + if (gActiveBattler != bank) { EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } } else { - gActiveBank = GetBankByPosition(GetBankPosition(bank) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[gActiveBank]) - gActiveBank ^= BIT_MON; + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(bank) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) + gActiveBattler ^= BIT_FLANK; EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } } @@ -5790,12 +5790,12 @@ static void atk51_switchhandleorder(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); switch (gBattlescriptCurrInstr[2]) { case 0: - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleBufferB[i][0] == 0x22) { @@ -5810,40 +5810,40 @@ static void atk51_switchhandleorder(void) break; case 1: if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - sub_803BDA0(gActiveBank); + sub_803BDA0(gActiveBattler); break; case 2: - if (!(gBattleStruct->field_93 & gBitTable[gActiveBank])) + if (!(gBattleStruct->field_93 & gBitTable[gActiveBattler])) { - RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]); - gBattleStruct->field_93 |= gBitTable[gActiveBank]; + RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); + gBattleStruct->field_93 |= gBitTable[gActiveBattler]; } // fall through case 3: - gBattleCommunication[0] = gBattleBufferB[gActiveBank][1]; - *(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1]; + gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1]; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = gBattleBufferB[gActiveBattler][1]; if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) { - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0); - *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3]; + *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF; + *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0); + *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBattler][3]; - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4; - *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3]; + *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0); + *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4; + *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBattler][3]; } else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { - sub_80571DC(gActiveBank, *(gBattleStruct->monToSwitchIntoId + gActiveBank)); + sub_80571DC(gActiveBattler, *(gBattleStruct->monToSwitchIntoId + gActiveBattler)); } else { - sub_803BDA0(gActiveBank); + sub_803BDA0(gActiveBattler); } - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankAttacker].species) - PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBank, gBattleBufferB[gActiveBank][1]) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleAttacker].species) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1]) break; } @@ -5855,31 +5855,31 @@ static void atk52_switchineffects(void) { s32 i; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - sub_803FA70(gActiveBank); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + sub_803FA70(gActiveBattler); - gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank)); - gSpecialStatuses[gActiveBank].flag40 = 0; + gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); + gSpecialStatuses[gActiveBattler].flag40 = 0; - if (!(gSideStatuses[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES_DAMAGED) - && (gSideStatuses[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES) - && gBattleMons[gActiveBank].type1 != TYPE_FLYING - && gBattleMons[gActiveBank].type2 != TYPE_FLYING - && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE) + if (!(gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) + && (gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES) + && gBattleMons[gActiveBattler].type1 != TYPE_FLYING + && gBattleMons[gActiveBattler].type2 != TYPE_FLYING + && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE) { u8 spikesDmg; - gSideStatuses[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED; + gSideStatuses[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED; - gBattleMons[gActiveBank].status2 &= ~(STATUS2_DESTINY_BOND); + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_DESTINY_BOND); gHitMarker &= ~(HITMARKER_DESTINYBOND); - spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2; - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg); + spikesDmg = (5 - gSideTimers[GetBattlerSide(gActiveBattler)].spikesAmount) * 2; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (spikesDmg); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; BattleScriptPushCursor(); if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) @@ -5891,25 +5891,25 @@ static void atk52_switchineffects(void) } else { - if (gBattleMons[gActiveBank].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBank].truantUnknownBit) - gDisableStructs[gActiveBank].truantCounter = 1; + if (gBattleMons[gActiveBattler].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBattler].truantUnknownBit) + gDisableStructs[gActiveBattler].truantCounter = 1; - gDisableStructs[gActiveBank].truantUnknownBit = 0; + gDisableStructs[gActiveBattler].truantUnknownBit = 0; - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBank, 0, 0, 0) == 0 && - ItemBattleEffects(0, gActiveBank, 0) == 0) + if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) == 0 && + ItemBattleEffects(0, gActiveBattler, 0) == 0) { - gSideStatuses[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); + gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBanksByTurnOrder[i] == gActiveBank) + if (gBattleTurnOrder[i] == gActiveBattler) gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER; } - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - u16* hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(i)]; + u16* hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(i)]; *hpOnSwitchout = gBattleMons[i].hp; } @@ -5920,9 +5920,9 @@ static void atk52_switchineffects(void) gBank1++; while (1) { - if (hitmarkerFaintBits & gBitTable[gBank1] && !(gAbsentBankFlags & gBitTable[gBank1])) + if (hitmarkerFaintBits & gBitTable[gBank1] && !(gAbsentBattlerFlags & gBitTable[gBank1])) break; - if (gBank1 >= gBattleBanksCount) + if (gBank1 >= gBattlersCount) break; gBank1++; } @@ -5934,54 +5934,54 @@ static void atk52_switchineffects(void) static void atk53_trainerslidein(void) { - gActiveBank = GetBankByPosition(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]); EmitTrainerSlide(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk54_playse(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk55_fanfare(void) { - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk56_playfaintcry(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); EmitFaintingCry(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk57(void) { - gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); EmitCmd55(0, gBattleOutcome); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 1; } static void atk58_returntoball(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); EmitReturnMonToBall(0, 1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6005,20 +6005,20 @@ static void atk59_handlelearnnewmove(void) } else { - gActiveBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId - && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + if (gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterId + && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); + GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); } if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gActiveBank = GetBankByPosition(B_POSITION_PLAYER_RIGHT); - if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId - && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + if (gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterId + && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); + GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); } } @@ -6028,7 +6028,7 @@ static void atk59_handlelearnnewmove(void) static void atk5A_yesnoboxlearnmove(void) { - gActiveBank = 0; + gActiveBattler = 0; switch (gBattleScripting.learnMoveState) { @@ -6101,7 +6101,7 @@ static void atk5A_yesnoboxlearnmove(void) u16 moveId = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MOVE1 + movePosition); if (IsHMMove2(moveId)) { - PrepareStringBattle(STRINGID_HMMOVESCANTBEFORGOTTEN, gActiveBank); + PrepareStringBattle(STRINGID_HMMOVESCANTBEFORGOTTEN, gActiveBattler); gBattleScripting.learnMoveState = 6; } else @@ -6194,16 +6194,16 @@ static void atk5B_yesnoboxstoplearningmove(void) static void atk5C_hitanimation(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr += 2; } - else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBank].substituteHP == 0) + else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0) { EmitHitAnimation(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } else @@ -6284,24 +6284,24 @@ static void atk5D_getmoneyreward(void) static void atk5E(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); switch (gBattleCommunication[0]) { case 0: EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleCommunication[0]++; break; case 1: if (gBattleExecBuffer == 0) { s32 i; - struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBank][4]; + struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBattler][4]; for (i = 0; i < 4; i++) { - gBattleMons[gActiveBank].moves[i] = bufferPoke->moves[i]; - gBattleMons[gActiveBank].pp[i] = bufferPoke->pp[i]; + gBattleMons[gActiveBattler].moves[i] = bufferPoke->moves[i]; + gBattleMons[gActiveBattler].pp[i] = bufferPoke->pp[i]; } gBattlescriptCurrInstr += 2; } @@ -6311,9 +6311,9 @@ static void atk5E(void) static void atk5F(void) { - gActiveBank = gBankAttacker; - gBankAttacker = gBankDefender; - gBankDefender = gActiveBank; + gActiveBattler = gBattleAttacker; + gBattleAttacker = gBattleDefender; + gBattleDefender = gActiveBattler; if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -6325,7 +6325,7 @@ static void atk5F(void) static void atk60_incrementgamestat(void) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) IncrementGameStat(gBattlescriptCurrInstr[1]); gBattlescriptCurrInstr += 2; @@ -6340,9 +6340,9 @@ static void atk61_drawpartystatussummary(void) if (gBattleExecBuffer) return; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -6363,16 +6363,16 @@ static void atk61_drawpartystatussummary(void) } EmitDrawPartyStatusSummary(0, hpStatuses, 1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk62(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); EmitCmd49(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6391,13 +6391,13 @@ static void atk64_statusanimation(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) - && gDisableStructs[gActiveBank].substituteHP == 0 + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) + && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 2; } @@ -6409,14 +6409,14 @@ static void atk65_status2animation(void) if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); wantedToAnimate = BSScriptRead32(gBattlescriptCurrInstr + 2); - if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) - && gDisableStructs[gActiveBank].substituteHP == 0 + if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) + && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBank].status2 & wantedToAnimate); - MarkBufferBankForExecution(gActiveBank); + EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBattler].status2 & wantedToAnimate); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 6; } @@ -6428,14 +6428,14 @@ static void atk66_chosenstatusanimation(void) if (gBattleExecBuffer == 0) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); wantedStatus = BSScriptRead32(gBattlescriptCurrInstr + 3); - if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) - && gDisableStructs[gActiveBank].substituteHP == 0 + if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) + && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { EmitStatusAnimation(0, gBattlescriptCurrInstr[2], wantedStatus); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 7; } @@ -6488,7 +6488,7 @@ static void atk68_cancelallactions(void) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER; gBattlescriptCurrInstr++; @@ -6498,42 +6498,42 @@ static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no ra { u8 holdEffect, quality; - if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankDefender].holdEffect, quality = gEnigmaBerries[gBankDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleDefender].holdEffect, quality = gEnigmaBerries[gBattleDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); } - gStringBank = gBankDefender; + gStringBank = gBattleDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBankDefender, holdEffect); - gSpecialStatuses[gBankDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleDefender, holdEffect); + gSpecialStatuses[gBattleDefender].focusBanded = 1; } - if (gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankDefender].endured - && !gSpecialStatuses[gBankDefender].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleDefender].endured + && !gSpecialStatuses[gBattleDefender].focusBanded) goto END; - if (gBattleMons[gBankDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; - if (gProtectStructs[gBankDefender].endured) + if (gProtectStructs[gBattleDefender].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankDefender].focusBanded) + else if (gSpecialStatuses[gBattleDefender].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankDefender].item; + gLastUsedItem = gBattleMons[gBattleDefender].item; } END: @@ -6544,21 +6544,21 @@ static void atk6A_removeitem(void) { u16* usedHeldItem; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBank]; - *usedHeldItem = gBattleMons[gActiveBank].item; - gBattleMons[gActiveBank].item = 0; + usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBattler]; + *usedHeldItem = gBattleMons[gActiveBattler].item; + gBattleMons[gActiveBattler].item = 0; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk6B_atknameinbuff1(void) { - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattlePartyID[gBattleAttacker]) gBattlescriptCurrInstr++; } @@ -6845,23 +6845,23 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattleAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr++; } static void atk6F_makevisible(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk70_recordlastability(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); gBattlescriptCurrInstr += 1; // UB: Should be + 2, one byte for command and one byte for bank argument. } @@ -6891,8 +6891,8 @@ static void atk73_hpthresholds(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - opposingBank = gActiveBank ^ BIT_SIDE; + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + opposingBank = gActiveBattler ^ BIT_SIDE; result = gBattleMons[opposingBank].hp * 100 / gBattleMons[opposingBank].maxHP; if (result == 0) @@ -6919,9 +6919,9 @@ static void atk74_hpthresholds2(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - opposingBank = gActiveBank ^ BIT_SIDE; - hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBankSide(opposingBank)); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + opposingBank = gActiveBattler ^ BIT_SIDE; + hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBank)); result = (hpSwitchout - gBattleMons[opposingBank].hp) * 100 / hpSwitchout; if (gBattleMons[opposingBank].hp >= hpSwitchout) @@ -6939,8 +6939,8 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { - gBankInMenu = gBankAttacker; - ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); + gBankInMenu = gBattleAttacker; + ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBattleAttacker]], gLastUsedItem, gBattlePartyID[gBattleAttacker], 0, 1); gBattlescriptCurrInstr += 1; } @@ -6950,36 +6950,36 @@ static void atk76_various(void) u8 side; s32 i; - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); switch (gBattlescriptCurrInstr[2]) { case VARIOUS_CANCEL_MULTI_TURN_MOVES: - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); break; case VARIOUS_SET_MAGIC_COAT_TARGET: - gBankAttacker = gBankDefender; - side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + gBattleAttacker = gBattleDefender; + side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) - gBankDefender = gSideTimers[side].followmeTarget; + gBattleDefender = gSideTimers[side].followmeTarget; else - gBankDefender = gActiveBank; + gBattleDefender = gActiveBattler; break; case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: - gBankDefender = GetMoveTarget(gCurrentMove, 0); + gBattleDefender = GetMoveTarget(gCurrentMove, 0); break; case 4: - if (gHitMarker & HITMARKER_FAINTED(gActiveBank)) + if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) gBattleCommunication[0] = 1; else gBattleCommunication[0] = 0; break; case VARIOUS_RESET_INTIMIDATE_TRACE_BITS: - gSpecialStatuses[gActiveBank].intimidatedPoke = 0; - gSpecialStatuses[gActiveBank].traced = 0; + gSpecialStatuses[gActiveBattler].intimidatedPoke = 0; + gSpecialStatuses[gActiveBattler].traced = 0; break; case VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP: if (gBattlePartyID[0] == gBattleStruct->expGetterId || gBattlePartyID[2] == gBattleStruct->expGetterId) @@ -6987,15 +6987,15 @@ static void atk76_various(void) u16 *choicedMove; if (gBattlePartyID[0] == gBattleStruct->expGetterId) - gActiveBank = 0; + gActiveBattler = 0; else - gActiveBank = 2; + gActiveBattler = 2; - choicedMove = &gBattleStruct->choicedMove[gActiveBank]; + choicedMove = &gBattleStruct->choicedMove[gActiveBattler]; for (i = 0; i < 4; i++) { - if (gBattleMons[gActiveBank].moves[i] == *choicedMove) + if (gBattleMons[gActiveBattler].moves[i] == *choicedMove) break; } if (i == 4) @@ -7013,15 +7013,15 @@ static void atk76_various(void) break; case 8: gBattleCommunication[0] = 0; - gBattleScripting.bank = gActiveBank = gBattleCommunication[1]; - if (!(gBattleStruct->field_92 & gBitTable[gActiveBank]) - && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp - && gBattleMons[gActiveBank].hp != 0 - && !(gBattleMons[gActiveBank].status1 & STATUS1_SLEEP)) + gBattleScripting.battler = gActiveBattler = gBattleCommunication[1]; + if (!(gBattleStruct->field_92 & gBitTable[gActiveBattler]) + && gBattleMons[gActiveBattler].maxHP / 2 >= gBattleMons[gActiveBattler].hp + && gBattleMons[gActiveBattler].hp != 0 + && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)) { - gBattleStruct->field_92 |= gBitTable[gActiveBank]; + gBattleStruct->field_92 |= gBitTable[gActiveBattler]; gBattleCommunication[0] = 1; - gBattleCommunication[MULTISTRING_CHOOSER] = sUnknown_0831C4F8[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)]; + gBattleCommunication[MULTISTRING_CHOOSER] = sUnknown_0831C4F8[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)]; } break; case 9: @@ -7057,7 +7057,7 @@ static void atk76_various(void) break; case VARIOUS_EMIT_YESNOBOX: EmitUnknownYesNoBox(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; case 14: sub_81A5BF8(); @@ -7078,21 +7078,21 @@ static void atk76_various(void) return; break; case VARIOUS_RETURN_OPPONENT_MON1: - gActiveBank = 1; - if (gBattleMons[gActiveBank].hp != 0) + gActiveBattler = 1; + if (gBattleMons[gActiveBattler].hp != 0) { EmitReturnMonToBall(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } break; case VARIOUS_RETURN_OPPONENT_MON2: - if (gBattleBanksCount > 3) + if (gBattlersCount > 3) { - gActiveBank = 3; - if (gBattleMons[gActiveBank].hp != 0) + gActiveBattler = 3; + if (gBattleMons[gActiveBattler].hp != 0) { EmitReturnMonToBall(0, 0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } } break; @@ -7103,21 +7103,21 @@ static void atk76_various(void) m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); break; case 23: - gBattleStruct->field_2A2 |= gBitTable[gActiveBank]; + gBattleStruct->field_2A2 |= gBitTable[gActiveBattler]; break; case 24: - if (sub_805725C(gActiveBank)) + if (sub_805725C(gActiveBattler)) return; break; case VARIOUS_SET_TELEPORT_OUTCOME: - if (GetBankSide(gActiveBank) == SIDE_PLAYER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; else gBattleOutcome = B_OUTCOME_POKE_TELEPORTED; break; case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; } @@ -7127,31 +7127,31 @@ static void atk76_various(void) static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; - u16 lastMove = gLastResultingMoves[gBankAttacker]; + u16 lastMove = gLastResultingMoves[gBattleAttacker]; if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) - gDisableStructs[gBankAttacker].protectUses = 0; + gDisableStructs[gBattleAttacker].protectUses = 0; - if (gCurrentTurnActionNumber == (gBattleBanksCount - 1)) + if (gCurrentTurnActionNumber == (gBattlersCount - 1)) notLastTurn = FALSE; - if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] >= Random() && notLastTurn) + if (sProtectSuccessRates[gDisableStructs[gBattleAttacker].protectUses] >= Random() && notLastTurn) { if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) { - gProtectStructs[gBankAttacker].protected = 1; + gProtectStructs[gBattleAttacker].protected = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) { - gProtectStructs[gBankAttacker].endured = 1; + gProtectStructs[gBattleAttacker].endured = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - gDisableStructs[gBankAttacker].protectUses++; + gDisableStructs[gBattleAttacker].protectUses++; } else { - gDisableStructs[gBankAttacker].protectUses = 0; + gDisableStructs[gBattleAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gMoveResultFlags |= MOVE_RESULT_MISSED; } @@ -7164,32 +7164,32 @@ static void atk78_faintifabilitynotdamp(void) if (gBattleExecBuffer) return; - for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) + for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) { - if (gBattleMons[gBankDefender].ability == ABILITY_DAMP) + if (gBattleMons[gBattleDefender].ability == ABILITY_DAMP) break; } - if (gBankDefender == gBattleBanksCount) + if (gBattleDefender == gBattlersCount) { - gActiveBank = gBankAttacker; - gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gActiveBattler = gBattleAttacker; + gBattleMoveDamage = gBattleMons[gActiveBattler].hp; EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; - for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) + for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) { - if (gBankDefender == gBankAttacker) + if (gBattleDefender == gBattleAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) break; } } else { gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(gBankDefender, gBattleMons[gBankDefender].ability); + RecordAbilityBattle(gBattleDefender, gBattleMons[gBattleDefender].ability); gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } @@ -7199,10 +7199,10 @@ static void atk79_setatkhptozero(void) if (gBattleExecBuffer) return; - gActiveBank = gBankAttacker; - gBattleMons[gActiveBank].hp = 0; - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBattleAttacker; + gBattleMons[gActiveBattler].hp = 0; + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; } @@ -7213,15 +7213,15 @@ static void atk7A_jumpifnexttargetvalid(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (gBankDefender++; ; gBankDefender++) + for (gBattleDefender++; ; gBattleDefender++) { - if (gBankDefender == gBankAttacker) + if (gBattleDefender == gBattleAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) break; } - if (gBankDefender >= gBattleBanksCount) + if (gBattleDefender >= gBattlersCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jumpPtr; @@ -7237,14 +7237,14 @@ static void atk7B_tryhealhalfhealth(void) const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattlescriptCurrInstr[5] == BS_GET_ATTACKER) - gBankDefender = gBankAttacker; + gBattleDefender = gBattleAttacker; - gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankDefender].hp == gBattleMons[gBankDefender].maxHP) + if (gBattleMons[gBattleDefender].hp == gBattleMons[gBattleDefender].maxHP) gBattlescriptCurrInstr = failPtr; else gBattlescriptCurrInstr += 6; @@ -7260,12 +7260,12 @@ static void atk7C_trymirrormove(void) for (i = 0; i < 3; i++) movesArray[i] = 0; - for (validMovesCount = 0, i = 0; i < gBattleBanksCount; i++) + for (validMovesCount = 0, i = 0; i < gBattlersCount; i++) { - if (i != gBankAttacker) + if (i != gBattleAttacker) { - move = *(i * 2 + gBankAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) - | (*(i * 2 + gBankAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); + move = *(i * 2 + gBattleAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) + | (*(i * 2 + gBattleAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); if (move != 0 && move != 0xFFFF) { @@ -7275,14 +7275,14 @@ static void atk7C_trymirrormove(void) } } - move = *(gBattleStruct->mirrorMoves + gBankAttacker * 2 + 0) - | (*(gBattleStruct->mirrorMoves + gBankAttacker * 2 + 1) << 8); + move = *(gBattleStruct->mirrorMoves + gBattleAttacker * 2 + 0) + | (*(gBattleStruct->mirrorMoves + gBattleAttacker * 2 + 1) << 8); if (move != 0 && move != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = move; - gBankDefender = GetMoveTarget(gCurrentMove, 0); + gBattleDefender = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (validMovesCount) @@ -7290,12 +7290,12 @@ static void atk7C_trymirrormove(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); i = Random() % validMovesCount; gCurrentMove = movesArray[i]; - gBankDefender = GetMoveTarget(gCurrentMove, 0); + gBattleDefender = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattleAttacker].flag20 = 1; gBattlescriptCurrInstr++; } } @@ -7318,16 +7318,16 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideStatuses[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_REFLECT) + if (gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_REFLECT; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectTimer = 5; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectBank = gBankAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_REFLECT; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].reflectTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].reflectBank = gBattleAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; @@ -7339,20 +7339,20 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBankDefender] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattleDefender] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gBankDefender].type1 == TYPE_GRASS || gBattleMons[gBankDefender].type2 == TYPE_GRASS) + else if (gBattleMons[gBattleDefender].type1 == TYPE_GRASS || gBattleMons[gBattleDefender].type2 == TYPE_GRASS) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else { - gStatuses3[gBankDefender] |= gBankAttacker; - gStatuses3[gBankDefender] |= STATUS3_LEECHSEED; + gStatuses3[gBattleDefender] |= gBattleAttacker; + gStatuses3[gBattleDefender] |= STATUS3_LEECHSEED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7370,8 +7370,8 @@ static void atk80_manipulatedamage(void) gBattleMoveDamage /= 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gBankDefender].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 2; + if ((gBattleMons[gBattleDefender].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 2; break; case ATK80_DMG_DOUBLED: gBattleMoveDamage *= 2; @@ -7384,23 +7384,23 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - gActiveBank = gBankDefender = gBankAttacker; - gBattleMoveDamage = gBattleMons[gBankDefender].maxHP * (-1); + gActiveBattler = gBattleDefender = gBattleAttacker; + gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP * (-1); - if (gBattleMons[gBankDefender].hp == gBattleMons[gBankDefender].maxHP) + if (gBattleMons[gBattleDefender].hp == gBattleMons[gBattleDefender].maxHP) { gBattlescriptCurrInstr = failJump; } else { - if (gBattleMons[gBankDefender].status1 & ((u8)(~STATUS1_SLEEP))) + if (gBattleMons[gBattleDefender].status1 & ((u8)(~STATUS1_SLEEP))) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gBankDefender].status1 = 3; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gBattleDefender].status1 = 3; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; } } @@ -7409,7 +7409,7 @@ static void atk82_jumpifnotfirstturn(void) { const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].isFirstTurn) + if (gDisableStructs[gBattleAttacker].isFirstTurn) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = failJump; @@ -7424,16 +7424,16 @@ bool8 UproarWakeUpCheck(u8 bank) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) continue; - gBattleScripting.bank = i; + gBattleScripting.battler = i; - if (gBankDefender == 0xFF) - gBankDefender = i; - else if (gBankDefender == i) + if (gBattleDefender == 0xFF) + gBattleDefender = i; + else if (gBattleDefender == i) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -7441,7 +7441,7 @@ bool8 UproarWakeUpCheck(u8 bank) break; } - if (i == gBattleBanksCount) + if (i == gBattlersCount) return FALSE; else return TRUE; @@ -7451,17 +7451,17 @@ static void atk84_jumpifcantmakeasleep(void) { const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (UproarWakeUpCheck(gBankDefender)) + if (UproarWakeUpCheck(gBattleDefender)) { gBattlescriptCurrInstr = jumpPtr; } - else if (gBattleMons[gBankDefender].ability == ABILITY_INSOMNIA - || gBattleMons[gBankDefender].ability == ABILITY_VITAL_SPIRIT) + else if (gBattleMons[gBattleDefender].ability == ABILITY_INSOMNIA + || gBattleMons[gBattleDefender].ability == ABILITY_VITAL_SPIRIT) { - gLastUsedAbility = gBattleMons[gBankDefender].ability; + gLastUsedAbility = gBattleMons[gBattleDefender].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattlescriptCurrInstr = jumpPtr; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } else { @@ -7471,16 +7471,16 @@ static void atk84_jumpifcantmakeasleep(void) static void atk85_stockpile(void) { - if (gDisableStructs[gBankAttacker].stockpileCounter == 3) + if (gDisableStructs[gBattleAttacker].stockpileCounter == 3) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gDisableStructs[gBankAttacker].stockpileCounter++; + gDisableStructs[gBattleAttacker].stockpileCounter++; - PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBankAttacker].stockpileCounter) + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattleAttacker].stockpileCounter) gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7490,7 +7490,7 @@ static void atk85_stockpile(void) static void atk86_stockpiletobasedamage(void) { const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattleAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; } @@ -7498,17 +7498,17 @@ static void atk86_stockpiletobasedamage(void) { if (gBattleCommunication[6] != 1) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankDefender], gCurrentMove, - gSideStatuses[GET_BANK_SIDE(gBankDefender)], 0, - 0, gBankAttacker, gBankDefender) - * gDisableStructs[gBankAttacker].stockpileCounter; - gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleDefender], gCurrentMove, + gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)], 0, + 0, gBattleAttacker, gBattleDefender) + * gDisableStructs[gBattleAttacker].stockpileCounter; + gBattleScripting.animTurn = gDisableStructs[gBattleAttacker].stockpileCounter; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattleAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; } - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gDisableStructs[gBattleAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; } } @@ -7517,30 +7517,30 @@ static void atk87_stockpiletohpheal(void) { const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBankAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattleAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } - else if (gBattleMons[gBankAttacker].maxHP == gBattleMons[gBankAttacker].hp) + else if (gBattleMons[gBattleAttacker].maxHP == gBattleMons[gBattleAttacker].hp) { - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gDisableStructs[gBattleAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jumpPtr; - gBankDefender = gBankAttacker; + gBattleDefender = gBattleAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / (1 << (3 - gDisableStructs[gBankAttacker].stockpileCounter)); + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / (1 << (3 - gDisableStructs[gBattleAttacker].stockpileCounter)); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter; - gDisableStructs[gBankAttacker].stockpileCounter = 0; + gBattleScripting.animTurn = gDisableStructs[gBattleAttacker].stockpileCounter; + gDisableStructs[gBattleAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; - gBankDefender = gBankAttacker; + gBattleDefender = gBattleAttacker; } } @@ -7560,9 +7560,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) u32 index; if (flags & MOVE_EFFECT_AFFECTS_USER) - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; else - gActiveBank = gBankDefender; + gActiveBattler = gBattleDefender; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -7578,21 +7578,21 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if ((statValue << 0x18) < 0) // stat decrease { - if (gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer + if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer && !certain && gCurrentMove != MOVE_CURSE) { if (flags == STAT_CHANGE_BS_PTR) { - if (gSpecialStatuses[gActiveBank].statLowered) + if (gSpecialStatuses[gActiveBattler].statLowered) { gBattlescriptCurrInstr = BS_ptr; } else { BattleScriptPush(BS_ptr); - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; gBattlescriptCurrInstr = BattleScript_MistProtected; - gSpecialStatuses[gActiveBank].statLowered = 1; + gSpecialStatuses[gActiveBattler].statLowered = 1; } } return STAT_CHANGE_DIDNT_WORK; @@ -7603,55 +7603,55 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) gBattlescriptCurrInstr = BattleScript_ButItFailed; return STAT_CHANGE_DIDNT_WORK; } - else if ((gBattleMons[gActiveBank].ability == ABILITY_CLEAR_BODY - || gBattleMons[gActiveBank].ability == ABILITY_WHITE_SMOKE) + else if ((gBattleMons[gActiveBattler].ability == ABILITY_CLEAR_BODY + || gBattleMons[gActiveBattler].ability == ABILITY_WHITE_SMOKE) && !certain && gCurrentMove != MOVE_CURSE) { if (flags == STAT_CHANGE_BS_PTR) { - if (gSpecialStatuses[gActiveBank].statLowered) + if (gSpecialStatuses[gActiveBattler].statLowered) { gBattlescriptCurrInstr = BS_ptr; } else { BattleScriptPush(BS_ptr); - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - RecordAbilityBattle(gActiveBank, gLastUsedAbility); - gSpecialStatuses[gActiveBank].statLowered = 1; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); + gSpecialStatuses[gActiveBattler].statLowered = 1; } } return STAT_CHANGE_DIDNT_WORK; } - else if (gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE + else if (gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE && !certain && statId == STAT_STAGE_ACC) { if (flags == STAT_CHANGE_BS_PTR) { BattleScriptPush(BS_ptr); - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gActiveBattler].ability; + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); } return STAT_CHANGE_DIDNT_WORK; } - else if (gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER + else if (gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER && !certain && statId == STAT_STAGE_ATK) { if (flags == STAT_CHANGE_BS_PTR) { BattleScriptPush(BS_ptr); - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - RecordAbilityBattle(gActiveBank, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gActiveBattler].ability; + RecordAbilityBattle(gActiveBattler, gLastUsedAbility); } return STAT_CHANGE_DIDNT_WORK; } - else if (gBattleMons[gActiveBank].ability == ABILITY_SHIELD_DUST && flags == 0) + else if (gBattleMons[gActiveBattler].ability == ABILITY_SHIELD_DUST && flags == 0) { return STAT_CHANGE_DIDNT_WORK; } @@ -7675,10 +7675,10 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBank].statStages[statId] == 0) + if (gBattleMons[gActiveBattler].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankDefender == gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleDefender == gActiveBattler); } } @@ -7702,17 +7702,17 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) index++; gBattleTextBuff2[index] = B_BUFF_EOS; - if (gBattleMons[gActiveBank].statStages[statId] == 0xC) + if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBankDefender == gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleDefender == gActiveBattler); } - gBattleMons[gActiveBank].statStages[statId] += statValue; - if (gBattleMons[gActiveBank].statStages[statId] < 0) - gBattleMons[gActiveBank].statStages[statId] = 0; - if (gBattleMons[gActiveBank].statStages[statId] > 0xC) - gBattleMons[gActiveBank].statStages[statId] = 0xC; + gBattleMons[gActiveBattler].statStages[statId] += statValue; + if (gBattleMons[gActiveBattler].statStages[statId] < 0) + gBattleMons[gActiveBattler].statStages[statId] = 0; + if (gBattleMons[gActiveBattler].statStages[statId] > 0xC) + gBattleMons[gActiveBattler].statStages[statId] = 0xC; if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR) gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -7734,7 +7734,7 @@ static void atk8A_normalisebuffs(void) // haze { s32 i, j; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < BATTLE_STATS_NO; j++) gBattleMons[i].statStages[j] = 6; @@ -7745,17 +7745,17 @@ static void atk8A_normalisebuffs(void) // haze static void atk8B_setbide(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBankAttacker] = gCurrentMove; - gTakenDmg[gBankAttacker] = 0; - gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns + gBattleMons[gBattleAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattleAttacker] = gCurrentMove; + gTakenDmg[gBattleAttacker] = 0; + gBattleMons[gBattleAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns gBattlescriptCurrInstr++; } static void atk8C_confuseifrepeatingattackends(void) { - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_LOCK_CONFUSE)) gBattleCommunication[MOVE_EFFECT_BYTE] = (MOVE_EFFECT_THRASH | MOVE_EFFECT_AFFECTS_USER); gBattlescriptCurrInstr++; @@ -7788,19 +7788,19 @@ static void atk8E_initmultihitstring(void) static bool8 TryDoForceSwitchOut(void) { - if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) + if (gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) { - *(gBattleStruct->field_58 + gBankDefender) = gBattlePartyID[gBankDefender]; + *(gBattleStruct->field_58 + gBattleDefender) = gBattlePartyID[gBattleDefender]; } else { u16 random = Random() & 0xFF; - if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankDefender].level) >> 8) + 1) <= (gBattleMons[gBankDefender].level / 4)) + if ((u32)((random * (gBattleMons[gBattleAttacker].level + gBattleMons[gBattleDefender].level) >> 8) + 1) <= (gBattleMons[gBattleDefender].level / 4)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); return FALSE; } - *(gBattleStruct->field_58 + gBankDefender) = gBattlePartyID[gBankDefender]; + *(gBattleStruct->field_58 + gBattleDefender) = gBattlePartyID[gBattleDefender]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; @@ -7827,7 +7827,7 @@ static void atk8F_forcerandomswitch(void) if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { - if (GetBankSide(gBankDefender) == SIDE_PLAYER) + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -7836,7 +7836,7 @@ static void atk8F_forcerandomswitch(void) || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) { - if ((gBankDefender & BIT_MON) != 0) + if ((gBattleDefender & BIT_FLANK) != 0) { firstMonId = 3; lastMonId = 6; @@ -7848,13 +7848,13 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBankDefender]; - bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBattleDefender]; + bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; } else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) { - if (sub_806D82C(GetBankMultiplayerId(gBankDefender)) == 1) + if (sub_806D82C(GetBankMultiplayerId(gBattleDefender)) == 1) { firstMonId = 3; lastMonId = 6; @@ -7866,12 +7866,12 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBankDefender]; - bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBattleDefender]; + bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (GetBankSide(gBankDefender) == SIDE_PLAYER) + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) { firstMonId = 0; lastMonId = 6; @@ -7880,7 +7880,7 @@ static void atk8F_forcerandomswitch(void) } else { - if ((gBankDefender & BIT_MON) != 0) + if ((gBattleDefender & BIT_FLANK) != 0) { firstMonId = 3; lastMonId = 6; @@ -7893,8 +7893,8 @@ static void atk8F_forcerandomswitch(void) monsCount = 3; minNeeded = 1; } - bank2PartyId = gBattlePartyID[gBankDefender]; - bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBattleDefender]; + bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7902,8 +7902,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 2; - bank2PartyId = gBattlePartyID[gBankDefender]; - bank1PartyId = gBattlePartyID[gBankDefender ^ BIT_MON]; + bank2PartyId = gBattlePartyID[gBattleDefender]; + bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; } else { @@ -7911,8 +7911,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBankDefender]; // there is only one pokemon out in single battles - bank1PartyId = gBattlePartyID[gBankDefender]; + bank2PartyId = gBattlePartyID[gBattleDefender]; // there is only one pokemon out in single battles + bank1PartyId = gBattlePartyID[gBattleDefender]; } for (i = firstMonId; i < lastMonId; i++) @@ -7944,22 +7944,22 @@ static void atk8F_forcerandomswitch(void) || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE || GetMonData(&party[i], MON_DATA_HP) == 0); } - *(gBattleStruct->monToSwitchIntoId + gBankDefender) = i; + *(gBattleStruct->monToSwitchIntoId + gBattleDefender) = i; if (!sub_81B1250()) - sub_803BDA0(gBankDefender); + sub_803BDA0(gBattleDefender); if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - sub_81B8E80(gBankDefender, i, 0); - sub_81B8E80(gBankDefender ^ BIT_MON, i, 1); + sub_81B8E80(gBattleDefender, i, 0); + sub_81B8E80(gBattleDefender ^ BIT_FLANK, i, 1); } if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) - sub_80571DC(gBankDefender, i); + sub_80571DC(gBattleDefender, i); } } else @@ -7976,7 +7976,7 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type while (validMoves < 4) { - if (gBattleMons[gBankAttacker].moves[validMoves] == 0) + if (gBattleMons[gBattleAttacker].moves[validMoves] == 0) break; validMoves++; @@ -7984,17 +7984,17 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type for (moveChecked = 0; moveChecked < validMoves; moveChecked++) { - moveType = gBattleMoves[gBattleMons[gBankAttacker].moves[moveChecked]].type; + moveType = gBattleMoves[gBattleMons[gBattleAttacker].moves[moveChecked]].type; if (moveType == TYPE_MYSTERY) { - if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattleAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleAttacker].type2 == TYPE_GHOST) moveType = TYPE_GHOST; else moveType = TYPE_NORMAL; } - if (moveType != gBattleMons[gBankAttacker].type1 - && moveType != gBattleMons[gBankAttacker].type2) + if (moveType != gBattleMons[gBattleAttacker].type1 + && moveType != gBattleMons[gBattleAttacker].type2) { break; } @@ -8011,20 +8011,20 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type while ((moveChecked = Random() & 3) >= validMoves); - moveType = gBattleMoves[gBattleMons[gBankAttacker].moves[moveChecked]].type; + moveType = gBattleMoves[gBattleMons[gBattleAttacker].moves[moveChecked]].type; if (moveType == TYPE_MYSTERY) { - if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattleAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleAttacker].type2 == TYPE_GHOST) moveType = TYPE_GHOST; else moveType = TYPE_NORMAL; } } - while (moveType == gBattleMons[gBankAttacker].type1 || moveType == gBattleMons[gBankAttacker].type2); + while (moveType == gBattleMons[gBattleAttacker].type1 || moveType == gBattleMons[gBattleAttacker].type2); - gBattleMons[gBankAttacker].type1 = moveType; - gBattleMons[gBankAttacker].type2 = moveType; + gBattleMons[gBattleAttacker].type1 = moveType; + gBattleMons[gBattleAttacker].type2 = moveType; PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType) @@ -8052,16 +8052,16 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideStatuses[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_LIGHTSCREEN) + if (gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenTimer = 5; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenBank = gBankAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].lightscreenTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].lightscreenBank = gBattleAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; @@ -8076,72 +8076,72 @@ static void atk93_tryKO(void) { u8 holdEffect, param; - if (gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBankDefender].holdEffect; - param = gEnigmaBerries[gBankDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleDefender].holdEffect; + param = gEnigmaBerries[gBattleDefender].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankDefender].item); - param = ItemId_GetHoldEffectParam(gBattleMons[gBankDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); + param = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); } - gStringBank = gBankDefender; + gStringBank = gBattleDefender; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param) { - RecordItemEffectBattle(gBankDefender, HOLD_EFFECT_FOCUS_BAND); - gSpecialStatuses[gBankDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleDefender, HOLD_EFFECT_FOCUS_BAND); + gSpecialStatuses[gBattleDefender].focusBanded = 1; } - if (gBattleMons[gBankDefender].ability == ABILITY_STURDY) + if (gBattleMons[gBattleDefender].ability == ABILITY_STURDY) { gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO; - RecordAbilityBattle(gBankDefender, ABILITY_STURDY); + RecordAbilityBattle(gBattleDefender, ABILITY_STURDY); } else { u16 chance; - if (!(gStatuses3[gBankDefender] & STATUS3_ALWAYS_HITS)) + if (!(gStatuses3[gBattleDefender] & STATUS3_ALWAYS_HITS)) { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankDefender].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleAttacker].level - gBattleMons[gBattleDefender].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) chance = TRUE; else chance = FALSE; } - else if (gDisableStructs[gBankDefender].bankWithSureHit == gBankAttacker - && gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) + else if (gDisableStructs[gBattleDefender].bankWithSureHit == gBattleAttacker + && gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) { chance = TRUE; } else { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankDefender].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleAttacker].level - gBattleMons[gBattleDefender].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) chance = TRUE; else chance = FALSE; } if (chance) { - if (gProtectStructs[gBankDefender].endured) + if (gProtectStructs[gBattleDefender].endured) { - gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBankDefender].focusBanded) + else if (gSpecialStatuses[gBattleDefender].focusBanded) { - gBattleMoveDamage = gBattleMons[gBankDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBankDefender].item; + gLastUsedItem = gBattleMons[gBattleDefender].item; } else { - gBattleMoveDamage = gBattleMons[gBankDefender].hp; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp; gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO; } gBattlescriptCurrInstr += 5; @@ -8149,7 +8149,7 @@ static void atk93_tryKO(void) else { gMoveResultFlags |= MOVE_RESULT_MISSED; - if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankDefender].level) + if (gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8160,7 +8160,7 @@ static void atk93_tryKO(void) static void atk94_damagetohalftargethp(void) // super fang { - gBattleMoveDamage = gBattleMons[gBankDefender].hp / 2; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -8189,17 +8189,17 @@ static void atk96_weatherdamage(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - if (gBattleMons[gBankAttacker].type1 != TYPE_ROCK - && gBattleMons[gBankAttacker].type1 != TYPE_STEEL - && gBattleMons[gBankAttacker].type1 != TYPE_GROUND - && gBattleMons[gBankAttacker].type2 != TYPE_ROCK - && gBattleMons[gBankAttacker].type2 != TYPE_STEEL - && gBattleMons[gBankAttacker].type2 != TYPE_GROUND - && gBattleMons[gBankAttacker].ability != ABILITY_SAND_VEIL - && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) - && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) - { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + if (gBattleMons[gBattleAttacker].type1 != TYPE_ROCK + && gBattleMons[gBattleAttacker].type1 != TYPE_STEEL + && gBattleMons[gBattleAttacker].type1 != TYPE_GROUND + && gBattleMons[gBattleAttacker].type2 != TYPE_ROCK + && gBattleMons[gBattleAttacker].type2 != TYPE_STEEL + && gBattleMons[gBattleAttacker].type2 != TYPE_GROUND + && gBattleMons[gBattleAttacker].ability != ABILITY_SAND_VEIL + && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERWATER)) + { + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -8210,12 +8210,12 @@ static void atk96_weatherdamage(void) } if (gBattleWeather & WEATHER_HAIL) { - if (gBattleMons[gBankAttacker].type1 != TYPE_ICE - && gBattleMons[gBankAttacker].type2 != TYPE_ICE - && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND) - && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattleAttacker].type1 != TYPE_ICE + && gBattleMons[gBattleAttacker].type2 != TYPE_ICE + && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -8230,7 +8230,7 @@ static void atk96_weatherdamage(void) gBattleMoveDamage = 0; } - if (gAbsentBankFlags & gBitTable[gBankAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBattleAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -8242,15 +8242,15 @@ static void atk97_tryinfatuating(void) u16 speciesAttacker, speciesTarget; u32 personalityAttacker, personalityTarget; - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - monAttacker = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + monAttacker = &gPlayerParty[gBattlePartyID[gBattleAttacker]]; else - monAttacker = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + monAttacker = &gEnemyParty[gBattlePartyID[gBattleAttacker]]; - if (GetBankSide(gBankDefender) == SIDE_PLAYER) - monTarget = &gPlayerParty[gBattlePartyID[gBankDefender]]; + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + monTarget = &gPlayerParty[gBattlePartyID[gBattleDefender]]; else - monTarget = &gEnemyParty[gBattlePartyID[gBankDefender]]; + monTarget = &gEnemyParty[gBattlePartyID[gBattleDefender]]; speciesAttacker = GetMonData(monAttacker, MON_DATA_SPECIES); personalityAttacker = GetMonData(monAttacker, MON_DATA_PERSONALITY); @@ -8258,16 +8258,16 @@ static void atk97_tryinfatuating(void) speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES); personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY); - if (gBattleMons[gBankDefender].ability == ABILITY_OBLIVIOUS) + if (gBattleMons[gBattleDefender].ability == ABILITY_OBLIVIOUS) { gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; gLastUsedAbility = ABILITY_OBLIVIOUS; - RecordAbilityBattle(gBankDefender, ABILITY_OBLIVIOUS); + RecordAbilityBattle(gBattleDefender, ABILITY_OBLIVIOUS); } else { if (GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) - || gBattleMons[gBankDefender].status2 & STATUS2_INFATUATION + || gBattleMons[gBattleDefender].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS || GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS) { @@ -8275,7 +8275,7 @@ static void atk97_tryinfatuating(void) } else { - gBattleMons[gBankDefender].status2 |= STATUS2_INFATUATED_WITH(gBankAttacker); + gBattleMons[gBattleDefender].status2 |= STATUS2_INFATUATED_WITH(gBattleAttacker); gBattlescriptCurrInstr += 5; } } @@ -8288,26 +8288,26 @@ static void atk98_updatestatusicon(void) if (gBattlescriptCurrInstr[1] != BS_ATTACKER_WITH_PARTNER) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); + EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } else { - gActiveBank = gBankAttacker; - if (!(gAbsentBankFlags & gBitTable[gActiveBank])) + gActiveBattler = gBattleAttacker; + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); - MarkBufferBankForExecution(gActiveBank); + EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBufferBankForExecution(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); - if (!(gAbsentBankFlags & gBitTable[gActiveBank])) + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); + if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); - MarkBufferBankForExecution(gActiveBank); + EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBufferBankForExecution(gActiveBattler); } } gBattlescriptCurrInstr += 2; @@ -8316,16 +8316,16 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer) + if (gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer = 5; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistBank = gBankAttacker; - gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_MIST; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].mistTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].mistBank = gBattleAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8333,14 +8333,14 @@ static void atk99_setmist(void) static void atk9A_setfocusenergy(void) { - if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMons[gBankAttacker].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[gBattleAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8350,8 +8350,8 @@ static void atk9B_transformdataexecution(void) { gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; - if (gBattleMons[gBankDefender].status2 & STATUS2_TRANSFORMED - || gStatuses3[gBankDefender] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattleDefender].status2 & STATUS2_TRANSFORMED + || gStatuses3[gBattleDefender] & STATUS3_SEMI_INVULNERABLE) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8361,55 +8361,55 @@ static void atk9B_transformdataexecution(void) s32 i; u8 *battleMonAttacker, *battleMonTarget; - gBattleMons[gBankAttacker].status2 |= STATUS2_TRANSFORMED; - gDisableStructs[gBankAttacker].disabledMove = 0; - gDisableStructs[gBankAttacker].disableTimer1 = 0; - gDisableStructs[gBankAttacker].transformedMonPersonality = gBattleMons[gBankDefender].personality; - gDisableStructs[gBankAttacker].unk18_b = 0; + gBattleMons[gBattleAttacker].status2 |= STATUS2_TRANSFORMED; + gDisableStructs[gBattleAttacker].disabledMove = 0; + gDisableStructs[gBattleAttacker].disableTimer1 = 0; + gDisableStructs[gBattleAttacker].transformedMonPersonality = gBattleMons[gBattleDefender].personality; + gDisableStructs[gBattleAttacker].unk18_b = 0; - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankDefender].species) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleDefender].species) - battleMonAttacker = (u8*)(&gBattleMons[gBankAttacker]); - battleMonTarget = (u8*)(&gBattleMons[gBankDefender]); + battleMonAttacker = (u8*)(&gBattleMons[gBattleAttacker]); + battleMonTarget = (u8*)(&gBattleMons[gBattleDefender]); for (i = 0; i < offsetof(struct BattlePokemon, pp); i++) battleMonAttacker[i] = battleMonTarget[i]; for (i = 0; i < 4; i++) { - if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].pp < 5) - gBattleMons[gBankAttacker].pp[i] = gBattleMoves[gBattleMons[gBankAttacker].moves[i]].pp; + if (gBattleMoves[gBattleMons[gBattleAttacker].moves[i]].pp < 5) + gBattleMons[gBattleAttacker].pp[i] = gBattleMoves[gBattleMons[gBattleAttacker].moves[i]].pp; else - gBattleMons[gBankAttacker].pp[i] = 5; + gBattleMons[gBattleAttacker].pp[i] = 5; } - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 0; } } static void atk9C_setsubstitute(void) { - u32 hp = gBattleMons[gBankAttacker].maxHP / 4; - if (gBattleMons[gBankAttacker].maxHP / 4 == 0) + u32 hp = gBattleMons[gBattleAttacker].maxHP / 4; + if (gBattleMons[gBattleAttacker].maxHP / 4 == 0) hp = 1; - if (gBattleMons[gBankAttacker].hp <= hp) + if (gBattleMons[gBattleAttacker].hp <= hp) { gBattleMoveDamage = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleMons[gBankAttacker].status2 |= STATUS2_SUBSTITUTE; - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gDisableStructs[gBankAttacker].substituteHP = gBattleMoveDamage; + gBattleMons[gBattleAttacker].status2 |= STATUS2_SUBSTITUTE; + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_WRAPPED); + gDisableStructs[gBattleAttacker].substituteHP = gBattleMoveDamage; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -8430,10 +8430,10 @@ static void atk9D_mimicattackcopy(void) { gChosenMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gLastMoves[gBankDefender]) - || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gLastMoves[gBankDefender] == 0 - || gLastMoves[gBankDefender] == 0xFFFF) + if (IsMoveUncopyableByMimic(gLastMoves[gBattleDefender]) + || gBattleMons[gBattleAttacker].status2 & STATUS2_TRANSFORMED + || gLastMoves[gBattleDefender] == 0 + || gLastMoves[gBattleDefender] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8443,22 +8443,22 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gLastMoves[gBankDefender]) + if (gBattleMons[gBattleAttacker].moves[i] == gLastMoves[gBattleDefender]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastMoves[gBankDefender]; - if (gBattleMoves[gLastMoves[gBankDefender]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBankDefender]].pp; + gBattleMons[gBattleAttacker].moves[gCurrMovePos] = gLastMoves[gBattleDefender]; + if (gBattleMoves[gLastMoves[gBattleDefender]].pp < 5) + gBattleMons[gBattleAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattleDefender]].pp; else - gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; + gBattleMons[gBattleAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankDefender]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleDefender]) - gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gDisableStructs[gBattleAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; } else @@ -8494,7 +8494,7 @@ static void atk9E_metronome(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gBankDefender = GetMoveTarget(gCurrentMove, 0); + gBattleDefender = GetMoveTarget(gCurrentMove, 0); return; } } @@ -8502,7 +8502,7 @@ static void atk9E_metronome(void) static void atk9F_dmgtolevel(void) { - gBattleMoveDamage = gBattleMons[gBankAttacker].level; + gBattleMoveDamage = gBattleMons[gBattleAttacker].level; gBattlescriptCurrInstr++; } @@ -8513,54 +8513,54 @@ static void atkA0_psywavedamageeffect(void) while ((randDamage = (Random() & 0xF)) > 10); randDamage *= 10; - gBattleMoveDamage = gBattleMons[gBankAttacker].level * (randDamage + 50) / 100; + gBattleMoveDamage = gBattleMons[gBattleAttacker].level * (randDamage + 50) / 100; gBattlescriptCurrInstr++; } static void atkA1_counterdamagecalculator(void) { - u8 sideAttacker = GetBankSide(gBankAttacker); - u8 sideTarget = GetBankSide(gProtectStructs[gBankAttacker].physicalBank); + u8 sideAttacker = GetBattlerSide(gBattleAttacker); + u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleAttacker].physicalBank); - if (gProtectStructs[gBankAttacker].physicalDmg + if (gProtectStructs[gBattleAttacker].physicalDmg && sideAttacker != sideTarget - && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp) + && gBattleMons[gProtectStructs[gBattleAttacker].physicalBank].hp) { - gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattleAttacker].physicalDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBankDefender = gSideTimers[sideTarget].followmeTarget; + gBattleDefender = gSideTimers[sideTarget].followmeTarget; else - gBankDefender = gProtectStructs[gBankAttacker].physicalBank; + gBattleDefender = gProtectStructs[gBattleAttacker].physicalBank; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattleAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the physical -> special field changes { - u8 sideAttacker = GetBankSide(gBankAttacker); - u8 sideTarget = GetBankSide(gProtectStructs[gBankAttacker].specialBank); + u8 sideAttacker = GetBattlerSide(gBattleAttacker); + u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleAttacker].specialBank); - if (gProtectStructs[gBankAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp) + if (gProtectStructs[gBattleAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattleAttacker].specialBank].hp) { - gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattleAttacker].specialDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBankDefender = gSideTimers[sideTarget].followmeTarget; + gBattleDefender = gSideTimers[sideTarget].followmeTarget; else - gBankDefender = gProtectStructs[gBankAttacker].specialBank; + gBattleDefender = gProtectStructs[gBattleAttacker].specialBank; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattleAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } @@ -8571,17 +8571,17 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankDefender].moves[i] == gLastMoves[gBankDefender]) + if (gBattleMons[gBattleDefender].moves[i] == gLastMoves[gBattleDefender]) break; } - if (gDisableStructs[gBankDefender].disabledMove == 0 - && i != 4 && gBattleMons[gBankDefender].pp[i] != 0) + if (gDisableStructs[gBattleDefender].disabledMove == 0 + && i != 4 && gBattleMons[gBattleDefender].pp[i] != 0) { - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankDefender].moves[i]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleDefender].moves[i]) - gDisableStructs[gBankDefender].disabledMove = gBattleMons[gBankDefender].moves[i]; - gDisableStructs[gBankDefender].disableTimer1 = (Random() & 3) + 2; - gDisableStructs[gBankDefender].disableTimer2 = gDisableStructs[gBankDefender].disableTimer1; // used to save the random amount of turns? + gDisableStructs[gBattleDefender].disabledMove = gBattleMons[gBattleDefender].moves[i]; + gDisableStructs[gBattleDefender].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBattleDefender].disableTimer2 = gDisableStructs[gBattleDefender].disableTimer1; // used to save the random amount of turns? gBattlescriptCurrInstr += 5; } else @@ -8596,24 +8596,24 @@ static void atkA4_trysetencore(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankDefender].moves[i] == gLastMoves[gBankDefender]) + if (gBattleMons[gBattleDefender].moves[i] == gLastMoves[gBattleDefender]) break; } - if (gLastMoves[gBankDefender] == MOVE_STRUGGLE - || gLastMoves[gBankDefender] == MOVE_ENCORE - || gLastMoves[gBankDefender] == MOVE_MIRROR_MOVE) + if (gLastMoves[gBattleDefender] == MOVE_STRUGGLE + || gLastMoves[gBattleDefender] == MOVE_ENCORE + || gLastMoves[gBattleDefender] == MOVE_MIRROR_MOVE) { i = 4; } - if (gDisableStructs[gBankDefender].encoredMove == 0 - && i != 4 && gBattleMons[gBankDefender].pp[i] != 0) + if (gDisableStructs[gBattleDefender].encoredMove == 0 + && i != 4 && gBattleMons[gBattleDefender].pp[i] != 0) { - gDisableStructs[gBankDefender].encoredMove = gBattleMons[gBankDefender].moves[i]; - gDisableStructs[gBankDefender].encoredMovePos = i; - gDisableStructs[gBankDefender].encoreTimer1 = (Random() & 3) + 3; - gDisableStructs[gBankDefender].encoreTimer2 = gDisableStructs[gBankDefender].encoreTimer1; + gDisableStructs[gBattleDefender].encoredMove = gBattleMons[gBattleDefender].moves[i]; + gDisableStructs[gBattleDefender].encoredMovePos = i; + gDisableStructs[gBattleDefender].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBattleDefender].encoreTimer2 = gDisableStructs[gBattleDefender].encoreTimer1; gBattlescriptCurrInstr += 5; } else @@ -8624,10 +8624,10 @@ static void atkA4_trysetencore(void) static void atkA5_painsplitdmgcalc(void) { - if (!(gBattleMons[gBankDefender].status2 & STATUS2_SUBSTITUTE)) + if (!(gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE)) { - s32 hpDiff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankDefender].hp) / 2; - s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBankDefender].hp - hpDiff; + s32 hpDiff = (gBattleMons[gBattleAttacker].hp + gBattleMons[gBattleDefender].hp) / 2; + s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBattleDefender].hp - hpDiff; u8* storeLoc = (void*)(&gBattleScripting.painSplitHp); storeLoc[0] = (painSplitHp); @@ -8635,8 +8635,8 @@ static void atkA5_painsplitdmgcalc(void) storeLoc[2] = (painSplitHp & 0x00FF0000) >> 16; storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; - gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hpDiff; - gSpecialStatuses[gBankDefender].moveturnLostHP = 0xFFFF; + gBattleMoveDamage = gBattleMons[gBattleAttacker].hp - hpDiff; + gSpecialStatuses[gBattleDefender].moveturnLostHP = 0xFFFF; gBattlescriptCurrInstr += 5; } @@ -8648,13 +8648,13 @@ static void atkA5_painsplitdmgcalc(void) static void atkA6_settypetorandomresistance(void) // conversion 2 { - if (gLastLandedMoves[gBankAttacker] == 0 - || gLastLandedMoves[gBankAttacker] == 0xFFFF) + if (gLastLandedMoves[gBattleAttacker] == 0 + || gLastLandedMoves[gBattleAttacker] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } - else if (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker]) - && gBattleMons[gLastHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) + else if (IsTwoTurnsMove(gLastLandedMoves[gBattleAttacker]) + && gBattleMons[gLastHitBy[gBattleAttacker]].status2 & STATUS2_MULTIPLETURNS) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8668,13 +8668,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 i *= 3; - if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBankAttacker] + if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBattleAttacker] && TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE - && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) - && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) + && gBattleMons[gBattleAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) + && gBattleMons[gBattleAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) { - gBattleMons[gBankAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i); - gBattleMons[gBankAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i); + gBattleMons[gBattleAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i); + gBattleMons[gBattleAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i); PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(i)) @@ -8691,13 +8691,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 case TYPE_FORESIGHT: break; default: - if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBankAttacker] + if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBattleAttacker] && TYPE_EFFECT_MULTIPLIER(j) <= 5 - && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) - && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) + && gBattleMons[gBattleAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) + && gBattleMons[gBattleAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) { - gBattleMons[gBankAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands); - gBattleMons[gBankAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands); + gBattleMons[gBattleAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands); + gBattleMons[gBattleAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands); PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(rands)) @@ -8714,9 +8714,9 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 static void atkA7_setalwayshitflag(void) { - gStatuses3[gBankDefender] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[gBankDefender] |= 0x10; - gDisableStructs[gBankDefender].bankWithSureHit = gBankAttacker; + gStatuses3[gBattleDefender] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBattleDefender] |= 0x10; + gDisableStructs[gBattleDefender].bankWithSureHit = gBattleAttacker; gBattlescriptCurrInstr++; } @@ -8724,19 +8724,19 @@ static void atkA8_copymovepermanently(void) // sketch { gChosenMove = 0xFFFF; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && gLastPrintedMoves[gBankDefender] != MOVE_STRUGGLE - && gLastPrintedMoves[gBankDefender] != 0 - && gLastPrintedMoves[gBankDefender] != 0xFFFF - && gLastPrintedMoves[gBankDefender] != MOVE_SKETCH) + if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_TRANSFORMED) + && gLastPrintedMoves[gBattleDefender] != MOVE_STRUGGLE + && gLastPrintedMoves[gBattleDefender] != 0 + && gLastPrintedMoves[gBattleDefender] != 0xFFFF + && gLastPrintedMoves[gBattleDefender] != MOVE_SKETCH) { s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) + if (gBattleMons[gBattleAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gLastPrintedMoves[gBankDefender]) + if (gBattleMons[gBattleAttacker].moves[i] == gLastPrintedMoves[gBattleDefender]) break; } @@ -8748,21 +8748,21 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBankDefender]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBankDefender]].pp; - gActiveBank = gBankAttacker; + gBattleMons[gBattleAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattleDefender]; + gBattleMons[gBattleAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattleDefender]].pp; + gActiveBattler = gBattleAttacker; for (i = 0; i < 4; i++) { - movePpData.moves[i] = gBattleMons[gBankAttacker].moves[i]; - movePpData.pp[i] = gBattleMons[gBankAttacker].pp[i]; + movePpData.moves[i] = gBattleMons[gBattleAttacker].moves[i]; + movePpData.pp[i] = gBattleMons[gBattleAttacker].pp[i]; } - movePpData.ppBonuses = gBattleMons[gBankAttacker].ppBonuses; + movePpData.ppBonuses = gBattleMons[gBattleAttacker].ppBonuses; EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBankDefender]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattleDefender]) gBattlescriptCurrInstr += 5; } @@ -8822,17 +8822,17 @@ static void atkA9_trychoosesleeptalkmove(void) for (i = 0; i < 4; i++) { - if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBankAttacker].moves[i]) - || gBattleMons[gBankAttacker].moves[i] == MOVE_FOCUS_PUNCH - || gBattleMons[gBankAttacker].moves[i] == MOVE_UPROAR - || IsTwoTurnsMove(gBattleMons[gBankAttacker].moves[i])) + if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBattleAttacker].moves[i]) + || gBattleMons[gBattleAttacker].moves[i] == MOVE_FOCUS_PUNCH + || gBattleMons[gBattleAttacker].moves[i] == MOVE_UPROAR + || IsTwoTurnsMove(gBattleMons[gBattleAttacker].moves[i])) { unusableMovesBits |= gBitTable[i]; } } - unusableMovesBits = CheckMoveLimitations(gBankAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); + unusableMovesBits = CheckMoveLimitations(gBattleAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); if (unusableMovesBits == 0xF) // all 4 moves cannot be chosen { gBattlescriptCurrInstr += 5; @@ -8846,25 +8846,25 @@ static void atkA9_trychoosesleeptalkmove(void) movePosition = Random() & 3; } while ((gBitTable[movePosition] & unusableMovesBits)); - gRandomMove = gBattleMons[gBankAttacker].moves[movePosition]; + gRandomMove = gBattleMons[gBattleAttacker].moves[movePosition]; gCurrMovePos = movePosition; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBankDefender = GetMoveTarget(gRandomMove, 0); + gBattleDefender = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkAA_setdestinybond(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; + gBattleMons[gBattleAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } static void TrySetDestinyBondToHappen(void) { - u8 sideAttacker = GetBankSide(gBankAttacker); - u8 sideTarget = GetBankSide(gBankDefender); - if (gBattleMons[gBankDefender].status2 & STATUS2_DESTINY_BOND + u8 sideAttacker = GetBattlerSide(gBattleAttacker); + u8 sideTarget = GetBattlerSide(gBattleDefender); + if (gBattleMons[gBattleDefender].status2 & STATUS2_DESTINY_BOND && sideAttacker != sideTarget && !(gHitMarker & HITMARKER_GRUDGE)) { @@ -8881,7 +8881,7 @@ static void atkAB_trysetdestinybondtohappen(void) static void atkAC_remaininghptopower(void) { s32 i; - s32 hpFraction = GetScaledHPFraction(gBattleMons[gBankAttacker].hp, gBattleMons[gBankAttacker].maxHP, 48); + s32 hpFraction = GetScaledHPFraction(gBattleMons[gBattleAttacker].hp, gBattleMons[gBattleAttacker].maxHP, 48); for (i = 0; i < (s32) sizeof(sFlailHpScaleToPowerTable); i += 2) { @@ -8895,43 +8895,43 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastMoves[gBankDefender] != 0 - && gLastMoves[gBankDefender] != 0xFFFF) + if (gLastMoves[gBattleDefender] != 0 + && gLastMoves[gBattleDefender] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gLastMoves[gBankDefender] == gBattleMons[gBankDefender].moves[i]) + if (gLastMoves[gBattleDefender] == gBattleMons[gBattleDefender].moves[i]) break; } - if (i != 4 && gBattleMons[gBankDefender].pp[i] > 1) + if (i != 4 && gBattleMons[gBattleDefender].pp[i] > 1) { s32 ppToDeduct = (Random() & 3) + 2; - if (gBattleMons[gBankDefender].pp[i] < ppToDeduct) - ppToDeduct = gBattleMons[gBankDefender].pp[i]; + if (gBattleMons[gBattleDefender].pp[i] < ppToDeduct) + ppToDeduct = gBattleMons[gBattleDefender].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankDefender]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleDefender]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 1, ppToDeduct) - gBattleMons[gBankDefender].pp[i] -= ppToDeduct; - gActiveBank = gBankDefender; + gBattleMons[gBattleDefender].pp[i] -= ppToDeduct; + gActiveBattler = gBattleDefender; - if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i]) - && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) + if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) + && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr += 5; - if (gBattleMons[gBankDefender].pp[i] == 0) - CancelMultiTurnMoves(gBankDefender); + if (gBattleMons[gBattleDefender].pp[i] == 0) + CancelMultiTurnMoves(gBattleDefender); } else { @@ -8956,35 +8956,35 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gBattleAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBankAttacker].status1 = 0; - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleAttacker].status1 = 0; + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); } else { - RecordAbilityBattle(gBankAttacker, gBattleMons[gBankAttacker].ability); + RecordAbilityBattle(gBattleAttacker, gBattleMons[gBattleAttacker].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBank = gBattleScripting.bank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBankFlags & gBitTable[gActiveBank])) + && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gActiveBattler].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gActiveBank].status1 = 0; - gBattleMons[gActiveBank].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gActiveBattler].status1 = 0; + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_NIGHTMARE); } else { - RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); + RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 2; } } @@ -8998,12 +8998,12 @@ static void atkAE_healpartystatus(void) { u8 ability; - if (gBattlePartyID[gBankAttacker] == i) - ability = gBattleMons[gBankAttacker].ability; + if (gBattlePartyID[gBattleAttacker] == i) + ability = gBattleMons[gBattleAttacker].ability; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattlePartyID[gActiveBank] == i - && !(gAbsentBankFlags & gBitTable[gActiveBank])) - ability = gBattleMons[gActiveBank].ability; + && gBattlePartyID[gActiveBattler] == i + && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) + ability = gBattleMons[gActiveBattler].ability; else ability = GetAbilityBySpecies(species, abilityBit); @@ -9017,24 +9017,24 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = 4; toHeal = 0x3F; - gBattleMons[gBankAttacker].status1 = 0; - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleAttacker].status1 = 0; + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBankFlags & gBitTable[gActiveBank])) + && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - gBattleMons[gActiveBank].status1 = 0; - gBattleMons[gActiveBank].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gActiveBattler].status1 = 0; + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_NIGHTMARE); } } if (toHeal) { - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } gBattlescriptCurrInstr++; @@ -9042,14 +9042,14 @@ static void atkAE_healpartystatus(void) static void atkAF_cursetarget(void) { - if (gBattleMons[gBankDefender].status2 & STATUS2_CURSED) + if (gBattleMons[gBattleDefender].status2 & STATUS2_CURSED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankDefender].status2 |= STATUS2_CURSED; - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMons[gBattleDefender].status2 |= STATUS2_CURSED; + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9059,11 +9059,11 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { - u8 targetSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; + u8 targetSide = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; if (gSideTimers[targetSide].spikesAmount == 3) { - gSpecialStatuses[gBankAttacker].flag20 = 1; + gSpecialStatuses[gBattleAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else @@ -9076,7 +9076,7 @@ static void atkB0_trysetspikes(void) static void atkB1_setforesight(void) { - gBattleMons[gBankDefender].status2 |= STATUS2_FORESIGHT; + gBattleMons[gBattleDefender].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } @@ -9085,7 +9085,7 @@ static void atkB2_trysetperishsong(void) s32 i; s32 notAffectedCount = 0; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gStatuses3[i] & STATUS3_PERISH_SONG || gBattleMons[i].ability == ABILITY_SOUNDPROOF) @@ -9100,9 +9100,9 @@ static void atkB2_trysetperishsong(void) } } - PressurePPLoseOnUsingPerishSong(gBankAttacker); + PressurePPLoseOnUsingPerishSong(gBattleAttacker); - if (notAffectedCount == gBattleBanksCount) + if (notAffectedCount == gBattlersCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -9112,31 +9112,31 @@ static void atkB3_rolloutdamagecalculation(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { s32 i; - if (!(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit + if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit { - gDisableStructs[gBankAttacker].rolloutCounter1 = 5; - gDisableStructs[gBankAttacker].rolloutCounter2 = 5; - gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBankAttacker] = gCurrentMove; + gDisableStructs[gBattleAttacker].rolloutCounter1 = 5; + gDisableStructs[gBattleAttacker].rolloutCounter2 = 5; + gBattleMons[gBattleAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattleAttacker] = gCurrentMove; } - if (--gDisableStructs[gBankAttacker].rolloutCounter1 == 0) // last hit + if (--gDisableStructs[gBattleAttacker].rolloutCounter1 == 0) // last hit { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); } gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < (5 - gDisableStructs[gBankAttacker].rolloutCounter1); i++) + for (i = 1; i < (5 - gDisableStructs[gBattleAttacker].rolloutCounter1); i++) gDynamicBasePower *= 2; - if (gBattleMons[gBankAttacker].status2 & STATUS2_DEFENSE_CURL) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_DEFENSE_CURL) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -9145,8 +9145,8 @@ static void atkB3_rolloutdamagecalculation(void) static void atkB4_jumpifconfusedandstatmaxed(void) { - if (gBattleMons[gBankDefender].status2 & STATUS2_CONFUSION - && gBattleMons[gBankDefender].statStages[gBattlescriptCurrInstr[1]] == 0xC) + if (gBattleMons[gBattleDefender].status2 & STATUS2_CONFUSION + && gBattleMons[gBattleDefender].statStages[gBattlescriptCurrInstr[1]] == 0xC) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -9156,19 +9156,19 @@ static void atkB5_furycuttercalc(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gDisableStructs[gBankAttacker].furyCutterCounter = 0; + gDisableStructs[gBattleAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { s32 i; - if (gDisableStructs[gBankAttacker].furyCutterCounter != 5) - gDisableStructs[gBankAttacker].furyCutterCounter++; + if (gDisableStructs[gBattleAttacker].furyCutterCounter != 5) + gDisableStructs[gBattleAttacker].furyCutterCounter++; gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < gDisableStructs[gBankAttacker].furyCutterCounter; i++) + for (i = 1; i < gDisableStructs[gBattleAttacker].furyCutterCounter; i++) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -9178,9 +9178,9 @@ static void atkB5_furycuttercalc(void) static void atkB6_happinesstodamagecalculation(void) { if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) - gDynamicBasePower = 10 * (gBattleMons[gBankAttacker].friendship) / 25; + gDynamicBasePower = 10 * (gBattleMons[gBattleAttacker].friendship) / 25; else // EFFECT_FRUSTRATION - gDynamicBasePower = 10 * (255 - gBattleMons[gBankAttacker].friendship) / 25; + gDynamicBasePower = 10 * (255 - gBattleMons[gBattleAttacker].friendship) / 25; gBattlescriptCurrInstr++; } @@ -9197,14 +9197,14 @@ static void atkB7_presentdamagecalculation(void) gDynamicBasePower = 120; else { - gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } if (rand < 204) gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; - else if (gBattleMons[gBankDefender].maxHP == gBattleMons[gBankDefender].hp) + else if (gBattleMons[gBattleDefender].maxHP == gBattleMons[gBattleDefender].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { @@ -9215,16 +9215,16 @@ static void atkB7_presentdamagecalculation(void) static void atkB8_setsafeguard(void) { - if (gSideStatuses[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) + if (gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardTimer = 5; - gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardBank = gBankAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].safeguardTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].safeguardBank = gBattleAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -9274,11 +9274,11 @@ static void atkB9_magnitudedamagecalculation(void) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 2, magnitude) - for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) + for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) { - if (gBankDefender == gBankAttacker) + if (gBattleDefender == gBattleAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankDefender])) // a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) // a valid target was found break; } @@ -9289,36 +9289,36 @@ static void atkBA_jumpifnopursuitswitchdmg(void) { if (gMultiHitCounter == 1) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_LEFT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); } else { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else - gBankDefender = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gActionForBanks[gBankDefender] == ACTION_USE_MOVE - && gBankAttacker == *(gBattleStruct->moveTarget + gBankDefender) - && !(gBattleMons[gBankDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) - && gBattleMons[gBankAttacker].hp - && !gDisableStructs[gBankDefender].truantCounter - && gChosenMovesByBanks[gBankDefender] == MOVE_PURSUIT) + if (gActionForBanks[gBattleDefender] == ACTION_USE_MOVE + && gBattleAttacker == *(gBattleStruct->moveTarget + gBattleDefender) + && !(gBattleMons[gBattleDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + && gBattleMons[gBattleAttacker].hp + && !gDisableStructs[gBattleDefender].truantCounter + && gChosenMovesByBanks[gBattleDefender] == MOVE_PURSUIT) { s32 i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBanksByTurnOrder[i] == gBankDefender) + if (gBattleTurnOrder[i] == gBattleDefender) gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankDefender); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleDefender); gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); @@ -9348,16 +9348,16 @@ static void atkBB_setsunny(void) static void atkBC_maxattackhalvehp(void) // belly drum { - u32 halfHp = gBattleMons[gBankAttacker].maxHP / 2; + u32 halfHp = gBattleMons[gBattleAttacker].maxHP / 2; - if (!(gBattleMons[gBankAttacker].maxHP / 2)) + if (!(gBattleMons[gBattleAttacker].maxHP / 2)) halfHp = 1; - if (gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] < 12 - && gBattleMons[gBankAttacker].hp > halfHp) + if (gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ATK] < 12 + && gBattleMons[gBattleAttacker].hp > halfHp) { - gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] = 12; - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ATK] = 12; + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9375,7 +9375,7 @@ static void atkBD_copyfoestats(void) // psych up for (i = 0; i < BATTLE_STATS_NO; i++) { - gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankDefender].statStages[i]; + gBattleMons[gBattleAttacker].statStages[i] = gBattleMons[gBattleDefender].statStages[i]; } gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter. @@ -9383,32 +9383,32 @@ static void atkBD_copyfoestats(void) // psych up static void atkBE_rapidspinfree(void) { - if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_WRAPPED) { - gBattleScripting.bank = gBankDefender; - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED); - gBankDefender = *(gBattleStruct->wrappedBy + gBankAttacker); + gBattleScripting.battler = gBattleDefender; + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_WRAPPED); + gBattleDefender = *(gBattleStruct->wrappedBy + gBattleAttacker); gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff1[1] = B_BUFF_MOVE; - gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBankAttacker * 2 + 0); - gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBankAttacker * 2 + 1); + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBattleAttacker * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBattleAttacker * 2 + 1); gBattleTextBuff1[4] = B_BUFF_EOS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WrapFree; } - else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED) + else if (gStatuses3[gBattleAttacker] & STATUS3_LEECHSEED) { - gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED); - gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK); + gStatuses3[gBattleAttacker] &= ~(STATUS3_LEECHSEED); + gStatuses3[gBattleAttacker] &= ~(STATUS3_LEECHSEED_BANK); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideStatuses[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideStatuses[GetBattlerSide(gBattleAttacker)] & SIDE_STATUS_SPIKES) { - gSideStatuses[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0; + gSideStatuses[GetBattlerSide(gBattleAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBattlerSide(gBattleAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -9420,22 +9420,22 @@ static void atkBE_rapidspinfree(void) static void atkBF_setdefensecurlbit(void) { - gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; + gBattleMons[gBattleAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; } static void atkC0_recoverbasedonsunlight(void) { - gBankDefender = gBankAttacker; + gBattleDefender = gBattleAttacker; - if (gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP) + if (gBattleMons[gBattleAttacker].hp != gBattleMons[gBattleAttacker].maxHP) { if (gBattleWeather == 0 || !WEATHER_HAS_EFFECT) - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 2; else if (gBattleWeather & WEATHER_SUN_ANY) - gBattleMoveDamage = 20 * gBattleMons[gBankAttacker].maxHP / 30; + gBattleMoveDamage = 20 * gBattleMons[gBattleAttacker].maxHP / 30; else // not sunny weather - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9455,19 +9455,19 @@ static void atkC1_hiddenpowercalc(void) u32 powerBits = 0; u32 typeBits = 0; - powerBits |= ((gBattleMons[gBankAttacker].hpIV & 2) >> 1); - powerBits |= ((gBattleMons[gBankAttacker].attackIV & 2) << 0); - powerBits |= ((gBattleMons[gBankAttacker].defenseIV & 2) << 1); - powerBits |= ((gBattleMons[gBankAttacker].speedIV & 2) << 2); - powerBits |= ((gBattleMons[gBankAttacker].spAttackIV & 2) << 3); - powerBits |= ((gBattleMons[gBankAttacker].spDefenseIV & 2) << 4); + powerBits |= ((gBattleMons[gBattleAttacker].hpIV & 2) >> 1); + powerBits |= ((gBattleMons[gBattleAttacker].attackIV & 2) << 0); + powerBits |= ((gBattleMons[gBattleAttacker].defenseIV & 2) << 1); + powerBits |= ((gBattleMons[gBattleAttacker].speedIV & 2) << 2); + powerBits |= ((gBattleMons[gBattleAttacker].spAttackIV & 2) << 3); + powerBits |= ((gBattleMons[gBattleAttacker].spDefenseIV & 2) << 4); - typeBits |= ((gBattleMons[gBankAttacker].hpIV & 1) << 0); - typeBits |= ((gBattleMons[gBankAttacker].attackIV & 1) << 1); - typeBits |= ((gBattleMons[gBankAttacker].defenseIV & 1) << 2); - typeBits |= ((gBattleMons[gBankAttacker].speedIV & 1) << 3); - typeBits |= ((gBattleMons[gBankAttacker].spAttackIV & 1) << 4); - typeBits |= ((gBattleMons[gBankAttacker].spDefenseIV & 1) << 5); + typeBits |= ((gBattleMons[gBattleAttacker].hpIV & 1) << 0); + typeBits |= ((gBattleMons[gBattleAttacker].attackIV & 1) << 1); + typeBits |= ((gBattleMons[gBattleAttacker].defenseIV & 1) << 2); + typeBits |= ((gBattleMons[gBattleAttacker].speedIV & 1) << 3); + typeBits |= ((gBattleMons[gBattleAttacker].spAttackIV & 1) << 4); + typeBits |= ((gBattleMons[gBattleAttacker].spDefenseIV & 1) << 5); gDynamicBasePower = (40 * powerBits) / 63 + 30; @@ -9490,7 +9490,7 @@ static void atkC1_hiddenpowercalc(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r2, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ + ldr r0, =gBattleAttacker\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r4, r1, 0\n\ @@ -9626,11 +9626,11 @@ _080544F0:\n\ static void atkC2_selectfirstvalidtarget(void) { - for (gBankDefender = 0; gBankDefender < gBattleBanksCount; gBankDefender++) + for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) { - if (gBankDefender == gBankAttacker) + if (gBattleDefender == gBattleAttacker) continue; - if (!(gAbsentBankFlags & gBitTable[gBankDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) break; } gBattlescriptCurrInstr++; @@ -9638,22 +9638,22 @@ static void atkC2_selectfirstvalidtarget(void) static void atkC3_trysetfutureattack(void) { - if (gWishFutureKnock.futureSightCounter[gBankDefender] != 0) + if (gWishFutureKnock.futureSightCounter[gBattleDefender] != 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gSideStatuses[GET_BANK_SIDE(gBankDefender)] |= SIDE_STATUS_FUTUREATTACK; - gWishFutureKnock.futureSightMove[gBankDefender] = gCurrentMove; - gWishFutureKnock.futureSightAttacker[gBankDefender] = gBankAttacker; - gWishFutureKnock.futureSightCounter[gBankDefender] = 3; - gWishFutureKnock.futureSightDmg[gBankDefender] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankDefender], gCurrentMove, - gSideStatuses[GET_BANK_SIDE(gBankDefender)], 0, - 0, gBankAttacker, gBankDefender); + gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)] |= SIDE_STATUS_FUTUREATTACK; + gWishFutureKnock.futureSightMove[gBattleDefender] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBattleDefender] = gBattleAttacker; + gWishFutureKnock.futureSightCounter[gBattleDefender] = 3; + gWishFutureKnock.futureSightDmg[gBattleDefender] = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleDefender], gCurrentMove, + gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)], 0, + 0, gBattleAttacker, gBattleDefender); - if (gProtectStructs[gBankAttacker].helpingHand) - gWishFutureKnock.futureSightDmg[gBankDefender] = gWishFutureKnock.futureSightDmg[gBankDefender] * 15 / 10; + if (gProtectStructs[gBattleAttacker].helpingHand) + gWishFutureKnock.futureSightDmg[gBattleDefender] = gWishFutureKnock.futureSightDmg[gBattleDefender] * 15 / 10; if (gCurrentMove == MOVE_DOOM_DESIRE) gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -9668,12 +9668,12 @@ static void atkC4_trydobeatup(void) { struct Pokemon *party; - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBankDefender].hp == 0) + if (gBattleMons[gBattleDefender].hp == 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -9690,16 +9690,16 @@ static void atkC4_trydobeatup(void) } if (gBattleCommunication[0] < 6) { - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankAttacker, gBattleCommunication[0]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattleCommunication[0]) gBattlescriptCurrInstr += 9; gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gBaseStats[gBattleMons[gBankDefender].species].baseDefense; + gBattleMoveDamage /= gBaseStats[gBattleMons[gBattleDefender].species].baseDefense; gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; - if (gProtectStructs[gBankAttacker].helpingHand) + if (gProtectStructs[gBattleAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattleCommunication[0]++; @@ -9717,13 +9717,13 @@ static void atkC5_setsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBankAttacker] |= STATUS3_ON_AIR; + gStatuses3[gBattleAttacker] |= STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBankAttacker] |= STATUS3_UNDERGROUND; + gStatuses3[gBattleAttacker] |= STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBankAttacker] |= STATUS3_UNDERWATER; + gStatuses3[gBattleAttacker] |= STATUS3_UNDERWATER; break; } @@ -9736,13 +9736,13 @@ static void atkC6_clearsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBankAttacker] &= ~STATUS3_ON_AIR; + gStatuses3[gBattleAttacker] &= ~STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBankAttacker] &= ~STATUS3_UNDERGROUND; + gStatuses3[gBattleAttacker] &= ~STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBankAttacker] &= ~STATUS3_UNDERWATER; + gStatuses3[gBattleAttacker] &= ~STATUS3_UNDERWATER; break; } @@ -9752,7 +9752,7 @@ static void atkC6_clearsemiinvulnerablebit(void) static void atkC7_setminimize(void) { if (gHitMarker & HITMARKER_OBEYS) - gStatuses3[gBankAttacker] |= STATUS3_MINIMIZED; + gStatuses3[gBattleAttacker] |= STATUS3_MINIMIZED; gBattlescriptCurrInstr++; } @@ -9776,34 +9776,34 @@ static void atkC8_sethail(void) static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento { - if (gBattleMons[gBankDefender].statStages[STAT_STAGE_ATK] == 0 - && gBattleMons[gBankDefender].statStages[STAT_STAGE_SPATK] == 0 + if (gBattleMons[gBattleDefender].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBattleDefender].statStages[STAT_STAGE_SPATK] == 0 && gBattleCommunication[6] != 1) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gActiveBank = gBankAttacker; - gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gActiveBattler = gBattleAttacker; + gBattleMoveDamage = gBattleMons[gActiveBattler].hp; EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; } } static void atkCA_setforcedtarget(void) // follow me { - gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1; - gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker; + gSideTimers[GetBattlerSide(gBattleAttacker)].followmeTimer = 1; + gSideTimers[GetBattlerSide(gBattleAttacker)].followmeTarget = gBattleAttacker; gBattlescriptCurrInstr++; } static void atkCB_setcharge(void) { - gStatuses3[gBankAttacker] |= STATUS3_CHARGED_UP; - gDisableStructs[gBankAttacker].chargeTimer1 = 2; - gDisableStructs[gBankAttacker].chargeTimer2 = 2; + gStatuses3[gBattleAttacker] |= STATUS3_CHARGED_UP; + gDisableStructs[gBattleAttacker].chargeTimer1 = 2; + gDisableStructs[gBattleAttacker].chargeTimer2 = 2; gBattlescriptCurrInstr++; } @@ -9811,20 +9811,20 @@ static void atkCC_callterrainattack(void) // nature power { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; - gBankDefender = GetMoveTarget(gCurrentMove, 0); + gBattleDefender = GetMoveTarget(gCurrentMove, 0); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh { - if (gBattleMons[gBankAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + if (gBattleMons[gBattleAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattleAttacker].status1 = 0; gBattlescriptCurrInstr += 5; - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBattleAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } else { @@ -9834,20 +9834,20 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh static void atkCE_settorment(void) { - if (gBattleMons[gBankDefender].status2 & STATUS2_TORMENT) + if (gBattleMons[gBattleDefender].status2 & STATUS2_TORMENT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBankDefender].status2 |= STATUS2_TORMENT; + gBattleMons[gBattleDefender].status2 |= STATUS2_TORMENT; gBattlescriptCurrInstr += 5; } } static void atkCF_jumpifnodamage(void) { - if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg) + if (gProtectStructs[gBattleAttacker].physicalDmg || gProtectStructs[gBattleAttacker].specialDmg) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -9855,10 +9855,10 @@ static void atkCF_jumpifnodamage(void) static void atkD0_settaunt(void) { - if (gDisableStructs[gBankDefender].tauntTimer1 == 0) + if (gDisableStructs[gBattleDefender].tauntTimer1 == 0) { - gDisableStructs[gBankDefender].tauntTimer1 = 2; - gDisableStructs[gBankDefender].tauntTimer2 = 2; + gDisableStructs[gBattleDefender].tauntTimer1 = 2; + gDisableStructs[gBattleDefender].tauntTimer2 = 2; gBattlescriptCurrInstr += 5; } else @@ -9869,14 +9869,14 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankDefender = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); + gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBankFlags & gBitTable[gBankDefender]) - && !gProtectStructs[gBankAttacker].helpingHand - && !gProtectStructs[gBankDefender].helpingHand) + && !(gAbsentBattlerFlags & gBitTable[gBattleDefender]) + && !gProtectStructs[gBattleAttacker].helpingHand + && !gProtectStructs[gBattleDefender].helpingHand) { - gProtectStructs[gBankDefender].helpingHand = 1; + gProtectStructs[gBattleDefender].helpingHand = 1; gBattlescriptCurrInstr += 5; } else @@ -9889,7 +9889,7 @@ static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_x4000000 - || (GetBankSide(gBankAttacker) == SIDE_OPPONENT + || (GetBattlerSide(gBattleAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -9900,8 +9900,8 @@ static void atkD2_tryswapitems(void) // trick } else { - u8 sideAttacker = GetBankSide(gBankAttacker); - u8 sideTarget = GetBankSide(gBankDefender); + u8 sideAttacker = GetBattlerSide(gBattleAttacker); + u8 sideTarget = GetBattlerSide(gBattleDefender); // you can't swap items if they were knocked off in regular battles if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK @@ -9909,53 +9909,53 @@ static void atkD2_tryswapitems(void) // trick | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_x2000000)) - && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlePartyID[gBankAttacker]] - || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBankDefender]])) + && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlePartyID[gBattleAttacker]] + || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBattleDefender]])) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // can't swap if two pokemon don't have an item // or if either of them is an enigma berry or a mail - else if ((gBattleMons[gBankAttacker].item == 0 && gBattleMons[gBankDefender].item == 0) - || gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY - || gBattleMons[gBankDefender].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBankAttacker].item) - || IS_ITEM_MAIL(gBattleMons[gBankDefender].item)) + else if ((gBattleMons[gBattleAttacker].item == 0 && gBattleMons[gBattleDefender].item == 0) + || gBattleMons[gBattleAttacker].item == ITEM_ENIGMA_BERRY + || gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattleAttacker].item) + || IS_ITEM_MAIL(gBattleMons[gBattleDefender].item)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // check if ability prevents swapping - else if (gBattleMons[gBankDefender].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBattleDefender].ability == ABILITY_STICKY_HOLD) { gBattlescriptCurrInstr = BattleScript_StickyHoldActivates; - gLastUsedAbility = gBattleMons[gBankDefender].ability; - RecordAbilityBattle(gBankDefender, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattleDefender].ability; + RecordAbilityBattle(gBattleDefender, gLastUsedAbility); } // took a while, but all checks passed and items can be safely swapped else { u16 oldItemAtk, *newItemAtk; - newItemAtk = &gBattleStruct->changedItems[gBankAttacker]; - oldItemAtk = gBattleMons[gBankAttacker].item; - *newItemAtk = gBattleMons[gBankDefender].item; + newItemAtk = &gBattleStruct->changedItems[gBattleAttacker]; + oldItemAtk = gBattleMons[gBattleAttacker].item; + *newItemAtk = gBattleMons[gBattleDefender].item; - gBattleMons[gBankAttacker].item = 0; - gBattleMons[gBankDefender].item = oldItemAtk; + gBattleMons[gBattleAttacker].item = 0; + gBattleMons[gBattleDefender].item = oldItemAtk; - gActiveBank = gBankAttacker; + gActiveBattler = gBattleAttacker; EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); - MarkBufferBankForExecution(gBankAttacker); + MarkBufferBankForExecution(gBattleAttacker); - gActiveBank = gBankDefender; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankDefender].item); - MarkBufferBankForExecution(gBankDefender); + gActiveBattler = gBattleDefender; + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleDefender].item); + MarkBufferBankForExecution(gBattleDefender); - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankDefender]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 1) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleAttacker]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleAttacker]) + 1) = 0; gBattlescriptCurrInstr += 5; @@ -9974,11 +9974,11 @@ static void atkD2_tryswapitems(void) // trick static void atkD3_trycopyability(void) // role play { - if (gBattleMons[gBankDefender].ability != 0 - && gBattleMons[gBankDefender].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[gBattleDefender].ability != 0 + && gBattleMons[gBattleDefender].ability != ABILITY_WONDER_GUARD) { - gBattleMons[gBankAttacker].ability = gBattleMons[gBankDefender].ability; - gLastUsedAbility = gBattleMons[gBankDefender].ability; + gBattleMons[gBattleAttacker].ability = gBattleMons[gBattleDefender].ability; + gLastUsedAbility = gBattleMons[gBattleDefender].ability; gBattlescriptCurrInstr += 5; } else @@ -9992,10 +9992,10 @@ static void atkD4_trywish(void) switch (gBattlescriptCurrInstr[1]) { case 0: // use wish - if (gWishFutureKnock.wishCounter[gBankAttacker] == 0) + if (gWishFutureKnock.wishCounter[gBattleAttacker] == 0) { - gWishFutureKnock.wishCounter[gBankAttacker] = 2; - gWishFutureKnock.wishUserID[gBankAttacker] = gBattlePartyID[gBankAttacker]; + gWishFutureKnock.wishCounter[gBattleAttacker] = 2; + gWishFutureKnock.wishUserID[gBattleAttacker] = gBattlePartyID[gBattleAttacker]; gBattlescriptCurrInstr += 6; } else @@ -10004,14 +10004,14 @@ static void atkD4_trywish(void) } break; case 1: // heal effect - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankDefender, gWishFutureKnock.wishUserID[gBankDefender]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleDefender, gWishFutureKnock.wishUserID[gBattleDefender]) - gBattleMoveDamage = gBattleMons[gBankDefender].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBankDefender].hp == gBattleMons[gBankDefender].maxHP) + if (gBattleMons[gBattleDefender].hp == gBattleMons[gBattleDefender].maxHP) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -10022,23 +10022,23 @@ static void atkD4_trywish(void) static void atkD5_trysetroots(void) // ingrain { - if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) + if (gStatuses3[gBattleAttacker] & STATUS3_ROOTED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBankAttacker] |= STATUS3_ROOTED; + gStatuses3[gBattleAttacker] |= STATUS3_ROOTED; gBattlescriptCurrInstr += 5; } } static void atkD6_doubledamagedealtifdamaged(void) { - if ((gProtectStructs[gBankAttacker].physicalDmg - && gProtectStructs[gBankAttacker].physicalBank == gBankDefender) - || (gProtectStructs[gBankAttacker].specialDmg - && gProtectStructs[gBankAttacker].specialBank == gBankDefender)) + if ((gProtectStructs[gBattleAttacker].physicalDmg + && gProtectStructs[gBattleAttacker].physicalBank == gBattleDefender) + || (gProtectStructs[gBattleAttacker].specialDmg + && gProtectStructs[gBattleAttacker].specialBank == gBattleDefender)) { gBattleScripting.dmgMultiplier = 2; } @@ -10048,27 +10048,27 @@ static void atkD6_doubledamagedealtifdamaged(void) static void atkD7_setyawn(void) { - if (gStatuses3[gBankDefender] & STATUS3_YAWN - || gBattleMons[gBankDefender].status1 & STATUS1_ANY) + if (gStatuses3[gBattleDefender] & STATUS3_YAWN + || gBattleMons[gBattleDefender].status1 & STATUS1_ANY) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBankDefender] |= 0x1000; + gStatuses3[gBattleDefender] |= 0x1000; gBattlescriptCurrInstr += 5; } } static void atkD8_setdamagetohealthdifference(void) { - if (gBattleMons[gBankDefender].hp <= gBattleMons[gBankAttacker].hp) + if (gBattleMons[gBattleDefender].hp <= gBattleMons[gBattleAttacker].hp) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMoveDamage = gBattleMons[gBankDefender].hp - gBattleMons[gBankAttacker].hp; + gBattleMoveDamage = gBattleMons[gBattleDefender].hp - gBattleMons[gBattleAttacker].hp; gBattlescriptCurrInstr += 5; } } @@ -10078,7 +10078,7 @@ static void atkD9_scaledamagebyhealthratio(void) if (gDynamicBasePower == 0) { u8 power = gBattleMoves[gCurrentMove].power; - gDynamicBasePower = gBattleMons[gBankAttacker].hp * power / gBattleMons[gBankAttacker].maxHP; + gDynamicBasePower = gBattleMons[gBattleAttacker].hp * power / gBattleMons[gBattleAttacker].maxHP; if (gDynamicBasePower == 0) gDynamicBasePower = 1; } @@ -10087,19 +10087,19 @@ static void atkD9_scaledamagebyhealthratio(void) static void atkDA_tryswapabilities(void) // skill swap { - if ((gBattleMons[gBankAttacker].ability == 0 - && gBattleMons[gBankDefender].ability == 0) - || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD - || gBattleMons[gBankDefender].ability == ABILITY_WONDER_GUARD + if ((gBattleMons[gBattleAttacker].ability == 0 + && gBattleMons[gBattleDefender].ability == 0) + || gBattleMons[gBattleAttacker].ability == ABILITY_WONDER_GUARD + || gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - u8 abilityAtk = gBattleMons[gBankAttacker].ability; - gBattleMons[gBankAttacker].ability = gBattleMons[gBankDefender].ability; - gBattleMons[gBankDefender].ability = abilityAtk; + u8 abilityAtk = gBattleMons[gBattleAttacker].ability; + gBattleMons[gBattleAttacker].ability = gBattleMons[gBattleDefender].ability; + gBattleMons[gBattleDefender].ability = abilityAtk; gBattlescriptCurrInstr += 5; } @@ -10107,7 +10107,7 @@ static void atkDA_tryswapabilities(void) // skill swap static void atkDB_tryimprision(void) { - if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISONED_OTHERS)) + if ((gStatuses3[gBattleAttacker] & STATUS3_IMPRISONED_OTHERS)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -10115,11 +10115,11 @@ static void atkDB_tryimprision(void) { u8 bank, sideAttacker; - sideAttacker = GetBankSide(gBankAttacker); - PressurePPLoseOnUsingImprision(gBankAttacker); - for (bank = 0; bank < gBattleBanksCount; bank++) + sideAttacker = GetBattlerSide(gBattleAttacker); + PressurePPLoseOnUsingImprision(gBattleAttacker); + for (bank = 0; bank < gBattlersCount; bank++) { - if (sideAttacker != GetBankSide(bank)) + if (sideAttacker != GetBattlerSide(bank)) { s32 attackerMoveId; for (attackerMoveId = 0; attackerMoveId < 4; attackerMoveId++) @@ -10127,8 +10127,8 @@ static void atkDB_tryimprision(void) s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] - && gBattleMons[gBankAttacker].moves[attackerMoveId] != MOVE_NONE) + if (gBattleMons[gBattleAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] + && gBattleMons[gBattleAttacker].moves[attackerMoveId] != MOVE_NONE) break; } if (i != 4) @@ -10136,26 +10136,26 @@ static void atkDB_tryimprision(void) } if (attackerMoveId != 4) { - gStatuses3[gBankAttacker] |= STATUS3_IMPRISONED_OTHERS; + gStatuses3[gBattleAttacker] |= STATUS3_IMPRISONED_OTHERS; gBattlescriptCurrInstr += 5; break; } } } - if (bank == gBattleBanksCount) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes + if (bank == gBattlersCount) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkDC_trysetgrudge(void) { - if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) + if (gStatuses3[gBattleAttacker] & STATUS3_GRUDGE) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBankAttacker] |= STATUS3_GRUDGE; + gStatuses3[gBattleAttacker] |= STATUS3_GRUDGE; gBattlescriptCurrInstr += 5; } } @@ -10165,7 +10165,7 @@ static void atkDD_weightdamagecalculation(void) s32 i; for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) { - if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankDefender].species), 1)) + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattleDefender].species), 1)) break; } @@ -10184,14 +10184,14 @@ static void atkDE_asistattackselect(void) s32 monId, moveId; u16* movesArray = gBattleStruct->assistPossibleMoves; - if (GET_BANK_SIDE(gBankAttacker) != SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattleAttacker) != B_SIDE_PLAYER) party = gEnemyParty; else party = gPlayerParty; for (monId = 0; monId < 6; monId++) { - if (monId == gBattlePartyID[gBankAttacker]) + if (monId == gBattlePartyID[gBattleAttacker]) continue; if (GetMonData(&party[monId], MON_DATA_SPECIES2) == SPECIES_NONE) continue; @@ -10221,7 +10221,7 @@ static void atkDE_asistattackselect(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; - gBankDefender = GetMoveTarget(gRandomMove, 0); + gBattleDefender = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr += 5; } else @@ -10232,29 +10232,29 @@ static void atkDE_asistattackselect(void) static void atkDF_trysetmagiccoat(void) { - gBankDefender = gBankAttacker; - gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentTurnActionNumber == gBattleBanksCount - 1) // moves last turn + gBattleDefender = gBattleAttacker; + gSpecialStatuses[gBattleAttacker].flag20 = 1; + if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gProtectStructs[gBankAttacker].bounceMove = 1; + gProtectStructs[gBattleAttacker].bounceMove = 1; gBattlescriptCurrInstr += 5; } } static void atkE0_trysetsnatch(void) // snatch { - gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentTurnActionNumber == gBattleBanksCount - 1) // moves last turn + gSpecialStatuses[gBattleAttacker].flag20 = 1; + if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gProtectStructs[gBankAttacker].stealMove = 1; + gProtectStructs[gBattleAttacker].stealMove = 1; gBattlescriptCurrInstr += 5; } } @@ -10263,20 +10263,20 @@ static void atkE1_trygetintimidatetarget(void) { u8 side; - gBattleScripting.bank = gBattleStruct->intimidateBank; - side = GetBankSide(gBattleScripting.bank); + gBattleScripting.battler = gBattleStruct->intimidateBank; + side = GetBattlerSide(gBattleScripting.battler); - PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.bank].ability) + PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.battler].ability) - for (;gBankDefender < gBattleBanksCount; gBankDefender++) + for (;gBattleDefender < gBattlersCount; gBattleDefender++) { - if (GetBankSide(gBankDefender) == side) + if (GetBattlerSide(gBattleDefender) == side) continue; - if (!(gAbsentBankFlags & gBitTable[gBankDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) break; } - if (gBankDefender >= gBattleBanksCount) + if (gBattleDefender >= gBattlersCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -10284,14 +10284,14 @@ static void atkE1_trygetintimidatetarget(void) static void atkE2_switchoutabilities(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - switch (gBattleMons[gActiveBank].ability) + switch (gBattleMons[gActiveBattler].ability) { case ABILITY_NATURAL_CURE: - gBattleMons[gActiveBank].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBank)], 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gBattleMons[gActiveBattler].status1 = 0; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); break; } @@ -10300,9 +10300,9 @@ static void atkE2_switchoutabilities(void) static void atkE3_jumpifhasnohp(void) { - gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - if (gBattleMons[gActiveBank].hp == 0) + if (gBattleMons[gActiveBattler].hp == 0) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -10421,13 +10421,13 @@ static void atkE5_pickup(void) static void atkE6_docastformchangeanimation(void) { - gActiveBank = gBattleScripting.bank; + gActiveBattler = gBattleScripting.battler; - if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) *(&gBattleStruct->formToChangeInto) |= 0x80; EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr++; } @@ -10437,7 +10437,7 @@ static void atkE7_trycastformdatachange(void) u8 form; gBattlescriptCurrInstr++; - form = CastformDataTypeChange(gBattleScripting.bank); + form = CastformDataTypeChange(gBattleScripting.battler); if (form) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); @@ -10451,18 +10451,18 @@ static void atkE8_settypebasedhalvers(void) // water and mud sport if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) { - if (!(gStatuses3[gBankAttacker] & STATUS3_MUDSPORT)) + if (!(gStatuses3[gBattleAttacker] & STATUS3_MUDSPORT)) { - gStatuses3[gBankAttacker] |= STATUS3_MUDSPORT; + gStatuses3[gBattleAttacker] |= STATUS3_MUDSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 0; worked = TRUE; } } else // water sport { - if (!(gStatuses3[gBankAttacker] & STATUS3_WATERSPORT)) + if (!(gStatuses3[gBattleAttacker] & STATUS3_WATERSPORT)) { - gStatuses3[gBankAttacker] |= STATUS3_WATERSPORT; + gStatuses3[gBattleAttacker] |= STATUS3_WATERSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 1; worked = TRUE; } @@ -10499,16 +10499,16 @@ static void atkEA_tryrecycleitem(void) { u16 *usedHeldItem; - gActiveBank = gBankAttacker; - usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBank]; - if (*usedHeldItem != 0 && gBattleMons[gActiveBank].item == 0) + gActiveBattler = gBattleAttacker; + usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBattler]; + if (*usedHeldItem != 0 && gBattleMons[gActiveBattler].item == 0) { gLastUsedItem = *usedHeldItem; *usedHeldItem = 0; - gBattleMons[gActiveBank].item = gLastUsedItem; + gBattleMons[gActiveBattler].item = gLastUsedItem; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 5; } @@ -10520,11 +10520,11 @@ static void atkEA_tryrecycleitem(void) static void atkEB_settypetoterrain(void) { - if (gBattleMons[gBankAttacker].type1 != sTerrainToType[gBattleTerrain] - && gBattleMons[gBankAttacker].type2 != sTerrainToType[gBattleTerrain]) + if (gBattleMons[gBattleAttacker].type1 != sTerrainToType[gBattleTerrain] + && gBattleMons[gBattleAttacker].type2 != sTerrainToType[gBattleTerrain]) { - gBattleMons[gBankAttacker].type1 = sTerrainToType[gBattleTerrain]; - gBattleMons[gBankAttacker].type2 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattleAttacker].type1 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattleAttacker].type2 = sTerrainToType[gBattleTerrain]; PREPARE_TYPE_BUFFER(gBattleTextBuff1, sTerrainToType[gBattleTerrain]) @@ -10538,19 +10538,19 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBank = GetBankByPosition(GetBankPosition(gBankAttacker) ^ BIT_MON); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBankFlags & gBitTable[gActiveBank]) - && gActionForBanks[gActiveBank] == 0 - && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT) + && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) + && gActionForBanks[gActiveBattler] == 0 + && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) { - gActionsByTurnOrder[gActiveBank] = 11; + gActionsByTurnOrder[gActiveBattler] = 11; gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; - gBattleScripting.field_20 = gBankAttacker; - gBankAttacker = gActiveBank; + gBattleScripting.field_20 = gBattleAttacker; + gBattleAttacker = gActiveBattler; } else { @@ -10560,20 +10560,20 @@ static void atkEC_pursuitrelated(void) static void atkEF_snatchsetbanks(void) { - gEffectBank = gBankAttacker; + gEffectBank = gBattleAttacker; - if (gBankAttacker == gBankDefender) - gBankAttacker = gBankDefender = gBattleScripting.bank; + if (gBattleAttacker == gBattleDefender) + gBattleAttacker = gBattleDefender = gBattleScripting.battler; else - gBankDefender = gBattleScripting.bank; + gBattleDefender = gBattleScripting.battler; - gBattleScripting.bank = gEffectBank; + gBattleScripting.battler = gEffectBank; gBattlescriptCurrInstr++; } static void atkEE_removelightscreenreflect(void) // brick break { - u8 opposingSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; + u8 opposingSide = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer) { @@ -10600,19 +10600,19 @@ static void atkEF_handleballthrow(void) if (gBattleExecBuffer) return; - gActiveBank = gBankAttacker; - gBankDefender = gBankAttacker ^ BIT_SIDE; + gActiveBattler = gBattleAttacker; + gBattleDefender = gBattleAttacker ^ BIT_SIDE; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { EmitBallThrowAnim(0, BALL_TRAINER_BLOCK); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) { EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_WallyBallThrow; } else @@ -10623,17 +10623,17 @@ static void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_SAFARI_BALL) catchRate = gBattleStruct->field_7C * 1275 / 100; else - catchRate = gBaseStats[gBattleMons[gBankDefender].species].catchRate; + catchRate = gBaseStats[gBattleMons[gBattleDefender].species].catchRate; if (gLastUsedItem > ITEM_SAFARI_BALL) { switch (gLastUsedItem) { case ITEM_NET_BALL: - if (gBattleMons[gBankDefender].type1 == TYPE_WATER - || gBattleMons[gBankDefender].type2 == TYPE_WATER - || gBattleMons[gBankDefender].type1 == TYPE_BUG - || gBattleMons[gBankDefender].type2 == TYPE_BUG) + if (gBattleMons[gBattleDefender].type1 == TYPE_WATER + || gBattleMons[gBattleDefender].type2 == TYPE_WATER + || gBattleMons[gBattleDefender].type1 == TYPE_BUG + || gBattleMons[gBattleDefender].type2 == TYPE_BUG) ballMultiplier = 30; else ballMultiplier = 10; @@ -10645,9 +10645,9 @@ static void atkEF_handleballthrow(void) ballMultiplier = 10; break; case ITEM_NEST_BALL: - if (gBattleMons[gBankDefender].level < 40) + if (gBattleMons[gBattleDefender].level < 40) { - ballMultiplier = 40 - gBattleMons[gBankDefender].level; + ballMultiplier = 40 - gBattleMons[gBattleDefender].level; if (ballMultiplier <= 9) ballMultiplier = 10; } @@ -10657,7 +10657,7 @@ static void atkEF_handleballthrow(void) } break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankDefender].species), FLAG_GET_CAUGHT)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattleDefender].species), FLAG_GET_CAUGHT)) ballMultiplier = 30; else ballMultiplier = 10; @@ -10677,12 +10677,12 @@ static void atkEF_handleballthrow(void) ballMultiplier = sBallCatchBonuses[gLastUsedItem - 2]; odds = (catchRate * ballMultiplier / 10) - * (gBattleMons[gBankDefender].maxHP * 3 - gBattleMons[gBankDefender].hp * 2) - / (3 * gBattleMons[gBankDefender].maxHP); + * (gBattleMons[gBattleDefender].maxHP * 3 - gBattleMons[gBattleDefender].hp * 2) + / (3 * gBattleMons[gBattleDefender].maxHP); - if (gBattleMons[gBankDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + if (gBattleMons[gBattleDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) odds *= 2; - if (gBattleMons[gBankDefender].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + if (gBattleMons[gBattleDefender].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) odds = (odds * 15) / 10; if (gLastUsedItem != ITEM_SAFARI_BALL) @@ -10701,9 +10701,9 @@ static void atkEF_handleballthrow(void) if (odds > 254) // mon caught { EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankDefender]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlePartyID[gBattleDefender]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10723,12 +10723,12 @@ static void atkEF_handleballthrow(void) shakes = BALL_3_SHAKES_SUCCESS; // why calculate the shakes before that check? EmitBallThrowAnim(0, shakes); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); if (shakes == BALL_3_SHAKES_SUCCESS) // mon caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBankDefender]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlePartyID[gBattleDefender]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10746,18 +10746,18 @@ static void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) + if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) { if (!sub_813B21C()) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); } else { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); StringCopy(gStringVar3, GetBoxNamePtr(get_unknown_box_id())); gBattleCommunication[MULTISTRING_CHOOSER] = 2; } @@ -10766,9 +10766,9 @@ static void atkF0_givecaughtmon(void) gBattleCommunication[MULTISTRING_CHOOSER]++; } - gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); - gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); + gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); + GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); + gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); gBattlescriptCurrInstr++; } @@ -10804,8 +10804,8 @@ static void atkF2_displaydexinfo(void) { FreeAllWindowBuffers(); gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species), - gBattleMons[gBankDefender].otId, - gBattleMons[gBankDefender].personality); + gBattleMons[gBattleDefender].otId, + gBattleMons[gBattleDefender].personality); gBattleCommunication[0]++; } break; @@ -10956,13 +10956,13 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); FreeAllWindowBuffers(); DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick, - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), - GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]), - GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), + GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), + GetMonGender(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]]), + GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), BattleMainCB2); gBattleCommunication[MULTIUSE_STATE]++; @@ -10971,7 +10971,7 @@ static void atkF3_trygivecaughtmonnick(void) case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + SetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } break; @@ -10986,13 +10986,13 @@ static void atkF3_trygivecaughtmonnick(void) static void atkF4_subattackerhpbydmg(void) { - gBattleMons[gBankAttacker].hp -= gBattleMoveDamage; + gBattleMons[gBattleAttacker].hp -= gBattleMoveDamage; gBattlescriptCurrInstr++; } static void atkF5_removeattackerstatus1(void) { - gBattleMons[gBankAttacker].status1 = 0; + gBattleMons[gBattleAttacker].status1 = 0; gBattlescriptCurrInstr++; } @@ -11004,14 +11004,14 @@ static void atkF6_finishaction(void) static void atkF7_finishturn(void) { gCurrentActionFuncId = ACTION_FINISHED; - gCurrentTurnActionNumber = gBattleBanksCount; + gCurrentTurnActionNumber = gBattlersCount; } static void atkF8_trainerslideout(void) { - gActiveBank = GetBankByPosition(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]); EmitTrainerSlideBack(0); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); gBattlescriptCurrInstr += 2; } diff --git a/src/battle_util.c b/src/battle_util.c index 250976347..135f4f7f2 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -24,36 +24,36 @@ #include "berry.h" extern const u8* gBattlescriptCurrInstr; -extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; -extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u8 gActiveBank; +extern const u8* gSelectionBattleScripts[MAX_BATTLERS_COUNT]; +extern const u8* gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u8 gActiveBattler; extern u8 gStringBank; extern u16 gCurrentMove; extern u16 gLastUsedItem; -extern u8 gBattleBanksCount; -extern u32 gStatuses3[BATTLE_BANKS_COUNT]; -extern u8 gBankAttacker; -extern u8 gBankDefender; -extern u8 gAbsentBankFlags; +extern u8 gBattlersCount; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; +extern u8 gAbsentBattlerFlags; extern u16 gBattleWeather; -extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT]; +extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gSideStatuses[2]; extern u8 gBattleCommunication[]; extern void (*gBattleMainFunc)(void); extern s32 gBattleMoveDamage; -extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; -extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; +extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u32 gBattleTypeFlags; -extern u16 gLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u32 gHitMarker; extern u8 gEffectBank; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; extern u8 gBank1; -extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u8 gMoveResultFlags; -extern s32 gTakenDmg[BATTLE_BANKS_COUNT]; -extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT]; +extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; +extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT]; extern u8 gLastUsedAbility; extern u8 gCurrentActionFuncId; extern u32 gBattleExecBuffer; @@ -79,10 +79,10 @@ u8 GetBattleBank(u8 caseId) switch (caseId) { case BS_GET_TARGET: - ret = gBankDefender; + ret = gBattleDefender; break; case BS_GET_ATTACKER: - ret = gBankAttacker; + ret = gBattleAttacker; break; case BS_GET_EFFECT_BANK: ret = gEffectBank; @@ -91,7 +91,7 @@ u8 GetBattleBank(u8 caseId) ret = 0; break; case BS_GET_SCRIPTING_BANK: - ret = gBattleScripting.bank; + ret = gBattleScripting.battler; break; case BS_GET_gBank1: ret = gBank1; @@ -104,113 +104,113 @@ u8 GetBattleBank(u8 caseId) case 8: case 9: case BS_GET_PLAYER1: - ret = GetBankByPosition(B_POSITION_PLAYER_LEFT); + ret = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); break; case BS_GET_OPPONENT1: - ret = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + ret = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); break; case BS_GET_PLAYER2: - ret = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + ret = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); break; case BS_GET_OPPONENT2: - ret = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + ret = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); break; } return ret; } -void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move) +void PressurePPLose(u8 defender, u8 attacker, u16 move) { s32 i; - if (gBattleMons[bankDef].ability != ABILITY_PRESSURE) + if (gBattleMons[defender].ability != ABILITY_PRESSURE) return; for (i = 0; i < 4; i++) { - if (gBattleMons[bankAtk].moves[i] == move) + if (gBattleMons[attacker].moves[i] == move) break; } if (i == 4) // mons don't share any moves return; - if (gBattleMons[bankAtk].pp[i] != 0) - gBattleMons[bankAtk].pp[i]--; + if (gBattleMons[attacker].pp[i] != 0) + gBattleMons[attacker].pp[i]--; - if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i])) + if (!(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[attacker].unk18_b & gBitTable[i])) { - gActiveBank = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = attacker; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBufferBankForExecution(gActiveBattler); } } -void PressurePPLoseOnUsingImprision(u8 bankAtk) +void PressurePPLoseOnUsingImprision(u8 attacker) { s32 i, j; s32 imprisionPos = 4; - u8 atkSide = GetBankSide(bankAtk); + u8 atkSide = GetBattlerSide(attacker); - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) + if (atkSide != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) { for (j = 0; j < 4; j++) { - if (gBattleMons[bankAtk].moves[j] == MOVE_IMPRISON) + if (gBattleMons[attacker].moves[j] == MOVE_IMPRISON) break; } if (j != 4) { imprisionPos = j; - if (gBattleMons[bankAtk].pp[j] != 0) - gBattleMons[bankAtk].pp[j]--; + if (gBattleMons[attacker].pp[j] != 0) + gBattleMons[attacker].pp[j]--; } } } if (imprisionPos != 4 - && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos])) + && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[attacker].unk18_b & gBitTable[imprisionPos])) { - gActiveBank = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBank].pp[imprisionPos]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = attacker; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); + MarkBufferBankForExecution(gActiveBattler); } } -void PressurePPLoseOnUsingPerishSong(u8 bankAtk) +void PressurePPLoseOnUsingPerishSong(u8 attacker) { s32 i, j; s32 perishSongPos = 4; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk) + if (gBattleMons[i].ability == ABILITY_PRESSURE && i != attacker) { for (j = 0; j < 4; j++) { - if (gBattleMons[bankAtk].moves[j] == MOVE_PERISH_SONG) + if (gBattleMons[attacker].moves[j] == MOVE_PERISH_SONG) break; } if (j != 4) { perishSongPos = j; - if (gBattleMons[bankAtk].pp[j] != 0) - gBattleMons[bankAtk].pp[j]--; + if (gBattleMons[attacker].pp[j] != 0) + gBattleMons[attacker].pp[j]--; } } } if (perishSongPos != 4 - && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos])) + && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[attacker].unk18_b & gBitTable[perishSongPos])) { - gActiveBank = bankAtk; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBank].pp[perishSongPos]); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = attacker; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); + MarkBufferBankForExecution(gActiveBattler); } } @@ -220,25 +220,25 @@ void MarkAllBufferBanksForExecution(void) // unused if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) gBattleExecBuffer |= gBitTable[i] << 0x1C; } else { - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) gBattleExecBuffer |= gBitTable[i]; } } -void MarkBufferBankForExecution(u8 bank) +void MarkBufferBankForExecution(u8 battler) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - gBattleExecBuffer |= gBitTable[bank] << 0x1C; + gBattleExecBuffer |= gBitTable[battler] << 0x1C; } else { - gBattleExecBuffer |= gBitTable[bank]; + gBattleExecBuffer |= gBitTable[battler]; } } @@ -252,40 +252,40 @@ void sub_803F850(u8 arg0) gBattleExecBuffer &= ~(0x10000000 << arg0); } -void CancelMultiTurnMoves(u8 bank) +void CancelMultiTurnMoves(u8 battler) { - gBattleMons[bank].status2 &= ~(STATUS2_MULTIPLETURNS); - gBattleMons[bank].status2 &= ~(STATUS2_LOCK_CONFUSE); - gBattleMons[bank].status2 &= ~(STATUS2_UPROAR); - gBattleMons[bank].status2 &= ~(STATUS2_BIDE); + gBattleMons[battler].status2 &= ~(STATUS2_MULTIPLETURNS); + gBattleMons[battler].status2 &= ~(STATUS2_LOCK_CONFUSE); + gBattleMons[battler].status2 &= ~(STATUS2_UPROAR); + gBattleMons[battler].status2 &= ~(STATUS2_BIDE); - gStatuses3[bank] &= ~(STATUS3_SEMI_INVULNERABLE); + gStatuses3[battler] &= ~(STATUS3_SEMI_INVULNERABLE); - gDisableStructs[bank].rolloutCounter1 = 0; - gDisableStructs[bank].furyCutterCounter = 0; + gDisableStructs[battler].rolloutCounter1 = 0; + gDisableStructs[battler].furyCutterCounter = 0; } -bool8 WasUnableToUseMove(u8 bank) +bool8 WasUnableToUseMove(u8 battler) { - if (gProtectStructs[bank].prlzImmobility - || gProtectStructs[bank].targetNotAffected - || gProtectStructs[bank].usedImprisionedMove - || gProtectStructs[bank].loveImmobility - || gProtectStructs[bank].usedDisabledMove - || gProtectStructs[bank].usedTauntedMove - || gProtectStructs[bank].flag2Unknown - || gProtectStructs[bank].flinchImmobility - || gProtectStructs[bank].confusionSelfDmg) + if (gProtectStructs[battler].prlzImmobility + || gProtectStructs[battler].targetNotAffected + || gProtectStructs[battler].usedImprisionedMove + || gProtectStructs[battler].loveImmobility + || gProtectStructs[battler].usedDisabledMove + || gProtectStructs[battler].usedTauntedMove + || gProtectStructs[battler].flag2Unknown + || gProtectStructs[battler].flinchImmobility + || gProtectStructs[battler].confusionSelfDmg) return TRUE; else return FALSE; } -void PrepareStringBattle(u16 stringId, u8 bank) +void PrepareStringBattle(u16 stringId, u8 battler) { - gActiveBank = bank; + gActiveBattler = battler; EmitPrintString(0, stringId); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); } void ResetSentPokesToOpponentValue(void) @@ -296,44 +296,44 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[0] = 0; gSentPokesToOpponent[1] = 0; - for (i = 0; i < gBattleBanksCount; i += 2) + for (i = 0; i < gBattlersCount; i += 2) bits |= gBitTable[gBattlePartyID[i]]; - for (i = 1; i < gBattleBanksCount; i += 2) - gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits; + for (i = 1; i < gBattlersCount; i += 2) + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } -void sub_803F9EC(u8 bank) +void sub_803F9EC(u8 battler) { s32 i = 0; u32 bits = 0; - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - u8 id = ((bank & BIT_MON) >> 1); - gSentPokesToOpponent[id] = 0; + u8 flank = ((battler & BIT_FLANK) >> 1); + gSentPokesToOpponent[flank] = 0; - for (i = 0; i < gBattleBanksCount; i += 2) + for (i = 0; i < gBattlersCount; i += 2) { - if (!(gAbsentBankFlags & gBitTable[i])) + if (!(gAbsentBattlerFlags & gBitTable[i])) bits |= gBitTable[gBattlePartyID[i]]; } - gSentPokesToOpponent[id] = bits; + gSentPokesToOpponent[flank] = bits; } } -void sub_803FA70(u8 bank) +void sub_803FA70(u8 battler) { - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - sub_803F9EC(bank); + sub_803F9EC(battler); } else { s32 i; - for (i = 1; i < gBattleBanksCount; i++) - gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]]; + for (i = 1; i < gBattlersCount; i++) + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlePartyID[battler]]; } } @@ -355,102 +355,102 @@ void BattleScriptPop(void) u8 TrySetCantSelectMoveBattleScript(void) { u8 limitations = 0; - u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]]; + u16 move = gBattleMons[gActiveBattler].moves[gBattleBufferB[gActiveBattler][2]]; u8 holdEffect; - u16* choicedMove = &gBattleStruct->choicedMove[gActiveBank]; + u16* choicedMove = &gBattleStruct->choicedMove[gActiveBattler]; - if (gDisableStructs[gActiveBank].disabledMove == move && move != 0) + if (gDisableStructs[gActiveBattler].disabledMove == move && move != 0) { - gBattleScripting.bank = gActiveBank; + gBattleScripting.battler = gActiveBattler; gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMoveInPalace; - gProtectStructs[gActiveBank].flag_x10 = 1; + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingDisabledMoveInPalace; + gProtectStructs[gActiveBattler].flag_x10 = 1; } else { - gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMove; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingDisabledMove; limitations = 1; } } - if (move == gLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) + if (move == gLastMoves[gActiveBattler] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBattler].status2 & STATUS2_TORMENT)) { - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMoveInPalace; - gProtectStructs[gActiveBank].flag_x10 = 1; + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingTormentedMoveInPalace; + gProtectStructs[gActiveBattler].flag_x10 = 1; } else { - gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMove; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingTormentedMove; limitations++; } } - if (gDisableStructs[gActiveBank].tauntTimer1 != 0 && gBattleMoves[move].power == 0) + if (gDisableStructs[gActiveBattler].tauntTimer1 != 0 && gBattleMoves[move].power == 0) { gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTauntInPalace; - gProtectStructs[gActiveBank].flag_x10 = 1; + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveTauntInPalace; + gProtectStructs[gActiveBattler].flag_x10 = 1; } else { - gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTaunt; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveTaunt; limitations++; } } - if (GetImprisonedMovesCount(gActiveBank, move)) + if (GetImprisonedMovesCount(gActiveBattler, move)) { gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMoveInPalace; - gProtectStructs[gActiveBank].flag_x10 = 1; + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMoveInPalace; + gProtectStructs[gActiveBattler].flag_x10 = 1; } else { - gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMove; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMove; limitations++; } } - if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gActiveBank].holdEffect; + if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gActiveBattler].holdEffect; else - holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); - gStringBank = gActiveBank; + gStringBank = gActiveBattler; if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) { gCurrentMove = *choicedMove; - gLastUsedItem = gBattleMons[gActiveBank].item; + gLastUsedItem = gBattleMons[gActiveBattler].item; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gProtectStructs[gActiveBank].flag_x10 = 1; + gProtectStructs[gActiveBattler].flag_x10 = 1; } else { - gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveChoiceItem; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveChoiceItem; limitations++; } } - if (gBattleMons[gActiveBank].pp[gBattleBufferB[gActiveBank][2]] == 0) + if (gBattleMons[gActiveBattler].pp[gBattleBufferB[gActiveBattler][2]] == 0) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gProtectStructs[gActiveBank].flag_x10 = 1; + gProtectStructs[gActiveBattler].flag_x10 = 1; } else { - gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingMoveWithNoPP; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingMoveWithNoPP; limitations++; } } @@ -471,7 +471,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) gStringBank = bank; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE) unusableMoves |= gBitTable[i]; @@ -496,16 +496,16 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) bool8 AreAllMovesUnusable(void) { u8 unusable; - unusable = CheckMoveLimitations(gActiveBank, 0, 0xFF); + unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF); if (unusable == 0xF) // all moves are unusable { - gProtectStructs[gActiveBank].onlyStruggle = 1; - gSelectionBattleScripts[gActiveBank] = BattleScript_NoMovesLeft; + gProtectStructs[gActiveBattler].onlyStruggle = 1; + gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft; } else { - gProtectStructs[gActiveBank].onlyStruggle = 0; + gProtectStructs[gActiveBattler].onlyStruggle = 0; } return (unusable == 0xF); @@ -515,11 +515,11 @@ u8 GetImprisonedMovesCount(u8 bank, u16 move) { s32 i; u8 imprisionedMoves = 0; - u8 bankSide = GetBankSide(bank); + u8 bankSide = GetBattlerSide(bank); - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) + if (bankSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) { s32 j; for (j = 0; j < 4; j++) @@ -540,10 +540,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBankAttacker = 0; gBankAttacker < gBattleBanksCount && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + for (gBattleAttacker = 0; gBattleAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleAttacker]; gBattleAttacker++) { } - for (gBankDefender = 0; gBankDefender < gBattleBanksCount && gAbsentBankFlags & gBitTable[gBankDefender]; gBankDefender++) + for (gBattleDefender = 0; gBattleDefender < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleDefender]; gBattleDefender++) { } @@ -554,16 +554,16 @@ u8 UpdateTurnCounters(void) switch (gBattleStruct->turncountersTracker) { case 0: - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - gBanksByTurnOrder[i] = i; + gBattleTurnOrder[i] = i; } - for (i = 0; i < gBattleBanksCount - 1; i++) + for (i = 0; i < gBattlersCount - 1; i++) { s32 j; - for (j = i + 1; j < gBattleBanksCount; j++) + for (j = i + 1; j < gBattlersCount; j++) { - if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0)) + if (GetWhoStrikesFirst(gBattleTurnOrder[i], gBattleTurnOrder[j], 0)) SwapTurnOrder(i, j); } } @@ -579,7 +579,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBank = gBankAttacker = gSideTimers[sideBank].reflectBank; + gActiveBattler = gBattleAttacker = gSideTimers[sideBank].reflectBank; if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT) { if (--gSideTimers[sideBank].reflectTimer == 0) @@ -604,7 +604,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBank = gBankAttacker = gSideTimers[sideBank].lightscreenBank; + gActiveBattler = gBattleAttacker = gSideTimers[sideBank].lightscreenBank; if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN) { if (--gSideTimers[sideBank].lightscreenTimer == 0) @@ -630,7 +630,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBank = gBankAttacker = gSideTimers[sideBank].mistBank; + gActiveBattler = gBattleAttacker = gSideTimers[sideBank].mistBank; if (gSideTimers[sideBank].mistTimer != 0 && --gSideTimers[sideBank].mistTimer == 0) { @@ -654,7 +654,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBank = gBankAttacker = gSideTimers[sideBank].safeguardBank; + gActiveBattler = gBattleAttacker = gSideTimers[sideBank].safeguardBank; if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD) { if (--gSideTimers[sideBank].safeguardTimer == 0) @@ -675,14 +675,14 @@ u8 UpdateTurnCounters(void) } break; case 5: - while (gBattleStruct->turnSideTracker < gBattleBanksCount) + while (gBattleStruct->turnSideTracker < gBattlersCount) { - gActiveBank = gBanksByTurnOrder[gBattleStruct->turnSideTracker]; - if (gWishFutureKnock.wishCounter[gActiveBank] != 0 - && --gWishFutureKnock.wishCounter[gActiveBank] == 0 - && gBattleMons[gActiveBank].hp != 0) + gActiveBattler = gBattleTurnOrder[gBattleStruct->turnSideTracker]; + if (gWishFutureKnock.wishCounter[gActiveBattler] != 0 + && --gWishFutureKnock.wishCounter[gActiveBattler] == 0 + && gBattleMons[gActiveBattler].hp != 0) { - gBankDefender = gActiveBank; + gBattleDefender = gActiveBattler; BattleScriptExecute(BattleScript_WishComesTrue); effect++; } @@ -798,10 +798,10 @@ u8 TurnBasedEffects(void) u8 effect = 0; gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); - while (gBattleStruct->turnEffectsBank < gBattleBanksCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) + while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { - gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank]; - if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBattler = gBattleAttacker = gBattleTurnOrder[gBattleStruct->turnEffectsBank]; + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->turnEffectsBank++; } @@ -810,11 +810,11 @@ u8 TurnBasedEffects(void) switch (gBattleStruct->turnEffectsTracker) { case 0: // ingrain - if ((gStatuses3[gActiveBank] & STATUS3_ROOTED) - && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP - && gBattleMons[gActiveBank].hp != 0) + if ((gStatuses3[gActiveBattler] & STATUS3_ROOTED) + && gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP + && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; @@ -824,40 +824,40 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 1: // end turn abilities - if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0)) effect++; gBattleStruct->turnEffectsTracker++; break; case 2: // item effects - if (ItemBattleEffects(1, gActiveBank, 0)) + if (ItemBattleEffects(1, gActiveBattler, 0)) effect++; gBattleStruct->turnEffectsTracker++; break; case 18: // item effects again - if (ItemBattleEffects(1, gActiveBank, 1)) + if (ItemBattleEffects(1, gActiveBattler, 1)) effect++; gBattleStruct->turnEffectsTracker++; break; case 3: // leech seed - if ((gStatuses3[gActiveBank] & STATUS3_LEECHSEED) - && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 - && gBattleMons[gActiveBank].hp != 0) + if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED) + && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0 + && gBattleMons[gActiveBattler].hp != 0) { - gBankDefender = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + gBattleDefender = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleScripting.animArg1 = gBankDefender; - gBattleScripting.animArg2 = gBankAttacker; + gBattleScripting.animArg1 = gBattleDefender; + gBattleScripting.animArg2 = gBattleAttacker; BattleScriptExecute(BattleScript_LeechSeedTurnDrain); effect++; } gBattleStruct->turnEffectsTracker++; break; case 4: // poison - if ((gBattleMons[gActiveBank].status1 & STATUS1_POISON) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_PoisonTurnDmg); @@ -866,23 +866,23 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 5: // toxic poison - if ((gBattleMons[gActiveBank].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) // not 16 turns - gBattleMons[gActiveBank].status1 += 0x100; - gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; + if ((gBattleMons[gActiveBattler].status1 & 0xF00) != 0xF00) // not 16 turns + gBattleMons[gActiveBattler].status1 += 0x100; + gBattleMoveDamage *= (gBattleMons[gActiveBattler].status1 & 0xF00) >> 8; BattleScriptExecute(BattleScript_PoisonTurnDmg); effect++; } gBattleStruct->turnEffectsTracker++; break; case 6: // burn - if ((gBattleMons[gActiveBank].status1 & STATUS1_BURN) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_BurnTurnDmg); @@ -891,13 +891,13 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 7: // spooky nightmares - if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0) { // R/S does not perform this sleep check, which causes the nighmare effect to // persist even after the affected Pokemon has been awakened by Shed Skin - if (gBattleMons[gActiveBank].status1 & STATUS1_SLEEP) + if (gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_NightmareTurnDmg); @@ -905,15 +905,15 @@ u8 TurnBasedEffects(void) } else { - gBattleMons[gActiveBank].status2 &= ~STATUS2_NIGHTMARE; + gBattleMons[gActiveBattler].status2 &= ~STATUS2_NIGHTMARE; } } gBattleStruct->turnEffectsTracker++; break; case 8: // curse - if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_CurseTurnDmg); @@ -922,21 +922,21 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 9: // wrap - if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0) + if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMons[gActiveBank].status2 -= 0x2000; - if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap + gBattleMons[gActiveBattler].status2 -= 0x2000; + if (gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) // damaged by wrap { // This is the only way I could get this array access to match. - gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); - gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); + gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0); + gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 1); gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff1[1] = B_BUFF_MOVE; - gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); - gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 1); gBattleTextBuff1[4] = EOS; gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -944,8 +944,8 @@ u8 TurnBasedEffects(void) { gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff1[1] = B_BUFF_MOVE; - gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); - gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 1); gBattleTextBuff1[4] = EOS; gBattlescriptCurrInstr = BattleScript_WrapEnds; } @@ -955,46 +955,46 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 10: // uproar - if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - for (gBankAttacker = 0; gBankAttacker < gBattleBanksCount; gBankAttacker++) + for (gBattleAttacker = 0; gBattleAttacker < gBattlersCount; gBattleAttacker++) { - if ((gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) - && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + if ((gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) + && gBattleMons[gBattleAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBattleAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); break; } } - if (gBankAttacker != gBattleBanksCount) + if (gBattleAttacker != gBattlersCount) { effect = 2; // a pokemon was awaken break; } else { - gBankAttacker = gActiveBank; - gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down - if (WasUnableToUseMove(gActiveBank)) + gBattleAttacker = gActiveBattler; + gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down + if (WasUnableToUseMove(gActiveBattler)) { - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS; + gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS; } else { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - CancelMultiTurnMoves(gActiveBank); + CancelMultiTurnMoves(gActiveBattler); } BattleScriptExecute(BattleScript_PrintUproarOverTurns); effect = 1; @@ -1004,20 +1004,20 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 11: // thrash - if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE) { - gBattleMons[gActiveBank].status2 -= 0x400; - if (WasUnableToUseMove(gActiveBank)) - CancelMultiTurnMoves(gActiveBank); - else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) - && (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS)) + gBattleMons[gActiveBattler].status2 -= 0x400; + if (WasUnableToUseMove(gActiveBattler)) + CancelMultiTurnMoves(gActiveBattler); + else if (!(gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE) + && (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS)) { - gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); - if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) + gBattleMons[gActiveBattler].status2 &= ~(STATUS2_MULTIPLETURNS); + if (!(gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER; SetMoveEffect(1, 0); - if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + if (gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) BattleScriptExecute(BattleScript_ThrashConfuses); effect++; } @@ -1026,22 +1026,22 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 12: // disable - if (gDisableStructs[gActiveBank].disableTimer1 != 0) + if (gDisableStructs[gActiveBattler].disableTimer1 != 0) { int i; for (i = 0; i < 4; i++) { - if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i]) + if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i]) break; } if (i == 4) // pokemon does not have the disabled move anymore { - gDisableStructs[gActiveBank].disabledMove = 0; - gDisableStructs[gActiveBank].disableTimer1 = 0; + gDisableStructs[gActiveBattler].disabledMove = 0; + gDisableStructs[gActiveBattler].disableTimer1 = 0; } - else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends + else if (--gDisableStructs[gActiveBattler].disableTimer1 == 0) // disable ends { - gDisableStructs[gActiveBank].disabledMove = 0; + gDisableStructs[gActiveBattler].disabledMove = 0; BattleScriptExecute(BattleScript_DisabledNoMore); effect++; } @@ -1049,18 +1049,18 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 13: // encore - if (gDisableStructs[gActiveBank].encoreTimer1 != 0) + if (gDisableStructs[gActiveBattler].encoreTimer1 != 0) { - if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) // pokemon does not have the encored move anymore + if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore { - gDisableStructs[gActiveBank].encoredMove = 0; - gDisableStructs[gActiveBank].encoreTimer1 = 0; + gDisableStructs[gActiveBattler].encoredMove = 0; + gDisableStructs[gActiveBattler].encoreTimer1 = 0; } - else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0 - || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0) + else if (--gDisableStructs[gActiveBattler].encoreTimer1 == 0 + || gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0) { - gDisableStructs[gActiveBank].encoredMove = 0; - gDisableStructs[gActiveBank].encoreTimer1 = 0; + gDisableStructs[gActiveBattler].encoredMove = 0; + gDisableStructs[gActiveBattler].encoreTimer1 = 0; BattleScriptExecute(BattleScript_EncoredNoMore); effect++; } @@ -1068,33 +1068,33 @@ u8 TurnBasedEffects(void) gBattleStruct->turnEffectsTracker++; break; case 14: // lock-on decrement - if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS) - gStatuses3[gActiveBank] -= 0x8; + if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS) + gStatuses3[gActiveBattler] -= 0x8; gBattleStruct->turnEffectsTracker++; break; case 15: // charge - if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0) - gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP; + if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0) + gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP; gBattleStruct->turnEffectsTracker++; break; case 16: // taunt - if (gDisableStructs[gActiveBank].tauntTimer1) - gDisableStructs[gActiveBank].tauntTimer1--; + if (gDisableStructs[gActiveBattler].tauntTimer1) + gDisableStructs[gActiveBattler].tauntTimer1--; gBattleStruct->turnEffectsTracker++; break; case 17: // yawn - if (gStatuses3[gActiveBank] & STATUS3_YAWN) - { - gStatuses3[gActiveBank] -= 0x800; - if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS1_ANY) - && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT - && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank)) - { - CancelMultiTurnMoves(gActiveBank); - gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - gEffectBank = gActiveBank; + if (gStatuses3[gActiveBattler] & STATUS3_YAWN) + { + gStatuses3[gActiveBattler] -= 0x800; + if (!(gStatuses3[gActiveBattler] & STATUS3_YAWN) && !(gBattleMons[gActiveBattler].status1 & STATUS1_ANY) + && gBattleMons[gActiveBattler].ability != ABILITY_VITAL_SPIRIT + && gBattleMons[gActiveBattler].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBattler)) + { + CancelMultiTurnMoves(gActiveBattler); + gBattleMons[gActiveBattler].status1 |= (Random() & 3) + 2; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); + gEffectBank = gActiveBattler; BattleScriptExecute(BattleScript_YawnMakesAsleep); effect++; } @@ -1121,37 +1121,37 @@ bool8 HandleWishPerishSongOnTurnEnd(void) switch (gBattleStruct->wishPerishSongState) { case 0: - while (gBattleStruct->wishPerishSongBank < gBattleBanksCount) + while (gBattleStruct->wishPerishSongBank < gBattlersCount) { - gActiveBank = gBattleStruct->wishPerishSongBank; - if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBattler = gBattleStruct->wishPerishSongBank; + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->wishPerishSongBank++; continue; } gBattleStruct->wishPerishSongBank++; - if (gWishFutureKnock.futureSightCounter[gActiveBank] != 0 - && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 - && gBattleMons[gActiveBank].hp != 0) + if (gWishFutureKnock.futureSightCounter[gActiveBattler] != 0 + && --gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 + && gBattleMons[gActiveBattler].hp != 0) { - if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT) + if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBank]); + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]); - gBankDefender = gActiveBank; - gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; - gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; - gSpecialStatuses[gBankDefender].moveturnLostHP = 0xFFFF; + gBattleDefender = gActiveBattler; + gBattleAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; + gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler]; + gSpecialStatuses[gBattleDefender].moveturnLostHP = 0xFFFF; BattleScriptExecute(BattleScript_MonTookFutureAttack); - if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 - && gWishFutureKnock.futureSightCounter[gActiveBank ^ BIT_MON] == 0) + if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 + && gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0) { - gSideStatuses[GET_BANK_SIDE(gBankDefender)] &= ~(SIDE_STATUS_FUTUREATTACK); + gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)] &= ~(SIDE_STATUS_FUTUREATTACK); } return TRUE; } @@ -1164,27 +1164,27 @@ bool8 HandleWishPerishSongOnTurnEnd(void) } // fall through case 1: - while (gBattleStruct->wishPerishSongBank < gBattleBanksCount) + while (gBattleStruct->wishPerishSongBank < gBattlersCount) { - gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->wishPerishSongBank]; - if (gAbsentBankFlags & gBitTable[gActiveBank]) + gActiveBattler = gBattleAttacker = gBattleTurnOrder[gBattleStruct->wishPerishSongBank]; + if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->wishPerishSongBank++; continue; } gBattleStruct->wishPerishSongBank++; - if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) + if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG) { - PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBank].perishSongTimer1); - if (gDisableStructs[gActiveBank].perishSongTimer1 == 0) + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBattler].perishSongTimer1); + if (gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { - gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; - gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gStatuses3[gActiveBattler] &= ~STATUS3_PERISH_SONG; + gBattleMoveDamage = gBattleMons[gActiveBattler].hp; gBattlescriptCurrInstr = BattleScript_PerishSongTakesLife; } else { - gDisableStructs[gActiveBank].perishSongTimer1--; + gDisableStructs[gActiveBattler].perishSongTimer1--; gBattlescriptCurrInstr = BattleScript_PerishSongCountGoesDown; } BattleScriptExecute(gBattlescriptCurrInstr); @@ -1235,30 +1235,30 @@ bool8 HandleFaintedMonActions(void) case 0: gBattleStruct->faintedActionsBank = 0; gBattleStruct->faintedActionsState++; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gAbsentBankFlags & gBitTable[i] && !sub_80423F4(i, 6, 6)) - gAbsentBankFlags &= ~(gBitTable[i]); + if (gAbsentBattlerFlags & gBitTable[i] && !sub_80423F4(i, 6, 6)) + gAbsentBattlerFlags &= ~(gBitTable[i]); } // fall through case 1: do { - gBank1 = gBankDefender = gBattleStruct->faintedActionsBank; + gBank1 = gBattleDefender = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->faintedActionsBank]]) - && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank])) + && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank])) { BattleScriptExecute(BattleScript_GiveExp); gBattleStruct->faintedActionsState = 2; return TRUE; } - } while (++gBattleStruct->faintedActionsBank != gBattleBanksCount); + } while (++gBattleStruct->faintedActionsBank != gBattlersCount); gBattleStruct->faintedActionsState = 3; break; case 2: sub_803F9EC(gBank1); - if (++gBattleStruct->faintedActionsBank == gBattleBanksCount) + if (++gBattleStruct->faintedActionsBank == gBattlersCount) gBattleStruct->faintedActionsState = 3; else gBattleStruct->faintedActionsState = 1; @@ -1270,19 +1270,19 @@ bool8 HandleFaintedMonActions(void) case 4: do { - gBank1 = gBankDefender = gBattleStruct->faintedActionsBank; + gBank1 = gBattleDefender = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 - && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank])) + && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank])) { BattleScriptExecute(BattleScript_HandleFaintedMon); gBattleStruct->faintedActionsState = 5; return TRUE; } - } while (++gBattleStruct->faintedActionsBank != gBattleBanksCount); + } while (++gBattleStruct->faintedActionsBank != gBattlersCount); gBattleStruct->faintedActionsState = 6; break; case 5: - if (++gBattleStruct->faintedActionsBank == gBattleBanksCount) + if (++gBattleStruct->faintedActionsBank == gBattlersCount) gBattleStruct->faintedActionsState = 6; else gBattleStruct->faintedActionsState = 4; @@ -1302,7 +1302,7 @@ bool8 HandleFaintedMonActions(void) void TryClearRageStatuses(void) { int i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMovesByBanks[i] != MOVE_RAGE) gBattleMons[i].status2 &= ~(STATUS2_RAGE); @@ -1320,17 +1320,17 @@ u8 AtkCanceller_UnableToUseMove(void) switch (gBattleStruct->atkCancellerTracker) { case 0: // flags clear - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[gBattleAttacker] &= ~(STATUS3_GRUDGE); gBattleStruct->atkCancellerTracker++; break; case 1: // check being asleep - if (gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) + if (gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) { - if (UproarWakeUpCheck(gBankAttacker)) + if (UproarWakeUpCheck(gBattleAttacker)) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1339,15 +1339,15 @@ u8 AtkCanceller_UnableToUseMove(void) else { u8 toSub; - if (gBattleMons[gBankAttacker].ability == ABILITY_EARLY_BIRD) + if (gBattleMons[gBattleAttacker].ability == ABILITY_EARLY_BIRD) toSub = 2; else toSub = 1; - if ((gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) < toSub) - gBattleMons[gBankAttacker].status1 &= ~(STATUS1_SLEEP); + if ((gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) < toSub) + gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_SLEEP); else - gBattleMons[gBankAttacker].status1 -= toSub; - if (gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP) + gBattleMons[gBattleAttacker].status1 -= toSub; + if (gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) { if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) { @@ -1358,7 +1358,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1369,7 +1369,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 2: // check being frozen - if (gBattleMons[gBankAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattleAttacker].status1 & STATUS1_FREEZE) { if (Random() % 5) { @@ -1386,7 +1386,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else // unfreeze { - gBattleMons[gBankAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -1396,9 +1396,9 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 3: // truant - if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter) + if (gBattleMons[gBattleAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattleAttacker].truantCounter) { - CancelMultiTurnMoves(gBankAttacker); + CancelMultiTurnMoves(gBattleAttacker); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; @@ -1408,11 +1408,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 4: // recharge - if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_RECHARGE) { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RECHARGE); - gDisableStructs[gBankAttacker].rechargeCounter = 0; - CancelMultiTurnMoves(gBankAttacker); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gBattleAttacker].rechargeCounter = 0; + CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1420,11 +1420,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 5: // flinch - if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_FLINCHED) { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_FLINCHED); - gProtectStructs[gBankAttacker].flinchImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_FLINCHED); + gProtectStructs[gBattleAttacker].flinchImmobility = 1; + CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1432,11 +1432,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 6: // disabled move - if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0) + if (gDisableStructs[gBattleAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattleAttacker].disabledMove != 0) { - gProtectStructs[gBankAttacker].usedDisabledMove = 1; - gBattleScripting.bank = gBankAttacker; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattleAttacker].usedDisabledMove = 1; + gBattleScripting.battler = gBattleAttacker; + CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1444,10 +1444,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 7: // taunt - if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) + if (gDisableStructs[gBattleAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) { - gProtectStructs[gBankAttacker].usedTauntedMove = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattleAttacker].usedTauntedMove = 1; + CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1455,10 +1455,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 8: // imprisoned - if (GetImprisonedMovesCount(gBankAttacker, gCurrentMove)) + if (GetImprisonedMovesCount(gBattleAttacker, gCurrentMove)) { - gProtectStructs[gBankAttacker].usedImprisionedMove = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattleAttacker].usedImprisionedMove = 1; + CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1466,10 +1466,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 9: // confusion - if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_CONFUSION) { - gBattleMons[gBankAttacker].status2--; - if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + gBattleMons[gBattleAttacker].status2--; + if (gBattleMons[gBattleAttacker].status2 & STATUS2_CONFUSION) { if (Random() & 1) { @@ -1479,9 +1479,9 @@ u8 AtkCanceller_UnableToUseMove(void) else // confusion dmg { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBankDefender = gBankAttacker; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gProtectStructs[gBankAttacker].confusionSelfDmg = 1; + gBattleDefender = gBattleAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleAttacker], MOVE_POUND, 0, 40, 0, gBattleAttacker, gBattleAttacker); + gProtectStructs[gBattleAttacker].confusionSelfDmg = 1; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; } gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; @@ -1496,11 +1496,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 10: // paralysis - if ((gBattleMons[gBankAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) + if ((gBattleMons[gBattleAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) { - gProtectStructs[gBankAttacker].prlzImmobility = 1; + gProtectStructs[gBattleAttacker].prlzImmobility = 1; // This is removed in Emerald for some reason - //CancelMultiTurnMoves(gBankAttacker); + //CancelMultiTurnMoves(gBattleAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1508,17 +1508,17 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 11: // infatuation - if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_INFATUATION) { - gBattleScripting.bank = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10); + gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattleAttacker].status2 & STATUS2_INFATUATION) >> 0x10); if (Random() & 1) BattleScriptPushCursor(); else { BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gProtectStructs[gBankAttacker].loveImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); + gProtectStructs[gBattleAttacker].loveImmobility = 1; + CancelMultiTurnMoves(gBattleAttacker); } gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; effect = 1; @@ -1526,22 +1526,22 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 12: // bide - if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_BIDE) { - gBattleMons[gBankAttacker].status2 -= 0x100; - if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + gBattleMons[gBattleAttacker].status2 -= 0x100; + if (gBattleMons[gBattleAttacker].status2 & STATUS2_BIDE) gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; else { // This is removed in Emerald for some reason - //gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); - if (gTakenDmg[gBankAttacker]) + //gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (gTakenDmg[gBattleAttacker]) { gCurrentMove = MOVE_BIDE; - *bideDmg = gTakenDmg[gBankAttacker] * 2; - gBankDefender = gTakenDmgBanks[gBankAttacker]; - if (gAbsentBankFlags & gBitTable[gBankDefender]) - gBankDefender = GetMoveTarget(MOVE_BIDE, 1); + *bideDmg = gTakenDmg[gBattleAttacker] * 2; + gBattleDefender = gTakenDmgBanks[gBattleAttacker]; + if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleDefender = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } else @@ -1552,11 +1552,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 13: // move thawing - if (gBattleMons[gBankAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattleAttacker].status1 & STATUS1_FREEZE) { if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) { - gBattleMons[gBankAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1573,14 +1573,14 @@ u8 AtkCanceller_UnableToUseMove(void) if (effect == 2) { - gActiveBank = gBankAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = gBattleAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } return effect; } -bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) +bool8 sub_80423F4(u8 battler, u8 r1, u8 r2) { struct Pokemon* party; u8 r7; @@ -1590,11 +1590,11 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - r6 = ((bank & 2) / 2); + r6 = ((battler & 2) / 2); for (i = r6 * 3; i < r6 * 3 + 3; i++) { if (GetMonData(&party[i], MON_DATA_HP) != 0 @@ -1608,10 +1608,10 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) { if (gBattleTypeFlags & BATTLE_TYPE_x800000) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) { party = gPlayerParty; - r7 = GetBankMultiplayerId(bank); + r7 = GetBankMultiplayerId(battler); r6 = sub_806D82C(r7); } else @@ -1624,14 +1624,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) #endif // NONMATCHING party = gEnemyParty; - var = bank ^ 1; + var = battler ^ 1; r6 = (var != 0) ? 1 : 0; } } else { - r7 = GetBankMultiplayerId(bank); - if (GetBankSide(bank) == SIDE_PLAYER) + r7 = GetBankMultiplayerId(battler); + if (GetBattlerSide(battler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -1646,11 +1646,11 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) } return (i == r6 * 3 + 3); } - else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBankSide(bank) == SIDE_OPPONENT) + else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBattlerSide(battler) == B_SIDE_OPPONENT) { party = gEnemyParty; - if (bank == 1) + if (battler == 1) r6 = 0; else r6 = 3; @@ -1665,16 +1665,16 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) } else { - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - r7 = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - r6 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + r7 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + r6 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); party = gEnemyParty; } else { - r7 = GetBankByPosition(B_POSITION_PLAYER_LEFT); - r6 = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + r7 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + r6 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); party = gPlayerParty; } if (r1 == 6) @@ -1703,48 +1703,48 @@ enum CASTFORM_TO_ICE, //4 }; -u8 CastformDataTypeChange(u8 bank) +u8 CastformDataTypeChange(u8 battler) { u8 formChange = 0; - if (gBattleMons[bank].species != SPECIES_CASTFORM || gBattleMons[bank].ability != ABILITY_FORECAST || gBattleMons[bank].hp == 0) + if (gBattleMons[battler].species != SPECIES_CASTFORM || gBattleMons[battler].ability != ABILITY_FORECAST || gBattleMons[battler].hp == 0) return CASTFORM_NO_CHANGE; - if (!WEATHER_HAS_EFFECT && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) + if (!WEATHER_HAS_EFFECT && gBattleMons[battler].type1 != TYPE_NORMAL && gBattleMons[battler].type2 != TYPE_NORMAL) { - gBattleMons[bank].type1 = TYPE_NORMAL; - gBattleMons[bank].type2 = TYPE_NORMAL; + gBattleMons[battler].type1 = TYPE_NORMAL; + gBattleMons[battler].type2 = TYPE_NORMAL; return CASTFORM_TO_NORMAL; } if (!WEATHER_HAS_EFFECT) return CASTFORM_NO_CHANGE; - if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) + if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[battler].type1 != TYPE_NORMAL && gBattleMons[battler].type2 != TYPE_NORMAL) { - gBattleMons[bank].type1 = TYPE_NORMAL; - gBattleMons[bank].type2 = TYPE_NORMAL; + gBattleMons[battler].type1 = TYPE_NORMAL; + gBattleMons[battler].type2 = TYPE_NORMAL; formChange = CASTFORM_TO_NORMAL; } - if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[bank].type1 != TYPE_FIRE && gBattleMons[bank].type2 != TYPE_FIRE) + if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[battler].type1 != TYPE_FIRE && gBattleMons[battler].type2 != TYPE_FIRE) { - gBattleMons[bank].type1 = TYPE_FIRE; - gBattleMons[bank].type2 = TYPE_FIRE; + gBattleMons[battler].type1 = TYPE_FIRE; + gBattleMons[battler].type2 = TYPE_FIRE; formChange = CASTFORM_TO_FIRE; } - if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[bank].type1 != TYPE_WATER && gBattleMons[bank].type2 != TYPE_WATER) + if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[battler].type1 != TYPE_WATER && gBattleMons[battler].type2 != TYPE_WATER) { - gBattleMons[bank].type1 = TYPE_WATER; - gBattleMons[bank].type2 = TYPE_WATER; + gBattleMons[battler].type1 = TYPE_WATER; + gBattleMons[battler].type2 = TYPE_WATER; formChange = CASTFORM_TO_WATER; } - if (gBattleWeather & WEATHER_HAIL && gBattleMons[bank].type1 != TYPE_ICE && gBattleMons[bank].type2 != TYPE_ICE) + if (gBattleWeather & WEATHER_HAIL && gBattleMons[battler].type1 != TYPE_ICE && gBattleMons[battler].type2 != TYPE_ICE) { - gBattleMons[bank].type1 = TYPE_ICE; - gBattleMons[bank].type2 = TYPE_ICE; + gBattleMons[battler].type1 = TYPE_ICE; + gBattleMons[battler].type2 = TYPE_ICE; formChange = CASTFORM_TO_ICE; } return formChange; } // The largest function in the game, but even it could not save itself from decompiling. -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) +u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveArg) { u8 effect = 0; struct Pokemon *pokeAtk; @@ -1754,19 +1754,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) u32 pidAtk; u32 pidDef; - if (gBankAttacker >= gBattleBanksCount) - gBankAttacker = bank; - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) - pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + if (gBattleAttacker >= gBattlersCount) + gBattleAttacker = battler; + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + pokeAtk = &gPlayerParty[gBattlePartyID[gBattleAttacker]]; else - pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + pokeAtk = &gEnemyParty[gBattlePartyID[gBattleAttacker]]; - if (gBankDefender >= gBattleBanksCount) - gBankDefender = bank; - if (GetBankSide(gBankDefender) == SIDE_PLAYER) - pokeDef = &gPlayerParty[gBattlePartyID[gBankDefender]]; + if (gBattleDefender >= gBattlersCount) + gBattleDefender = battler; + if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + pokeDef = &gPlayerParty[gBattlePartyID[gBattleDefender]]; else - pokeDef = &gEnemyParty[gBattlePartyID[gBankDefender]]; + pokeDef = &gEnemyParty[gBattlePartyID[gBattleDefender]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -1785,7 +1785,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (special) gLastUsedAbility = special; else - gLastUsedAbility = gBattleMons[bank].ability; + gLastUsedAbility = gBattleMons[battler].ability; if (moveArg) move = moveArg; @@ -1797,8 +1797,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - if (gBankAttacker >= gBattleBanksCount) - gBankAttacker = bank; + if (gBattleAttacker >= gBattlersCount) + gBattleAttacker = battler; switch (gLastUsedAbility) { case ABILITYEFFECT_SWITCH_IN_WEATHER: @@ -1813,7 +1813,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES; - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; @@ -1822,7 +1822,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; @@ -1831,7 +1831,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES; - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; @@ -1848,7 +1848,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates); - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; @@ -1857,7 +1857,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates); - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; @@ -1866,44 +1866,44 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates); - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; case ABILITY_INTIMIDATE: - if (!(gSpecialStatuses[bank].intimidatedPoke)) + if (!(gSpecialStatuses[battler].intimidatedPoke)) { - gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; - gSpecialStatuses[bank].intimidatedPoke = 1; + gStatuses3[battler] |= STATUS3_INTIMIDATE_POKES; + gSpecialStatuses[battler].intimidatedPoke = 1; } break; case ABILITY_FORECAST: - effect = CastformDataTypeChange(bank); + effect = CastformDataTypeChange(battler); if (effect != 0) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; *(&gBattleStruct->formToChangeInto) = effect - 1; } break; case ABILITY_TRACE: - if (!(gSpecialStatuses[bank].traced)) + if (!(gSpecialStatuses[battler].traced)) { - gStatuses3[bank] |= STATUS3_TRACE; - gSpecialStatuses[bank].traced = 1; + gStatuses3[battler] |= STATUS3_TRACE; + gSpecialStatuses[battler].traced = 1; } break; case ABILITY_CLOUD_NINE: case ABILITY_AIR_LOCK: { - // that's a weird choice for a variable, why not use i or bank? - for (target1 = 0; target1 < gBattleBanksCount; target1++) + // that's a weird choice for a variable, why not use i or battler? + for (target1 = 0; target1 < gBattlersCount; target1++) { effect = CastformDataTypeChange(target1); if (effect != 0) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); - gBattleScripting.bank = target1; + gBattleScripting.battler = target1; *(&gBattleStruct->formToChangeInto) = effect - 1; break; } @@ -1913,18 +1913,18 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ENDTURN: // 1 - if (gBattleMons[bank].hp != 0) + if (gBattleMons[battler].hp != 0) { - gBankAttacker = bank; + gBattleAttacker = battler; switch (gLastUsedAbility) { case ABILITY_RAIN_DISH: if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) - && gBattleMons[bank].maxHP > gBattleMons[bank].hp) + && gBattleMons[battler].maxHP > gBattleMons[battler].hp) { gLastUsedAbility = ABILITY_RAIN_DISH; // why BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates); - gBattleMoveDamage = gBattleMons[bank].maxHP / 16; + gBattleMoveDamage = gBattleMons[battler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; @@ -1932,40 +1932,40 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SHED_SKIN: - if ((gBattleMons[bank].status1 & STATUS1_ANY) && (Random() % 3) == 0) + if ((gBattleMons[battler].status1 & STATUS1_ANY) && (Random() % 3) == 0) { - if (gBattleMons[bank].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON)) + if (gBattleMons[battler].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON)) StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - if (gBattleMons[bank].status1 & STATUS1_SLEEP) + if (gBattleMons[battler].status1 & STATUS1_SLEEP) StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) + if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - if (gBattleMons[bank].status1 & STATUS1_BURN) + if (gBattleMons[battler].status1 & STATUS1_BURN) StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - if (gBattleMons[bank].status1 & STATUS1_FREEZE) + if (gBattleMons[battler].status1 & STATUS1_FREEZE) StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - gBattleMons[bank].status1 = 0; - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch - gBattleScripting.bank = gActiveBank = bank; + gBattleMons[battler].status1 = 0; + gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch + gBattleScripting.battler = gActiveBattler = battler; BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBank); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1); + MarkBufferBankForExecution(gActiveBattler); effect++; } break; case ABILITY_SPEED_BOOST: - if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2) + if (gBattleMons[battler].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[battler].isFirstTurn != 2) { - gBattleMons[bank].statStages[STAT_STAGE_SPEED]++; + gBattleMons[battler].statStages[STAT_STAGE_SPEED]++; gBattleScripting.animArg1 = 0x11; gBattleScripting.animArg2 = 0; BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates); - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; effect++; } break; case ABILITY_TRUANT: - gDisableStructs[gBankAttacker].truantCounter ^= 1; + gDisableStructs[gBattleAttacker].truantCounter ^= 1; break; } } @@ -1980,7 +1980,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } if (sSoundMovesTable[i] != 0xFFFF) { - if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS) + if (gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; gBattlescriptCurrInstr = BattleScript_SoundproofProtected; effect = 1; @@ -1995,7 +1995,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_VOLT_ABSORB: if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattleAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -2006,7 +2006,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_WATER_ABSORB: if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattleAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -2015,23 +2015,23 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS1_FREEZE)) + if (moveType == TYPE_FIRE && !(gBattleMons[battler].status1 & STATUS1_FREEZE)) { - if (!(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE)) + if (!(gBattleResources->flags->flags[battler] & UNKNOWN_FLAG_FLASH_FIRE)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattleAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; - gBattleResources->flags->flags[bank] |= UNKNOWN_FLAG_FLASH_FIRE; + gBattleResources->flags->flags[battler] |= UNKNOWN_FLAG_FLASH_FIRE; effect = 2; } else { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gProtectStructs[gBankAttacker].notFirstStrike) + if (gProtectStructs[gBattleAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -2043,16 +2043,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } if (effect == 1) { - if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) + if (gBattleMons[battler].maxHP == gBattleMons[battler].hp) { - if ((gProtectStructs[gBankAttacker].notFirstStrike)) + if ((gProtectStructs[gBattleAttacker].notFirstStrike)) gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless; else gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless_PPLoss; } else { - gBattleMoveDamage = gBattleMons[bank].maxHP / 4; + gBattleMoveDamage = gBattleMons[battler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; @@ -2067,13 +2067,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) - && gBattleMons[bank].type1 != moveType - && gBattleMons[bank].type2 != moveType - && gBattleMons[bank].hp != 0) + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && gBattleMons[battler].type1 != moveType + && gBattleMons[battler].type2 != moveType + && gBattleMons[battler].hp != 0) { - gBattleMons[bank].type1 = moveType; - gBattleMons[bank].type2 = moveType; + gBattleMons[battler].type1 = moveType; + gBattleMons[battler].type2 = moveType; PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType) BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ColorChangeActivates; @@ -2082,12 +2082,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_ROUGH_SKIN: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && gBattleMons[gBattleAttacker].hp != 0 + && !gProtectStructs[gBattleAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptPushCursor(); @@ -2097,9 +2097,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_EFFECT_SPORE: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && gBattleMons[gBattleAttacker].hp != 0 + && !gProtectStructs[gBattleAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 10) == 0) { @@ -2120,9 +2120,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_POISON_POINT: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && gBattleMons[gBattleAttacker].hp != 0 + && !gProtectStructs[gBattleAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2135,9 +2135,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_STATIC: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && gBattleMons[gBattleAttacker].hp != 0 + && !gProtectStructs[gBattleAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2150,10 +2150,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_FLAME_BODY: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg + && gBattleMons[gBattleAttacker].hp != 0 + && !gProtectStructs[gBattleAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; @@ -2165,19 +2165,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_CUTE_CHARM: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg + && gBattleMons[gBattleAttacker].hp != 0 + && !gProtectStructs[gBattleAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) - && gBattleMons[gBankDefender].hp != 0 + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && gBattleMons[gBattleDefender].hp != 0 && (Random() % 3) == 0 - && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && gBattleMons[gBattleAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && !(gBattleMons[gBattleAttacker].status2 & STATUS2_INFATUATION) && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS) { - gBattleMons[gBankAttacker].status2 |= STATUS2_INFATUATED_WITH(gBankDefender); + gBattleMons[gBattleAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattleDefender); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2186,26 +2186,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_IMMUNITY: // 5 - for (bank = 0; bank < gBattleBanksCount; bank++) + for (battler = 0; battler < gBattlersCount; battler++) { - switch (gBattleMons[bank].ability) + switch (gBattleMons[battler].ability) { case ABILITY_IMMUNITY: - if (gBattleMons[bank].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_TOXIC_COUNTER)) + if (gBattleMons[battler].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_TOXIC_COUNTER)) { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); effect = 1; } break; case ABILITY_OWN_TEMPO: - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + if (gBattleMons[battler].status2 & STATUS2_CONFUSION) { StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); effect = 2; } break; case ABILITY_LIMBER: - if (gBattleMons[bank].status1 & STATUS1_PARALYSIS) + if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); effect = 1; @@ -2213,29 +2213,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_INSOMNIA: case ABILITY_VITAL_SPIRIT: - if (gBattleMons[bank].status1 & STATUS1_SLEEP) + if (gBattleMons[battler].status1 & STATUS1_SLEEP) { - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE); StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); effect = 1; } break; case ABILITY_WATER_VEIL: - if (gBattleMons[bank].status1 & STATUS1_BURN) + if (gBattleMons[battler].status1 & STATUS1_BURN) { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); effect = 1; } break; case ABILITY_MAGMA_ARMOR: - if (gBattleMons[bank].status1 & STATUS1_FREEZE) + if (gBattleMons[battler].status1 & STATUS1_FREEZE) { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); effect = 1; } break; case ABILITY_OBLIVIOUS: - if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + if (gBattleMons[battler].status2 & STATUS2_INFATUATION) { StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); effect = 3; @@ -2247,36 +2247,36 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (effect) { case 1: // status cleared - gBattleMons[bank].status1 = 0; + gBattleMons[battler].status1 = 0; break; case 2: // get rid of confusion - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[battler].status2 &= ~(STATUS2_CONFUSION); break; case 3: // get rid of infatuation - gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); + gBattleMons[battler].status2 &= ~(STATUS2_INFATUATION); break; } BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; - gBattleScripting.bank = bank; - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gBattleScripting.battler = battler; + gActiveBattler = battler; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); return effect; } } break; case ABILITYEFFECT_FORECAST: // 6 - for (bank = 0; bank < gBattleBanksCount; bank++) + for (battler = 0; battler < gBattlersCount; battler++) { - if (gBattleMons[bank].ability == ABILITY_FORECAST) + if (gBattleMons[battler].ability == ABILITY_FORECAST) { - effect = CastformDataTypeChange(bank); + effect = CastformDataTypeChange(battler); if (effect) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); - gBattleScripting.bank = bank; + gBattleScripting.battler = battler; *(&gBattleStruct->formToChangeInto) = effect - 1; return effect; } @@ -2292,7 +2292,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.bank = gBankDefender; + gBattleScripting.battler = gBattleDefender; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2308,7 +2308,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect; - gBattleScripting.bank = gBankAttacker; + gBattleScripting.battler = gBattleAttacker; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2316,7 +2316,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE1: // 9 - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) { @@ -2330,42 +2330,42 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_TRACE: // 11 - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { u8 target2; - side = (GetBankPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon - target1 = GetBankByPosition(side); - target2 = GetBankByPosition(side + BIT_MON); + side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon + target1 = GetBattlerAtPosition(side); + target2 = GetBattlerAtPosition(side + BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBank = GetBankByPosition(((Random() & 1) * 2) | side); - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; + gActiveBattler = GetBattlerAtPosition(((Random() & 1) * 2) | side); + gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; } else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) { - gActiveBank = target1; - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; + gActiveBattler = target1; + gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; } else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBank = target2; - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; + gActiveBattler = target2; + gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; + gLastUsedAbility = gBattleMons[gActiveBattler].ability; effect++; } } else { - gActiveBank = target1; + gActiveBattler = target1; if (gBattleMons[target1].ability && gBattleMons[target1].hp) { gBattleMons[i].ability = gBattleMons[target1].ability; @@ -2377,9 +2377,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { BattleScriptPushCursorAndCallback(BattleScript_TraceActivates); gStatuses3[i] &= ~(STATUS3_TRACE); - gBattleScripting.bank = i; + gBattleScripting.battler = i; - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlePartyID[gActiveBattler]) PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility) break; } @@ -2387,7 +2387,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE2: // 10 - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) { @@ -2402,10 +2402,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 - side = GetBankSide(bank); - for (i = 0; i < gBattleBanksCount; i++) + side = GetBattlerSide(battler); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect = i + 1; @@ -2413,10 +2413,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 - side = GetBankSide(bank); - for (i = 0; i < gBattleBanksCount; i++) + side = GetBattlerSide(battler); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect = i + 1; @@ -2427,21 +2427,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (gLastUsedAbility) { case 0xFD: - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gStatuses3[i] & STATUS3_MUDSPORT) effect = i + 1; } break; case 0xFE: - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gStatuses3[i] & STATUS3_WATERSPORT) effect = i + 1; } break; default: - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability) { @@ -2453,7 +2453,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) { @@ -2463,9 +2463,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBattleMons[i].ability == ability && i != bank) + if (gBattleMons[i].ability == ability && i != battler) { gLastUsedAbility = ability; effect = i + 1; @@ -2473,10 +2473,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_OTHER_SIDE: // 16 - side = GetBankSide(bank); - for (i = 0; i < gBattleBanksCount; i++) + side = GetBattlerSide(battler); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect++; @@ -2484,10 +2484,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 - side = GetBankSide(bank); - for (i = 0; i < gBattleBanksCount; i++) + side = GetBattlerSide(battler); + for (i = 0; i < gBattlersCount; i++) { - if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; effect++; @@ -2495,9 +2495,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gBattleMons[i].ability == ability && i != bank) + if (gBattleMons[i].ability == ability && i != battler) { gLastUsedAbility = ability; effect++; @@ -2507,7 +2507,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } if (effect && caseID < ABILITYEFFECT_CHECK_OTHER_SIDE && gLastUsedAbility != 0xFF) - RecordAbilityBattle(bank, gLastUsedAbility); + RecordAbilityBattle(battler, gLastUsedAbility); } return effect; @@ -2560,11 +2560,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); } - atkItem = gBattleMons[gBankAttacker].item; + atkItem = gBattleMons[gBattleAttacker].item; if (atkItem == ITEM_ENIGMA_BERRY) { - atkHoldEffect = gEnigmaBerries[gBankAttacker].holdEffect; - atkQuality = gEnigmaBerries[gBankAttacker].holdEffectParam; + atkHoldEffect = gEnigmaBerries[gBattleAttacker].holdEffect; + atkQuality = gEnigmaBerries[gBattleAttacker].holdEffectParam; } else { @@ -2573,11 +2573,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } // def variables are unused - defItem = gBattleMons[gBankDefender].item; + defItem = gBattleMons[gBattleDefender].item; if (defItem == ITEM_ENIGMA_BERRY) { - defHoldEffect = gEnigmaBerries[gBankDefender].holdEffect; - defQuality = gEnigmaBerries[gBankDefender].holdEffectParam; + defHoldEffect = gEnigmaBerries[gBattleDefender].holdEffect; + defQuality = gEnigmaBerries[gBattleDefender].holdEffectParam; } else { @@ -2591,7 +2591,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) switch (bankHoldEffect) { case HOLD_EFFECT_DOUBLE_PRIZE: - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) gBattleStruct->moneyMultiplier = 2; break; case HOLD_EFFECT_RESTORE_STATS: @@ -2605,9 +2605,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } if (effect) { - gBattleScripting.bank = bank; + gBattleScripting.battler = bank; gStringBank = bank; - gActiveBank = gBankAttacker = bank; + gActiveBattler = gBattleAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -2636,7 +2636,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) u8 ppBonuses; u16 move; - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) mon = &gPlayerParty[gBattlePartyID[bank]]; else mon = &gEnemyParty[gBattlePartyID[bank]]; @@ -2660,7 +2660,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) BattleScriptExecute(BattleScript_BerryPPHealEnd2); EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); effect = ITEM_PP_CHANGE; } } @@ -2676,9 +2676,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } if (effect) { - gBattleScripting.bank = bank; + gBattleScripting.battler = bank; gStringBank = bank; - gActiveBank = gBankAttacker = bank; + gActiveBattler = gBattleAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -3004,14 +3004,14 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } if (effect) { - gBattleScripting.bank = bank; + gBattleScripting.battler = bank; gStringBank = bank; - gActiveBank = gBankAttacker = bank; + gActiveBattler = gBattleAttacker = bank; switch (effect) { case ITEM_STATUS_CHANGE: EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBank); + MarkBufferBankForExecution(gActiveBattler); break; case ITEM_PP_CHANGE: if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) @@ -3024,7 +3024,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case 2: break; case 3: - for (bank = 0; bank < gBattleBanksCount; bank++) + for (bank = 0; bank < gBattlersCount; bank++) { gLastUsedItem = gBattleMons[bank].item; if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) @@ -3152,7 +3152,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } if (effect) { - gBattleScripting.bank = bank; + gBattleScripting.battler = bank; gStringBank = bank; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; @@ -3162,11 +3162,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } if (effect) { - gBattleScripting.bank = bank; + gBattleScripting.battler = bank; gStringBank = bank; - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); break; } } @@ -3178,10 +3178,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { case HOLD_EFFECT_FLINCH: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && (gSpecialStatuses[gBankDefender].moveturnLostHP_physical || gSpecialStatuses[gBankDefender].moveturnLostHP_special) + && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) && (Random() % 100) < atkQuality && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED - && gBattleMons[gBankDefender].hp) + && gBattleMons[gBattleDefender].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); @@ -3191,19 +3191,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) break; case HOLD_EFFECT_SHELL_BELL: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gSpecialStatuses[gBankDefender].moveturnLostHP != 0 - && gSpecialStatuses[gBankDefender].moveturnLostHP != 0xFFFF - && gBankAttacker != gBankDefender - && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP - && gBattleMons[gBankAttacker].hp != 0) + && gSpecialStatuses[gBattleDefender].moveturnLostHP != 0 + && gSpecialStatuses[gBattleDefender].moveturnLostHP != 0xFFFF + && gBattleAttacker != gBattleDefender + && gBattleMons[gBattleAttacker].hp != gBattleMons[gBattleAttacker].maxHP + && gBattleMons[gBattleAttacker].hp != 0) { gLastUsedItem = atkItem; - gStringBank = gBankAttacker; - gBattleScripting.bank = gBankAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBankDefender].moveturnLostHP / atkQuality) * -1; + gStringBank = gBattleAttacker; + gBattleScripting.battler = gBattleAttacker; + gBattleMoveDamage = (gSpecialStatuses[gBattleDefender].moveturnLostHP / atkQuality) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBankDefender].moveturnLostHP = 0; + gSpecialStatuses[gBattleDefender].moveturnLostHP = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect++; @@ -3244,21 +3244,21 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) switch (moveTarget) { case MOVE_TARGET_SELECTED: - side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else { - side = GetBankSide(gBankAttacker); + side = GetBattlerSide(gBattleAttacker); do { - targetBank = Random() % gBattleBanksCount; - } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); + targetBank = Random() % gBattlersCount; + } while (targetBank == gBattleAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC - && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) { - targetBank ^= BIT_MON; + targetBank ^= BIT_FLANK; RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); gSpecialStatuses[targetBank].lightningRodRedirected = 1; } @@ -3268,50 +3268,50 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBankByPosition((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); - if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= BIT_MON; + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleAttacker) & BIT_SIDE) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[targetBank]) + targetBank ^= BIT_FLANK; break; case MOVE_TARGET_RANDOM: - side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) { - if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - targetBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - targetBank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - targetBank = GetBankByPosition(B_POSITION_PLAYER_LEFT); + targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - targetBank = GetBankByPosition(B_POSITION_PLAYER_RIGHT); + targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= BIT_MON; + if (gAbsentBattlerFlags & gBitTable[targetBank]) + targetBank ^= BIT_FLANK; } else - targetBank = GetBankByPosition((GetBankPosition(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: - targetBank = gBankAttacker; + targetBank = gBattleAttacker; break; } - *(gBattleStruct->moveTarget + gBankAttacker) = targetBank; + *(gBattleStruct->moveTarget + gBattleAttacker) = targetBank; return targetBank; } static bool32 HasObedientBitSet(u8 bank) { - if (GetBankSide(bank) == SIDE_OPPONENT) + if (GetBattlerSide(bank) == B_SIDE_OPPONENT) return TRUE; if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS && GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) @@ -3327,18 +3327,18 @@ u8 IsMonDisobedient(void) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return 0; - if (GetBankSide(gBankAttacker) == SIDE_OPPONENT) + if (GetBattlerSide(gBattleAttacker) == B_SIDE_OPPONENT) return 0; - if (HasObedientBitSet(gBankAttacker)) // only if species is Mew or Deoxys + if (HasObedientBitSet(gBattleAttacker)) // only if species is Mew or Deoxys { - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankPosition(gBankAttacker) == 2) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattleAttacker) == 2) return 0; if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) return 0; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) return 0; - if (!IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)) + if (!IsOtherTrainer(gBattleMons[gBattleAttacker].otId, gBattleMons[gBattleAttacker].otName)) return 0; if (FlagGet(FLAG_BADGE08_GET)) return 0; @@ -3353,27 +3353,27 @@ u8 IsMonDisobedient(void) obedienceLevel = 70; } - if (gBattleMons[gBankAttacker].level <= obedienceLevel) + if (gBattleMons[gBattleAttacker].level <= obedienceLevel) return 0; rnd = (Random() & 255); - calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattleAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) return 0; // is not obedient if (gCurrentMove == MOVE_RAGE) - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); - if (gBattleMons[gBankAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_RAGE); + if (gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { gBattlescriptCurrInstr = BattleScript_82DB695; return 1; } rnd = (Random() & 255); - calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattleAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) { - calc = CheckMoveLimitations(gBankAttacker, gBitTable[gCurrMovePos], 0xFF); + calc = CheckMoveLimitations(gBattleAttacker, gBitTable[gCurrMovePos], 0xFF); if (calc == 0xF) // all moves cannot be used { gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; @@ -3387,28 +3387,28 @@ u8 IsMonDisobedient(void) gCurrMovePos = gUnknown_020241E9 = Random() & 3; } while (gBitTable[gCurrMovePos] & calc); - gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gRandomMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBankDefender = GetMoveTarget(gRandomMove, 0); + gBattleDefender = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; } } else { - obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel; + obedienceLevel = gBattleMons[gBattleAttacker].level - obedienceLevel; calc = (Random() & 255); - if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS1_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) + if (calc < obedienceLevel && !(gBattleMons[gBattleAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattleAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattleAttacker].ability != ABILITY_INSOMNIA) { // try putting asleep int i; - for (i = 0; i < gBattleBanksCount; i++) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].status2 & STATUS2_UPROAR) break; } - if (i == gBattleBanksCount) + if (i == gBattlersCount) { gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; return 1; @@ -3417,8 +3417,8 @@ u8 IsMonDisobedient(void) calc -= obedienceLevel; if (calc < obedienceLevel) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gBankDefender = gBankAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleAttacker], MOVE_POUND, 0, 40, 0, gBattleAttacker, gBattleAttacker); + gBattleDefender = gBattleAttacker; gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; diff --git a/src/battle_util2.c b/src/battle_util2.c index fb01865a4..5c7434aa0 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -8,12 +8,12 @@ #include "random.h" #include "battle_scripts.h" -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; extern u8 gUnknown_0203CF00[]; extern const u8 *gBattlescriptCurrInstr; extern u8 gBattleCommunication[]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern void sub_81D55D0(void); extern void sub_81D5694(void); @@ -87,15 +87,15 @@ void AdjustFriendshipOnBattleFaint(u8 bank) { u8 opposingBank2; - opposingBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); - opposingBank2 = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + opposingBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + opposingBank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); if (gBattleMons[opposingBank2].level > gBattleMons[opposingBank].level) opposingBank = opposingBank2; } else { - opposingBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + opposingBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); } if (gBattleMons[opposingBank].level > gBattleMons[bank].level) @@ -113,7 +113,7 @@ void AdjustFriendshipOnBattleFaint(u8 bank) void sub_80571DC(u8 bank, u8 arg1) { - if (GetBankSide(bank) != SIDE_OPPONENT) + if (GetBattlerSide(bank) != B_SIDE_OPPONENT) { s32 i; @@ -206,9 +206,9 @@ u32 sub_805725C(u8 bank) if (effect == 2) { - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); + gActiveBattler = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBufferBankForExecution(gActiveBattler); } return effect; diff --git a/src/pokeball.c b/src/pokeball.c index f16096429..424ecb0eb 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -16,8 +16,8 @@ #include "graphics.h" extern bool8 gDoingBattleAnim; -extern u8 gActiveBank; -extern u8 gBankDefender; +extern u8 gActiveBattler; +extern u8 gBattleDefender; extern u16 gBattlePartyID[]; extern u8 gBankSpriteIds[]; extern u8 gHealthBoxesIds[]; @@ -334,12 +334,12 @@ u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow) u8 taskId; gDoingBattleAnim = TRUE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive = 1; taskId = CreateTask(Task_DoPokeballSendOutAnim, 5); gTasks[taskId].tPan = pan; gTasks[taskId].tThrowId = kindOfThrow; - gTasks[taskId].tBank = gActiveBank; + gTasks[taskId].tBank = gActiveBattler; return 0; } @@ -363,7 +363,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) throwCaseId = gTasks[taskId].tThrowId; bank = gTasks[taskId].tBank; - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) itemId = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); else itemId = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); @@ -378,7 +378,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) switch (throwCaseId) { case POKEBALL_PLAYER_SENDOUT: - gBankDefender = bank; + gBattleDefender = bank; gSprites[ballSpriteId].pos1.x = 24; gSprites[ballSpriteId].pos1.y = 68; gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; @@ -386,17 +386,17 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) case POKEBALL_OPPONENT_SENDOUT: gSprites[ballSpriteId].pos1.x = GetBankCoord(bank, BANK_X_POS); gSprites[ballSpriteId].pos1.y = GetBankCoord(bank, BANK_Y_POS) + 24; - gBankDefender = bank; + gBattleDefender = bank; gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; break; default: - gBankDefender = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); notSendOut = TRUE; break; } - gSprites[ballSpriteId].sBank = gBankDefender; + gSprites[ballSpriteId].sBank = gBattleDefender; if (!notSendOut) { DestroyTask(taskId); @@ -405,12 +405,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) // this will perform an unused ball throw animation gSprites[ballSpriteId].data[0] = 0x22; - gSprites[ballSpriteId].data[2] = GetBankCoord(gBankDefender, BANK_X_POS); - gSprites[ballSpriteId].data[4] = GetBankCoord(gBankDefender, BANK_Y_POS) - 16; + gSprites[ballSpriteId].data[2] = GetBankCoord(gBattleDefender, BANK_X_POS); + gSprites[ballSpriteId].data[4] = GetBankCoord(gBattleDefender, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[5] = -40; sub_80A68D4(&gSprites[ballSpriteId]); gSprites[ballSpriteId].oam.affineParam = taskId; - gTasks[taskId].tOpponentBank = gBankDefender; + gTasks[taskId].tOpponentBank = gBattleDefender; gTasks[taskId].func = TaskDummy; PlaySE(SE_NAGERU); } @@ -755,7 +755,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) u16 wantedCryCase; u8 taskId; - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { mon = &gEnemyParty[gBattlePartyID[bank]]; pan = 25; @@ -767,7 +767,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) } species = GetMonData(mon, MON_DATA_SPECIES); - if ((bank == GetBankByPosition(B_POSITION_PLAYER_LEFT) || bank == GetBankByPosition(B_POSITION_OPPONENT_LEFT)) + if ((bank == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || bank == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -783,7 +783,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) wantedCryCase = 0; - else if (bank == GetBankByPosition(B_POSITION_PLAYER_LEFT) || bank == GetBankByPosition(B_POSITION_OPPONENT_LEFT)) + else if (bank == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || bank == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) wantedCryCase = 1; else wantedCryCase = 2; @@ -803,7 +803,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 1); - if (GetBankSide(sprite->sBank) == SIDE_OPPONENT) + if (GetBattlerSide(sprite->sBank) == B_SIDE_OPPONENT) gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039B58; else gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039E44; @@ -859,12 +859,12 @@ static void HandleBallAnimEnd(struct Sprite *sprite) FreeSpriteOamMatrix(sprite); DestroySprite(sprite); - for (doneBanks = 0, i = 0; i < BATTLE_BANKS_COUNT; i++) + for (doneBanks = 0, i = 0; i < MAX_BATTLERS_COUNT; i++) { if (gBattleSpritesDataPtr->healthBoxesData[i].ballAnimActive == 0) doneBanks++; } - if (doneBanks == BATTLE_BANKS_COUNT) + if (doneBanks == MAX_BATTLERS_COUNT) { for (i = 0; i < POKEBALL_COUNT; i++) FreeBallGfx(i); @@ -956,7 +956,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) sprite->data[0] = 0; if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 - && sprite->sBank == GetBankByPosition(B_POSITION_PLAYER_RIGHT)) + && sprite->sBank == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else sprite->callback = SpriteCB_ReleaseMonFromBall; @@ -982,7 +982,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) { sprite->data[0] = 0; if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 - && sprite->sBank == GetBankByPosition(B_POSITION_OPPONENT_RIGHT)) + && sprite->sBank == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)) sprite->callback = SpriteCB_ReleaseMon2FromBall; else sprite->callback = SpriteCB_ReleaseMonFromBall; @@ -1190,7 +1190,7 @@ void sub_8076918(u8 bank) healthboxSprite->pos2.x = 0x73; healthboxSprite->pos2.y = 0; healthboxSprite->callback = sub_80769CC; - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { healthboxSprite->data[0] = -healthboxSprite->data[0]; healthboxSprite->data[1] = -healthboxSprite->data[1]; @@ -1198,7 +1198,7 @@ void sub_8076918(u8 bank) healthboxSprite->pos2.y = -healthboxSprite->pos2.y; } gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]); - if (GetBankPosition(bank) == B_POSITION_PLAYER_RIGHT) + if (GetBattlerPosition(bank) == B_POSITION_PLAYER_RIGHT) healthboxSprite->callback = sub_80769A8; } @@ -1275,7 +1275,7 @@ void FreeBallGfx(u8 ballId) static u16 GetBankPokeballItemId(u8 bank) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); else return GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); diff --git a/src/pokemon_2.c b/src/pokemon_2.c index f05453c52..d4ccd5ca1 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -14,10 +14,10 @@ struct Unknown_020249B4 struct SpriteTemplate* templates; }; -extern u8 gAbsentBankFlags; -extern u8 gActiveBank; -extern u8 gBankAttacker; -extern u8 gBankDefender; +extern u8 gAbsentBattlerFlags; +extern u8 gActiveBattler; +extern u8 gBattleAttacker; +extern u8 gBattleDefender; extern u8 gLastUsedAbility; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; @@ -34,9 +34,9 @@ extern const union AnimCmd* const * const gUnknown_0830536C[]; extern const u8 gText_BadEgg[]; extern const u8 gText_EggNickname[]; -extern u8 GetBankSide(u8 bank); -extern u8 GetBankByPosition(u8 bank); -extern u8 GetBankPosition(u8 bank); +extern u8 GetBattlerSide(u8 bank); +extern u8 GetBattlerAtPosition(u8 bank); +extern u8 GetBattlerPosition(u8 bank); u8 CountAliveMonsInBattle(u8 caseId) { @@ -48,21 +48,21 @@ u8 CountAliveMonsInBattle(u8 caseId) case BATTLE_ALIVE_EXCEPT_ACTIVE: for (i = 0; i < 4; i++) { - if (i != gActiveBank && !(gAbsentBankFlags & gBitTable[i])) + if (i != gActiveBattler && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case BATTLE_ALIVE_ATK_SIDE: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankAttacker) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattleAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case BATTLE_ALIVE_DEF_SIDE: for (i = 0; i < 4; i++) { - if (GetBankSide(i) == GetBankSide(gBankDefender) && !(gAbsentBankFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattleDefender) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; @@ -75,7 +75,7 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 bank) { if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) return FALSE; - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) return FALSE; @@ -86,11 +86,11 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 bank) u8 GetDefaultMoveTarget(u8 bank) { - u8 status = GetBankPosition(bank) & 1; + u8 status = GetBattlerPosition(bank) & 1; status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return GetBankByPosition(status); + return GetBattlerAtPosition(status); if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1) { u8 val; @@ -99,14 +99,14 @@ u8 GetDefaultMoveTarget(u8 bank) val = status ^ 2; else val = status; - return GetBankByPosition(val); + return GetBattlerAtPosition(val); } else { - if ((gAbsentBankFlags & gBitTable[status])) - return GetBankByPosition(status ^ 2); + if ((gAbsentBattlerFlags & gBitTable[status])) + return GetBattlerAtPosition(status ^ 2); else - return GetBankByPosition(status); + return GetBattlerAtPosition(status); } } @@ -1353,7 +1353,7 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex) StringCopy10(gBattleMons[bank].nickname, nickname); GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[bank].otName); - hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(bank)]; + hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(bank)]; *hpSwitchout = gBattleMons[bank].hp; for (i = 0; i < 8; i++) diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 57b12501e..d6413c455 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -25,10 +25,10 @@ extern struct BattlePokemon gBattleMons[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; -extern u8 gActiveBank; +extern u8 gActiveBattler; extern u8 gBankInMenu; -extern u8 gBankDefender; -extern u8 gBankAttacker; +extern u8 gBattleDefender; +extern u8 gBattleAttacker; extern u8 gStringBank; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; @@ -113,7 +113,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) if (itemId == ITEM_ENIGMA_BERRY) { - temp = gEnigmaBerries[gActiveBank].itemEffect; + temp = gEnigmaBerries[gActiveBattler].itemEffect; } itemEffect = temp; @@ -210,7 +210,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) void sub_806CF24(s32 stat) { - gBankDefender = gBankInMenu; + gBattleDefender = gBankInMenu; StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]); StringCopy(gBattleTextBuff2, gText_StatRose); BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); @@ -247,7 +247,7 @@ u8 *sub_806CF78(u16 itemId) } else { - gBankAttacker = gBankInMenu; + gBattleAttacker = gBankInMenu; BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped); } } @@ -255,7 +255,7 @@ u8 *sub_806CF78(u16 itemId) if (itemEffect[3] & 0x80) { - gBankAttacker = gBankInMenu; + gBattleAttacker = gBankInMenu; BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist); } @@ -1366,7 +1366,7 @@ void sub_806E994(void) gBattleTextBuff1[2] = gBattleStruct->field_49; gBattleTextBuff1[4] = B_BUFF_EOS; - if (!GetBankSide(gBattleStruct->field_49)) + if (!GetBattlerSide(gBattleStruct->field_49)) gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->field_49]); else gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->field_49]; diff --git a/src/recorded_battle.c b/src/recorded_battle.c index b785d1ea1..cd54495fc 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -25,11 +25,11 @@ extern u32 gBattleTypeFlags; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u16 gPartnerTrainerId; -extern u8 gActiveBank; -extern u8 gBattleBanksCount; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; +extern u8 gActiveBattler; +extern u8 gBattlersCount; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u8 gUnknown_03001278; extern u8 gUnknown_03001279; @@ -52,13 +52,13 @@ struct RecordedBattleSave { struct Pokemon playerParty[PARTY_SIZE]; struct Pokemon opponentParty[PARTY_SIZE]; - u8 playersName[BATTLE_BANKS_COUNT][PLAYER_NAME_LENGTH]; - u8 playersGender[BATTLE_BANKS_COUNT]; - u32 playersTrainerId[BATTLE_BANKS_COUNT]; - u8 playersLanguage[BATTLE_BANKS_COUNT]; + u8 playersName[MAX_BATTLERS_COUNT][PLAYER_NAME_LENGTH]; + u8 playersGender[MAX_BATTLERS_COUNT]; + u32 playersTrainerId[MAX_BATTLERS_COUNT]; + u8 playersLanguage[MAX_BATTLERS_COUNT]; u32 rngSeed; u32 battleFlags; - u8 playersBank[BATTLE_BANKS_COUNT]; + u8 playersBank[MAX_BATTLERS_COUNT]; u16 opponentA; u16 opponentB; u16 partnerId; @@ -75,14 +75,14 @@ struct RecordedBattleSave u16 field_50E[6]; u8 field_51A; u8 field_51B; - u8 battleRecord[BATTLE_BANKS_COUNT][BANK_RECORD_SIZE]; + u8 battleRecord[MAX_BATTLERS_COUNT][BANK_RECORD_SIZE]; u32 checksum; }; EWRAM_DATA u32 gRecordedBattleRngSeed = 0; EWRAM_DATA u32 gBattlePalaceMoveSelectionRngValue = 0; -EWRAM_DATA static u8 sBattleRecords[BATTLE_BANKS_COUNT][BANK_RECORD_SIZE] = {0}; -EWRAM_DATA static u16 sRecordedBytesNo[BATTLE_BANKS_COUNT] = {0}; +EWRAM_DATA static u8 sBattleRecords[MAX_BATTLERS_COUNT][BANK_RECORD_SIZE] = {0}; +EWRAM_DATA static u16 sRecordedBytesNo[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0}; EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0}; EWRAM_DATA static u8 sUnknown_0203C7AC = 0; @@ -99,7 +99,7 @@ EWRAM_DATA static u32 sRecordedBattle_AI_Scripts = 0; EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0}; EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0}; EWRAM_DATA static u16 sRecordedBattle_PlayerMonMoves[2][4] = {0}; -EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[BATTLE_BANKS_COUNT] = {0}; +EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA static u8 sUnknown_0203CCD0 = 0; EWRAM_DATA static u8 sUnknown_0203CCD1[8] = {0}; EWRAM_DATA static u8 sUnknown_0203CCD9 = 0; @@ -123,7 +123,7 @@ void sub_8184DA4(u8 arg0) sUnknown_0203C7AC = arg0; sUnknown_0203CCD0 = 0; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { sRecordedBytesNo[i] = 0; sUnknown_0203C79C[i] = 0; @@ -164,7 +164,7 @@ void sub_8184E58(void) gUnknown_0203C7B4 = GetMultiplayerId(); linkPlayersCount = GetLinkPlayerCount(); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { sRecordedBattle_Players[i].trainerId = gLinkPlayers[i].trainerId; sRecordedBattle_Players[i].gender = gLinkPlayers[i].gender; @@ -248,7 +248,7 @@ u8 sub_81850DC(u8 *arg0) u8 i, j; u8 ret = 0; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (sRecordedBytesNo[i] != sUnknown_0203C79C[i]) { @@ -350,7 +350,7 @@ u32 MoveRecordedBattleToSaveData(void) battleSave->opponentParty[i] = sSavedOpponentParty[i]; } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { for (j = 0; j < PLAYER_NAME_LENGTH; j++) { @@ -1339,7 +1339,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) gEnemyParty[i] = src->opponentParty[i]; } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { for (var = FALSE, j = 0; j < PLAYER_NAME_LENGTH; j++) { @@ -1386,7 +1386,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) gSaveBlock2Ptr->frontierChosenLvl = src->field_4FC; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { for (j = 0; j < BANK_RECORD_SIZE; j++) { @@ -1462,7 +1462,7 @@ u8 GetActiveBankLinkPlayerGender(void) for (i = 0; i < MAX_LINK_PLAYERS; i++) { - if (gLinkPlayers[i].lp_field_18 == gActiveBank) + if (gLinkPlayers[i].lp_field_18 == gActiveBattler) break; } @@ -1501,7 +1501,7 @@ void RecordedBattle_CopyBankMoves(void) { s32 i; - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) return; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return; @@ -1510,7 +1510,7 @@ void RecordedBattle_CopyBankMoves(void) for (i = 0; i < 4; i++) { - sRecordedBattle_PlayerMonMoves[gActiveBank / 2][i] = gBattleMons[gActiveBank].moves[i]; + sRecordedBattle_PlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i]; } } @@ -1523,9 +1523,9 @@ void sub_818603C(u8 arg0) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return; - for (bank = 0; bank < gBattleBanksCount; bank++) + for (bank = 0; bank < gBattlersCount; bank++) { - if (GetBankSide(bank) != SIDE_OPPONENT) // player's side only + if (GetBattlerSide(bank) != B_SIDE_OPPONENT) // player's side only { if (arg0 == 1) { diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 93d69b840..92a9c4074 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -22,14 +22,14 @@ extern u16 gBattle_BG2_Y; extern u16 gBattle_BG3_X; extern u16 gBattle_BG3_Y; extern u8 gReservedSpritePaletteCount; -extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBankInMenu; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gBattleBanksCount; +extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u8 gBattlersCount; extern u32 gBattleTypeFlags; -extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; -extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; +extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[]; @@ -164,13 +164,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void) LoadAndCreateEnemyShadowSprites(); - opponentBank = GetBankByPosition(B_POSITION_OPPONENT_LEFT); + opponentBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); SetBankEnemyShadowSpriteCallback(opponentBank, species); if (IsDoubleBattle()) { - opponentBank = GetBankByPosition(B_POSITION_OPPONENT_RIGHT); + opponentBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); SetBankEnemyShadowSpriteCallback(opponentBank, species); } @@ -210,9 +210,9 @@ static void sub_80A95F4(void) static bool8 LoadBankSpriteGfx(u8 bank) { - if (bank < gBattleBanksCount) + if (bank < gBattlersCount) { - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); @@ -245,7 +245,7 @@ extern const struct MonCoords gTrainerBackPicCoords[]; static void CreateBankSprite(u8 bank) { - if (bank < gBattleBanksCount) + if (bank < gBattlersCount) { u8 posY; @@ -254,12 +254,12 @@ static void CreateBankSprite(u8 bank) else posY = GetBankSpriteDefault_Y(bank); - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankPosition(bank)); + sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; @@ -272,7 +272,7 @@ static void CreateBankSprite(u8 bank) } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) { - sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankPosition(B_POSITION_PLAYER_LEFT)); + sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, sub_80A82E4(0)); @@ -282,7 +282,7 @@ static void CreateBankSprite(u8 bank) } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { - sub_806A12C(BACK_PIC_WALLY, GetBankPosition(0)); + sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(0)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80, sub_80A82E4(0)); @@ -295,7 +295,7 @@ static void CreateBankSprite(u8 bank) if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankPosition(bank)); + sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; @@ -313,7 +313,7 @@ static void CreateBankSprite(u8 bank) static void CreateHealthboxSprite(u8 bank) { - if (bank < gBattleBanksCount) + if (bank < gBattlersCount) { u8 healthboxSpriteId; @@ -328,19 +328,19 @@ static void CreateHealthboxSprite(u8 bank) SetBankHealthboxSpritePos(bank); SetHealthboxSpriteVisible(healthboxSpriteId); - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT); else UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL); - if (GetBankPosition(bank) == B_POSITION_OPPONENT_RIGHT || GetBankPosition(bank) == B_POSITION_PLAYER_RIGHT) + if (GetBattlerPosition(bank) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(bank) == B_POSITION_PLAYER_RIGHT) DummyBattleInterfaceFunc(gHealthBoxesIds[bank], TRUE); else DummyBattleInterfaceFunc(gHealthBoxesIds[bank], FALSE); - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) SetHealthboxSpriteInvisible(healthboxSpriteId); diff --git a/sym_common.txt b/sym_common.txt index 4918ca425..d724a46d5 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -215,7 +215,7 @@ gBattleResults: @ 3005D10 gLeveledUpInBattle: @ 3005D54 .space 0xC -gBattleBankFunc: @ 3005D60 +gBattlerFuncs: @ 3005D60 .space 0x10 gHealthBoxesIds: @ 3005D70 diff --git a/sym_ewram.txt b/sym_ewram.txt index a33a09a7c..ca117d1e5 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -270,25 +270,25 @@ gBattleBufferA: @ 2023064 gBattleBufferB: @ 2023864 .space 0x800 -gActiveBank: @ 2024064 +gActiveBattler: @ 2024064 .space 0x4 gBattleExecBuffer: @ 2024068 .space 0x4 -gBattleBanksCount: @ 202406C +gBattlersCount: @ 202406C .space 0x2 gBattlePartyID: @ 202406E .space 0x8 -gBankPositions: @ 2024076 +gBattlerPositions: @ 2024076 .space 0x4 gActionsByTurnOrder: @ 202407A .space 0x4 -gBanksByTurnOrder: @ 202407E +gBattleTurnOrder: @ 202407E .space 0x4 gCurrentTurnActionNumber: @ 2024082 @@ -333,10 +333,10 @@ gLastUsedItem: @ 2024208 gLastUsedAbility: @ 202420A .space 0x1 -gBankAttacker: @ 202420B +gBattleAttacker: @ 202420B .space 0x1 -gBankDefender: @ 202420C +gBattleDefender: @ 202420C .space 0x1 gBank1: @ 202420D @@ -348,7 +348,7 @@ gEffectBank: @ 202420E gStringBank: @ 202420F .space 0x1 -gAbsentBankFlags: @ 2024210 +gAbsentBattlerFlags: @ 2024210 .space 0x1 gCritMultiplier: @ 2024211 -- cgit v1.2.3 From 06e1aca2ac72b8c766bf3e13aa0bc6f623170130 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 5 Feb 2018 23:12:34 -0600 Subject: Move start_menu EWRAM symbols into C file --- asm/start_menu.s | 2 +- src/start_menu.c | 5 +++++ sym_ewram.txt | 19 ------------------- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/asm/start_menu.s b/asm/start_menu.s index b99ed84ce..04a197335 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -170,7 +170,7 @@ _0809F926: b _0809F940 .pool _0809F930: - ldr r4, =gUnknown_0203761A + ldr r4, =gUnknown_02037619+1 adds r0, r4, 0 movs r1, 0x2 bl PrintStartMenuActions diff --git a/src/start_menu.c b/src/start_menu.c index a820cd992..cdabb0a56 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -62,6 +62,11 @@ EWRAM_DATA u8 sBattlePyramidFloorWindowId = 0; EWRAM_DATA u8 sStartMenuCursorPos = 0; EWRAM_DATA u8 sNumStartMenuActions = 0; EWRAM_DATA u8 sCurrentStartMenuActions[9] = {0}; +EWRAM_DATA u8 gUnknown_02037619[2] = {0}; +EWRAM_DATA bool8 (*gUnknown_0203761C)(void) = NULL; +EWRAM_DATA u8 gUnknown_02037620 = 0; +EWRAM_DATA u8 gUnknown_02037621 = 0; +EWRAM_DATA u8 gUnknown_02037622 = 0; // const rom data static const struct WindowTemplate gSafariBallsWindowTemplate = {0, 1, 1, 9, 4, 0xF, 8}; diff --git a/sym_ewram.txt b/sym_ewram.txt index 67911a3cc..b32e11739 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -659,25 +659,6 @@ gUnknown_020375D6: @ 20375D6 .include "src/event_data.o" .include "src/start_menu.o" - -gUnknown_02037619: @ 2037619 - .space 0x1 - -gUnknown_0203761A: @ 203761A - .space 0x2 - -gUnknown_0203761C: @ 203761C - .space 0x4 - -gUnknown_02037620: @ 2037620 - .space 0x1 - -gUnknown_02037621: @ 2037621 - .space 0x1 - -gUnknown_02037622: @ 2037622 - .space 0x2 - .include "src/tileset_anims.o" .include "src/palette.o" .include "src/sound.o" -- cgit v1.2.3 From 1902ff023830d67a1b895ccf14a4202deaa02523 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 6 Feb 2018 15:31:04 +0100 Subject: match palette functions --- src/palette.c | 239 +++++++--------------------------------------------------- 1 file changed, 29 insertions(+), 210 deletions(-) diff --git a/src/palette.c b/src/palette.c index cc2046b14..5e073e869 100644 --- a/src/palette.c +++ b/src/palette.c @@ -891,238 +891,57 @@ void TintPalette_GrayScale2(u16 *palette, u16 count) } } -#ifdef NONMATCHING void TintPalette_SepiaTone(u16 *palette, u16 count) { - int red; - int green; - int blue; - u32 gray; - u32 sepia; - s8 r2; - s8 g2; - s8 b2; + s32 r, g, b, gray; + s32 i; - int i; - for (i = 0; i < count; i++) + for (i = 0; i < count; palette++, i++) { - r = *palette & 0x1F; - g = (*palette >> 5) & 0x1F; + r = (*palette >> 0) & 0x1F; + g = (*palette >> 5) & 0x1F; b = (*palette >> 10) & 0x1F; - r *= 0x4C; - r += g * 0x97; - r += b * 0x1D; - - gray = (s32)(r >> 8); + gray = (r * 76 + g * 151 + b * 29) >> 8; - sepia = (gray * 0x133); + r = (u16)((307 * gray)) >> 8; + g = (u16)((256 * gray)) >> 8; + b = (u16)((240 * gray)) >> 8; - r2 = (u16)sepia >> 8; + if (r > 31) + r = 31; - g2 = gray; - - b2 = (gray * 15); - - if (r2 > 0x1F) - r2 = 0x1F; - - *palette++ = b2 << 10 | g2 << 5 | r2; + *palette = (b << 10) | (g << 5) | (r << 0); } } -#else -__attribute__((naked)) -void TintPalette_SepiaTone(u16 *palette, u16 count) -{ - asm("push {r4-r7,lr}\n\ - add r5, r0, #0\n\ - lsl r1, #16\n\ - lsr r1, #16\n\ - cmp r1, #0\n\ - beq _080A2BA2\n\ - mov r7, #0x1F\n\ - add r6, r1, #0\n\ -_080A2B50:\n\ - ldrh r0, [r5]\n\ - mov r1, #0x1F\n\ - and r1, r0\n\ - lsl r0, #16\n\ - lsr r2, r0, #21\n\ - and r2, r7\n\ - lsr r3, r0, #26\n\ - and r3, r7\n\ - mov r0, #0x4C\n\ - mul r1, r0\n\ - mov r0, #0x97\n\ - mul r0, r2\n\ - add r1, r0\n\ - lsl r0, r3, #3\n\ - sub r0, r3\n\ - lsl r0, #2\n\ - add r0, r3\n\ - add r1, r0\n\ - asr r1, #8\n\ - ldr r0, =0x00000133\n\ - mul r0, r1\n\ - lsl r0, #16\n\ - lsr r2, r0, #24\n\ - lsl r0, r1, #24\n\ - lsr r4, r0, #24\n\ - lsl r0, r1, #4\n\ - sub r0, r1\n\ - lsl r0, #20\n\ - lsr r3, r0, #24\n\ - cmp r2, #0x1F\n\ - ble _080A2B90\n\ - mov r2, #0x1F\n\ -_080A2B90:\n\ - lsl r0, r3, #10\n\ - lsl r1, r4, #5\n\ - orr r0, r1\n\ - orr r0, r2\n\ - strh r0, [r5]\n\ - add r5, #0x2\n\ - sub r6, #0x1\n\ - cmp r6, #0\n\ - bne _080A2B50\n\ -_080A2BA2:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); -} -#endif // NONMATCHING -#ifdef NONMATCHING -void TintPalette_CustomTone(u16 *palette, u16 count, u16 a3, u16 a4, u16 a5) +void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone) { - s32 r; - s32 g; - s32 b; - s32 gray; - u8 r2; - u8 g2; - u8 b2; + s32 r, g, b, gray; + s32 i; - int i; - for (i = 0; i < count; i++) + for (i = 0; i < count; palette++, i++) { - r = *palette & 0x1F; - g = (*palette >> 5) & 0x1F; + r = (*palette >> 0) & 0x1F; + g = (*palette >> 5) & 0x1F; b = (*palette >> 10) & 0x1F; - r *= 0x4C; - r += g * 0x97; - r += b * 0x1D; - - gray = r >> 8; - - r2 = (u16)(gray * a3) >> 8; - - g2 = (u16)(gray * a4) >> 8; - - b2 = (u16)(gray * a5) >> 8; + gray = (r * 76 + g * 151 + b * 29) >> 8; - if (r2 > 0x1F) - r2 = 0x1F; + r = (u16)((rTone * gray)) >> 8; + g = (u16)((gTone * gray)) >> 8; + b = (u16)((bTone * gray)) >> 8; - if (g2 > 0x1F) - g2 = 0x1F; + if (r > 31) + r = 31; + if (g > 31) + g = 31; + if (b > 31) + b = 31; - if (b2 > 0x1F) - b2 = 0x1F; - - *palette++ = b2 << 10 | g2 << 5 | r2; + *palette = (b << 10) | (g << 5) | (r << 0); } - return; -} -#else -__attribute__((naked)) -void TintPalette_CustomTone(u16 *palette, u16 count, u16 a3, u16 a4, u16 a5) -{ - asm("push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - add r5, r0, #0\n\ - ldr r0, [sp, #0x1C]\n\ - lsl r1, #16\n\ - lsr r1, #16\n\ - lsl r2, #16\n\ - lsr r2, #16\n\ - mov r9, r2\n\ - lsl r3, #16\n\ - lsr r3, #16\n\ - mov r8, r3\n\ - lsl r0, #16\n\ - lsr r0, #16\n\ - mov r12, r0\n\ - cmp r1, #0\n\ - beq _080A2C38\n\ - mov r7, #0x1F\n\ - add r6, r1, #0\n\ -_080A2BD6:\n\ - ldrh r0, [r5]\n\ - mov r1, #0x1F\n\ - and r1, r0\n\ - lsl r0, #16\n\ - lsr r2, r0, #21\n\ - and r2, r7\n\ - lsr r3, r0, #26\n\ - and r3, r7\n\ - mov r0, #0x4C\n\ - mul r1, r0\n\ - mov r0, #0x97\n\ - mul r0, r2\n\ - add r1, r0\n\ - lsl r0, r3, #3\n\ - sub r0, r3\n\ - lsl r0, #2\n\ - add r0, r3\n\ - add r1, r0\n\ - asr r1, #8\n\ - mov r0, r9\n\ - mul r0, r1\n\ - lsl r0, #16\n\ - lsr r4, r0, #24\n\ - mov r0, r8\n\ - mul r0, r1\n\ - lsl r0, #16\n\ - lsr r2, r0, #24\n\ - mov r0, r12\n\ - mul r0, r1\n\ - lsl r0, #16\n\ - lsr r3, r0, #24\n\ - cmp r4, #0x1F\n\ - ble _080A2C1A\n\ - mov r4, #0x1F\n\ -_080A2C1A:\n\ - cmp r2, #0x1F\n\ - ble _080A2C20\n\ - mov r2, #0x1F\n\ -_080A2C20:\n\ - cmp r3, #0x1F\n\ - ble _080A2C26\n\ - mov r3, #0x1F\n\ -_080A2C26:\n\ - lsl r0, r3, #10\n\ - lsl r1, r2, #5\n\ - orr r0, r1\n\ - orr r0, r4\n\ - strh r0, [r5]\n\ - add r5, #0x2\n\ - sub r6, #0x1\n\ - cmp r6, #0\n\ - bne _080A2BD6\n\ -_080A2C38:\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); } -#endif void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7) { -- cgit v1.2.3 From 9e43b01a4cb37de903f78135769811bd646f6a3b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 6 Feb 2018 17:42:24 +0100 Subject: match obj update pos2 --- src/sprite.c | 114 +++++++++++++---------------------------------------------- 1 file changed, 24 insertions(+), 90 deletions(-) diff --git a/src/sprite.c b/src/sprite.c index 6d76b9854..8a4729b27 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -240,12 +240,26 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] = AffineAnimCmd_frame, }; -static const s32 sUnknown_082EC6F4[24] = +static const s32 sUnknown_082EC6F4[3][4][2] = { - 8, 8, 0x10, 0x10, 0x20, 0x20, - 0x40, 0x40, 0x10, 8, 0x20, 8, - 0x20, 0x10, 0x40, 0x20, 8, 0x10, - 8, 0x20, 0x10, 0x20, 0x20, 0x40, + { + {8, 8}, + {0x10, 0x10}, + {0x20, 0x20}, + {0x40, 0x40}, + }, + { + {0x10, 8}, + {0x20, 8}, + {0x20, 0x10}, + {0x40, 0x20}, + }, + { + {8, 0x10}, + {8, 0x20}, + {0x10, 0x20}, + {0x20, 0x40}, + }, }; static const struct OamDimensions sOamDimensions[3][4] = @@ -1207,106 +1221,26 @@ s32 sub_8007E28(s32 a0, s32 a1, s32 a2) return a2 - ((u32)(a2 * a1) / (u32)(a0) + var1); } -#ifdef NONMATCHING -void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2) +void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2) { s32 var0, var1, var2; - u8 matrixNum = sprite->oam.matrixNum; + + u32 matrixNum = sprite->oam.matrixNum; if (a1 != 0x800) { - var0 = sUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32]; + var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0]; var1 = var0 << 8; var2 = (var0 << 16) / gOamMatrices[matrixNum].a; sprite->pos2.x = sub_8007E28(var1, var2, a1); } if (a2 != 0x800) { - var0 = sUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)]; + var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1]; var1 = var0 << 8; var2 = (var0 << 16) / gOamMatrices[matrixNum].d; sprite->pos2.y = sub_8007E28(var1, var2, a2); } } -#else -__attribute__((naked)) -void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - adds r5, r0, 0\n\ - adds r6, r1, 0\n\ - mov r8, r2\n\ - ldrb r1, [r5, 0x3]\n\ - lsls r0, r1, 26\n\ - lsrs r7, r0, 27\n\ - movs r0, 0x80\n\ - lsls r0, 4\n\ - mov r9, r0\n\ - cmp r6, r9\n\ - beq _08007EA2\n\ - ldr r2, =sUnknown_082EC6F4\n\ - lsrs r1, 6\n\ - lsls r1, 3\n\ - ldrb r0, [r5, 0x1]\n\ - lsrs r0, 6\n\ - lsls r0, 5\n\ - adds r1, r0\n\ - adds r1, r2\n\ - ldr r0, [r1]\n\ - lsls r4, r0, 8\n\ - lsls r0, 16\n\ - ldr r2, =gOamMatrices\n\ - lsls r1, r7, 3\n\ - adds r1, r2\n\ - movs r2, 0\n\ - ldrsh r1, [r1, r2]\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - adds r0, r4, 0\n\ - adds r2, r6, 0\n\ - bl sub_8007E28\n\ - strh r0, [r5, 0x24]\n\ -_08007EA2:\n\ - cmp r8, r9\n\ - beq _08007EDA\n\ - ldr r2, =sUnknown_082EC6F4\n\ - ldrb r1, [r5, 0x3]\n\ - lsrs r1, 6\n\ - lsls r1, 3\n\ - ldrb r0, [r5, 0x1]\n\ - lsrs r0, 6\n\ - lsls r0, 5\n\ - adds r1, r0\n\ - adds r2, 0x4\n\ - adds r1, r2\n\ - ldr r0, [r1]\n\ - lsls r4, r0, 8\n\ - lsls r0, 16\n\ - ldr r2, =gOamMatrices\n\ - lsls r1, r7, 3\n\ - adds r1, r2\n\ - movs r2, 0x6\n\ - ldrsh r1, [r1, r2]\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - adds r0, r4, 0\n\ - mov r2, r8\n\ - bl sub_8007E28\n\ - strh r0, [r5, 0x26]\n\ -_08007EDA:\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif // NONMATCHING void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip) { -- cgit v1.2.3 From ab5977e7e4148afdb8b863d7b072b02f835ac831 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 6 Feb 2018 18:15:10 +0100 Subject: match item use func --- src/item_use.c | 165 ++++----------------------------------------------------- 1 file changed, 9 insertions(+), 156 deletions(-) diff --git a/src/item_use.c b/src/item_use.c index 8fe705a50..29676b13b 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -92,6 +92,7 @@ extern u8 gBankInMenu; extern u16 gBattlePartyID[]; extern void sub_81B89F0(void); extern u8 GetItemEffectType(u16); +extern struct MapConnection *sub_8088A8C(s16, s16); void MapPostLoadHook_UseItem(void); extern void sub_80AF6D4(void); @@ -379,12 +380,12 @@ bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId) newDistanceX = distanceX - x; distanceY = (u16)events->bgEvents[i].y + 7; newDistanceY = distanceY - y; - + if ((u16)(newDistanceX + 7) < 15 && (newDistanceY >= -5) && (newDistanceY < 6)) sub_80FD8E0(taskId, newDistanceX, newDistanceY); } } - + sub_80FD7C8(taskId); if (gTasks[taskId].data[2] == TRUE) return TRUE; @@ -453,8 +454,6 @@ bool8 sub_80FD730(struct MapConnection *connection, int x, int y) return sub_80FD6D4(mapHeader->events, localX, localY); } -// weird math -#ifdef NONMATCHING void sub_80FD7C8(u8 taskId) { s16 x, y; @@ -462,15 +461,18 @@ void sub_80FD7C8(u8 taskId) s16 width = gMapHeader.mapData->width + 7; s16 height = gMapHeader.mapData->height + 7; + s16 var1 = 7; + s16 var2 = 7; + PlayerGetDestCoords(&x, &y); for (curX = x - 7; curX <= x + 7; curX++) { for (curY = y - 5; curY <= y + 5; curY++) { - if (7 > curX + if (var1 > curX || curX >= width - || 7 > curY + || var2 > curY || curY >= height) { struct MapConnection *conn = sub_8088A8C(curX, curY); @@ -480,155 +482,6 @@ void sub_80FD7C8(u8 taskId) } } } -#else -__attribute__((naked)) -void sub_80FD7C8(u8 taskId) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x4]\n\ - ldr r0, =gMapHeader\n\ - ldr r1, [r0]\n\ - ldr r0, [r1]\n\ - adds r0, 0x7\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x8]\n\ - ldr r0, [r1, 0x4]\n\ - adds r0, 0x7\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0xC]\n\ - mov r4, sp\n\ - adds r4, 0x2\n\ - mov r0, sp\n\ - adds r1, r4, 0\n\ - bl PlayerGetDestCoords\n\ - mov r0, sp\n\ - ldrh r0, [r0]\n\ - subs r0, 0x7\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - asrs r0, 16\n\ - mov r1, sp\n\ - movs r2, 0\n\ - ldrsh r1, [r1, r2]\n\ - adds r1, 0x7\n\ - cmp r0, r1\n\ - bgt _080FD8CC\n\ -_080FD816:\n\ - mov r5, sp\n\ - ldrh r0, [r5, 0x2]\n\ - subs r0, 0x5\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - lsls r2, r4, 16\n\ - asrs r1, r2, 16\n\ - movs r6, 0x2\n\ - ldrsh r0, [r5, r6]\n\ - adds r0, 0x5\n\ - lsls r3, 16\n\ - mov r8, r3\n\ - cmp r1, r0\n\ - bgt _080FD8B6\n\ - movs r0, 0x7\n\ - str r0, [sp, 0x10]\n\ - mov r1, r8\n\ - asrs r1, 16\n\ - mov r9, r1\n\ - mov r10, r0\n\ -_080FD83E:\n\ - ldr r3, [sp, 0x10]\n\ - cmp r3, r9\n\ - bgt _080FD860\n\ - ldr r5, [sp, 0x8]\n\ - lsls r0, r5, 16\n\ - asrs r0, 16\n\ - cmp r9, r0\n\ - bge _080FD860\n\ - asrs r1, r2, 16\n\ - cmp r10, r1\n\ - bgt _080FD860\n\ - ldr r6, [sp, 0xC]\n\ - lsls r0, r6, 16\n\ - asrs r0, 16\n\ - lsls r7, r4, 16\n\ - cmp r1, r0\n\ - blt _080FD89E\n\ -_080FD860:\n\ - mov r0, r8\n\ - asrs r5, r0, 16\n\ - lsls r4, 16\n\ - asrs r6, r4, 16\n\ - adds r0, r5, 0\n\ - adds r1, r6, 0\n\ - bl sub_8088A8C\n\ - adds r7, r4, 0\n\ - cmp r0, 0\n\ - beq _080FD89E\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - bl sub_80FD730\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bne _080FD89E\n\ - mov r0, sp\n\ - ldrh r1, [r0]\n\ - subs r1, r5, r1\n\ - lsls r1, 16\n\ - asrs r1, 16\n\ - ldrh r2, [r0, 0x2]\n\ - subs r2, r6, r2\n\ - lsls r2, 16\n\ - asrs r2, 16\n\ - ldr r0, [sp, 0x4]\n\ - bl sub_80FD8E0\n\ -_080FD89E:\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - adds r0, r7, r1\n\ - lsrs r4, r0, 16\n\ - lsls r2, r4, 16\n\ - asrs r1, r2, 16\n\ - mov r3, sp\n\ - movs r5, 0x2\n\ - ldrsh r0, [r3, r5]\n\ - adds r0, 0x5\n\ - cmp r1, r0\n\ - ble _080FD83E\n\ -_080FD8B6:\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - add r1, r8\n\ - lsrs r3, r1, 16\n\ - asrs r1, 16\n\ - mov r0, sp\n\ - movs r6, 0\n\ - ldrsh r0, [r0, r6]\n\ - adds r0, 0x7\n\ - cmp r1, r0\n\ - ble _080FD816\n\ -_080FD8CC:\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_80FD8E0(u8 taskId, s16 x, s16 y) { @@ -992,7 +845,7 @@ void ItemUseOutOfBattle_Repel(u8 taskId) void sub_80FE124(u8 taskId) { s16* data = gTasks[taskId].data; - + if (++data[8] > 7) { data[8] = 0; -- cgit v1.2.3 From 89e61707485072885fbb5bca4b779a7d3b4e1842 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 11:46:34 -0600 Subject: remove some redundant .pal files --- .../battle_anims/sprites/smokescreen_impact.pal | 19 -- graphics/battle_interface/ball_display.pal | 19 -- graphics/battle_interface/ball_status_bar.pal | 19 -- graphics/battle_interface/unk_battlebox.pal | 19 -- graphics/battle_interface/unused_window.pal | 19 -- graphics/berry_blender/arrow.pal | 19 -- graphics/berry_blender/center.pal | 19 -- graphics/berry_blender/outer.pal | 19 -- graphics/birch_speech/birch.pal | 19 -- graphics/decorations/decor_attract_mat.pal | 19 -- graphics/decorations/decor_big_plant.pal | 19 -- graphics/decorations/decor_blastoise_doll.pal | 19 -- graphics/decorations/decor_blue_brick.pal | 19 -- graphics/decorations/decor_blue_tent.pal | 19 -- graphics/decorations/decor_breakable_door.pal | 19 -- graphics/decorations/decor_brick_desk.pal | 19 -- graphics/decorations/decor_camp_desk.pal | 19 -- graphics/decorations/decor_charizard_doll.pal | 19 -- graphics/decorations/decor_colorful_plant.pal | 19 -- graphics/decorations/decor_comfort_desk.pal | 19 -- graphics/decorations/decor_fire_blast_mat.pal | 19 -- graphics/decorations/decor_fissure_mat.pal | 19 -- graphics/decorations/decor_glass_ornament.pal | 19 -- graphics/decorations/decor_gorgeous_plant.pal | 19 -- graphics/decorations/decor_hard_desk.pal | 19 -- graphics/decorations/decor_heavy_desk.pal | 19 -- graphics/decorations/decor_lapras_doll.pal | 19 -- graphics/decorations/decor_powder_snow_mat.pal | 19 -- graphics/decorations/decor_pretty_desk.pal | 19 -- graphics/decorations/decor_pretty_flowers.pal | 19 -- graphics/decorations/decor_ragged_desk.pal | 19 -- graphics/decorations/decor_red_brick.pal | 19 -- graphics/decorations/decor_red_plant.pal | 19 -- graphics/decorations/decor_red_tent.pal | 19 -- graphics/decorations/decor_regice_doll.pal | 19 -- graphics/decorations/decor_regirock_doll.pal | 19 -- graphics/decorations/decor_registeel_doll.pal | 19 -- graphics/decorations/decor_rhydon_doll.pal | 19 -- graphics/decorations/decor_sand_ornament.pal | 19 -- graphics/decorations/decor_slide.pal | 19 -- graphics/decorations/decor_snorlax_doll.pal | 19 -- graphics/decorations/decor_solid_board.pal | 19 -- graphics/decorations/decor_spikes_mat.pal | 19 -- graphics/decorations/decor_stand.pal | 19 -- graphics/decorations/decor_surf_mat.pal | 19 -- graphics/decorations/decor_thunder_mat.pal | 19 -- graphics/decorations/decor_tire.pal | 19 -- graphics/decorations/decor_tropical_plant.pal | 19 -- graphics/decorations/decor_venusaur_doll.pal | 19 -- graphics/decorations/decor_wailmer_doll.pal | 19 -- graphics/decorations/decor_yellow_brick.pal | 19 -- graphics/interface/ball/ultra.pal | 19 -- graphics/interface/link_test_digits.pal | 19 -- graphics/interface/unk_textbox_border.pal | 19 -- graphics/interface/wireless_link_display.pal | 19 -- graphics/interface/wireless_link_icon.pal | 19 -- graphics/intro/copyright.pal | 19 -- graphics/intro/intro1_flygon.pal | 19 -- graphics/intro/intro2_bgclouds.pal | 19 -- graphics/intro/intro2_bgnight.pal | 19 -- graphics/intro/intro2_bgtrees.pal | 19 -- graphics/intro/intro2_brendan.pal | 19 -- graphics/intro/intro2_bubbles.pal | 19 -- graphics/intro/intro2_flygon.pal | 19 -- graphics/intro/intro2_grass.pal | 19 -- graphics/intro/intro2_latias.pal | 19 -- graphics/intro/intro2_latios.pal | 19 -- graphics/intro/intro2_manectric.pal | 19 -- graphics/intro/intro2_may.pal | 19 -- graphics/intro/intro2_torchic.pal | 19 -- graphics/intro/intro2_volbeat.pal | 19 -- graphics/intro/intro3_lightning.pal | 19 -- graphics/intro/intro3_pokeball.pal | 259 --------------------- graphics/intro/intro3_streaks.pal | 19 -- graphics/link/minigame_digits.pal | 19 -- graphics/link_games/berrycrush_grinder_base.pal | 19 -- graphics/link_games/berrycrush_timerdigits.pal | 19 -- graphics/link_games/dodrioberry_berrysprites.pal | 19 -- graphics/link_games/dodrioberry_pkmn.pal | 19 -- graphics/link_games/dodrioberry_platform.pal | 19 -- graphics/link_games/dodrioberry_status.pal | 19 -- graphics/link_games/pkmnjump_321start1.pal | 19 -- graphics/link_games/pkmnjump_321start2.pal | 19 -- graphics/link_games/pkmnjump_bg.pal | 19 -- graphics/link_games/pkmnjump_results.pal | 19 -- graphics/link_games/pkmnjump_venusaur.pal | 19 -- graphics/misc/cable_car.pal | 19 -- graphics/misc/clock_small.pal | 19 -- graphics/misc/evo_sparkle.pal | 19 -- graphics/misc/japanese_hof.pal | 19 -- graphics/pokenav/brendan_icon.pal | 19 -- graphics/pokenav/fly_target_icons.pal | 19 -- graphics/pokenav/may_icon.pal | 19 -- graphics/title_screen/emerald_version.pal | 19 -- graphics/title_screen/press_start.pal | 19 -- graphics/unused/old_charmap.pal | 19 -- graphics/wonder_transfers/wonder_card_1.pal | 19 -- graphics/wonder_transfers/wonder_card_2.pal | 19 -- graphics/wonder_transfers/wonder_card_3.pal | 19 -- graphics/wonder_transfers/wonder_card_4.pal | 19 -- graphics/wonder_transfers/wonder_card_5.pal | 19 -- graphics/wonder_transfers/wonder_card_6.pal | 19 -- graphics/wonder_transfers/wonder_card_7.pal | 19 -- graphics/wonder_transfers/wonder_card_8.pal | 19 -- graphics/wonder_transfers/wonder_news_1.pal | 19 -- graphics/wonder_transfers/wonder_news_7.pal | 19 -- graphics/wonder_transfers/wonder_news_8.pal | 19 -- 107 files changed, 2273 deletions(-) delete mode 100644 graphics/battle_anims/sprites/smokescreen_impact.pal delete mode 100644 graphics/battle_interface/ball_display.pal delete mode 100644 graphics/battle_interface/ball_status_bar.pal delete mode 100644 graphics/battle_interface/unk_battlebox.pal delete mode 100644 graphics/battle_interface/unused_window.pal delete mode 100644 graphics/berry_blender/arrow.pal delete mode 100644 graphics/berry_blender/center.pal delete mode 100644 graphics/berry_blender/outer.pal delete mode 100644 graphics/birch_speech/birch.pal delete mode 100644 graphics/decorations/decor_attract_mat.pal delete mode 100644 graphics/decorations/decor_big_plant.pal delete mode 100644 graphics/decorations/decor_blastoise_doll.pal delete mode 100644 graphics/decorations/decor_blue_brick.pal delete mode 100644 graphics/decorations/decor_blue_tent.pal delete mode 100644 graphics/decorations/decor_breakable_door.pal delete mode 100644 graphics/decorations/decor_brick_desk.pal delete mode 100644 graphics/decorations/decor_camp_desk.pal delete mode 100644 graphics/decorations/decor_charizard_doll.pal delete mode 100644 graphics/decorations/decor_colorful_plant.pal delete mode 100644 graphics/decorations/decor_comfort_desk.pal delete mode 100644 graphics/decorations/decor_fire_blast_mat.pal delete mode 100644 graphics/decorations/decor_fissure_mat.pal delete mode 100644 graphics/decorations/decor_glass_ornament.pal delete mode 100644 graphics/decorations/decor_gorgeous_plant.pal delete mode 100644 graphics/decorations/decor_hard_desk.pal delete mode 100644 graphics/decorations/decor_heavy_desk.pal delete mode 100644 graphics/decorations/decor_lapras_doll.pal delete mode 100644 graphics/decorations/decor_powder_snow_mat.pal delete mode 100644 graphics/decorations/decor_pretty_desk.pal delete mode 100644 graphics/decorations/decor_pretty_flowers.pal delete mode 100644 graphics/decorations/decor_ragged_desk.pal delete mode 100644 graphics/decorations/decor_red_brick.pal delete mode 100644 graphics/decorations/decor_red_plant.pal delete mode 100644 graphics/decorations/decor_red_tent.pal delete mode 100644 graphics/decorations/decor_regice_doll.pal delete mode 100644 graphics/decorations/decor_regirock_doll.pal delete mode 100644 graphics/decorations/decor_registeel_doll.pal delete mode 100644 graphics/decorations/decor_rhydon_doll.pal delete mode 100644 graphics/decorations/decor_sand_ornament.pal delete mode 100644 graphics/decorations/decor_slide.pal delete mode 100644 graphics/decorations/decor_snorlax_doll.pal delete mode 100644 graphics/decorations/decor_solid_board.pal delete mode 100644 graphics/decorations/decor_spikes_mat.pal delete mode 100644 graphics/decorations/decor_stand.pal delete mode 100644 graphics/decorations/decor_surf_mat.pal delete mode 100644 graphics/decorations/decor_thunder_mat.pal delete mode 100644 graphics/decorations/decor_tire.pal delete mode 100644 graphics/decorations/decor_tropical_plant.pal delete mode 100644 graphics/decorations/decor_venusaur_doll.pal delete mode 100644 graphics/decorations/decor_wailmer_doll.pal delete mode 100644 graphics/decorations/decor_yellow_brick.pal delete mode 100644 graphics/interface/ball/ultra.pal delete mode 100644 graphics/interface/link_test_digits.pal delete mode 100644 graphics/interface/unk_textbox_border.pal delete mode 100644 graphics/interface/wireless_link_display.pal delete mode 100644 graphics/interface/wireless_link_icon.pal delete mode 100644 graphics/intro/copyright.pal delete mode 100644 graphics/intro/intro1_flygon.pal delete mode 100644 graphics/intro/intro2_bgclouds.pal delete mode 100644 graphics/intro/intro2_bgnight.pal delete mode 100644 graphics/intro/intro2_bgtrees.pal delete mode 100644 graphics/intro/intro2_brendan.pal delete mode 100644 graphics/intro/intro2_bubbles.pal delete mode 100644 graphics/intro/intro2_flygon.pal delete mode 100644 graphics/intro/intro2_grass.pal delete mode 100644 graphics/intro/intro2_latias.pal delete mode 100644 graphics/intro/intro2_latios.pal delete mode 100644 graphics/intro/intro2_manectric.pal delete mode 100644 graphics/intro/intro2_may.pal delete mode 100644 graphics/intro/intro2_torchic.pal delete mode 100644 graphics/intro/intro2_volbeat.pal delete mode 100644 graphics/intro/intro3_lightning.pal delete mode 100644 graphics/intro/intro3_pokeball.pal delete mode 100644 graphics/intro/intro3_streaks.pal delete mode 100644 graphics/link/minigame_digits.pal delete mode 100644 graphics/link_games/berrycrush_grinder_base.pal delete mode 100644 graphics/link_games/berrycrush_timerdigits.pal delete mode 100644 graphics/link_games/dodrioberry_berrysprites.pal delete mode 100644 graphics/link_games/dodrioberry_pkmn.pal delete mode 100644 graphics/link_games/dodrioberry_platform.pal delete mode 100644 graphics/link_games/dodrioberry_status.pal delete mode 100644 graphics/link_games/pkmnjump_321start1.pal delete mode 100644 graphics/link_games/pkmnjump_321start2.pal delete mode 100644 graphics/link_games/pkmnjump_bg.pal delete mode 100644 graphics/link_games/pkmnjump_results.pal delete mode 100644 graphics/link_games/pkmnjump_venusaur.pal delete mode 100644 graphics/misc/cable_car.pal delete mode 100644 graphics/misc/clock_small.pal delete mode 100644 graphics/misc/evo_sparkle.pal delete mode 100644 graphics/misc/japanese_hof.pal delete mode 100644 graphics/pokenav/brendan_icon.pal delete mode 100644 graphics/pokenav/fly_target_icons.pal delete mode 100644 graphics/pokenav/may_icon.pal delete mode 100644 graphics/title_screen/emerald_version.pal delete mode 100644 graphics/title_screen/press_start.pal delete mode 100644 graphics/unused/old_charmap.pal delete mode 100644 graphics/wonder_transfers/wonder_card_1.pal delete mode 100644 graphics/wonder_transfers/wonder_card_2.pal delete mode 100644 graphics/wonder_transfers/wonder_card_3.pal delete mode 100644 graphics/wonder_transfers/wonder_card_4.pal delete mode 100644 graphics/wonder_transfers/wonder_card_5.pal delete mode 100644 graphics/wonder_transfers/wonder_card_6.pal delete mode 100644 graphics/wonder_transfers/wonder_card_7.pal delete mode 100644 graphics/wonder_transfers/wonder_card_8.pal delete mode 100644 graphics/wonder_transfers/wonder_news_1.pal delete mode 100644 graphics/wonder_transfers/wonder_news_7.pal delete mode 100644 graphics/wonder_transfers/wonder_news_8.pal diff --git a/graphics/battle_anims/sprites/smokescreen_impact.pal b/graphics/battle_anims/sprites/smokescreen_impact.pal deleted file mode 100644 index 64367bdc9..000000000 --- a/graphics/battle_anims/sprites/smokescreen_impact.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 148 49 -57 98 197 -0 0 0 -0 0 0 -0 0 0 -164 156 106 -197 197 148 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/battle_interface/ball_display.pal b/graphics/battle_interface/ball_display.pal deleted file mode 100644 index ea646bb82..000000000 --- a/graphics/battle_interface/ball_display.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -57 57 57 -255 255 255 -213 205 189 -131 131 139 -74 65 90 -82 106 90 -255 180 123 -246 148 115 -222 106 90 -115 255 172 -90 213 131 -255 230 57 -205 172 8 -255 90 57 -172 65 74 diff --git a/graphics/battle_interface/ball_status_bar.pal b/graphics/battle_interface/ball_status_bar.pal deleted file mode 100644 index bc8e8f2bc..000000000 --- a/graphics/battle_interface/ball_status_bar.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -65 65 65 -255 255 222 -222 213 180 -197 189 115 -123 148 131 -82 106 98 -32 57 0 -57 82 65 -255 230 0 -255 156 148 -65 205 255 -0 0 255 -0 255 0 -255 0 0 -106 148 255 diff --git a/graphics/battle_interface/unk_battlebox.pal b/graphics/battle_interface/unk_battlebox.pal deleted file mode 100644 index 862165f3f..000000000 --- a/graphics/battle_interface/unk_battlebox.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 255 -255 255 255 -106 90 115 -0 0 0 -213 230 255 -189 205 238 -238 238 255 -106 172 197 -90 139 180 -123 197 205 -0 0 0 -0 0 0 -123 197 255 -0 0 139 -255 131 131 -164 0 0 diff --git a/graphics/battle_interface/unused_window.pal b/graphics/battle_interface/unused_window.pal deleted file mode 100644 index a5c40e694..000000000 --- a/graphics/battle_interface/unused_window.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -82 106 98 -180 197 213 -148 139 139 -106 98 90 -255 189 57 -230 148 65 -255 255 255 -115 255 172 -74 205 123 -32 164 82 -0 123 41 -255 255 213 -131 205 238 -213 230 230 -82 139 189 diff --git a/graphics/berry_blender/arrow.pal b/graphics/berry_blender/arrow.pal deleted file mode 100644 index 4c975292d..000000000 --- a/graphics/berry_blender/arrow.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -213 222 238 -180 197 230 -148 172 222 -115 148 205 -82 123 197 -49 98 189 -255 180 205 -255 115 98 -255 49 0 -205 65 65 -189 24 24 -148 16 16 -74 57 139 -8 0 82 diff --git a/graphics/berry_blender/center.pal b/graphics/berry_blender/center.pal deleted file mode 100644 index 606c527a3..000000000 --- a/graphics/berry_blender/center.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -205 197 255 -172 164 222 -139 139 189 -106 106 156 -74 82 123 -41 57 90 -213 222 189 -180 189 156 -148 156 123 -115 123 90 -255 172 123 -246 115 82 -238 57 41 -156 24 0 diff --git a/graphics/berry_blender/outer.pal b/graphics/berry_blender/outer.pal deleted file mode 100644 index c3b83cf16..000000000 --- a/graphics/berry_blender/outer.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -213 222 238 -180 197 230 -148 172 222 -115 148 205 -82 123 197 -49 98 189 -255 180 205 -255 115 98 -255 49 0 -205 65 65 -189 24 24 -148 123 197 -74 57 139 -8 0 82 diff --git a/graphics/birch_speech/birch.pal b/graphics/birch_speech/birch.pal deleted file mode 100644 index b89a5861a..000000000 --- a/graphics/birch_speech/birch.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 230 205 -222 189 148 -197 148 115 -106 74 65 -98 98 115 -41 57 65 -180 115 82 -115 74 57 -205 205 222 -148 148 148 -189 156 90 -139 115 57 -74 49 24 -255 255 255 -0 0 24 diff --git a/graphics/decorations/decor_attract_mat.pal b/graphics/decorations/decor_attract_mat.pal deleted file mode 100644 index 6f188b725..000000000 --- a/graphics/decorations/decor_attract_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -255 230 222 -255 197 197 -246 156 156 -213 115 172 -197 189 131 -246 148 205 -123 82 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_big_plant.pal b/graphics/decorations/decor_big_plant.pal deleted file mode 100644 index 6e5a869f3..000000000 --- a/graphics/decorations/decor_big_plant.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -189 230 106 -123 172 74 -90 139 65 -57 98 41 -213 180 106 -180 139 82 -139 98 49 -82 57 32 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_blastoise_doll.pal b/graphics/decorations/decor_blastoise_doll.pal deleted file mode 100644 index a4ad56936..000000000 --- a/graphics/decorations/decor_blastoise_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -197 222 255 -131 189 255 -90 139 213 -57 90 131 -213 156 90 -230 189 131 -156 131 90 -98 82 41 -139 90 74 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_blue_brick.pal b/graphics/decorations/decor_blue_brick.pal deleted file mode 100644 index e8720d82f..000000000 --- a/graphics/decorations/decor_blue_brick.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -156 180 246 -82 131 230 -57 98 189 -24 65 131 -106 106 106 -74 74 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_blue_tent.pal b/graphics/decorations/decor_blue_tent.pal deleted file mode 100644 index e38cb56af..000000000 --- a/graphics/decorations/decor_blue_tent.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -148 172 255 -115 139 238 -65 90 189 -49 57 123 -0 0 0 -197 205 230 -164 164 164 -131 131 131 -90 82 74 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_breakable_door.pal b/graphics/decorations/decor_breakable_door.pal deleted file mode 100644 index 85ece26dc..000000000 --- a/graphics/decorations/decor_breakable_door.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -139 189 255 -106 156 213 -213 189 115 -156 131 41 -123 98 8 -90 74 57 -189 164 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -197 197 197 diff --git a/graphics/decorations/decor_brick_desk.pal b/graphics/decorations/decor_brick_desk.pal deleted file mode 100644 index 16b581470..000000000 --- a/graphics/decorations/decor_brick_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -255 180 82 -230 139 49 -189 90 16 -0 0 0 -0 0 0 -0 0 0 -197 197 197 -148 148 156 -106 106 98 -74 74 74 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_camp_desk.pal b/graphics/decorations/decor_camp_desk.pal deleted file mode 100644 index 0ac362c8a..000000000 --- a/graphics/decorations/decor_camp_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -205 189 123 -172 156 90 -148 131 65 -123 98 32 -82 57 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_charizard_doll.pal b/graphics/decorations/decor_charizard_doll.pal deleted file mode 100644 index 3e3e6bb79..000000000 --- a/graphics/decorations/decor_charizard_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -238 172 98 -255 205 74 -222 156 41 -115 74 24 -164 98 24 -0 0 0 -230 82 65 -180 49 32 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -255 238 197 diff --git a/graphics/decorations/decor_colorful_plant.pal b/graphics/decorations/decor_colorful_plant.pal deleted file mode 100644 index 996b183d2..000000000 --- a/graphics/decorations/decor_colorful_plant.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -205 180 115 -180 139 98 -131 90 57 -156 222 90 -139 189 139 -98 148 98 -41 90 57 -106 189 255 -255 123 172 -255 213 74 -0 0 0 -238 238 238 -0 0 0 diff --git a/graphics/decorations/decor_comfort_desk.pal b/graphics/decorations/decor_comfort_desk.pal deleted file mode 100644 index f686f4b5c..000000000 --- a/graphics/decorations/decor_comfort_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -180 222 139 -139 189 139 -90 139 90 -41 90 41 -115 164 115 -0 0 0 -164 131 65 -115 82 57 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_fire_blast_mat.pal b/graphics/decorations/decor_fire_blast_mat.pal deleted file mode 100644 index ea2301df2..000000000 --- a/graphics/decorations/decor_fire_blast_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -255 180 82 -238 148 41 -213 98 24 -139 65 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_fissure_mat.pal b/graphics/decorations/decor_fissure_mat.pal deleted file mode 100644 index d2a4efb6d..000000000 --- a/graphics/decorations/decor_fissure_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -205 189 131 -189 172 106 -156 139 74 -123 106 41 -98 74 32 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_glass_ornament.pal b/graphics/decorations/decor_glass_ornament.pal deleted file mode 100644 index 1027a9501..000000000 --- a/graphics/decorations/decor_glass_ornament.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -0 0 0 -189 230 255 -156 197 255 -115 164 238 -82 139 189 -57 98 131 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -238 246 246 -0 0 0 diff --git a/graphics/decorations/decor_gorgeous_plant.pal b/graphics/decorations/decor_gorgeous_plant.pal deleted file mode 100644 index 782b82eef..000000000 --- a/graphics/decorations/decor_gorgeous_plant.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -180 222 139 -139 180 139 -90 139 106 -49 82 41 -0 0 0 -148 115 82 -115 82 24 -0 0 0 -230 230 230 -164 164 164 -106 106 106 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_hard_desk.pal b/graphics/decorations/decor_hard_desk.pal deleted file mode 100644 index 7aa8154ab..000000000 --- a/graphics/decorations/decor_hard_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -197 197 197 -156 156 156 -115 115 115 -98 98 98 -74 74 74 -139 139 139 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_heavy_desk.pal b/graphics/decorations/decor_heavy_desk.pal deleted file mode 100644 index c0ec71f09..000000000 --- a/graphics/decorations/decor_heavy_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -180 180 197 -148 148 156 -90 90 90 -255 180 82 -230 139 49 -197 90 8 -90 41 8 -0 0 0 -123 123 123 -65 65 65 -106 106 115 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_lapras_doll.pal b/graphics/decorations/decor_lapras_doll.pal deleted file mode 100644 index c7d2fe61a..000000000 --- a/graphics/decorations/decor_lapras_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -189 230 255 -115 180 246 -74 139 189 -32 90 139 -0 0 0 -0 0 0 -246 197 131 -222 156 98 -197 156 123 -106 74 41 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_powder_snow_mat.pal b/graphics/decorations/decor_powder_snow_mat.pal deleted file mode 100644 index 9f365a3da..000000000 --- a/graphics/decorations/decor_powder_snow_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -238 238 246 -180 205 255 -131 164 205 -197 222 255 -213 238 255 -98 131 172 -148 180 222 -49 82 123 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_pretty_desk.pal b/graphics/decorations/decor_pretty_desk.pal deleted file mode 100644 index 7681a17cc..000000000 --- a/graphics/decorations/decor_pretty_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -189 222 255 -156 197 255 -0 0 0 -131 164 246 -49 82 123 -0 0 0 -0 0 0 -0 0 0 -180 180 180 -131 131 131 -90 90 90 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_pretty_flowers.pal b/graphics/decorations/decor_pretty_flowers.pal deleted file mode 100644 index c3b0ffce9..000000000 --- a/graphics/decorations/decor_pretty_flowers.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -0 0 0 -205 180 74 -156 139 32 -90 74 49 -123 106 41 -115 180 98 -74 123 57 -41 82 32 -255 205 180 -123 74 49 -238 156 139 -246 246 246 -222 197 197 diff --git a/graphics/decorations/decor_ragged_desk.pal b/graphics/decorations/decor_ragged_desk.pal deleted file mode 100644 index bac2a7372..000000000 --- a/graphics/decorations/decor_ragged_desk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 205 98 -49 49 49 -238 222 172 -213 197 139 -180 164 106 -148 131 74 -123 98 49 -82 65 32 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_red_brick.pal b/graphics/decorations/decor_red_brick.pal deleted file mode 100644 index f9d647dda..000000000 --- a/graphics/decorations/decor_red_brick.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -238 123 123 -189 74 65 -148 32 32 -123 16 16 -106 106 106 -74 74 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_red_plant.pal b/graphics/decorations/decor_red_plant.pal deleted file mode 100644 index c3021eee5..000000000 --- a/graphics/decorations/decor_red_plant.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -222 115 123 -189 74 82 -139 32 32 -82 32 16 -0 0 0 -115 164 106 -65 123 57 -24 82 41 -0 0 0 -205 172 98 -156 123 82 -106 82 57 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_red_tent.pal b/graphics/decorations/decor_red_tent.pal deleted file mode 100644 index 61951623b..000000000 --- a/graphics/decorations/decor_red_tent.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -246 123 123 -222 90 90 -180 49 49 -115 49 57 -0 0 0 -197 205 230 -164 164 164 -131 131 131 -90 82 74 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_regice_doll.pal b/graphics/decorations/decor_regice_doll.pal deleted file mode 100644 index 39404f681..000000000 --- a/graphics/decorations/decor_regice_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -238 238 255 -180 189 205 -139 148 172 -82 98 115 -115 123 139 -0 0 0 -0 0 0 -246 180 65 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_regirock_doll.pal b/graphics/decorations/decor_regirock_doll.pal deleted file mode 100644 index 5c39edb2f..000000000 --- a/graphics/decorations/decor_regirock_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -0 0 0 -180 164 98 -123 115 49 -82 74 49 -0 0 0 -205 115 82 -148 65 82 -0 0 0 -189 74 24 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_registeel_doll.pal b/graphics/decorations/decor_registeel_doll.pal deleted file mode 100644 index 328f35a4f..000000000 --- a/graphics/decorations/decor_registeel_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -238 238 238 -197 197 197 -164 164 164 -123 123 131 -82 82 90 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -172 82 65 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_rhydon_doll.pal b/graphics/decorations/decor_rhydon_doll.pal deleted file mode 100644 index 432dae5a9..000000000 --- a/graphics/decorations/decor_rhydon_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -222 222 222 -164 164 164 -189 189 189 -139 139 139 -106 106 106 -82 82 82 -230 197 115 -189 148 74 -131 98 74 -0 0 0 -0 0 0 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_sand_ornament.pal b/graphics/decorations/decor_sand_ornament.pal deleted file mode 100644 index e2fca6e31..000000000 --- a/graphics/decorations/decor_sand_ornament.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -213 197 156 -189 164 90 -148 123 49 -90 74 24 -131 106 32 -172 148 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_slide.pal b/graphics/decorations/decor_slide.pal deleted file mode 100644 index 395694fa3..000000000 --- a/graphics/decorations/decor_slide.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -148 189 238 -106 148 205 -65 115 172 -180 222 255 -0 0 0 -0 0 0 -0 0 0 -213 213 213 -189 189 189 -156 156 156 -106 106 106 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_snorlax_doll.pal b/graphics/decorations/decor_snorlax_doll.pal deleted file mode 100644 index 21026b10d..000000000 --- a/graphics/decorations/decor_snorlax_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -0 0 0 -131 139 164 -82 90 115 -0 0 0 -255 238 222 -255 197 148 -222 156 90 -139 90 49 -172 106 49 -230 172 123 -0 0 0 -238 238 238 -189 189 197 diff --git a/graphics/decorations/decor_solid_board.pal b/graphics/decorations/decor_solid_board.pal deleted file mode 100644 index 9995483b4..000000000 --- a/graphics/decorations/decor_solid_board.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -189 164 98 -156 131 65 -123 90 41 -106 90 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_spikes_mat.pal b/graphics/decorations/decor_spikes_mat.pal deleted file mode 100644 index ec37e1fe0..000000000 --- a/graphics/decorations/decor_spikes_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 213 98 -49 49 49 -0 0 0 -148 197 148 -106 172 115 -82 148 90 -139 156 98 -222 205 139 -180 164 98 -205 189 131 -49 98 57 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_stand.pal b/graphics/decorations/decor_stand.pal deleted file mode 100644 index a85f0b7b2..000000000 --- a/graphics/decorations/decor_stand.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -255 180 156 -238 115 106 -197 65 65 -0 0 0 -0 0 0 -0 0 0 -197 197 197 -172 172 172 -131 131 131 -106 106 106 -0 0 0 -0 0 0 -246 246 246 -0 0 0 diff --git a/graphics/decorations/decor_surf_mat.pal b/graphics/decorations/decor_surf_mat.pal deleted file mode 100644 index 17be591b7..000000000 --- a/graphics/decorations/decor_surf_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -205 238 255 -164 205 255 -148 180 255 -115 148 222 -57 90 156 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -246 246 255 -0 0 0 diff --git a/graphics/decorations/decor_thunder_mat.pal b/graphics/decorations/decor_thunder_mat.pal deleted file mode 100644 index fbe488860..000000000 --- a/graphics/decorations/decor_thunder_mat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -0 0 0 -189 222 255 -172 205 238 -139 172 205 -139 156 164 -255 230 123 -90 106 115 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -238 246 255 -0 0 0 diff --git a/graphics/decorations/decor_tire.pal b/graphics/decorations/decor_tire.pal deleted file mode 100644 index 18a3279fc..000000000 --- a/graphics/decorations/decor_tire.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -0 0 0 -238 238 238 -189 189 189 -164 164 164 -131 131 131 -98 98 98 -74 74 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_tropical_plant.pal b/graphics/decorations/decor_tropical_plant.pal deleted file mode 100644 index 4057e7cb2..000000000 --- a/graphics/decorations/decor_tropical_plant.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -197 172 82 -164 139 49 -131 106 16 -82 65 16 -0 0 0 -0 0 0 -148 222 90 -106 180 49 -74 131 24 -32 90 24 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/decorations/decor_venusaur_doll.pal b/graphics/decorations/decor_venusaur_doll.pal deleted file mode 100644 index dcd11bea2..000000000 --- a/graphics/decorations/decor_venusaur_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -197 255 222 -123 189 57 -82 148 24 -74 115 24 -41 82 32 -238 156 139 -213 98 90 -164 74 74 -115 57 65 -230 189 65 -131 98 24 -82 32 41 -246 246 246 diff --git a/graphics/decorations/decor_wailmer_doll.pal b/graphics/decorations/decor_wailmer_doll.pal deleted file mode 100644 index 99347748e..000000000 --- a/graphics/decorations/decor_wailmer_doll.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -0 0 0 -0 0 0 -106 148 172 -74 115 148 -57 98 123 -57 65 106 -230 180 106 -205 148 82 -180 139 57 -115 74 41 -0 0 0 -213 213 213 -246 246 246 -164 164 164 diff --git a/graphics/decorations/decor_yellow_brick.pal b/graphics/decorations/decor_yellow_brick.pal deleted file mode 100644 index cfdd874ad..000000000 --- a/graphics/decorations/decor_yellow_brick.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 197 98 -49 49 49 -255 230 106 -222 197 49 -180 156 8 -148 123 0 -106 106 106 -74 74 74 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/interface/ball/ultra.pal b/graphics/interface/ball/ultra.pal deleted file mode 100644 index 3b7021097..000000000 --- a/graphics/interface/ball/ultra.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 255 -180 139 16 -205 172 32 -230 205 49 -255 238 65 -255 255 255 -148 148 148 -65 65 65 -24 24 24 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 -255 255 255 diff --git a/graphics/interface/link_test_digits.pal b/graphics/interface/link_test_digits.pal deleted file mode 100644 index 5362e8d6d..000000000 --- a/graphics/interface/link_test_digits.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 255 255 diff --git a/graphics/interface/unk_textbox_border.pal b/graphics/interface/unk_textbox_border.pal deleted file mode 100644 index efa37f0a1..000000000 --- a/graphics/interface/unk_textbox_border.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 148 148 -148 189 255 -156 230 255 -205 255 255 -98 106 246 -164 180 172 -197 205 197 -222 230 222 -255 255 255 -0 0 0 -0 0 0 -0 0 0 -98 98 98 -148 148 148 -197 197 197 -0 0 0 diff --git a/graphics/interface/wireless_link_display.pal b/graphics/interface/wireless_link_display.pal deleted file mode 100644 index e880353cf..000000000 --- a/graphics/interface/wireless_link_display.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -255 90 0 -246 139 74 -255 205 164 -238 246 246 -180 222 255 -57 90 123 -115 189 255 -222 222 246 -131 246 180 -106 115 131 -189 197 213 -156 164 180 -74 74 90 -0 0 0 diff --git a/graphics/interface/wireless_link_icon.pal b/graphics/interface/wireless_link_icon.pal deleted file mode 100644 index 4a225886c..000000000 --- a/graphics/interface/wireless_link_icon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -172 180 255 -131 148 164 -238 246 246 -180 180 189 -74 90 106 -255 0 0 -255 180 131 -255 255 255 -0 0 0 -238 246 246 -238 246 246 -238 246 246 -238 246 246 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/copyright.pal b/graphics/intro/copyright.pal deleted file mode 100644 index 4219d4394..000000000 --- a/graphics/intro/copyright.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 32 32 -24 57 57 -49 82 82 -82 106 106 -106 131 131 -139 156 156 -164 180 180 -197 205 205 -222 230 230 -255 255 255 diff --git a/graphics/intro/intro1_flygon.pal b/graphics/intro/intro1_flygon.pal deleted file mode 100644 index dcfc242a5..000000000 --- a/graphics/intro/intro1_flygon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -74 74 82 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro2_bgclouds.pal b/graphics/intro/intro2_bgclouds.pal deleted file mode 100644 index 6b312a16c..000000000 --- a/graphics/intro/intro2_bgclouds.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -230 246 255 -205 238 255 -180 230 255 -164 222 255 -139 213 255 -115 205 255 -98 197 255 -230 230 255 -246 255 255 -213 222 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro2_bgnight.pal b/graphics/intro/intro2_bgnight.pal deleted file mode 100644 index 765aad45a..000000000 --- a/graphics/intro/intro2_bgnight.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -82 90 148 -148 131 164 -57 74 123 -131 106 156 -98 90 123 -156 164 197 -139 148 172 -90 131 139 -189 197 213 -90 115 164 -230 230 82 -131 131 164 -246 246 123 diff --git a/graphics/intro/intro2_bgtrees.pal b/graphics/intro/intro2_bgtrees.pal deleted file mode 100644 index 5c506481a..000000000 --- a/graphics/intro/intro2_bgtrees.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -156 189 246 -172 205 246 -197 230 255 -213 246 255 -238 255 255 -156 180 172 -197 197 156 -172 189 164 -98 139 98 -98 156 57 -123 164 131 -156 213 82 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro2_brendan.pal b/graphics/intro/intro2_brendan.pal deleted file mode 100644 index a948fb920..000000000 --- a/graphics/intro/intro2_brendan.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -82 74 74 -139 139 123 -197 189 222 -255 255 255 -230 49 0 -246 148 0 -0 0 0 -255 213 148 -222 164 139 -0 0 0 -246 57 131 -189 57 115 -131 255 131 -82 197 90 -131 164 65 diff --git a/graphics/intro/intro2_bubbles.pal b/graphics/intro/intro2_bubbles.pal deleted file mode 100644 index 85c483666..000000000 --- a/graphics/intro/intro2_bubbles.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -106 148 98 -0 41 82 -255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -139 172 255 -106 148 222 -82 123 189 -49 98 156 -24 74 123 -0 49 98 -180 0 0 diff --git a/graphics/intro/intro2_flygon.pal b/graphics/intro/intro2_flygon.pal deleted file mode 100644 index 09607ac17..000000000 --- a/graphics/intro/intro2_flygon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -82 74 74 -139 139 123 -197 189 222 -255 255 255 -164 98 106 -238 57 115 -255 106 139 -255 197 180 -246 255 139 -213 238 106 -172 213 65 -164 222 139 -123 197 115 -90 148 82 -0 0 0 diff --git a/graphics/intro/intro2_grass.pal b/graphics/intro/intro2_grass.pal deleted file mode 100644 index 389977abf..000000000 --- a/graphics/intro/intro2_grass.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -74 82 82 -90 123 123 -205 205 197 -255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -106 164 98 -115 197 98 -164 230 90 diff --git a/graphics/intro/intro2_latias.pal b/graphics/intro/intro2_latias.pal deleted file mode 100644 index 0af96be29..000000000 --- a/graphics/intro/intro2_latias.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -123 106 106 -115 131 164 -222 213 238 -255 255 255 -213 65 57 -238 106 32 -172 74 65 -255 90 65 -180 172 197 -189 139 57 -189 98 41 -90 115 180 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro2_latios.pal b/graphics/intro/intro2_latios.pal deleted file mode 100644 index bb51c0a7d..000000000 --- a/graphics/intro/intro2_latios.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -123 106 106 -115 131 164 -222 213 238 -255 255 255 -106 131 230 -139 197 255 -90 115 180 -139 156 230 -180 172 197 -238 82 32 -238 41 24 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro2_manectric.pal b/graphics/intro/intro2_manectric.pal deleted file mode 100644 index c6bf97aa3..000000000 --- a/graphics/intro/intro2_manectric.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -82 74 74 -139 139 123 -197 189 222 -255 255 255 -230 49 0 -246 148 0 -0 0 0 -255 255 180 -246 246 90 -205 213 49 -148 123 8 -131 164 255 -106 106 255 -41 74 213 -0 0 0 diff --git a/graphics/intro/intro2_may.pal b/graphics/intro/intro2_may.pal deleted file mode 100644 index 1ff2ecd1d..000000000 --- a/graphics/intro/intro2_may.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -82 74 74 -139 139 123 -197 189 222 -255 255 255 -82 197 0 -148 246 98 -98 98 131 -255 213 148 -222 164 139 -180 172 115 -246 90 90 -189 57 115 -131 255 65 -82 197 90 -131 164 65 diff --git a/graphics/intro/intro2_torchic.pal b/graphics/intro/intro2_torchic.pal deleted file mode 100644 index 860b76b60..000000000 --- a/graphics/intro/intro2_torchic.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -82 74 74 -139 139 123 -197 189 222 -255 255 255 -131 98 41 -230 98 32 -238 148 74 -246 197 115 -255 255 148 -255 213 0 -205 189 49 -255 246 205 -255 213 148 -222 180 115 -0 0 0 diff --git a/graphics/intro/intro2_volbeat.pal b/graphics/intro/intro2_volbeat.pal deleted file mode 100644 index 8d2464800..000000000 --- a/graphics/intro/intro2_volbeat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -82 74 74 -139 139 123 -197 189 222 -255 255 255 -131 98 41 -230 98 32 -238 148 74 -246 197 115 -255 255 148 -255 213 0 -205 189 49 -238 156 255 -197 115 230 -156 82 213 -0 0 0 diff --git a/graphics/intro/intro3_lightning.pal b/graphics/intro/intro3_lightning.pal deleted file mode 100644 index 16aae4be3..000000000 --- a/graphics/intro/intro3_lightning.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -74 189 172 -255 255 148 -255 213 0 -205 189 49 -255 255 255 -82 74 74 -115 106 82 -148 139 98 -180 180 115 -213 213 131 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro3_pokeball.pal b/graphics/intro/intro3_pokeball.pal deleted file mode 100644 index d520a5e82..000000000 --- a/graphics/intro/intro3_pokeball.pal +++ /dev/null @@ -1,259 +0,0 @@ -JASC-PAL -0100 -256 -255 255 255 -0 0 0 -49 41 24 -106 90 57 -164 139 90 -222 98 57 -131 131 189 -255 255 255 -74 32 16 -148 65 32 -41 41 57 -82 82 123 -82 82 82 -164 164 164 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/intro3_streaks.pal b/graphics/intro/intro3_streaks.pal deleted file mode 100644 index 21ae1e434..000000000 --- a/graphics/intro/intro3_streaks.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 255 -0 0 0 -255 230 74 -255 230 98 -255 238 123 -255 238 148 -255 246 172 -255 255 197 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 255 255 diff --git a/graphics/link/minigame_digits.pal b/graphics/link/minigame_digits.pal deleted file mode 100644 index e27640830..000000000 --- a/graphics/link/minigame_digits.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -205 205 205 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/link_games/berrycrush_grinder_base.pal b/graphics/link_games/berrycrush_grinder_base.pal deleted file mode 100644 index 23b7036da..000000000 --- a/graphics/link_games/berrycrush_grinder_base.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 189 189 -148 131 82 -180 164 115 -205 189 148 -213 205 172 -230 222 189 -246 238 205 -255 255 238 -98 106 115 -115 123 131 -0 0 0 -0 90 16 -255 0 0 -49 82 205 -172 164 131 -65 74 90 diff --git a/graphics/link_games/berrycrush_timerdigits.pal b/graphics/link_games/berrycrush_timerdigits.pal deleted file mode 100644 index 956db48b1..000000000 --- a/graphics/link_games/berrycrush_timerdigits.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -148 222 164 -164 230 172 -180 238 189 -197 246 205 -213 255 222 -238 255 238 -205 106 255 -172 82 222 -148 148 148 -123 123 123 -255 0 255 -255 0 255 -255 0 255 -180 189 189 -255 255 255 diff --git a/graphics/link_games/dodrioberry_berrysprites.pal b/graphics/link_games/dodrioberry_berrysprites.pal deleted file mode 100644 index 98266fb46..000000000 --- a/graphics/link_games/dodrioberry_berrysprites.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -230 255 255 -65 65 65 -156 156 230 -115 115 189 -139 246 213 -98 213 172 -255 213 57 -246 172 57 -238 238 238 -0 148 213 -230 131 49 -0 156 189 -255 148 139 -0 230 255 -213 98 90 -0 238 255 diff --git a/graphics/link_games/dodrioberry_pkmn.pal b/graphics/link_games/dodrioberry_pkmn.pal deleted file mode 100644 index ed27897b7..000000000 --- a/graphics/link_games/dodrioberry_pkmn.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -238 255 238 -41 41 41 -255 197 115 -230 164 74 -115 90 65 -246 131 164 -172 74 74 -255 238 189 -213 197 148 -115 106 82 -148 148 148 -106 98 90 -255 205 230 -180 139 90 -0 0 0 -255 255 255 diff --git a/graphics/link_games/dodrioberry_platform.pal b/graphics/link_games/dodrioberry_platform.pal deleted file mode 100644 index fc1f6a7e8..000000000 --- a/graphics/link_games/dodrioberry_platform.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -230 246 255 -255 255 255 -238 255 255 -246 255 255 -230 230 246 -222 238 246 -222 246 246 -238 238 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/link_games/dodrioberry_status.pal b/graphics/link_games/dodrioberry_status.pal deleted file mode 100644 index 028e4e20a..000000000 --- a/graphics/link_games/dodrioberry_status.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -230 255 255 -65 65 65 -255 255 189 -255 238 115 -255 197 0 -197 197 213 -164 164 180 -131 131 148 -255 197 197 -255 139 139 -255 49 49 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 49 0 diff --git a/graphics/link_games/pkmnjump_321start1.pal b/graphics/link_games/pkmnjump_321start1.pal deleted file mode 100644 index 9fa1875d3..000000000 --- a/graphics/link_games/pkmnjump_321start1.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -156 213 230 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -32 32 32 -131 49 49 -230 65 41 -156 65 65 -255 90 74 -172 115 57 -255 189 74 -255 255 255 diff --git a/graphics/link_games/pkmnjump_321start2.pal b/graphics/link_games/pkmnjump_321start2.pal deleted file mode 100644 index 9fa1875d3..000000000 --- a/graphics/link_games/pkmnjump_321start2.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -156 213 230 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -32 32 32 -131 49 49 -230 65 41 -156 65 65 -255 90 74 -172 115 57 -255 189 74 -255 255 255 diff --git a/graphics/link_games/pkmnjump_bg.pal b/graphics/link_games/pkmnjump_bg.pal deleted file mode 100644 index aed4bcc8b..000000000 --- a/graphics/link_games/pkmnjump_bg.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -156 156 197 -106 222 156 -106 230 230 -139 230 255 -156 238 255 -197 246 255 -189 213 131 -230 213 115 -238 230 131 -246 246 156 -222 222 172 -106 230 172 -255 0 255 -255 0 255 -255 0 255 -255 0 255 diff --git a/graphics/link_games/pkmnjump_results.pal b/graphics/link_games/pkmnjump_results.pal deleted file mode 100644 index aca961de3..000000000 --- a/graphics/link_games/pkmnjump_results.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -156 156 197 -148 197 115 -172 222 123 -213 180 57 -238 205 65 -230 164 131 -246 189 172 -98 98 82 -164 148 90 -205 189 82 -255 238 74 -156 164 230 -90 90 106 -172 148 106 -230 205 123 -180 189 246 diff --git a/graphics/link_games/pkmnjump_venusaur.pal b/graphics/link_games/pkmnjump_venusaur.pal deleted file mode 100644 index a3514b004..000000000 --- a/graphics/link_games/pkmnjump_venusaur.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -213 213 213 -32 98 49 -98 156 115 -90 205 148 -139 238 189 -139 57 0 -189 106 49 -16 16 16 -230 74 65 -255 131 115 -156 246 139 -222 205 49 -255 238 82 -65 164 24 -106 205 65 -255 255 255 diff --git a/graphics/misc/cable_car.pal b/graphics/misc/cable_car.pal deleted file mode 100644 index 64985f6da..000000000 --- a/graphics/misc/cable_car.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -164 222 222 -98 139 139 -139 180 180 -131 131 139 -98 98 123 -65 74 106 -41 49 90 -139 205 246 -98 172 238 -255 255 148 -238 213 82 -213 172 16 -180 106 0 -139 65 0 diff --git a/graphics/misc/clock_small.pal b/graphics/misc/clock_small.pal deleted file mode 100644 index 3398fcbe3..000000000 --- a/graphics/misc/clock_small.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 139 90 -0 0 0 -57 57 57 -123 123 123 -189 189 189 -255 255 255 -255 65 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/misc/evo_sparkle.pal b/graphics/misc/evo_sparkle.pal deleted file mode 100644 index 7ccbffd1d..000000000 --- a/graphics/misc/evo_sparkle.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -49 82 82 -82 106 106 -106 131 131 -139 156 156 -164 180 180 -197 205 205 -222 230 230 -255 255 255 diff --git a/graphics/misc/japanese_hof.pal b/graphics/misc/japanese_hof.pal deleted file mode 100644 index f50aa5341..000000000 --- a/graphics/misc/japanese_hof.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -131 238 197 -255 32 32 -115 222 180 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -65 65 65 -255 255 255 diff --git a/graphics/pokenav/brendan_icon.pal b/graphics/pokenav/brendan_icon.pal deleted file mode 100644 index a83ed903f..000000000 --- a/graphics/pokenav/brendan_icon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 213 180 -255 197 148 -222 148 115 -123 65 65 -57 74 123 -41 57 98 -24 41 82 -16 32 57 -222 230 238 -115 205 115 -74 148 82 -255 98 90 -197 65 65 -255 255 255 -0 0 0 diff --git a/graphics/pokenav/fly_target_icons.pal b/graphics/pokenav/fly_target_icons.pal deleted file mode 100644 index c0f2cc4e9..000000000 --- a/graphics/pokenav/fly_target_icons.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 0 0 -0 0 0 -0 0 0 -205 205 205 -0 0 0 -0 0 0 -255 213 222 -255 164 197 -197 98 115 -131 131 123 -98 90 90 -49 49 65 -0 0 0 -0 0 0 -255 255 255 diff --git a/graphics/pokenav/may_icon.pal b/graphics/pokenav/may_icon.pal deleted file mode 100644 index 2833b2613..000000000 --- a/graphics/pokenav/may_icon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 222 205 -222 164 148 -205 131 115 -123 90 82 -98 98 115 -41 57 65 -164 106 82 -74 49 57 -205 205 222 -106 213 65 -65 172 32 -255 98 90 -197 65 65 -255 255 255 -0 0 0 diff --git a/graphics/title_screen/emerald_version.pal b/graphics/title_screen/emerald_version.pal deleted file mode 100644 index c5ed9a582..000000000 --- a/graphics/title_screen/emerald_version.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 74 238 -156 156 156 -90 90 90 -222 222 222 -24 16 24 -74 74 74 -238 238 238 -41 41 41 -172 172 172 -106 106 106 -189 189 189 -139 139 139 -205 205 205 -123 123 123 -65 57 57 -255 255 255 diff --git a/graphics/title_screen/press_start.pal b/graphics/title_screen/press_start.pal deleted file mode 100644 index 561ab8f8f..000000000 --- a/graphics/title_screen/press_start.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 156 98 -0 0 0 -148 156 164 -180 189 189 -222 222 238 -255 255 255 -255 0 0 -255 0 0 -255 0 0 -255 0 0 -255 0 0 -255 0 0 -255 0 0 -255 0 0 -255 0 0 -255 0 0 diff --git a/graphics/unused/old_charmap.pal b/graphics/unused/old_charmap.pal deleted file mode 100644 index cbcd5de4d..000000000 --- a/graphics/unused/old_charmap.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 255 -24 0 0 -41 0 0 -255 255 255 -0 0 0 -255 255 255 -255 65 0 -0 0 0 -255 0 0 -255 24 0 -255 65 0 -255 98 0 -255 131 0 -255 180 0 -255 222 0 -255 255 255 diff --git a/graphics/wonder_transfers/wonder_card_1.pal b/graphics/wonder_transfers/wonder_card_1.pal deleted file mode 100644 index 9c5ef9b26..000000000 --- a/graphics/wonder_transfers/wonder_card_1.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -213 213 213 -74 74 74 -98 106 106 -213 189 74 -238 213 82 -246 246 213 -255 255 255 -230 230 213 -238 238 213 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 diff --git a/graphics/wonder_transfers/wonder_card_2.pal b/graphics/wonder_transfers/wonder_card_2.pal deleted file mode 100644 index 18c2be3fd..000000000 --- a/graphics/wonder_transfers/wonder_card_2.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -82 82 106 -131 131 139 -197 189 213 -205 230 255 -115 139 197 -49 74 82 -0 0 0 -0 0 0 -222 255 246 -197 255 222 -222 238 255 -156 180 222 -156 106 115 -172 139 164 -255 255 255 diff --git a/graphics/wonder_transfers/wonder_card_3.pal b/graphics/wonder_transfers/wonder_card_3.pal deleted file mode 100644 index db02d5d4b..000000000 --- a/graphics/wonder_transfers/wonder_card_3.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -82 82 106 -131 131 139 -164 156 172 -197 189 213 -246 238 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 230 230 -255 197 197 -255 164 164 -246 139 139 -238 90 90 -255 255 255 diff --git a/graphics/wonder_transfers/wonder_card_4.pal b/graphics/wonder_transfers/wonder_card_4.pal deleted file mode 100644 index bfbf036a5..000000000 --- a/graphics/wonder_transfers/wonder_card_4.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -82 82 106 -131 131 139 -164 156 172 -197 189 213 -246 238 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -238 255 230 -213 255 189 -189 230 156 -164 213 131 -148 197 106 -255 255 255 diff --git a/graphics/wonder_transfers/wonder_card_5.pal b/graphics/wonder_transfers/wonder_card_5.pal deleted file mode 100644 index fa41ee3b0..000000000 --- a/graphics/wonder_transfers/wonder_card_5.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -82 82 106 -131 131 139 -164 156 172 -197 189 213 -246 238 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -238 246 255 -205 238 246 -180 222 246 -156 197 238 -115 156 197 -255 255 255 diff --git a/graphics/wonder_transfers/wonder_card_6.pal b/graphics/wonder_transfers/wonder_card_6.pal deleted file mode 100644 index 8a71f5846..000000000 --- a/graphics/wonder_transfers/wonder_card_6.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -82 82 106 -131 131 139 -164 156 172 -197 189 213 -246 238 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -238 238 197 -230 230 139 -222 222 115 -213 213 90 -189 189 57 -255 255 255 diff --git a/graphics/wonder_transfers/wonder_card_7.pal b/graphics/wonder_transfers/wonder_card_7.pal deleted file mode 100644 index 01832b5e2..000000000 --- a/graphics/wonder_transfers/wonder_card_7.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -189 123 148 -213 213 213 -74 74 74 -115 123 123 -164 156 90 -164 148 90 -197 197 90 -213 205 90 -222 213 90 -213 213 106 -238 246 98 -230 222 98 -213 205 98 -197 180 98 -238 230 98 -246 238 106 diff --git a/graphics/wonder_transfers/wonder_card_8.pal b/graphics/wonder_transfers/wonder_card_8.pal deleted file mode 100644 index 28a498b57..000000000 --- a/graphics/wonder_transfers/wonder_card_8.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -189 123 148 -213 213 213 -74 74 74 -115 123 123 -156 156 156 -139 139 148 -180 180 197 -197 189 205 -205 205 222 -189 189 189 -197 230 222 -189 213 213 -180 197 197 -156 164 172 -222 222 230 -230 230 238 diff --git a/graphics/wonder_transfers/wonder_news_1.pal b/graphics/wonder_transfers/wonder_news_1.pal deleted file mode 100644 index 970736bbb..000000000 --- a/graphics/wonder_transfers/wonder_news_1.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -90 197 148 -213 213 213 -74 74 74 -98 106 106 -213 189 74 -238 213 82 -246 246 213 -255 255 255 -230 230 213 -238 238 213 -246 246 238 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 diff --git a/graphics/wonder_transfers/wonder_news_7.pal b/graphics/wonder_transfers/wonder_news_7.pal deleted file mode 100644 index 01832b5e2..000000000 --- a/graphics/wonder_transfers/wonder_news_7.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -189 123 148 -213 213 213 -74 74 74 -115 123 123 -164 156 90 -164 148 90 -197 197 90 -213 205 90 -222 213 90 -213 213 106 -238 246 98 -230 222 98 -213 205 98 -197 180 98 -238 230 98 -246 238 106 diff --git a/graphics/wonder_transfers/wonder_news_8.pal b/graphics/wonder_transfers/wonder_news_8.pal deleted file mode 100644 index 28a498b57..000000000 --- a/graphics/wonder_transfers/wonder_news_8.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -189 123 148 -213 213 213 -74 74 74 -115 123 123 -156 156 156 -139 139 148 -180 180 197 -197 189 205 -205 205 222 -189 189 189 -197 230 222 -189 213 213 -180 197 197 -156 164 172 -222 222 230 -230 230 238 -- cgit v1.2.3 From 3ec68d5f79add3bf5c7cf80e9068563f4c8094c8 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 11:51:43 -0600 Subject: reorganize berry graphics files --- data/graphics/berries/berry_graphics.inc | 172 +++++++++++++++---------------- graphics/berries/aguav.png | Bin 0 -> 380 bytes graphics/berries/apicot.png | Bin 0 -> 397 bytes graphics/berries/aspear.png | Bin 0 -> 422 bytes graphics/berries/belue.png | Bin 0 -> 644 bytes graphics/berries/bluk.png | Bin 0 -> 444 bytes graphics/berries/cheri.png | Bin 0 -> 355 bytes graphics/berries/chesto.png | Bin 0 -> 458 bytes graphics/berries/cornn.png | Bin 0 -> 485 bytes graphics/berries/durin.png | Bin 0 -> 801 bytes graphics/berries/enigma.png | Bin 0 -> 497 bytes graphics/berries/figy.png | Bin 0 -> 418 bytes graphics/berries/ganlon.png | Bin 0 -> 387 bytes graphics/berries/grepa.png | Bin 0 -> 397 bytes graphics/berries/hondew.png | Bin 0 -> 534 bytes graphics/berries/iapapa.png | Bin 0 -> 624 bytes graphics/berries/kelpsy.png | Bin 0 -> 412 bytes graphics/berries/lansat.png | Bin 0 -> 474 bytes graphics/berries/leppa.png | Bin 0 -> 369 bytes graphics/berries/liechi.png | Bin 0 -> 561 bytes graphics/berries/lum.png | Bin 0 -> 289 bytes graphics/berries/mago.png | Bin 0 -> 409 bytes graphics/berries/magost.png | Bin 0 -> 392 bytes graphics/berries/nanab.png | Bin 0 -> 363 bytes graphics/berries/nomel.png | Bin 0 -> 430 bytes graphics/berries/oran.png | Bin 0 -> 340 bytes graphics/berries/palettes/aguav.pal | 19 ---- graphics/berries/palettes/apicot.pal | 19 ---- graphics/berries/palettes/aspear.pal | 19 ---- graphics/berries/palettes/belue.pal | 19 ---- graphics/berries/palettes/bluk.pal | 19 ---- graphics/berries/palettes/cheri.pal | 19 ---- graphics/berries/palettes/chesto.pal | 19 ---- graphics/berries/palettes/cornn.pal | 19 ---- graphics/berries/palettes/durin.pal | 19 ---- graphics/berries/palettes/enigma.pal | 19 ---- graphics/berries/palettes/figy.pal | 19 ---- graphics/berries/palettes/ganlon.pal | 19 ---- graphics/berries/palettes/grepa.pal | 19 ---- graphics/berries/palettes/hondew.pal | 19 ---- graphics/berries/palettes/iapapa.pal | 19 ---- graphics/berries/palettes/kelpsy.pal | 19 ---- graphics/berries/palettes/lansat.pal | 19 ---- graphics/berries/palettes/leppa.pal | 19 ---- graphics/berries/palettes/liechi.pal | 19 ---- graphics/berries/palettes/lum.pal | 19 ---- graphics/berries/palettes/mago.pal | 19 ---- graphics/berries/palettes/magost.pal | 19 ---- graphics/berries/palettes/nanab.pal | 19 ---- graphics/berries/palettes/nomel.pal | 19 ---- graphics/berries/palettes/oran.pal | 19 ---- graphics/berries/palettes/pamtre.pal | 19 ---- graphics/berries/palettes/pecha.pal | 19 ---- graphics/berries/palettes/persim.pal | 19 ---- graphics/berries/palettes/petaya.pal | 19 ---- graphics/berries/palettes/pinap.pal | 19 ---- graphics/berries/palettes/pomeg.pal | 19 ---- graphics/berries/palettes/qualot.pal | 19 ---- graphics/berries/palettes/rabuta.pal | 19 ---- graphics/berries/palettes/rawst.pal | 19 ---- graphics/berries/palettes/razz.pal | 19 ---- graphics/berries/palettes/salac.pal | 19 ---- graphics/berries/palettes/sitrus.pal | 19 ---- graphics/berries/palettes/spelon.pal | 19 ---- graphics/berries/palettes/starf.pal | 19 ---- graphics/berries/palettes/tamato.pal | 19 ---- graphics/berries/palettes/watmel.pal | 19 ---- graphics/berries/palettes/wepear.pal | 19 ---- graphics/berries/palettes/wiki.pal | 19 ---- graphics/berries/pamtre.png | Bin 0 -> 539 bytes graphics/berries/pecha.png | Bin 0 -> 363 bytes graphics/berries/persim.png | Bin 0 -> 330 bytes graphics/berries/petaya.png | Bin 0 -> 639 bytes graphics/berries/pics/aguav.png | Bin 380 -> 0 bytes graphics/berries/pics/apicot.png | Bin 397 -> 0 bytes graphics/berries/pics/aspear.png | Bin 422 -> 0 bytes graphics/berries/pics/belue.png | Bin 644 -> 0 bytes graphics/berries/pics/bluk.png | Bin 444 -> 0 bytes graphics/berries/pics/cheri.png | Bin 355 -> 0 bytes graphics/berries/pics/chesto.png | Bin 458 -> 0 bytes graphics/berries/pics/cornn.png | Bin 485 -> 0 bytes graphics/berries/pics/durin.png | Bin 801 -> 0 bytes graphics/berries/pics/enigma.png | Bin 497 -> 0 bytes graphics/berries/pics/figy.png | Bin 418 -> 0 bytes graphics/berries/pics/ganlon.png | Bin 387 -> 0 bytes graphics/berries/pics/grepa.png | Bin 397 -> 0 bytes graphics/berries/pics/hondew.png | Bin 534 -> 0 bytes graphics/berries/pics/iapapa.png | Bin 624 -> 0 bytes graphics/berries/pics/kelpsy.png | Bin 412 -> 0 bytes graphics/berries/pics/lansat.png | Bin 474 -> 0 bytes graphics/berries/pics/leppa.png | Bin 369 -> 0 bytes graphics/berries/pics/liechi.png | Bin 561 -> 0 bytes graphics/berries/pics/lum.png | Bin 289 -> 0 bytes graphics/berries/pics/mago.png | Bin 409 -> 0 bytes graphics/berries/pics/magost.png | Bin 392 -> 0 bytes graphics/berries/pics/nanab.png | Bin 363 -> 0 bytes graphics/berries/pics/nomel.png | Bin 430 -> 0 bytes graphics/berries/pics/oran.png | Bin 340 -> 0 bytes graphics/berries/pics/pamtre.png | Bin 539 -> 0 bytes graphics/berries/pics/pecha.png | Bin 363 -> 0 bytes graphics/berries/pics/persim.png | Bin 330 -> 0 bytes graphics/berries/pics/petaya.png | Bin 639 -> 0 bytes graphics/berries/pics/pinap.png | Bin 491 -> 0 bytes graphics/berries/pics/pomeg.png | Bin 406 -> 0 bytes graphics/berries/pics/qualot.png | Bin 422 -> 0 bytes graphics/berries/pics/rabuta.png | Bin 710 -> 0 bytes graphics/berries/pics/rawst.png | Bin 414 -> 0 bytes graphics/berries/pics/razz.png | Bin 520 -> 0 bytes graphics/berries/pics/salac.png | Bin 519 -> 0 bytes graphics/berries/pics/sitrus.png | Bin 404 -> 0 bytes graphics/berries/pics/spelon.png | Bin 467 -> 0 bytes graphics/berries/pics/starf.png | Bin 440 -> 0 bytes graphics/berries/pics/tamato.png | Bin 642 -> 0 bytes graphics/berries/pics/watmel.png | Bin 636 -> 0 bytes graphics/berries/pics/wepear.png | Bin 400 -> 0 bytes graphics/berries/pics/wiki.png | Bin 429 -> 0 bytes graphics/berries/pinap.png | Bin 0 -> 491 bytes graphics/berries/pomeg.png | Bin 0 -> 406 bytes graphics/berries/qualot.png | Bin 0 -> 422 bytes graphics/berries/rabuta.png | Bin 0 -> 710 bytes graphics/berries/rawst.png | Bin 0 -> 414 bytes graphics/berries/razz.png | Bin 0 -> 520 bytes graphics/berries/salac.png | Bin 0 -> 519 bytes graphics/berries/sitrus.png | Bin 0 -> 404 bytes graphics/berries/spelon.png | Bin 0 -> 467 bytes graphics/berries/starf.png | Bin 0 -> 440 bytes graphics/berries/tamato.png | Bin 0 -> 642 bytes graphics/berries/watmel.png | Bin 0 -> 636 bytes graphics/berries/wepear.png | Bin 0 -> 400 bytes graphics/berries/wiki.png | Bin 0 -> 429 bytes 130 files changed, 86 insertions(+), 903 deletions(-) create mode 100644 graphics/berries/aguav.png create mode 100644 graphics/berries/apicot.png create mode 100644 graphics/berries/aspear.png create mode 100644 graphics/berries/belue.png create mode 100644 graphics/berries/bluk.png create mode 100644 graphics/berries/cheri.png create mode 100644 graphics/berries/chesto.png create mode 100644 graphics/berries/cornn.png create mode 100644 graphics/berries/durin.png create mode 100644 graphics/berries/enigma.png create mode 100644 graphics/berries/figy.png create mode 100644 graphics/berries/ganlon.png create mode 100644 graphics/berries/grepa.png create mode 100644 graphics/berries/hondew.png create mode 100644 graphics/berries/iapapa.png create mode 100644 graphics/berries/kelpsy.png create mode 100644 graphics/berries/lansat.png create mode 100644 graphics/berries/leppa.png create mode 100644 graphics/berries/liechi.png create mode 100644 graphics/berries/lum.png create mode 100644 graphics/berries/mago.png create mode 100644 graphics/berries/magost.png create mode 100644 graphics/berries/nanab.png create mode 100644 graphics/berries/nomel.png create mode 100644 graphics/berries/oran.png delete mode 100644 graphics/berries/palettes/aguav.pal delete mode 100644 graphics/berries/palettes/apicot.pal delete mode 100644 graphics/berries/palettes/aspear.pal delete mode 100644 graphics/berries/palettes/belue.pal delete mode 100644 graphics/berries/palettes/bluk.pal delete mode 100644 graphics/berries/palettes/cheri.pal delete mode 100644 graphics/berries/palettes/chesto.pal delete mode 100644 graphics/berries/palettes/cornn.pal delete mode 100644 graphics/berries/palettes/durin.pal delete mode 100644 graphics/berries/palettes/enigma.pal delete mode 100644 graphics/berries/palettes/figy.pal delete mode 100644 graphics/berries/palettes/ganlon.pal delete mode 100644 graphics/berries/palettes/grepa.pal delete mode 100644 graphics/berries/palettes/hondew.pal delete mode 100644 graphics/berries/palettes/iapapa.pal delete mode 100644 graphics/berries/palettes/kelpsy.pal delete mode 100644 graphics/berries/palettes/lansat.pal delete mode 100644 graphics/berries/palettes/leppa.pal delete mode 100644 graphics/berries/palettes/liechi.pal delete mode 100644 graphics/berries/palettes/lum.pal delete mode 100644 graphics/berries/palettes/mago.pal delete mode 100644 graphics/berries/palettes/magost.pal delete mode 100644 graphics/berries/palettes/nanab.pal delete mode 100644 graphics/berries/palettes/nomel.pal delete mode 100644 graphics/berries/palettes/oran.pal delete mode 100644 graphics/berries/palettes/pamtre.pal delete mode 100644 graphics/berries/palettes/pecha.pal delete mode 100644 graphics/berries/palettes/persim.pal delete mode 100644 graphics/berries/palettes/petaya.pal delete mode 100644 graphics/berries/palettes/pinap.pal delete mode 100644 graphics/berries/palettes/pomeg.pal delete mode 100644 graphics/berries/palettes/qualot.pal delete mode 100644 graphics/berries/palettes/rabuta.pal delete mode 100644 graphics/berries/palettes/rawst.pal delete mode 100644 graphics/berries/palettes/razz.pal delete mode 100644 graphics/berries/palettes/salac.pal delete mode 100644 graphics/berries/palettes/sitrus.pal delete mode 100644 graphics/berries/palettes/spelon.pal delete mode 100644 graphics/berries/palettes/starf.pal delete mode 100644 graphics/berries/palettes/tamato.pal delete mode 100644 graphics/berries/palettes/watmel.pal delete mode 100644 graphics/berries/palettes/wepear.pal delete mode 100644 graphics/berries/palettes/wiki.pal create mode 100644 graphics/berries/pamtre.png create mode 100644 graphics/berries/pecha.png create mode 100644 graphics/berries/persim.png create mode 100644 graphics/berries/petaya.png delete mode 100644 graphics/berries/pics/aguav.png delete mode 100644 graphics/berries/pics/apicot.png delete mode 100644 graphics/berries/pics/aspear.png delete mode 100644 graphics/berries/pics/belue.png delete mode 100644 graphics/berries/pics/bluk.png delete mode 100644 graphics/berries/pics/cheri.png delete mode 100644 graphics/berries/pics/chesto.png delete mode 100644 graphics/berries/pics/cornn.png delete mode 100644 graphics/berries/pics/durin.png delete mode 100644 graphics/berries/pics/enigma.png delete mode 100644 graphics/berries/pics/figy.png delete mode 100644 graphics/berries/pics/ganlon.png delete mode 100644 graphics/berries/pics/grepa.png delete mode 100644 graphics/berries/pics/hondew.png delete mode 100644 graphics/berries/pics/iapapa.png delete mode 100644 graphics/berries/pics/kelpsy.png delete mode 100644 graphics/berries/pics/lansat.png delete mode 100644 graphics/berries/pics/leppa.png delete mode 100644 graphics/berries/pics/liechi.png delete mode 100644 graphics/berries/pics/lum.png delete mode 100644 graphics/berries/pics/mago.png delete mode 100644 graphics/berries/pics/magost.png delete mode 100644 graphics/berries/pics/nanab.png delete mode 100644 graphics/berries/pics/nomel.png delete mode 100644 graphics/berries/pics/oran.png delete mode 100644 graphics/berries/pics/pamtre.png delete mode 100644 graphics/berries/pics/pecha.png delete mode 100644 graphics/berries/pics/persim.png delete mode 100644 graphics/berries/pics/petaya.png delete mode 100644 graphics/berries/pics/pinap.png delete mode 100644 graphics/berries/pics/pomeg.png delete mode 100644 graphics/berries/pics/qualot.png delete mode 100644 graphics/berries/pics/rabuta.png delete mode 100644 graphics/berries/pics/rawst.png delete mode 100644 graphics/berries/pics/razz.png delete mode 100644 graphics/berries/pics/salac.png delete mode 100644 graphics/berries/pics/sitrus.png delete mode 100644 graphics/berries/pics/spelon.png delete mode 100644 graphics/berries/pics/starf.png delete mode 100644 graphics/berries/pics/tamato.png delete mode 100644 graphics/berries/pics/watmel.png delete mode 100644 graphics/berries/pics/wepear.png delete mode 100644 graphics/berries/pics/wiki.png create mode 100644 graphics/berries/pinap.png create mode 100644 graphics/berries/pomeg.png create mode 100644 graphics/berries/qualot.png create mode 100644 graphics/berries/rabuta.png create mode 100644 graphics/berries/rawst.png create mode 100644 graphics/berries/razz.png create mode 100644 graphics/berries/salac.png create mode 100644 graphics/berries/sitrus.png create mode 100644 graphics/berries/spelon.png create mode 100644 graphics/berries/starf.png create mode 100644 graphics/berries/tamato.png create mode 100644 graphics/berries/watmel.png create mode 100644 graphics/berries/wepear.png create mode 100644 graphics/berries/wiki.png diff --git a/data/graphics/berries/berry_graphics.inc b/data/graphics/berries/berry_graphics.inc index 01a7c776d..358cc8fc1 100644 --- a/data/graphics/berries/berry_graphics.inc +++ b/data/graphics/berries/berry_graphics.inc @@ -1,343 +1,343 @@ .align 2 gBerryPic_Cheri:: @ 8D9C3A8 - .incbin "graphics/berries/pics/cheri.4bpp.lz" + .incbin "graphics/berries/cheri.4bpp.lz" .align 2 gBerryPic_Oran:: @ 8D9C4FC - .incbin "graphics/berries/pics/oran.4bpp.lz" + .incbin "graphics/berries/oran.4bpp.lz" .align 2 gBerryPic_Pecha:: @ 8D9C670 - .incbin "graphics/berries/pics/pecha.4bpp.lz" + .incbin "graphics/berries/pecha.4bpp.lz" .align 2 gBerryPic_Rawst:: @ 8D9C7E4 - .incbin "graphics/berries/pics/rawst.4bpp.lz" + .incbin "graphics/berries/rawst.4bpp.lz" .align 2 gBerryPic_Aspear:: @ 8D9C97C - .incbin "graphics/berries/pics/aspear.4bpp.lz" + .incbin "graphics/berries/aspear.4bpp.lz" .align 2 gBerryPic_Leppa:: @ 8D9CB24 - .incbin "graphics/berries/pics/leppa.4bpp.lz" + .incbin "graphics/berries/leppa.4bpp.lz" .align 2 gBerryPic_Chesto:: @ 8D9CC94 - .incbin "graphics/berries/pics/chesto.4bpp.lz" + .incbin "graphics/berries/chesto.4bpp.lz" .align 2 gBerryPic_Persim:: @ 8D9CE78 - .incbin "graphics/berries/pics/persim.4bpp.lz" + .incbin "graphics/berries/persim.4bpp.lz" .align 2 gBerryPic_Lum:: @ 8D9CFC8 - .incbin "graphics/berries/pics/lum.4bpp.lz" + .incbin "graphics/berries/lum.4bpp.lz" .align 2 gBerryPic_Sitrus:: @ 8D9D0E4 - .incbin "graphics/berries/pics/sitrus.4bpp.lz" + .incbin "graphics/berries/sitrus.4bpp.lz" .align 2 gBerryPic_Figy:: @ 8D9D288 - .incbin "graphics/berries/pics/figy.4bpp.lz" + .incbin "graphics/berries/figy.4bpp.lz" .align 2 gBerryPic_Wiki:: @ 8D9D434 - .incbin "graphics/berries/pics/wiki.4bpp.lz" + .incbin "graphics/berries/wiki.4bpp.lz" .align 2 gBerryPic_Mago:: @ 8D9D628 - .incbin "graphics/berries/pics/mago.4bpp.lz" + .incbin "graphics/berries/mago.4bpp.lz" .align 2 gBerryPic_Aguav:: @ 8D9D7DC - .incbin "graphics/berries/pics/aguav.4bpp.lz" + .incbin "graphics/berries/aguav.4bpp.lz" .align 2 gBerryPic_Iapapa:: @ 8D9D950 - .incbin "graphics/berries/pics/iapapa.4bpp.lz" + .incbin "graphics/berries/iapapa.4bpp.lz" .align 2 gBerryPic_Razz:: @ 8D9DC08 - .incbin "graphics/berries/pics/razz.4bpp.lz" + .incbin "graphics/berries/razz.4bpp.lz" .align 2 gBerryPic_Bluk:: @ 8D9DE38 - .incbin "graphics/berries/pics/bluk.4bpp.lz" + .incbin "graphics/berries/bluk.4bpp.lz" .align 2 gBerryPic_Nanab:: @ 8D9E020 - .incbin "graphics/berries/pics/nanab.4bpp.lz" + .incbin "graphics/berries/nanab.4bpp.lz" .align 2 gBerryPic_Wepear:: @ 8D9E194 - .incbin "graphics/berries/pics/wepear.4bpp.lz" + .incbin "graphics/berries/wepear.4bpp.lz" .align 2 gBerryPic_Pinap:: @ 8D9E35C - .incbin "graphics/berries/pics/pinap.4bpp.lz" + .incbin "graphics/berries/pinap.4bpp.lz" .align 2 gBerryPic_Pomeg:: @ 8D9E570 - .incbin "graphics/berries/pics/pomeg.4bpp.lz" + .incbin "graphics/berries/pomeg.4bpp.lz" .align 2 gBerryPic_Kelpsy:: @ 8D9E718 - .incbin "graphics/berries/pics/kelpsy.4bpp.lz" + .incbin "graphics/berries/kelpsy.4bpp.lz" .align 2 gBerryPic_Qualot:: @ 8D9E8C0 - .incbin "graphics/berries/pics/qualot.4bpp.lz" + .incbin "graphics/berries/qualot.4bpp.lz" .align 2 gBerryPic_Hondew:: @ 8D9EA8C - .incbin "graphics/berries/pics/hondew.4bpp.lz" + .incbin "graphics/berries/hondew.4bpp.lz" .align 2 gBerryPic_Grepa:: @ 8D9ECE4 - .incbin "graphics/berries/pics/grepa.4bpp.lz" + .incbin "graphics/berries/grepa.4bpp.lz" .align 2 gBerryPic_Tamato:: @ 8D9EE74 - .incbin "graphics/berries/pics/tamato.4bpp.lz" + .incbin "graphics/berries/tamato.4bpp.lz" .align 2 gBerryPic_Cornn:: @ 8D9F138 - .incbin "graphics/berries/pics/cornn.4bpp.lz" + .incbin "graphics/berries/cornn.4bpp.lz" .align 2 gBerryPic_Magost:: @ 8D9F33C - .incbin "graphics/berries/pics/magost.4bpp.lz" + .incbin "graphics/berries/magost.4bpp.lz" .align 2 gBerryPic_Rabuta:: @ 8D9F4E0 - .incbin "graphics/berries/pics/rabuta.4bpp.lz" + .incbin "graphics/berries/rabuta.4bpp.lz" .align 2 gBerryPic_Nomel:: @ 8D9F7D4 - .incbin "graphics/berries/pics/nomel.4bpp.lz" + .incbin "graphics/berries/nomel.4bpp.lz" .align 2 gBerryPic_Spelon:: @ 8D9F9B0 - .incbin "graphics/berries/pics/spelon.4bpp.lz" + .incbin "graphics/berries/spelon.4bpp.lz" .align 2 gBerryPic_Pamtre:: @ 8D9FBA0 - .incbin "graphics/berries/pics/pamtre.4bpp.lz" + .incbin "graphics/berries/pamtre.4bpp.lz" .align 2 gBerryPic_Watmel:: @ 8D9FDF0 - .incbin "graphics/berries/pics/watmel.4bpp.lz" + .incbin "graphics/berries/watmel.4bpp.lz" .align 2 gBerryPic_Durin:: @ 8DA00D4 - .incbin "graphics/berries/pics/durin.4bpp.lz" + .incbin "graphics/berries/durin.4bpp.lz" .align 2 gBerryPic_Belue:: @ 8DA04A0 - .incbin "graphics/berries/pics/belue.4bpp.lz" + .incbin "graphics/berries/belue.4bpp.lz" .align 2 gBerryPic_Liechi:: @ 8DA0778 - .incbin "graphics/berries/pics/liechi.4bpp.lz" + .incbin "graphics/berries/liechi.4bpp.lz" .align 2 gBerryPic_Ganlon:: @ 8DA09D0 - .incbin "graphics/berries/pics/ganlon.4bpp.lz" + .incbin "graphics/berries/ganlon.4bpp.lz" .align 2 gBerryPic_Salac:: @ 8DA0B68 - .incbin "graphics/berries/pics/salac.4bpp.lz" + .incbin "graphics/berries/salac.4bpp.lz" .align 2 gBerryPic_Petaya:: @ 8DA0DAC - .incbin "graphics/berries/pics/petaya.4bpp.lz" + .incbin "graphics/berries/petaya.4bpp.lz" .align 2 gBerryPic_Apicot:: @ 8DA1054 - .incbin "graphics/berries/pics/apicot.4bpp.lz" + .incbin "graphics/berries/apicot.4bpp.lz" .align 2 gBerryPic_Lansat:: @ 8DA11E4 - .incbin "graphics/berries/pics/lansat.4bpp.lz" + .incbin "graphics/berries/lansat.4bpp.lz" .align 2 gBerryPic_Starf:: @ 8DA13D8 - .incbin "graphics/berries/pics/starf.4bpp.lz" + .incbin "graphics/berries/starf.4bpp.lz" .align 2 gBerryPic_Enigma:: @ 8DA15A8 - .incbin "graphics/berries/pics/enigma.4bpp.lz" + .incbin "graphics/berries/enigma.4bpp.lz" .align 2 gBerryPalette_Cheri:: @ 8DA17C0 - .incbin "graphics/berries/palettes/cheri.gbapal.lz" + .incbin "graphics/berries/cheri.gbapal.lz" .align 2 gBerryPalette_Oran:: @ 8DA17E8 - .incbin "graphics/berries/palettes/oran.gbapal.lz" + .incbin "graphics/berries/oran.gbapal.lz" .align 2 gBerryPalette_Pecha:: @ 8DA1810 - .incbin "graphics/berries/palettes/pecha.gbapal.lz" + .incbin "graphics/berries/pecha.gbapal.lz" .align 2 gBerryPalette_Rawst:: @ 8DA1838 - .incbin "graphics/berries/palettes/rawst.gbapal.lz" + .incbin "graphics/berries/rawst.gbapal.lz" .align 2 gBerryPalette_Aspear:: @ 8DA1860 - .incbin "graphics/berries/palettes/aspear.gbapal.lz" + .incbin "graphics/berries/aspear.gbapal.lz" .align 2 gBerryPalette_Leppa:: @ 8DA1888 - .incbin "graphics/berries/palettes/leppa.gbapal.lz" + .incbin "graphics/berries/leppa.gbapal.lz" .align 2 gBerryPalette_Chesto:: @ 8DA18B0 - .incbin "graphics/berries/palettes/chesto.gbapal.lz" + .incbin "graphics/berries/chesto.gbapal.lz" .align 2 gBerryPalette_Persim:: @ 8DA18D8 - .incbin "graphics/berries/palettes/persim.gbapal.lz" + .incbin "graphics/berries/persim.gbapal.lz" .align 2 gBerryPalette_Lum:: @ 8DA1900 - .incbin "graphics/berries/palettes/lum.gbapal.lz" + .incbin "graphics/berries/lum.gbapal.lz" .align 2 gBerryPalette_Sitrus:: @ 8DA1928 - .incbin "graphics/berries/palettes/sitrus.gbapal.lz" + .incbin "graphics/berries/sitrus.gbapal.lz" .align 2 gBerryPalette_Figy:: @ 8DA1950 - .incbin "graphics/berries/palettes/figy.gbapal.lz" + .incbin "graphics/berries/figy.gbapal.lz" .align 2 gBerryPalette_Wiki:: @ 8DA1978 - .incbin "graphics/berries/palettes/wiki.gbapal.lz" + .incbin "graphics/berries/wiki.gbapal.lz" .align 2 gBerryPalette_Mago:: @ 8DA19A0 - .incbin "graphics/berries/palettes/mago.gbapal.lz" + .incbin "graphics/berries/mago.gbapal.lz" .align 2 gBerryPalette_Aguav:: @ 8DA19C8 - .incbin "graphics/berries/palettes/aguav.gbapal.lz" + .incbin "graphics/berries/aguav.gbapal.lz" .align 2 gBerryPalette_Iapapa:: @ 8DA19F0 - .incbin "graphics/berries/palettes/iapapa.gbapal.lz" + .incbin "graphics/berries/iapapa.gbapal.lz" .align 2 gBerryPalette_Razz:: @ 8DA1A18 - .incbin "graphics/berries/palettes/razz.gbapal.lz" + .incbin "graphics/berries/razz.gbapal.lz" .align 2 gBerryPalette_Bluk:: @ 8DA1A40 - .incbin "graphics/berries/palettes/bluk.gbapal.lz" + .incbin "graphics/berries/bluk.gbapal.lz" .align 2 gBerryPalette_Nanab:: @ 8DA1A68 - .incbin "graphics/berries/palettes/nanab.gbapal.lz" + .incbin "graphics/berries/nanab.gbapal.lz" .align 2 gBerryPalette_Wepear:: @ 8DA1A90 - .incbin "graphics/berries/palettes/wepear.gbapal.lz" + .incbin "graphics/berries/wepear.gbapal.lz" .align 2 gBerryPalette_Pinap:: @ 8DA1AB8 - .incbin "graphics/berries/palettes/pinap.gbapal.lz" + .incbin "graphics/berries/pinap.gbapal.lz" .align 2 gBerryPalette_Pomeg:: @ 8DA1AE0 - .incbin "graphics/berries/palettes/pomeg.gbapal.lz" + .incbin "graphics/berries/pomeg.gbapal.lz" .align 2 gBerryPalette_Kelpsy:: @ 8DA1B08 - .incbin "graphics/berries/palettes/kelpsy.gbapal.lz" + .incbin "graphics/berries/kelpsy.gbapal.lz" .align 2 gBerryPalette_Qualot:: @ 8DA1B30 - .incbin "graphics/berries/palettes/qualot.gbapal.lz" + .incbin "graphics/berries/qualot.gbapal.lz" .align 2 gBerryPalette_Hondew:: @ 8DA1B58 - .incbin "graphics/berries/palettes/hondew.gbapal.lz" + .incbin "graphics/berries/hondew.gbapal.lz" .align 2 gBerryPalette_Grepa:: @ 8DA1B80 - .incbin "graphics/berries/palettes/grepa.gbapal.lz" + .incbin "graphics/berries/grepa.gbapal.lz" .align 2 gBerryPalette_Tamato:: @ 8DA1BA8 - .incbin "graphics/berries/palettes/tamato.gbapal.lz" + .incbin "graphics/berries/tamato.gbapal.lz" .align 2 gBerryPalette_Cornn:: @ 8DA1BD0 - .incbin "graphics/berries/palettes/cornn.gbapal.lz" + .incbin "graphics/berries/cornn.gbapal.lz" .align 2 gBerryPalette_Magost:: @ 8DA1BF8 - .incbin "graphics/berries/palettes/magost.gbapal.lz" + .incbin "graphics/berries/magost.gbapal.lz" .align 2 gBerryPalette_Rabuta:: @ 8DA1C20 - .incbin "graphics/berries/palettes/rabuta.gbapal.lz" + .incbin "graphics/berries/rabuta.gbapal.lz" .align 2 gBerryPalette_Nomel:: @ 8DA1C48 - .incbin "graphics/berries/palettes/nomel.gbapal.lz" + .incbin "graphics/berries/nomel.gbapal.lz" .align 2 gBerryPalette_Spelon:: @ 8DA1C70 - .incbin "graphics/berries/palettes/spelon.gbapal.lz" + .incbin "graphics/berries/spelon.gbapal.lz" .align 2 gBerryPalette_Pamtre:: @ 8DA1C98 - .incbin "graphics/berries/palettes/pamtre.gbapal.lz" + .incbin "graphics/berries/pamtre.gbapal.lz" .align 2 gBerryPalette_Watmel:: @ 8DA1CC0 - .incbin "graphics/berries/palettes/watmel.gbapal.lz" + .incbin "graphics/berries/watmel.gbapal.lz" .align 2 gBerryPalette_Durin:: @ 8DA1CE8 - .incbin "graphics/berries/palettes/durin.gbapal.lz" + .incbin "graphics/berries/durin.gbapal.lz" .align 2 gBerryPalette_Belue:: @ 8DA1D10 - .incbin "graphics/berries/palettes/belue.gbapal.lz" + .incbin "graphics/berries/belue.gbapal.lz" .align 2 gBerryPalette_Liechi:: @ 8DA1D38 - .incbin "graphics/berries/palettes/liechi.gbapal.lz" + .incbin "graphics/berries/liechi.gbapal.lz" .align 2 gBerryPalette_Ganlon:: @ 8DA1D60 - .incbin "graphics/berries/palettes/ganlon.gbapal.lz" + .incbin "graphics/berries/ganlon.gbapal.lz" .align 2 gBerryPalette_Salac:: @ 8DA1D88 - .incbin "graphics/berries/palettes/salac.gbapal.lz" + .incbin "graphics/berries/salac.gbapal.lz" .align 2 gBerryPalette_Petaya:: @ 8DA1DB0 - .incbin "graphics/berries/palettes/petaya.gbapal.lz" + .incbin "graphics/berries/petaya.gbapal.lz" .align 2 gBerryPalette_Apicot:: @ 8DA1DD8 - .incbin "graphics/berries/palettes/apicot.gbapal.lz" + .incbin "graphics/berries/apicot.gbapal.lz" .align 2 gBerryPalette_Lansat:: @ 8DA1E00 - .incbin "graphics/berries/palettes/lansat.gbapal.lz" + .incbin "graphics/berries/lansat.gbapal.lz" .align 2 gBerryPalette_Starf:: @ 8DA1E28 - .incbin "graphics/berries/palettes/starf.gbapal.lz" + .incbin "graphics/berries/starf.gbapal.lz" .align 2 gBerryPalette_Enigma:: @ 8DA1E50 - .incbin "graphics/berries/palettes/enigma.gbapal.lz" + .incbin "graphics/berries/enigma.gbapal.lz" diff --git a/graphics/berries/aguav.png b/graphics/berries/aguav.png new file mode 100644 index 000000000..0661fe8d3 Binary files /dev/null and b/graphics/berries/aguav.png differ diff --git a/graphics/berries/apicot.png b/graphics/berries/apicot.png new file mode 100644 index 000000000..b7098fc90 Binary files /dev/null and b/graphics/berries/apicot.png differ diff --git a/graphics/berries/aspear.png b/graphics/berries/aspear.png new file mode 100644 index 000000000..b5e2c5061 Binary files /dev/null and b/graphics/berries/aspear.png differ diff --git a/graphics/berries/belue.png b/graphics/berries/belue.png new file mode 100644 index 000000000..81ddaa9bb Binary files /dev/null and b/graphics/berries/belue.png differ diff --git a/graphics/berries/bluk.png b/graphics/berries/bluk.png new file mode 100644 index 000000000..fc7e6c128 Binary files /dev/null and b/graphics/berries/bluk.png differ diff --git a/graphics/berries/cheri.png b/graphics/berries/cheri.png new file mode 100644 index 000000000..f70a1ad74 Binary files /dev/null and b/graphics/berries/cheri.png differ diff --git a/graphics/berries/chesto.png b/graphics/berries/chesto.png new file mode 100644 index 000000000..db1fe9e73 Binary files /dev/null and b/graphics/berries/chesto.png differ diff --git a/graphics/berries/cornn.png b/graphics/berries/cornn.png new file mode 100644 index 000000000..e124fc599 Binary files /dev/null and b/graphics/berries/cornn.png differ diff --git a/graphics/berries/durin.png b/graphics/berries/durin.png new file mode 100644 index 000000000..5bbb97e1f Binary files /dev/null and b/graphics/berries/durin.png differ diff --git a/graphics/berries/enigma.png b/graphics/berries/enigma.png new file mode 100644 index 000000000..af369550a Binary files /dev/null and b/graphics/berries/enigma.png differ diff --git a/graphics/berries/figy.png b/graphics/berries/figy.png new file mode 100644 index 000000000..9ec8425d5 Binary files /dev/null and b/graphics/berries/figy.png differ diff --git a/graphics/berries/ganlon.png b/graphics/berries/ganlon.png new file mode 100644 index 000000000..ec5e38319 Binary files /dev/null and b/graphics/berries/ganlon.png differ diff --git a/graphics/berries/grepa.png b/graphics/berries/grepa.png new file mode 100644 index 000000000..136a86df2 Binary files /dev/null and b/graphics/berries/grepa.png differ diff --git a/graphics/berries/hondew.png b/graphics/berries/hondew.png new file mode 100644 index 000000000..ab1add813 Binary files /dev/null and b/graphics/berries/hondew.png differ diff --git a/graphics/berries/iapapa.png b/graphics/berries/iapapa.png new file mode 100644 index 000000000..243e23d29 Binary files /dev/null and b/graphics/berries/iapapa.png differ diff --git a/graphics/berries/kelpsy.png b/graphics/berries/kelpsy.png new file mode 100644 index 000000000..17b509c04 Binary files /dev/null and b/graphics/berries/kelpsy.png differ diff --git a/graphics/berries/lansat.png b/graphics/berries/lansat.png new file mode 100644 index 000000000..c63a590ec Binary files /dev/null and b/graphics/berries/lansat.png differ diff --git a/graphics/berries/leppa.png b/graphics/berries/leppa.png new file mode 100644 index 000000000..228bc9c3a Binary files /dev/null and b/graphics/berries/leppa.png differ diff --git a/graphics/berries/liechi.png b/graphics/berries/liechi.png new file mode 100644 index 000000000..dbfea58ca Binary files /dev/null and b/graphics/berries/liechi.png differ diff --git a/graphics/berries/lum.png b/graphics/berries/lum.png new file mode 100644 index 000000000..52a97fe4b Binary files /dev/null and b/graphics/berries/lum.png differ diff --git a/graphics/berries/mago.png b/graphics/berries/mago.png new file mode 100644 index 000000000..b83c4cc3e Binary files /dev/null and b/graphics/berries/mago.png differ diff --git a/graphics/berries/magost.png b/graphics/berries/magost.png new file mode 100644 index 000000000..d3332bc26 Binary files /dev/null and b/graphics/berries/magost.png differ diff --git a/graphics/berries/nanab.png b/graphics/berries/nanab.png new file mode 100644 index 000000000..88fa1368e Binary files /dev/null and b/graphics/berries/nanab.png differ diff --git a/graphics/berries/nomel.png b/graphics/berries/nomel.png new file mode 100644 index 000000000..828674f62 Binary files /dev/null and b/graphics/berries/nomel.png differ diff --git a/graphics/berries/oran.png b/graphics/berries/oran.png new file mode 100644 index 000000000..bc9517fac Binary files /dev/null and b/graphics/berries/oran.png differ diff --git a/graphics/berries/palettes/aguav.pal b/graphics/berries/palettes/aguav.pal deleted file mode 100644 index fa20daf24..000000000 --- a/graphics/berries/palettes/aguav.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -230 255 156 -197 238 131 -164 222 106 -131 205 82 -98 189 57 -74 148 41 -57 115 32 -41 82 24 -255 238 189 -222 197 148 -189 164 106 -156 131 74 -197 197 139 -148 172 98 -90 139 82 diff --git a/graphics/berries/palettes/apicot.pal b/graphics/berries/palettes/apicot.pal deleted file mode 100644 index 82cb76d5a..000000000 --- a/graphics/berries/palettes/apicot.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -238 238 255 -189 205 238 -148 180 230 -106 148 222 -65 123 213 -65 98 148 -222 255 131 -197 230 123 -172 213 115 -148 189 106 -123 172 98 -90 131 82 -57 164 156 -255 230 98 -205 164 98 diff --git a/graphics/berries/palettes/aspear.pal b/graphics/berries/palettes/aspear.pal deleted file mode 100644 index 52842fd55..000000000 --- a/graphics/berries/palettes/aspear.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -246 238 222 -246 238 189 -246 238 156 -246 238 123 -230 213 115 -213 197 106 -197 180 98 -180 156 90 -164 139 82 -148 123 74 -180 189 148 -156 164 131 -131 139 123 -106 123 115 -0 0 0 diff --git a/graphics/berries/palettes/belue.pal b/graphics/berries/palettes/belue.pal deleted file mode 100644 index 0d348b27e..000000000 --- a/graphics/berries/palettes/belue.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -164 172 197 -148 148 180 -131 123 172 -123 98 156 -106 74 148 -98 57 139 -82 41 82 -255 213 164 -230 189 148 -205 164 131 -180 139 123 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/bluk.pal b/graphics/berries/palettes/bluk.pal deleted file mode 100644 index 88586d6b5..000000000 --- a/graphics/berries/palettes/bluk.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -189 205 213 -164 156 197 -139 115 180 -115 74 172 -98 57 139 -90 49 106 -82 41 82 -180 139 123 -148 106 82 -115 74 41 -0 0 0 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/cheri.pal b/graphics/berries/palettes/cheri.pal deleted file mode 100644 index 01acf52c9..000000000 --- a/graphics/berries/palettes/cheri.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 49 41 -180 57 32 -148 65 24 -115 82 24 -189 238 131 -156 205 115 -123 172 98 -90 139 82 -115 90 74 -82 90 49 -57 98 32 diff --git a/graphics/berries/palettes/chesto.pal b/graphics/berries/palettes/chesto.pal deleted file mode 100644 index 3a4e0964f..000000000 --- a/graphics/berries/palettes/chesto.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -148 205 255 -123 172 238 -98 148 222 -82 123 213 -65 98 180 -57 74 148 -230 197 164 -213 172 148 -197 156 131 -180 131 115 -164 115 98 -148 98 82 -156 205 115 -74 106 197 -90 139 82 diff --git a/graphics/berries/palettes/cornn.pal b/graphics/berries/palettes/cornn.pal deleted file mode 100644 index 5096389e0..000000000 --- a/graphics/berries/palettes/cornn.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -189 205 213 -164 156 197 -139 115 180 -115 74 172 -98 57 139 -90 49 106 -82 41 82 -180 139 123 -180 189 123 -115 74 41 -49 90 0 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/durin.pal b/graphics/berries/palettes/durin.pal deleted file mode 100644 index 8b636135d..000000000 --- a/graphics/berries/palettes/durin.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 246 -230 255 156 -197 238 131 -164 222 106 -131 205 82 -98 189 57 -98 164 57 -98 139 57 -255 246 197 -255 222 148 -139 98 49 -222 172 98 -189 148 98 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/enigma.pal b/graphics/berries/palettes/enigma.pal deleted file mode 100644 index 349ecc7f4..000000000 --- a/graphics/berries/palettes/enigma.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 246 246 -148 131 123 -115 98 98 -82 74 74 -57 49 49 -24 24 24 -0 0 0 -246 238 222 -222 205 197 -205 180 172 -180 156 156 -164 131 131 -148 106 115 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/figy.pal b/graphics/berries/palettes/figy.pal deleted file mode 100644 index e427ea1e9..000000000 --- a/graphics/berries/palettes/figy.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 197 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 41 49 -180 41 49 -255 246 205 -230 213 172 -205 189 139 -180 164 115 -123 106 74 -197 123 90 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/ganlon.pal b/graphics/berries/palettes/ganlon.pal deleted file mode 100644 index 381974125..000000000 --- a/graphics/berries/palettes/ganlon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -222 255 255 -189 230 255 -164 197 238 -139 172 222 -115 148 213 -90 123 197 -65 98 189 -65 65 123 -246 238 164 -222 205 139 -205 180 123 -180 156 106 -164 131 90 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/grepa.pal b/graphics/berries/palettes/grepa.pal deleted file mode 100644 index 42ff8830f..000000000 --- a/graphics/berries/palettes/grepa.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -246 238 222 -246 230 180 -246 230 148 -246 222 106 -255 222 74 -222 197 65 -197 172 65 -172 148 65 -148 123 65 -123 98 65 -172 255 74 -131 213 65 -90 180 65 -49 148 65 -238 205 65 diff --git a/graphics/berries/palettes/hondew.pal b/graphics/berries/palettes/hondew.pal deleted file mode 100644 index db2739961..000000000 --- a/graphics/berries/palettes/hondew.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 246 -230 255 156 -197 238 131 -164 222 106 -131 205 82 -98 189 57 -98 164 57 -98 139 57 -255 246 197 -255 222 148 -255 197 98 -222 172 98 -189 148 98 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/iapapa.pal b/graphics/berries/palettes/iapapa.pal deleted file mode 100644 index 31fac9dde..000000000 --- a/graphics/berries/palettes/iapapa.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 197 197 -246 238 222 -246 238 172 -238 213 148 -230 197 131 -222 180 115 -213 164 98 -205 148 82 -139 90 57 -230 164 90 -238 123 74 -255 90 57 -222 90 57 -197 90 57 -172 90 57 -90 139 82 diff --git a/graphics/berries/palettes/kelpsy.pal b/graphics/berries/palettes/kelpsy.pal deleted file mode 100644 index 67ad7a21c..000000000 --- a/graphics/berries/palettes/kelpsy.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -189 205 213 -164 156 197 -139 115 180 -115 74 172 -98 57 139 -90 49 106 -82 41 82 -180 139 123 -148 106 82 -115 74 41 -0 0 0 -189 222 255 -156 197 230 -131 172 205 -106 148 189 diff --git a/graphics/berries/palettes/lansat.pal b/graphics/berries/palettes/lansat.pal deleted file mode 100644 index 66621677d..000000000 --- a/graphics/berries/palettes/lansat.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 246 246 -189 222 148 -148 197 123 -115 180 106 -82 164 90 -49 148 74 -255 222 164 -246 180 139 -238 148 115 -230 106 90 -222 74 65 -213 41 49 -189 41 49 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/leppa.pal b/graphics/berries/palettes/leppa.pal deleted file mode 100644 index 4fab82d6c..000000000 --- a/graphics/berries/palettes/leppa.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 41 49 -180 41 49 -148 41 49 -197 148 98 -189 238 131 -156 205 115 -123 172 98 -90 139 82 -115 90 74 -82 90 49 -57 98 32 diff --git a/graphics/berries/palettes/liechi.pal b/graphics/berries/palettes/liechi.pal deleted file mode 100644 index c12737deb..000000000 --- a/graphics/berries/palettes/liechi.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 41 49 -180 41 49 -255 255 255 -238 230 213 -222 205 172 -205 180 131 -197 164 90 -255 205 131 -238 164 98 -222 123 65 -213 90 32 diff --git a/graphics/berries/palettes/lum.pal b/graphics/berries/palettes/lum.pal deleted file mode 100644 index 237ef0dc4..000000000 --- a/graphics/berries/palettes/lum.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 246 246 -255 255 222 -238 255 189 -230 255 156 -197 230 131 -172 205 115 -148 180 90 -123 156 74 -115 115 74 -106 82 74 -0 0 0 -0 0 0 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/mago.pal b/graphics/berries/palettes/mago.pal deleted file mode 100644 index 4441e4564..000000000 --- a/graphics/berries/palettes/mago.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 222 205 -246 189 180 -246 164 156 -246 139 139 -197 106 106 -148 74 74 -98 41 49 -255 246 197 -230 205 148 -213 164 106 -197 131 65 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/magost.pal b/graphics/berries/palettes/magost.pal deleted file mode 100644 index 2393be3d6..000000000 --- a/graphics/berries/palettes/magost.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 222 205 -246 189 180 -246 164 156 -246 139 139 -222 123 123 -197 106 106 -180 90 90 -255 246 197 -230 131 131 -246 148 148 -197 131 65 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/nanab.pal b/graphics/berries/palettes/nanab.pal deleted file mode 100644 index 4441e4564..000000000 --- a/graphics/berries/palettes/nanab.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 222 205 -246 189 180 -246 164 156 -246 139 139 -197 106 106 -148 74 74 -98 41 49 -255 246 197 -230 205 148 -213 164 106 -197 131 65 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/nomel.pal b/graphics/berries/palettes/nomel.pal deleted file mode 100644 index 6844ddcc3..000000000 --- a/graphics/berries/palettes/nomel.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -246 238 222 -246 230 180 -246 230 148 -246 222 106 -255 222 74 -238 197 65 -222 180 65 -205 156 65 -189 139 65 -123 98 65 -172 255 74 -131 213 65 -90 180 65 -246 205 65 -238 205 65 diff --git a/graphics/berries/palettes/oran.pal b/graphics/berries/palettes/oran.pal deleted file mode 100644 index ac06d0224..000000000 --- a/graphics/berries/palettes/oran.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -189 205 213 -156 172 213 -123 148 213 -90 123 213 -65 98 213 -65 82 180 -65 65 148 -74 49 115 -148 106 82 -115 74 41 -0 0 0 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/pamtre.pal b/graphics/berries/palettes/pamtre.pal deleted file mode 100644 index fa2cb87a7..000000000 --- a/graphics/berries/palettes/pamtre.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -189 205 213 -172 180 205 -156 148 189 -131 106 180 -115 74 172 -98 57 139 -90 49 106 -82 41 82 -238 189 213 -205 164 172 -180 139 139 -156 115 106 -131 90 74 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/pecha.pal b/graphics/berries/palettes/pecha.pal deleted file mode 100644 index b0743cc64..000000000 --- a/graphics/berries/palettes/pecha.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 255 -255 222 197 -255 197 148 -222 172 123 -197 148 106 -172 123 90 -148 98 74 -0 0 0 -255 205 172 -238 180 131 -123 246 0 -90 213 0 -57 180 0 -24 148 0 -0 0 0 diff --git a/graphics/berries/palettes/persim.pal b/graphics/berries/palettes/persim.pal deleted file mode 100644 index 389fac638..000000000 --- a/graphics/berries/palettes/persim.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 222 205 -246 189 180 -246 164 156 -246 139 139 -197 106 106 -148 74 74 -98 41 49 -0 0 0 -0 0 0 -0 0 0 -90 98 82 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/petaya.pal b/graphics/berries/palettes/petaya.pal deleted file mode 100644 index c6eefb076..000000000 --- a/graphics/berries/palettes/petaya.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 246 246 -255 197 205 -246 164 180 -246 131 156 -246 106 139 -189 74 90 -139 41 49 -230 197 148 -205 172 123 -189 148 98 -172 123 74 -156 98 49 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/pinap.pal b/graphics/berries/palettes/pinap.pal deleted file mode 100644 index e62f61e20..000000000 --- a/graphics/berries/palettes/pinap.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -246 238 222 -246 238 189 -246 238 156 -246 238 123 -222 205 106 -197 180 98 -172 156 90 -148 123 74 -123 98 65 -106 74 57 -148 255 172 -115 213 148 -82 180 123 -49 148 98 -0 0 0 diff --git a/graphics/berries/palettes/pomeg.pal b/graphics/berries/palettes/pomeg.pal deleted file mode 100644 index 01acf52c9..000000000 --- a/graphics/berries/palettes/pomeg.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 49 41 -180 57 32 -148 65 24 -115 82 24 -189 238 131 -156 205 115 -123 172 98 -90 139 82 -115 90 74 -82 90 49 -57 98 32 diff --git a/graphics/berries/palettes/qualot.pal b/graphics/berries/palettes/qualot.pal deleted file mode 100644 index 4441e4564..000000000 --- a/graphics/berries/palettes/qualot.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 222 205 -246 189 180 -246 164 156 -246 139 139 -197 106 106 -148 74 74 -98 41 49 -255 246 197 -230 205 148 -213 164 106 -197 131 65 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/rabuta.pal b/graphics/berries/palettes/rabuta.pal deleted file mode 100644 index 251beeb2d..000000000 --- a/graphics/berries/palettes/rabuta.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 246 -230 255 156 -197 238 131 -164 222 106 -131 205 82 -98 189 57 -98 164 57 -98 139 57 -255 246 197 -230 213 172 -205 189 156 -180 164 131 -156 139 115 -139 115 98 -90 106 57 -90 139 82 diff --git a/graphics/berries/palettes/rawst.pal b/graphics/berries/palettes/rawst.pal deleted file mode 100644 index a7a4576b5..000000000 --- a/graphics/berries/palettes/rawst.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 98 246 -255 255 255 -213 230 222 -172 205 189 -131 189 156 -90 164 123 -49 148 98 -49 131 82 -57 115 74 -65 98 65 -74 82 57 -98 197 0 -49 148 0 -0 98 0 -148 205 0 -0 0 0 diff --git a/graphics/berries/palettes/razz.pal b/graphics/berries/palettes/razz.pal deleted file mode 100644 index 01acf52c9..000000000 --- a/graphics/berries/palettes/razz.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 49 41 -180 57 32 -148 65 24 -115 82 24 -189 238 131 -156 205 115 -123 172 98 -90 139 82 -115 90 74 -82 90 49 -57 98 32 diff --git a/graphics/berries/palettes/salac.pal b/graphics/berries/palettes/salac.pal deleted file mode 100644 index c0849c6bc..000000000 --- a/graphics/berries/palettes/salac.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 255 255 -255 255 255 -246 255 222 -238 255 189 -230 255 156 -197 238 131 -164 222 106 -131 205 82 -98 189 57 -90 156 41 -82 123 24 -74 98 8 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/sitrus.pal b/graphics/berries/palettes/sitrus.pal deleted file mode 100644 index b80481ae1..000000000 --- a/graphics/berries/palettes/sitrus.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -98 246 246 -246 238 222 -246 238 172 -246 238 123 -222 213 106 -197 189 90 -172 164 82 -148 139 65 -123 115 57 -246 197 90 -246 172 32 -189 131 32 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/spelon.pal b/graphics/berries/palettes/spelon.pal deleted file mode 100644 index 01acf52c9..000000000 --- a/graphics/berries/palettes/spelon.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 49 41 -180 57 32 -148 65 24 -115 82 24 -189 238 131 -156 205 115 -123 172 98 -90 139 82 -115 90 74 -82 90 49 -57 98 32 diff --git a/graphics/berries/palettes/starf.pal b/graphics/berries/palettes/starf.pal deleted file mode 100644 index 68525b6a6..000000000 --- a/graphics/berries/palettes/starf.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 238 246 -246 139 90 -230 255 213 -205 255 180 -180 255 139 -156 255 106 -131 205 106 -106 164 106 -90 123 106 -246 41 41 -156 106 106 -255 156 156 -98 123 205 -164 213 41 -255 205 8 -0 0 0 diff --git a/graphics/berries/palettes/tamato.pal b/graphics/berries/palettes/tamato.pal deleted file mode 100644 index 01acf52c9..000000000 --- a/graphics/berries/palettes/tamato.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 255 123 -246 180 98 -246 106 74 -246 41 49 -213 49 41 -180 57 32 -148 65 24 -115 82 24 -189 238 131 -156 205 115 -123 172 98 -90 139 82 -115 90 74 -82 90 49 -57 98 32 diff --git a/graphics/berries/palettes/watmel.pal b/graphics/berries/palettes/watmel.pal deleted file mode 100644 index 786c0a848..000000000 --- a/graphics/berries/palettes/watmel.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -148 246 246 -255 222 205 -246 189 180 -246 164 156 -246 139 139 -213 115 115 -180 90 90 -148 74 74 -255 246 197 -230 205 148 -238 255 180 -213 246 156 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/wepear.pal b/graphics/berries/palettes/wepear.pal deleted file mode 100644 index dac1511ff..000000000 --- a/graphics/berries/palettes/wepear.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 255 255 -230 255 156 -197 238 131 -164 222 106 -131 205 82 -98 189 57 -98 156 57 -98 123 57 -98 90 57 -0 0 0 -180 230 115 -0 0 0 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/palettes/wiki.pal b/graphics/berries/palettes/wiki.pal deleted file mode 100644 index 88586d6b5..000000000 --- a/graphics/berries/palettes/wiki.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 197 197 -189 205 213 -164 156 197 -139 115 180 -115 74 172 -98 57 139 -90 49 106 -82 41 82 -180 139 123 -148 106 82 -115 74 41 -0 0 0 -189 238 131 -156 205 115 -123 172 98 -90 139 82 diff --git a/graphics/berries/pamtre.png b/graphics/berries/pamtre.png new file mode 100644 index 000000000..d066ab74c Binary files /dev/null and b/graphics/berries/pamtre.png differ diff --git a/graphics/berries/pecha.png b/graphics/berries/pecha.png new file mode 100644 index 000000000..76543a044 Binary files /dev/null and b/graphics/berries/pecha.png differ diff --git a/graphics/berries/persim.png b/graphics/berries/persim.png new file mode 100644 index 000000000..6c0ba368a Binary files /dev/null and b/graphics/berries/persim.png differ diff --git a/graphics/berries/petaya.png b/graphics/berries/petaya.png new file mode 100644 index 000000000..04198ba39 Binary files /dev/null and b/graphics/berries/petaya.png differ diff --git a/graphics/berries/pics/aguav.png b/graphics/berries/pics/aguav.png deleted file mode 100644 index 0661fe8d3..000000000 Binary files a/graphics/berries/pics/aguav.png and /dev/null differ diff --git a/graphics/berries/pics/apicot.png b/graphics/berries/pics/apicot.png deleted file mode 100644 index b7098fc90..000000000 Binary files a/graphics/berries/pics/apicot.png and /dev/null differ diff --git a/graphics/berries/pics/aspear.png b/graphics/berries/pics/aspear.png deleted file mode 100644 index b5e2c5061..000000000 Binary files a/graphics/berries/pics/aspear.png and /dev/null differ diff --git a/graphics/berries/pics/belue.png b/graphics/berries/pics/belue.png deleted file mode 100644 index 81ddaa9bb..000000000 Binary files a/graphics/berries/pics/belue.png and /dev/null differ diff --git a/graphics/berries/pics/bluk.png b/graphics/berries/pics/bluk.png deleted file mode 100644 index fc7e6c128..000000000 Binary files a/graphics/berries/pics/bluk.png and /dev/null differ diff --git a/graphics/berries/pics/cheri.png b/graphics/berries/pics/cheri.png deleted file mode 100644 index f70a1ad74..000000000 Binary files a/graphics/berries/pics/cheri.png and /dev/null differ diff --git a/graphics/berries/pics/chesto.png b/graphics/berries/pics/chesto.png deleted file mode 100644 index db1fe9e73..000000000 Binary files a/graphics/berries/pics/chesto.png and /dev/null differ diff --git a/graphics/berries/pics/cornn.png b/graphics/berries/pics/cornn.png deleted file mode 100644 index e124fc599..000000000 Binary files a/graphics/berries/pics/cornn.png and /dev/null differ diff --git a/graphics/berries/pics/durin.png b/graphics/berries/pics/durin.png deleted file mode 100644 index 5bbb97e1f..000000000 Binary files a/graphics/berries/pics/durin.png and /dev/null differ diff --git a/graphics/berries/pics/enigma.png b/graphics/berries/pics/enigma.png deleted file mode 100644 index af369550a..000000000 Binary files a/graphics/berries/pics/enigma.png and /dev/null differ diff --git a/graphics/berries/pics/figy.png b/graphics/berries/pics/figy.png deleted file mode 100644 index 9ec8425d5..000000000 Binary files a/graphics/berries/pics/figy.png and /dev/null differ diff --git a/graphics/berries/pics/ganlon.png b/graphics/berries/pics/ganlon.png deleted file mode 100644 index ec5e38319..000000000 Binary files a/graphics/berries/pics/ganlon.png and /dev/null differ diff --git a/graphics/berries/pics/grepa.png b/graphics/berries/pics/grepa.png deleted file mode 100644 index 136a86df2..000000000 Binary files a/graphics/berries/pics/grepa.png and /dev/null differ diff --git a/graphics/berries/pics/hondew.png b/graphics/berries/pics/hondew.png deleted file mode 100644 index ab1add813..000000000 Binary files a/graphics/berries/pics/hondew.png and /dev/null differ diff --git a/graphics/berries/pics/iapapa.png b/graphics/berries/pics/iapapa.png deleted file mode 100644 index 243e23d29..000000000 Binary files a/graphics/berries/pics/iapapa.png and /dev/null differ diff --git a/graphics/berries/pics/kelpsy.png b/graphics/berries/pics/kelpsy.png deleted file mode 100644 index 17b509c04..000000000 Binary files a/graphics/berries/pics/kelpsy.png and /dev/null differ diff --git a/graphics/berries/pics/lansat.png b/graphics/berries/pics/lansat.png deleted file mode 100644 index c63a590ec..000000000 Binary files a/graphics/berries/pics/lansat.png and /dev/null differ diff --git a/graphics/berries/pics/leppa.png b/graphics/berries/pics/leppa.png deleted file mode 100644 index 228bc9c3a..000000000 Binary files a/graphics/berries/pics/leppa.png and /dev/null differ diff --git a/graphics/berries/pics/liechi.png b/graphics/berries/pics/liechi.png deleted file mode 100644 index dbfea58ca..000000000 Binary files a/graphics/berries/pics/liechi.png and /dev/null differ diff --git a/graphics/berries/pics/lum.png b/graphics/berries/pics/lum.png deleted file mode 100644 index 52a97fe4b..000000000 Binary files a/graphics/berries/pics/lum.png and /dev/null differ diff --git a/graphics/berries/pics/mago.png b/graphics/berries/pics/mago.png deleted file mode 100644 index b83c4cc3e..000000000 Binary files a/graphics/berries/pics/mago.png and /dev/null differ diff --git a/graphics/berries/pics/magost.png b/graphics/berries/pics/magost.png deleted file mode 100644 index d3332bc26..000000000 Binary files a/graphics/berries/pics/magost.png and /dev/null differ diff --git a/graphics/berries/pics/nanab.png b/graphics/berries/pics/nanab.png deleted file mode 100644 index 88fa1368e..000000000 Binary files a/graphics/berries/pics/nanab.png and /dev/null differ diff --git a/graphics/berries/pics/nomel.png b/graphics/berries/pics/nomel.png deleted file mode 100644 index 828674f62..000000000 Binary files a/graphics/berries/pics/nomel.png and /dev/null differ diff --git a/graphics/berries/pics/oran.png b/graphics/berries/pics/oran.png deleted file mode 100644 index bc9517fac..000000000 Binary files a/graphics/berries/pics/oran.png and /dev/null differ diff --git a/graphics/berries/pics/pamtre.png b/graphics/berries/pics/pamtre.png deleted file mode 100644 index d066ab74c..000000000 Binary files a/graphics/berries/pics/pamtre.png and /dev/null differ diff --git a/graphics/berries/pics/pecha.png b/graphics/berries/pics/pecha.png deleted file mode 100644 index 76543a044..000000000 Binary files a/graphics/berries/pics/pecha.png and /dev/null differ diff --git a/graphics/berries/pics/persim.png b/graphics/berries/pics/persim.png deleted file mode 100644 index 6c0ba368a..000000000 Binary files a/graphics/berries/pics/persim.png and /dev/null differ diff --git a/graphics/berries/pics/petaya.png b/graphics/berries/pics/petaya.png deleted file mode 100644 index 04198ba39..000000000 Binary files a/graphics/berries/pics/petaya.png and /dev/null differ diff --git a/graphics/berries/pics/pinap.png b/graphics/berries/pics/pinap.png deleted file mode 100644 index 71144554a..000000000 Binary files a/graphics/berries/pics/pinap.png and /dev/null differ diff --git a/graphics/berries/pics/pomeg.png b/graphics/berries/pics/pomeg.png deleted file mode 100644 index 394f8558a..000000000 Binary files a/graphics/berries/pics/pomeg.png and /dev/null differ diff --git a/graphics/berries/pics/qualot.png b/graphics/berries/pics/qualot.png deleted file mode 100644 index 15f51d4d8..000000000 Binary files a/graphics/berries/pics/qualot.png and /dev/null differ diff --git a/graphics/berries/pics/rabuta.png b/graphics/berries/pics/rabuta.png deleted file mode 100644 index cf620f906..000000000 Binary files a/graphics/berries/pics/rabuta.png and /dev/null differ diff --git a/graphics/berries/pics/rawst.png b/graphics/berries/pics/rawst.png deleted file mode 100644 index c0e3e23a6..000000000 Binary files a/graphics/berries/pics/rawst.png and /dev/null differ diff --git a/graphics/berries/pics/razz.png b/graphics/berries/pics/razz.png deleted file mode 100644 index 5c415012d..000000000 Binary files a/graphics/berries/pics/razz.png and /dev/null differ diff --git a/graphics/berries/pics/salac.png b/graphics/berries/pics/salac.png deleted file mode 100644 index 557ab1742..000000000 Binary files a/graphics/berries/pics/salac.png and /dev/null differ diff --git a/graphics/berries/pics/sitrus.png b/graphics/berries/pics/sitrus.png deleted file mode 100644 index d98327ae1..000000000 Binary files a/graphics/berries/pics/sitrus.png and /dev/null differ diff --git a/graphics/berries/pics/spelon.png b/graphics/berries/pics/spelon.png deleted file mode 100644 index 996f743db..000000000 Binary files a/graphics/berries/pics/spelon.png and /dev/null differ diff --git a/graphics/berries/pics/starf.png b/graphics/berries/pics/starf.png deleted file mode 100644 index 8cca44ee2..000000000 Binary files a/graphics/berries/pics/starf.png and /dev/null differ diff --git a/graphics/berries/pics/tamato.png b/graphics/berries/pics/tamato.png deleted file mode 100644 index 9f2c14d4a..000000000 Binary files a/graphics/berries/pics/tamato.png and /dev/null differ diff --git a/graphics/berries/pics/watmel.png b/graphics/berries/pics/watmel.png deleted file mode 100644 index 6da099327..000000000 Binary files a/graphics/berries/pics/watmel.png and /dev/null differ diff --git a/graphics/berries/pics/wepear.png b/graphics/berries/pics/wepear.png deleted file mode 100644 index 468231651..000000000 Binary files a/graphics/berries/pics/wepear.png and /dev/null differ diff --git a/graphics/berries/pics/wiki.png b/graphics/berries/pics/wiki.png deleted file mode 100644 index d13c76f5b..000000000 Binary files a/graphics/berries/pics/wiki.png and /dev/null differ diff --git a/graphics/berries/pinap.png b/graphics/berries/pinap.png new file mode 100644 index 000000000..71144554a Binary files /dev/null and b/graphics/berries/pinap.png differ diff --git a/graphics/berries/pomeg.png b/graphics/berries/pomeg.png new file mode 100644 index 000000000..394f8558a Binary files /dev/null and b/graphics/berries/pomeg.png differ diff --git a/graphics/berries/qualot.png b/graphics/berries/qualot.png new file mode 100644 index 000000000..15f51d4d8 Binary files /dev/null and b/graphics/berries/qualot.png differ diff --git a/graphics/berries/rabuta.png b/graphics/berries/rabuta.png new file mode 100644 index 000000000..cf620f906 Binary files /dev/null and b/graphics/berries/rabuta.png differ diff --git a/graphics/berries/rawst.png b/graphics/berries/rawst.png new file mode 100644 index 000000000..c0e3e23a6 Binary files /dev/null and b/graphics/berries/rawst.png differ diff --git a/graphics/berries/razz.png b/graphics/berries/razz.png new file mode 100644 index 000000000..5c415012d Binary files /dev/null and b/graphics/berries/razz.png differ diff --git a/graphics/berries/salac.png b/graphics/berries/salac.png new file mode 100644 index 000000000..557ab1742 Binary files /dev/null and b/graphics/berries/salac.png differ diff --git a/graphics/berries/sitrus.png b/graphics/berries/sitrus.png new file mode 100644 index 000000000..d98327ae1 Binary files /dev/null and b/graphics/berries/sitrus.png differ diff --git a/graphics/berries/spelon.png b/graphics/berries/spelon.png new file mode 100644 index 000000000..996f743db Binary files /dev/null and b/graphics/berries/spelon.png differ diff --git a/graphics/berries/starf.png b/graphics/berries/starf.png new file mode 100644 index 000000000..8cca44ee2 Binary files /dev/null and b/graphics/berries/starf.png differ diff --git a/graphics/berries/tamato.png b/graphics/berries/tamato.png new file mode 100644 index 000000000..9f2c14d4a Binary files /dev/null and b/graphics/berries/tamato.png differ diff --git a/graphics/berries/watmel.png b/graphics/berries/watmel.png new file mode 100644 index 000000000..6da099327 Binary files /dev/null and b/graphics/berries/watmel.png differ diff --git a/graphics/berries/wepear.png b/graphics/berries/wepear.png new file mode 100644 index 000000000..468231651 Binary files /dev/null and b/graphics/berries/wepear.png differ diff --git a/graphics/berries/wiki.png b/graphics/berries/wiki.png new file mode 100644 index 000000000..d13c76f5b Binary files /dev/null and b/graphics/berries/wiki.png differ -- cgit v1.2.3 From 4c6f6c47384da9a7c145fad620a0e5b40a994fa8 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 6 Feb 2018 12:47:09 -0600 Subject: Use fixed width types in TintPalette funcs --- src/palette.c | 62 +++++++++++++++++++++++------------------------------------ 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/src/palette.c b/src/palette.c index 5e073e869..fd4ad32ad 100644 --- a/src/palette.c +++ b/src/palette.c @@ -840,93 +840,79 @@ void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color) void TintPalette_GrayScale(u16 *palette, u16 count) { - int r; - int g; - int b; + s32 r, g, b, i; u32 gray; - int i; for (i = 0; i < count; i++) { - r = *palette & 0x1F; - g = (*palette >> 5) & 0x1F; + r = (*palette >> 0) & 0x1F; + g = (*palette >> 5) & 0x1F; b = (*palette >> 10) & 0x1F; - r = r * Q_8_8(0.2969); - r += g * Q_8_8(0.5899); - r += b * Q_8_8(0.1133); - - gray = r >> 8; + gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - *palette++ = gray << 10 | gray << 5 | gray; + *palette++ = (gray << 10) | (gray << 5) | (gray << 0); } } void TintPalette_GrayScale2(u16 *palette, u16 count) { - int r; - int g; - int b; + s32 r, g, b, i; u32 gray; - int i; for (i = 0; i < count; i++) { - r = *palette & 0x1F; - g = (*palette >> 5) & 0x1F; + r = (*palette >> 0) & 0x1F; + g = (*palette >> 5) & 0x1F; b = (*palette >> 10) & 0x1F; - r = r * Q_8_8(0.2969); - r += g * Q_8_8(0.5899); - r += b * Q_8_8(0.1133); - - gray = r >> 8; + gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; if (gray > 0x1F) gray = 0x1F; gray = sRoundedDownGrayscaleMap[gray]; - *palette++ = gray << 10 | gray << 5 | gray; + *palette++ = (gray << 10) | (gray << 5) | (gray << 0); } } void TintPalette_SepiaTone(u16 *palette, u16 count) { - s32 r, g, b, gray; - s32 i; - - for (i = 0; i < count; palette++, i++) + s32 r, g, b, i; + u32 gray; + + for (i = 0; i < count; i++) { r = (*palette >> 0) & 0x1F; g = (*palette >> 5) & 0x1F; b = (*palette >> 10) & 0x1F; - gray = (r * 76 + g * 151 + b * 29) >> 8; + gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - r = (u16)((307 * gray)) >> 8; - g = (u16)((256 * gray)) >> 8; - b = (u16)((240 * gray)) >> 8; + r = (u16)((Q_8_8(1.2) * gray)) >> 8; + g = (u16)((Q_8_8(1.0) * gray)) >> 8; + b = (u16)((Q_8_8(0.94) * gray)) >> 8; if (r > 31) r = 31; - *palette = (b << 10) | (g << 5) | (r << 0); + *palette++ = (b << 10) | (g << 5) | (r << 0); } } void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone) { - s32 r, g, b, gray; - s32 i; + s32 r, g, b, i; + u32 gray; - for (i = 0; i < count; palette++, i++) + for (i = 0; i < count; i++) { r = (*palette >> 0) & 0x1F; g = (*palette >> 5) & 0x1F; b = (*palette >> 10) & 0x1F; - gray = (r * 76 + g * 151 + b * 29) >> 8; + gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; r = (u16)((rTone * gray)) >> 8; g = (u16)((gTone * gray)) >> 8; @@ -939,7 +925,7 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b if (b > 31) b = 31; - *palette = (b << 10) | (g << 5) | (r << 0); + *palette++ = (b << 10) | (g << 5) | (r << 0); } } -- cgit v1.2.3 From 6a4967689e62e6a3276bbe2372e8066cdfacb6fd Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 13:48:02 -0600 Subject: more renaming --- asm/battle_anim_80A5C6C.s | 234 +-- asm/battle_anim_80A9C70.s | 12 +- asm/battle_anim_80D51AC.s | 86 +- asm/battle_anim_80FE840.s | 1870 +++++++++++------------ asm/battle_anim_815A0D4.s | 394 ++--- asm/battle_anim_8170478.s | 130 +- asm/battle_anim_sound_tasks.s | 30 +- asm/battle_link_817C95C.s | 230 +-- asm/battle_tower.s | 2 +- asm/contest.s | 24 +- asm/party_menu.s | 14 +- asm/pokemon_item_effect.s | 8 +- data/battle_scripts_1.s | 26 +- include/battle_anim.h | 14 +- include/battle_controllers.h | 112 +- include/battle_gfx_sfx_util.h | 4 +- include/battle_interface.h | 4 +- include/battle_link_817C95C.h | 2 +- include/battle_script_commands.h | 2 +- include/battle_util.h | 4 +- include/pokemon.h | 2 +- include/recorded_battle.h | 6 +- src/battle_ai_script_commands.c | 144 +- src/battle_ai_switch_items.c | 48 +- src/battle_anim.c | 142 +- src/battle_controller_link_opponent.c | 308 ++-- src/battle_controller_link_partner.c | 300 ++-- src/battle_controller_opponent.c | 332 ++--- src/battle_controller_player.c | 446 +++--- src/battle_controller_player_partner.c | 336 ++--- src/battle_controller_recorded_opponent.c | 300 ++-- src/battle_controller_recorded_player.c | 328 ++-- src/battle_controller_safari.c | 72 +- src/battle_controller_wally.c | 200 +-- src/battle_controllers.c | 340 ++--- src/battle_gfx_sfx_util.c | 95 +- src/battle_interface.c | 54 +- src/battle_main.c | 454 +++--- src/battle_message.c | 66 +- src/battle_script_commands.c | 2302 ++++++++++++++--------------- src/battle_util.c | 464 +++--- src/battle_util2.c | 14 +- src/item_use.c | 4 +- src/pokeball.c | 88 +- src/pokemon_2.c | 8 +- src/pokemon_3.c | 22 +- src/pokemon_animation.c | 4 +- src/recorded_battle.c | 28 +- src/reshow_battle_screen.c | 98 +- sym_common.txt | 4 +- sym_ewram.txt | 10 +- 51 files changed, 5109 insertions(+), 5112 deletions(-) diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index 12aa61185..202861b83 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -5,8 +5,8 @@ .text - thumb_func_start GetBankCoord -GetBankCoord: @ 80A5C6C + thumb_func_start GetBattlerSpriteCoord +GetBattlerSpriteCoord: @ 80A5C6C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -102,7 +102,7 @@ _080A5D28: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A5D98 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -120,7 +120,7 @@ _080A5D60: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A5D98 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -154,7 +154,7 @@ _080A5DB0: pop {r4,r5} pop {r1} bx r1 - thumb_func_end GetBankCoord + thumb_func_end GetBattlerSpriteCoord thumb_func_start sub_80A5DB8 sub_80A5DB8: @ 80A5DB8 @@ -203,7 +203,7 @@ _080A5E04: ldrh r0, [r0, 0x2] cmp r0, 0 bne _080A5E3C - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -293,7 +293,7 @@ _080A5EC8: ldrh r0, [r0, 0x2] cmp r0, 0 bne _080A5F04 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -577,7 +577,7 @@ _080A611C: _080A6126: adds r0, r4, 0 adds r1, r5, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord _080A612E: lsls r0, 24 lsrs r0, 24 @@ -586,18 +586,18 @@ _080A612E: bx r1 thumb_func_end sub_80A60AC - thumb_func_start GetBankSpriteDefault_Y -GetBankSpriteDefault_Y: @ 80A6138 + thumb_func_start GetBattlerSpriteDefault_Y +GetBattlerSpriteDefault_Y: @ 80A6138 push {lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x4 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end GetBankSpriteDefault_Y + thumb_func_end GetBattlerSpriteDefault_Y thumb_func_start GetSubstituteSpriteDefault_Y GetSubstituteSpriteDefault_Y: @ 80A614C @@ -611,7 +611,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C beq _080A6170 adds r0, r4, 0 movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 bl IsContest @@ -662,7 +662,7 @@ sub_80A6190: @ 80A6190 ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A621C - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -680,7 +680,7 @@ _080A61E4: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A621C - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -716,56 +716,56 @@ _080A6238: bx r1 thumb_func_end sub_80A6190 - thumb_func_start GetAnimBankSpriteId -GetAnimBankSpriteId: @ 80A6240 + thumb_func_start GetBattlerSpriteId +GetBattlerSpriteId: @ 80A6240 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 bne _080A6268 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] - bl IsBankSpritePresent + bl IsBattlerSpritePresent lsls r0, 24 cmp r0, 0 beq _080A62B6 - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r4] b _080A62C6 .pool _080A6268: cmp r0, 0x1 bne _080A6288 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] - bl IsBankSpritePresent + bl IsBattlerSpritePresent lsls r0, 24 cmp r0, 0 beq _080A62B6 - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r4] b _080A62C6 .pool _080A6288: cmp r1, 0x2 bne _080A62A4 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r4, 0x2 eors r0, r4 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A62B6 b _080A62C0 .pool _080A62A4: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _080A62C0 @@ -774,7 +774,7 @@ _080A62B6: b _080A62CA .pool _080A62C0: - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r5] eors r0, r4 _080A62C6: @@ -785,7 +785,7 @@ _080A62CA: pop {r1} bx r1 .pool - thumb_func_end GetAnimBankSpriteId + thumb_func_end GetBattlerSpriteId thumb_func_start StoreSpriteCallbackInData6 StoreSpriteCallbackInData6: @ 80A62D4 @@ -1242,16 +1242,16 @@ sub_80A65EC: @ 80A65EC ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -1439,16 +1439,16 @@ sub_80A6760: @ 80A6760 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x34] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -1547,16 +1547,16 @@ sub_80A6814: @ 80A6814 sub_80A6838: @ 80A6838 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1575,16 +1575,16 @@ sub_80A6864: @ 80A6864 lsls r1, 16 lsrs r5, r1, 16 mov r8, r5 - ldr r7, =gAnimBankAttacker + ldr r7, =gBattleAnimAttacker ldrb r0, [r7] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r6, r0 @@ -1729,7 +1729,7 @@ sub_80A6980: @ 80A6980 lsls r1, 24 cmp r1, 0 bne _080A69A8 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 bl sub_80A60AC @@ -1765,7 +1765,7 @@ sub_80A69CC: @ 80A69CC lsls r1, 24 cmp r1, 0 bne _080A69F0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A60AC @@ -1777,7 +1777,7 @@ sub_80A69CC: @ 80A69CC b _080A6A04 .pool _080A69F0: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl sub_80A60AC @@ -1862,8 +1862,8 @@ _080A6A7E: .pool thumb_func_end GetBattlerAtPosition - thumb_func_start IsBankSpritePresent -IsBankSpritePresent: @ 80A6A90 + thumb_func_start IsBattlerSpritePresent +IsBattlerSpritePresent: @ 80A6A90 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -1872,11 +1872,11 @@ IsBankSpritePresent: @ 80A6A90 lsls r0, 24 cmp r0, 0 beq _080A6ABC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] cmp r0, r4 beq _080A6B0A - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] cmp r0, r4 beq _080A6B0A @@ -1893,7 +1893,7 @@ _080A6ABC: lsls r0, 24 cmp r0, 0 beq _080A6AF0 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -1903,7 +1903,7 @@ _080A6ABC: b _080A6AFE .pool _080A6AF0: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] @@ -1926,7 +1926,7 @@ _080A6B1A: pop {r4,r5} pop {r1} bx r1 - thumb_func_end IsBankSpritePresent + thumb_func_end IsBattlerSpritePresent thumb_func_start IsDoubleBattle IsDoubleBattle: @ 80A6B20 @@ -2061,7 +2061,7 @@ sub_80A6BFC: @ 80A6BFC b _080A6C60 .pool _080A6C30: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -2889,7 +2889,7 @@ sub_80A7238: @ 80A7238 beq _080A7268 ldr r4, =gSprites movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -2934,7 +2934,7 @@ sub_80A7270: @ 80A7270 cmp r0, 0 bne _080A72A6 adds r0, r7, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A72B4 @@ -3372,7 +3372,7 @@ _080A75F6: _080A7602: cmp r7, 0 beq _080A7614 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3383,7 +3383,7 @@ _080A7614: mov r0, r8 cmp r0, 0 beq _080A7628 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r1, r0, 0 adds r1, 0x10 @@ -3394,11 +3394,11 @@ _080A7628: mov r0, r9 cmp r0, 0 beq _080A764E - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A764E @@ -3413,11 +3413,11 @@ _080A764E: mov r0, r10 cmp r0, 0 beq _080A7674 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A7674 @@ -3499,7 +3499,7 @@ _080A76F2: bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A771A @@ -3517,7 +3517,7 @@ _080A771A: bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A7746 @@ -3537,7 +3537,7 @@ _080A7746: bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A7772 @@ -3558,7 +3558,7 @@ _080A7772: bl GetBattlerAtPosition lsls r0, 24 lsrs r0, 24 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A77A0 @@ -3670,7 +3670,7 @@ _080A7838: _080A7842: adds r0, r5, 0 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3682,10 +3682,10 @@ _080A7842: _080A785C: ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -3716,7 +3716,7 @@ sub_80A78AC: @ 80A78AC adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3730,10 +3730,10 @@ _080A78CC: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -3799,17 +3799,17 @@ _080A7954: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _080A7976 .pool _080A796C: adds r0, r5, 0 adds r1, r4, 0 bl sub_80A6980 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _080A7976: ldrb r6, [r0] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3828,7 +3828,7 @@ _080A798E: strh r0, [r5, 0x2E] adds r0, r6, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -3858,7 +3858,7 @@ duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF @@ -4084,7 +4084,7 @@ sub_80A7B98: @ 80A7B98 lsrs r4, r0, 24 ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -4539,7 +4539,7 @@ sub_80A7F18: @ 80A7F18 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldr r7, =0x00000181 ldr r0, =gBattleMonForms adds r6, r5, r0 @@ -4579,7 +4579,7 @@ _080A7F78: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A7FC0 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4614,7 +4614,7 @@ _080A7FD8: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A8010 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -4837,14 +4837,14 @@ sub_80A8174: @ 80A8174 lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A81B4 ldr r2, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] @@ -4863,15 +4863,15 @@ sub_80A8174: @ 80A8174 orrs r0, r2 strb r0, [r1, 0x5] _080A81B4: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker mov r8, r0 ldrb r0, [r0] - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A81EC ldr r2, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds mov r3, r8 ldrb r0, [r3] adds r0, r1 @@ -4894,12 +4894,12 @@ _080A81EC: ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A8224 ldr r2, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r6] eors r0, r5 adds r0, r1 @@ -4922,12 +4922,12 @@ _080A8224: mov r1, r8 ldrb r0, [r1] eors r0, r5 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A825C ldr r2, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds mov r3, r8 ldrb r0, [r3] eors r0, r5 @@ -4968,13 +4968,13 @@ _080A8286: lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080A82C8 adds r0, r4, 0 bl sub_80A82E4 - ldr r3, =gBankSpriteIds + ldr r3, =gBattlerSpriteIds adds r3, r5, r3 ldrb r2, [r3] lsls r1, r2, 4 @@ -5499,7 +5499,7 @@ _080A86C4: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A871C - ldr r0, =gBattlePartyID + ldr r0, =gBattlerPartyIndexes mov r1, r8 lsls r4, r1, 1 adds r4, r0 @@ -5589,7 +5589,7 @@ _080A8790: ldrh r0, [r1, 0x2] cmp r0, 0 bne _080A87DC - ldr r0, =gBattlePartyID + ldr r0, =gBattlerPartyIndexes mov r1, r8 lsls r4, r1, 1 adds r4, r0 @@ -5713,7 +5713,7 @@ _080A88A6: _080A88AE: mov r0, r8 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5722,7 +5722,7 @@ _080A88AE: _080A88C0: mov r0, r8 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5731,7 +5731,7 @@ _080A88C0: _080A88D2: mov r0, r8 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5744,7 +5744,7 @@ _080A88E4: _080A88EA: mov r0, r8 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5757,7 +5757,7 @@ _080A88FC: _080A8902: mov r0, r8 movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -5798,13 +5798,13 @@ _080A8942: _080A8946: adds r0, r4, 0 adds r1, r5, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r4, 0 adds r1, r6, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 adds r1, r6, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r3, r0, 24 mov r0, r8 @@ -5941,7 +5941,7 @@ sub_80A8A6C: @ 80A8A6C push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5998,7 +5998,7 @@ _080A8AB6: sub_80A8AEC: @ 80A8AEC push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -6054,7 +6054,7 @@ sub_80A8B64: @ 80A8B64 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -6101,12 +6101,12 @@ sub_80A8BC4: @ 80A8BC4 ldr r0, =gTasks adds r5, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x8] - ldr r7, =gAnimBankAttacker + ldr r7, =gBattleAnimAttacker ldrb r0, [r7] bl GetBattlerSide lsls r0, 24 @@ -6389,16 +6389,16 @@ _080A8E26: sub_80A8E30: @ 80A8E30 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -6487,7 +6487,7 @@ sub_80A8EE4: @ 80A8EE4 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x36] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s index 82981ff21..755653156 100644 --- a/asm/battle_anim_80A9C70.s +++ b/asm/battle_anim_80A9C70.s @@ -17,7 +17,7 @@ sub_80A9C70: @ 80A9C70 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r6, [r0] ldr r0, =sub_80A9DB4 @@ -331,10 +331,10 @@ sub_80A9EF4: @ 80A9EF4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 ldr r1, =0xffdc0000 @@ -863,9 +863,9 @@ LaunchStatusAnimation: @ 80AA364 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker strb r4, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget strb r4, [r0] ldr r0, =gBattleAnims_Statuses movs r2, 0 diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s index 514bf2594..7714d1a2f 100644 --- a/asm/battle_anim_80D51AC.s +++ b/asm/battle_anim_80D51AC.s @@ -12,7 +12,7 @@ sub_80D51AC: @ 80D51AC lsrs r5, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF @@ -165,7 +165,7 @@ sub_80D52D0: @ 80D52D0 bgt _080D52FC lsls r0, 24 lsrs r0, 24 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -204,19 +204,19 @@ _080D5326: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _080D533C movs r6, 0x1 _080D533C: - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 b _080D5350 .pool _080D5348: - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 _080D5350: @@ -379,7 +379,7 @@ sub_80D5484: @ 80D5484 lsrs r5, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -603,7 +603,7 @@ sub_80D5644: @ 80D5644 lsrs r4, 24 ldr r5, =gBattleAnimArgs ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -723,7 +723,7 @@ sub_80D5738: @ 80D5738 movs r6, 0x1 ldr r4, =gBattleAnimArgs ldrb r0, [r4] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 movs r1, 0x8 @@ -842,7 +842,7 @@ sub_80D5830: @ 80D5830 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -871,7 +871,7 @@ sub_80D5860: @ 80D5860 movs r1, 0x4 orrs r0, r1 strb r0, [r2] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -891,8 +891,8 @@ _080D5894: movs r0, 0 strh r2, [r4, 0x2E] strh r0, [r4, 0x32] - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -938,7 +938,7 @@ sub_80D58F8: @ 80D58F8 strb r0, [r2] ldr r5, =gBattleAnimArgs ldrb r0, [r5, 0x4] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldrh r2, [r5] @@ -987,13 +987,13 @@ sub_80D5968: @ 80D5968 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D598C - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker b _080D5990 .pool _080D598C: - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankTarget + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimTarget _080D5990: ldrb r0, [r0] adds r0, r1 @@ -1133,14 +1133,14 @@ sub_80D5A94: @ 80D5A94 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D5AB0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _080D5AB2 .pool _080D5AB0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _080D5AB2: ldrb r2, [r0] - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r2, r0 ldrb r6, [r0] adds r0, r2, 0 @@ -1218,14 +1218,14 @@ sub_80D5B48: @ 80D5B48 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D5B70 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _080D5B72 .pool _080D5B70: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _080D5B72: ldrb r1, [r0] - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r1, r0 ldrb r7, [r0] adds r0, r1, 0 @@ -1338,7 +1338,7 @@ sub_80D5C50: @ 80D5C50 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1352,7 +1352,7 @@ sub_80D5C50: @ 80D5C50 strh r0, [r5, 0xA] _080D5C82: ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r1, =gTasks lsls r4, r6, 2 adds r4, r6 @@ -1508,7 +1508,7 @@ sub_80D5DB0: @ 80D5DB0 cmp r0, 0 blt _080D5E10 ldrb r0, [r1] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r2, r0, 24 b _080D5E18 @@ -1518,20 +1518,20 @@ _080D5DD8: beq _080D5DE8 b _080D5E10 _080D5DDE: - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker b _080D5DEA .pool _080D5DE8: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget _080D5DEA: ldrb r0, [r5] movs r4, 0x2 eors r0, r4 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _080D5E10 - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r5] eors r0, r4 adds r0, r1 @@ -1549,7 +1549,7 @@ _080D5E18: lsls r0, 3 adds r5, r0, r1 strh r2, [r5, 0x8] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1622,7 +1622,7 @@ sub_80D5EB8: @ 80D5EB8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 @@ -1635,7 +1635,7 @@ sub_80D5EB8: @ 80D5EB8 _080D5ED4: ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x8] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks @@ -1660,7 +1660,7 @@ _080D5ED4: b _080D5F18 .pool _080D5F14: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] _080D5F18: strh r0, [r2, 0x12] @@ -1836,7 +1836,7 @@ sub_80D6064: @ 80D6064 lsrs r4, 24 ldr r6, =gBattleAnimArgs ldrb r0, [r6, 0x6] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 @@ -1939,7 +1939,7 @@ sub_80D6134: @ 80D6134 lsrs r7, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x4] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -1995,11 +1995,11 @@ _080D61B8: ldrsh r0, [r6, r1] cmp r0, 0 bne _080D61C8 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _080D61CA .pool _080D61C8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _080D61CA: ldrb r0, [r0] bl GetBattlerSide @@ -2057,7 +2057,7 @@ sub_80D622C: @ 80D622C lsrs r5, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x4] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -2076,11 +2076,11 @@ sub_80D622C: @ 80D622C ldrsh r0, [r4, r1] cmp r0, 0 bne _080D6274 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _080D6276 .pool _080D6274: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _080D6276: ldrb r0, [r0] bl GetBattlerSide @@ -2290,7 +2290,7 @@ _080D63EE: ldrh r0, [r1, 0x8] strh r0, [r4, 0x1E] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 7671f473d..5cbaf41f7 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -22,7 +22,7 @@ sub_80FE840: @ 80FE840 strh r0, [r4, 0x2E] ldrh r0, [r5, 0x6] strh r0, [r4, 0x30] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -96,16 +96,16 @@ sub_80FE8E0: @ 80FE8E0 ldr r0, =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -132,16 +132,16 @@ sub_80FE930: @ 80FE930 bl StartSpriteAnim ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -167,10 +167,10 @@ sub_80FE988: @ 80FE988 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -212,14 +212,14 @@ _080FE9FA: ldrsh r0, [r4, r1] cmp r0, 0x7F ble _080FEA14 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 b _080FEA1E .pool _080FEA14: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x6 @@ -287,7 +287,7 @@ sub_80FEA58: @ 80FEA58 strh r0, [r1, 0x4] strh r2, [r1, 0x6] ldr r4, =gUnknown_08592210 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 adds r3, r0, 0 @@ -321,16 +321,16 @@ sub_80FEAD8: @ 80FEAD8 ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -374,16 +374,16 @@ sub_80FEB44: @ 80FEB44 ands r1, r0 adds r0, r5, 0 bl StartSpriteAnim - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -410,10 +410,10 @@ _080FEB94: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -494,7 +494,7 @@ sub_80FEC48: @ 80FEC48 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -508,10 +508,10 @@ _080FEC68: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -655,7 +655,7 @@ sub_80FED74: @ 80FED74 lsrs r0, 16 cmp r0, 0x7F bhi _080FEDC8 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -669,7 +669,7 @@ sub_80FED74: @ 80FED74 b _080FEDEC .pool _080FEDC8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 adds r0, 0x1 @@ -730,7 +730,7 @@ _080FEE36: bl DestroyAnimVisualTask b _080FEE70 _080FEE3E: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -771,10 +771,10 @@ sub_80FEE78: @ 80FEE78 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] @@ -823,14 +823,14 @@ sub_80FEECC: @ 80FEECC lsrs r0, 16 cmp r0, 0x7F bhi _080FEF18 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 b _080FEF22 .pool _080FEF18: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 @@ -868,10 +868,10 @@ sub_80FEF44: @ 80FEF44 strh r0, [r4, 0x32] ldrh r0, [r4, 0x22] strh r0, [r4, 0x34] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] @@ -950,16 +950,16 @@ _080FEFF6: sub_80FEFFC: @ 80FEFFC push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -1026,7 +1026,7 @@ _080FF08C: sub_80FF090: @ 80FF090 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1080,7 +1080,7 @@ sub_80FF0F4: @ 80FF0F4 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1098,10 +1098,10 @@ _080FF114: ldrsh r0, [r6, r1] cmp r0, 0 bne _080FF154 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -1117,7 +1117,7 @@ _080FF114: b _080FF174 .pool _080FF154: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -1139,11 +1139,11 @@ _080FF174: strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80A68D4 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r4, 24 @@ -1265,7 +1265,7 @@ sub_80FF268: @ 80FF268 lsrs r0, 24 cmp r0, 0x1 bne _080FF28A - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -1350,7 +1350,7 @@ _080FF2F8: ldrsh r0, [r4, r1] cmp r0, 0x7F bgt _080FF338 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -1359,7 +1359,7 @@ _080FF2F8: b _080FF346 .pool _080FF338: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -1434,7 +1434,7 @@ sub_80FF3B0: @ 80FF3B0 ands r0, r1 strb r0, [r2] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x2E] @@ -1452,7 +1452,7 @@ sub_80FF3EC: @ 80FF3EC push {r4,lr} adds r4, r0, 0 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 @@ -1517,7 +1517,7 @@ sub_80FF458: @ 80FF458 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gSprites @@ -1550,7 +1550,7 @@ _080FF498: lsls r0, 28 lsrs r0, 30 strh r0, [r6, 0x24] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget mov r9, r0 ldrb r0, [r0] bl sub_80A8328 @@ -1567,7 +1567,7 @@ _080FF498: orrs r0, r1 strb r0, [r7, 0x5] movs r0, 0x3 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 lsls r4, r1, 4 @@ -1618,7 +1618,7 @@ sub_80FF53C: @ 80FF53C lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -1639,7 +1639,7 @@ sub_80FF53C: @ 80FF53C lsls r1, 16 asrs r1, 24 strh r1, [r5, 0x24] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1698,7 +1698,7 @@ sub_80FF5CC: @ 80FF5CC cmp r5, 0 bne _080FF674 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -1723,7 +1723,7 @@ sub_80FF5CC: @ 80FF5CC orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x3 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -1785,7 +1785,7 @@ sub_80FF698: @ 80FF698 beq _080FF704 b _080FF756 _080FF6AA: - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 @@ -1799,7 +1799,7 @@ _080FF6AA: _080FF6C2: ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -1845,16 +1845,16 @@ _080FF704: bl ChangeSpriteAffineAnim movs r0, 0x19 strh r0, [r5, 0x2E] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -1878,16 +1878,16 @@ sub_80FF768: @ 80FF768 ldrsh r0, [r5, r1] cmp r0, 0 bne _080FF7D4 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1941,31 +1941,31 @@ sub_80FF7EC: @ 80FF7EC push {r4-r6} sub sp, 0x4 mov r9, r0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r2, r0, 0 lsls r2, 24 subs r4, r5 @@ -2095,10 +2095,10 @@ sub_80FF934: @ 80FF934 ldrsh r0, [r6, r1] cmp r0, 0 bne _080FF974 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -2349,18 +2349,18 @@ sub_80FFB18: @ 80FFB18 adds r5, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -2453,10 +2453,10 @@ _080FFBEC: sub_80FFBF4: @ 80FFBF4 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] @@ -2551,18 +2551,18 @@ sub_80FFCB4: @ 80FFCB4 adds r5, r0, 0 movs r1, 0 bl sub_80A6980 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r2, r0, 24 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -2954,7 +2954,7 @@ sub_80FFFC0: @ 80FFFC0 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] bl sub_80A82E4 lsls r0, 24 @@ -2963,13 +2963,13 @@ sub_80FFFC0: @ 80FFFC0 strh r0, [r5, 0x10] ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -3772,11 +3772,11 @@ sub_8100640: @ 8100640 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810065C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810065E .pool _0810065C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810065E: ldrb r6, [r0] adds r0, r6, 0 @@ -3837,7 +3837,7 @@ _081006CE: _081006D4: adds r0, r6, 0 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5] @@ -3857,17 +3857,17 @@ _081006E4: strb r0, [r4, 0x5] b _08100738 _08100700: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r7, [r7] adds r0, r7 strh r0, [r4, 0x22] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId _0810071A: adds r0, r6, 0 bl sub_80A8328 @@ -4074,20 +4074,20 @@ _081008B4: ldrsh r0, [r1, r3] cmp r0, 0 bne _081008C4 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _081008C6 .pool _081008C4: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _081008C6: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gBattleAnimArgs @@ -4237,7 +4237,7 @@ _081009F2: sub_81009F8: @ 81009F8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4277,7 +4277,7 @@ _08100A2C: sub_8100A50: @ 8100A50 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4343,16 +4343,16 @@ sub_8100A94: @ 8100A94 sub_8100AE0: @ 8100AE0 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -4439,12 +4439,12 @@ sub_8100B88: @ 8100B88 b _08100C24 .pool _08100BA8: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r4, 0x2 eors r0, r4 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] @@ -4453,15 +4453,15 @@ _08100BA8: b _08100C34 .pool _08100BC8: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] @@ -4469,7 +4469,7 @@ _08100BC8: mov r8, r2 mov r1, r8 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _08100C3E @@ -4477,7 +4477,7 @@ _08100BC8: mov r2, r8 eors r0, r2 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -4486,7 +4486,7 @@ _08100BC8: mov r1, r8 eors r0, r1 movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -4494,22 +4494,22 @@ _08100BC8: b _08100C3E .pool _08100C24: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] _08100C34: movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r4, r0, 24 _08100C3E: strh r7, [r6, 0x20] strh r4, [r6, 0x22] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4754,7 +4754,7 @@ sub_8100E1C: @ 8100E1C ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4866,7 +4866,7 @@ sub_8100EF0: @ 8100EF0 adds r0, 0x8 strh r0, [r1, 0x2] _08100F06: - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0 bl sub_80A60AC @@ -5090,17 +5090,17 @@ _081010C2: sub_81010CC: @ 81010CC push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldr r1, =0x0000ffe8 @@ -5426,11 +5426,11 @@ sub_810135C: @ 810135C ldrsh r0, [r0, r1] cmp r0, 0 bne _08101378 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810137A .pool _08101378: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810137A: ldrb r6, [r0] bl IsDoubleBattle @@ -5440,7 +5440,7 @@ _0810137A: movs r1, 0x2 adds r0, r6, 0 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _081013C4 @@ -5470,7 +5470,7 @@ _081013C4: bne _081013E8 adds r0, r6, 0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -5481,14 +5481,14 @@ _081013C4: _081013E8: adds r0, r6, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 _081013FA: - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -5523,7 +5523,7 @@ sub_8101440: @ 8101440 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5611,7 +5611,7 @@ sub_81014F4: @ 81014F4 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5885,17 +5885,17 @@ _08101718: strh r1, [r5, 0x24] movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -6199,7 +6199,7 @@ sub_8101998: @ 8101998 adds r4, r0, 0 movs r0, 0x6 strh r0, [r4, 0x2E] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -6213,7 +6213,7 @@ _081019B6: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -6237,8 +6237,8 @@ sub_81019E8: @ 81019E8 ldrsh r6, [r5, r0] cmp r6, 0 bne _08101A24 - ldr r1, =gBankSpriteIds - ldr r4, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -6301,7 +6301,7 @@ sub_8101A74: @ 8101A74 adds r4, r0, 0 movs r0, 0x4 strh r0, [r4, 0x2E] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -6315,7 +6315,7 @@ _08101A92: strh r1, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -6360,8 +6360,8 @@ sub_8101AE8: @ 8101AE8 ldrsh r0, [r5, r1] cmp r0, 0 bne _08101B38 - ldr r1, =gBankSpriteIds - ldr r4, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -6465,8 +6465,8 @@ _08101BB6: b _08101C8E _08101BBC: strh r5, [r4, 0x30] - ldr r1, =gBankSpriteIds - ldr r2, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -6575,8 +6575,8 @@ sub_8101C94: @ 8101C94 adds r0, r6 lsls r0, 3 adds r5, r0, r1 - ldr r1, =gBankSpriteIds - ldr r2, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -6922,15 +6922,15 @@ sub_8101F40: @ 8101F40 ldrsh r0, [r6, r1] cmp r0, 0 bne _08101F5C - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _08101F5E .pool _08101F5C: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _08101F5E: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -6962,10 +6962,10 @@ _08101F5E: sub_8101FA8: @ 8101FA8 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -6992,10 +6992,10 @@ sub_8101FA8: @ 8101FA8 sub_8101FF0: @ 8101FF0 push {r4-r6,lr} adds r4, r0, 0 - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -7115,15 +7115,15 @@ sub_81020D8: @ 81020D8 ldrsh r0, [r6, r1] cmp r0, 0 bne _081020F4 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _081020F6 .pool _081020F4: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _081020F6: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7191,17 +7191,17 @@ _08102178: sub_810217C: @ 810217C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0xC @@ -7316,10 +7316,10 @@ sub_8102268: @ 8102268 ldrsh r0, [r6, r1] cmp r0, 0 bne _081022B2 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x2] @@ -7465,16 +7465,16 @@ _08102390: strb r0, [r2] movs r0, 0x1E strh r0, [r5, 0x2E] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -7544,7 +7544,7 @@ sub_8102434: @ 8102434 cmp r4, r0 bcs _08102490 ldr r6, =gBattleAnimArgs - ldr r5, =gHealthBoxesIds + ldr r5, =gHealthboxSpriteIds _08102448: movs r1, 0 ldrsh r0, [r6, r1] @@ -7597,7 +7597,7 @@ sub_81024A8: @ 81024A8 movs r4, 0 b _081024C2 _081024B2: - ldr r0, =gHealthBoxesIds + ldr r0, =gHealthboxSpriteIds adds r0, r4, r0 ldrb r0, [r0] bl SetHealthboxSpriteVisible @@ -7673,10 +7673,10 @@ _0810253A: sub_8102540: @ 8102540 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r2, =gBattleAnimArgs lsrs r0, 24 @@ -8068,10 +8068,10 @@ _08102862: strh r0, [r5, 0x2E] ldrh r0, [r6, 0x4] strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] @@ -8113,7 +8113,7 @@ _08102862: b _081028FA .pool _081028D4: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -8237,7 +8237,7 @@ sub_81029B4: @ 81029B4 ldr r1, =gTasks adds r6, r0, r1 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x8] @@ -8333,7 +8333,7 @@ _08102A88: _08102A9A: ldr r0, =sub_8102AE0 str r0, [r6] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -8374,7 +8374,7 @@ sub_8102AE0: @ 8102AE0 ldrsh r0, [r0, r1] cmp r0, 0 bne _08102B32 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -8657,15 +8657,15 @@ _08102D10: b _08102D4E .pool _08102D34: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r3, r0, 24 _08102D4E: @@ -8855,7 +8855,7 @@ _08102EA6: sub_8102EB0: @ 8102EB0 push {r4-r7,lr} adds r6, r0, 0 - ldr r7, =gAnimBankAttacker + ldr r7, =gBattleAnimAttacker ldrb r0, [r7] bl GetBattlerSide lsls r0, 24 @@ -8870,7 +8870,7 @@ sub_8102EB0: @ 8102EB0 _08102ECE: ldrb r0, [r7] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] @@ -9002,17 +9002,17 @@ sub_8102FB8: @ 8102FB8 _08102FDC: ldr r6, =0x0000fff0 _08102FDE: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 adds r0, r5, 0 movs r1, 0 @@ -9197,11 +9197,11 @@ sub_8103164: @ 8103164 ldrsh r0, [r0, r1] cmp r0, 0 bne _08103180 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08103182 .pool _08103180: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08103182: ldrb r4, [r0] adds r0, r4, 0 @@ -9268,11 +9268,11 @@ sub_8103208: @ 8103208 ldrsh r0, [r0, r1] cmp r0, 0 bne _08103224 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08103226 .pool _08103224: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08103226: ldrb r0, [r0] adds r1, r4, 0 @@ -9325,16 +9325,16 @@ sub_8103284: @ 8103284 ldrsh r0, [r0, r1] cmp r0, 0 bne _081032A0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _081032A2 .pool _081032A0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _081032A2: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r6, 0 @@ -9463,11 +9463,11 @@ sub_8103390: @ 8103390 ldrsh r0, [r0, r1] cmp r0, 0 bne _081033AC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _081033AE .pool _081033AC: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _081033AE: ldrb r4, [r0] adds r0, r4, 0 @@ -9591,11 +9591,11 @@ sub_8103498: @ 8103498 ldrsh r0, [r0, r1] cmp r0, 0 bne _081034B4 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _081034B6 .pool _081034B4: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _081034B6: ldrb r0, [r0] adds r1, r4, 0 @@ -9716,21 +9716,21 @@ _0810357A: sub_810358C: @ 810358C push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankTarget + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] @@ -9846,8 +9846,8 @@ sub_81036A0: @ 81036A0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -9871,8 +9871,8 @@ sub_81036DC: @ 81036DC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r1, r0, r1 ldrb r4, [r1] @@ -9992,7 +9992,7 @@ sub_81037D8: @ 81037D8 push {r4,r5,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -10018,7 +10018,7 @@ _08103810: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -10117,7 +10117,7 @@ sub_81038C8: @ 81038C8 b _0810390E .pool _081038EC: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -10137,10 +10137,10 @@ _0810390E: adds r0, r5, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r6, =gBattleAnimArgs lsrs r0, 24 @@ -10151,7 +10151,7 @@ _0810390E: mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x6] @@ -10677,7 +10677,7 @@ _08103D54: b _08103DB6 _08103D5C: ldr r1, =gBattlerPositions - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -10716,10 +10716,10 @@ _08103DB0: _08103DB4: strh r0, [r2, 0x4] _08103DB6: - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -10742,11 +10742,11 @@ _08103DB6: ands r0, r1 cmp r0, 0 beq _08103E20 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r1, [r4] movs r0, 0x2 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _08103E20 @@ -10759,16 +10759,16 @@ _08103DB6: .pool _08103E20: mov r5, sp - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r1, r10 @@ -10897,7 +10897,7 @@ _08103F28: asrs r0, 16 cmp r0, 0x3F ble _08103FA0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10914,7 +10914,7 @@ _08103F78: asrs r0, 16 cmp r0, 0x3F ble _08103FA0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -10927,7 +10927,7 @@ _08103F78: b _08103FB0 .pool _08103FA0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -11050,15 +11050,15 @@ sub_8104088: @ 8104088 adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -11066,7 +11066,7 @@ sub_8104088: @ 8104088 adds r0, r1 lsls r0, 16 lsrs r7, r0, 16 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11145,7 +11145,7 @@ sub_8104154: @ 8104154 lsls r0, 16 asrs r0, 24 strh r0, [r4, 0x24] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11200,16 +11200,16 @@ sub_81041C4: @ 81041C4 bl sub_80A69CC movs r0, 0x14 strh r0, [r4, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -11352,7 +11352,7 @@ sub_8104304: @ 8104304 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11423,17 +11423,17 @@ _08104390: strh r0, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 add r0, r8 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -11510,10 +11510,10 @@ _08104448: movs r0, 0x6 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -11678,7 +11678,7 @@ sub_81045B0: @ 81045B0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -11735,7 +11735,7 @@ sub_8104614: @ 8104614 cmp r1, r0 bne _08104664 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -11771,7 +11771,7 @@ sub_8104674: @ 8104674 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 @@ -11786,7 +11786,7 @@ sub_8104674: @ 8104674 strh r0, [r4, 0x10] strh r5, [r4, 0x12] strh r5, [r4, 0x14] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -12129,7 +12129,7 @@ sub_8104938: @ 8104938 .pool _08104964: ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12303,7 +12303,7 @@ sub_8104AB4: @ 8104AB4 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12345,7 +12345,7 @@ _08104B10: sub_8104B1C: @ 8104B1C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -12356,7 +12356,7 @@ sub_8104B1C: @ 8104B1C bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -12370,7 +12370,7 @@ _08104B50: bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x20 @@ -12378,10 +12378,10 @@ _08104B50: ldr r0, =0x0000ffc0 _08104B6A: strh r0, [r4, 0x30] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -12411,11 +12411,11 @@ sub_8104BAC: @ 8104BAC ldrsh r0, [r0, r1] cmp r0, 0 bne _08104BC8 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08104BCA .pool _08104BC8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08104BCA: ldrb r5, [r0] adds r0, r5, 0 @@ -12432,7 +12432,7 @@ _08104BCA: _08104BE4: adds r0, r5, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x4] @@ -12476,7 +12476,7 @@ sub_8104C38: @ 8104C38 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12528,7 +12528,7 @@ sub_8104CA4: @ 8104CA4 ldr r0, =gTasks adds r4, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r2, 0 @@ -12559,7 +12559,7 @@ sub_8104CA4: @ 8104CA4 strh r2, [r4, 0x18] movs r0, 0x2 strh r0, [r4, 0x1A] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12759,7 +12759,7 @@ sub_8104E74: @ 8104E74 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] bl sub_80A6190 lsls r0, 24 @@ -12959,10 +12959,10 @@ _0810500E: sub_810501C: @ 810501C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -13194,11 +13194,11 @@ sub_81051C4: @ 81051C4 adds r1, r0, 0 cmp r2, 0 bne _081051F0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _081051F2 .pool _081051F0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _081051F2: ldrb r5, [r0] ldrb r1, [r1, 0x6] @@ -13212,7 +13212,7 @@ _081051F2: movs r1, 0x2 adds r0, r5, 0 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810526A @@ -13231,7 +13231,7 @@ _08105230: adds r0, r5, 0 movs r1, 0x2 _08105234: - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 @@ -13305,15 +13305,15 @@ sub_81052A4: @ 81052A4 ldrsh r0, [r0, r2] cmp r0, 0 bne _081052DC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r7, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget b _081052E2 .pool _081052DC: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r7, [r0] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker _081052E2: ldrb r0, [r0] mov r8, r0 @@ -13341,7 +13341,7 @@ _08105310: beq _0810536C adds r0, r7, 0 mov r1, r10 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -13354,25 +13354,25 @@ _08105310: mov r4, r8 eors r4, r0 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810535C ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 b _081053EA .pool _0810535C: ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds add r0, r8 b _081053EA .pool _0810536C: adds r0, r7, 0 mov r1, r10 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleAnimArgs @@ -13389,12 +13389,12 @@ _0810536C: adds r4, r7, 0 eors r4, r0 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _081053E4 ldr r3, =gSprites - ldr r2, =gBankSpriteIds + ldr r2, =gBattlerSpriteIds adds r0, r7, r2 ldrb r1, [r0] lsls r0, r1, 4 @@ -13424,7 +13424,7 @@ _081053E0: b _081053F4 _081053E4: ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r7, r0 _081053EA: ldrb r1, [r0] @@ -13442,7 +13442,7 @@ _081053FA: strb r0, [r1] adds r0, r7, 0 ldr r1, [sp, 0x4] - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -13457,7 +13457,7 @@ _081053FA: movs r1, 0x2 mov r0, r8 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810544C @@ -13473,13 +13473,13 @@ _0810544C: mov r4, sp mov r0, r8 mov r1, r10 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, r8 ldr r1, [sp, 0x4] - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r2, sp @@ -13581,7 +13581,7 @@ sub_8105538: @ 8105538 adds r4, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -13622,7 +13622,7 @@ sub_810557C: @ 810557C strh r0, [r4, 0x24] subs r2, 0x20 strh r2, [r4, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -13873,7 +13873,7 @@ sub_810577C: @ 810577C ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -13950,7 +13950,7 @@ sub_8105810: @ 8105810 strh r0, [r4, 0xE] movs r0, 0x3 strh r0, [r4, 0x20] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -13968,7 +13968,7 @@ _08105850: _08105856: strh r0, [r4, 0x24] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14154,7 +14154,7 @@ sub_810599C: @ 810599C movs r0, 0x2 strh r0, [r4, 0x24] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14292,16 +14292,16 @@ sub_8105AAC: @ 8105AAC strh r0, [r4, 0x16] strh r0, [r4, 0x18] strh r0, [r4, 0x22] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] ldrb r0, [r5] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14684,7 +14684,7 @@ sub_8105DE8: @ 8105DE8 adds r5, r0, 0 movs r1, 0 bl sub_80A69CC - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 @@ -14700,7 +14700,7 @@ _08105E08: strh r0, [r5, 0x2E] ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -14939,7 +14939,7 @@ sub_8106020: @ 8106020 lsrs r0, 24 adds r6, r0, 0 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks @@ -14955,7 +14955,7 @@ sub_8106020: @ 8106020 cmp r0, 0x1 bne _0810607C movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -15004,7 +15004,7 @@ sub_81060B0: @ 81060B0 lsrs r0, 24 adds r6, r0, 0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks @@ -15020,7 +15020,7 @@ sub_81060B0: @ 81060B0 cmp r0, 0x1 bne _0810610C movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -15072,10 +15072,10 @@ sub_8106140: @ 8106140 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -15561,7 +15561,7 @@ _0810653A: b _0810658A .pool _08106578: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -15773,16 +15773,16 @@ _08106730: sub_810673C: @ 810673C push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -15924,16 +15924,16 @@ _08106868: sub_8106878: @ 8106878 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16029,16 +16029,16 @@ _08106940: sub_8106944: @ 8106944 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16314,7 +16314,7 @@ sub_8106B54: @ 8106B54 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -16505,21 +16505,21 @@ _08106CEC: ldrsh r0, [r1, r2] cmp r0, 0 bne _08106CFC - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _08106CFE .pool _08106CFC: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _08106CFE: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16593,7 +16593,7 @@ sub_8106D90: @ 8106D90 lsrs r5, 24 ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -16645,11 +16645,11 @@ sub_8106E00: @ 8106E00 ldrsh r0, [r0, r1] cmp r0, 0 bne _08106E1C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08106E1E .pool _08106E1C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08106E1E: ldrb r6, [r0] adds r0, r6, 0 @@ -16666,7 +16666,7 @@ _08106E1E: _08106E38: adds r0, r6, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x4] @@ -16992,11 +16992,11 @@ sub_81070AC: @ 81070AC ands r0, r1 cmp r0, 0 beq _081070F8 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r1, [r4] movs r0, 0x2 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _081070F8 @@ -17016,16 +17016,16 @@ sub_81070AC: @ 81070AC b _08107118 .pool _081070F8: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x28 @@ -17196,7 +17196,7 @@ _0810725A: sub_8107260: @ 8107260 push {r4-r6,lr} adds r6, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -17204,7 +17204,7 @@ sub_8107260: @ 8107260 beq _08107290 ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldr r4, =gBattleAnimArgs @@ -17215,7 +17215,7 @@ sub_8107260: @ 8107260 _08107290: ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -17237,7 +17237,7 @@ _081072A2: movs r1, 0x40 orrs r0, r1 strb r0, [r2] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -17253,10 +17253,10 @@ _081072D8: strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] @@ -17422,7 +17422,7 @@ sub_810744C: @ 810744C adds r5, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -17445,10 +17445,10 @@ _08107482: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r7, [r7, 0x6] @@ -17621,10 +17621,10 @@ sub_81075EC: @ 81075EC strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -17773,16 +17773,16 @@ _08107722: sub_8107730: @ 8107730 push {r4-r7,lr} adds r4, r0, 0 - ldr r7, =gAnimBankAttacker + ldr r7, =gBattleAnimAttacker ldrb r0, [r7] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r7] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -17846,11 +17846,11 @@ _081077BA: sub_81077C0: @ 81077C0 push {r4-r7,lr} adds r6, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r4, 24 @@ -17898,7 +17898,7 @@ _0810781E: _08107828: adds r0, r6, 0 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -17910,10 +17910,10 @@ _08107828: _08107842: ldrh r0, [r5, 0x8] strh r0, [r6, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -18069,7 +18069,7 @@ sub_8107954: @ 8107954 movs r1, 0x3 movs r2, 0x1 bl SetAnimBgAttribute - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -18174,7 +18174,7 @@ _08107A32: b _08107B0E .pool _08107AB4: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -18963,7 +18963,7 @@ sub_81080E4: @ 81080E4 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -19278,13 +19278,13 @@ _0810837A: thumb_func_start sub_8108384 sub_8108384: @ 8108384 push {r4,r5,lr} - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081083B8 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -19298,7 +19298,7 @@ _081083B4: adds r0, r2, 0 b _081083FA _081083B8: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -19350,16 +19350,16 @@ sub_8108408: @ 8108408 lsls r1, 24 lsrs r1, 24 str r1, [sp] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 movs r5, 0xAC @@ -19576,7 +19576,7 @@ sub_81085C8: @ 81085C8 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -19956,17 +19956,17 @@ sub_81088E4: @ 81088E4 lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] @@ -20418,16 +20418,16 @@ sub_8108C94: @ 8108C94 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -20593,7 +20593,7 @@ _08108DE2: strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -20648,7 +20648,7 @@ _08108E58: strh r0, [r4, 0x2E] mov r0, r9 strh r0, [r4, 0x30] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 @@ -20746,7 +20746,7 @@ sub_8108F4C: @ 8108F4C push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -20798,7 +20798,7 @@ _08108F9E: sub_8108FBC: @ 8108FBC push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -20886,7 +20886,7 @@ sub_8109064: @ 8109064 push {r4,lr} adds r4, r0, 0 bl sub_80A6838 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -21037,11 +21037,11 @@ sub_810916C: @ 810916C sub_8109198: @ 8109198 push {r4-r6,lr} adds r6, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r4, 24 @@ -21128,10 +21128,10 @@ sub_8109244: @ 8109244 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -21164,16 +21164,16 @@ sub_810929C: @ 810929C beq _081092E4 movs r4, 0 strh r4, [r6, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] @@ -21389,7 +21389,7 @@ sub_8109460: @ 8109460 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 @@ -21407,7 +21407,7 @@ sub_8109460: @ 8109460 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x10] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -21820,7 +21820,7 @@ sub_81097B4: @ 81097B4 lsls r0, 2 adds r0, r1 ldrh r4, [r0, 0x20] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -21992,7 +21992,7 @@ sub_8109930: @ 8109930 adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -22248,7 +22248,7 @@ _08109B18: bl StartSpriteAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3C] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -22261,7 +22261,7 @@ _08109B48: ldr r0, =0x0000fffc _08109B4A: strh r0, [r5, 0x36] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -22279,7 +22279,7 @@ _08109B70: ldrh r0, [r5, 0x30] adds r0, 0xC0 strh r0, [r5, 0x30] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -22356,10 +22356,10 @@ _08109BCE: lsls r0, 1 strh r0, [r5, 0x2E] strh r1, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -22485,7 +22485,7 @@ _08109CC8: lsrs r0, 16 cmp r0, 0x83 bls _08109D3C - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -22500,7 +22500,7 @@ _08109CC8: b _08109D80 .pool _08109D3C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 @@ -22578,7 +22578,7 @@ sub_8109DBC: @ 8109DBC lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -22590,22 +22590,22 @@ sub_8109DBC: @ 8109DBC movs r1, 0x1 _08109DE2: strh r1, [r4, 0x20] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r1, [r0] movs r0, 0x2 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 lsrs r0, 24 adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] movs r0, 0x3 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -22973,8 +22973,8 @@ _0810A0CA: ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankTarget + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] @@ -23075,7 +23075,7 @@ _0810A194: sub_810A1A8: @ 810A1A8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -23129,7 +23129,7 @@ _0810A20E: sub_810A214: @ 810A214 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -23178,20 +23178,20 @@ _0810A26E: sub_810A274: @ 810A274 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -23261,15 +23261,15 @@ _0810A324: beq _0810A35C b _0810A380 _0810A32E: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810A382 .pool _0810A338: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r6, 0x2 eors r0, r6 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _0810A354 @@ -23282,21 +23282,21 @@ _0810A354: eors r4, r0 b _0810A384 _0810A35C: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r4, 0x2 eors r0, r4 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810A380 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] eors r4, r0 b _0810A384 .pool _0810A380: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810A382: ldrb r4, [r0] _0810A384: @@ -23307,7 +23307,7 @@ _0810A384: bne _0810A3AC adds r0, r4, 0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -23318,14 +23318,14 @@ _0810A384: _0810A3AC: adds r0, r4, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x3 _0810A3BE: - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -23417,10 +23417,10 @@ sub_810A46C: @ 810A46C strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -23576,7 +23576,7 @@ sub_810A5BC: @ 810A5BC lsls r0, 24 cmp r0, 0 bne _0810A5D8 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -23588,10 +23588,10 @@ _0810A5D8: negs r0, r0 strh r0, [r1, 0x2] _0810A5E0: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -23633,11 +23633,11 @@ sub_810A628: @ 810A628 ands r0, r1 cmp r0, 0 beq _0810A64C - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget b _0810A64E .pool _0810A64C: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker _0810A64E: ldrb r6, [r0] bl IsContest @@ -23657,7 +23657,7 @@ _0810A666: _0810A66E: adds r0, r6, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -23827,10 +23827,10 @@ sub_810A7DC: @ 810A7DC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] @@ -24220,21 +24220,21 @@ sub_810AAFC: @ 810AAFC ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AB28 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0810AB2A .pool _0810AB28: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0810AB2A: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] @@ -24440,21 +24440,21 @@ sub_810ACD8: @ 810ACD8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810ACF4 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0810ACF6 .pool _0810ACF4: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0810ACF6: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24478,21 +24478,21 @@ sub_810AD30: @ 810AD30 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810AD4C - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0810AD4E .pool _0810AD4C: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0810AD4E: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24518,21 +24518,21 @@ sub_810AD98: @ 810AD98 adds r5, r0, 0 movs r1, 0x1 bl StartSpriteAffineAnim - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] @@ -24641,15 +24641,15 @@ _0810AE8E: b _0810AFC0 _0810AE90: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0x26] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -24820,7 +24820,7 @@ _0810AFF4: _0810AFFA: b _0810B14E _0810AFFC: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -24855,13 +24855,13 @@ _0810B012: _0810B048: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -24878,16 +24878,16 @@ _0810B070: movs r0, 0x78 subs r0, r1 strh r0, [r5, 0xE] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r2, 0xA @@ -25124,16 +25124,16 @@ sub_810B23C: @ 810B23C beq _0810B280 b _0810B294 _0810B24E: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -25191,25 +25191,25 @@ _0810B2C8: .4byte _0810B404 .4byte _0810B414 _0810B2DC: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] movs r0, 0x4 strh r0, [r5, 0x18] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] @@ -25539,10 +25539,10 @@ _0810B584: beq _0810B600 b _0810B60E _0810B58A: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -25561,10 +25561,10 @@ _0810B5A4: bgt _0810B5A4 strh r1, [r5, 0x24] _0810B5B4: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -25721,29 +25721,29 @@ sub_810B6C4: @ 810B6C4 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gBattleAnimArgs @@ -25976,14 +25976,14 @@ sub_810B8EC: @ 810B8EC adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26003,10 +26003,10 @@ _0810B92C: adds r0, r1 strh r0, [r4, 0x32] _0810B936: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -26041,7 +26041,7 @@ sub_810B974: @ 810B974 b _0810B9C6 .pool _0810B990: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -26049,7 +26049,7 @@ _0810B990: adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26130,16 +26130,16 @@ sub_810BA24: @ 810BA24 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810BA74 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -26148,7 +26148,7 @@ sub_810BA24: @ 810BA24 b _0810BA86 .pool _0810BA74: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -26157,7 +26157,7 @@ _0810BA74: movs r1, 0x1 bl sub_80A8924 _0810BA86: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26277,7 +26277,7 @@ sub_810BB60: @ 810BB60 strh r5, [r4, 0x24] movs r0, 0x80 strh r0, [r4, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26312,7 +26312,7 @@ _0810BB90: sub_810BBC8: @ 810BBC8 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26431,23 +26431,23 @@ sub_810BC94: @ 810BC94 ldrsh r0, [r1, r2] cmp r0, 0 bne _0810BCE0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _0810BCF2 .pool _0810BCE0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -26456,7 +26456,7 @@ _0810BCE0: movs r1, 0x1 bl sub_80A8924 _0810BCF2: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26645,7 +26645,7 @@ sub_810BE48: @ 810BE48 b _0810BEA2 .pool _0810BE6C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -26653,7 +26653,7 @@ _0810BE6C: adds r3, 0x22 movs r1, 0 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -26712,7 +26712,7 @@ sub_810BED0: @ 810BED0 b _0810BF32 .pool _0810BEF4: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 @@ -26742,7 +26742,7 @@ _0810BF26: adds r0, r1 strh r0, [r5, 0x22] _0810BF32: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810BF90 .pool _0810BF40: @@ -26755,7 +26755,7 @@ _0810BF40: bl sub_80A6980 b _0810BF8E _0810BF52: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] adds r2, r5, 0 adds r2, 0x20 @@ -26785,7 +26785,7 @@ _0810BF82: adds r0, r1 strh r0, [r5, 0x22] _0810BF8E: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810BF90: ldrb r0, [r0] strh r0, [r5, 0x3C] @@ -26806,7 +26806,7 @@ _0810BFB4: movs r0, 0x40 _0810BFB6: strh r0, [r5, 0x3A] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -27179,16 +27179,16 @@ _0810C2DA: sub_810C2F0: @ 810C2F0 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -27456,16 +27456,16 @@ sub_810C560: @ 810C560 ldr r6, =gBattleAnimArgs ldrh r0, [r6] strh r0, [r5, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 - ldr r7, =gAnimBankTarget + ldr r7, =gBattleAnimTarget ldrb r0, [r7] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -27505,7 +27505,7 @@ _0810C594: cmp r0, 0 bne _0810C5F0 movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -27523,16 +27523,16 @@ _0810C5F0: movs r0, 0x1 strh r0, [r5, 0x3A] _0810C5F4: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -27545,10 +27545,10 @@ _0810C5F4: ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27567,10 +27567,10 @@ _0810C65C: ldrh r1, [r5, 0x20] adds r0, r1 strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27583,7 +27583,7 @@ _0810C65C: ldrb r0, [r4] movs r1, 0x1 _0810C684: - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x8] @@ -27676,10 +27676,10 @@ _0810C728: _0810C736: movs r5, 0x50 strh r5, [r4, 0x2E] - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] @@ -27844,7 +27844,7 @@ _0810C85A: cmp r0, 0 bne _0810C8B4 ldr r1, =gBattlerPositions - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -28054,7 +28054,7 @@ sub_810C9E4: @ 810C9E4 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810CAD0 @@ -28062,12 +28062,12 @@ sub_810C9E4: @ 810C9E4 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 mov r1, r8 @@ -28371,7 +28371,7 @@ _0810CCA6: ldr r6, =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -28381,10 +28381,10 @@ _0810CCA6: negs r0, r0 strh r0, [r6, 0x4] _0810CCCE: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -28581,7 +28581,7 @@ sub_810CE68: @ 810CE68 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810CE90 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -28680,11 +28680,11 @@ sub_810CF30: @ 810CF30 mov r9, r0 cmp r1, 0 bne _0810CF54 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810CF56 .pool _0810CF54: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810CF56: ldrb r0, [r0] mov r8, r0 @@ -28705,13 +28705,13 @@ _0810CF74: bl StartSpriteAnim mov r0, r8 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -28974,10 +28974,10 @@ _0810D1A4: sub_810D1B4: @ 810D1B4 push {r4-r6,lr} adds r6, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r1, [r0] movs r0, 0x2 - ldr r2, =gAnimBankTarget + ldr r2, =gBattleAnimTarget eors r0, r1 ldrb r1, [r2] cmp r0, r1 @@ -28997,7 +28997,7 @@ _0810D1E0: adds r0, r6, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -29146,16 +29146,16 @@ sub_810D308: @ 810D308 bne _0810D34C movs r0, 0x6 strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29267,21 +29267,21 @@ sub_810D40C: @ 810D40C ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D428 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0810D42A .pool _0810D428: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0810D42A: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29386,10 +29386,10 @@ sub_810D4F4: @ 810D4F4 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810D520 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x4] @@ -29397,10 +29397,10 @@ sub_810D4F4: @ 810D4F4 b _0810D532 .pool _0810D520: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -29520,20 +29520,20 @@ sub_810D608: @ 810D608 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D664 - ldr r4, =gBattleAttacker + ldr r4, =gBattleMoveAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -29545,11 +29545,11 @@ sub_810D608: @ 810D608 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget b _0810D680 .pool _0810D664: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -29561,7 +29561,7 @@ _0810D664: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker _0810D680: ldrb r0, [r0] strh r0, [r5, 0x3C] @@ -29601,7 +29601,7 @@ sub_810D6A8: @ 810D6A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -29712,31 +29712,31 @@ _0810D7BA: strh r0, [r7, 0x2E] b _0810D818 _0810D7C2: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r2, =gAnimBankTarget + ldr r2, =gBattleAnimTarget mov r8, r2 ldrb r0, [r2] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 subs r4, r6 strh r4, [r7, 0x2E] @@ -29808,28 +29808,28 @@ sub_810D874: @ 810D874 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D8B8 - ldr r4, =gBattleAttacker + ldr r4, =gBattleMoveAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r4, [r0] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810D8BE .pool _0810D8B8: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r4, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810D8BE: ldrb r0, [r0] bl sub_80A8328 @@ -29879,7 +29879,7 @@ _0810D918: strh r0, [r5, 0x30] adds r0, r4, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29929,16 +29929,16 @@ _0810D976: sub_810D984: @ 810D984 push {r4-r6,lr} adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -30018,7 +30018,7 @@ _0810DA34: bl StartSpriteAnim b _0810DA5E _0810DA48: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30128,7 +30128,7 @@ _0810DB1A: ldrh r1, [r4, 0x1C] adds r0, r1 strh r0, [r4, 0x1C] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30205,16 +30205,16 @@ _0810DBC2: bl sub_80A69CC ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -30263,7 +30263,7 @@ _0810DC44: adds r0, r4, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] mov r6, sp adds r6, 0x2 @@ -30271,7 +30271,7 @@ _0810DC44: mov r2, sp adds r3, r6, 0 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30389,7 +30389,7 @@ _0810DD4A: sub_810DD50: @ 810DD50 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -30397,7 +30397,7 @@ sub_810DD50: @ 810DD50 adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30450,7 +30450,7 @@ sub_810DDC4: @ 810DDC4 b _0810DE16 .pool _0810DDE0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -30458,7 +30458,7 @@ _0810DDE0: adds r3, 0x22 movs r1, 0x1 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30680,7 +30680,7 @@ sub_810DFA8: @ 810DFA8 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30696,10 +30696,10 @@ _0810DFC8: strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -30748,7 +30748,7 @@ _0810E03C: sub_810E044: @ 810E044 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -30782,13 +30782,13 @@ _0810E070: _0810E088: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldr r2, =gBattleAnimArgs ldrh r1, [r2] @@ -30805,23 +30805,23 @@ _0810E088: ldrsh r0, [r2, r3] cmp r0, 0 bne _0810E0EC - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _0810E0FE .pool _0810E0EC: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -30867,7 +30867,7 @@ sub_810E13C: @ 810E13C ldr r0, =sub_810E184 str r0, [r4, 0x1C] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -30929,7 +30929,7 @@ _0810E1C2: sub_810E1C8: @ 810E1C8 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -30955,10 +30955,10 @@ _0810E1FE: strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -31021,7 +31021,7 @@ _0810E274: ble _0810E2BC _0810E296: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -31099,11 +31099,11 @@ sub_810E314: @ 810E314 ands r0, r1 cmp r0, 0 beq _0810E33C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0810E33E .pool _0810E33C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0810E33E: ldrb r6, [r0] adds r0, r6, 0 @@ -31118,7 +31118,7 @@ _0810E33E: _0810E354: adds r0, r6, 0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 ldrh r1, [r4, 0x2] lsrs r0, 24 @@ -32049,7 +32049,7 @@ _0810EA36: sub_810EA4C: @ 810EA4C push {r4,r5,lr} adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8328 movs r1, 0x3 @@ -32061,16 +32061,16 @@ sub_810EA4C: @ 810EA4C ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32106,7 +32106,7 @@ _0810EAC4: ldrsh r0, [r4, r2] cmp r0, 0 bne _0810EADC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -32117,7 +32117,7 @@ _0810EADC: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0810EAF8 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -32237,16 +32237,16 @@ sub_810EB88: @ 810EB88 strh r0, [r4, 0x6] ldr r0, =gUnknown_085973E8 mov r8, r0 - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -32289,7 +32289,7 @@ _0810EC46: movs r1, 0x1 bl sub_80A69CC movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32341,10 +32341,10 @@ _0810ECAA: beq _0810ECE0 b _0810ED1E _0810ECB0: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32379,7 +32379,7 @@ _0810ECE0: cmp r0, r1 bge _0810ED1E movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32416,7 +32416,7 @@ sub_810ED28: @ 810ED28 ldr r0, =sub_810ED70 str r0, [r4, 0x1C] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32545,21 +32545,21 @@ _0810EE28: ldrsh r0, [r0, r2] cmp r0, 0 bne _0810EE40 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0810EE42 .pool _0810EE40: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0810EE42: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -32700,21 +32700,21 @@ _0810EF60: ldrsh r0, [r2, r1] cmp r0, 0 bne _0810EF74 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0810EF76 .pool _0810EF74: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0810EF76: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -32861,17 +32861,17 @@ sub_810F084: @ 810F084 mov r8, r0 ldrh r4, [r0, 0x20] ldrh r5, [r0, 0x22] - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -32989,7 +32989,7 @@ sub_810F184: @ 810F184 cmp r0, 0 bne _0810F1BC movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -33005,7 +33005,7 @@ sub_810F184: @ 810F184 .pool _0810F1BC: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -33038,7 +33038,7 @@ sub_810F1EC: @ 810F1EC lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -33078,7 +33078,7 @@ _0810F22E: orrs r1, r0 lsrs r6, r1, 31 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F264 @@ -33091,7 +33091,7 @@ _0810F264: adds r4, r0, 0 eors r4, r7 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F284 @@ -33109,7 +33109,7 @@ _0810F284: lsls r0, 24 cmp r0, 0 beq _0810F2B8 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -33126,7 +33126,7 @@ _0810F2B0: movs r0, 0x28 b _0810F2F2 _0810F2B8: - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 @@ -33139,7 +33139,7 @@ _0810F2B8: _0810F2CE: ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -33205,12 +33205,12 @@ sub_810F340: @ 810F340 b _0810F3B6 _0810F35C: adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F382 ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33226,12 +33226,12 @@ _0810F382: movs r0, 0x2 eors r4, r0 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F3AC ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33375,12 +33375,12 @@ sub_810F46C: @ 810F46C lsrs r4, r0, 24 adds r6, r4, 0 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F4D4 ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33398,12 +33398,12 @@ _0810F4D4: adds r4, r0, 0 eors r4, r6 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F502 ldr r2, =gSprites - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 @@ -33454,7 +33454,7 @@ sub_810F524: @ 810F524 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F562 @@ -33464,7 +33464,7 @@ _0810F562: movs r0, 0x2 eors r4, r0 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0810F57C @@ -33505,7 +33505,7 @@ _0810F5A6: lsls r0, 24 cmp r0, 0 beq _0810F5EE - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -33568,16 +33568,16 @@ _0810F62C: sub_810F634: @ 810F634 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -33623,7 +33623,7 @@ _0810F692: sub_810F6B0: @ 810F6B0 push {r4-r7,lr} adds r5, r0, 0 - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0x1 bl sub_80A861C @@ -33656,14 +33656,14 @@ sub_810F6B0: @ 810F6B0 _0810F6F6: ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r4 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -33774,7 +33774,7 @@ sub_810F7D4: @ 810F7D4 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -33824,14 +33824,14 @@ sub_810F83C: @ 810F83C ldr r0, =gTasks adds r4, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -33952,16 +33952,16 @@ sub_810F940: @ 810F940 movs r0, 0x10 strh r0, [r5, 0xE] strh r1, [r5, 0x10] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -34260,16 +34260,16 @@ sub_810FBA8: @ 810FBA8 ldrsh r0, [r6, r1] cmp r0, 0 bne _0810FBD4 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -34305,7 +34305,7 @@ sub_810FBF0: @ 810FBF0 bne _0810FC60 ldr r0, =0x0000fff6 strh r0, [r5, 0x1C] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34316,7 +34316,7 @@ sub_810FBF0: @ 810FBF0 bl sub_80A861C adds r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34331,7 +34331,7 @@ sub_810FBF0: @ 810FBF0 _0810FC60: movs r0, 0xA strh r0, [r5, 0x1C] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34342,7 +34342,7 @@ _0810FC60: bl sub_80A861C subs r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34357,7 +34357,7 @@ _0810FC94: bne _0810FCE8 ldr r0, =0x0000fff6 strh r0, [r5, 0x1C] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34368,7 +34368,7 @@ _0810FC94: bl sub_80A861C adds r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x4 bl sub_80A861C @@ -34383,7 +34383,7 @@ _0810FC94: _0810FCE8: movs r0, 0xA strh r0, [r5, 0x1C] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34394,7 +34394,7 @@ _0810FCE8: bl sub_80A861C subs r0, 0x8 strh r0, [r5, 0x20] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x5 bl sub_80A861C @@ -34535,7 +34535,7 @@ sub_810FE14: @ 810FE14 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -34590,7 +34590,7 @@ _0810FE86: movs r0, 0 strh r0, [r4, 0x24] _0810FE92: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -34891,7 +34891,7 @@ _08110094: bl CalcCenterToCornerVec ldr r1, =gBattleAnimArgs ldrb r0, [r1] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] @@ -35062,16 +35062,16 @@ _08110256: beq _0811034A b _08110360 _08110260: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -35209,7 +35209,7 @@ sub_8110368: @ 8110368 b _081103C4 .pool _08110394: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -35232,7 +35232,7 @@ _08110394: negs r0, r0 strh r0, [r1] _081103C4: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A60AC @@ -35254,7 +35254,7 @@ _081103C4: strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -35297,7 +35297,7 @@ sub_8110438: @ 8110438 b _08110478 .pool _0811045C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -35311,7 +35311,7 @@ _0811045C: negs r1, r1 strh r1, [r0] _08110478: - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 bl sub_80A60AC @@ -35333,13 +35333,13 @@ _08110478: strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] @@ -35384,23 +35384,23 @@ _08110500: ldrsh r0, [r1, r2] cmp r0, 0 bne _08110548 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] b _0811055A .pool _08110548: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x32 @@ -35457,7 +35457,7 @@ _081105AE: sub_81105B4: @ 81105B4 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r4, 0 adds r2, 0x20 @@ -35465,7 +35465,7 @@ sub_81105B4: @ 81105B4 adds r3, 0x22 movs r1, 0 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -35490,7 +35490,7 @@ _081105FC: ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -35655,7 +35655,7 @@ sub_8110720: @ 8110720 b _08110762 .pool _08110740: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -35676,11 +35676,11 @@ _08110762: lsls r0, 24 cmp r0, 0 bne _081107B2 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide adds r4, r0, 0 - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] bl GetBattlerSide lsls r4, 24 @@ -35712,10 +35712,10 @@ _081107B2: adds r0, r7, 0 movs r1, 0x1 bl sub_80A69CC - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -35780,7 +35780,7 @@ sub_8110850: @ 8110850 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -35794,10 +35794,10 @@ _08110870: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -35941,21 +35941,21 @@ sub_8110994: @ 8110994 ldrsh r0, [r0, r1] cmp r0, 0 bne _081109B0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _081109B2 .pool _081109B0: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _081109B2: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x12 @@ -35980,7 +35980,7 @@ sub_81109F0: @ 81109F0 ldrsh r0, [r6, r1] cmp r0, 0 beq _08110A10 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r2, r5, 0 adds r2, 0x20 @@ -36064,7 +36064,7 @@ sub_8110AB4: @ 8110AB4 bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -36254,7 +36254,7 @@ _08110C10: ldrsh r0, [r0, r1] cmp r0, 0 beq _08110C6E - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -36480,7 +36480,7 @@ sub_8110E4C: @ 8110E4C ldrsh r0, [r4, r2] cmp r0, 0 beq _08110E98 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -36620,32 +36620,32 @@ sub_8110F74: @ 8110F74 lsls r1, 3 ldr r0, =gTasks adds r6, r1, r0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r5] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r1, 0xC0 lsls r1, 13 adds r0, r1 lsrs r7, r0, 16 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xC0 @@ -36732,7 +36732,7 @@ _0811101E: strh r0, [r6, 0x24] strh r5, [r6, 0xA] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] @@ -37193,7 +37193,7 @@ _08111412: sub_8111418: @ 8111418 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -37216,16 +37216,16 @@ _08111434: sub_8111444: @ 8111444 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimArgs @@ -37443,10 +37443,10 @@ sub_811160C: @ 811160C strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -37770,7 +37770,7 @@ sub_811188C: @ 811188C movs r0, 0x52 bl SetGpuReg movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -37881,7 +37881,7 @@ sub_811196C: @ 811196C .pool _08111994: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 ldrh r0, [r4, 0x8] @@ -37925,11 +37925,11 @@ sub_81119E0: @ 81119E0 adds r4, r0, 0 ldrh r5, [r4, 0x20] ldrh r6, [r4, 0x22] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -38042,16 +38042,16 @@ _08111AD2: lsls r0, 16 cmp r0, 0 bgt _08111B96 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -38104,16 +38104,16 @@ _08111B3C: lsls r0, 16 cmp r0, 0 bgt _08111B96 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -38285,7 +38285,7 @@ _08111C80: adds r0, r4 movs r1, 0x50 strh r1, [r0, 0x2E] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -38510,7 +38510,7 @@ sub_8111E78: @ 8111E78 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -38604,7 +38604,7 @@ _08111F0C: adds r2, r4 ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -38626,7 +38626,7 @@ _08111F0C: movs r0, 0x10 strh r0, [r5, 0xE] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -38864,7 +38864,7 @@ sub_8112170: @ 8112170 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -38888,7 +38888,7 @@ _081121AE: movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] @@ -38979,51 +38979,51 @@ sub_8112264: @ 8112264 ldrsh r0, [r0, r1] cmp r0, 0 bne _081122AC - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget b _081122D0 .pool _081122AC: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 lsls r2, 13 adds r0, r2 lsrs r5, r0, 16 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker _081122D0: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 8 movs r1, 0xE0 @@ -39166,10 +39166,10 @@ sub_81123C4: @ 81123C4 ldr r2, =gBattleAnimArgs ldrh r0, [r2] strh r0, [r1, 0x1C] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] @@ -39189,7 +39189,7 @@ _08112434: _08112436: lsls r1, r4, 16 asrs r3, r1, 16 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r2, [r0] str r1, [sp, 0x10] cmp r3, r2 @@ -39201,7 +39201,7 @@ _08112436: lsls r0, r4, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _08112502 @@ -39221,7 +39221,7 @@ _08112436: beq _08112502 adds r0, r4, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -39594,7 +39594,7 @@ sub_8112758: @ 8112758 movs r0, 0x54 movs r1, 0x10 bl SetGpuReg - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -39869,7 +39869,7 @@ sub_81129F0: @ 81129F0 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -40064,7 +40064,7 @@ sub_8112B78: @ 8112B78 movs r1, 0xC bl Sin strh r0, [r5, 0x24] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -40195,10 +40195,10 @@ sub_8112C6C: @ 8112C6C mov r8, r0 mov r0, r8 strh r0, [r4, 0xA] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -40301,7 +40301,7 @@ _08112D56: lsls r0, 2 adds r5, r0, r1 strh r7, [r5, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide movs r1, 0 @@ -40561,8 +40561,8 @@ sub_8112F60: @ 8112F60 movs r2, 0x4 orrs r1, r2 strb r1, [r3] - ldr r2, =gBankSpriteIds - ldr r1, =gAnimBankAttacker + ldr r2, =gBattlerSpriteIds + ldr r1, =gBattleAnimAttacker ldrb r1, [r1] adds r1, r2 ldrb r1, [r1] @@ -40679,16 +40679,16 @@ _08113054: sub_8113064: @ 8113064 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -40752,20 +40752,20 @@ sub_8113100: @ 8113100 push {r4,r5,lr} adds r5, r0, 0 bl sub_80A6838 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -40834,21 +40834,21 @@ sub_81131B4: @ 81131B4 ldrsh r0, [r0, r1] cmp r0, 0 bne _081131D0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _081131D2 .pool _081131D0: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _081131D2: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -40876,7 +40876,7 @@ _081131D2: sub_8113224: @ 8113224 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -40898,17 +40898,17 @@ _0811323E: sub_8113250: @ 8113250 push {r4-r7,lr} adds r6, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] @@ -40918,7 +40918,7 @@ sub_8113250: @ 8113250 ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] - ldr r4, =gBattleAttacker + ldr r4, =gBattleMoveAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A861C @@ -41106,7 +41106,7 @@ sub_81133E8: @ 81133E8 lsls r1, 3 ldr r0, =gTasks adds r4, r1, r0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -41133,7 +41133,7 @@ _0811342A: strb r0, [r1, 0x8] mov r0, sp strb r5, [r0, 0x9] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -41354,18 +41354,18 @@ sub_81135EC: @ 81135EC movs r1, 0x5 bl __divsi3 adds r6, r0, 0 - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker mov r8, r1 ldrb r0, [r1] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] mov r2, r8 ldrb r0, [r2] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r3, [r5, 0x8] @@ -41473,7 +41473,7 @@ sub_81136E8: @ 81136E8 ldr r1, =gBattleAnimArgs ldrh r1, [r1] strh r1, [r0, 0x8] - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker ldrb r4, [r1] movs r1, 0x10 strh r1, [r0, 0xA] @@ -41544,8 +41544,8 @@ sub_811375C: @ 811375C cmp r4, 0x10 bne _081137DE ldr r2, =gSprites - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -41661,7 +41661,7 @@ sub_8113888: @ 8113888 lsls r1, 5 movs r0, 0x52 bl SetGpuReg - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -41690,29 +41690,29 @@ _081138C4: sub_81138D4: @ 81138D4 push {r4-r6,lr} adds r4, r0, 0 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -41918,11 +41918,11 @@ sub_8113A90: @ 8113A90 adds r3, r0, 0 cmp r1, 0 bne _08113AAC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08113AAE .pool _08113AAC: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08113AAE: ldrb r5, [r0] movs r6, 0x14 @@ -42054,10 +42054,10 @@ sub_8113BAC: @ 8113BAC lsls r1, 3 ldr r0, =gTasks adds r5, r1, r0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -42096,7 +42096,7 @@ _08113C1C: ldr r0, =0x0000ffc0 _08113C1E: strh r0, [r5, 0x18] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -42415,7 +42415,7 @@ _08113EBC: b _081140A6 .pool _08113EF8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -42472,10 +42472,10 @@ _08113F78: b _08114044 .pool _08113F84: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x4 @@ -42979,7 +42979,7 @@ sub_8114374: @ 8114374 _0811438A: lsls r0, r4, 24 lsrs r0, 24 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -43014,7 +43014,7 @@ sub_81143C0: @ 81143C0 lsls r0, 24 lsrs r0, 24 mov r10, r0 - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] bl sub_80A8364 lsls r0, 24 @@ -43030,7 +43030,7 @@ sub_81143C0: @ 81143C0 bl sub_80A438C ldr r0, =gSprites mov r9, r0 - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds mov r8, r0 ldrb r0, [r6] add r0, r8 @@ -43049,7 +43049,7 @@ sub_81143C0: @ 81143C0 ldrb r0, [r6] movs r5, 0x2 eors r0, r5 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811444E @@ -43091,7 +43091,7 @@ sub_8114470: @ 8114470 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl sub_80A8364 lsls r0, 24 @@ -43106,7 +43106,7 @@ sub_8114470: @ 8114470 ldrb r1, [r4] movs r0, 0x2 eors r0, r1 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _081144AC @@ -43202,7 +43202,7 @@ _0811455C: lsls r0, 24 cmp r0, 0 bne _081145D6 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerPosition lsls r0, 24 @@ -43218,13 +43218,13 @@ _0811458C: ldrb r0, [r4] movs r5, 0x2 eors r0, r5 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081145D6 ldr r3, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r4] eors r0, r5 adds r0, r1 @@ -43262,13 +43262,13 @@ _081145D6: b _0811465C .pool _08114614: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08114640 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -43279,7 +43279,7 @@ _08114614: b _08114650 .pool _08114640: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -43295,11 +43295,11 @@ _08114650: lsrs r5, r0, 16 _0811465C: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 @@ -43421,7 +43421,7 @@ _08114776: cmp r0, 0x2 bne _08114824 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r5, =gSprites @@ -43457,8 +43457,8 @@ _081147B8: ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08114886 - ldr r2, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r2, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -43562,7 +43562,7 @@ _081148C4: .4byte _081148FC _081148E4: ldrb r0, [r2] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r2, r0, 24 b _08114902 @@ -43590,11 +43590,11 @@ _08114908: lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811492C - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r2, [r0] b _0811492E @@ -43655,31 +43655,31 @@ _08114980: sub_8114994: @ 8114994 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] movs r0, 0x14 strh r0, [r4, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -43716,16 +43716,16 @@ sub_81149FC: @ 81149FC strh r1, [r5, 0x24] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -43764,7 +43764,7 @@ sub_8114A7C: @ 8114A7C adds r6, r0, 0 movs r1, 0x1 bl sub_80A6980 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -43778,10 +43778,10 @@ _08114A9C: ldr r4, =gBattleAnimArgs ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] - ldr r5, =gAnimBankTarget + ldr r5, =gBattleAnimTarget ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -43814,7 +43814,7 @@ sub_8114AF0: @ 8114AF0 adds r6, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 bl sub_80A60AC @@ -43890,10 +43890,10 @@ sub_8114B80: @ 8114B80 ldrsh r0, [r6, r1] cmp r0, 0 bne _08114BF4 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] @@ -44092,11 +44092,11 @@ _08114D28: .4byte _08114E8C _08114D3C: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -44118,7 +44118,7 @@ _08114D70: _08114D78: ldrh r0, [r0] strh r0, [r4, 0x22] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -44272,7 +44272,7 @@ sub_8114EB4: @ 8114EB4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -44289,7 +44289,7 @@ sub_8114EB4: @ 8114EB4 movs r4, 0 strh r4, [r1, 0x24] strh r4, [r1, 0x26] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -44361,7 +44361,7 @@ sub_8114F54: @ 8114F54 .pool _08114F78: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -44438,11 +44438,11 @@ _08115004: .4byte _081150D4 _08115018: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -44458,7 +44458,7 @@ _08115044: _08115046: ldrh r0, [r0] strh r0, [r4, 0x20] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A6190 lsls r0, 24 @@ -44634,11 +44634,11 @@ sub_81151A0: @ 81151A0 adds r7, r0, 0 cmp r1, 0 bne _081151BC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _081151BE .pool _081151BC: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _081151BE: ldrb r4, [r0] movs r6, 0x18 @@ -44657,7 +44657,7 @@ _081151BE: _081151DA: adds r0, r4, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -44714,16 +44714,16 @@ sub_8115244: @ 8115244 ldrsh r0, [r0, r1] cmp r0, 0 bne _08115260 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08115262 .pool _08115260: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08115262: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldr r2, =0x0000fff0 @@ -44818,7 +44818,7 @@ _08115340: _08115346: lsls r0, r5, 24 lsrs r0, 24 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _08115370 @@ -44829,7 +44829,7 @@ _08115346: adds r1, r4, 0 adds r1, 0x8 adds r1, r0 - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r5, r0 ldrb r0, [r0] strh r0, [r1] @@ -44846,7 +44846,7 @@ _08115370: .pool _08115380: ldrb r0, [r6] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -45217,11 +45217,11 @@ sub_8115628: @ 8115628 adds r6, r2, 0 cmp r0, 0 beq _08115648 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget b _0811564A .pool _08115648: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker _0811564A: ldrb r0, [r0] adds r5, r0, 0 @@ -45244,7 +45244,7 @@ _0811565A: adds r4, r0 adds r0, r5, 0 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 movs r1, 0x40 @@ -45333,7 +45333,7 @@ sub_811572C: @ 811572C strh r0, [r4, 0x22] ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -45852,9 +45852,9 @@ sub_8115B0C: @ 8115B0C mov r8, r2 cmp r5, r1 bge _08115B74 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r3, [r0] - ldr r7, =gAnimBankTarget + ldr r7, =gBattleAnimTarget movs r0, 0x1 mov r12, r0 adds r2, r1, 0 @@ -46336,9 +46336,9 @@ sub_8115F10: @ 8115F10 lsrs r0, 24 mov r8, r0 movs r2, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r6, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r7, [r0] ldr r4, =gBattleAnimArgs ldrh r1, [r4] @@ -46429,10 +46429,10 @@ _08115FD6: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] mov r9, r0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] mov r10, r0 ldrh r1, [r4, 0xC] @@ -46450,7 +46450,7 @@ _08115FF8: cmp r0, 0 beq _08116028 ldr r2, =gSprites - ldr r0, =gHealthBoxesIds + ldr r0, =gHealthboxSpriteIds add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 @@ -46656,7 +46656,7 @@ _0811618A: bcs _081161DC ldr r2, =gSprites mov r12, r2 - ldr r6, =gBankSpriteIds + ldr r6, =gBattlerSpriteIds movs r7, 0x3 negs r7, r7 _081161BA: @@ -46691,8 +46691,8 @@ _081161E2: sub_81161F4: @ 81161F4 push {r4-r6,lr} ldr r6, =gSprites - ldr r4, =gBankSpriteIds - ldr r5, =gAnimBankAttacker + ldr r4, =gBattlerSpriteIds + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] @@ -46707,7 +46707,7 @@ sub_81161F4: @ 81161F4 adds r0, r2, 0 ands r0, r3 strb r0, [r1] - ldr r3, =gAnimBankTarget + ldr r3, =gBattleAnimTarget ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] @@ -46955,7 +46955,7 @@ _081163FC: sub_8116420: @ 8116420 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -47048,7 +47048,7 @@ sub_81164F0: @ 81164F0 adds r4, r0, 0 ldr r5, =gBattleAnimArgs ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] @@ -47256,14 +47256,14 @@ _081166B8: movs r5, 0 _081166BA: mov r0, sp - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker b _081166CA .pool _081166C4: movs r5, 0 _081166C6: mov r0, sp - ldr r1, =gAnimBankTarget + ldr r1, =gBattleAnimTarget _081166CA: ldrb r1, [r1] strb r1, [r0] @@ -47271,10 +47271,10 @@ _081166CA: .pool _081166D4: mov r1, sp - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] strb r0, [r1] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] strb r0, [r1, 0x1] b _0811670E @@ -47287,13 +47287,13 @@ _081166EC: _081166F4: movs r5, 0 mov r2, sp - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08116706 .pool _08116700: movs r5, 0 mov r2, sp - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08116706: ldrb r0, [r0] movs r1, 0x2 @@ -47310,7 +47310,7 @@ _08116712: cmp r4, r0 beq _0811673C adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811673C @@ -47867,7 +47867,7 @@ _08116BA2: lsls r0, 24 cmp r0, 0 bne _08116C26 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerPosition lsls r0, 24 @@ -47883,13 +47883,13 @@ _08116BD2: ldrb r0, [r5] movs r6, 0x2 eors r0, r6 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08116C26 ldr r3, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldrb r0, [r5] eors r0, r6 adds r0, r1 @@ -47932,13 +47932,13 @@ _08116C26: b _08116CAC .pool _08116C64: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 beq _08116C90 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -47949,7 +47949,7 @@ _08116C64: b _08116CA0 .pool _08116C90: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -47965,11 +47965,11 @@ _08116CA0: lsrs r5, r0, 16 _08116CAC: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r1, r4, 0 adds r2, r5, 0 @@ -48119,7 +48119,7 @@ _08116DF6: movs r1, 0 bl SetGpuReg movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r4, =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] @@ -48137,8 +48137,8 @@ _08116DF6: ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08116E7C - ldr r2, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r2, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r1, [r0] movs r0, 0x2 eors r0, r1 @@ -48223,11 +48223,11 @@ sub_8116F04: @ 8116F04 ldrsh r0, [r1, r2] cmp r0, 0 bne _08116F24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08116F26 .pool _08116F24: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08116F26: ldrb r0, [r0] strb r0, [r1] @@ -48247,7 +48247,7 @@ _08116F26: cmp r0, 0 beq _08116F5C ldrb r0, [r1, 0x1] - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _08116F5C @@ -48320,13 +48320,13 @@ _08116FBA: _08116FEC: ldr r0, [r4] ldrb r0, [r0, 0x1] - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _08117036 ldr r3, =gSprites - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds ldr r0, [r4] ldrb r0, [r0, 0x1] adds r0, r1 @@ -48374,7 +48374,7 @@ _08117078: lsls r0, 24 cmp r0, 0 beq _081170A8 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldr r0, [r4] ldrb r0, [r0] lsls r0, 1 @@ -48386,7 +48386,7 @@ _08117078: b _081170BA .pool _081170A8: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldr r0, [r4] ldrb r0, [r0] lsls r0, 1 @@ -48425,7 +48425,7 @@ sub_81170EC: @ 81170EC lsrs r5, r0, 24 movs r0, 0 mov r8, r0 - ldr r6, =gBankSpriteIds + ldr r6, =gBattlerSpriteIds ldr r4, =gUnknown_0203A110 ldr r2, [r4] ldrb r0, [r2] @@ -48601,7 +48601,7 @@ _08117280: strh r4, [r1, 0xE] ldrb r0, [r3, 0x2] strh r0, [r1, 0x14] - ldr r2, =gBankSpriteIds + ldr r2, =gBattlerSpriteIds ldrb r0, [r3, 0x1] adds r0, r2 ldrb r0, [r0] @@ -49044,7 +49044,7 @@ sub_8117610: @ 8117610 lsrs r6, r0, 24 movs r4, 0 movs r2, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r3, [r0] movs r5, 0x1 _08117620: @@ -49096,7 +49096,7 @@ sub_8117660: @ 8117660 ldrsh r0, [r4, r1] cmp r0, 0 beq _0811769C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -49196,7 +49196,7 @@ sub_8117754: @ 8117754 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide ldr r1, =gBattleAnimArgs @@ -49217,7 +49217,7 @@ sub_8117780: @ 8117780 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide ldr r1, =gBattleAnimArgs @@ -49239,10 +49239,10 @@ sub_81177AC: @ 81177AC lsrs r3, r0, 24 ldr r5, =gBattleAnimArgs movs r4, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r2, [r0] movs r0, 0x2 - ldr r1, =gAnimBankTarget + ldr r1, =gBattleAnimTarget eors r0, r2 ldrb r1, [r1] cmp r0, r1 @@ -49266,17 +49266,17 @@ sub_81177E4: @ 81177E4 movs r4, 0 ldr r6, =gSprites _081177EE: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] cmp r4, r0 beq _0811782C lsls r0, r4, 24 lsrs r0, 24 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _0811782C - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 @@ -49355,7 +49355,7 @@ sub_8117854: @ 8117854 cmp r1, 0 beq _081178BA adds r0, r6, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _081178BA @@ -49435,7 +49435,7 @@ _08117964: lsls r0, 24 cmp r0, 0 beq _08117988 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -49445,7 +49445,7 @@ _08117964: b _08117996 .pool _08117988: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] @@ -49459,7 +49459,7 @@ _08117996: lsls r0, 16 lsrs r4, r0, 16 _081179A2: - ldr r5, =gBankSpriteIds + ldr r5, =gBattlerSpriteIds adds r0, r7, r5 ldrb r1, [r0] adds r0, r7, 0 @@ -49854,13 +49854,13 @@ _08117CD2: _08117CE4: cmp r0, 0x1 bne _08117CF0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08117CF6 .pool _08117CF0: cmp r0, 0x2 bne _08117CFC - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08117CF6: ldrb r0, [r0] adds r4, r0, 0 @@ -49929,13 +49929,13 @@ _08117D6E: _08117D80: cmp r0, 0x1 bne _08117D8C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08117D92 .pool _08117D8C: cmp r0, 0x2 bne _08117D98 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08117D92: ldrb r0, [r0] adds r4, r0, 0 @@ -50004,13 +50004,13 @@ _08117E0A: _08117E1C: cmp r0, 0x1 bne _08117E28 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08117E2E .pool _08117E28: cmp r0, 0x2 bne _08117E34 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08117E2E: ldrb r0, [r0] adds r4, r0, 0 @@ -50064,11 +50064,11 @@ sub_8117E94: @ 8117E94 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimBankAttacker - ldr r1, =gBattleDefender + ldr r2, =gBattleAnimAttacker + ldr r1, =gBattleMoveTarget ldrb r1, [r1] strb r1, [r2] - ldr r2, =gAnimBankTarget + ldr r2, =gBattleAnimTarget ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] @@ -50083,11 +50083,11 @@ sub_8117EC4: @ 8117EC4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r4, 24 @@ -50116,8 +50116,8 @@ sub_8117F10: @ 8117F10 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimBankTarget - ldr r1, =gBattleDefender + ldr r2, =gBattleAnimTarget + ldr r1, =gBattleMoveTarget ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -50131,11 +50131,11 @@ sub_8117F30: @ 8117F30 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimBankAttacker - ldr r1, =gBattleAttacker + ldr r2, =gBattleAnimAttacker + ldr r1, =gBattleMoveAttacker ldrb r1, [r1] strb r1, [r2] - ldr r2, =gAnimBankTarget + ldr r2, =gBattleAnimTarget ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] @@ -50165,7 +50165,7 @@ _08117F78: adds r3, r0 ldr r0, =gBattleSpritesDataPtr ldr r4, [r0] - ldr r2, =gAnimBankAttacker + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] ldr r1, [r4] lsls r0, 2 @@ -50209,7 +50209,7 @@ sub_8117FD0: @ 8117FD0 bne _08118014 ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r3, [r0] ldr r0, [r1] lsls r3, 2 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index d4c1b90b9..f0a08d8c5 100644 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -87,10 +87,10 @@ sub_815A160: @ 815A160 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 - ldr r6, =gAnimBankTarget + ldr r6, =gBattleAnimTarget ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 @@ -207,16 +207,16 @@ sub_815A254: @ 815A254 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -768,7 +768,7 @@ sub_815A6C4: @ 815A6C4 adds r4, r0, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] mov r5, sp adds r5, 0x2 @@ -776,7 +776,7 @@ sub_815A6C4: @ 815A6C4 mov r2, sp adds r3, r5, 0 bl sub_80A8924 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -919,7 +919,7 @@ sub_815A7EC: @ 815A7EC lsls r0, 24 cmp r0, 0 bne _0815A840 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1017,7 +1017,7 @@ sub_815A8C8: @ 815A8C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -1251,16 +1251,16 @@ sub_815AAA4: @ 815AAA4 ldrsh r0, [r6, r1] cmp r0, 0 bne _0815AAD0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1502,15 +1502,15 @@ sub_815ACD0: @ 815ACD0 ldrsh r0, [r6, r1] cmp r0, 0 bne _0815ACEC - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0815ACEE .pool _0815ACEC: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0815ACEE: ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1618,11 +1618,11 @@ sub_815ADB0: @ 815ADB0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815ADDC - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0815ADDE .pool _0815ADDC: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0815ADDE: ldrb r0, [r4] bl sub_80A6190 @@ -1903,16 +1903,16 @@ sub_815AFF0: @ 815AFF0 movs r5, 0 strh r5, [r4, 0x8] strh r5, [r4, 0xA] - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] @@ -1922,7 +1922,7 @@ sub_815AFF0: @ 815AFF0 strh r0, [r4, 0x12] strh r5, [r4, 0x14] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -2278,16 +2278,16 @@ _0815B2D8: strh r1, [r5, 0x26] movs r0, 0x14 strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -2320,7 +2320,7 @@ sub_815B338: @ 815B338 .pool _0815B35C: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2351,7 +2351,7 @@ sub_815B394: @ 815B394 push {r4-r6,lr} adds r5, r0, 0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x2E @@ -2370,16 +2370,16 @@ _0815B3B4: beq _0815B478 b _0815B496 _0815B3BE: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -2482,7 +2482,7 @@ _0815B496: sub_815B49C: @ 815B49C push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2513,7 +2513,7 @@ sub_815B4D4: @ 815B4D4 ldrh r0, [r4, 0x2E] adds r0, 0x48 strh r0, [r4, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2728,7 +2728,7 @@ sub_815B65C: @ 815B65C cmp r0, 0 bne _0815B69C movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2770,7 +2770,7 @@ sub_815B6B4: @ 815B6B4 cmp r0, 0 bne _0815B6F4 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2814,10 +2814,10 @@ _0815B71E: movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -2868,7 +2868,7 @@ sub_815B778: @ 815B778 cmp r0, 0 bne _0815B7B8 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2933,7 +2933,7 @@ _0815B81C: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -2996,9 +2996,9 @@ _0815B886: _0815B8A6: b _0815BA7A _0815B8A8: - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] - ldr r1, =gAnimBankTarget + ldr r1, =gBattleAnimTarget ldrb r1, [r1] mov r2, r8 lsls r4, r2, 2 @@ -3030,7 +3030,7 @@ _0815B8EA: adds r2, 0x4 adds r2, r0 ldr r1, =gBattleMonForms - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -3122,8 +3122,8 @@ _0815B99C: cmp r0, 0 beq _0815B9EC ldr r3, =gSprites - ldr r4, =gBankSpriteIds - ldr r2, =gAnimBankAttacker + ldr r4, =gBattlerSpriteIds + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] @@ -3138,8 +3138,8 @@ _0815B99C: .pool _0815B9EC: ldr r3, =gSprites - ldr r4, =gBankSpriteIds - ldr r2, =gAnimBankAttacker + ldr r4, =gBattlerSpriteIds + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] adds r0, r4 ldrb r1, [r0] @@ -3209,7 +3209,7 @@ _0815BA82: movs r0, 0x4C movs r1, 0 bl SetGpuReg - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -3232,7 +3232,7 @@ _0815BAB6: lsls r0, 24 cmp r0, 0 bne _0815BAF6 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -3256,7 +3256,7 @@ _0815BAB6: lsls r1, r0, 2 adds r1, r2 ldrh r1, [r1, 0x2] - bl SetBankEnemyShadowSpriteCallback + bl SetBattlerShadowSpriteCallback _0815BAF6: mov r0, r8 bl DestroyAnimVisualTask @@ -3278,8 +3278,8 @@ sub_815BB18: @ 815BB18 lsrs r0, 24 ldr r4, =gBattleAnimArgs ldr r3, =gSprites - ldr r2, =gBankSpriteIds - ldr r1, =gAnimBankAttacker + ldr r2, =gBattlerSpriteIds + ldr r1, =gBattleAnimAttacker ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] @@ -3305,9 +3305,9 @@ sub_815BB58: @ 815BB58 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] - ldr r1, =gAnimBankTarget + ldr r1, =gBattleAnimTarget ldrb r1, [r1] movs r2, 0x1 bl HandleSpeciesGfxDataChange @@ -3390,7 +3390,7 @@ _0815BC02: b _0815BC5C .pool _0815BC34: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3621,17 +3621,17 @@ sub_815BE04: @ 815BE04 lsls r0, 16 lsrs r5, r0, 16 _0815BE2E: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -3996,7 +3996,7 @@ _0815C124: b _0815C1CA .pool _0815C15C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 @@ -4085,7 +4085,7 @@ _0815C224: adds r5, r0, r1 movs r0, 0 strh r0, [r5, 0xE] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4272,7 +4272,7 @@ sub_815C3A8: @ 815C3A8 cmp r0, 0 bne _0815C3E8 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -4325,7 +4325,7 @@ _0815C41E: ldrh r0, [r4, 0x32] adds r0, 0x80 strh r0, [r4, 0x32] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4419,7 +4419,7 @@ _0815C4BC: subs r0, 0x1 strh r0, [r4, 0x14] ldrb r0, [r5] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -4427,11 +4427,11 @@ _0815C4BC: ldrsh r0, [r5, r1] cmp r0, 0 bne _0815C508 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0815C50A .pool _0815C508: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0815C50A: ldrb r0, [r0] bl GetBattlerSide @@ -4643,7 +4643,7 @@ _0815C6A8: sub_815C6B0: @ 815C6B0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4683,7 +4683,7 @@ sub_815C700: @ 815C700 ldrh r0, [r4, 0x2E] adds r0, 0x3 strh r0, [r4, 0x2E] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4758,7 +4758,7 @@ sub_815C770: @ 815C770 strh r0, [r4, 0x24] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -4991,16 +4991,16 @@ sub_815C95C: @ 815C95C ldrsh r0, [r6, r2] cmp r0, 0 bne _0815C990 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -5100,17 +5100,17 @@ sub_815CA20: @ 815CA20 mov r8, r0 cmp r1, 0 bne _0815CA5C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0815CA5E .pool _0815CA5C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0815CA5E: ldrb r0, [r0] strh r0, [r2, 0x1E] mov r1, r8 ldrb r0, [r1] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks @@ -5528,16 +5528,16 @@ _0815CDAA: sub_815CDB4: @ 815CDB4 push {r4,r5,lr} adds r4, r0, 0 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -5586,14 +5586,14 @@ sub_815CDFC: @ 815CDFC cmp r0, 0xC3 ble _0815CE48 _0815CE36: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 subs r0, 0x1 b _0815CE52 .pool _0815CE48: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 adds r0, 0x1 @@ -5674,7 +5674,7 @@ sub_815CED8: @ 815CED8 lsrs r0, 24 str r0, [sp, 0x18] movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId bl IsContest lsls r0, 24 cmp r0, 0 @@ -5693,7 +5693,7 @@ sub_815CED8: @ 815CED8 b _0815D058 .pool _0815CF18: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -5701,8 +5701,8 @@ _0815CF18: beq _0815CFC4 movs r0, 0 str r0, [sp, 0x1C] - ldr r6, =gBattlePartyID - ldr r4, =gAnimBankTarget + ldr r6, =gBattlerPartyIndexes + ldr r4, =gBattleAnimTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5769,8 +5769,8 @@ _0815CFBE: _0815CFC4: movs r2, 0x1 str r2, [sp, 0x1C] - ldr r6, =gBattlePartyID - ldr r4, =gAnimBankTarget + ldr r6, =gBattlerPartyIndexes + ldr r4, =gBattleAnimTarget ldrb r0, [r4] lsls r0, 1 adds r0, r6 @@ -5834,21 +5834,21 @@ _0815D056: _0815D058: mov r10, r3 _0815D05A: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8328 lsls r0, 24 lsrs r7, r0, 24 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 mov r2, r10 lsls r1, r2, 16 @@ -5864,7 +5864,7 @@ _0815D05A: str r3, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] str r0, [sp, 0x10] movs r0, 0x1 @@ -6072,11 +6072,11 @@ sub_815D240: @ 815D240 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815D26C - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0815D26E .pool _0815D26C: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0815D26E: ldrb r5, [r0] movs r6, 0 @@ -6118,7 +6118,7 @@ _0815D2B4: strh r0, [r4, 0x24] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -6562,7 +6562,7 @@ sub_815D64C: @ 815D64C strh r0, [r4, 0x8] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -6827,7 +6827,7 @@ sub_815D870: @ 815D870 ldrb r1, [r6] adds r0, r5, 0 bl StartSpriteAffineAnim - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -6837,10 +6837,10 @@ sub_815D870: @ 815D870 negs r0, r0 strh r0, [r6, 0x2] _0815D896: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7237,8 +7237,8 @@ sub_815DB90: @ 815DB90 lsls r0, 3 mov r1, r8 adds r4, r0, r1 - ldr r1, =gBankSpriteIds - ldr r2, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] @@ -7373,22 +7373,22 @@ _0815DCC4: ldrsh r0, [r4, r1] cmp r0, 0 bne _0815DCE8 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0815DCEA .pool _0815DCE8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0815DCEA: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -7399,7 +7399,7 @@ _0815DCEA: strh r0, [r5, 0x14] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -7661,7 +7661,7 @@ sub_815DF0C: @ 815DF0C ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -7746,7 +7746,7 @@ sub_815DFCC: @ 815DFCC lsrs r0, 24 movs r2, 0xD0 lsls r2, 1 - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker ldrb r3, [r1] ldr r1, =gBattleAnimArgs ldrb r1, [r1] @@ -7775,7 +7775,7 @@ sub_815DFCC: @ 815DFCC sub_815E01C: @ 815E01C push {r4-r6,lr} adds r5, r0, 0 - ldr r6, =gAnimBankAttacker + ldr r6, =gBattleAnimAttacker ldrb r0, [r6] bl GetBattlerSide lsls r0, 24 @@ -7789,7 +7789,7 @@ sub_815E01C: @ 815E01C _0815E038: ldrb r0, [r6] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -7837,7 +7837,7 @@ _0815E09A: lsls r0, 2 strh r0, [r5, 0x2E] _0815E0A8: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -7923,7 +7923,7 @@ _0815E144: strh r0, [r6, 0x14] strh r1, [r6, 0x16] _0815E14E: - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 @@ -7931,7 +7931,7 @@ _0815E14E: bne _0815E188 ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7951,7 +7951,7 @@ _0815E17C: _0815E188: ldrb r0, [r5] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7968,10 +7968,10 @@ _0815E1A8: subs r0, r4, r0 _0815E1AC: strh r0, [r6, 0x1E] - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7987,16 +7987,16 @@ _0815E1D0: asrs r0, 2 subs r0, r4, r0 strh r0, [r6, 0x20] - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] @@ -8345,33 +8345,33 @@ sub_815E47C: @ 815E47C lsls r0, 3 ldr r1, =gTasks adds r7, r0, r1 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] @@ -8626,11 +8626,11 @@ sub_815E6D8: @ 815E6D8 adds r6, r0, 0 cmp r1, 0 bne _0815E6F4 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0815E6F6 .pool _0815E6F4: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0815E6F6: ldrb r5, [r0] ldrh r2, [r4, 0x4] @@ -8659,7 +8659,7 @@ _0815E724: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -8827,7 +8827,7 @@ _0815E85C: ldrh r0, [r2, 0x2] strh r0, [r4, 0x8] ldrb r0, [r2] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -8942,15 +8942,15 @@ sub_815E954: @ 815E954 ldrsh r0, [r0, r1] cmp r0, 0 bne _0815E970 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker b _0815E972 .pool _0815E970: - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget _0815E972: ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -9326,7 +9326,7 @@ sub_815EC48: @ 815EC48 ldr r0, =gTasks adds r6, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] @@ -9339,10 +9339,10 @@ sub_815EC48: @ 815EC48 lsrs r7, r0, 24 cmp r7, 0x1 bne _0815ECB4 - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -9363,7 +9363,7 @@ _0815ECAC: b _0815ECD2 .pool _0815ECB4: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -9606,11 +9606,11 @@ sub_815EE84: @ 815EE84 adds r0, r4, 0 movs r1, 0x1 bl sub_80A69CC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _0815EEAA .pool _0815EEA8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _0815EEAA: ldrb r0, [r0] strh r0, [r4, 0x3C] @@ -9771,14 +9771,14 @@ _0815EFEC: lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r1, r0, 24 _0815F00C: @@ -9991,13 +9991,13 @@ _0815F17C: sub_815F18C: @ 815F18C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord ldrb r0, [r4] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -10057,7 +10057,7 @@ sub_815F20C: @ 815F20C lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 @@ -10126,7 +10126,7 @@ _0815F2A0: b _0815F310 .pool _0815F2AC: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0 bl LoadBattleMonGfxAndAnimate @@ -10135,7 +10135,7 @@ _0815F2AC: cmp r0, 0 beq _0815F2EE ldr r3, =gSprites - ldr r2, =gBankSpriteIds + ldr r2, =gBattlerSpriteIds ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -10191,7 +10191,7 @@ sub_815F330: @ 815F330 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 ldr r1, =gTasks @@ -10360,7 +10360,7 @@ _0815F482: sub_815F48C: @ 815F48C push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankTarget + ldr r4, =gBattleAnimTarget ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -10384,10 +10384,10 @@ _0815F4B8: strb r0, [r1] ldr r4, =0x0000ffa0 _0815F4C8: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x3 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -10639,7 +10639,7 @@ _0815F67C: strh r1, [r0, 0x8] ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -10764,7 +10764,7 @@ sub_815F7C4: @ 815F7C4 strh r0, [r4, 0x30] ldr r0, =gBattleSpritesDataPtr ldr r1, [r0] - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] ldr r1, [r1] lsls r0, 2 @@ -10943,7 +10943,7 @@ _0815F92C: .4byte _0815FD8C _0815F940: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks @@ -10958,7 +10958,7 @@ _0815F940: ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11036,7 +11036,7 @@ _0815F9F4: ldr r3, [r0, 0xC] mov r9, r3 ldrh r6, [r0] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A82E4 lsls r0, 24 @@ -11045,13 +11045,13 @@ _0815F9F4: b _0815FB4E .pool _0815FA28: - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _0815FAC8 - ldr r7, =gBattlePartyID + ldr r7, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -11096,7 +11096,7 @@ _0815FA9C: ldrh r6, [r1, 0x2] _0815FA9E: movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -11115,7 +11115,7 @@ _0815FA9E: b _0815FB50 .pool _0815FAC8: - ldr r7, =gBattlePartyID + ldr r7, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 @@ -11160,7 +11160,7 @@ _0815FB2C: ldrh r6, [r1, 0x2] _0815FB2E: movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -11177,10 +11177,10 @@ _0815FB2E: _0815FB4E: ldr r5, =0x0000ffe0 _0815FB50: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 lsls r3, r5, 16 @@ -11191,7 +11191,7 @@ _0815FB50: str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] str r0, [sp, 0x10] movs r0, 0 @@ -11253,7 +11253,7 @@ _0815FBE8: ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11307,7 +11307,7 @@ _0815FC56: ldrsh r0, [r6, r1] cmp r0, 0 bne _0815FCD6 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11315,10 +11315,10 @@ _0815FC56: bne _0815FCB4 lsls r4, r5, 16 asrs r4, 16 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11328,10 +11328,10 @@ _0815FC56: _0815FCB4: lsls r4, r5, 16 asrs r4, 16 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11365,7 +11365,7 @@ _0815FCE8: .pool _0815FD08: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks @@ -11383,7 +11383,7 @@ _0815FD08: ldr r5, =gSprites adds r0, r5 bl sub_80A8610 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11425,7 +11425,7 @@ _0815FD7E: .pool _0815FD8C: movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks @@ -11440,7 +11440,7 @@ _0815FD8C: ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x18] @@ -11469,7 +11469,7 @@ _0815FD8C: mov r1, r10 ldrb r0, [r1] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -11563,10 +11563,10 @@ _0815FE92: asrs r1, 24 movs r0, 0x7A bl PlaySE12WithPanning - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -11583,7 +11583,7 @@ _0815FE92: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11595,7 +11595,7 @@ _0815FE92: cmp r0, 0 bne _0815FFBC movs r0, 0x1 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -11652,7 +11652,7 @@ _0815FF6E: ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -11721,17 +11721,17 @@ _0815FFF4: .4byte _081600CC .4byte _08160132 _08160008: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 @@ -11755,8 +11755,8 @@ _0816003E: b _08160150 .pool _08160058: - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -11811,8 +11811,8 @@ _081600B4: strh r1, [r0, 0x26] b _08160150 _081600CC: - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -11861,8 +11861,8 @@ _0816012A: strh r0, [r2, 0x26] b _08160150 _08160132: - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -11893,12 +11893,12 @@ sub_8160164: @ 8160164 ldr r0, =gTasks adds r4, r1, r0 movs r0, 0 - bl GetAnimBankSpriteId + bl GetBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12072,7 +12072,7 @@ _081602DA: sub_81602E0: @ 81602E0 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12115,7 +12115,7 @@ _08160326: sub_8160338: @ 8160338 push {r4,lr} adds r4, r0, 0 - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -12166,10 +12166,10 @@ _08160396: sub_81603A8: @ 81603A8 push {r4,r5,lr} adds r5, r0, 0 - ldr r4, =gAnimBankAttacker + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -12396,7 +12396,7 @@ sub_8160544: @ 8160544 strh r0, [r4, 0x8] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetAnimBankSpriteId + bl GetBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index ad37b18d2..1bd7e9629 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -16,7 +16,7 @@ sub_8170478: @ 8170478 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r4, [r0] ldr r0, =gBattle_WIN0H movs r1, 0 @@ -56,7 +56,7 @@ sub_8170478: @ 8170478 movs r1, 0x3 movs r2, 0x1 bl SetAnimBgAttribute - ldr r0, =gHealthBoxesIds + ldr r0, =gHealthboxSpriteIds adds r4, r0 ldrb r0, [r4] ldr r1, =gSprites @@ -212,7 +212,7 @@ sub_8170660: @ 8170660 push {r7} lsls r0, 24 lsrs r7, r0, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] mov r8, r0 ldr r1, =gTasks @@ -373,7 +373,7 @@ _0817076C: movs r1, 0x1 movs r2, 0 bl SetAnimBgAttribute - ldr r0, =gHealthBoxesIds + ldr r0, =gHealthboxSpriteIds add r0, r8 ldrb r0, [r0] lsls r1, r0, 4 @@ -434,7 +434,7 @@ sub_8170834: @ 8170834 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 - ldr r0, =gHealthBoxesIds + ldr r0, =gHealthboxSpriteIds adds r2, r0 ldrb r0, [r2] lsls r5, r0, 4 @@ -540,7 +540,7 @@ sub_8170920: @ 8170920 lsrs r4, 24 mov r1, sp adds r1, 0x1 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r2, [r0] mov r0, sp bl sub_8170834 @@ -561,7 +561,7 @@ sub_817094C: @ 817094C push {r5,r6} lsls r0, 24 lsrs r0, 24 - ldr r1, =gHealthBoxesIds + ldr r1, =gHealthboxSpriteIds adds r0, r1 ldrb r0, [r0] ldr r1, =gSprites @@ -628,7 +628,7 @@ sub_81709EC: @ 81709EC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_817094C adds r0, r4, 0 @@ -765,8 +765,8 @@ sub_8170B04: @ 8170B04 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r5, [r0] @@ -851,8 +851,8 @@ sub_8170BB0: @ 8170BB0 sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 - ldr r1, =gBankSpriteIds - ldr r4, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] adds r1, r0, r1 ldrb r1, [r1] @@ -861,7 +861,7 @@ sub_8170BB0: @ 8170BB0 lsls r0, 24 cmp r0, 0 bne _08170BF8 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -872,7 +872,7 @@ sub_8170BB0: @ 8170BB0 b _08170C08 .pool _08170BF8: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -904,16 +904,16 @@ _08170C08: b _08170CEE .pool _08170C44: - ldr r5, =gAnimBankAttacker + ldr r5, =gBattleAnimAttacker ldrb r0, [r5] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord adds r1, r0, 0 lsls r1, 24 ldr r2, =gSprites @@ -1162,18 +1162,18 @@ sub_8170E04: @ 8170E04 adds r6, r4, r1 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r2, =gAnimBankTarget + ldr r2, =gBattleAnimTarget mov r8, r2 ldrb r0, [r2] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1186,7 +1186,7 @@ sub_8170E04: @ 8170E04 ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldr r3, [r0, 0x8] - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -1313,18 +1313,18 @@ _08170F54: adds r6, r4, r0 movs r0, 0x22 strh r0, [r6, 0x2E] - ldr r1, =gAnimBankTarget + ldr r1, =gBattleAnimTarget mov r8, r1 ldrb r0, [r1] movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1336,7 +1336,7 @@ _08170F54: str r0, [r4] movs r0, 0 bl GetBattlerAtPosition - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1372,7 +1372,7 @@ sub_8171030: @ 8171030 ldr r6, =gSprites movs r0, 0 bl GetBattlerAtPosition - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1423,7 +1423,7 @@ sub_81710A8: @ 81710A8 ldr r6, =gSprites movs r0, 0 bl GetBattlerAtPosition - ldr r4, =gBankSpriteIds + ldr r4, =gBattlerSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1550,7 +1550,7 @@ _08171188: movs r2, 0x1 movs r3, 0x1C bl LaunchBallStarsTask - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE @@ -1584,8 +1584,8 @@ sub_81711E8: @ 81711E8 ldr r0, =sub_8171240 str r0, [r4, 0x1C] ldr r2, =gSprites - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankTarget + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -1606,8 +1606,8 @@ _08171224: sub_8171240: @ 8171240 push {r4-r7,lr} adds r7, r0, 0 - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankTarget + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimTarget ldrb r0, [r0] adds r0, r1 ldrb r4, [r0] @@ -2333,7 +2333,7 @@ sub_81717F8: @ 81717F8 push {r7} sub sp, 0x4 adds r6, r0, 0 - ldr r7, =gAnimBankTarget + ldr r7, =gBattleAnimTarget ldrh r0, [r6, 0x36] adds r0, 0x1 movs r1, 0 @@ -2390,7 +2390,7 @@ _08171880: cmp r1, r0 bne _081718BC ldr r5, =gSprites - ldr r4, =gBankSpriteIds + ldr r4, =gBattlerSpriteIds ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2715,7 +2715,7 @@ sub_8171AE4: @ 8171AE4 movs r2, 0x1 movs r3, 0x1C bl LaunchBallStarsTask - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE @@ -2723,8 +2723,8 @@ sub_8171AE4: @ 8171AE4 bl LaunchBallFadeMonTask _08171B36: ldr r6, =gSprites - ldr r5, =gBankSpriteIds - ldr r4, =gAnimBankTarget + ldr r5, =gBattlerSpriteIds + ldr r4, =gBattleAnimTarget ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] @@ -2791,8 +2791,8 @@ sub_8171BAC: @ 8171BAC strb r0, [r2] _08171BCA: ldr r4, =gSprites - ldr r3, =gBankSpriteIds - ldr r2, =gAnimBankTarget + ldr r3, =gBattlerSpriteIds + ldr r2, =gBattleAnimTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -2840,8 +2840,8 @@ _08171C24: cmp r5, 0 beq _08171C8A ldr r4, =gSprites - ldr r3, =gBankSpriteIds - ldr r2, =gAnimBankTarget + ldr r3, =gBattlerSpriteIds + ldr r2, =gBattleAnimTarget ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -4729,8 +4729,8 @@ sub_8172BF0: @ 8172BF0 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 - ldr r0, =gBankSpriteIds - ldr r3, =gAnimBankAttacker + ldr r0, =gBattlerSpriteIds + ldr r3, =gBattleAnimAttacker ldrb r2, [r3] adds r0, r2, r0 ldrb r6, [r0] @@ -4877,7 +4877,7 @@ _08172D28: adds r0, r1 ldrb r1, [r0, 0x8] strh r1, [r0, 0x8] - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4949,7 +4949,7 @@ _08172DC0: beq _08172E4E b _08172E84 _08172DC6: - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] bl sub_80A8364 lsls r0, 24 @@ -5009,8 +5009,8 @@ _08172E14: strh r0, [r4, 0x26] b _08172E84 _08172E4E: - ldr r1, =gBankSpriteIds - ldr r4, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r4, =gBattleAnimAttacker ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] @@ -5048,7 +5048,7 @@ sub_8172E9C: @ 8172E9C ldr r3, =gBattleAnimArgs ldr r1, =gBattleSpritesDataPtr ldr r2, [r1] - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker ldrb r1, [r1] ldr r2, [r2] lsls r1, 2 @@ -5068,7 +5068,7 @@ sub_8172ED0: @ 8172ED0 push {lr} lsls r0, 24 lsrs r0, 24 - ldr r2, =gAnimBankTarget + ldr r2, =gBattleAnimTarget ldr r1, =gEffectBank ldrb r1, [r1] strb r1, [r2] @@ -5108,7 +5108,7 @@ sub_8172EF0: @ 8172EF0 bl GetMonData adds r4, r0, 0 adds r0, r6, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 beq _08172FC8 @@ -5234,12 +5234,12 @@ _0817303A: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord 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 GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -5602,8 +5602,8 @@ sub_817330C: @ 817330C adds r0, r4, 0 bl sub_80A68D4 ldr r2, =gSprites - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5627,8 +5627,8 @@ sub_817339C: @ 817339C push {lr} adds r3, r0, 0 ldr r2, =gSprites - ldr r1, =gBankSpriteIds - ldr r0, =gAnimBankAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -5678,8 +5678,8 @@ sub_8173400: @ 8173400 push {r4,r5,lr} adds r4, r0, 0 ldr r5, =gSprites - ldr r3, =gBankSpriteIds - ldr r2, =gAnimBankAttacker + ldr r3, =gBattlerSpriteIds + ldr r2, =gBattleAnimAttacker ldrb r0, [r2] adds r0, r3 ldrb r1, [r0] @@ -5733,7 +5733,7 @@ sub_817345C: @ 817345C _08173478: movs r0, 0 bl GetBattlerAtPosition - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker strb r0, [r1] movs r0, 0x1 b _08173498 @@ -5741,12 +5741,12 @@ _08173478: _0817348C: movs r0, 0x1 bl GetBattlerAtPosition - ldr r1, =gAnimBankAttacker + ldr r1, =gBattleAnimAttacker strb r0, [r1] movs r0, 0 _08173498: bl GetBattlerAtPosition - ldr r1, =gAnimBankTarget + ldr r1, =gBattleAnimTarget strb r0, [r1] _081734A0: adds r0, r4, 0 @@ -5812,13 +5812,13 @@ sub_817351C: @ 817351C push {lr} lsls r0, 24 lsrs r0, 24 - ldr r3, =gAnimBankAttacker + ldr r3, =gBattleAnimAttacker ldr r1, =gBattleSpritesDataPtr ldr r2, [r1] ldr r1, [r2, 0x8] ldrh r1, [r1] strb r1, [r3] - ldr r3, =gAnimBankTarget + ldr r3, =gBattleAnimTarget ldr r1, [r2, 0x8] ldrh r1, [r1] lsrs r1, 8 diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s index 85148c8b6..def934fab 100644 --- a/asm/battle_anim_sound_tasks.s +++ b/asm/battle_anim_sound_tasks.s @@ -336,25 +336,25 @@ _08158DD0: adds r2, r0, 0 cmp r1, 0 bne _08158DEC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r4, [r0] b _08158E12 .pool _08158DEC: cmp r1, 0x1 bne _08158DFC - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r4, [r0] b _08158E12 .pool _08158DFC: cmp r1, 0x2 bne _08158E08 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08158E0A .pool _08158E08: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08158E0A: ldrb r1, [r0] movs r0, 0x2 @@ -369,7 +369,7 @@ _08158E12: bne _08158E38 _08158E1E: adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _08158E38 @@ -383,7 +383,7 @@ _08158E38: lsls r0, 24 cmp r0, 0 beq _08158E5C - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -393,7 +393,7 @@ _08158E38: b _08158E6A .pool _08158E5C: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -461,25 +461,25 @@ _08158EE0: adds r2, r0, 0 cmp r1, 0 bne _08158EFC - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r4, [r0] b _08158F22 .pool _08158EFC: cmp r1, 0x1 bne _08158F0C - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget ldrb r4, [r0] b _08158F22 .pool _08158F0C: cmp r1, 0x2 bne _08158F18 - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker b _08158F1A .pool _08158F18: - ldr r0, =gAnimBankTarget + ldr r0, =gBattleAnimTarget _08158F1A: ldrb r1, [r0] movs r0, 0x2 @@ -494,7 +494,7 @@ _08158F22: bne _08158F48 _08158F2E: adds r0, r4, 0 - bl IsAnimBankSpriteVisible + bl IsBattlerSpriteVisible lsls r0, 24 cmp r0, 0 bne _08158F48 @@ -508,7 +508,7 @@ _08158F48: lsls r0, 24 cmp r0, 0 beq _08158F6C - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -518,7 +518,7 @@ _08158F48: b _08158F7A .pool _08158F6C: - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -705,7 +705,7 @@ sub_81590B8: @ 81590B8 .pool _081590F8: ldr r1, =gAnimSpeciesByBanks - ldr r0, =gAnimBankAttacker + ldr r0, =gBattleAnimAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index b9205632b..61e303417 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -34,12 +34,12 @@ _0817C988: movs r1, 0x81 lsls r1, 2 adds r7, r0, r1 - ldr r5, =gBattleAttacker + ldr r5, =gBattleMoveAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -59,7 +59,7 @@ _0817C988: str r0, [sp, 0x4] cmp r4, 0 bne _0817CA00 - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes ldrb r0, [r5] lsls r0, 1 adds r0, r2 @@ -70,7 +70,7 @@ _0817C988: b _0817CA10 .pool _0817CA00: - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes ldrb r0, [r5] lsls r0, 1 adds r0, r2 @@ -83,7 +83,7 @@ _0817CA10: str r1, [sp, 0x8] cmp r6, 0 bne _0817CA3C - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -94,7 +94,7 @@ _0817CA10: b _0817CA4C .pool _0817CA3C: - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -105,12 +105,12 @@ _0817CA3C: _0817CA4C: adds r1, r0 str r1, [sp, 0xC] - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] ldr r1, =gStringInfo ldr r1, [r1] ldrh r1, [r1] - bl GetBankMoveSlotId + bl GetBattlerMoveSlotId lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -134,13 +134,13 @@ _0817CA4C: bl _0817E0A2 .pool _0817CA9C: - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 lsrs r0, 25 mov r8, r0 - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 @@ -571,8 +571,8 @@ _0817D0DC: adds r3, r4 lsls r3, 2 adds r3, r7, r3 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -601,8 +601,8 @@ _0817D124: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -634,8 +634,8 @@ _0817D16C: adds r0, r4 lsls r0, 2 adds r5, r7, r0 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -715,8 +715,8 @@ _0817D216: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -775,8 +775,8 @@ _0817D296: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -833,8 +833,8 @@ _0817D314: lsls r0, r4, 4 adds r3, r0 adds r3, r7, r3 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -940,8 +940,8 @@ _0817D3F2: bne _0817D3FE bl _0817E0A6 _0817D3FE: - ldr r0, =gBattleAttacker - ldr r1, =gBattleDefender + ldr r0, =gBattleMoveAttacker + ldr r1, =gBattleMoveTarget ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -1014,8 +1014,8 @@ _0817D498: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1091,8 +1091,8 @@ _0817D53C: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1161,8 +1161,8 @@ _0817D5CE: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1226,8 +1226,8 @@ _0817D65E: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1301,7 +1301,7 @@ _0817D6F2: strb r0, [r1] bl _0817E0A6 _0817D704: - ldr r5, =gBattlePartyID + ldr r5, =gBattlerPartyIndexes ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 @@ -1314,7 +1314,7 @@ _0817D704: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1353,8 +1353,8 @@ _0817D76C: bne _0817D77E bl _0817E0A6 _0817D77E: - ldr r6, =gBattlePartyID - ldr r5, =gBattleAttacker + ldr r6, =gBattlerPartyIndexes + ldr r5, =gBattleMoveAttacker ldrb r0, [r5] lsls r0, 1 adds r0, r6 @@ -1395,7 +1395,7 @@ _0817D7B2: b _0817D934 .pool _0817D7D8: - ldr r5, =gBattlePartyID + ldr r5, =gBattlerPartyIndexes ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 @@ -1408,7 +1408,7 @@ _0817D7D8: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1439,7 +1439,7 @@ _0817D7D8: b _0817D88C .pool _0817D838: - ldr r5, =gBattlePartyID + ldr r5, =gBattlerPartyIndexes ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 @@ -1452,7 +1452,7 @@ _0817D838: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1496,9 +1496,9 @@ _0817D8A4: bne _0817D8B6 bl _0817E0A6 _0817D8B6: - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes mov r8, r2 - ldr r6, =gBattleAttacker + ldr r6, =gBattleMoveAttacker ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -1573,8 +1573,8 @@ _0817D94C: lsls r0, r6, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1627,7 +1627,7 @@ _0817D9AE: movs r0, 0x9 b _0817E086 _0817D9C2: - ldr r5, =gBattlePartyID + ldr r5, =gBattlerPartyIndexes ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 @@ -1640,7 +1640,7 @@ _0817D9C2: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1671,8 +1671,8 @@ _0817D9C2: b _0817DB76 .pool _0817DA24: - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1702,7 +1702,7 @@ _0817DA48: b _0817E0A6 .pool _0817DA68: - ldr r5, =gBattlePartyID + ldr r5, =gBattlerPartyIndexes ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 @@ -1715,7 +1715,7 @@ _0817DA68: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1747,8 +1747,8 @@ _0817DA68: b _0817DB76 .pool _0817DACC: - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1790,7 +1790,7 @@ _0817DB10: b _0817E0A6 .pool _0817DB24: - ldr r5, =gBattlePartyID + ldr r5, =gBattlerPartyIndexes ldr r6, =gEffectBank ldrb r0, [r6] lsls r0, 1 @@ -1803,7 +1803,7 @@ _0817DB24: lsls r4, 3 adds r3, r4 adds r3, r7, r3 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1838,8 +1838,8 @@ _0817DB76: b _0817E0A6 .pool _0817DB90: - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1875,8 +1875,8 @@ _0817DBD4: lsls r0, r1, 4 adds r3, r0 adds r3, r7, r3 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1943,8 +1943,8 @@ _0817DC62: adds r2, r6 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2021,8 +2021,8 @@ _0817DCFC: lsls r0, r4, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2049,8 +2049,8 @@ _0817DD38: lsls r0, r4, 4 adds r2, r0 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2121,8 +2121,8 @@ _0817DDC8: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2154,8 +2154,8 @@ _0817DE10: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2253,8 +2253,8 @@ _0817DEDC: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2331,8 +2331,8 @@ _0817DF70: adds r2, r4 lsls r2, 2 adds r2, r7, r2 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2413,8 +2413,8 @@ _0817DFE6: negs r0, r0 ands r0, r2 strb r0, [r1] - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2557,14 +2557,14 @@ _0817E122: lsls r1, 2 adds r1, r0, r1 str r1, [sp, 0x8] - ldr r2, =gBattleAttacker + ldr r2, =gBattleMoveAttacker mov r10, r2 ldrb r0, [r2] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2572,7 +2572,7 @@ _0817E122: mov r1, r10 ldrb r0, [r1] adds r1, r7, 0 - bl GetBankMoveSlotId + bl GetBattlerMoveSlotId lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 @@ -2604,7 +2604,7 @@ _0817E184: mov r2, r10 ldrb r1, [r2] lsls r1, 1 - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes adds r1, r2 ldrh r2, [r1] adds r2, 0x1 @@ -2685,7 +2685,7 @@ _0817E23C: mov r1, r10 ldrb r0, [r1] lsls r0, 1 - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes adds r0, r2 ldrh r1, [r0] adds r1, 0x1 @@ -2723,7 +2723,7 @@ _0817E27A: mov r1, r10 ldrb r0, [r1] lsls r0, 1 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes adds r0, r1 ldrh r1, [r0] adds r1, 0x1 @@ -2812,7 +2812,7 @@ sub_817E32C: @ 817E32C movs r1, 0x81 lsls r1, 2 adds r4, r0, r1 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3244,12 +3244,12 @@ sub_817E684: @ 817E684 movs r2, 0x81 lsls r2, 2 adds r7, r0, r2 - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3297,8 +3297,8 @@ _0817E6F0: .4byte _0817E760 .4byte _0817E760 _0817E760: - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -3324,13 +3324,13 @@ _0817E760: _0817E79C: ldr r1, =gUnknown_0860A834 add r1, r12 - ldr r7, =gBattlePartyID + ldr r7, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r4 lsls r2, r0, 4 ldr r4, =0x0000ffff ldr r1, [r1] - ldr r3, =gBattleAttacker + ldr r3, =gBattleMoveAttacker ldrh r0, [r1] cmp r6, r0 bne _0817E7E0 @@ -3708,13 +3708,13 @@ sub_817EA80: @ 817EA80 movs r1, 0x81 lsls r1, 2 adds r5, r0, r1 - ldr r3, =gBattleAttacker + ldr r3, =gBattleMoveAttacker mov r8, r3 ldrb r0, [r3] bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4005,8 +4005,8 @@ _0817ECCC: ldrb r0, [r0] lsrs r0, 5 subs r6, r0, 0x1 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4164,8 +4164,8 @@ _0817EE1C: cmp r7, 0x1 bne _0817EEBC adds r2, r4, 0 - ldr r1, =gBattlePartyID - ldr r0, =gBattleAttacker + ldr r1, =gBattlerPartyIndexes + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4227,7 +4227,7 @@ _0817EE8E: b _0817EEBC _0817EE96: adds r2, r4, 0 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes mov r3, r8 ldrb r0, [r3] lsls r0, 1 @@ -4269,7 +4269,7 @@ sub_817EECC: @ 817EECC beq _0817EEE6 b _0817F1FA _0817EEE6: - ldr r4, =gBattleAttacker + ldr r4, =gBattleMoveAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -4291,7 +4291,7 @@ _0817EEF8: bgt _0817EF10 b _0817F1FA _0817EF10: - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] muls r0, r1 adds r0, r5 @@ -4367,7 +4367,7 @@ _0817EF8A: beq _0817EF98 b _0817F1FA _0817EF98: - ldr r2, =gBattleAttacker + ldr r2, =gBattleMoveAttacker ldrb r0, [r2] adds r0, r6 ldrb r0, [r0] @@ -4386,11 +4386,11 @@ _0817EF98: mov r10, r3 mov r8, r0 add r7, sp, 0x10 - ldr r4, =gBattleDefender + ldr r4, =gBattleMoveTarget mov r9, r4 _0817EFC2: lsls r1, r5, 1 - ldr r6, =gBattleAttacker + ldr r6, =gBattleMoveAttacker ldrb r0, [r6] movs r2, 0x58 muls r0, r2 @@ -4420,7 +4420,7 @@ _0817EFC2: lsls r1, 1 adds r1, r4 ldrh r3, [r1] - ldr r2, =gBattleAttacker + ldr r2, =gBattleMoveAttacker ldrb r0, [r2] movs r4, 0x58 muls r0, r4 @@ -4437,7 +4437,7 @@ _0817EFC2: str r4, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r6, =gBattleAttacker + ldr r6, =gBattleMoveAttacker ldrb r4, [r6] str r4, [sp, 0x8] mov r6, r9 @@ -4448,7 +4448,7 @@ _0817EFC2: ldr r4, =gBattleMoveDamage str r3, [r4] ldr r1, =gStatuses3 - ldr r2, =gBattleAttacker + ldr r2, =gBattleMoveAttacker ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -4472,7 +4472,7 @@ _0817EFC2: str r0, [r4] _0817F06A: ldr r0, =gProtectStructs - ldr r6, =gBattleAttacker + ldr r6, =gBattleMoveAttacker ldrb r1, [r6] lsls r1, 4 adds r1, r0 @@ -4513,9 +4513,9 @@ _0817F0B4: cmp r5, 0x3 ble _0817EFC2 movs r5, 0 - ldr r3, =gBattleAttacker + ldr r3, =gBattleMoveAttacker ldr r6, =gMoveSelectionCursor - ldr r4, =gBattlePartyID + ldr r4, =gBattlerPartyIndexes mov r8, r4 movs r7, 0x64 mov r9, r7 @@ -4545,9 +4545,9 @@ _0817F0D8: movs r7, 0 _0817F0F6: movs r5, 0 - ldr r4, =gBattleDefender + ldr r4, =gBattleMoveTarget ldr r6, =gEnemyParty - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] add r0, r10 ldrb r3, [r0] @@ -4582,7 +4582,7 @@ _0817F11A: adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 - ldr r2, =gBattleAttacker + ldr r2, =gBattleMoveAttacker ldrb r0, [r2] lsls r0, 1 add r0, r8 @@ -4598,7 +4598,7 @@ _0817F11A: adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r4, =gBattleAttacker + ldr r4, =gBattleMoveAttacker ldrb r3, [r4] mov r2, r10 adds r0, r3, r2 @@ -4625,7 +4625,7 @@ _0817F1D4: _0817F1DC: ldr r2, =gBattleMoveDamage ldr r1, =gMoveSelectionCursor - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4695,7 +4695,7 @@ _0817F270: cmp r2, 0x95 bne _0817F294 ldr r2, =gBattleMons - ldr r0, =gBattleAttacker + ldr r0, =gBattleMoveAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -4793,8 +4793,8 @@ _0817F324: .pool thumb_func_end sub_817F2A8 - thumb_func_start GetBankMoveSlotId -GetBankMoveSlotId: @ 817F33C + thumb_func_start GetBattlerMoveSlotId +GetBattlerMoveSlotId: @ 817F33C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -4809,7 +4809,7 @@ GetBankMoveSlotId: @ 817F33C ldr r6, =gPlayerParty _0817F356: movs r4, 0 - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r5, 1 adds r5, r0, r1 b _0817F36E @@ -4835,7 +4835,7 @@ _0817F388: pop {r4-r7} pop {r1} bx r1 - thumb_func_end GetBankMoveSlotId + thumb_func_end GetBattlerMoveSlotId thumb_func_start sub_817F394 sub_817F394: @ 817F394 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index b5b06c4e1..6156d6890 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -5354,7 +5354,7 @@ sub_8164E04: @ 8164E04 adds r0, r2 ldrh r1, [r5] bl sub_8165B88 - ldr r6, =gBattlePartyID + ldr r6, =gBattlerPartyIndexes ldrh r0, [r6, 0x2] movs r5, 0x64 muls r0, r5 diff --git a/asm/contest.s b/asm/contest.s index 8760464aa..8f5ff780e 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1058,12 +1058,12 @@ _080D8004: strb r2, [r1, 0x3] ldr r0, =gBattleTypeFlags str r4, [r0] - ldr r4, =gBattleAttacker + ldr r4, =gBattleMoveAttacker strb r2, [r4] - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget strb r3, [r0] bl sub_80DB0C4 - ldr r2, =gBankSpriteIds + ldr r2, =gBattlerSpriteIds ldrb r1, [r4] adds r1, r2 strb r0, [r1] @@ -2547,8 +2547,8 @@ _080D8DD0: lsls r4, 3 adds r4, r0 strh r5, [r4, 0xC] - ldr r1, =gBankSpriteIds - ldr r0, =gBattleAttacker + ldr r1, =gBattlerSpriteIds + ldr r0, =gBattleMoveAttacker ldrb r0, [r0] adds r0, r1 strb r5, [r0] @@ -13796,9 +13796,9 @@ sub_80DEA20: @ 80DEA20 push {lr} ldr r0, =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback - ldr r1, =gBankSpriteIds + ldr r1, =gBattlerSpriteIds strb r0, [r1, 0x3] - ldr r0, =gBattleDefender + ldr r0, =gBattleMoveTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -13817,7 +13817,7 @@ sub_80DEA20: @ 80DEA20 thumb_func_start sub_80DEA5C sub_80DEA5C: @ 80DEA5C push {r4,lr} - ldr r0, =gBankSpriteIds + ldr r0, =gBattlerSpriteIds ldrb r0, [r0, 0x3] lsls r4, r0, 4 adds r4, r0 @@ -13829,13 +13829,13 @@ sub_80DEA5C: @ 80DEA5C strh r0, [r4, 0x26] movs r0, 0x3 movs r1, 0 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] movs r0, 0x3 movs r1, 0x1 - bl GetBankCoord + bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -13905,12 +13905,12 @@ _080DEAD0: .4byte _080DEB60 .4byte _080DEB60 _080DEB54: - ldr r1, =gBattleDefender + ldr r1, =gBattleMoveTarget movs r0, 0x2 b _080DEB64 .pool _080DEB60: - ldr r1, =gBattleDefender + ldr r1, =gBattleMoveTarget movs r0, 0x3 _080DEB64: strb r0, [r1] diff --git a/asm/party_menu.s b/asm/party_menu.s index 6112d2413..b9f9cc65e 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -16048,7 +16048,7 @@ _081B8AFC: adds r0, r5, 0 bl sub_81B8F38 lsls r0, 24 - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes lsls r1, r4, 1 adds r1, r2 lsrs r0, 24 @@ -16115,7 +16115,7 @@ _081B8BA8: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes ldr r0, =gBankInMenu ldrb r0, [r0] lsls r0, 1 @@ -16150,7 +16150,7 @@ _081B8BFC: _081B8C20: ldr r0, =gBankInMenu ldrb r0, [r0] - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, 1 adds r0, r1 ldrb r0, [r0] @@ -16230,7 +16230,7 @@ _081B8CBE: movs r0, 0 bl GetBattlerAtPosition mov r2, sp - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, 24 lsrs r0, 23 adds r0, r1 @@ -16257,7 +16257,7 @@ _081B8CFC: movs r0, 0 bl GetBattlerAtPosition mov r1, sp - ldr r4, =gBattlePartyID + ldr r4, =gBattlerPartyIndexes lsls r0, 24 lsrs r0, 23 adds r0, r4 @@ -16388,7 +16388,7 @@ _081B8DF0: bne _081B8E28 movs r3, 0x1 mov r2, sp - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] @@ -16412,7 +16412,7 @@ _081B8E1A: _081B8E28: movs r3, 0x2 mov r1, sp - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes lsls r0, r4, 1 adds r0, r2 ldrh r0, [r0] diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 6da70ff2f..928eb5550 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -130,7 +130,7 @@ _0806BDC4: ldrb r0, [r0] cmp r1, r0 bge _0806BE70 - ldr r2, =gBattlePartyID + ldr r2, =gBattlerPartyIndexes lsls r0, r1, 1 adds r0, r2 ldrh r3, [r0] @@ -973,7 +973,7 @@ _0806C4FC: ldrb r0, [r2] bics r0, r1 strb r0, [r2] - ldr r1, =gBattlePartyID + ldr r1, =gBattlerPartyIndexes lsls r0, r3, 1 adds r0, r1 ldrb r0, [r0] @@ -1155,9 +1155,9 @@ _0806C6AE: movs r0, 0 movs r1, 0 movs r2, 0 - bl EmitGetMonData + bl BtlController_EmitGetMonData ldrb r0, [r4] - bl MarkBufferBankForExecution + bl MarkBattlerForControllerExec strb r5, [r4] b _0806C6EC .pool diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8c39348e2..8eb3deaf2 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -735,7 +735,7 @@ BattleScript_AlreadyPoisoned:: goto BattleScript_MoveEnd BattleScript_ImmunityProtected:: - copybyte gEffectBank, gBattleDefender + copybyte gEffectBank, gBattleMoveTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention goto BattleScript_MoveEnd @@ -1055,7 +1055,7 @@ BattleScript_AlreadyParalyzed:: goto BattleScript_MoveEnd BattleScript_LimberProtected:: - copybyte gEffectBank, gBattleDefender + copybyte gEffectBank, gBattleMoveTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention goto BattleScript_MoveEnd @@ -1513,7 +1513,7 @@ BattleScript_EffectCurse:: jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: - copybyte gBattleDefender, gBattleAttacker + copybyte gBattleMoveTarget, gBattleMoveAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation @@ -1534,7 +1534,7 @@ BattleScript_CurseTryDefence:: BattleScript_CurseEnd:: goto BattleScript_MoveEnd BattleScript_GhostCurse:: - jumpifbytenotequal gBattleAttacker, gBattleDefender, BattleScript_DoGhostCurse + jumpifbytenotequal gBattleMoveAttacker, gBattleMoveTarget, BattleScript_DoGhostCurse getmovetarget ATTACKER BattleScript_DoGhostCurse:: attackcanceler @@ -2217,7 +2217,7 @@ BattleScript_EffectWillOWisp:: goto BattleScript_MoveEnd BattleScript_WaterVeilPrevents:: - copybyte gEffectBank, gBattleDefender + copybyte gEffectBank, gBattleMoveTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention goto BattleScript_MoveEnd @@ -2598,11 +2598,11 @@ BattleScript_EffectTeeterDance:: attackcanceler attackstring ppreduce - setbyte gBattleDefender, 0x0 + setbyte gBattleMoveTarget, 0x0 BattleScript_TeeterDanceLoop:: movevaluescleanup setmoveeffect EFFECT_CONFUSION - jumpifbyteequal gBattleAttacker, gBattleDefender, BattleScript_TeeterDanceLoopIncrement + jumpifbyteequal gBattleMoveAttacker, gBattleMoveTarget, BattleScript_TeeterDanceLoopIncrement jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused @@ -2618,8 +2618,8 @@ BattleScript_TeeterDanceDoMoveEndIncrement:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 BattleScript_TeeterDanceLoopIncrement:: - addbyte gBattleDefender, 0x1 - jumpifbytenotequal gBattleDefender, gBattlersCount, BattleScript_TeeterDanceLoop + addbyte gBattleMoveTarget, 0x1 + jumpifbytenotequal gBattleMoveTarget, gBattlersCount, BattleScript_TeeterDanceLoop end BattleScript_TeeterDanceOwnTempoPrevents:: @@ -3228,7 +3228,7 @@ BattleScript_DamagingWeatherContinues:: playanimation2 ATTACKER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 BattleScript_DamagingWeatherLoop:: - copyarraywithindex gBattleAttacker, gBattleTurnOrder, gBattleCommunication, 0x1 + copyarraywithindex gBattleMoveAttacker, gBattleTurnOrder, gBattleCommunication, 0x1 weatherdamage jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement printfromtable gSandStormHailDmgStringIds @@ -3521,7 +3521,7 @@ BattleScript_RapidSpinAway:: BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE waitmessage 0x40 - copybyte gBattleDefender, sBANK + copybyte gBattleMoveTarget, sBANK return BattleScript_LeechSeedFree:: @@ -4053,7 +4053,7 @@ BattleScript_82DB4B8:: BattleScript_82DB4BE:: pause 0x20 BattleScript_82DB4C1:: - setbyte gBattleDefender, 0x0 + setbyte gBattleMoveTarget, 0x0 setstatchanger ATK, 1, TRUE BattleScript_82DB4CD:: trygetintimidatetarget BattleScript_82DB51B @@ -4068,7 +4068,7 @@ BattleScript_82DB4CD:: printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 BattleScript_82DB510:: - addbyte gBattleDefender, 0x1 + addbyte gBattleMoveTarget, 0x1 goto BattleScript_82DB4CD BattleScript_82DB51B:: return diff --git a/include/battle_anim.h b/include/battle_anim.h index 746e19bfe..8f8e3a377 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -45,8 +45,8 @@ extern u8 gAnimFriendship; extern u16 gWeatherMoveAnim; extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT]; extern u8 gAnimMoveTurn; -extern u8 gAnimBankAttacker; -extern u8 gAnimBankTarget; +extern u8 gBattleAnimAttacker; +extern u8 gBattleAnimTarget; extern u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT]; extern u8 gUnknown_02038440; @@ -56,7 +56,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo void DestroyAnimSprite(struct Sprite *sprite); void DestroyAnimVisualTask(u8 taskId); void DestroyAnimSoundTask(u8 taskId); -bool8 IsAnimBankSpriteVisible(u8 bank); +bool8 IsBattlerSpriteVisible(u8 bank); void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible); bool8 IsContest(void); s8 BattleAnimAdjustPanning(s8 pan); @@ -85,17 +85,17 @@ enum BANK_Y_POS, }; -u8 GetBankCoord(u8 bank, u8 attributeId); +u8 GetBattlerSpriteCoord(u8 bank, u8 attributeId); -bool8 IsBankSpritePresent(u8 bank); +bool8 IsBattlerSpritePresent(u8 bank); void sub_80A6C68(u8 arg0); -u8 GetAnimBankSpriteId(u8 wantedBank); +u8 GetBattlerSpriteId(u8 wantedBank); bool8 IsDoubleBattle(void); u8 sub_80A6D94(void); u8 sub_80A8364(u8); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*)); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); -u8 GetBankSpriteDefault_Y(u8 bank); +u8 GetBattlerSpriteDefault_Y(u8 bank); u8 sub_80A82E4(u8 bank); u8 GetSubstituteSpriteDefault_Y(u8 bank); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index c69cb1017..a0fc41b52 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -181,62 +181,62 @@ void sub_8033648(void); void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); // emitters -void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck); -void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused -void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data); -void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused -void EmitLoadMonSprite(u8 bufferId); -void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); -void EmitReturnMonToBall(u8 bufferId, u8 arg1); -void EmitDrawTrainerPic(u8 bufferId); -void EmitTrainerSlide(u8 bufferId); -void EmitTrainerSlideBack(u8 bufferId); -void EmitFaintAnimation(u8 bufferId); -void EmitPaletteFade(u8 bufferId); // unused -void EmitSuccessBallThrowAnim(u8 bufferId); // unused -void EmitBallThrowAnim(u8 bufferId, u8 caseId); -void EmitPause(u8 bufferId, u8 toWait, void *data); // unused -void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); -void EmitPrintString(u8 bufferId, u16 stringId); -void EmitPrintSelectionString(u8 bufferId, u16 stringId); -void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); -void EmitUnknownYesNoBox(u8 bufferId); -void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); -void EmitChooseItem(u8 bufferId, u8* arg1); -void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4); -void EmitCmd23(u8 bufferId); // unused -void EmitHealthBarUpdate(u8 bufferId, u16 hpValue); -void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); -void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); -void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); -void EmitStatusXor(u8 bufferId, u8 b); // unused -void EmitDataTransfer(u8 bufferId, u16 size, void *data); -void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused -void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused -void EmitCmd32(u8 bufferId, u16 size, void *c); // unused -void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2); -void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c); -void EmitOneReturnValue(u8 bufferId, u16 arg1); -void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b); -void EmitCmd37(u8 bufferId); // unused -void EmitCmd38(u8 bufferId, u8 b); // unused -void EmitCmd39(u8 bufferId); // unused -void EmitCmd40(u8 bufferId); // unused -void EmitHitAnimation(u8 bufferId); -void EmitCmd42(u8 bufferId); -void EmitPlaySE(u8 bufferId, u16 songId); -void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); -void EmitFaintingCry(u8 bufferId); -void EmitIntroSlide(u8 bufferId, u8 terrainId); -void EmitIntroTrainerBallThrow(u8 bufferId); -void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); -void EmitCmd49(u8 bufferId); -void EmitCmd50(u8 bufferId); -void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); -void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); -void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2); -void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); -void EmitCmd55(u8 bufferId, u8 arg1); +void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck); +void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused +void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data); +void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused +void BtlController_EmitLoadMonSprite(u8 bufferId); +void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); +void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1); +void BtlController_EmitDrawTrainerPic(u8 bufferId); +void BtlController_EmitTrainerSlide(u8 bufferId); +void BtlController_EmitTrainerSlideBack(u8 bufferId); +void BtlController_EmitFaintAnimation(u8 bufferId); +void BtlController_EmitPaletteFade(u8 bufferId); // unused +void BtlController_EmitSuccessBallThrowAnim(u8 bufferId); // unused +void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId); +void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data); // unused +void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); +void BtlController_EmitPrintString(u8 bufferId, u16 stringId); +void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId); +void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); +void BtlController_EmitUnknownYesNoBox(u8 bufferId); +void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); +void BtlController_EmitChooseItem(u8 bufferId, u8* arg1); +void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4); +void BtlController_EmitCmd23(u8 bufferId); // unused +void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue); +void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); +void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); +void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); +void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused +void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data); +void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused +void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused +void BtlController_EmitCmd32(u8 bufferId, u16 size, void *c); // unused +void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2); +void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c); +void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1); +void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b); +void BtlController_EmitCmd37(u8 bufferId); // unused +void BtlController_EmitCmd38(u8 bufferId, u8 b); // unused +void BtlController_EmitCmd39(u8 bufferId); // unused +void BtlController_EmitCmd40(u8 bufferId); // unused +void BtlController_EmitHitAnimation(u8 bufferId); +void BtlController_EmitCmd42(u8 bufferId); +void BtlController_EmitPlaySE(u8 bufferId, u16 songId); +void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); +void BtlController_EmitFaintingCry(u8 bufferId); +void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId); +void BtlController_EmitIntroTrainerBallThrow(u8 bufferId); +void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); +void BtlController_EmitCmd49(u8 bufferId); +void BtlController_EmitCmd50(u8 bufferId); +void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); +void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); +void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2); +void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId); +void BtlController_EmitCmd55(u8 bufferId, u8 arg1); // player controller void SetControllerToPlayer(void); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 313a29811..75bc3e003 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -39,8 +39,8 @@ void sub_805EAE8(void); void sub_805EB9C(u8 affineMode); void LoadAndCreateEnemyShadowSprites(void); void SpriteCB_SetInvisible(struct Sprite *sprite); -void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species); -void EnemyShadowCallbackToSetInvisible(u8 bank); +void SetBattlerShadowSpriteCallback(u8 bank, u16 species); +void HideBattlerShadowSprite(u8 bank); void sub_805EF14(void); void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute); void AllocateMonSpritesGfx(void); diff --git a/include/battle_interface.h b/include/battle_interface.h index b2d3b1b97..5ccec56ca 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -54,7 +54,7 @@ enum HEALTHBOX_SAFARI_BALLS_TEXT }; -u8 CreateBankHealthboxSprites(u8 bank); +u8 CreateHealthboxSprites(u8 bank); u8 CreateSafariPlayerHealthboxSprites(void); void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); @@ -62,7 +62,7 @@ void SetHealthboxSpriteVisible(u8 healthboxSpriteId); void DestoryHealthboxSprite(u8 healthboxSpriteId); void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); void UpdateOamPriorityInAllHealthboxes(u8 priority); -void SetBankHealthboxSpritePos(u8 bank); +void InitBattlerHealthboxCoords(u8 bank); void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); void SwapHpBarsWithHpText(void); u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart); diff --git a/include/battle_link_817C95C.h b/include/battle_link_817C95C.h index 815c1f058..cb2cb0b27 100644 --- a/include/battle_link_817C95C.h +++ b/include/battle_link_817C95C.h @@ -6,6 +6,6 @@ void sub_817E0FC(u16 move, u16 weatherFlags, struct DisableStruct *disableStruct void sub_817E32C(u8 animationId); void sub_817E3F4(void); void sub_817F2A8(void); -u8 GetBankMoveSlotId(u8 bank, u16 move); +u8 GetBattlerMoveSlotId(u8 bank, u16 move); #endif // GUARD_BATTLE_LINK_817C95C_H diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 80fabaa64..26659ff20 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -52,7 +52,7 @@ void AI_CalcDmg(u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility); -u8 BankGetTurnOrder(u8 bank); +u8 GetBattlerTurnOrderNum(u8 bank); void SetMoveEffect(bool8 primary, u8 certain); void BattleDestroyYesNoCursorAt(u8 cursorPosition); void BattleCreateYesNoCursorAt(u8 cursorPosition); diff --git a/include/battle_util.h b/include/battle_util.h index 81eb85dc7..56628c11d 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -48,8 +48,8 @@ u8 GetBattleBank(u8 caseId); void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move); void PressurePPLoseOnUsingPerishSong(u8 bankAtk); void PressurePPLoseOnUsingImprision(u8 bankAtk); -void MarkAllBufferBanksForExecution(void); // unused -void MarkBufferBankForExecution(u8 bank); +void MarkAllBattlersForControllerExec(void); // unused +void MarkBattlerForControllerExec(u8 bank); void sub_803F850(u8 arg0); void CancelMultiTurnMoves(u8 bank); bool8 WasUnableToUseMove(u8 bank); diff --git a/include/pokemon.h b/include/pokemon.h index cdab96687..fbdd93924 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -631,7 +631,7 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); bool8 IsTradedMon(struct Pokemon *mon); void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); -s32 GetBankMultiplayerId(u16 a1); +s32 GetBattlerMultiplayerId(u16 a1); bool16 sub_806D82C(u8 id); u16 MonTryLearningNewMove(struct Pokemon* mon, bool8); void sub_8068AA4(void); // sets stats for deoxys diff --git a/include/recorded_battle.h b/include/recorded_battle.h index adc4c6c85..5c7bdc983 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -7,9 +7,9 @@ extern u8 gUnknown_0203C7B4; void sub_8184DA4(u8 arg0); void sub_8184E58(void); -void RecordedBattle_SetBankAction(u8 bank, u8 action); -void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear); -u8 RecordedBattle_ReadBankAction(u8 bank); +void RecordedBattle_SetBattlerAction(u8 bank, u8 action); +void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear); +u8 RecordedBattle_GetBankAction(u8 bank); u8 sub_81850D0(void); u8 sub_81850DC(u8 *arg0); void sub_81851A8(u8 *arg0); diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 2ddc3fdfe..3e8d8d40e 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -48,14 +48,14 @@ extern u32 gBattleTypeFlags; extern u8 gActiveBattler; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern u16 gSideStatuses[2]; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u16 gDynamicBasePower; extern u8 gMoveResultFlags; extern s32 gBattleMoveDamage; @@ -367,14 +367,14 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) // decide a random target bank in doubles if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gBattleDefender = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) - gBattleDefender ^= BIT_FLANK; + gBattleMoveTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattleMoveTarget ^= BIT_FLANK; } // in singles there's only one choice else { - gBattleDefender = sBank_AI ^ BIT_SIDE; + gBattleMoveTarget = sBank_AI ^ BIT_SIDE; } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) @@ -491,7 +491,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) else BattleAI_SetupAIData(0xF); - gBattleDefender = i; + gBattleMoveTarget = i; if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE)) RecordLastUsedMoveByTarget(); @@ -573,8 +573,8 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) } } - gBattleDefender = mostViableTargetsArray[Random() % mostViableTargetsNo]; - return actionOrMoveIndex[gBattleDefender]; + gBattleMoveTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; + return actionOrMoveIndex[gBattleMoveTarget]; } static void BattleAI_DoAIProcessing(void) @@ -627,12 +627,12 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] == gLastMoves[gBattleDefender]) + if (gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] == gLastMoves[gBattleMoveTarget]) break; - if (gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] != gLastMoves[gBattleDefender] // HACK: This redundant condition is a hack to make the asm match. - && gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] == 0) + if (gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] != gLastMoves[gBattleMoveTarget] // HACK: This redundant condition is a hack to make the asm match. + && gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBattleDefender].moves[i] = gLastMoves[gBattleDefender]; + gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] = gLastMoves[gBattleMoveTarget]; break; } } @@ -723,7 +723,7 @@ static void BattleAICmd_if_hp_less_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -738,7 +738,7 @@ static void BattleAICmd_if_hp_more_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -753,7 +753,7 @@ static void BattleAICmd_if_hp_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -768,7 +768,7 @@ static void BattleAICmd_if_hp_not_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -784,7 +784,7 @@ static void BattleAICmd_if_status(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -802,7 +802,7 @@ static void BattleAICmd_if_not_status(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -820,7 +820,7 @@ static void BattleAICmd_if_status2(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -838,7 +838,7 @@ static void BattleAICmd_if_not_status2(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -856,7 +856,7 @@ static void BattleAICmd_if_status3(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -874,7 +874,7 @@ static void BattleAICmd_if_not_status3(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -892,7 +892,7 @@ static void BattleAICmd_if_side_affecting(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; side = GET_BATTLER_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); @@ -911,7 +911,7 @@ static void BattleAICmd_if_not_side_affecting(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; side = GET_BATTLER_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); @@ -1126,13 +1126,13 @@ static void BattleAICmd_get_type(void) AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1; break; case AI_TYPE1_TARGET: // target primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleDefender].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleMoveTarget].type1; break; case AI_TYPE2_USER: // AI user secondary type AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2; break; case AI_TYPE2_TARGET: // target secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleDefender].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleMoveTarget].type2; break; case AI_TYPE_MOVE: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -1149,11 +1149,11 @@ static u8 BattleAI_GetWantedBank(u8 bank) return sBank_AI; case AI_TARGET: default: - return gBattleDefender; + return gBattleMoveTarget; case AI_USER_PARTNER: return sBank_AI ^ BIT_FLANK; case AI_TARGET_PARTNER: - return gBattleDefender ^ BIT_FLANK; + return gBattleMoveTarget ^ BIT_FLANK; } } @@ -1212,8 +1212,8 @@ static void BattleAICmd_get_how_powerful_move_is(void) && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1) { gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove]; - AI_CalcDmg(sBank_AI, gBattleDefender); - TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); + AI_CalcDmg(sBank_AI, gBattleMoveTarget); + TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; if (moveDmgs[checkedMove] == 0) moveDmgs[checkedMove] = 1; @@ -1248,7 +1248,7 @@ static void BattleAICmd_get_last_used_bank_move(void) if (gAIScriptPtr[1] == AI_USER) AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; else - AI_THINKING_STRUCT->funcResult = gLastMoves[gBattleDefender]; + AI_THINKING_STRUCT->funcResult = gLastMoves[gBattleMoveTarget]; gAIScriptPtr += 2; } @@ -1271,7 +1271,7 @@ static void BattleAICmd_if_not_equal_(void) // same as if_not_equal static void BattleAICmd_if_user_goes(void) { - if (GetWhoStrikesFirst(sBank_AI, gBattleDefender, TRUE) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBattleMoveTarget, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1279,7 +1279,7 @@ static void BattleAICmd_if_user_goes(void) static void BattleAICmd_if_user_doesnt_go(void) { - if (GetWhoStrikesFirst(sBank_AI, gBattleDefender, TRUE) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBattleMoveTarget, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1305,7 +1305,7 @@ static void BattleAICmd_count_usable_party_mons(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (GetBattlerSide(bank) == B_SIDE_PLAYER) party = gPlayerParty; @@ -1315,14 +1315,14 @@ static void BattleAICmd_count_usable_party_mons(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { u32 position; - bankOnField1 = gBattlePartyID[bank]; + bankOnField1 = gBattlerPartyIndexes[bank]; position = GetBattlerPosition(bank) ^ BIT_FLANK; - bankOnField2 = gBattlePartyID[GetBattlerAtPosition(position)]; + bankOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(position)]; } else // in singles there's only one bank by side { - bankOnField1 = gBattlePartyID[bank]; - bankOnField2 = gBattlePartyID[bank]; + bankOnField1 = gBattlerPartyIndexes[bank]; + bankOnField2 = gBattlerPartyIndexes[bank]; } for (i = 0; i < PARTY_SIZE; i++) @@ -1358,7 +1358,7 @@ static void BattleAICmd_get_ability(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gActiveBattler != bank) { @@ -1493,7 +1493,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void) if (gCurrentMove) { - TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1528,7 +1528,7 @@ static void BattleAICmd_if_type_effectiveness(void) gBattleMoveDamage = AI_EFFECTIVENESS_x1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); + TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); if (gBattleMoveDamage == 120) gBattleMoveDamage = AI_EFFECTIVENESS_x2; @@ -1572,7 +1572,7 @@ static void BattleAICmd_if_status_in_party(void) bank = sBank_AI; break; default: - bank = gBattleDefender; + bank = gBattleMoveTarget; break; } @@ -1609,7 +1609,7 @@ static void BattleAICmd_if_status_not_in_party(void) bank = sBank_AI; break; default: - bank = gBattleDefender; + bank = gBattleMoveTarget; break; } @@ -1669,7 +1669,7 @@ static void BattleAICmd_if_stat_level_less_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1684,7 +1684,7 @@ static void BattleAICmd_if_stat_level_more_than(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1699,7 +1699,7 @@ static void BattleAICmd_if_stat_level_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1714,7 +1714,7 @@ static void BattleAICmd_if_stat_level_not_equal(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1736,8 +1736,8 @@ static void BattleAICmd_if_can_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBattleDefender); - TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); + AI_CalcDmg(sBank_AI, gBattleMoveTarget); + TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gBattleDefender].hp <= gBattleMoveDamage) + if (gBattleMons[gBattleMoveTarget].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1765,14 +1765,14 @@ static void BattleAICmd_if_cant_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBattleDefender); - TypeCalc(gCurrentMove, sBank_AI, gBattleDefender); + AI_CalcDmg(sBank_AI, gBattleMoveTarget); + TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1829,7 +1829,7 @@ static void BattleAICmd_if_has_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i] == *movePtr) break; } if (i == 4) @@ -1873,7 +1873,7 @@ static void BattleAICmd_if_doesnt_have_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i] == *movePtr) break; } if (i != 4) @@ -1911,8 +1911,8 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - // UB: checks sBank_AI instead of gBattleDefender - if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i]].effect == gAIScriptPtr[2]) + // UB: checks sBank_AI instead of gBattleMoveTarget + if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -1945,7 +1945,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleDefender].moves[i]].effect == gAIScriptPtr[2]) + if (BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1963,7 +1963,7 @@ static void BattleAICmd_if_any_move_disabled_or_encored(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gAIScriptPtr[2] == 0) { @@ -2041,7 +2041,7 @@ static void BattleAICmd_get_hold_effect(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; if (gActiveBattler != bank) AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]); @@ -2079,7 +2079,7 @@ static void BattleAICmd_get_gender(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality); @@ -2093,7 +2093,7 @@ static void BattleAICmd_is_first_turn_for(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn; @@ -2107,7 +2107,7 @@ static void BattleAICmd_get_stockpile_count(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter; @@ -2128,7 +2128,7 @@ static void BattleAICmd_get_used_held_item(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; // This is likely a leftover from Ruby's code and its ugly ewram access #ifdef NONMATCHING @@ -2168,7 +2168,7 @@ static void BattleAICmd_get_protect_count(void) if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; else - bank = gBattleDefender; + bank = gBattleMoveTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses; @@ -2221,7 +2221,7 @@ static void BattleAICmd_if_level_cond(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[sBank_AI].level > gBattleMons[gBattleDefender].level) + if (gBattleMons[sBank_AI].level > gBattleMons[gBattleMoveTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2229,7 +2229,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[sBank_AI].level < gBattleMons[gBattleDefender].level) + if (gBattleMons[sBank_AI].level < gBattleMons[gBattleMoveTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2237,7 +2237,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[sBank_AI].level == gBattleMons[gBattleDefender].level) + if (gBattleMons[sBank_AI].level == gBattleMons[gBattleMoveTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2249,7 +2249,7 @@ static void BattleAICmd_if_level_cond(void) static void BattleAICmd_if_target_taunted(void) { - if (gDisableStructs[gBattleDefender].tauntTimer1 != 0) + if (gDisableStructs[gBattleMoveTarget].tauntTimer1 != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2257,7 +2257,7 @@ static void BattleAICmd_if_target_taunted(void) static void BattleAICmd_if_target_not_taunted(void) { - if (gDisableStructs[gBattleDefender].tauntTimer1 == 0) + if (gDisableStructs[gBattleMoveTarget].tauntTimer1 == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2265,7 +2265,7 @@ static void BattleAICmd_if_target_not_taunted(void) static void BattleAICmd_if_target_is_ally(void) { - if ((sBank_AI & BIT_SIDE) == (gBattleDefender & BIT_SIDE)) + if ((sBank_AI & BIT_SIDE) == (gBattleMoveTarget & BIT_SIDE)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 7d187559b..1671fad7e 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -15,7 +15,7 @@ extern u8 gAbsentBattlerFlags; extern u32 gBattleTypeFlags; extern u32 gStatuses3[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT]; extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gDynamicBasePower; @@ -39,7 +39,7 @@ static bool8 ShouldSwitchIfPerishSong(void) && gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -104,7 +104,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) continue; if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) continue; - if (i == gBattlePartyID[gActiveBattler]) + if (i == gBattlerPartyIndexes[gActiveBattler]) continue; GetMonData(&party[i], MON_DATA_SPECIES); // unused return value @@ -121,7 +121,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) { // we found a mon *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } } @@ -202,9 +202,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) continue; if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) continue; - if (i == gBattlePartyID[bankIn1]) + if (i == gBattlerPartyIndexes[bankIn1]) continue; - if (i == gBattlePartyID[bankIn2]) + if (i == gBattlerPartyIndexes[bankIn2]) continue; if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1)) continue; @@ -221,7 +221,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) { // we found a mon *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } } @@ -241,13 +241,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -258,7 +258,7 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } @@ -396,9 +396,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) continue; if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) continue; - if (i == gBattlePartyID[bankIn1]) + if (i == gBattlerPartyIndexes[bankIn1]) continue; - if (i == gBattlePartyID[bankIn2]) + if (i == gBattlerPartyIndexes[bankIn2]) continue; if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1)) continue; @@ -426,7 +426,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } } @@ -504,9 +504,9 @@ static bool8 ShouldSwitch(void) continue; if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) continue; - if (i == gBattlePartyID[bankIn1]) + if (i == gBattlerPartyIndexes[bankIn1]) continue; - if (i == gBattlePartyID[bankIn2]) + if (i == gBattlerPartyIndexes[bankIn2]) continue; if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1)) continue; @@ -586,9 +586,9 @@ void AI_TrySwitchOrUseItem(void) { if (GetMonData(&party[monToSwitchId], MON_DATA_HP) == 0) continue; - if (monToSwitchId == gBattlePartyID[bankIn1]) + if (monToSwitchId == gBattlerPartyIndexes[bankIn1]) continue; - if (monToSwitchId == gBattlePartyID[bankIn2]) + if (monToSwitchId == gBattlerPartyIndexes[bankIn2]) continue; if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + bankIn1)) continue; @@ -611,7 +611,7 @@ void AI_TrySwitchOrUseItem(void) } } - EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); + BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); } static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var) @@ -654,7 +654,7 @@ u8 GetMostSuitableMonToSwitchInto(void) if (*(gBattleStruct->monToSwitchIntoId + gActiveBattler) != 6) return *(gBattleStruct->monToSwitchIntoId + gActiveBattler); if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - return gBattlePartyID[gActiveBattler] + 1; + return gBattlerPartyIndexes[gActiveBattler] + 1; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -706,8 +706,8 @@ u8 GetMostSuitableMonToSwitchInto(void) if (species != SPECIES_NONE && GetMonData(&party[i], MON_DATA_HP) != 0 && !(gBitTable[i] & invalidMons) - && gBattlePartyID[bankIn1] != i - && gBattlePartyID[bankIn2] != i + && gBattlerPartyIndexes[bankIn1] != i + && gBattlerPartyIndexes[bankIn2] != i && i != *(gBattleStruct->monToSwitchIntoId + bankIn1) && i != *(gBattleStruct->monToSwitchIntoId + bankIn2)) { @@ -764,9 +764,9 @@ u8 GetMostSuitableMonToSwitchInto(void) continue; if (GetMonData(&party[i], MON_DATA_HP) == 0) continue; - if (gBattlePartyID[bankIn1] == i) + if (gBattlerPartyIndexes[bankIn1] == i) continue; - if (gBattlePartyID[bankIn2] == i) + if (gBattlerPartyIndexes[bankIn2] == i) continue; if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1)) continue; @@ -937,7 +937,7 @@ static bool8 ShouldUseItem(void) if (shouldUse) { - EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2) = item; gBattleResources->battleHistory->trainerItems[i] = 0; return shouldUse; diff --git a/src/battle_anim.c b/src/battle_anim.c index 93d4de7b3..f5de56610 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -25,8 +25,8 @@ #define ANIM_SPRITE_INDEX_COUNT 8 -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; extern u16 gBattle_WIN1H; @@ -35,8 +35,8 @@ extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; extern u16 gBattle_BG2_Y; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; @@ -130,8 +130,8 @@ EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0}; EWRAM_DATA u8 gAnimMoveTurn = 0; EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; EWRAM_DATA static u16 sAnimMoveIndex = 0; // set but unused. -EWRAM_DATA u8 gAnimBankAttacker = 0; -EWRAM_DATA u8 gAnimBankTarget = 0; +EWRAM_DATA u8 gBattleAnimAttacker = 0; +EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gUnknown_02038440 = 0; @@ -214,15 +214,15 @@ void ClearBattleAnimationVars(void) gAnimMoveTurn = 0; sAnimBackgroundFadeState = 0; sAnimMoveIndex = 0; - gAnimBankAttacker = 0; - gAnimBankTarget = 0; + gBattleAnimAttacker = 0; + gBattleAnimTarget = 0; gUnknown_02038440 = 0; } void DoMoveAnim(u16 move) { - gAnimBankAttacker = gBattleAttacker; - gAnimBankTarget = gBattleDefender; + gBattleAnimAttacker = gBattleMoveAttacker; + gBattleAnimTarget = gBattleMoveTarget; LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE); } @@ -237,9 +237,9 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (GetBattlerSide(i) != 0) - gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES); + gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); else - gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES); + gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); } } else @@ -409,7 +409,7 @@ static void ScriptCmd_createsprite(void) else argVar *= -1; - subpriority = sub_80A82E4(gAnimBankTarget) + (s8)(argVar); + subpriority = sub_80A82E4(gBattleAnimTarget) + (s8)(argVar); } else { @@ -418,13 +418,13 @@ static void ScriptCmd_createsprite(void) else argVar *= -1; - subpriority = sub_80A82E4(gAnimBankAttacker) + (s8)(argVar); + subpriority = sub_80A82E4(gBattleAnimAttacker) + (s8)(argVar); } if (subpriority < 3) subpriority = 3; - CreateSpriteAndAnimate(template, GetBankCoord(gAnimBankTarget, 2), GetBankCoord(gAnimBankTarget, 3), subpriority); + CreateSpriteAndAnimate(template, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), subpriority); gAnimVisualTaskCount++; } @@ -565,7 +565,7 @@ static void sub_80A40F4(u8 taskId) u8 newTaskId; s16 *selfData = gTasks[taskId].data; - u8 bankSpriteId = gBankSpriteIds[selfData[t1_MONBG_BANK]]; + u8 bankSpriteId = gBattlerSpriteIds[selfData[t1_MONBG_BANK]]; gSprites[bankSpriteId].invisible = 1; if (!selfData[t1_CREATE_ANOTHER_TASK]) @@ -607,11 +607,11 @@ static void ScriptCmd_monbg(void) animBank = sBattleAnimScriptPtr[0]; if (animBank & ANIM_TARGET) - bank = gAnimBankTarget; + bank = gBattleAnimTarget; else - bank = gAnimBankAttacker; + bank = gBattleAnimAttacker; - if (IsAnimBankSpriteVisible(bank)) + if (IsBattlerSpriteVisible(bank)) { u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) @@ -630,7 +630,7 @@ static void ScriptCmd_monbg(void) } bank ^= BIT_FLANK; - if (IsAnimBankSpriteVisible(bank)) + if (IsBattlerSpriteVisible(bank)) { u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) @@ -652,20 +652,20 @@ static void ScriptCmd_monbg(void) gAnimScriptCallback = WaitAnimFrameCount; } -bool8 IsAnimBankSpriteVisible(u8 bank) +bool8 IsBattlerSpriteVisible(u8 bank) { if (IsContest()) { - if (bank == gAnimBankAttacker) + if (bank == gBattleAnimAttacker) return TRUE; else return FALSE; } - if (!IsBankSpritePresent(bank)) + if (!IsBattlerSpritePresent(bank)) return FALSE; if (IsContest()) return TRUE; // this line wont ever be reached. - if (!gBattleSpritesDataPtr->bankData[bank].invisible || !gSprites[gBankSpriteIds[bank]].invisible) + if (!gBattleSpritesDataPtr->bankData[bank].invisible || !gSprites[gBattlerSpriteIds[bank]].invisible) return TRUE; return FALSE; @@ -699,7 +699,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0); - bankSpriteId = gBankSpriteIds[bank]; + bankSpriteId = gBattlerSpriteIds[bank]; gBattle_BG1_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20; if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->field_0)) @@ -707,7 +707,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) gBattle_BG1_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20; if (setSpriteInvisible) - gSprites[gBankSpriteIds[bank]].invisible = 1; + gSprites[gBattlerSpriteIds[bank]].invisible = 1; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); @@ -736,13 +736,13 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible) SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1); SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0); - bankSpriteId = gBankSpriteIds[bank]; + bankSpriteId = gBattlerSpriteIds[bank]; gBattle_BG2_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20; gBattle_BG2_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20; if (setSpriteInvisible) - gSprites[gBankSpriteIds[bank]].invisible = 1; + gSprites[gBattlerSpriteIds[bank]].invisible = 1; SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); @@ -869,14 +869,14 @@ static void ScriptCmd_clearmonbg(void) animBankId = ANIM_DEF_PARTNER; if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER) - bank = gAnimBankAttacker; + bank = gBattleAnimAttacker; else - bank = gAnimBankTarget; + bank = gBattleAnimTarget; if (sMonAnimTaskIdArray[0] != 0xFF) - gSprites[gBankSpriteIds[bank]].invisible = 0; + gSprites[gBattlerSpriteIds[bank]].invisible = 0; if (animBankId > 1 && sMonAnimTaskIdArray[1] != 0xFF) - gSprites[gBankSpriteIds[bank ^ BIT_FLANK]].invisible = 0; + gSprites[gBattlerSpriteIds[bank ^ BIT_FLANK]].invisible = 0; else animBankId = 0; @@ -931,11 +931,11 @@ static void ScriptCmd_monbg_22(void) animBankId = ANIM_DEF_PARTNER; if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER) - bank = gAnimBankAttacker; + bank = gBattleAnimAttacker; else - bank = gAnimBankTarget; + bank = gBattleAnimTarget; - if (IsAnimBankSpriteVisible(bank)) + if (IsBattlerSpriteVisible(bank)) { u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) @@ -947,7 +947,7 @@ static void ScriptCmd_monbg_22(void) } bank ^= BIT_FLANK; - if (animBankId > 1 && IsAnimBankSpriteVisible(bank)) + if (animBankId > 1 && IsBattlerSpriteVisible(bank)) { u8 position = GetBattlerPosition(bank); if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest()) @@ -976,14 +976,14 @@ static void ScriptCmd_clearmonbg_23(void) animBankId = ANIM_DEF_PARTNER; if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER) - bank = gAnimBankAttacker; + bank = gBattleAnimAttacker; else - bank = gAnimBankTarget; + bank = gBattleAnimTarget; - if (IsAnimBankSpriteVisible(bank)) - gSprites[gBankSpriteIds[bank]].invisible = 0; - if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_FLANK)) - gSprites[gBankSpriteIds[bank ^ BIT_FLANK]].invisible = 0; + if (IsBattlerSpriteVisible(bank)) + gSprites[gBattlerSpriteIds[bank]].invisible = 0; + if (animBankId > 1 && IsBattlerSpriteVisible(bank ^ BIT_FLANK)) + gSprites[gBattlerSpriteIds[bank ^ BIT_FLANK]].invisible = 0; else animBankId = 0; @@ -1007,9 +1007,9 @@ static void sub_80A4BB0(u8 taskId) else toBG_2 = TRUE; - if (IsAnimBankSpriteVisible(bank)) + if (IsBattlerSpriteVisible(bank)) sub_80A477C(toBG_2); - if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_FLANK)) + if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(bank ^ BIT_FLANK)) sub_80A477C(toBG_2 ^ 1); DestroyTask(taskId); @@ -1145,7 +1145,7 @@ static void ScriptCmd_fadetobgfromset(void) if (IsContest()) gTasks[taskId].tBackgroundId = bg3; - else if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) + else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) gTasks[taskId].tBackgroundId = bg2; else gTasks[taskId].tBackgroundId = bg1; @@ -1270,21 +1270,21 @@ static void ScriptCmd_changebg(void) s8 BattleAnimAdjustPanning(s8 pan) { - if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].statusAnimActive) + if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gBattleAnimAttacker].statusAnimActive) { - if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) pan = PAN_SIDE_OPPONENT; else pan = PAN_SIDE_PLAYER; } else if (IsContest()) { - if (gAnimBankAttacker != gAnimBankTarget || gAnimBankAttacker != 2 || pan != PAN_SIDE_OPPONENT) + if (gBattleAnimAttacker != gBattleAnimTarget || gBattleAnimAttacker != 2 || pan != PAN_SIDE_OPPONENT) pan *= -1; } - else if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_PLAYER) + else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - if (GetBattlerSide(gAnimBankTarget) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { if (pan == PAN_SIDE_OPPONENT) pan = PAN_SIDE_PLAYER; @@ -1292,7 +1292,7 @@ s8 BattleAnimAdjustPanning(s8 pan) pan *= -1; } } - else if (GetBattlerSide(gAnimBankTarget) == B_SIDE_OPPONENT) + else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) { if (pan == PAN_SIDE_PLAYER) pan = PAN_SIDE_OPPONENT; @@ -1312,16 +1312,16 @@ s8 BattleAnimAdjustPanning(s8 pan) s8 BattleAnimAdjustPanning2(s8 pan) { - if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].statusAnimActive) + if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gBattleAnimAttacker].statusAnimActive) { - if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) pan = PAN_SIDE_OPPONENT; else pan = PAN_SIDE_PLAYER; } else { - if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER || IsContest()) + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest()) pan = -pan; } return pan; @@ -1701,9 +1701,9 @@ static void ScriptCmd_monbgprio_28(void) sBattleAnimScriptPtr += 2; if (wantedBank != ANIM_ATTACKER) - bank = gAnimBankTarget; + bank = gBattleAnimTarget; else - bank = gAnimBankAttacker; + bank = gBattleAnimAttacker; bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT)) @@ -1731,12 +1731,12 @@ static void ScriptCmd_monbgprio_2A(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; - if (GetBattlerSide(gAnimBankAttacker) != GetBattlerSide(gAnimBankTarget)) + if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget)) { if (wantedBank != ANIM_ATTACKER) - bank = gAnimBankTarget; + bank = gBattleAnimTarget; else - bank = gAnimBankAttacker; + bank = gBattleAnimAttacker; bankIdentity = GetBattlerPosition(bank); if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT)) @@ -1751,7 +1751,7 @@ static void ScriptCmd_invisible(void) { u8 spriteId; - spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]); + spriteId = GetBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) gSprites[spriteId].invisible = 1; @@ -1762,7 +1762,7 @@ static void ScriptCmd_visible(void) { u8 spriteId; - spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]); + spriteId = GetBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) gSprites[spriteId].invisible = 0; @@ -1778,17 +1778,17 @@ static void ScriptCmd_doublebattle_2D(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) + && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) { if (wantedBank == ANIM_ATTACKER) { - r4 = sub_80A8364(gAnimBankAttacker); - spriteId = GetAnimBankSpriteId(ANIM_ATTACKER); + r4 = sub_80A8364(gBattleAnimAttacker); + spriteId = GetBattlerSpriteId(ANIM_ATTACKER); } else { - r4 = sub_80A8364(gAnimBankTarget); - spriteId = GetAnimBankSpriteId(ANIM_TARGET); + r4 = sub_80A8364(gBattleAnimTarget); + spriteId = GetBattlerSpriteId(ANIM_TARGET); } if (spriteId != 0xFF) { @@ -1813,17 +1813,17 @@ static void ScriptCmd_doublebattle_2E(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; if (!IsContest() && IsDoubleBattle() - && GetBattlerSide(gAnimBankAttacker) == GetBattlerSide(gAnimBankTarget)) + && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) { if (wantedBank == ANIM_ATTACKER) { - r4 = sub_80A8364(gAnimBankAttacker); - spriteId = GetAnimBankSpriteId(ANIM_ATTACKER); + r4 = sub_80A8364(gBattleAnimAttacker); + spriteId = GetBattlerSpriteId(ANIM_ATTACKER); } else { - r4 = sub_80A8364(gAnimBankTarget); - spriteId = GetAnimBankSpriteId(ANIM_TARGET); + r4 = sub_80A8364(gBattleAnimTarget); + spriteId = GetBattlerSpriteId(ANIM_TARGET); } if (spriteId != 0xFF && r4 == 2) diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 0c7d929a4..2ce9d8712 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -24,21 +24,21 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -203,12 +203,12 @@ static void nullsub_28(void) void SetControllerToLinkOpponent(void) { - gBattlerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand; } static void LinkOpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkOpponentBufferCommands)) sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -219,23 +219,23 @@ static void LinkOpponentBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkOpponentBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkOpponentBufferExecCompleted(); } static void sub_8064470(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeTrainerFrontPicPalette(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkOpponentBufferExecCompleted(); } } @@ -256,13 +256,13 @@ static void sub_8064520(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r8 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -271,7 +271,7 @@ static void sub_8064520(void) if (r8) { - if (r4 || !IsAnimBankSpriteVisible(gActiveBattler ^ BIT_FLANK)) + if (r4 || !IsBattlerSpriteVisible(gActiveBattler ^ BIT_FLANK)) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) return; @@ -303,7 +303,7 @@ static void sub_8064520(void) } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_80644D8; + gBattlerControllerFuncs[gActiveBattler] = sub_80644D8; } } @@ -315,14 +315,14 @@ static void sub_8064734(void) && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) { - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); } @@ -332,13 +332,13 @@ static void sub_8064734(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } @@ -368,7 +368,7 @@ static void sub_8064734(void) if (r10) { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { @@ -380,30 +380,30 @@ static void sub_8064734(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattlerFuncs[gActiveBattler] = sub_8064520; + gBattlerControllerFuncs[gActiveBattler] = sub_8064520; } } } static void sub_8064B04(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } else { @@ -421,13 +421,13 @@ static void sub_8064B04(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { @@ -437,9 +437,9 @@ static void CompleteOnHealthbarDone(void) static void sub_8064C14(void) { - if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) + if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -448,10 +448,10 @@ static void sub_8064C58(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - EnemyShadowCallbackToSetInvisible(gActiveBattler); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + HideBattlerShadowSprite(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -464,7 +464,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -483,12 +483,12 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_8064D60(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_8064DD0; + gBattlerControllerFuncs[gActiveBattler] = sub_8064DD0; } } @@ -496,8 +496,8 @@ static void sub_8064DD0(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - || gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); LinkOpponentBufferExecCompleted(); @@ -508,7 +508,7 @@ static void sub_8064DD0(void) static void sub_8064E50(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; @@ -516,13 +516,13 @@ static void sub_8064E50(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); - gBattlerFuncs[gActiveBattler] = sub_8064D60; + gBattlerControllerFuncs[gActiveBattler] = sub_8064D60; } } @@ -531,15 +531,15 @@ static void sub_8064F40(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerFuncs[gActiveBattler] = sub_8064E50; + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerControllerFuncs[gActiveBattler] = sub_8064E50; } } @@ -557,7 +557,7 @@ static void CompleteOnFinishedBattleAnimation(void) static void LinkOpponentBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -567,7 +567,7 @@ static void LinkOpponentBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -580,7 +580,7 @@ static void LinkOpponentHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyLinkOpponentMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -592,7 +592,7 @@ static void LinkOpponentHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); LinkOpponentBufferExecCompleted(); } @@ -914,7 +914,7 @@ static void LinkOpponentHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetLinkOpponentMonData(gBattlePartyID[gActiveBattler]); + SetLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1147,7 +1147,7 @@ static void SetLinkOpponentMonData(u8 monId) static void LinkOpponentHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -1158,31 +1158,31 @@ static void LinkOpponentHandleSetRawMonData(void) static void LinkOpponentHandleLoadMonSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBattler, 2), - GetBankSpriteDefault_Y(gActiveBattler), + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteDefault_Y(gActiveBattler), sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerFuncs[gActiveBattler] = sub_8064B04; + gBattlerControllerFuncs[gActiveBattler] = sub_8064B04; } static void LinkOpponentHandleSwitchInAnim(void) { - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_8066494(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_8064F40; + gBattlerControllerFuncs[gActiveBattler] = sub_8064F40; } static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) @@ -1190,29 +1190,29 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } @@ -1222,14 +1222,14 @@ static void LinkOpponentHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - EnemyShadowCallbackToSetInvisible(gActiveBattler); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + HideBattlerShadowSprite(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); LinkOpponentBufferExecCompleted(); } } @@ -1249,7 +1249,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattlerFuncs[gActiveBattler] = sub_8064C58; + gBattlerControllerFuncs[gActiveBattler] = sub_8064C58; } break; } @@ -1276,25 +1276,25 @@ static void LinkOpponentHandleDrawTrainerPic(void) } else { - if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED - || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - if (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender != 0) + if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0) trainerPicId = gUnknown_0831F578[0x4F]; else trainerPicId = gUnknown_0831F578[0x4E]; } - else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) + else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - if (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender != 0) + if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0) trainerPicId = gUnknown_0831F578[0x51]; else trainerPicId = gUnknown_0831F578[0x50]; } else { - trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender); + trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender); } } } @@ -1329,18 +1329,18 @@ static void LinkOpponentHandleDrawTrainerPic(void) DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void LinkOpponentHandleTrainerSlide(void) @@ -1354,28 +1354,28 @@ static void LinkOpponentHandleTrainerSlide(void) DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 96; - gSprites[gBankSpriteIds[gActiveBattler]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle bank function + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle bank function LinkOpponentBufferExecCompleted(); } static void LinkOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerFuncs[gActiveBattler] = sub_8064470; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_8064470; } static void LinkOpponentHandleFaintAnimation(void) @@ -1392,8 +1392,8 @@ static void LinkOpponentHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT); - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039934; - gBattlerFuncs[gActiveBattler] = sub_8064C14; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039934; + gBattlerControllerFuncs[gActiveBattler] = sub_8064C14; } } } @@ -1438,7 +1438,7 @@ static void LinkOpponentHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = LinkOpponentDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = LinkOpponentDoMoveAnimation; sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr); } } @@ -1502,7 +1502,7 @@ static void LinkOpponentHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; sub_817C95C(*stringId); } @@ -1550,19 +1550,19 @@ static void LinkOpponentHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void LinkOpponentHandleExpUpdate(void) @@ -1576,10 +1576,10 @@ static void LinkOpponentHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1589,7 +1589,7 @@ static void LinkOpponentHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1664,16 +1664,16 @@ static void LinkOpponentHandleCmd40(void) static void LinkOpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { LinkOpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1712,7 +1712,7 @@ static void LinkOpponentHandlePlayFanfareOrBGM(void) static void LinkOpponentHandleFaintingCry(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, 25, 5); LinkOpponentBufferExecCompleted(); @@ -1730,14 +1730,14 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_80676FC); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80676FC); taskId = CreateTask(sub_8067618, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1746,7 +1746,7 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_28; + gBattlerControllerFuncs[gActiveBattler] = nullsub_28; } static void sub_8067618(u8 taskId) @@ -1756,19 +1756,19 @@ static void sub_8067618(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8066494(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8066494(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8066494(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_8064734; + gBattlerControllerFuncs[gActiveBattler] = sub_8064734; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1809,7 +1809,7 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_806782C; + gBattlerControllerFuncs[gActiveBattler] = sub_806782C; } } @@ -1836,9 +1836,9 @@ static void LinkOpponentHandleCmd50(void) static void LinkOpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } LinkOpponentBufferExecCompleted(); @@ -1854,7 +1854,7 @@ static void LinkOpponentHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) LinkOpponentBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; sub_817E32C(animationId); } @@ -1884,7 +1884,7 @@ static void LinkOpponentHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_92(void) diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index d184370f4..26f808620 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -24,21 +24,21 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -198,12 +198,12 @@ static void nullsub_112(void) void SetControllerToLinkPartner(void) { - gBattlerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; } static void LinkPartnerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkPartnerBufferCommands)) sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -214,17 +214,17 @@ static void LinkPartnerBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) LinkPartnerBufferExecCompleted(); } static void sub_814AF54(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); } } @@ -244,13 +244,13 @@ static void sub_814B004(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -262,7 +262,7 @@ static void sub_814B004(void) if (r6) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_814AFBC; + gBattlerControllerFuncs[gActiveBattler] = sub_814AFBC; } } @@ -271,7 +271,7 @@ static void sub_814B0E8(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; @@ -279,55 +279,55 @@ static void sub_814B0E8(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattlerFuncs[gActiveBattler] = sub_814B004; + gBattlerControllerFuncs[gActiveBattler] = sub_814B004; } } static void sub_814B290(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) LinkPartnerBufferExecCompleted(); } static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); LinkPartnerBufferExecCompleted(); } } static void sub_814B340(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -336,9 +336,9 @@ static void sub_814B3DC(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -351,7 +351,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -370,20 +370,20 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_814B4E0(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_814B554; + gBattlerControllerFuncs[gActiveBattler] = sub_814B554; } } static void sub_814B554(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { LinkPartnerBufferExecCompleted(); } @@ -400,13 +400,13 @@ static void sub_814B5A8(void) FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_814B4E0; + gBattlerControllerFuncs[gActiveBattler] = sub_814B4E0; } } @@ -415,20 +415,20 @@ static void sub_814B69C(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattlerFuncs[gActiveBattler] = sub_814B5A8; + gBattlerControllerFuncs[gActiveBattler] = sub_814B5A8; } } static void LinkPartnerBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -438,7 +438,7 @@ static void LinkPartnerBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -463,7 +463,7 @@ static void LinkPartnerHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyLinkPartnerMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -475,7 +475,7 @@ static void LinkPartnerHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); LinkPartnerBufferExecCompleted(); } @@ -797,7 +797,7 @@ static void LinkPartnerHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetLinkPartnerMonData(gBattlePartyID[gActiveBattler]); + SetLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1027,12 +1027,12 @@ static void SetLinkPartnerMonData(u8 monId) break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } static void LinkPartnerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -1045,28 +1045,28 @@ static void LinkPartnerHandleLoadMonSprite(void) { u16 species; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBattler, 2), - GetBankSpriteDefault_Y(gActiveBattler), + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteDefault_Y(gActiveBattler), sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_814B290; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerControllerFuncs[gActiveBattler] = sub_814B290; } static void LinkPartnerHandleSwitchInAnim(void) { ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_814CC98(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_814B69C; + gBattlerControllerFuncs[gActiveBattler] = sub_814B69C; } static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) @@ -1074,28 +1074,28 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } @@ -1105,13 +1105,13 @@ static void LinkPartnerHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); LinkPartnerBufferExecCompleted(); } } @@ -1131,7 +1131,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerFuncs[gActiveBattler] = sub_814B3DC; + gBattlerControllerFuncs[gActiveBattler] = sub_814B3DC; } break; } @@ -1154,31 +1154,31 @@ static void LinkPartnerHandleDrawTrainerPic(void) xPos = 80; } - if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED - || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; } - else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) + else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; } else { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; } DecompressTrainerBackPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void LinkPartnerHandleTrainerSlide(void) @@ -1188,13 +1188,13 @@ static void LinkPartnerHandleTrainerSlide(void) static void LinkPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerFuncs[gActiveBattler] = sub_814AF54; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_814AF54; } static void LinkPartnerHandleFaintAnimation(void) @@ -1210,12 +1210,12 @@ static void LinkPartnerHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerFuncs[gActiveBattler] = sub_814B340; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerControllerFuncs[gActiveBattler] = sub_814B340; } } } @@ -1260,7 +1260,7 @@ static void LinkPartnerHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = LinkPartnerDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = LinkPartnerDoMoveAnimation; sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr); } } @@ -1324,7 +1324,7 @@ static void LinkPartnerHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; sub_817C95C(*stringId); } @@ -1372,19 +1372,19 @@ static void LinkPartnerHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void LinkPartnerHandleExpUpdate(void) @@ -1398,10 +1398,10 @@ static void LinkPartnerHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1411,7 +1411,7 @@ static void LinkPartnerHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1486,16 +1486,16 @@ static void LinkPartnerHandleCmd40(void) static void LinkPartnerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { LinkPartnerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1534,7 +1534,7 @@ static void LinkPartnerHandlePlayFanfareOrBGM(void) static void LinkPartnerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); LinkPartnerBufferExecCompleted(); @@ -1553,37 +1553,37 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) u8 taskId; u32 trainerPicId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); - if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED - || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; } - else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) + else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; } else { - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; } LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_814DCCC, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1592,7 +1592,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_112; + gBattlerControllerFuncs[gActiveBattler] = nullsub_112; } static void sub_814DCCC(u8 taskId) @@ -1608,20 +1608,20 @@ static void sub_814DCCC(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_814CC98(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_814CC98(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_814CC98(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_814B0E8; + gBattlerControllerFuncs[gActiveBattler] = sub_814B0E8; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1642,7 +1642,7 @@ static void LinkPartnerHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_814DE9C; + gBattlerControllerFuncs[gActiveBattler] = sub_814DE9C; } } @@ -1669,9 +1669,9 @@ static void LinkPartnerHandleCmd50(void) static void LinkPartnerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } LinkPartnerBufferExecCompleted(); @@ -1687,7 +1687,7 @@ static void LinkPartnerHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) LinkPartnerBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; sub_817E32C(animationId); } @@ -1712,7 +1712,7 @@ static void LinkPartnerHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkPartnerBufferExecCompleted(); - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_113(void) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 7131cbde6..2ce339732 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -28,19 +28,19 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void *gUnknown_020244D8; extern void *gUnknown_020244DC; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; @@ -207,12 +207,12 @@ static void nullsub_26(void) void SetControllerToOpponent(void) { - gBattlerFuncs[gActiveBattler] = OpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand; } static void OpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sOpponentBufferCommands)) sOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -223,23 +223,23 @@ static void OpponentBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) OpponentBufferExecCompleted(); } static void sub_805F240(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeTrainerFrontPicPalette(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); OpponentBufferExecCompleted(); } } @@ -260,14 +260,14 @@ static void sub_805F2F0(void) if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) || (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) var = TRUE; var2 = FALSE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) var = TRUE; var2 = TRUE; } @@ -310,7 +310,7 @@ static void sub_805F2F0(void) return; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_805F2A8; + gBattlerControllerFuncs[gActiveBattler] = sub_805F2A8; } } @@ -320,22 +320,22 @@ static void sub_805F560(void) bool32 r10 = FALSE; if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } @@ -362,7 +362,7 @@ static void sub_805F560(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { r10 = TRUE; } @@ -370,9 +370,9 @@ static void sub_805F560(void) else { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r10 = TRUE; } @@ -383,25 +383,25 @@ static void sub_805F560(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattlerFuncs[gActiveBattler] = sub_805F2F0; + gBattlerControllerFuncs[gActiveBattler] = sub_805F2F0; } } static void sub_805F994(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; @@ -413,11 +413,11 @@ static void sub_805F994(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else OpponentBufferExecCompleted(); @@ -425,9 +425,9 @@ static void CompleteOnHealthbarDone(void) static void sub_805FAC4(void) { - if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) + if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -436,10 +436,10 @@ static void sub_805FB08(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - EnemyShadowCallbackToSetInvisible(gActiveBattler); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + HideBattlerShadowSprite(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -452,7 +452,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -471,11 +471,11 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_805FC10(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_805FC80; + gBattlerControllerFuncs[gActiveBattler] = sub_805FC80; } } @@ -483,7 +483,7 @@ static void sub_805FC80(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy || gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); OpponentBufferExecCompleted(); @@ -493,32 +493,32 @@ static void sub_805FC80(void) static void sub_805FD00(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); - gBattlerFuncs[gActiveBattler] = sub_805FC10; + gBattlerControllerFuncs[gActiveBattler] = sub_805FC10; } } static void sub_805FDF0(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerFuncs[gActiveBattler] = sub_805FD00; + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerControllerFuncs[gActiveBattler] = sub_805FD00; } } @@ -536,7 +536,7 @@ static void CompleteOnFinishedBattleAnimation(void) static void OpponentBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = OpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -546,7 +546,7 @@ static void OpponentBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -559,7 +559,7 @@ static void OpponentHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += GetOpponentMonData(gBattlePartyID[gActiveBattler], monData); + size += GetOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -571,7 +571,7 @@ static void OpponentHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); OpponentBufferExecCompleted(); } @@ -884,14 +884,14 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst) static void OpponentHandleGetRawMonData(void) { struct BattlePokemon battleMon; - u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *src = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = src[i]; - EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); OpponentBufferExecCompleted(); } @@ -902,7 +902,7 @@ static void OpponentHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetOpponentMonData(gBattlePartyID[gActiveBattler]); + SetOpponentMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1135,7 +1135,7 @@ static void SetOpponentMonData(u8 monId) static void OpponentHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -1146,33 +1146,33 @@ static void OpponentHandleSetRawMonData(void) static void OpponentHandleLoadMonSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBattler, 2), - GetBankSpriteDefault_Y(gActiveBattler), + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteDefault_Y(gActiveBattler), sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = species; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerFuncs[gActiveBattler] = sub_805F994; + gBattlerControllerFuncs[gActiveBattler] = sub_805F994; } static void OpponentHandleSwitchInAnim(void) { *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_80613DC(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_805FDF0; + gBattlerControllerFuncs[gActiveBattler] = sub_805FDF0; } static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) @@ -1180,29 +1180,29 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } @@ -1212,14 +1212,14 @@ static void OpponentHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - EnemyShadowCallbackToSetInvisible(gActiveBattler); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + HideBattlerShadowSprite(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); OpponentBufferExecCompleted(); } } @@ -1239,7 +1239,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattlerFuncs[gActiveBattler] = sub_805FB08; + gBattlerControllerFuncs[gActiveBattler] = sub_805FB08; } break; } @@ -1316,18 +1316,18 @@ static void OpponentHandleDrawTrainerPic(void) DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void OpponentHandleTrainerSlide(void) @@ -1388,27 +1388,27 @@ static void OpponentHandleTrainerSlide(void) DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 96; - gSprites[gBankSpriteIds[gActiveBattler]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } static void OpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerFuncs[gActiveBattler] = sub_805F240; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_805F240; } static void OpponentHandleFaintAnimation(void) @@ -1425,8 +1425,8 @@ static void OpponentHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT); - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039934; - gBattlerFuncs[gActiveBattler] = sub_805FAC4; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039934; + gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4; } } } @@ -1471,7 +1471,7 @@ static void OpponentHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = OpponentDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = OpponentDoMoveAnimation; } } } @@ -1534,7 +1534,7 @@ static void OpponentHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; sub_81A57E4(gActiveBattler, *stringId); } @@ -1558,7 +1558,7 @@ static void OpponentHandleChooseMove(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); + BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); OpponentBufferExecCompleted(); } else @@ -1575,24 +1575,24 @@ static void OpponentHandleChooseMove(void) switch (chosenMoveId) { case 5: - EmitTwoReturnValues(1, ACTION_WATCHES_CAREFULLY, 0); + BtlController_EmitTwoReturnValues(1, ACTION_WATCHES_CAREFULLY, 0); break; case 4: - EmitTwoReturnValues(1, ACTION_RUN, 0); + BtlController_EmitTwoReturnValues(1, ACTION_RUN, 0); break; case 6: - EmitTwoReturnValues(1, 15, gBattleDefender); + BtlController_EmitTwoReturnValues(1, 15, gBattleMoveTarget); break; default: if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) - gBattleDefender = gActiveBattler; + gBattleMoveTarget = gActiveBattler; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattleDefender << 8)); + BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattleMoveTarget << 8)); break; } OpponentBufferExecCompleted(); @@ -1607,11 +1607,11 @@ static void OpponentHandleChooseMove(void) } while (move == MOVE_NONE); if (gBattleMoves[move].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) - EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBattler << 8)); + BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBattler << 8)); else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(Random() & 2) << 8)); + BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(Random() & 2) << 8)); else - EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) << 8)); + BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) << 8)); OpponentBufferExecCompleted(); } @@ -1620,7 +1620,7 @@ static void OpponentHandleChooseMove(void) static void OpponentHandleChooseItem(void) { - EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2)); + BtlController_EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2)); OpponentBufferExecCompleted(); } @@ -1661,8 +1661,8 @@ static void OpponentHandleChoosePokemon(void) for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++) { if (GetMonData(&gEnemyParty[chosenMonId], MON_DATA_HP) != 0 - && chosenMonId != gBattlePartyID[bank1] - && chosenMonId != gBattlePartyID[bank2]) + && chosenMonId != gBattlerPartyIndexes[bank1] + && chosenMonId != gBattlerPartyIndexes[bank2]) { break; } @@ -1677,7 +1677,7 @@ static void OpponentHandleChoosePokemon(void) *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId; - EmitChosenMonReturnValue(1, chosenMonId, NULL); + BtlController_EmitChosenMonReturnValue(1, chosenMonId, NULL); OpponentBufferExecCompleted(); } @@ -1695,19 +1695,19 @@ static void OpponentHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void OpponentHandleExpUpdate(void) @@ -1721,10 +1721,10 @@ static void OpponentHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1734,7 +1734,7 @@ static void OpponentHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1809,16 +1809,16 @@ static void OpponentHandleCmd40(void) static void OpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { OpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1857,7 +1857,7 @@ static void OpponentHandlePlayFanfareOrBGM(void) static void OpponentHandleFaintingCry(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, 25, 5); OpponentBufferExecCompleted(); @@ -1875,14 +1875,14 @@ static void OpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_806280C); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_806280C); taskId = CreateTask(sub_8062828, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1891,7 +1891,7 @@ static void OpponentHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_26; + gBattlerControllerFuncs[gActiveBattler] = nullsub_26; } static void sub_806280C(struct Sprite *sprite) @@ -1908,24 +1908,24 @@ static void sub_8062828(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_80613DC(gActiveBattler, FALSE); } else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_80613DC(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_80613DC(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_80613DC(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_805F560; + gBattlerControllerFuncs[gActiveBattler] = sub_805F560; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1959,7 +1959,7 @@ static void OpponentHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_8062A2C; + gBattlerControllerFuncs[gActiveBattler] = sub_8062A2C; } } @@ -1986,9 +1986,9 @@ static void OpponentHandleCmd50(void) static void OpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } OpponentBufferExecCompleted(); @@ -2004,7 +2004,7 @@ static void OpponentHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) OpponentBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 8d52ee377..7a7f87e55 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -27,18 +27,18 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gAbsentBattlerFlags; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; extern u8 gPlayerDpadHoldFrames; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gMultiUsePlayerCursor; @@ -52,7 +52,7 @@ extern u8 gUnknown_0203CEE8; extern u8 gUnknown_0203CEE9; extern u8 gUnknown_0203CF00[]; extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u8 gNumberOfMovesToChoose; extern u16 gBattle_BG0_X; @@ -243,14 +243,14 @@ void nullsub_21(void) void SetControllerToPlayer(void) { - gBattlerFuncs[gActiveBattler] = PlayerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = PlayerBufferRunCommand; gDoingBattleAnim = FALSE; gPlayerDpadHoldFrames = 0; } static void PlayerBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = PlayerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = PlayerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -260,13 +260,13 @@ static void PlayerBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } static void PlayerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sPlayerBufferCommands)) sPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -277,7 +277,7 @@ static void PlayerBufferRunCommand(void) static void CompleteOnBankSpritePosX_0(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) PlayerBufferExecCompleted(); } @@ -300,16 +300,16 @@ static void HandleInputChooseAction(void) switch (gActionSelectionCursor[gActiveBattler]) { case 0: - EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); + BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); break; case 1: - EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); break; case 2: - EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); break; case 3: - EmitTwoReturnValues(1, ACTION_RUN, 0); + BtlController_EmitTwoReturnValues(1, ACTION_RUN, 0); break; } PlayerBufferExecCompleted(); @@ -370,7 +370,7 @@ static void HandleInputChooseAction(void) return; } PlaySE(SE_SELECT); - EmitTwoReturnValues(1, ACTION_CANCEL_PARTNER, 0); + BtlController_EmitTwoReturnValues(1, ACTION_CANCEL_PARTNER, 0); PlayerBufferExecCompleted(); } } @@ -384,7 +384,7 @@ static void sub_80577F0(void) // unused { dp11b_obj_free(gActiveBattler, 1); dp11b_obj_free(gActiveBattler, 0); - gBattlerFuncs[gActiveBattler] = HandleInputChooseTarget; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseTarget; } static void HandleInputChooseTarget(void) @@ -415,16 +415,16 @@ static void HandleInputChooseTarget(void) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; - EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); dp11b_obj_free(gMultiUsePlayerCursor, 1); PlayerBufferExecCompleted(); } else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; - gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); dp11b_obj_free(gMultiUsePlayerCursor, 1); @@ -432,7 +432,7 @@ static void HandleInputChooseTarget(void) else if (gMain.newKeys & (DPAD_LEFT | DPAD_UP)) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; do { @@ -457,7 +457,7 @@ static void HandleInputChooseTarget(void) case B_POSITION_PLAYER_RIGHT: if (gActiveBattler != gMultiUsePlayerCursor) i++; - else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER) + else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER) i++; break; case B_POSITION_OPPONENT_LEFT: @@ -469,12 +469,12 @@ static void HandleInputChooseTarget(void) if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor]) i = 0; } while (i == 0); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; } else if (gMain.newKeys & (DPAD_RIGHT | DPAD_DOWN)) { PlaySE(SE_SELECT); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; do { @@ -499,7 +499,7 @@ static void HandleInputChooseTarget(void) case B_POSITION_PLAYER_RIGHT: if (gActiveBattler != gMultiUsePlayerCursor) i++; - else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER) + else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER) i++; break; case B_POSITION_OPPONENT_LEFT: @@ -511,7 +511,7 @@ static void HandleInputChooseTarget(void) if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor]) i = 0; } while (i == 0); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; } } @@ -570,12 +570,12 @@ static void HandleInputChooseMove(void) if (!canSelectTarget) { - EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); + BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); PlayerBufferExecCompleted(); } else { - gBattlerFuncs[gActiveBattler] = HandleInputChooseTarget; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseTarget; if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) gMultiUsePlayerCursor = gActiveBattler; @@ -584,13 +584,13 @@ static void HandleInputChooseMove(void) else gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; } } else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59) { PlaySE(SE_SELECT); - EmitTwoReturnValues(1, 10, 0xFFFF); + BtlController_EmitTwoReturnValues(1, 10, 0xFFFF); PlayerBufferExecCompleted(); } else if (gMain.newKeys & DPAD_LEFT) @@ -656,7 +656,7 @@ static void HandleInputChooseMove(void) MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); BattleHandleAddTextPrinter(gText_BattleSwitchWhich, 0xB); - gBattlerFuncs[gActiveBattler] = HandleMoveSwitchting; + gBattlerControllerFuncs[gActiveBattler] = HandleMoveSwitchting; } } } @@ -770,11 +770,11 @@ static void HandleMoveSwitchting(void) { for (i = 0; i < 4; i++) { - moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i); - moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP1 + i); + moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i); + moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i); } - totalPPBonuses = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP_BONUSES); + totalPPBonuses = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES); for (i = 0; i < 4; i++) perMovePPBonuses[i] = (totalPPBonuses & (3 << (i * 2))) >> (i * 2); @@ -796,15 +796,15 @@ static void HandleMoveSwitchting(void) for (i = 0; i < 4; i++) { - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]); - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]); } - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses); } } - gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; gMoveSelectionCursor[gActiveBattler] = gMultiUsePlayerCursor; MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); MoveSelectionDisplayPpString(); @@ -816,7 +816,7 @@ static void HandleMoveSwitchting(void) PlaySE(SE_SELECT); MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor); MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0); - gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; MoveSelectionDisplayPpString(); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); @@ -938,7 +938,7 @@ void sub_80587B0(void) else sub_800ADF8(); - gBattlerFuncs[gActiveBattler] = sub_80586F8; + gBattlerControllerFuncs[gActiveBattler] = sub_80586F8; } } else @@ -953,23 +953,23 @@ void sub_80587B0(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerBufferExecCompleted(); } static void sub_80588B4(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(gSaveBlock2Ptr->playerGender); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); PlayerBufferExecCompleted(); } } @@ -989,13 +989,13 @@ static void sub_805896C(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) var = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) var = TRUE; } @@ -1009,13 +1009,13 @@ static void sub_805896C(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_8058924; + gBattlerControllerFuncs[gActiveBattler] = sub_8058924; } } @@ -1025,9 +1025,9 @@ static void sub_8058B40(void) bool32 r8 = FALSE; if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { @@ -1035,13 +1035,13 @@ static void sub_8058B40(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } @@ -1065,7 +1065,7 @@ static void sub_8058B40(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -1073,9 +1073,9 @@ static void sub_8058B40(void) else { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -1091,15 +1091,15 @@ static void sub_8058B40(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattlerFuncs[gActiveBattler] = sub_805896C; + gBattlerControllerFuncs[gActiveBattler] = sub_805896C; } } static void sub_8058EDC(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; @@ -1110,7 +1110,7 @@ static void sub_8058EDC(void) if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_8058FC0; + gBattlerControllerFuncs[gActiveBattler] = sub_8058FC0; } } @@ -1120,7 +1120,7 @@ static void sub_8058FC0(void) && !IsCryPlayingOrClearCrySongs()) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } @@ -1130,17 +1130,17 @@ static void sub_805902C(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_8058EDC; + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + gBattlerControllerFuncs[gActiveBattler] = sub_8058EDC; } } @@ -1155,17 +1155,17 @@ void c3_0802FDF4(u8 taskId) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerBufferExecCompleted(); } } @@ -1187,7 +1187,7 @@ static void Task_GiveExpToMon(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; s16 gainedExp = gTasks[taskId].tExpTask_gainedExp; - if (IsDoubleBattle() == TRUE || monId != gBattlePartyID[bank]) // give exp without the expbar + if (IsDoubleBattle() == TRUE || monId != gBattlerPartyIndexes[bank]) // give exp without the expbar { struct Pokemon *mon = &gPlayerParty[monId]; u16 species = GetMonData(mon, MON_DATA_SPECIES); @@ -1204,11 +1204,11 @@ static void Task_GiveExpToMon(u8 taskId) gainedExp -= nextLvlExp - currExp; savedActiveBank = gActiveBattler; gActiveBattler = bank; - EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); + BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_FLANK])) + && ((u16)(monId) == gBattlerPartyIndexes[bank] || (u16)(monId) == gBattlerPartyIndexes[bank ^ BIT_FLANK])) gTasks[taskId].func = sub_8059544; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; @@ -1217,7 +1217,7 @@ static void Task_GiveExpToMon(u8 taskId) { currExp += gainedExp; SetMonData(mon, MON_DATA_EXP, &currExp); - gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -1241,7 +1241,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId) exp -= currLvlExp; expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp; - SetBattleBarStruct(bank, gHealthBoxesIds[bank], expToNextLvl, exp, -gainedExp); + SetBattleBarStruct(bank, gHealthboxSpriteIds[bank], expToNextLvl, exp, -gainedExp); PlaySE(SE_EXP); gTasks[taskId].func = sub_8059400; } @@ -1259,8 +1259,8 @@ static void sub_8059400(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; s16 r4; - r4 = sub_8074AA0(bank, gHealthBoxesIds[bank], EXP_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[bank]); + r4 = sub_8074AA0(bank, gHealthboxSpriteIds[bank], EXP_BAR, 0); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[bank]); if (r4 == -1) { u8 level; @@ -1283,7 +1283,7 @@ static void sub_8059400(u8 taskId) gainedExp -= expOnNextLvl - currExp; savedActiveBank = gActiveBattler; gActiveBattler = bank; - EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); + BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); gActiveBattler = savedActiveBank; gTasks[taskId].func = sub_8059544; } @@ -1291,7 +1291,7 @@ static void sub_8059400(u8 taskId) { currExp += gainedExp; SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp); - gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -1303,7 +1303,7 @@ static void sub_8059544(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; u8 monIndex = gTasks[taskId].tExpTask_monId; - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK]) bank ^= BIT_FLANK; InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP); @@ -1320,10 +1320,10 @@ static void sub_80595A4(u8 taskId) GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) - UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK]) + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); else - UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL); gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; } @@ -1337,20 +1337,20 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId) monIndex = gTasks[taskId].tExpTask_monId; GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value bank = gTasks[taskId].tExpTask_bank; - gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } static void sub_80596A8(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -1359,9 +1359,9 @@ static void sub_8059744(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -1378,7 +1378,7 @@ static void sub_80597CC(void) { u8 r4; - gBattlerFuncs[gActiveBattler] = sub_8059828; + gBattlerControllerFuncs[gActiveBattler] = sub_8059828; r4 = gTasks[gUnknown_03005D7C[gActiveBattler]].data[0]; DestroyTask(gUnknown_03005D7C[gActiveBattler]); FreeAllWindowBuffers(); @@ -1391,9 +1391,9 @@ static void sub_8059828(void) if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { if (gUnknown_0203CEE8 == 1) - EmitChosenMonReturnValue(1, gUnknown_0203CEE9, gUnknown_0203CF00); + BtlController_EmitChosenMonReturnValue(1, gUnknown_0203CEE9, gUnknown_0203CF00); else - EmitChosenMonReturnValue(1, 6, NULL); + BtlController_EmitChosenMonReturnValue(1, 6, NULL); if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1) PrintLinkStandbyMsg(); @@ -1406,7 +1406,7 @@ static void OpenBagAndChooseItem(void) { if (!gPaletteFade.active) { - gBattlerFuncs[gActiveBattler] = CompleteWhenChoseItem; + gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem; nullsub_35(); FreeAllWindowBuffers(); sub_81AABB0(); @@ -1417,7 +1417,7 @@ static void CompleteWhenChoseItem(void) { if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { - EmitOneReturnValue(1, gSpecialVar_ItemId); + BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId); PlayerBufferExecCompleted(); } } @@ -1430,7 +1430,7 @@ static void CompleteOnSpecialAnimDone(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -1469,9 +1469,9 @@ static void PlayerHandleUnknownYesNoInput(void) PlaySE(SE_SELECT); if (gMultiUsePlayerCursor != 0) - EmitTwoReturnValues(1, 0xE, 0); + BtlController_EmitTwoReturnValues(1, 0xE, 0); else - EmitTwoReturnValues(1, 0xD, 0); + BtlController_EmitTwoReturnValues(1, 0xD, 0); PlayerBufferExecCompleted(); } @@ -1621,7 +1621,7 @@ static void PlayerHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyPlayerMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyPlayerMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -1633,7 +1633,7 @@ static void PlayerHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); PlayerBufferExecCompleted(); } @@ -1946,14 +1946,14 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst) void PlayerHandleGetRawMonData(void) { struct BattlePokemon battleMon; - u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *src = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = src[i]; - EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); PlayerBufferExecCompleted(); } @@ -1964,7 +1964,7 @@ static void PlayerHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetPlayerMonData(gBattlePartyID[gActiveBattler]); + SetPlayerMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -2194,12 +2194,12 @@ static void SetPlayerMonData(u8 monId) break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } static void PlayerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -2210,20 +2210,20 @@ static void PlayerHandleSetRawMonData(void) static void PlayerHandleLoadMonSprite(void) { - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpritePosX_0; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpritePosX_0; } static void PlayerHandleSwitchInAnim(void) { ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); gActionSelectionCursor[gActiveBattler] = 0; gMoveSelectionCursor[gActiveBattler] = 0; sub_805B258(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_805902C; + gBattlerControllerFuncs[gActiveBattler] = sub_805902C; } static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) @@ -2231,28 +2231,28 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } @@ -2262,13 +2262,13 @@ static void PlayerHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); PlayerBufferExecCompleted(); } } @@ -2288,7 +2288,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerFuncs[gActiveBattler] = sub_8059744; + gBattlerControllerFuncs[gActiveBattler] = sub_8059744; } break; } @@ -2354,30 +2354,30 @@ static void PlayerHandleDrawTrainerPic(void) trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineMode = 0; - gSprites[gBankSpriteIds[gActiveBattler]].hFlip = 1; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1; } // use the back pic in any other scenario else { DecompressTrainerBackPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; } - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void PlayerHandleTrainerSlide(void) @@ -2408,26 +2408,26 @@ static void PlayerHandleTrainerSlide(void) DecompressTrainerBackPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } static void PlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); - gBattlerFuncs[gActiveBattler] = sub_80588B4; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); + gBattlerControllerFuncs[gActiveBattler] = sub_80588B4; } static void PlayerHandleFaintAnimation(void) @@ -2443,12 +2443,12 @@ static void PlayerHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerFuncs[gActiveBattler] = sub_80596A8; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerControllerFuncs[gActiveBattler] = sub_80596A8; } } } @@ -2464,7 +2464,7 @@ static void PlayerHandleSuccessBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); - gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void PlayerHandleBallThrowAnim(void) @@ -2474,7 +2474,7 @@ static void PlayerHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW); - gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void PlayerHandlePause(void) @@ -2508,7 +2508,7 @@ static void PlayerHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = PlayerDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = PlayerDoMoveAnimation; sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr); } } @@ -2572,7 +2572,7 @@ static void PlayerHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; sub_817C95C(*stringId); sub_81A57E4(gActiveBattler, *stringId); } @@ -2591,7 +2591,7 @@ static void HandleChooseActionAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 160; - gBattlerFuncs[gActiveBattler] = HandleInputChooseAction; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction; } } @@ -2599,7 +2599,7 @@ static void PlayerHandleChooseAction(void) { s32 i; - gBattlerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; + gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; sub_817F2A8(); BattleHandleAddTextPrinter(gText_BattleMenu, 2); @@ -2619,7 +2619,7 @@ static void PlayerHandleUnknownYesNoBox(void) BattleHandleAddTextPrinter(gText_BattleYesNoChoice, 12); gMultiUsePlayerCursor = 1; BattleCreateYesNoCursorAt(1); - gBattlerFuncs[gActiveBattler] = PlayerHandleUnknownYesNoInput; + gBattlerControllerFuncs[gActiveBattler] = PlayerHandleUnknownYesNoInput; } else { @@ -2633,7 +2633,7 @@ static void HandleChooseMoveAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 320; - gBattlerFuncs[gActiveBattler] = HandleInputChooseMove; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; } } @@ -2642,7 +2642,7 @@ static void PlayerChooseMoveInBattlePalace(void) if (--*(gBattleStruct->field_298 + gActiveBattler) == 0) { gBattlePalaceMoveSelectionRngValue = gRngValue; - EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); + BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); PlayerBufferExecCompleted(); } } @@ -2652,12 +2652,12 @@ static void PlayerHandleChooseMove(void) if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { *(gBattleStruct->field_298 + gActiveBattler) = 8; - gBattlerFuncs[gActiveBattler] = PlayerChooseMoveInBattlePalace; + gBattlerControllerFuncs[gActiveBattler] = PlayerChooseMoveInBattlePalace; } else { InitMoveSelectionsVarsAndStrings(); - gBattlerFuncs[gActiveBattler] = HandleChooseMoveAfterDma3; + gBattlerControllerFuncs[gActiveBattler] = HandleChooseMoveAfterDma3; } } @@ -2676,7 +2676,7 @@ static void PlayerHandleChooseItem(void) s32 i; BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattlerFuncs[gActiveBattler] = OpenBagAndChooseItem; + gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem; gBankInMenu = gActiveBattler; for (i = 0; i < 3; i++) @@ -2692,7 +2692,7 @@ static void PlayerHandleChoosePokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBattler][1] & 0xF) != 2) { - EmitChosenMonReturnValue(1, gBattlePartyID[gActiveBattler] + 1, gUnknown_0203CF00); + BtlController_EmitChosenMonReturnValue(1, gBattlerPartyIndexes[gActiveBattler] + 1, gUnknown_0203CF00); PlayerBufferExecCompleted(); } else @@ -2703,7 +2703,7 @@ static void PlayerHandleChoosePokemon(void) *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBattler][2]; *(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBattler][3]; BeginNormalPaletteFade(-1, 0, 0, 16, 0); - gBattlerFuncs[gActiveBattler] = sub_80597CC; + gBattlerControllerFuncs[gActiveBattler] = sub_80597CC; gBankInMenu = gActiveBattler; } } @@ -2727,20 +2727,20 @@ static void PlayerHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], 0, HP_CURRENT); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void PlayerHandleExpUpdate(void) @@ -2763,7 +2763,7 @@ static void PlayerHandleExpUpdate(void) gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; gTasks[taskId].tExpTask_bank = gActiveBattler; - gBattlerFuncs[gActiveBattler] = nullsub_21; + gBattlerControllerFuncs[gActiveBattler] = nullsub_21; } } @@ -2778,10 +2778,10 @@ static void PlayerHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -2791,15 +2791,15 @@ static void PlayerHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } static void PlayerHandleStatusXor(void) { - u8 val = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1]; + u8 val = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1]; - SetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_STATUS, &val); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS, &val); PlayerBufferExecCompleted(); } @@ -2848,25 +2848,25 @@ static void PlayerHandleCmd32(void) static void PlayerHandleTwoReturnValues(void) { - EmitTwoReturnValues(1, 0, 0); + BtlController_EmitTwoReturnValues(1, 0, 0); PlayerBufferExecCompleted(); } static void PlayerHandleChosenMonReturnValue(void) { - EmitChosenMonReturnValue(1, 0, NULL); + BtlController_EmitChosenMonReturnValue(1, 0, NULL); PlayerBufferExecCompleted(); } static void PlayerHandleOneReturnValue(void) { - EmitOneReturnValue(1, 0); + BtlController_EmitOneReturnValue(1, 0); PlayerBufferExecCompleted(); } static void PlayerHandleOneReturnValue_Duplicate(void) { - EmitOneReturnValue_Duplicate(1, 0); + BtlController_EmitOneReturnValue_Duplicate(1, 0); PlayerBufferExecCompleted(); } @@ -2896,16 +2896,16 @@ static void PlayerHandleCmd40(void) static void PlayerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { PlayerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -2944,7 +2944,7 @@ static void PlayerHandlePlayFanfareOrBGM(void) static void PlayerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); PlayerBufferExecCompleted(); @@ -2962,20 +2962,20 @@ static void PlayerHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(task05_08033660, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -2984,7 +2984,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_21; + gBattlerControllerFuncs[gActiveBattler] = nullsub_21; } void sub_805CC00(struct Sprite *sprite) @@ -2994,8 +2994,8 @@ void sub_805CC00(struct Sprite *sprite) FreeSpriteOamMatrix(sprite); FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); DestroySprite(sprite); - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank); - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], 0); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], 0); } static void task05_08033660(u8 taskId) @@ -3011,20 +3011,20 @@ static void task05_08033660(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_805B258(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_805B258(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_805B258(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_8058B40; + gBattlerControllerFuncs[gActiveBattler] = sub_8058B40; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -3045,7 +3045,7 @@ static void PlayerHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_805CE38; + gBattlerControllerFuncs[gActiveBattler] = sub_805CE38; } } @@ -3074,9 +3074,9 @@ static void PlayerHandleCmd50(void) static void PlayerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } PlayerBufferExecCompleted(); @@ -3092,7 +3092,7 @@ static void PlayerHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) PlayerBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; sub_817E32C(animationId); } @@ -3143,7 +3143,7 @@ static void PlayerHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerBufferExecCompleted(); - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_22(void) diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 2b21dab94..c44a8d31e 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -23,21 +23,21 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -213,12 +213,12 @@ static void nullsub_77(void) void SetControllerToPlayerPartner(void) { - gBattlerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand; } static void PlayerPartnerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sPlayerPartnerBufferCommands)) sPlayerPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -229,17 +229,17 @@ static void PlayerPartnerBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) PlayerPartnerBufferExecCompleted(); } static void sub_81BAE98(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); PlayerPartnerBufferExecCompleted(); } } @@ -259,13 +259,13 @@ static void sub_81BAF48(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -277,7 +277,7 @@ static void sub_81BAF48(void) if (r6) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_81BAF00; + gBattlerControllerFuncs[gActiveBattler] = sub_81BAF00; } } @@ -286,7 +286,7 @@ static void sub_81BB02C(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0; @@ -294,41 +294,41 @@ static void sub_81BB02C(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattlerFuncs[gActiveBattler] = sub_81BAF48; + gBattlerControllerFuncs[gActiveBattler] = sub_81BAF48; } } static void sub_81BB1D4(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) PlayerPartnerBufferExecCompleted(); } static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlayerPartnerBufferExecCompleted(); } } @@ -351,7 +351,7 @@ static void Task_GiveExpToMon(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; s16 gainedExp = gTasks[taskId].tExpTask_gainedExp; - if (IsDoubleBattle() == TRUE || monId != gBattlePartyID[bank]) // give exp without the expbar + if (IsDoubleBattle() == TRUE || monId != gBattlerPartyIndexes[bank]) // give exp without the expbar { struct Pokemon *mon = &gPlayerParty[monId]; u16 species = GetMonData(mon, MON_DATA_SPECIES); @@ -368,11 +368,11 @@ static void Task_GiveExpToMon(u8 taskId) gainedExp -= nextLvlExp - currExp; savedActiveBank = gActiveBattler; gActiveBattler = bank; - EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); + BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_FLANK])) + && ((u16)(monId) == gBattlerPartyIndexes[bank] || (u16)(monId) == gBattlerPartyIndexes[bank ^ BIT_FLANK])) gTasks[taskId].func = sub_81BB628; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; @@ -381,7 +381,7 @@ static void Task_GiveExpToMon(u8 taskId) { currExp += gainedExp; SetMonData(mon, MON_DATA_EXP, &currExp); - gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -405,7 +405,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId) exp -= currLvlExp; expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp; - SetBattleBarStruct(bank, gHealthBoxesIds[bank], expToNextLvl, exp, -gainedExp); + SetBattleBarStruct(bank, gHealthboxSpriteIds[bank], expToNextLvl, exp, -gainedExp); PlaySE(SE_EXP); gTasks[taskId].func = sub_81BB4E4; } @@ -423,8 +423,8 @@ static void sub_81BB4E4(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; s16 r4; - r4 = sub_8074AA0(bank, gHealthBoxesIds[bank], EXP_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[bank]); + r4 = sub_8074AA0(bank, gHealthboxSpriteIds[bank], EXP_BAR, 0); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[bank]); if (r4 == -1) { u8 level; @@ -447,7 +447,7 @@ static void sub_81BB4E4(u8 taskId) gainedExp -= expOnNextLvl - currExp; savedActiveBank = gActiveBattler; gActiveBattler = bank; - EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); + BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp); gActiveBattler = savedActiveBank; gTasks[taskId].func = sub_81BB628; } @@ -455,7 +455,7 @@ static void sub_81BB4E4(u8 taskId) { currExp += gainedExp; SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp); - gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } } @@ -467,7 +467,7 @@ static void sub_81BB628(u8 taskId) u8 bank = gTasks[taskId].tExpTask_bank; u8 monIndex = gTasks[taskId].tExpTask_monId; - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK]) bank ^= BIT_FLANK; InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP); @@ -484,10 +484,10 @@ static void sub_81BB688(u8 taskId) GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_FLANK]) - UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK]) + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); else - UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL); gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; } @@ -501,20 +501,20 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId) monIndex = gTasks[taskId].tExpTask_monId; GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value bank = gTasks[taskId].tExpTask_bank; - gBattlerFuncs[bank] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter; DestroyTask(taskId); } static void sub_81BB78C(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); PlayerPartnerBufferExecCompleted(); } } @@ -523,9 +523,9 @@ static void sub_81BB828(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); PlayerPartnerBufferExecCompleted(); } } @@ -538,7 +538,7 @@ static void CompleteOnInactiveTextPrinter2(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -557,20 +557,20 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_81BB92C(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_81BB9A0; + gBattlerControllerFuncs[gActiveBattler] = sub_81BB9A0; } } static void sub_81BB9A0(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { PlayerPartnerBufferExecCompleted(); } @@ -587,13 +587,13 @@ static void sub_81BB9F4(void) FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_81BB92C; + gBattlerControllerFuncs[gActiveBattler] = sub_81BB92C; } } @@ -602,20 +602,20 @@ static void sub_81BBAE8(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattlerFuncs[gActiveBattler] = sub_81BB9F4; + gBattlerControllerFuncs[gActiveBattler] = sub_81BB9F4; } } static void PlayerPartnerBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -625,7 +625,7 @@ static void PlayerPartnerBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -650,7 +650,7 @@ static void PlayerPartnerHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyPlayerPartnerMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyPlayerPartnerMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -662,7 +662,7 @@ static void PlayerPartnerHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); PlayerPartnerBufferExecCompleted(); } @@ -984,7 +984,7 @@ static void PlayerPartnerHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetPlayerPartnerMonData(gBattlePartyID[gActiveBattler]); + SetPlayerPartnerMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1214,12 +1214,12 @@ static void SetPlayerPartnerMonData(u8 monId) break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } static void PlayerPartnerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -1232,28 +1232,28 @@ static void PlayerPartnerHandleLoadMonSprite(void) { u16 species; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBattler, 2), - GetBankSpriteDefault_Y(gActiveBattler), + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteDefault_Y(gActiveBattler), sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_81BB1D4; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerControllerFuncs[gActiveBattler] = sub_81BB1D4; } static void PlayerPartnerHandleSwitchInAnim(void) { ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_81BD0E4(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_81BBAE8; + gBattlerControllerFuncs[gActiveBattler] = sub_81BBAE8; } static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) @@ -1261,28 +1261,28 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } @@ -1292,13 +1292,13 @@ static void PlayerPartnerHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); PlayerPartnerBufferExecCompleted(); } } @@ -1318,7 +1318,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerFuncs[gActiveBattler] = sub_81BB828; + gBattlerControllerFuncs[gActiveBattler] = sub_81BB828; } break; } @@ -1350,29 +1350,29 @@ static void PlayerPartnerHandleDrawTrainerPic(void) { DecompressTrainerBackPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; } else // otherwise use front sprite { DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineMode = 0; - gSprites[gBankSpriteIds[gActiveBattler]].hFlip = 1; + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1; } - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void PlayerPartnerHandleTrainerSlide(void) @@ -1382,13 +1382,13 @@ static void PlayerPartnerHandleTrainerSlide(void) static void PlayerPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerFuncs[gActiveBattler] = sub_81BAE98; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_81BAE98; } static void PlayerPartnerHandleFaintAnimation(void) @@ -1404,12 +1404,12 @@ static void PlayerPartnerHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerFuncs[gActiveBattler] = sub_81BB78C; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerControllerFuncs[gActiveBattler] = sub_81BB78C; } } } @@ -1454,7 +1454,7 @@ static void PlayerPartnerHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = PlayerPartnerDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerDoMoveAnimation; } } } @@ -1517,7 +1517,7 @@ static void PlayerPartnerHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; } static void PlayerPartnerHandlePrintSelectionString(void) @@ -1545,15 +1545,15 @@ static void PlayerPartnerHandleChooseMove(void) chosenMoveId = BattleAI_ChooseMoveOrAction(); if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) - gBattleDefender = gActiveBattler; + gBattleMoveTarget = gActiveBattler; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } - EmitTwoReturnValues(1, 10, chosenMoveId | (gBattleDefender << 8)); + BtlController_EmitTwoReturnValues(1, 10, chosenMoveId | (gBattleMoveTarget << 8)); PlayerPartnerBufferExecCompleted(); } @@ -1574,8 +1574,8 @@ static void PlayerPartnerHandleChoosePokemon(void) for (chosenMonId = 3; chosenMonId < 6; chosenMonId++) { if (GetMonData(&gPlayerParty[chosenMonId], MON_DATA_HP) != 0 - && chosenMonId != gBattlePartyID[playerMonIdentity] - && chosenMonId != gBattlePartyID[selfIdentity]) + && chosenMonId != gBattlerPartyIndexes[playerMonIdentity] + && chosenMonId != gBattlerPartyIndexes[selfIdentity]) { break; } @@ -1583,7 +1583,7 @@ static void PlayerPartnerHandleChoosePokemon(void) } *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId; - EmitChosenMonReturnValue(1, chosenMonId, NULL); + BtlController_EmitChosenMonReturnValue(1, chosenMonId, NULL); PlayerPartnerBufferExecCompleted(); } @@ -1601,19 +1601,19 @@ static void PlayerPartnerHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void PlayerPartnerHandleExpUpdate(void) @@ -1636,7 +1636,7 @@ static void PlayerPartnerHandleExpUpdate(void) gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; gTasks[taskId].tExpTask_bank = gActiveBattler; - gBattlerFuncs[gActiveBattler] = nullsub_21; + gBattlerControllerFuncs[gActiveBattler] = nullsub_21; } } @@ -1651,10 +1651,10 @@ static void PlayerPartnerHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1664,7 +1664,7 @@ static void PlayerPartnerHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1739,16 +1739,16 @@ static void PlayerPartnerHandleCmd40(void) static void PlayerPartnerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { PlayerPartnerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1787,7 +1787,7 @@ static void PlayerPartnerHandlePlayFanfareOrBGM(void) static void PlayerPartnerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); PlayerPartnerBufferExecCompleted(); @@ -1805,16 +1805,16 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); if (gPartnerTrainerId == STEVEN_PARTNER_ID) @@ -1829,7 +1829,7 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) } - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_81BE2C8, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1838,7 +1838,7 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_77; + gBattlerControllerFuncs[gActiveBattler] = nullsub_77; } static void sub_81BE2C8(u8 taskId) @@ -1854,20 +1854,20 @@ static void sub_81BE2C8(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81BD0E4(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81BD0E4(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_81BD0E4(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_81BB02C; + gBattlerControllerFuncs[gActiveBattler] = sub_81BB02C; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1888,7 +1888,7 @@ static void PlayerPartnerHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_81BE498; + gBattlerControllerFuncs[gActiveBattler] = sub_81BE498; } } @@ -1915,9 +1915,9 @@ static void PlayerPartnerHandleCmd50(void) static void PlayerPartnerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } PlayerPartnerBufferExecCompleted(); @@ -1933,7 +1933,7 @@ static void PlayerPartnerHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) PlayerPartnerBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } @@ -1953,7 +1953,7 @@ static void PlayerPartnerHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); PlayerPartnerBufferExecCompleted(); - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_128(void) diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 290eee61b..22cd63fb3 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -25,21 +25,21 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -202,12 +202,12 @@ static void nullsub_70(void) void SetControllerToRecordedOpponent(void) { - gBattlerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand; } static void RecordedOpponentBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sRecordedOpponentBufferCommands)) sRecordedOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -218,23 +218,23 @@ static void RecordedOpponentBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) RecordedOpponentBufferExecCompleted(); } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) RecordedOpponentBufferExecCompleted(); } static void sub_81865C8(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeTrainerFrontPicPalette(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); RecordedOpponentBufferExecCompleted(); } } @@ -254,8 +254,8 @@ static void sub_8186678(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].animEnded) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded) { var = TRUE; } @@ -263,10 +263,10 @@ static void sub_8186678(void) } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].animEnded - && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded + && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) { var = TRUE; } @@ -290,7 +290,7 @@ static void sub_8186678(void) } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_8186630; + gBattlerControllerFuncs[gActiveBattler] = sub_8186630; } } @@ -300,9 +300,9 @@ static void sub_818686C(void) bool32 r8 = FALSE; if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { @@ -310,13 +310,13 @@ static void sub_818686C(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } @@ -345,7 +345,7 @@ static void sub_818686C(void) if (!IsDoubleBattle()) { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -353,9 +353,9 @@ static void sub_818686C(void) else { if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -366,28 +366,28 @@ static void sub_818686C(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattlerFuncs[gActiveBattler] = sub_8186678; + gBattlerControllerFuncs[gActiveBattler] = sub_8186678; } } static void sub_8186C48(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } else { @@ -405,13 +405,13 @@ static void sub_8186C48(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { @@ -421,9 +421,9 @@ static void CompleteOnHealthbarDone(void) static void sub_8186D58(void) { - if (!gSprites[gBankSpriteIds[gActiveBattler]].inUse) + if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse) { - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); RecordedOpponentBufferExecCompleted(); } } @@ -432,10 +432,10 @@ static void sub_8186D9C(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - EnemyShadowCallbackToSetInvisible(gActiveBattler); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + HideBattlerShadowSprite(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); RecordedOpponentBufferExecCompleted(); } } @@ -448,7 +448,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -467,12 +467,12 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_8186EA4(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_8186F14; + gBattlerControllerFuncs[gActiveBattler] = sub_8186F14; } } @@ -481,8 +481,8 @@ static void sub_8186F14(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs()) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - || gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); RecordedOpponentBufferExecCompleted(); @@ -493,7 +493,7 @@ static void sub_8186F14(void) static void sub_8186F94(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; @@ -501,13 +501,13 @@ static void sub_8186F94(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); - gBattlerFuncs[gActiveBattler] = sub_8186EA4; + gBattlerControllerFuncs[gActiveBattler] = sub_8186EA4; } } @@ -516,15 +516,15 @@ static void sub_8187084(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80) { - sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerFuncs[gActiveBattler] = sub_8186F94; + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerControllerFuncs[gActiveBattler] = sub_8186F94; } } @@ -542,7 +542,7 @@ static void CompleteOnFinishedBattleAnimation(void) static void RecordedOpponentBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -552,7 +552,7 @@ static void RecordedOpponentBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -565,7 +565,7 @@ static void RecordedOpponentHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyRecordedOpponentMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyRecordedOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -577,7 +577,7 @@ static void RecordedOpponentHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); RecordedOpponentBufferExecCompleted(); } @@ -899,7 +899,7 @@ static void RecordedOpponentHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetRecordedOpponentMonData(gBattlePartyID[gActiveBattler]); + SetRecordedOpponentMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1132,7 +1132,7 @@ static void SetRecordedOpponentMonData(u8 monId) static void RecordedOpponentHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -1143,33 +1143,33 @@ static void RecordedOpponentHandleSetRawMonData(void) static void RecordedOpponentHandleLoadMonSprite(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBattler, 2), - GetBankSpriteDefault_Y(gActiveBattler), + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteDefault_Y(gActiveBattler), sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - SetBankEnemyShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES)); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); - gBattlerFuncs[gActiveBattler] = sub_8186C48; + gBattlerControllerFuncs[gActiveBattler] = sub_8186C48; } static void RecordedOpponentHandleSwitchInAnim(void) { - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; sub_81885D8(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_8187084; + gBattlerControllerFuncs[gActiveBattler] = sub_8187084; } static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) @@ -1177,28 +1177,28 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } @@ -1208,14 +1208,14 @@ static void RecordedOpponentHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - EnemyShadowCallbackToSetInvisible(gActiveBattler); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + HideBattlerShadowSprite(gActiveBattler); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); RecordedOpponentBufferExecCompleted(); } } @@ -1235,7 +1235,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON); - gBattlerFuncs[gActiveBattler] = sub_8186D9C; + gBattlerControllerFuncs[gActiveBattler] = sub_8186D9C; } break; } @@ -1280,18 +1280,18 @@ static void RecordedOpponentHandleDrawTrainerPic(void) DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void RecordedOpponentHandleTrainerSlide(void) @@ -1301,13 +1301,13 @@ static void RecordedOpponentHandleTrainerSlide(void) static void RecordedOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerFuncs[gActiveBattler] = sub_81865C8; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_81865C8; } static void RecordedOpponentHandleFaintAnimation(void) @@ -1324,8 +1324,8 @@ static void RecordedOpponentHandleFaintAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT); - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039934; - gBattlerFuncs[gActiveBattler] = sub_8186D58; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039934; + gBattlerControllerFuncs[gActiveBattler] = sub_8186D58; } } } @@ -1370,7 +1370,7 @@ static void RecordedOpponentHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = RecordedOpponentDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentDoMoveAnimation; } } } @@ -1433,7 +1433,7 @@ static void RecordedOpponentHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void RecordedOpponentHandlePrintSelectionString(void) @@ -1443,7 +1443,7 @@ static void RecordedOpponentHandlePrintSelectionString(void) static void RecordedOpponentHandleChooseAction(void) { - EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBattler), 0); + BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBankAction(gActiveBattler), 0); RecordedOpponentBufferExecCompleted(); } @@ -1456,13 +1456,13 @@ static void RecordedOpponentHandleChooseMove(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); + BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); } else { - u8 moveId = RecordedBattle_ReadBankAction(gActiveBattler); - u8 target = RecordedBattle_ReadBankAction(gActiveBattler); - EmitTwoReturnValues(1, 10, moveId | (target << 8)); + u8 moveId = RecordedBattle_GetBankAction(gActiveBattler); + u8 target = RecordedBattle_GetBankAction(gActiveBattler); + BtlController_EmitTwoReturnValues(1, 10, moveId | (target << 8)); } RecordedOpponentBufferExecCompleted(); @@ -1475,8 +1475,8 @@ static void RecordedOpponentHandleChooseItem(void) static void RecordedOpponentHandleChoosePokemon(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_ReadBankAction(gActiveBattler); - EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBankAction(gActiveBattler); + BtlController_EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); RecordedOpponentBufferExecCompleted(); } @@ -1494,19 +1494,19 @@ static void RecordedOpponentHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void RecordedOpponentHandleExpUpdate(void) @@ -1520,10 +1520,10 @@ static void RecordedOpponentHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gEnemyParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1533,7 +1533,7 @@ static void RecordedOpponentHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1608,16 +1608,16 @@ static void RecordedOpponentHandleCmd40(void) static void RecordedOpponentHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { RecordedOpponentBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1656,7 +1656,7 @@ static void RecordedOpponentHandlePlayFanfareOrBGM(void) static void RecordedOpponentHandleFaintingCry(void) { - u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, 25, 5); RecordedOpponentBufferExecCompleted(); @@ -1674,14 +1674,14 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 280; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_818962C); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_818962C); taskId = CreateTask(sub_8189548, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1690,7 +1690,7 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_70; + gBattlerControllerFuncs[gActiveBattler] = nullsub_70; } static void sub_8189548(u8 taskId) @@ -1700,19 +1700,19 @@ static void sub_8189548(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81885D8(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81885D8(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_81885D8(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_818686C; + gBattlerControllerFuncs[gActiveBattler] = sub_818686C; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1753,7 +1753,7 @@ static void RecordedOpponentHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_818975C; + gBattlerControllerFuncs[gActiveBattler] = sub_818975C; } } @@ -1780,9 +1780,9 @@ static void RecordedOpponentHandleCmd50(void) static void RecordedOpponentHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } RecordedOpponentBufferExecCompleted(); @@ -1798,7 +1798,7 @@ static void RecordedOpponentHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) RecordedOpponentBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } @@ -1822,7 +1822,7 @@ static void RecordedOpponentHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); RecordedOpponentBufferExecCompleted(); - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_119(void) diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index ad8cb3a05..109d71733 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -24,21 +24,21 @@ #include "pokeball.h" #include "data2.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleDefender; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -201,12 +201,12 @@ static void nullsub_120(void) void SetControllerToRecordedPlayer(void) { - gBattlerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand; } static void RecordedPlayerBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sRecordedPlayerBufferCommands)) sRecordedPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -217,17 +217,17 @@ static void RecordedPlayerBufferRunCommand(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) RecordedPlayerBufferExecCompleted(); } static void sub_81899F0(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { nullsub_25(0); - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); RecordedPlayerBufferExecCompleted(); } } @@ -249,13 +249,13 @@ static void sub_8189AA0(void) { if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -273,25 +273,25 @@ static void sub_8189AA0(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_8189A58; + gBattlerControllerFuncs[gActiveBattler] = sub_8189A58; } } else { if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r6 = TRUE; } else { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { r6 = TRUE; } @@ -303,7 +303,7 @@ static void sub_8189AA0(void) if (r6) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3; - gBattlerFuncs[gActiveBattler] = sub_8189A58; + gBattlerControllerFuncs[gActiveBattler] = sub_8189A58; } } } @@ -317,12 +317,12 @@ static void sub_8189D40(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) { - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); } } @@ -333,13 +333,13 @@ static void sub_8189D40(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1; } @@ -367,7 +367,7 @@ static void sub_8189D40(void) } if (r10 && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); @@ -376,43 +376,43 @@ static void sub_8189D40(void) gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0; - gBattlerFuncs[gActiveBattler] = sub_8189AA0; + gBattlerControllerFuncs[gActiveBattler] = sub_8189AA0; } } static void sub_818A064(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].animEnded && gSprites[gBankSpriteIds[gActiveBattler]].pos2.x == 0) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0) RecordedPlayerBufferExecCompleted(); } static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); RecordedPlayerBufferExecCompleted(); } } static void sub_818A114(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].pos1.y + gSprites[gBankSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); nullsub_24(species); - FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBattler]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); RecordedPlayerBufferExecCompleted(); } } @@ -421,9 +421,9 @@ static void sub_818A1B0(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); RecordedPlayerBufferExecCompleted(); } } @@ -436,7 +436,7 @@ static void CompleteOnInactiveTextPrinter(void) static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -455,20 +455,20 @@ static void DoHitAnimBlinkSpriteEffect(void) static void sub_818A2B4(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattlerFuncs[gActiveBattler] = sub_818A328; + gBattlerControllerFuncs[gActiveBattler] = sub_818A328; } } static void sub_818A328(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { RecordedPlayerBufferExecCompleted(); } @@ -485,13 +485,13 @@ static void sub_818A37C(void) FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 0); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_818A2B4; + gBattlerControllerFuncs[gActiveBattler] = sub_818A2B4; } } @@ -500,20 +500,20 @@ static void sub_818A470(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); } if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - gBattlerFuncs[gActiveBattler] = sub_818A37C; + gBattlerControllerFuncs[gActiveBattler] = sub_818A37C; } } static void RecordedPlayerBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -523,7 +523,7 @@ static void RecordedPlayerBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -548,7 +548,7 @@ static void RecordedPlayerHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyRecordedPlayerMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyRecordedPlayerMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -560,7 +560,7 @@ static void RecordedPlayerHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); RecordedPlayerBufferExecCompleted(); } @@ -882,7 +882,7 @@ static void RecordedPlayerHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetRecordedPlayerMonData(gBattlePartyID[gActiveBattler]); + SetRecordedPlayerMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1112,12 +1112,12 @@ static void SetRecordedPlayerMonData(u8 monId) break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } static void RecordedPlayerHandleSetRawMonData(void) { - u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; + u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) @@ -1130,28 +1130,28 @@ static void RecordedPlayerHandleLoadMonSprite(void) { u16 species; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); - species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); sub_806A068(species, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(gActiveBattler, 2), - GetBankSpriteDefault_Y(gActiveBattler), + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteDefault_Y(gActiveBattler), sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = sub_818A064; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + gBattlerControllerFuncs[gActiveBattler] = sub_818A064; } static void RecordedPlayerHandleSwitchInAnim(void) { ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlePartyID[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_818BA6C(gActiveBattler, gBattleBufferA[gActiveBattler][2]); - gBattlerFuncs[gActiveBattler] = sub_818A470; + gBattlerControllerFuncs[gActiveBattler] = sub_818A470; } static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) @@ -1159,28 +1159,28 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) u16 species; ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit); - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite( + gBattlerSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } @@ -1190,13 +1190,13 @@ static void RecordedPlayerHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = DoSwitchOutAnimation; + gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); RecordedPlayerBufferExecCompleted(); } } @@ -1216,7 +1216,7 @@ static void DoSwitchOutAnimation(void) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerFuncs[gActiveBattler] = sub_818A1B0; + gBattlerControllerFuncs[gActiveBattler] = sub_818A1B0; } break; } @@ -1268,29 +1268,29 @@ static void RecordedPlayerHandleDrawTrainerPic(void) trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); DecompressTrainerFrontPic(trainerPicId, gActiveBattler); sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gSprites[gBankSpriteIds[gActiveBattler]].oam.affineMode = 0; - gSprites[gBankSpriteIds[gActiveBattler]].hFlip = 1; + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1; } else { DecompressTrainerBackPic(trainerPicId, gActiveBattler); sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler)); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; } - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void RecordedPlayerHandleTrainerSlide(void) @@ -1300,13 +1300,13 @@ static void RecordedPlayerHandleTrainerSlide(void) static void RecordedPlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 35; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], SpriteCallbackDummy); - gBattlerFuncs[gActiveBattler] = sub_81899F0; + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy); + gBattlerControllerFuncs[gActiveBattler] = sub_81899F0; } static void RecordedPlayerHandleFaintAnimation(void) @@ -1322,12 +1322,12 @@ static void RecordedPlayerHandleFaintAnimation(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = 5; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_8039C00; - gBattlerFuncs[gActiveBattler] = sub_818A114; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00; + gBattlerControllerFuncs[gActiveBattler] = sub_818A114; } } } @@ -1372,7 +1372,7 @@ static void RecordedPlayerHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = RecordedPlayerDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerDoMoveAnimation; } } } @@ -1435,7 +1435,7 @@ static void RecordedPlayerHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void RecordedPlayerHandlePrintSelectionString(void) @@ -1447,7 +1447,7 @@ static void ChooseActionInBattlePalace(void) { if (gBattleCommunication[4] >= gBattlersCount / 2) { - EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBattler), 0); + BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBankAction(gActiveBattler), 0); RecordedPlayerBufferExecCompleted(); } } @@ -1456,11 +1456,11 @@ static void RecordedPlayerHandleChooseAction(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gBattlerFuncs[gActiveBattler] = ChooseActionInBattlePalace; + gBattlerControllerFuncs[gActiveBattler] = ChooseActionInBattlePalace; } else { - EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBattler), 0); + BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBankAction(gActiveBattler), 0); RecordedPlayerBufferExecCompleted(); } } @@ -1474,13 +1474,13 @@ static void RecordedPlayerHandleChooseMove(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); + BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace()); } else { - u8 moveId = RecordedBattle_ReadBankAction(gActiveBattler); - u8 target = RecordedBattle_ReadBankAction(gActiveBattler); - EmitTwoReturnValues(1, 10, moveId | (target << 8)); + u8 moveId = RecordedBattle_GetBankAction(gActiveBattler); + u8 target = RecordedBattle_GetBankAction(gActiveBattler); + BtlController_EmitTwoReturnValues(1, 10, moveId | (target << 8)); } RecordedPlayerBufferExecCompleted(); @@ -1493,8 +1493,8 @@ static void RecordedPlayerHandleChooseItem(void) static void RecordedPlayerHandleChoosePokemon(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_ReadBankAction(gActiveBattler); - EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBankAction(gActiveBattler); + BtlController_EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); RecordedPlayerBufferExecCompleted(); } @@ -1512,20 +1512,20 @@ static void RecordedPlayerHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], 0, HP_CURRENT); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void RecordedPlayerHandleExpUpdate(void) @@ -1539,10 +1539,10 @@ static void RecordedPlayerHandleStatusIconUpdate(void) { u8 bank; - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_STATUS_ICON); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON); bank = gActiveBattler; gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0; - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1552,7 +1552,7 @@ static void RecordedPlayerHandleStatusAnimation(void) { InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24)); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation; } } @@ -1627,16 +1627,16 @@ static void RecordedPlayerHandleCmd40(void) static void RecordedPlayerHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { RecordedPlayerBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1675,7 +1675,7 @@ static void RecordedPlayerHandlePlayFanfareOrBGM(void) static void RecordedPlayerHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry3(species, -25, 5); RecordedPlayerBufferExecCompleted(); @@ -1694,26 +1694,26 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) u8 taskId; u32 trainerPicId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F9); if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBattler)].gender; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; else trainerPicId = gSaveBlock2Ptr->playerGender; LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_818CC24, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1722,7 +1722,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_120; + gBattlerControllerFuncs[gActiveBattler] = nullsub_120; } static void sub_818CC24(u8 taskId) @@ -1738,20 +1738,20 @@ static void sub_818CC24(u8 taskId) gActiveBattler = gTasks[taskId].data[0]; if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_818BA6C(gActiveBattler, FALSE); } else { - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_818BA6C(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); sub_818BA6C(gActiveBattler, FALSE); gActiveBattler ^= BIT_FLANK; } - gBattlerFuncs[gActiveBattler] = sub_8189D40; + gBattlerControllerFuncs[gActiveBattler] = sub_8189D40; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1772,7 +1772,7 @@ static void RecordedPlayerHandleDrawPartyStatusSummary(void) if (gBattleBufferA[gActiveBattler][2] != 0) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D; - gBattlerFuncs[gActiveBattler] = sub_818CDF4; + gBattlerControllerFuncs[gActiveBattler] = sub_818CDF4; } } @@ -1799,9 +1799,9 @@ static void RecordedPlayerHandleCmd50(void) static void RecordedPlayerHandleSpriteInvisibility(void) { - if (IsBankSpritePresent(gActiveBattler)) + if (IsBattlerSpritePresent(gActiveBattler)) { - gSprites[gBankSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; + gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1]; CopyBattleSpriteInvisibility(gActiveBattler); } RecordedPlayerBufferExecCompleted(); @@ -1817,7 +1817,7 @@ static void RecordedPlayerHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) RecordedPlayerBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } } @@ -1837,7 +1837,7 @@ static void RecordedPlayerHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); RecordedPlayerBufferExecCompleted(); - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_121(void) diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 9e90d660c..814ee8076 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -22,21 +22,21 @@ #include "data2.h" #include "pokeblock.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern void (*gPreBattleCallback1)(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern u16 gSpecialVar_ItemId; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u16 gBattle_BG0_X; extern u16 gBattle_BG0_Y; @@ -180,12 +180,12 @@ static void nullsub_114(void) void SetControllerToSafari(void) { - gBattlerFuncs[gActiveBattler] = SafariBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand; } static void SafariBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sSafariBufferCommands)) sSafariBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -203,16 +203,16 @@ static void HandleInputChooseAction(void) switch (gActionSelectionCursor[gActiveBattler]) { case 0: - EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_BALL, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_BALL, 0); break; case 1: - EmitTwoReturnValues(1, ACTION_POKEBLOCK_CASE, 0); + BtlController_EmitTwoReturnValues(1, ACTION_POKEBLOCK_CASE, 0); break; case 2: - EmitTwoReturnValues(1, ACTION_GO_NEAR, 0); + BtlController_EmitTwoReturnValues(1, ACTION_GO_NEAR, 0); break; case 3: - EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_RUN, 0); + BtlController_EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_RUN, 0); break; } SafariBufferExecCompleted(); @@ -261,7 +261,7 @@ static void HandleInputChooseAction(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) SafariBufferExecCompleted(); } @@ -273,7 +273,7 @@ static void CompleteOnInactiveTextPrinter(void) static void CompleteOnHealthboxSpriteCallbackDummy(void) { - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) SafariBufferExecCompleted(); } @@ -297,7 +297,7 @@ static void SafariOpenPokeblockCase(void) { if (!gPaletteFade.active) { - gBattlerFuncs[gActiveBattler] = CompleteWhenChosePokeblock; + gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChosePokeblock; FreeAllWindowBuffers(); OpenPokeblockCaseInBattle(); } @@ -307,7 +307,7 @@ static void CompleteWhenChosePokeblock(void) { if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { - EmitOneReturnValue(1, gSpecialVar_ItemId); + BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId); SafariBufferExecCompleted(); } } @@ -320,7 +320,7 @@ static void CompleteOnFinishedBattleAnimation(void) static void SafariBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = SafariBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -330,7 +330,7 @@ static void SafariBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -379,16 +379,16 @@ static void SafariHandleDrawTrainerPic(void) { DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBattler); sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite( + gBattlerSpriteIds[gActiveBattler] = CreateSprite( &gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void SafariHandleTrainerSlide(void) @@ -416,7 +416,7 @@ static void SafariHandleSuccessBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void SafariHandleBallThrowAnim(void) @@ -426,7 +426,7 @@ static void SafariHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattlerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } static void SafariHandlePause(void) @@ -448,7 +448,7 @@ static void SafariHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void SafariHandlePrintSelectionString(void) @@ -465,7 +465,7 @@ static void HandleChooseActionAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 160; - gBattlerFuncs[gActiveBattler] = HandleInputChooseAction; + gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction; } } @@ -473,7 +473,7 @@ static void SafariHandleChooseAction(void) { s32 i; - gBattlerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; + gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; BattleHandleAddTextPrinter(gText_SafariZoneMenu, 2); for (i = 0; i < 4; i++) @@ -499,7 +499,7 @@ static void SafariHandleChooseItem(void) s32 i; BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattlerFuncs[gActiveBattler] = SafariOpenPokeblockCase; + gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase; gBankInMenu = gActiveBattler; } @@ -525,7 +525,7 @@ static void SafariHandleExpUpdate(void) static void SafariHandleStatusIconUpdate(void) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_SAFARI_BALLS_TEXT); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_BALLS_TEXT); SafariBufferExecCompleted(); } @@ -639,7 +639,7 @@ static void SafariHandlePlayFanfareOrBGM(void) static void SafariHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry1(species, 25); SafariBufferExecCompleted(); @@ -654,10 +654,10 @@ static void SafariHandleIntroSlide(void) static void SafariHandleIntroTrainerBallThrow(void) { - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); - gBattlerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy; + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy; } static void SafariHandleDrawPartyStatusSummary(void) @@ -688,7 +688,7 @@ static void SafariHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) SafariBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } static void SafariHandleLinkStandbyMsg(void) @@ -708,7 +708,7 @@ static void SafariHandleCmd55(void) BeginFastPaletteFade(3); SafariBufferExecCompleted(); if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) - gBattlerFuncs[gActiveBattler] = sub_81595E4; + gBattlerControllerFuncs[gActiveBattler] = sub_81595E4; } static void nullsub_115(void) diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index d12a0a907..7f5108b9b 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -28,16 +28,16 @@ #include "data2.h" #include "party_menu.h" -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gAbsentBattlerFlags; extern u8 gBattlersCount; extern bool8 gDoingBattleAnim; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gMultiUsePlayerCursor; @@ -48,7 +48,7 @@ extern struct SpriteTemplate gUnknown_0202499C; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gSpecialVar_ItemId; extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleOutcome; extern u8 gNumberOfMovesToChoose; extern u16 gBattle_BG0_X; @@ -204,7 +204,7 @@ static void nullsub_117(void) void SetControllerToWally(void) { - gBattlerFuncs[gActiveBattler] = WallyBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand; gBattleStruct->wallyBattleState = 0; gBattleStruct->wallyMovesState = 0; gBattleStruct->wallyWaitFrames = 0; @@ -213,7 +213,7 @@ void SetControllerToWally(void) static void WallyBufferRunCommand(void) { - if (gBattleExecBuffer & gBitTable[gActiveBattler]) + if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sWallyBufferCommands)) sWallyBufferCommands[gBattleBufferA[gActiveBattler][0]](); @@ -233,7 +233,7 @@ static void WallyHandleActions(void) if (--gBattleStruct->wallyWaitFrames == 0) { PlaySE(SE_SELECT); - EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); + BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; @@ -244,7 +244,7 @@ static void WallyHandleActions(void) if (--gBattleStruct->wallyWaitFrames == 0) { PlaySE(SE_SELECT); - EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); + BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; @@ -254,7 +254,7 @@ static void WallyHandleActions(void) case 3: if (--gBattleStruct->wallyWaitFrames == 0) { - EmitTwoReturnValues(1, 9, 0); + BtlController_EmitTwoReturnValues(1, 9, 0); WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; @@ -275,7 +275,7 @@ static void WallyHandleActions(void) if (--gBattleStruct->wallyWaitFrames == 0) { PlaySE(SE_SELECT); - EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); WallyBufferExecCompleted(); } break; @@ -284,7 +284,7 @@ static void WallyHandleActions(void) static void CompleteOnBankSpriteCallbackDummy(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } @@ -304,7 +304,7 @@ static void OpenBagAfterPaletteFade(void) { if (!gPaletteFade.active) { - gBattlerFuncs[gActiveBattler] = CompleteOnChosenItem; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnChosenItem; nullsub_35(); FreeAllWindowBuffers(); DoWallyTutorialBagMenu(); @@ -315,7 +315,7 @@ static void CompleteOnChosenItem(void) { if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { - EmitOneReturnValue(1, gSpecialVar_ItemId); + BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId); WallyBufferExecCompleted(); } } @@ -323,29 +323,29 @@ static void CompleteOnChosenItem(void) static void sub_816864C(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) - sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlePartyID[gActiveBattler]]); + sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlePartyID[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler ^ BIT_FLANK]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]); - UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBattler], &gPlayerParty[gBattlePartyID[gActiveBattler]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; - gBattlerFuncs[gActiveBattler] = sub_8168818; + gBattlerControllerFuncs[gActiveBattler] = sub_8168818; } } @@ -354,7 +354,7 @@ static void sub_8168818(void) { bool32 r4 = FALSE; - if (gSprites[gHealthBoxesIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) r4 = TRUE; if (r4 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 @@ -370,7 +370,7 @@ static void sub_8168818(void) FreeSpritePaletteByTag(0x27F9); CreateTask(c3_0802FDF4, 10); - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } @@ -378,24 +378,24 @@ static void sub_8168818(void) static void CompleteOnHealthbarDone(void) { - s16 hpValue = sub_8074AA0(gActiveBattler, gHealthBoxesIds[gActiveBattler], HEALTH_BAR, 0); + s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); - SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBattler]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); } else { - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); WallyBufferExecCompleted(); } } static void DoHitAnimBlinkSpriteEffect(void) { - u8 spriteId = gBankSpriteIds[gActiveBattler]; + u8 spriteId = gBattlerSpriteIds[gActiveBattler]; if (gSprites[spriteId].data[1] == 32) { @@ -416,16 +416,16 @@ static void sub_8168A20(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); WallyBufferExecCompleted(); } } static void CompleteOnBankSpriteCallbackDummy2(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) WallyBufferExecCompleted(); } @@ -437,7 +437,7 @@ static void CompleteOnFinishedBattleAnimation(void) static void WallyBufferExecCompleted(void) { - gBattlerFuncs[gActiveBattler] = WallyBufferRunCommand; + gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { u8 playerId = GetMultiplayerId(); @@ -447,7 +447,7 @@ static void WallyBufferExecCompleted(void) } else { - gBattleExecBuffer &= ~gBitTable[gActiveBattler]; + gBattleControllerExecFlags &= ~gBitTable[gActiveBattler]; } } @@ -466,7 +466,7 @@ static void WallyHandleGetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - size += CopyWallyMonData(gBattlePartyID[gActiveBattler], monData); + size += CopyWallyMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { @@ -478,7 +478,7 @@ static void WallyHandleGetMonData(void) monToCheck >>= 1; } } - EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(1, size, monData); WallyBufferExecCompleted(); } @@ -800,7 +800,7 @@ static void WallyHandleSetMonData(void) if (gBattleBufferA[gActiveBattler][2] == 0) { - SetWallyMonData(gBattlePartyID[gActiveBattler]); + SetWallyMonData(gBattlerPartyIndexes[gActiveBattler]); } else { @@ -1030,7 +1030,7 @@ static void SetWallyMonData(u8 monId) break; } - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } static void WallyHandleSetRawMonData(void) @@ -1053,13 +1053,13 @@ static void WallyHandleReturnMonToBall(void) if (gBattleBufferA[gActiveBattler][1] == 0) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON); - gBattlerFuncs[gActiveBattler] = sub_8168A20; + gBattlerControllerFuncs[gActiveBattler] = sub_8168A20; } else { - FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBattler]]); - DestroySprite(&gSprites[gBankSpriteIds[gActiveBattler]]); - SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBattler]); + FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]); WallyBufferExecCompleted(); } } @@ -1068,30 +1068,30 @@ static void WallyHandleDrawTrainerPic(void) { DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBattler); sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords), 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = -2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy; } static void WallyHandleTrainerSlide(void) { DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBattler); sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler)); - gBankSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, 80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords), 30); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBankSpriteIds[gActiveBattler]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 2; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_805D7AC; - gBattlerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; } static void WallyHandleTrainerSlideBack(void) @@ -1114,7 +1114,7 @@ static void WallyHandleSuccessBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; } static void WallyHandleBallThrowAnim(void) @@ -1124,7 +1124,7 @@ static void WallyHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedAnimation; } static void WallyHandlePause(void) @@ -1150,7 +1150,7 @@ static void WallyHandleMoveAnimation(void) else { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; - gBattlerFuncs[gActiveBattler] = WallyDoMoveAnimation; + gBattlerControllerFuncs[gActiveBattler] = WallyDoMoveAnimation; } } @@ -1209,7 +1209,7 @@ static void WallyHandlePrintString(void) stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]); BufferStringBattle(*stringId); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); - gBattlerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; } static void WallyHandlePrintSelectionString(void) @@ -1226,7 +1226,7 @@ static void HandleChooseActionAfterDma3(void) { gBattle_BG0_X = 0; gBattle_BG0_Y = 160; - gBattlerFuncs[gActiveBattler] = WallyHandleActions; + gBattlerControllerFuncs[gActiveBattler] = WallyHandleActions; } } @@ -1234,7 +1234,7 @@ static void WallyHandleChooseAction(void) { s32 i; - gBattlerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; + gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; BattleHandleAddTextPrinter(gText_BattleMenu, 2); for (i = 0; i < 4; i++) @@ -1271,7 +1271,7 @@ static void WallyHandleChooseMove(void) if (--gBattleStruct->wallyMoveFrames == 0) { PlaySE(SE_SELECT); - EmitTwoReturnValues(1, 10, 0x100); + BtlController_EmitTwoReturnValues(1, 10, 0x100); WallyBufferExecCompleted(); } break; @@ -1281,7 +1281,7 @@ static void WallyHandleChooseMove(void) static void WallyHandleChooseItem(void) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - gBattlerFuncs[gActiveBattler] = OpenBagAfterPaletteFade; + gBattlerControllerFuncs[gActiveBattler] = OpenBagAfterPaletteFade; gBankInMenu = gActiveBattler; } @@ -1304,20 +1304,20 @@ static void WallyHandleHealthBarUpdate(void) if (hpVal != INSTANT_HP_BAR_DROP) { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); - u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); + u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, curHP, hpVal); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal); } else { - u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_MAX_HP); + u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); - SetBattleBarStruct(gActiveBattler, gHealthBoxesIds[gActiveBattler], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBattler], 0, HP_CURRENT); + SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT); } - gBattlerFuncs[gActiveBattler] = CompleteOnHealthbarDone; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } static void WallyHandleExpUpdate(void) @@ -1402,16 +1402,16 @@ static void WallyHandleCmd40(void) static void WallyHandleHitAnimation(void) { - if (gSprites[gBankSpriteIds[gActiveBattler]].invisible == TRUE) + if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE) { WallyBufferExecCompleted(); } else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBattler]].data[1] = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBattler); - gBattlerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; + gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect; } } @@ -1443,7 +1443,7 @@ static void WallyHandlePlayFanfareOrBGM(void) static void WallyHandleFaintingCry(void) { - u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES); + u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); PlayCry1(species, 25); WallyBufferExecCompleted(); @@ -1461,20 +1461,20 @@ static void WallyHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); + oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); - gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; - gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; - gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; - gSprites[gBankSpriteIds[gActiveBattler]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; + gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC; + gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; - StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBattler]], sub_805CC00); - StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_WALLY].data, 0x100 + paletteNum * 16, 32); - gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_816AC04, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1483,7 +1483,7 @@ static void WallyHandleIntroTrainerBallThrow(void) gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerFuncs[gActiveBattler] = nullsub_21; + gBattlerControllerFuncs[gActiveBattler] = nullsub_21; } static void sub_816AA80(u8 bank) @@ -1491,25 +1491,25 @@ static void sub_816AA80(u8 bank) u16 species; gBattleSpritesDataPtr->bankData[bank].transformSpecies = 0; - gBattlePartyID[bank] = gBattleBufferA[bank][1]; - species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - GetBankCoord(bank, 2), - GetBankSpriteDefault_Y(bank), + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, + GetBattlerSpriteCoord(bank, 2), + GetBattlerSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank]; gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = species; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); - gSprites[gBankSpriteIds[bank]].invisible = TRUE; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); + gSprites[gBattlerSpriteIds[bank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } @@ -1524,9 +1524,9 @@ static void sub_816AC04(u8 taskId) u8 savedActiveBank = gActiveBattler; gActiveBattler = gTasks[taskId].data[0]; - gBattleBufferA[gActiveBattler][1] = gBattlePartyID[gActiveBattler]; + gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_816AA80(gActiveBattler); - gBattlerFuncs[gActiveBattler] = sub_816864C; + gBattlerControllerFuncs[gActiveBattler] = sub_816864C; gActiveBattler = savedActiveBank; DestroyTask(taskId); } @@ -1569,7 +1569,7 @@ static void WallyHandleBattleAnimation(void) if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument)) WallyBufferExecCompleted(); else - gBattlerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation; } static void WallyHandleLinkStandbyMsg(void) @@ -1590,7 +1590,7 @@ static void WallyHandleCmd55(void) WallyBufferExecCompleted(); if (!(gBattleTypeFlags & BATTLE_TYPE_WILD) && gBattleTypeFlags & BATTLE_TYPE_LINK) - gBattlerFuncs[gActiveBattler] = sub_80587B0; + gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } static void nullsub_118(void) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index aafc106aa..4d8b63c65 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -13,9 +13,9 @@ #include "battle_message.h" extern u32 gBattleTypeFlags; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern void (*gBattleMainFunc)(void); -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; @@ -24,15 +24,15 @@ extern u8 gActiveBattler; extern u8 gUnknown_0202428C; extern u32 gUnknown_02022FF4; extern u8 gUnknown_0203C7B4; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBuffersTransferData[0x100]; extern u8 gUnknown_02022D08; extern u8 gUnknown_02022D09; extern u8 gUnknown_02022D0A; -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u8 gEffectBank; extern u16 gBattleWeather; @@ -51,8 +51,8 @@ extern void sub_81B8D64(u8 bank, u8 arg1); // party_menu // this file's funcionts static void CreateTasksForSendRecvLinkBuffers(void); -static void SetControllersVariablesInLinkBattle(void); -static void SetControllersVariables(void); +static void InitLinkBtlControllers(void); +static void InitSinglePlayerBtlControllers(void); static void SetBattlePartyIds(void); static void Task_HandleSendLinkBuffersData(u8 taskId); static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId); @@ -78,14 +78,14 @@ void SetUpBattleVarsAndBirchZigzagoon(void) for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - gBattlerFuncs[i] = nullsub_21; + gBattlerControllerFuncs[i] = nullsub_21; gBattlerPositions[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; } HandleLinkBattleSetup(); - gBattleExecBuffer = 0; + gBattleControllerExecFlags = 0; ClearBattleAnimationVars(); ClearBattleMonForms(); BattleAI_HandleItemUseBeforeAISetup(0xF); @@ -116,9 +116,9 @@ void sub_8032768(void) RecordedBattle_SaveParties(); if (gBattleTypeFlags & BATTLE_TYPE_LINK) - SetControllersVariablesInLinkBattle(); + InitLinkBtlControllers(); else - SetControllersVariables(); + InitSinglePlayerBtlControllers(); SetBattlePartyIds(); @@ -135,7 +135,7 @@ void sub_8032768(void) *(gBattleStruct->field_204 + i) = 0; } -static void SetControllersVariables(void) +static void InitSinglePlayerBtlControllers(void) { s32 i; @@ -145,30 +145,30 @@ static void SetControllersVariables(void) if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) { - gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToPlayerPartner; + gBattlerControllerFuncs[2] = SetControllerToPlayerPartner; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerControllerFuncs[3] = SetControllerToOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } else { - gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToPlayerPartner; + gBattlerControllerFuncs[2] = SetControllerToPlayerPartner; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerControllerFuncs[3] = SetControllerToOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } @@ -179,25 +179,25 @@ static void SetControllersVariables(void) sub_81B8D64(2, 1); sub_81B8D64(3, 1); - gBattlePartyID[0] = 0; - gBattlePartyID[1] = 0; - gBattlePartyID[2] = 3; - gBattlePartyID[3] = 3; + gBattlerPartyIndexes[0] = 0; + gBattlerPartyIndexes[1] = 0; + gBattlerPartyIndexes[2] = 3; + gBattlerPartyIndexes[3] = 3; } else if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { gBattleMainFunc = BeginBattleIntro; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - gBattlerFuncs[0] = SetControllerToSafari; + gBattlerControllerFuncs[0] = SetControllerToSafari; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) - gBattlerFuncs[0] = SetControllerToWally; + gBattlerControllerFuncs[0] = SetControllerToWally; else - gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlersCount = 2; @@ -210,20 +210,20 @@ static void SetControllersVariables(void) { gBattleMainFunc = BeginBattleIntro; - gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlersCount = 2; } else // see how the banks are switched { - gBattlerFuncs[1] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[1] = SetControllerToRecordedPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[0] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; gBattlersCount = 2; @@ -231,10 +231,10 @@ static void SetControllersVariables(void) } else { - gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; } } @@ -243,16 +243,16 @@ static void SetControllersVariables(void) { gBattleMainFunc = BeginBattleIntro; - gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToPlayer; + gBattlerControllerFuncs[2] = SetControllerToPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerControllerFuncs[3] = SetControllerToOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; gBattlersCount = 4; @@ -263,16 +263,16 @@ static void SetControllersVariables(void) { gBattleMainFunc = BeginBattleIntro; - gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer; gBattlerPositions[0] = 0; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = 1; - gBattlerFuncs[2] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer; gBattlerPositions[2] = 2; - gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerControllerFuncs[3] = SetControllerToOpponent; gBattlerPositions[3] = 3; gBattlersCount = 4; @@ -282,10 +282,10 @@ static void SetControllersVariables(void) sub_81B8D64(2, 1); sub_81B8D64(3, 1); - gBattlePartyID[0] = 0; - gBattlePartyID[1] = 0; - gBattlePartyID[2] = 3; - gBattlePartyID[3] = 3; + gBattlerPartyIndexes[0] = 0; + gBattlerPartyIndexes[1] = 0; + gBattlerPartyIndexes[2] = 3; + gBattlerPartyIndexes[3] = 3; } else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -307,53 +307,53 @@ static void SetControllersVariables(void) if (i == var) { - gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } else if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[var].lp_field_18 & 1)) || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[var].lp_field_18 & 1))) { - gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } else { - gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_LEFT; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_RIGHT; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -361,51 +361,51 @@ static void SetControllersVariables(void) } else if (gBattleTypeFlags & BATTLE_TYPE_WILD) { - gBattlerFuncs[0] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[2] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { - gBattlerFuncs[1] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[3] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[3] = SetControllerToRecordedOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } else { - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerControllerFuncs[3] = SetControllerToOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; } } else { - gBattlerFuncs[1] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[1] = SetControllerToRecordedPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[3] = SetControllerToRecordedPlayer; + gBattlerControllerFuncs[3] = SetControllerToRecordedPlayer; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) { - gBattlerFuncs[0] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToRecordedOpponent; + gBattlerControllerFuncs[2] = SetControllerToRecordedOpponent; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; } else { - gBattlerFuncs[0] = SetControllerToOpponent; + gBattlerControllerFuncs[0] = SetControllerToOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToOpponent; + gBattlerControllerFuncs[2] = SetControllerToOpponent; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; } } @@ -413,7 +413,7 @@ static void SetControllersVariables(void) } } -static void SetControllersVariablesInLinkBattle(void) +static void InitLinkBtlControllers(void) { s32 i; u8 multiplayerId; @@ -424,20 +424,20 @@ static void SetControllersVariablesInLinkBattle(void) { gBattleMainFunc = BeginBattleIntro; - gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; gBattlersCount = 2; } else { - gBattlerFuncs[1] = SetControllerToPlayer; + gBattlerControllerFuncs[1] = SetControllerToPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[0] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[0] = SetControllerToLinkOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; gBattlersCount = 2; @@ -449,32 +449,32 @@ static void SetControllersVariablesInLinkBattle(void) { gBattleMainFunc = BeginBattleIntro; - gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToPlayer; + gBattlerControllerFuncs[2] = SetControllerToPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[3] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[3] = SetControllerToLinkOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; gBattlersCount = 4; } else { - gBattlerFuncs[1] = SetControllerToPlayer; + gBattlerControllerFuncs[1] = SetControllerToPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[0] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[0] = SetControllerToLinkOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[3] = SetControllerToPlayer; + gBattlerControllerFuncs[3] = SetControllerToPlayer; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[2] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[2] = SetControllerToLinkOpponent; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; gBattlersCount = 4; @@ -486,32 +486,32 @@ static void SetControllersVariablesInLinkBattle(void) { gBattleMainFunc = BeginBattleIntro; - gBattlerFuncs[0] = SetControllerToPlayer; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToOpponent; + gBattlerControllerFuncs[1] = SetControllerToOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToLinkPartner; + gBattlerControllerFuncs[2] = SetControllerToLinkPartner; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[3] = SetControllerToOpponent; + gBattlerControllerFuncs[3] = SetControllerToOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; gBattlersCount = 4; } else { - gBattlerFuncs[0] = SetControllerToLinkPartner; + gBattlerControllerFuncs[0] = SetControllerToLinkPartner; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; - gBattlerFuncs[1] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; - gBattlerFuncs[2] = SetControllerToPlayer; + gBattlerControllerFuncs[2] = SetControllerToPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; - gBattlerFuncs[3] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[3] = SetControllerToLinkOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; gBattlersCount = 4; @@ -521,10 +521,10 @@ static void SetControllersVariablesInLinkBattle(void) sub_81B8D64(1, 0); sub_81B8D64(2, 1); sub_81B8D64(3, 1); - gBattlePartyID[0] = 0; - gBattlePartyID[1] = 0; - gBattlePartyID[2] = 3; - gBattlePartyID[3] = 3; + gBattlerPartyIndexes[0] = 0; + gBattlerPartyIndexes[1] = 0; + gBattlerPartyIndexes[2] = 3; + gBattlerPartyIndexes[3] = 3; } else { @@ -549,18 +549,18 @@ static void SetControllersVariablesInLinkBattle(void) if (i == multiplayerId) { - gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer; + gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -569,35 +569,35 @@ static void SetControllersVariablesInLinkBattle(void) if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1)) || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1))) { - gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner; + gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } else { - gBattlerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent; + gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent; switch (gLinkPlayers[i].lp_field_18) { case 0: case 3: gBattlerPositions[gLinkPlayers[i].lp_field_18] = 1; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0; break; case 1: case 2: gBattlerPositions[gLinkPlayers[i].lp_field_18] = 3; - gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3; + gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3; break; } } @@ -627,7 +627,7 @@ static void SetBattlePartyIds(void) && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -638,7 +638,7 @@ static void SetBattlePartyIds(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -651,9 +651,9 @@ static void SetBattlePartyIds(void) && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2. && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0 - && gBattlePartyID[i - 2] != j) + && gBattlerPartyIndexes[i - 2] != j) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -663,9 +663,9 @@ static void SetBattlePartyIds(void) && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0 - && gBattlePartyID[i - 2] != j) + && gBattlerPartyIndexes[i - 2] != j) { - gBattlePartyID[i] = j; + gBattlerPartyIndexes[i] = j; break; } } @@ -674,7 +674,7 @@ static void SetBattlePartyIds(void) } if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) - gBattlePartyID[1] = 0, gBattlePartyID[3] = 3; + gBattlerPartyIndexes[1] = 0, gBattlerPartyIndexes[3] = 3; } } @@ -752,8 +752,8 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) } gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBattler; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattleAttacker; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattleDefender; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattleMoveAttacker; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattleMoveTarget; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBattlerFlags; @@ -912,7 +912,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0]) { case 0: - if (gBattleExecBuffer & gBitTable[bank]) + if (gBattleControllerExecFlags & gBitTable[bank]) return; memcpy(gBattleBufferA[bank], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize); @@ -920,8 +920,8 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gBattleAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; - gBattleDefender = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; + gBattleMoveAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; + gBattleMoveTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; gAbsentBattlerFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; } @@ -931,7 +931,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) break; case 2: var = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA]; - gBattleExecBuffer &= ~(gBitTable[bank] << (var * 4)); + gBattleControllerExecFlags &= ~(gBitTable[bank] << (var * 4)); break; } @@ -939,7 +939,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) } } -void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) +void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) { gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA; gBattleBuffersTransferData[1] = requestId; @@ -948,7 +948,7 @@ void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) +void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) { gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA; gBattleBuffersTransferData[1] = monId; @@ -957,7 +957,7 @@ void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data) +void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data) { s32 i; @@ -969,7 +969,7 @@ void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *da PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes); } -void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) +void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) { s32 i; @@ -981,7 +981,7 @@ void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3); } -void EmitLoadMonSprite(u8 bufferId) +void BtlController_EmitLoadMonSprite(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE; gBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE; @@ -990,7 +990,7 @@ void EmitLoadMonSprite(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit) +void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit) { gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM; gBattleBuffersTransferData[1] = partyId; @@ -999,14 +999,14 @@ void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitReturnMonToBall(u8 bufferId, u8 arg1) +void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1) { gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL; gBattleBuffersTransferData[1] = arg1; PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitDrawTrainerPic(u8 bufferId) +void BtlController_EmitDrawTrainerPic(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC; gBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC; @@ -1015,7 +1015,7 @@ void EmitDrawTrainerPic(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitTrainerSlide(u8 bufferId) +void BtlController_EmitTrainerSlide(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE; gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE; @@ -1024,7 +1024,7 @@ void EmitTrainerSlide(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitTrainerSlideBack(u8 bufferId) +void BtlController_EmitTrainerSlideBack(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK; gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK; @@ -1033,7 +1033,7 @@ void EmitTrainerSlideBack(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitFaintAnimation(u8 bufferId) +void BtlController_EmitFaintAnimation(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION; gBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION; @@ -1042,7 +1042,7 @@ void EmitFaintAnimation(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitPaletteFade(u8 bufferId) +void BtlController_EmitPaletteFade(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE; gBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE; @@ -1051,7 +1051,7 @@ void EmitPaletteFade(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitSuccessBallThrowAnim(u8 bufferId) +void BtlController_EmitSuccessBallThrowAnim(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM; gBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM; @@ -1060,14 +1060,14 @@ void EmitSuccessBallThrowAnim(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitBallThrowAnim(u8 bufferId, u8 caseId) +void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId) { gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM; gBattleBuffersTransferData[1] = caseId; PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitPause(u8 bufferId, u8 toWait, void *data) +void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data) { s32 i; @@ -1078,7 +1078,7 @@ void EmitPause(u8 bufferId, u8 toWait, void *data) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2); } -void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit) +void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit) { gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION; gBattleBuffersTransferData[1] = move; @@ -1108,7 +1108,7 @@ void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct)); } -void EmitPrintString(u8 bufferId, u16 stringID) +void BtlController_EmitPrintString(u8 bufferId, u16 stringID) { s32 i; struct StringInfoBattle* stringInfo; @@ -1140,7 +1140,7 @@ void EmitPrintString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void EmitPrintSelectionString(u8 bufferId, u16 stringID) +void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) { s32 i; struct StringInfoBattle *stringInfo; @@ -1169,7 +1169,7 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) +void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) { gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION; gBattleBuffersTransferData[1] = arg1; @@ -1178,7 +1178,7 @@ void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitUnknownYesNoBox(u8 bufferId) +void BtlController_EmitUnknownYesNoBox(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX; gBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX; @@ -1187,7 +1187,7 @@ void EmitUnknownYesNoBox(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData) +void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData) { s32 i; @@ -1200,7 +1200,7 @@ void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4); } -void EmitChooseItem(u8 bufferId, u8 *arg1) +void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1) { s32 i; @@ -1210,7 +1210,7 @@ void EmitChooseItem(u8 bufferId, u8 *arg1) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4) +void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4) { s32 i; @@ -1223,7 +1223,7 @@ void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written } -void EmitCmd23(u8 bufferId) +void BtlController_EmitCmd23(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_23; gBattleBuffersTransferData[1] = CONTROLLER_23; @@ -1233,7 +1233,7 @@ void EmitCmd23(u8 bufferId) } // why is the argument u16 if it's being cast to s16 anyway? -void EmitHealthBarUpdate(u8 bufferId, u16 hpValue) +void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue) { gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE; gBattleBuffersTransferData[1] = 0; @@ -1243,7 +1243,7 @@ void EmitHealthBarUpdate(u8 bufferId, u16 hpValue) } // why is the argument u16 if it's being cast to s16 anyway? -void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints) +void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints) { gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE; gBattleBuffersTransferData[1] = partyId; @@ -1252,7 +1252,7 @@ void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2) +void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2) { gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE; gBattleBuffersTransferData[1] = status1; @@ -1266,7 +1266,7 @@ void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9); } -void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) +void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) { gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION; gBattleBuffersTransferData[1] = status2; @@ -1277,14 +1277,14 @@ void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6); } -void EmitStatusXor(u8 bufferId, u8 b) +void BtlController_EmitStatusXor(u8 bufferId, u8 b) { gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitDataTransfer(u8 bufferId, u16 size, void *data) +void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data) { s32 i; @@ -1297,7 +1297,7 @@ void EmitDataTransfer(u8 bufferId, u16 size, void *data) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4); } -void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) +void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) { s32 i; @@ -1313,7 +1313,7 @@ void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7); } -void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter) +void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter) { s32 i; @@ -1325,7 +1325,7 @@ void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3); } -void EmitCmd32(u8 bufferId, u16 size, void *data) +void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) { s32 i; @@ -1337,7 +1337,7 @@ void EmitCmd32(u8 bufferId, u16 size, void *data) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3); } -void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) +void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) { gBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES; gBattleBuffersTransferData[1] = arg1; @@ -1346,7 +1346,7 @@ void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c) +void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c) { s32 i; @@ -1357,7 +1357,7 @@ void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5); } -void EmitOneReturnValue(u8 bufferId, u16 arg1) +void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1) { gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE; gBattleBuffersTransferData[1] = arg1; @@ -1366,7 +1366,7 @@ void EmitOneReturnValue(u8 bufferId, u16 arg1) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) +void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) { gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE; gBattleBuffersTransferData[1] = b; @@ -1375,7 +1375,7 @@ void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitCmd37(u8 bufferId) +void BtlController_EmitCmd37(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_37; gBattleBuffersTransferData[1] = CONTROLLER_37; @@ -1384,14 +1384,14 @@ void EmitCmd37(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitCmd38(u8 bufferId, u8 b) +void BtlController_EmitCmd38(u8 bufferId, u8 b) { gBattleBuffersTransferData[0] = CONTROLLER_38; gBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitCmd39(u8 bufferId) +void BtlController_EmitCmd39(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_39; gBattleBuffersTransferData[1] = CONTROLLER_39; @@ -1400,7 +1400,7 @@ void EmitCmd39(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitCmd40(u8 bufferId) +void BtlController_EmitCmd40(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_40; gBattleBuffersTransferData[1] = CONTROLLER_40; @@ -1409,7 +1409,7 @@ void EmitCmd40(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitHitAnimation(u8 bufferId) +void BtlController_EmitHitAnimation(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION; gBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION; @@ -1418,7 +1418,7 @@ void EmitHitAnimation(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitCmd42(u8 bufferId) +void BtlController_EmitCmd42(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_42; gBattleBuffersTransferData[1] = CONTROLLER_42; @@ -1427,7 +1427,7 @@ void EmitCmd42(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitPlaySE(u8 bufferId, u16 songId) +void BtlController_EmitPlaySE(u8 bufferId, u16 songId) { gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; gBattleBuffersTransferData[1] = songId; @@ -1436,7 +1436,7 @@ void EmitPlaySE(u8 bufferId, u16 songId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM) +void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM) { gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM; gBattleBuffersTransferData[1] = songId; @@ -1445,7 +1445,7 @@ void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitFaintingCry(u8 bufferId) +void BtlController_EmitFaintingCry(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY; gBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY; @@ -1454,14 +1454,14 @@ void EmitFaintingCry(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitIntroSlide(u8 bufferId, u8 terrainId) +void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId) { gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE; gBattleBuffersTransferData[1] = terrainId; PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitIntroTrainerBallThrow(u8 bufferId) +void BtlController_EmitIntroTrainerBallThrow(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW; gBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW; @@ -1470,7 +1470,7 @@ void EmitIntroTrainerBallThrow(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2) +void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2) { s32 i; @@ -1483,7 +1483,7 @@ void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4); } -void EmitCmd49(u8 bufferId) +void BtlController_EmitCmd49(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_49; gBattleBuffersTransferData[1] = CONTROLLER_49; @@ -1492,7 +1492,7 @@ void EmitCmd49(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitCmd50(u8 bufferId) +void BtlController_EmitCmd50(u8 bufferId) { gBattleBuffersTransferData[0] = CONTROLLER_50; gBattleBuffersTransferData[1] = CONTROLLER_50; @@ -1501,7 +1501,7 @@ void EmitCmd50(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible) +void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible) { gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY; gBattleBuffersTransferData[1] = isInvisible; @@ -1510,7 +1510,7 @@ void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument) +void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument) { gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION; gBattleBuffersTransferData[1] = animationId; @@ -1519,7 +1519,7 @@ void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2) +void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2) { bool8 arg2_ = arg2; gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG; @@ -1533,14 +1533,14 @@ void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[2] + 4); } -void EmitResetActionMoveSelection(u8 bufferId, u8 caseId) +void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId) { gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION; gBattleBuffersTransferData[1] = caseId; PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2); } -void EmitCmd55(u8 bufferId, u8 arg1) +void BtlController_EmitCmd55(u8 bufferId, u8 arg1) { gBattleBuffersTransferData[0] = CONTROLLER_55; gBattleBuffersTransferData[1] = arg1; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index a6b6f7a09..d7806aee0 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -27,11 +27,11 @@ extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gActiveBattler; extern u8 gBattlersCount; extern u16 gUnknown_020243FC; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern struct MusicPlayerInfo gMPlayInfo_SE1; @@ -439,15 +439,15 @@ bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, } if (gBattleSpritesDataPtr->bankData[activeBank].behindSubstitute && tableId == B_ANIM_SUBSTITUTE_FADE - && gSprites[gBankSpriteIds[activeBank]].invisible) + && gSprites[gBattlerSpriteIds[activeBank]].invisible) { - LoadBattleMonGfxAndAnimate(activeBank, TRUE, gBankSpriteIds[activeBank]); + LoadBattleMonGfxAndAnimate(activeBank, TRUE, gBattlerSpriteIds[activeBank]); ClearBehindSubstituteBit(activeBank); return TRUE; } - gAnimBankAttacker = atkBank; - gAnimBankTarget = defBank; + gBattleAnimAttacker = atkBank; + gBattleAnimTarget = defBank; gBattleSpritesDataPtr->animationData->animArg = argument; LaunchBattleAnimation(gBattleAnims_VariousTable, tableId, FALSE); taskId = CreateTask(Task_ClearBitWhenBattleTableAnimDone, 10); @@ -491,8 +491,8 @@ void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tab { u8 taskId; - gAnimBankAttacker = atkBank; - gAnimBankTarget = defBank; + gBattleAnimAttacker = atkBank; + gBattleAnimTarget = defBank; LaunchBattleAnimation(gBattleAnims_Special, tableId, FALSE); taskId = CreateTask(Task_ClearBitWhenSpecialAnimDone, 10); gTasks[taskId].tBank = activeBank; @@ -802,9 +802,9 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) break; case 3: if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && *bank == 0) - gHealthBoxesIds[*bank] = CreateSafariPlayerHealthboxSprites(); + gHealthboxSpriteIds[*bank] = CreateSafariPlayerHealthboxSprites(); else - gHealthBoxesIds[*bank] = CreateBankHealthboxSprites(*bank); + gHealthboxSpriteIds[*bank] = CreateHealthboxSprites(*bank); (*bank)++; if (*bank == gBattlersCount) @@ -814,11 +814,11 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) } break; case 4: - SetBankHealthboxSpritePos(*bank); + InitBattlerHealthboxCoords(*bank); if (gBattlerPositions[*bank] <= 1) - DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], FALSE); + DummyBattleInterfaceFunc(gHealthboxSpriteIds[*bank], FALSE); else - DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE); + DummyBattleInterfaceFunc(gHealthboxSpriteIds[*bank], TRUE); (*bank)++; if (*bank == gBattlersCount) @@ -831,13 +831,13 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) if (GetBattlerSide(*bank) == B_SIDE_PLAYER) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - UpdateHealthboxAttribute(gHealthBoxesIds[*bank], &gPlayerParty[gBattlePartyID[*bank]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[*bank], &gPlayerParty[gBattlerPartyIndexes[*bank]], HEALTHBOX_ALL); } else { - UpdateHealthboxAttribute(gHealthBoxesIds[*bank], &gEnemyParty[gBattlePartyID[*bank]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[*bank], &gEnemyParty[gBattlerPartyIndexes[*bank]], HEALTHBOX_ALL); } - SetHealthboxSpriteInvisible(gHealthBoxesIds[*bank]); + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[*bank]); (*bank)++; if (*bank == gBattlersCount) { @@ -872,12 +872,12 @@ void CopyAllBattleSpritesInvisibilities(void) s32 i; for (i = 0; i < gBattlersCount; i++) - gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBankSpriteIds[i]].invisible; + gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; } void CopyBattleSpriteInvisibility(u8 bank) { - gBattleSpritesDataPtr->bankData[bank].invisible = gSprites[gBankSpriteIds[bank]].invisible; + gBattleSpritesDataPtr->bankData[bank].invisible = gSprites[gBattlerSpriteIds[bank]].invisible; } void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) @@ -890,7 +890,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) if (notTransform) { - StartSpriteAnim(&gSprites[gBankSpriteIds[bankAtk]], gBattleSpritesDataPtr->animationData->animArg); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bankAtk]], gBattleSpritesDataPtr->animationData->animArg); paletteOffset = 0x100 + bankAtk * 16; LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32); gBattleMonForms[bankAtk] = gBattleSpritesDataPtr->animationData->animArg; @@ -899,7 +899,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) BlendPalette(paletteOffset, 16, 6, 0x7FFF); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); } - gSprites[gBankSpriteIds[bankAtk]].pos1.y = GetBankSpriteDefault_Y(bankAtk); + gSprites[gBattlerSpriteIds[bankAtk]].pos1.y = GetBattlerSpriteDefault_Y(bankAtk); } else { @@ -924,14 +924,14 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) position = GetBattlerPosition(bankAtk); if (GetBattlerSide(bankDef) == B_SIDE_OPPONENT) - targetSpecies = GetMonData(&gEnemyParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES); + targetSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bankDef]], MON_DATA_SPECIES); else - targetSpecies = GetMonData(&gPlayerParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES); + targetSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bankDef]], MON_DATA_SPECIES); if (GetBattlerSide(bankAtk) == B_SIDE_PLAYER) { - personalityValue = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID); + personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_OT_ID); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies], gMonSpritesGfxPtr->sprites[position], @@ -940,8 +940,8 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) } else { - personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bankAtk]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID); + personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_OT_ID); HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[targetSpecies], gMonSpritesGfxPtr->sprites[position], @@ -951,7 +951,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) } src = gMonSpritesGfxPtr->sprites[position]; - dst = (void *)(VRAM + 0x10000 + gSprites[gBankSpriteIds[bankAtk]].oam.tileNum * 32); + dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[bankAtk]].oam.tileNum * 32); DmaCopy32(3, src, dst, 0x800); paletteOffset = 0x100 + bankAtk * 16; lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); @@ -960,7 +960,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) if (targetSpecies == SPECIES_CASTFORM) { - gSprites[gBankSpriteIds[bankAtk]].anims = gMonAnimationsSpriteAnimsPtrTable[targetSpecies]; + gSprites[gBattlerSpriteIds[bankAtk]].anims = gMonAnimationsSpriteAnimsPtrTable[targetSpecies]; LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); LoadPalette(gBattleStruct->castformPalette[0] + gBattleMonForms[bankDef] * 16, paletteOffset, 32); } @@ -974,8 +974,8 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) gBattleMonForms[bankAtk] = gBattleMonForms[bankDef]; } - gSprites[gBankSpriteIds[bankAtk]].pos1.y = GetBankSpriteDefault_Y(bankAtk); - StartSpriteAnim(&gSprites[gBankSpriteIds[bankAtk]], gBattleMonForms[bankAtk]); + gSprites[gBattlerSpriteIds[bankAtk]].pos1.y = GetBattlerSpriteDefault_Y(bankAtk); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bankAtk]], gBattleMonForms[bankAtk]); } } @@ -1019,9 +1019,9 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite) if (!IsContest()) { if (GetBattlerSide(bank) != B_SIDE_PLAYER) - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); else - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); } } } @@ -1034,7 +1034,7 @@ void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId) if (!loadMonSprite) gSprites[spriteId].pos1.y = GetSubstituteSpriteDefault_Y(bank); else - gSprites[spriteId].pos1.y = GetBankSpriteDefault_Y(bank); + gSprites[spriteId].pos1.y = GetBattlerSpriteDefault_Y(bank); } void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move) @@ -1103,8 +1103,8 @@ void sub_805EAE8(void) { u8 playerBank1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); u8 playerBank2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]); - u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]); + u8 bank1PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBank1]); + u8 bank2PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBank2]); if (GetMonData(&gPlayerParty[bank1PartyId], MON_DATA_HP) != 0) HandleLowHpMusicChange(&gPlayerParty[bank1PartyId], playerBank1); @@ -1119,17 +1119,17 @@ void sub_805EB9C(u8 affineMode) for (i = 0; i < gBattlersCount; i++) { - if (IsBankSpritePresent(i)) + if (IsBattlerSpritePresent(i)) { - gSprites[gBankSpriteIds[i]].oam.affineMode = affineMode; + gSprites[gBattlerSpriteIds[i]].oam.affineMode = affineMode; if (affineMode == 0) { - gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBankSpriteIds[i]].oam.matrixNum; - gSprites[gBankSpriteIds[i]].oam.matrixNum = 0; + gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBattlerSpriteIds[i]].oam.matrixNum; + gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0; } else { - gSprites[gBankSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6; + gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6; } } } @@ -1144,13 +1144,13 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); bank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(bank, 0), GetBattlerSpriteCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; if (IsDoubleBattle()) { bank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankCoord(bank, 0), GetBankCoord(bank, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(bank, 0), GetBattlerSpriteCoord(bank, 1) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; } } @@ -1159,9 +1159,9 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) { bool8 invisible = FALSE; u8 bank = shadowSprite->tBank; - struct Sprite *bankSprite = &gSprites[gBankSpriteIds[bank]]; + struct Sprite *bankSprite = &gSprites[gBattlerSpriteIds[bank]]; - if (!bankSprite->inUse || !IsBankSpritePresent(bank)) + if (!bankSprite->inUse || !IsBattlerSpritePresent(bank)) { shadowSprite->callback = SpriteCB_SetInvisible; return; @@ -1187,8 +1187,9 @@ void SpriteCB_SetInvisible(struct Sprite *sprite) sprite->invisible = 1; } -void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species) +void SetBattlerShadowSpriteCallback(u8 bank, u16 species) { + // The player's shadow is never seen if (GetBattlerSide(bank) == B_SIDE_PLAYER) return; @@ -1201,7 +1202,7 @@ void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species) gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].callback = SpriteCB_SetInvisible; } -void EnemyShadowCallbackToSetInvisible(u8 bank) +void HideBattlerShadowSprite(u8 bank) { gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].callback = SpriteCB_SetInvisible; } diff --git a/src/battle_interface.c b/src/battle_interface.c index b006a9d31..941fd20d5 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -154,9 +154,9 @@ enum }; extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern const u8 * const gNatureNamePointers[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; @@ -898,7 +898,7 @@ void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2) // healthboxSpriteId_2 refers to the other part // there's also one other sprite that appears to be a black square? dont fully understand its role -u8 CreateBankHealthboxSprites(u8 bank) +u8 CreateHealthboxSprites(u8 bank) { s16 data6 = 0; u8 healthboxSpriteId_1, healthboxSpriteId_2; @@ -1089,9 +1089,9 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) for (i = 0; i < gBattlersCount; i++) { - u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; - u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; - u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data[5]; + u8 healthboxSpriteId_1 = gHealthboxSpriteIds[i]; + u8 healthboxSpriteId_2 = gSprites[gHealthboxSpriteIds[i]].oam.affineParam; + u8 healthboxSpriteId_3 = gSprites[gHealthboxSpriteIds[i]].data[5]; gSprites[healthboxSpriteId_1].oam.priority = priority; gSprites[healthboxSpriteId_2].oam.priority = priority; @@ -1099,7 +1099,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) } } -void SetBankHealthboxSpritePos(u8 bank) +void InitBattlerHealthboxCoords(u8 bank) { s16 x = 0, y = 0; @@ -1129,7 +1129,7 @@ void SetBankHealthboxSpritePos(u8 bank) } } - UpdateSpritePos(gHealthBoxesIds[bank], x, y); + UpdateSpritePos(gHealthboxSpriteIds[bank], x, y); } static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) @@ -1417,7 +1417,7 @@ void SwapHpBarsWithHpText(void) for (i = 0; i < gBattlersCount; i++) { - if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy + if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy && GetBattlerSide(i) != B_SIDE_OPPONENT && (IsDoubleBattle() || GetBattlerSide(i) != B_SIDE_PLAYER)) { @@ -1434,17 +1434,17 @@ void SwapHpBarsWithHpText(void) if (noBars == TRUE) // bars to text { - spriteId = gSprites[gHealthBoxesIds[i]].data[5]; + spriteId = gSprites[gHealthboxSpriteIds[i]].data[5]; CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); } else // text to bars { - UpdateStatusIconInHealthbox(gHealthBoxesIds[i]); - UpdateHealthboxAttribute(gHealthBoxesIds[i], &gPlayerParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR); - CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthBoxesIds[i]].oam.tileNum * 32), 32); + UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR); + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * 32), 32); } } else @@ -1453,26 +1453,26 @@ void SwapHpBarsWithHpText(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - sub_80730D4(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]]); + sub_80730D4(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]]); } else { - spriteId = gSprites[gHealthBoxesIds[i]].data[5]; + spriteId = gSprites[gHealthboxSpriteIds[i]].data[5]; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); } } else // text to bars { - UpdateStatusIconInHealthbox(gHealthBoxesIds[i]); - UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR); + UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_NICK); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_NICK); } } - gSprites[gHealthBoxesIds[i]].data[7] ^= 1; + gSprites[gHealthboxSpriteIds[i]].data[7] ^= 1; } } } @@ -1994,7 +1994,7 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus) bank = gSprites[healthboxSpriteId].data[6]; if (GetBattlerSide(bank) == B_SIDE_PLAYER) return; - if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) + if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) return; healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; @@ -2018,7 +2018,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; if (GetBattlerSide(bank) == B_SIDE_PLAYER) { - status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS); + status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_STATUS); if (!IsDoubleBattle()) tileNumAdder = 0x1A; else @@ -2026,7 +2026,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) } else { - status = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_STATUS); + status = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_STATUS); tileNumAdder = 0x11; } @@ -2323,7 +2323,7 @@ static void sub_8074B9C(u8 bank, u8 whichBar) gBattleSpritesDataPtr->battleBars[bank].receivedValue, &gBattleSpritesDataPtr->battleBars[bank].field_10, array, 8); - level = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_LEVEL); + level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_LEVEL); if (level == MAX_MON_LEVEL) { for (i = 0; i < 8; i++) diff --git a/src/battle_main.c b/src/battle_main.c index a0f89f019..df3fc9378 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -87,27 +87,27 @@ extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; extern u8 gDecompressionBuffer[]; extern u16 gUnknown_020243FC; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; -extern void (*gBattlerFuncs[MAX_BATTLERS_COUNT])(void); +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u8 gStringBank; extern u32 gUnknown_02022F88; extern u32 gHitMarker; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u16 gPaydayMoney; extern u16 gBattleWeather; extern u16 gPauseCounterBattle; extern u16 gRandomTurnNumber; extern u8 gActiveBattler; extern u8 gBattlersCount; -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern u8 gLeveledUpInBattle; extern u8 gAbsentBattlerFlags; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gMultiHitCounter; extern u8 gMoveResultFlags; extern s32 gBattleMoveDamage; @@ -2398,7 +2398,7 @@ static void sub_8039838(struct Sprite *sprite) if (sprite->animEnded) { sub_8076918(sprite->tBank); - SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->tBank]); sprite->callback = sub_8039894; StartSpriteAnimIfDifferent(sprite, 0); BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108); @@ -2456,11 +2456,11 @@ void sub_8039934(struct Sprite *sprite) else species = sprite->tSpeciesId; - GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); // Unused return value + GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_PERSONALITY); // Unused return value if (species == SPECIES_UNOWN) { - u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); + u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_PERSONALITY); u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); u16 unownSpecies; @@ -2608,14 +2608,14 @@ void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) bounceHealthBoxSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HealthBoxBounce); if (b == TRUE) { - spriteId2 = gHealthBoxesIds[bank]; + spriteId2 = gHealthboxSpriteIds[bank]; gBattleSpritesDataPtr->healthBoxesData[bank].field_2 = bounceHealthBoxSpriteId; gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 1; gSprites[bounceHealthBoxSpriteId].data[0] = 0x80; } else { - spriteId2 = gBankSpriteIds[bank]; + spriteId2 = gBattlerSpriteIds[bank]; gBattleSpritesDataPtr->healthBoxesData[bank].field_3 = bounceHealthBoxSpriteId; gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 1; gSprites[bounceHealthBoxSpriteId].data[0] = 0xC0; @@ -2710,7 +2710,7 @@ static void BattleMainCB1(void) gBattleMainFunc(); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) - gBattlerFuncs[gActiveBattler](); + gBattlerControllerFuncs[gActiveBattler](); } static void BattleStartClearSetData(void) @@ -2752,8 +2752,8 @@ static void BattleStartClearSetData(void) dataPtr[j] = 0; } - gBattleAttacker = 0; - gBattleDefender = 0; + gBattleMoveAttacker = 0; + gBattleMoveTarget = 0; gBattleWeather = 0; dataPtr = (u8 *)&gWishFutureKnock; @@ -2774,7 +2774,7 @@ static void BattleStartClearSetData(void) gMultiHitCounter = 0; gBattleOutcome = 0; - gBattleExecBuffer = 0; + gBattleControllerExecFlags = 0; gPaydayMoney = 0; gBattleResources->battleScriptsStack->size = 0; gBattleResources->battleCallbackStack->size = 0; @@ -3040,12 +3040,12 @@ static void BattleIntroGetMonsData(void) { case 0: gActiveBattler = gBattleCommunication[1]; - EmitGetMonData(0, 0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, 0, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[MULTIUSE_STATE]++; break; case 1: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleCommunication[1]++; if (gBattleCommunication[1] == gBattlersCount) @@ -3059,11 +3059,11 @@ static void BattleIntroGetMonsData(void) static void BattleIntroPrepareBackgroundSlide(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattlerAtPosition(0); - EmitIntroSlide(0, gBattleTerrain); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroSlide(0, gBattleTerrain); + MarkBattlerForControllerExec(gActiveBattler); gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; gBattleCommunication[0] = 0; gBattleCommunication[1] = 0; @@ -3075,7 +3075,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) u8 *ptr; s32 i; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) @@ -3107,16 +3107,16 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER @@ -3140,9 +3140,9 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) { HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } - EmitLoadMonSprite(0); - MarkBufferBankForExecution(gActiveBattler); - gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); + BtlController_EmitLoadMonSprite(0); + MarkBattlerForControllerExec(gActiveBattler); + gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL); } } @@ -3151,15 +3151,15 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } } if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT) { - EmitDrawTrainerPic(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawTrainerPic(0); + MarkBattlerForControllerExec(gActiveBattler); } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) @@ -3173,7 +3173,7 @@ static void BattleIntroDrawPartySummaryScreens(void) s32 i; struct HpAndStatus hpStatus[6]; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) @@ -3193,8 +3193,8 @@ static void BattleIntroDrawPartySummaryScreens(void) } } gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80); + MarkBattlerForControllerExec(gActiveBattler); for (i = 0; i < PARTY_SIZE; i++) { @@ -3211,8 +3211,8 @@ static void BattleIntroDrawPartySummaryScreens(void) } } gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80); + MarkBattlerForControllerExec(gActiveBattler); gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle; } @@ -3244,7 +3244,7 @@ static void BattleIntroDrawPartySummaryScreens(void) static void BattleIntroPrintTrainerWantsToBattle(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); PrepareStringBattle(STRINGID_INTROMSG, gActiveBattler); @@ -3254,7 +3254,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void) static void BattleIntroPrintWildMonAttacked(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleMainFunc = BattleIntroPrintPlayerSendsOut; PrepareStringBattle(STRINGID_INTROMSG, 0); @@ -3265,7 +3265,7 @@ static void BattleIntroPrintOpponentSendsOut(void) { u32 position; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) @@ -3304,8 +3304,8 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) { if (GetBattlerPosition(gActiveBattler) == position) { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -3329,15 +3329,15 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void) else position = B_POSITION_OPPONENT_LEFT; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerPosition(gActiveBattler) == position) { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS)) { gBattleMainFunc = BattleIntroOpponent2SendsOutMonAnimation; @@ -3383,7 +3383,7 @@ _0803B288:\n\ _0803B298:\n\ movs r5, 0x1\n\ _0803B29A:\n\ - ldr r0, =gBattleExecBuffer\n\ + ldr r0, =gBattleControllerExecFlags\n\ ldr r2, [r0]\n\ cmp r2, 0\n\ bne _0803B2F2\n\ @@ -3403,9 +3403,9 @@ _0803B2B2:\n\ cmp r0, r5\n\ bne _0803B2D8\n\ movs r0, 0\n\ - bl EmitIntroTrainerBallThrow\n\ + bl BtlController_EmitIntroTrainerBallThrow\n\ ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, =gBattleTypeFlags\n\ ldr r0, [r0]\n\ ldr r1, =0x00008040\n\ @@ -3440,7 +3440,7 @@ _0803B2F2:\n\ static void BattleIntroRecordMonsToDex(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { @@ -3460,13 +3460,13 @@ static void BattleIntroRecordMonsToDex(void) void sub_803B3AC(void) // unused { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleMainFunc = BattleIntroPrintPlayerSendsOut; } static void BattleIntroPrintPlayerSendsOut(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u8 position; @@ -3509,8 +3509,8 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) { if (GetBattlerPosition(gActiveBattler) == position) { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -3537,15 +3537,15 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) else position = B_POSITION_PLAYER_LEFT; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerPosition(gActiveBattler) == position) { - EmitIntroTrainerBallThrow(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); if (gBattleTypeFlags & (BATTLE_TYPE_MULTI)) { gBattleMainFunc = BattleIntroPlayer2SendsOutMonAnimation; @@ -3563,14 +3563,14 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) void sub_803B598(void) // unused { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - EmitSwitchInAnim(0, gBattlePartyID[gActiveBattler], FALSE); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], FALSE); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -3588,7 +3588,7 @@ static void TryDoEventsBeforeFirstTurn(void) s32 j; u8 effect = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattleStruct->switchInAbilitiesCounter == 0) @@ -3677,7 +3677,7 @@ static void HandleEndTurn_ContinueBattle(void) { s32 i; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleMainFunc = BattleTurnPassed; for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) @@ -3839,7 +3839,7 @@ void sub_803BDA0(u8 bank) for (i = 0; i < 3; i++) gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60)); - r4 = pokemon_order_func(gBattlePartyID[bank]); + r4 = pokemon_order_func(gBattlerPartyIndexes[bank]); r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + bank)); sub_81B8FB0(r4, r1); @@ -3912,17 +3912,17 @@ static void HandleTurnActionSelectionState(void) } else { - EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[gActiveBattler]++; } } } break; case STATE_WAIT_ACTION_CHOSEN: // try to perform an action - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { - RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); + RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); gActionForBanks[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; switch (gBattleBufferB[gActiveBattler][1]) @@ -3961,8 +3961,8 @@ static void HandleTurnActionSelectionState(void) i); } - EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo); + MarkBattlerForControllerExec(gActiveBattler); } break; case ACTION_USE_ITEM: @@ -3971,7 +3971,7 @@ static void HandleTurnActionSelectionState(void) | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000)) { - RecordedBattle_ClearBankAction(gActiveBattler, 1); + RecordedBattle_ClearBattlerAction(gActiveBattler, 1); gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed; gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; @@ -3980,17 +3980,17 @@ static void HandleTurnActionSelectionState(void) } else { - EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); + MarkBattlerForControllerExec(gActiveBattler); } break; case ACTION_SWITCH: - *(gBattleStruct->field_58 + gActiveBattler) = gBattlePartyID[gActiveBattler]; + *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gBattleTypeFlags & BATTLE_TYPE_ARENA || gStatuses3[gActiveBattler] & STATUS3_ROOTED) { - EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); + BtlController_EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); } else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0)) || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0)) @@ -4001,18 +4001,18 @@ static void HandleTurnActionSelectionState(void) && (gBattleMons[gActiveBattler].type1 == TYPE_STEEL || gBattleMons[gActiveBattler].type2 == TYPE_STEEL))) { - EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]); + BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]); } else { if (gActiveBattler == 2 && gActionForBanks[0] == ACTION_SWITCH) - EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); + BtlController_EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); else if (gActiveBattler == 3 && gActionForBanks[1] == ACTION_SWITCH) - EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); + BtlController_EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); else - EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); + BtlController_EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); } - MarkBufferBankForExecution(gActiveBattler); + MarkBattlerForControllerExec(gActiveBattler); break; case ACTION_SAFARI_ZONE_BALL: if (IsPlayerPartyAndPokemonStorageFull()) @@ -4025,46 +4025,46 @@ static void HandleTurnActionSelectionState(void) } break; case ACTION_POKEBLOCK_CASE: - EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); + MarkBattlerForControllerExec(gActiveBattler); break; case ACTION_CANCEL_PARTNER: gBattleCommunication[gActiveBattler] = 7; gBattleCommunication[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] = 1; - RecordedBattle_ClearBankAction(gActiveBattler, 1); + RecordedBattle_ClearBattlerAction(gActiveBattler, 1); if (gBattleMons[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].status2 & STATUS2_MULTIPLETURNS || gBattleMons[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].status2 & STATUS2_RECHARGE) { - EmitCmd50(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd50(0); + MarkBattlerForControllerExec(gActiveBattler); return; } else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_SWITCH) { - RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 2); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 2); } else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_RUN) { - RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); } else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_USE_MOVE && (gProtectStructs[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].onlyStruggle || gDisableStructs[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].encoredMove)) { - RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); } else if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_USE_MOVE) { gRngValue = gBattlePalaceMoveSelectionRngValue; - RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); } else { - RecordedBattle_ClearBankAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 3); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 3); } - EmitCmd50(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd50(0); + MarkBattlerForControllerExec(gActiveBattler); return; } @@ -4101,7 +4101,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_ACTION_CASE_CHOSEN: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { switch (gActionForBanks[gActiveBattler]) { @@ -4126,11 +4126,11 @@ static void HandleTurnActionSelectionState(void) if ((gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8)) == 0xFFFF) { gBattleCommunication[gActiveBattler] = 1; - RecordedBattle_ClearBankAction(gActiveBattler, 1); + RecordedBattle_ClearBattlerAction(gActiveBattler, 1); } else if (TrySetCantSelectMoveBattleScript()) { - RecordedBattle_ClearBankAction(gActiveBattler, 1); + RecordedBattle_ClearBattlerAction(gActiveBattler, 1); gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; gBattleBufferB[gActiveBattler][1] = 0; @@ -4141,8 +4141,8 @@ static void HandleTurnActionSelectionState(void) { if (!(gBattleTypeFlags & BATTLE_TYPE_PALACE)) { - RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][2]); - RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][3]); + RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][2]); + RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][3]); } *(gBattleStruct->chosenMovePositions + gActiveBattler) = gBattleBufferB[gActiveBattler][2]; gChosenMovesByBanks[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)]; @@ -4167,7 +4167,7 @@ static void HandleTurnActionSelectionState(void) if (gBattleBufferB[gActiveBattler][1] == 6) { gBattleCommunication[gActiveBattler] = 1; - RecordedBattle_ClearBankAction(gActiveBattler, 1); + RecordedBattle_ClearBattlerAction(gActiveBattler, 1); } else { @@ -4209,7 +4209,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_ACTION_CONFIRMED_STANDBY: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { i = (sub_803CDB8() != 0); @@ -4217,18 +4217,18 @@ static void HandleTurnActionSelectionState(void) || (position & BIT_FLANK) || (*(&gBattleStruct->field_91) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) { - EmitLinkStandbyMsg(0, 0, i); + BtlController_EmitLinkStandbyMsg(0, 0, i); } else { - EmitLinkStandbyMsg(0, 1, i); + BtlController_EmitLinkStandbyMsg(0, 1, i); } - MarkBufferBankForExecution(gActiveBattler); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[gActiveBattler]++; } break; case STATE_WAIT_ACTION_CONFIRMED: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++; } @@ -4240,9 +4240,9 @@ static void HandleTurnActionSelectionState(void) } else { - gBattleAttacker = gActiveBattler; + gBattleMoveAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -4250,7 +4250,7 @@ static void HandleTurnActionSelectionState(void) } break; case STATE_WAIT_SET_BEFORE_ACTION: - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleCommunication[gActiveBattler] = 1; } @@ -4266,15 +4266,15 @@ static void HandleTurnActionSelectionState(void) } else { - RecordedBattle_ClearBankAction(gActiveBattler, 1); + RecordedBattle_ClearBattlerAction(gActiveBattler, 1); gBattleCommunication[gActiveBattler] = *(gBattleStruct->stateIdAfterSelScript + gActiveBattler); } } else { - gBattleAttacker = gActiveBattler; + gBattleMoveAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; - if (!(gBattleExecBuffer & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) + if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -4320,7 +4320,7 @@ static bool8 sub_803CDB8(void) static void sub_803CDF8(void) { *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = gBattleBufferB[gActiveBattler][1]; - RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); + RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -4656,11 +4656,11 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { while (gBattleStruct->focusPunchBank < gBattlersCount) { - gActiveBattler = gBattleAttacker = gBattleStruct->focusPunchBank; + gActiveBattler = gBattleMoveAttacker = gBattleStruct->focusPunchBank; gBattleStruct->focusPunchBank++; if (gChosenMovesByBanks[gActiveBattler] == MOVE_FOCUS_PUNCH && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) - && !(gDisableStructs[gBattleAttacker].truantCounter) + && !(gDisableStructs[gBattleMoveAttacker].truantCounter) && !(gProtectStructs[gActiveBattler].onlyStruggle)) { BattleScriptExecute(BattleScript_FocusPunchSetUp); @@ -4716,7 +4716,7 @@ static void HandleEndTurn_BattleWon(void) { gSpecialVar_Result = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome; - gBattleAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleMoveAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } @@ -4789,7 +4789,7 @@ static void HandleEndTurn_BattleLost(void) else { gBattleTextBuff1[0] = gBattleOutcome; - gBattleAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleMoveAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } @@ -4819,7 +4819,7 @@ static void HandleEndTurn_RanFromBattle(void) } else { - switch (gProtectStructs[gBattleAttacker].fleeFlag) + switch (gProtectStructs[gBattleMoveAttacker].fleeFlag) { default: gBattlescriptCurrInstr = BattleScript_GotAwaySafely; @@ -4840,7 +4840,7 @@ static void HandleEndTurn_MonFled(void) { gCurrentActionFuncId = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattlePartyID[gBattleAttacker]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]); gBattlescriptCurrInstr = BattleScript_WildMonFled; gBattleMainFunc = HandleEndTurn_FinishBattle; @@ -4864,13 +4864,13 @@ static void HandleEndTurn_FinishBattle(void) { if (gBattleResults.playerMon1Species == SPECIES_NONE) { - gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name); + gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name); } else { - gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gBattlePartyID[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name); + gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name); } } } @@ -4898,7 +4898,7 @@ static void HandleEndTurn_FinishBattle(void) } else { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } } @@ -5001,14 +5001,14 @@ void RunBattleScriptCommands_PopCallbacksStack(void) } else { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } } void RunBattleScriptCommands(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } @@ -5017,9 +5017,9 @@ static void HandleAction_UseMove(void) u8 side; u8 var = 4; - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; - if (*(&gBattleStruct->field_91) & gBitTable[gBattleAttacker]) + if (*(&gBattleStruct->field_91) & gBitTable[gBattleMoveAttacker]) { gCurrentActionFuncId = ACTION_FINISHED; return; @@ -5031,119 +5031,119 @@ static void HandleAction_UseMove(void) gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleAttacker); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleMoveAttacker); // choose move - if (gProtectStructs[gBattleAttacker].onlyStruggle) + if (gProtectStructs[gBattleMoveAttacker].onlyStruggle) { - gProtectStructs[gBattleAttacker].onlyStruggle = 0; + gProtectStructs[gBattleMoveAttacker].onlyStruggle = 0; gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; - *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } - else if (gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattleAttacker].status2 & STATUS2_RECHARGE) + else if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattleMoveAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gChosenMove = gLockedMoves[gBattleAttacker]; + gCurrentMove = gChosenMove = gLockedMoves[gBattleMoveAttacker]; } // encore forces you to use the same move - else if (gDisableStructs[gBattleAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBattleAttacker].encoredMove == gBattleMons[gBattleAttacker].moves[gDisableStructs[gBattleAttacker].encoredMovePos]) + else if (gDisableStructs[gBattleMoveAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattleMoveAttacker].encoredMove == gBattleMons[gBattleMoveAttacker].moves[gDisableStructs[gBattleMoveAttacker].encoredMovePos]) { - gCurrentMove = gChosenMove = gDisableStructs[gBattleAttacker].encoredMove; - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleAttacker].encoredMovePos; - *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gDisableStructs[gBattleMoveAttacker].encoredMove; + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleMoveAttacker].encoredMovePos; + *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(gCurrentMove, 0); } // check if the encored move wasn't overwritten - else if (gDisableStructs[gBattleAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBattleAttacker].encoredMove != gBattleMons[gBattleAttacker].moves[gDisableStructs[gBattleAttacker].encoredMovePos]) + else if (gDisableStructs[gBattleMoveAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattleMoveAttacker].encoredMove != gBattleMons[gBattleMoveAttacker].moves[gDisableStructs[gBattleMoveAttacker].encoredMovePos]) { - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleAttacker].encoredMovePos; - gCurrentMove = gChosenMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; - gDisableStructs[gBattleAttacker].encoredMove = MOVE_NONE; - gDisableStructs[gBattleAttacker].encoredMovePos = 0; - gDisableStructs[gBattleAttacker].encoreTimer1 = 0; - *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleMoveAttacker].encoredMovePos; + gCurrentMove = gChosenMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; + gDisableStructs[gBattleMoveAttacker].encoredMove = MOVE_NONE; + gDisableStructs[gBattleMoveAttacker].encoredMovePos = 0; + gDisableStructs[gBattleMoveAttacker].encoreTimer1 = 0; + *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(gCurrentMove, 0); } - else if (gBattleMons[gBattleAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBattleAttacker]) + else if (gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBattleMoveAttacker]) { - gCurrentMove = gChosenMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; - *(gBattleStruct->moveTarget + gBattleAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; + *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gChosenMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; } - if (gBattleMons[gBattleAttacker].hp != 0) + if (gBattleMons[gBattleMoveAttacker].hp != 0) { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) gBattleResults.lastUsedMovePlayer = gCurrentMove; else gBattleResults.lastUsedMoveOpponent = gCurrentMove; } // choose target - side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) + && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) { - gBattleDefender = gSideTimers[side].followmeTarget; + gBattleMoveTarget = gSideTimers[side].followmeTarget; } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gSideTimers[side].followmeTimer == 0 && (gBattleMoves[gCurrentMove].power != 0 || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) - && gBattleMons[*(gBattleStruct->moveTarget + gBattleAttacker)].ability != ABILITY_LIGHTNING_ROD + && gBattleMons[*(gBattleStruct->moveTarget + gBattleMoveAttacker)].ability != ABILITY_LIGHTNING_ROD && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { - side = GetBattlerSide(gBattleAttacker); + side = GetBattlerSide(gBattleMoveAttacker); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (side != GetBattlerSide(gActiveBattler) - && *(gBattleStruct->moveTarget + gBattleAttacker) != gActiveBattler + && *(gBattleStruct->moveTarget + gBattleMoveAttacker) != gActiveBattler && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD - && BankGetTurnOrder(gActiveBattler) < var) + && GetBattlerTurnOrderNum(gActiveBattler) < var) { - var = BankGetTurnOrder(gActiveBattler); + var = GetBattlerTurnOrderNum(gActiveBattler); } } if (var == 4) { if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } } else { - gBattleDefender = *(gBattleStruct->moveTarget + gBattleAttacker); + gBattleMoveTarget = *(gBattleStruct->moveTarget + gBattleMoveAttacker); } - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) { - if (GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender)) + if (GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget)) { - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); } else { - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); } } } @@ -5152,65 +5152,65 @@ static void HandleAction_UseMove(void) gActiveBattler = gBattleTurnOrder[var]; RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1; - gBattleDefender = gActiveBattler; + gBattleMoveTarget = gActiveBattler; } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBattlerFlags & gBitTable[gBattleDefender] - && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender)) + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget] + && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget)) { - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); } } else { - gBattleDefender = *(gBattleStruct->moveTarget + gBattleAttacker); - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) + gBattleMoveTarget = *(gBattleStruct->moveTarget + gBattleMoveAttacker); + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) { - if (GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender)) + if (GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget)) { - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); } else { - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleDefender) ^ BIT_FLANK); + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); } } } // choose battlescript if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gProtectStructs[gBattleAttacker].flag_x10) + && gProtectStructs[gBattleMoveAttacker].flag_x10) { - if (gBattleMons[gBattleAttacker].hp == 0) + if (gBattleMons[gBattleMoveAttacker].hp == 0) { gCurrentActionFuncId = 12; return; } - else if (gPalaceSelectionBattleScripts[gBattleAttacker] != NULL) + else if (gPalaceSelectionBattleScripts[gBattleMoveAttacker] != NULL) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattleAttacker]; - gPalaceSelectionBattleScripts[gBattleAttacker] = NULL; + gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattleMoveAttacker]; + gPalaceSelectionBattleScripts[gBattleMoveAttacker] = NULL; } else { @@ -5224,22 +5224,22 @@ static void HandleAction_UseMove(void) } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A56E8(gBattleAttacker); + sub_81A56E8(gBattleMoveAttacker); gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; } static void HandleAction_Switch(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gActionSelectionCursor[gBattleAttacker] = 0; - gMoveSelectionCursor[gBattleAttacker] = 0; + gActionSelectionCursor[gBattleMoveAttacker] = 0; + gMoveSelectionCursor[gBattleMoveAttacker] = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, *(gBattleStruct->field_58 + gBattleAttacker)) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, *(gBattleStruct->field_58 + gBattleMoveAttacker)) - gBattleScripting.battler = gBattleAttacker; + gBattleScripting.battler = gBattleMoveAttacker; gBattlescriptCurrInstr = BattleScript_ActionSwitch; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; @@ -5249,11 +5249,11 @@ static void HandleAction_Switch(void) static void HandleAction_UseItem(void) { - gBattleAttacker = gBattleDefender = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleMoveTarget = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - ClearFuryCutterDestinyBondGrudge(gBattleAttacker); - gLastUsedItem = gBattleBufferB[gBattleAttacker][1] | (gBattleBufferB[gBattleAttacker][2] << 8); + ClearFuryCutterDestinyBondGrudge(gBattleMoveAttacker); + gLastUsedItem = gBattleBufferB[gBattleMoveAttacker][1] | (gBattleBufferB[gBattleMoveAttacker][2] << 8); if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball { @@ -5263,38 +5263,38 @@ static void HandleAction_UseItem(void) { gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; } - else if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + else if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) { gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } else { - gBattleScripting.battler = gBattleAttacker; + gBattleScripting.battler = gBattleMoveAttacker; - switch (*(gBattleStruct->AI_itemType + (gBattleAttacker >> 1))) + switch (*(gBattleStruct->AI_itemType + (gBattleMoveAttacker >> 1))) { case AI_ITEM_FULL_RESTORE: case AI_ITEM_HEAL_HP: break; case AI_ITEM_CURE_CONDITION: gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (*(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) & 1) + if (*(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) & 1) { - if (*(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) & 0x3E) + if (*(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) & 0x3E) gBattleCommunication[MULTISTRING_CHOOSER] = 5; } else { - while (!(*(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) & 1)) + while (!(*(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) & 1)) { - *(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) >>= 1; gBattleCommunication[MULTISTRING_CHOOSER]++; } } break; case AI_ITEM_X_STAT: gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (*(gBattleStruct->AI_itemFlags + (gBattleAttacker >> 1)) & 0x80) + if (*(gBattleStruct->AI_itemFlags + (gBattleMoveAttacker >> 1)) & 0x80) { gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -5303,9 +5303,9 @@ static void HandleAction_UseItem(void) PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) - while (!((*(gBattleStruct->AI_itemFlags + (gBattleAttacker >> 1))) & 1)) + while (!((*(gBattleStruct->AI_itemFlags + (gBattleMoveAttacker >> 1))) & 1)) { - *(gBattleStruct->AI_itemFlags + gBattleAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) >>= 1; gBattleTextBuff1[2]++; } @@ -5321,7 +5321,7 @@ static void HandleAction_UseItem(void) break; } - gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattleAttacker / 2)]; + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattleMoveAttacker / 2)]; } gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; } @@ -5408,7 +5408,7 @@ bool8 TryRunFromBattle(u8 bank) static void HandleAction_Run(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) { @@ -5433,11 +5433,11 @@ static void HandleAction_Run(void) } else { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) { - if (!TryRunFromBattle(gBattleAttacker)) // failed to run away + if (!TryRunFromBattle(gBattleMoveAttacker)) // failed to run away { - ClearFuryCutterDestinyBondGrudge(gBattleAttacker); + ClearFuryCutterDestinyBondGrudge(gBattleMoveAttacker); gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; @@ -5445,7 +5445,7 @@ static void HandleAction_Run(void) } else { - if (gBattleMons[gBattleAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + if (gBattleMons[gBattleMoveAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; @@ -5462,7 +5462,7 @@ static void HandleAction_Run(void) static void HandleAction_WatchesCarefully(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; @@ -5471,7 +5471,7 @@ static void HandleAction_WatchesCarefully(void) static void HandleAction_SafariZoneBallThrow(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gNumSafariBalls--; @@ -5482,11 +5482,11 @@ static void HandleAction_SafariZoneBallThrow(void) static void HandleAction_ThrowPokeblock(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattleAttacker][1] - 1; - gLastUsedItem = gBattleBufferB[gBattleAttacker][2]; + gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattleMoveAttacker][1] - 1; + gLastUsedItem = gBattleBufferB[gBattleMoveAttacker][2]; if (gBattleResults.field_1F < 0xFF) gBattleResults.field_1F++; @@ -5506,7 +5506,7 @@ static void HandleAction_ThrowPokeblock(void) static void HandleAction_GoNear(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -5533,7 +5533,7 @@ static void HandleAction_GoNear(void) static void HandleAction_SafriZoneRun(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; PlaySE(SE_NIGERU); gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; @@ -5541,11 +5541,11 @@ static void HandleAction_SafriZoneRun(void) static void HandleAction_Action9(void) { - gBattleAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattlePartyID[gBattleAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]) gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; @@ -5589,8 +5589,8 @@ static void HandleAction_ActionFinished(void) gMoveResultFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gLastLandedMoves[gBattleAttacker] = 0; - gLastHitByType[gBattleAttacker] = 0; + gLastLandedMoves[gBattleMoveAttacker] = 0; + gLastHitByType[gBattleMoveAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gDynamicBasePower = 0; gBattleScripting.atk49_state = 0; diff --git a/src/battle_message.c b/src/battle_message.c index 3bfa5b48d..07e5b2d60 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -17,8 +17,8 @@ extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gActiveBattler; -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern u8 gStringBank; extern u8 gEffectBank; extern u8 gAbilitiesPerBank[MAX_BATTLERS_COUNT]; @@ -26,7 +26,7 @@ extern u32 gBattleTypeFlags; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u16 gPartnerTrainerId; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; @@ -1836,80 +1836,80 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gStringVar3; break; case B_TXT_PLAYER_MON1_NAME: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]], + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]], + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]], + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18]], + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name - GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name - GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBattleAttacker, - gBattlePartyID[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleAttacker))]) + HANDLE_NICKNAME_STRING_CASE(gBattleMoveAttacker, + gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleMoveAttacker))]) break; case B_TXT_ATK_PARTNER_NAME: // attacker partner name - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) - GetMonData(&gPlayerParty[gBattlePartyID[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleAttacker)) + 2]], MON_DATA_NICKNAME, text); + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleMoveAttacker)) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlePartyID[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleAttacker)) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleMoveAttacker)) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleAttacker, gBattlePartyID[gBattleAttacker]) + HANDLE_NICKNAME_STRING_CASE(gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]) break; case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleDefender, gBattlePartyID[gBattleDefender]) + HANDLE_NICKNAME_STRING_CASE(gBattleMoveTarget, gBattlerPartyIndexes[gBattleMoveTarget]) break; case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) + HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlerPartyIndexes[gEffectBank]) break; case B_TXT_ACTIVE_NAME_WITH_PREFIX: // active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlePartyID[gActiveBattler]) + HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) break; case B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX: // scripting active bank name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, gBattlePartyID[gBattleScripting.battler]) + HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, gBattlerPartyIndexes[gBattleScripting.battler]) break; case B_TXT_CURRENT_MOVE: // current move name if (gStringInfo->currentMove > LAST_MOVE_INDEX) @@ -1970,10 +1970,10 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gAbilityNames[gLastUsedAbility]; break; case B_TXT_ATK_ABILITY: // attacker ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBattleAttacker]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattleMoveAttacker]]; break; case B_TXT_DEF_ABILITY: // target ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBattleDefender]]; + toCpy = gAbilityNames[gAbilitiesPerBank[gBattleMoveTarget]]; break; case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.battler]]; @@ -2039,16 +2039,16 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gLinkPlayers[multiplayerID].name; break; case B_TXT_1F: // link partner name? - toCpy = gLinkPlayers[GetBankMultiplayerId(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + toCpy = gLinkPlayers[GetBattlerMultiplayerId(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; break; case B_TXT_20: // link opponent 1 name? - toCpy = gLinkPlayers[GetBankMultiplayerId(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + toCpy = gLinkPlayers[GetBattlerMultiplayerId(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; break; case B_TXT_21: // link opponent 2 name? - toCpy = gLinkPlayers[GetBankMultiplayerId(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + toCpy = gLinkPlayers[GetBattlerMultiplayerId(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; break; case B_TXT_22: // link scripting active name - toCpy = gLinkPlayers[GetBankMultiplayerId(gBattleScripting.battler)].name; + toCpy = gLinkPlayers[GetBattlerMultiplayerId(gBattleScripting.battler)].name; break; case B_TXT_PLAYER_NAME: // player name if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) @@ -2094,37 +2094,37 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gText_Someones; break; case B_TXT_ATK_PREFIX2: - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; break; case B_TXT_DEF_PREFIX2: - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; break; case B_TXT_ATK_PREFIX1: - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; break; case B_TXT_DEF_PREFIX1: - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; break; case B_TXT_ATK_PREFIX3: - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; break; case B_TXT_DEF_PREFIX3: - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 8f3036028..c443c5449 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -47,9 +47,9 @@ extern s32 gBattleMoveDamage; extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gActiveBattler; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u8 gBattlersCount; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; @@ -62,8 +62,8 @@ extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u16 gPauseCounterBattle; extern u16 gPaydayMoney; extern u16 gRandomTurnNumber; -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; @@ -155,10 +155,10 @@ extern const u8 gText_BattleYesNoChoice[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattleDefender].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) +#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattleMoveTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) -#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical != 0 \ - || gSpecialStatuses[gBattleDefender].moveturnLostHP_special != 0) +#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical != 0 \ + || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special != 0) // this file's functions static bool8 IsTwoTurnsMove(u16 move); @@ -1027,7 +1027,7 @@ static void atk00_attackcanceler(void) gCurrentActionFuncId = ACTION_FINISHED; return; } - if (gBattleMons[gBattleAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + if (gBattleMons[gBattleMoveAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; @@ -1035,10 +1035,10 @@ static void atk00_attackcanceler(void) } if (AtkCanceller_UnableToUseMove()) return; - if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattleDefender, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattleMoveTarget, 0, 0, 0)) return; - if (!gBattleMons[gBattleAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) - && !(gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + && !(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -1047,7 +1047,7 @@ static void atk00_attackcanceler(void) gHitMarker &= ~(HITMARKER_x800000); - if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)) { i = IsMonDisobedient(); // why use the 'i' variable...? switch (i) @@ -1065,10 +1065,10 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBattleDefender].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) + if (gProtectStructs[gBattleMoveTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) { - PressurePPLose(gBattleAttacker, gBattleDefender, MOVE_MAGIC_COAT); - gProtectStructs[gBattleDefender].bounceMove = 0; + PressurePPLose(gBattleMoveAttacker, gBattleMoveTarget, MOVE_MAGIC_COAT); + gProtectStructs[gBattleMoveTarget].bounceMove = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; @@ -1078,7 +1078,7 @@ static void atk00_attackcanceler(void) { if ((gProtectStructs[gBattleTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) { - PressurePPLose(gBattleAttacker, gBattleTurnOrder[i], MOVE_SNATCH); + PressurePPLose(gBattleMoveAttacker, gBattleTurnOrder[i], MOVE_SNATCH); gProtectStructs[gBattleTurnOrder[i]].stealMove = 0; gBattleScripting.battler = gBattleTurnOrder[i]; BattleScriptPushCursor(); @@ -1087,22 +1087,22 @@ static void atk00_attackcanceler(void) } } - if (gSpecialStatuses[gBattleDefender].lightningRodRedirected) + if (gSpecialStatuses[gBattleMoveTarget].lightningRodRedirected) { - gSpecialStatuses[gBattleDefender].lightningRodRedirected = 0; + gSpecialStatuses[gBattleMoveTarget].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } else if (DEFENDER_IS_PROTECTED - && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattleAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleAttacker].type2 == TYPE_GHOST)) - && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)))) + && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattleMoveAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleMoveAttacker].type2 == TYPE_GHOST)) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)))) { - CancelMultiTurnMoves(gBattleAttacker); + CancelMultiTurnMoves(gBattleMoveAttacker); gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBattleDefender] = 0; - gLastHitByType[gBattleDefender] = 0; + gLastLandedMoves[gBattleMoveTarget] = 0; + gLastHitByType[gBattleMoveTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1117,14 +1117,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gLastLandedMoves[gBattleDefender] = 0; - gLastHitByType[gBattleDefender] = 0; + gLastLandedMoves[gBattleMoveTarget] = 0; + gLastHitByType[gBattleMoveTarget] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { TrySetDestinyBondToHappen(); - if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattleDefender, 0, 0, move)) + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattleMoveTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; @@ -1159,13 +1159,13 @@ bool8 JumpIfMoveAffectedByProtect(u16 move) static bool8 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBattleDefender] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattleDefender].bankWithSureHit == gBattleAttacker) + if (gStatuses3[gBattleMoveTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattleMoveTarget].bankWithSureHit == gBattleMoveAttacker) { JumpIfMoveFailed(7, move); return TRUE; } - if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattleDefender] & STATUS3_ON_AIR) + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattleMoveTarget] & STATUS3_ON_AIR) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1174,7 +1174,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattleDefender] & STATUS3_UNDERGROUND) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattleMoveTarget] & STATUS3_UNDERGROUND) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1183,7 +1183,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattleDefender] & STATUS3_UNDERWATER) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattleMoveTarget] & STATUS3_UNDERWATER) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1208,9 +1208,9 @@ static void atk01_accuracycheck(void) if (move == 0xFFFE || move == 0xFFFF) { - if (gStatuses3[gBattleDefender] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattleDefender].bankWithSureHit == gBattleAttacker) + if (gStatuses3[gBattleMoveTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattleMoveTarget].bankWithSureHit == gBattleMoveAttacker) gBattlescriptCurrInstr += 7; - else if (gStatuses3[gBattleDefender] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + else if (gStatuses3[gBattleMoveTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else if (!JumpIfMoveAffectedByProtect(0)) gBattlescriptCurrInstr += 7; @@ -1231,15 +1231,15 @@ static void atk01_accuracycheck(void) if (AccuracyCalcHelper(move)) return; - if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) { - u8 acc = gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ACC]; + u8 acc = gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ACC]; buff = acc; } else { - u8 acc = gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ACC]; - buff = acc + 6 - gBattleMons[gBattleDefender].statStages[STAT_STAGE_EVASION]; + u8 acc = gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ACC]; + buff = acc + 6 - gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_EVASION]; } if (buff < 0) @@ -1255,25 +1255,25 @@ static void atk01_accuracycheck(void) calc = sAccuracyStageRatios[buff].dividend * moveAcc; calc /= sAccuracyStageRatios[buff].divisor; - if (gBattleMons[gBattleAttacker].ability == ABILITY_COMPOUND_EYES) + if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost - if (WEATHER_HAS_EFFECT && gBattleMons[gBattleDefender].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + if (WEATHER_HAS_EFFECT && gBattleMons[gBattleMoveTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) calc = (calc * 80) / 100; // 1.2 sand veil loss - if (gBattleMons[gBattleAttacker].ability == ABILITY_HUSTLE && type < 9) + if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_HUSTLE && type < 9) calc = (calc * 80) / 100; // 1.2 hustle loss - if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleDefender].holdEffect; - quality = gEnigmaBerries[gBattleDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect; + quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); } - gStringBank = gBattleDefender; + gStringBank = gBattleMoveTarget; if (holdEffect == HOLD_EFFECT_EVASION_UP) calc = (calc * (100 - quality)) / 100; @@ -1296,11 +1296,11 @@ static void atk01_accuracycheck(void) static void atk02_attackstring(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(STRINGID_USEDMOVE, gBattleAttacker); + PrepareStringBattle(STRINGID_USEDMOVE, gBattleMoveAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -1311,42 +1311,42 @@ static void atk03_ppreduce(void) { s32 ppToDeduct = 1; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - if (!gSpecialStatuses[gBattleAttacker].flag20) + if (!gSpecialStatuses[gBattleMoveAttacker].flag20) { switch (gBattleMoves[gCurrentMove].target) { case MOVE_TARGET_FOES_AND_ALLY: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattleAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattleMoveAttacker, ABILITY_PRESSURE, 0, 0); break; case MOVE_TARGET_BOTH: case MOVE_TARGET_OPPONENTS_FIELD: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleMoveAttacker, ABILITY_PRESSURE, 0, 0); break; default: - if (gBattleAttacker != gBattleDefender && gBattleMons[gBattleDefender].ability == ABILITY_PRESSURE) + if (gBattleMoveAttacker != gBattleMoveTarget && gBattleMons[gBattleMoveTarget].ability == ABILITY_PRESSURE) ppToDeduct++; break; } } - if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattleAttacker].pp[gCurrMovePos]) + if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos]) { - gProtectStructs[gBattleAttacker].notFirstStrike = 1; + gProtectStructs[gBattleMoveAttacker].notFirstStrike = 1; - if (gBattleMons[gBattleAttacker].pp[gCurrMovePos] > ppToDeduct) - gBattleMons[gBattleAttacker].pp[gCurrMovePos] -= ppToDeduct; + if (gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] > ppToDeduct) + gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] -= ppToDeduct; else - gBattleMons[gBattleAttacker].pp[gCurrMovePos] = 0; + gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = 0; - if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_TRANSFORMED) - && !((gDisableStructs[gBattleAttacker].unk18_b) & gBitTable[gCurrMovePos])) + if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_TRANSFORMED) + && !((gDisableStructs[gBattleMoveAttacker].unk18_b) & gBitTable[gCurrMovePos])) { - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattleAttacker].pp[gCurrMovePos]); - MarkBufferBankForExecution(gBattleAttacker); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos]); + MarkBattlerForControllerExec(gBattleMoveAttacker); } } @@ -1359,29 +1359,29 @@ static void atk04_critcalc(void) u8 holdEffect; u16 item, critChance; - item = gBattleMons[gBattleAttacker].item; + item = gBattleMons[gBattleMoveAttacker].item; if (item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gBattleAttacker].holdEffect; + holdEffect = gEnigmaBerries[gBattleMoveAttacker].holdEffect; else holdEffect = ItemId_GetHoldEffect(item); - gStringBank = gBattleAttacker; + gStringBank = gBattleMoveAttacker; - critChance = 2 * ((gBattleMons[gBattleAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + critChance = 2 * ((gBattleMons[gBattleMoveAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) + (holdEffect == HOLD_EFFECT_SCOPE_LENS) - + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattleAttacker].species == SPECIES_CHANSEY) - + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattleAttacker].species == SPECIES_FARFETCHD); + + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattleMoveAttacker].species == SPECIES_CHANSEY) + + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattleMoveAttacker].species == SPECIES_FARFETCHD); if (critChance > 4) critChance = 4; - if ((gBattleMons[gBattleDefender].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattleDefender].ability != ABILITY_SHELL_ARMOR) - && !(gStatuses3[gBattleAttacker] & STATUS3_CANT_SCORE_A_CRIT) + if ((gBattleMons[gBattleMoveTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattleMoveTarget].ability != ABILITY_SHELL_ARMOR) + && !(gStatuses3[gBattleMoveAttacker] & STATUS3_CANT_SCORE_A_CRIT) && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) && !(Random() % sCriticalHitChance[critChance])) gCritMultiplier = 2; @@ -1393,15 +1393,15 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleDefender], gCurrentMove, + u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveTarget], gCurrentMove, sideStatus, gDynamicBasePower, - gBattleStruct->dynamicMoveType, gBattleAttacker, gBattleDefender); + gBattleStruct->dynamicMoveType, gBattleMoveAttacker, gBattleMoveTarget); gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; - if (gStatuses3[gBattleAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + if (gStatuses3[gBattleMoveAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) gBattleMoveDamage *= 2; - if (gProtectStructs[gBattleAttacker].helpingHand) + if (gProtectStructs[gBattleMoveAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattlescriptCurrInstr++; @@ -1470,20 +1470,20 @@ static void atk06_typecalc(void) GET_MOVE_TYPE(gCurrentMove, moveType); // check stab - if (gBattleMons[gBattleAttacker].type1 == moveType || gBattleMons[gBattleAttacker].type2 == moveType) + if (gBattleMons[gBattleMoveAttacker].type1 == moveType || gBattleMons[gBattleMoveAttacker].type2 == moveType) { gBattleMoveDamage = gBattleMoveDamage * 15; gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[gBattleDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBattleDefender].ability; + gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBattleDefender] = 0; - gLastHitByType[gBattleDefender] = 0; + gLastLandedMoves[gBattleMoveTarget] = 0; + gLastHitByType[gBattleMoveTarget] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } else { @@ -1491,7 +1491,7 @@ static void atk06_typecalc(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1499,30 +1499,30 @@ static void atk06_typecalc(void) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 && - gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 && + gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); } i += 3; } } - if (gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleAttacker, gCurrentMove) == 2 + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleMoveAttacker, gCurrentMove) == 2 && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBattleDefender] = 0; - gLastHitByType[gBattleDefender] = 0; + gLastLandedMoves[gBattleMoveTarget] = 0; + gLastHitByType[gBattleMoveTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBattleAttacker].targetNotAffected = 1; + gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } @@ -1538,11 +1538,11 @@ static void CheckWonderGuardAndLevitate(void) GET_MOVE_TYPE(gCurrentMove, moveType); - if (gBattleMons[gBattleDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { gLastUsedAbility = ABILITY_LEVITATE; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBattleDefender, ABILITY_LEVITATE); + RecordAbilityBattle(gBattleMoveTarget, ABILITY_LEVITATE); return; } @@ -1550,7 +1550,7 @@ static void CheckWonderGuardAndLevitate(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1558,46 +1558,46 @@ static void CheckWonderGuardAndLevitate(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check no effect - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBattleAttacker].targetNotAffected = 1; + gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 && - gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 && + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 && + gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBattleAttacker].targetNotAffected = 1; + gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; } // check super effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) flags |= 1; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 - && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 + && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) flags |= 1; // check not very effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) flags |= 2; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 - && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 + && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) flags |= 2; } i += 3; } - if (gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleAttacker, gCurrentMove) == 2) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleMoveAttacker, gCurrentMove) == 2) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBattleDefender, ABILITY_WONDER_GUARD); + RecordAbilityBattle(gBattleMoveTarget, ABILITY_WONDER_GUARD); } } } @@ -1764,42 +1764,42 @@ static void atk07_adjustnormaldamage(void) ApplyRandomDmgMultiplier(); - if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleDefender].holdEffect, quality = gEnigmaBerries[gBattleDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect, quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); } - gStringBank = gBattleDefender; + gStringBank = gBattleMoveTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBattleDefender, holdEffect); - gSpecialStatuses[gBattleDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleMoveTarget, holdEffect); + gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; } - if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleDefender].endured - && !gSpecialStatuses[gBattleDefender].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleMoveTarget].endured + && !gSpecialStatuses[gBattleMoveTarget].focusBanded) goto END; - if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; - if (gProtectStructs[gBattleDefender].endured) + if (gProtectStructs[gBattleMoveTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleDefender].focusBanded) + else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleDefender].item; + gLastUsedItem = gBattleMons[gBattleMoveTarget].item; } END: @@ -1812,40 +1812,40 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't ApplyRandomDmgMultiplier(); - if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleDefender].holdEffect, quality = gEnigmaBerries[gBattleDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect, quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); } - gStringBank = gBattleDefender; + gStringBank = gBattleMoveTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBattleDefender, holdEffect); - gSpecialStatuses[gBattleDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleMoveTarget, holdEffect); + gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; } - if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (!gProtectStructs[gBattleDefender].endured && !gSpecialStatuses[gBattleDefender].focusBanded) + if (!gProtectStructs[gBattleMoveTarget].endured && !gSpecialStatuses[gBattleMoveTarget].focusBanded) goto END; - if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; - if (gProtectStructs[gBattleDefender].endured) + if (gProtectStructs[gBattleMoveTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleDefender].focusBanded) + else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleDefender].item; + gLastUsedItem = gBattleMons[gBattleMoveTarget].item; } END: @@ -1854,7 +1854,7 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't static void atk09_attackanimation(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE)) @@ -1878,13 +1878,13 @@ static void atk09_attackanimation(void) { u8 multihit; - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; - if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) multihit = gMultiHitCounter; else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) { - if (gBattleMons[gBattleDefender].hp <= gBattleMoveDamage) + if (gBattleMons[gBattleMoveTarget].hp <= gBattleMoveDamage) multihit = 1; else multihit = gMultiHitCounter; @@ -1892,10 +1892,10 @@ static void atk09_attackanimation(void) else multihit = gMultiHitCounter; - EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattleAttacker].friendship, &gDisableStructs[gBattleAttacker], multihit); + BtlController_EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattleMoveAttacker].friendship, &gDisableStructs[gBattleMoveAttacker], multihit); gBattleScripting.animTurn += 1; gBattleScripting.animTargetsHit += 1; - MarkBufferBankForExecution(gBattleAttacker); + MarkBattlerForControllerExec(gBattleMoveAttacker); gBattlescriptCurrInstr++; } else @@ -1908,13 +1908,13 @@ static void atk09_attackanimation(void) static void atk0A_waitanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattlescriptCurrInstr++; } static void atk0B_healthbarupdate(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) @@ -1937,8 +1937,8 @@ static void atk0B_healthbarupdate(void) else healthValue = maxPossibleDmgValue; - EmitHealthBarUpdate(0, healthValue); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, healthValue); + MarkBattlerForControllerExec(gActiveBattler); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) gBattleResults.unk5_0 = 1; @@ -1952,7 +1952,7 @@ static void atk0C_datahpupdate(void) { u32 moveType; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattleStruct->dynamicMoveType == 0) @@ -2010,9 +2010,9 @@ static void atk0C_datahpupdate(void) { gTakenDmg[gActiveBattler] += gBattleMoveDamage; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gTakenDmgBanks[gActiveBattler] = gBattleAttacker; + gTakenDmgBanks[gActiveBattler] = gBattleMoveAttacker; else - gTakenDmgBanks[gActiveBattler] = gBattleDefender; + gTakenDmgBanks[gActiveBattler] = gBattleMoveTarget; } if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage) @@ -2035,13 +2035,13 @@ static void atk0C_datahpupdate(void) gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].physicalBank = gBattleAttacker; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleAttacker; + gProtectStructs[gActiveBattler].physicalBank = gBattleMoveAttacker; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleMoveAttacker; } else { - gProtectStructs[gActiveBattler].physicalBank = gBattleDefender; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleDefender; + gProtectStructs[gActiveBattler].physicalBank = gBattleMoveTarget; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleMoveTarget; } } else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) @@ -2050,19 +2050,19 @@ static void atk0C_datahpupdate(void) gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].specialBank = gBattleAttacker; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleAttacker; + gProtectStructs[gActiveBattler].specialBank = gBattleMoveAttacker; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleMoveAttacker; } else { - gProtectStructs[gActiveBattler].specialBank = gBattleDefender; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleDefender; + gProtectStructs[gActiveBattler].specialBank = gBattleMoveTarget; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleMoveTarget; } } } gHitMarker &= ~(HITMARKER_x100000); - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBattlerForControllerExec(gActiveBattler); } } else @@ -2076,11 +2076,11 @@ static void atk0C_datahpupdate(void) static void atk0D_critmessage(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - PrepareStringBattle(STRINGID_CRITICALHIT, gBattleAttacker); + PrepareStringBattle(STRINGID_CRITICALHIT, gBattleMoveAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2089,21 +2089,21 @@ static void atk0D_critmessage(void) static void atk0E_effectivenesssound(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBattleDefender; + gActiveBattler = gBattleMoveTarget; if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) { case MOVE_RESULT_SUPER_EFFECTIVE: - EmitPlaySE(0, SE_KOUKA_H); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, SE_KOUKA_H); + MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: - EmitPlaySE(0, SE_KOUKA_L); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, SE_KOUKA_L); + MarkBattlerForControllerExec(gActiveBattler); break; case MOVE_RESULT_DOESNT_AFFECT_FOE: case MOVE_RESULT_FAILED: @@ -2115,18 +2115,18 @@ static void atk0E_effectivenesssound(void) default: if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { - EmitPlaySE(0, SE_KOUKA_H); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, SE_KOUKA_H); + MarkBattlerForControllerExec(gActiveBattler); } else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { - EmitPlaySE(0, SE_KOUKA_L); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, SE_KOUKA_L); + MarkBattlerForControllerExec(gActiveBattler); } else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { - EmitPlaySE(0, SE_KOUKA_M); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlaySE(0, SE_KOUKA_M); + MarkBattlerForControllerExec(gActiveBattler); } break; } @@ -2138,7 +2138,7 @@ static void atk0F_resultmessage(void) { u32 stringId = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) @@ -2170,8 +2170,8 @@ static void atk0F_resultmessage(void) stringId = STRINGID_ITDOESNTAFFECT; break; case MOVE_RESULT_FOE_HUNG_ON: - gLastUsedItem = gBattleMons[gBattleDefender].item; - gStringBank = gBattleDefender; + gLastUsedItem = gBattleMons[gBattleMoveTarget].item; + gStringBank = gBattleMoveTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2199,8 +2199,8 @@ static void atk0F_resultmessage(void) } else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { - gLastUsedItem = gBattleMons[gBattleDefender].item; - gStringBank = gBattleDefender; + gLastUsedItem = gBattleMons[gBattleMoveTarget].item; + gStringBank = gBattleMoveTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2218,17 +2218,17 @@ static void atk0F_resultmessage(void) } if (stringId) - PrepareStringBattle(stringId, gBattleAttacker); + PrepareStringBattle(stringId, gBattleMoveAttacker); gBattlescriptCurrInstr++; } static void atk10_printstring(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1); - PrepareStringBattle(var, gBattleAttacker); + PrepareStringBattle(var, gBattleMoveAttacker); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2236,10 +2236,10 @@ static void atk10_printstring(void) static void atk11_printselectionstring(void) { - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; - EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2247,7 +2247,7 @@ static void atk11_printselectionstring(void) static void atk12_waitmessage(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { if (!gBattleCommunication[MSG_DISPLAY]) { @@ -2268,12 +2268,12 @@ static void atk12_waitmessage(void) static void atk13_printfromtable(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - PrepareStringBattle(*ptr, gBattleAttacker); + PrepareStringBattle(*ptr, gBattleMoveAttacker); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2282,21 +2282,21 @@ static void atk13_printfromtable(void) static void atk14_printselectionstringfromtable(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gActiveBattler = gBattleAttacker; - EmitPrintSelectionString(0, *ptr); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitPrintSelectionString(0, *ptr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; } } -u8 BankGetTurnOrder(u8 bank) +u8 GetBattlerTurnOrderNum(u8 bank) { s32 i; for (i = 0; i < gBattlersCount; i++) @@ -2328,15 +2328,15 @@ void SetMoveEffect(bool8 primary, u8 certain) if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_AFFECTS_USER) { - gEffectBank = gBattleAttacker; // bank that effects get applied on + gEffectBank = gBattleMoveAttacker; // bank that effects get applied on gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_AFFECTS_USER); affectsUser = MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.battler = gBattleDefender; // theoretically the attacker + gBattleScripting.battler = gBattleMoveTarget; // theoretically the attacker } else { - gEffectBank = gBattleDefender; - gBattleScripting.battler = gBattleAttacker; + gEffectBank = gBattleMoveTarget; + gBattleScripting.battler = gBattleMoveAttacker; } if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -2584,8 +2584,8 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; gActiveBattler = gEffectBank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); + MarkBattlerForControllerExec(gActiveBattler); if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { @@ -2659,7 +2659,7 @@ void SetMoveEffect(bool8 primary, u8 certain) } else { - if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber) + if (GetBattlerTurnOrderNum(gEffectBank) > gCurrentTurnActionNumber) gBattleMons[gEffectBank].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr++; } @@ -2681,10 +2681,10 @@ void SetMoveEffect(bool8 primary, u8 certain) } break; case MOVE_EFFECT_PAYDAY: - if (GET_BATTLER_SIDE(gBattleAttacker) == B_SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattleMoveAttacker) == B_SIDE_PLAYER) { u16 PayDay = gPaydayMoney; - gPaydayMoney += (gBattleMons[gBattleAttacker].level * 5); + gPaydayMoney += (gBattleMons[gBattleMoveAttacker].level * 5); if (PayDay > gPaydayMoney) gPaydayMoney = 0xFFFF; } @@ -2719,7 +2719,7 @@ void SetMoveEffect(bool8 primary, u8 certain) *(gBattleStruct->wrappedMove + gEffectBank * 2 + 0) = gCurrentMove; *(gBattleStruct->wrappedMove + gEffectBank * 2 + 1) = gCurrentMove >> 8; - *(gBattleStruct->wrappedBy + gEffectBank) = gBattleAttacker; + *(gBattleStruct->wrappedBy + gEffectBank) = gBattleMoveAttacker; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; @@ -2832,7 +2832,7 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr++; break; case MOVE_EFFECT_RAGE: - gBattleMons[gBattleAttacker].status2 |= STATUS2_RAGE; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_RAGE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_STEAL_ITEM: @@ -2843,8 +2843,8 @@ void SetMoveEffect(bool8 primary, u8 certain) break; } - side = GetBattlerSide(gBattleAttacker); - if (GetBattlerSide(gBattleAttacker) == B_SIDE_OPPONENT + side = GetBattlerSide(gBattleMoveAttacker); + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -2860,56 +2860,56 @@ void SetMoveEffect(bool8 primary, u8 certain) | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_SECRET_BASE)) - && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBattleAttacker]])) + && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattleMoveAttacker]])) { gBattlescriptCurrInstr++; } - else if (gBattleMons[gBattleDefender].item - && gBattleMons[gBattleDefender].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBattleMoveTarget].item + && gBattleMons[gBattleMoveTarget].ability == ABILITY_STICKY_HOLD) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; - gLastUsedAbility = gBattleMons[gBattleDefender].ability; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } - else if (gBattleMons[gBattleAttacker].item != 0 - || gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBattleDefender].item) - || gBattleMons[gBattleDefender].item == 0) + else if (gBattleMons[gBattleMoveAttacker].item != 0 + || gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattleMoveTarget].item) + || gBattleMons[gBattleMoveTarget].item == 0) { gBattlescriptCurrInstr++; } else { - u16* changedItem = &gBattleStruct->changedItems[gBattleAttacker]; - gLastUsedItem = *changedItem = gBattleMons[gBattleDefender].item; - gBattleMons[gBattleDefender].item = 0; + u16* changedItem = &gBattleStruct->changedItems[gBattleMoveAttacker]; + gLastUsedItem = *changedItem = gBattleMons[gBattleMoveTarget].item; + gBattleMons[gBattleMoveTarget].item = 0; - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); - MarkBufferBankForExecution(gBattleAttacker); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); + MarkBattlerForControllerExec(gBattleMoveAttacker); - gActiveBattler = gBattleDefender; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleDefender].item); - MarkBufferBankForExecution(gBattleDefender); + gActiveBattler = gBattleMoveTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleMoveTarget].item); + MarkBattlerForControllerExec(gBattleMoveTarget); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 1) = 0; } } break; case MOVE_EFFECT_PREVENT_ESCAPE: - gBattleMons[gBattleDefender].status2 |= STATUS2_ESCAPE_PREVENTION; - gDisableStructs[gBattleDefender].bankPreventingEscape = gBattleAttacker; + gBattleMons[gBattleMoveTarget].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[gBattleMoveTarget].bankPreventingEscape = gBattleMoveAttacker; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_NIGHTMARE: - gBattleMons[gBattleDefender].status2 |= STATUS2_NIGHTMARE; + gBattleMons[gBattleMoveTarget].status2 |= STATUS2_NIGHTMARE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_ALL_STATS_UP: @@ -2921,17 +2921,17 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr = BattleScript_RapidSpinAway; break; case MOVE_EFFECT_REMOVE_PARALYSIS: // Smelling salts - if (!(gBattleMons[gBattleDefender].status1 & STATUS1_PARALYSIS)) + if (!(gBattleMons[gBattleMoveTarget].status1 & STATUS1_PARALYSIS)) { gBattlescriptCurrInstr++; } else { - gBattleMons[gBattleDefender].status1 &= ~(STATUS1_PARALYSIS); + gBattleMons[gBattleMoveTarget].status1 &= ~(STATUS1_PARALYSIS); - gActiveBattler = gBattleDefender; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; @@ -2982,7 +2982,7 @@ void SetMoveEffect(bool8 primary, u8 certain) gLastUsedItem = gBattleMons[gEffectBank].item; gBattleMons[gEffectBank].item = 0; - gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]]; + gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBank]]; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_KnockedOff; @@ -3010,7 +3010,7 @@ static void atk15_seteffectwithchance(void) { u32 percentChance; - if (gBattleMons[gBattleAttacker].ability == ABILITY_SERENE_GRACE) + if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_SERENE_GRACE) percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2; else percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; @@ -3089,14 +3089,14 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) { - gActiveBattler = gBattleAttacker; - bank = gBattleDefender; + gActiveBattler = gBattleMoveAttacker; + bank = gBattleMoveTarget; BS_ptr = BattleScript_FaintAttacker; } else { - gActiveBattler = gBattleDefender; - bank = gBattleAttacker; + gActiveBattler = gBattleMoveTarget; + bank = gBattleMoveAttacker; BS_ptr = BattleScript_FaintTarget; } if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) @@ -3116,31 +3116,31 @@ static void atk19_tryfaintmon(void) { if (gBattleResults.opponentFaintCounter < 0xFF) gBattleResults.opponentFaintCounter++; - gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBattler]], MON_DATA_SPECIES, NULL); + gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL); } - if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattleAttacker].hp != 0) + if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattleMoveAttacker].hp != 0) { gHitMarker &= ~(HITMARKER_DESTINYBOND); BattleScriptPush(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } - if ((gStatuses3[gBattleDefender] & STATUS3_GRUDGE) + if ((gStatuses3[gBattleMoveTarget] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender) - && gBattleMons[gBattleAttacker].hp != 0 + && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget) + && gBattleMons[gBattleMoveAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { - u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBattleAttacker); + u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBattleMoveAttacker); - gBattleMons[gBattleAttacker].pp[moveIndex] = 0; + gBattleMons[gBattleMoveAttacker].pp[moveIndex] = 0; BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp; - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); + MarkBattlerForControllerExec(gActiveBattler); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleAttacker].moves[moveIndex]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveAttacker].moves[moveIndex]) } } else @@ -3152,26 +3152,26 @@ static void atk19_tryfaintmon(void) static void atk1A_dofaintanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitFaintAnimation(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitFaintAnimation(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } } static void atk1B_cleareffectsonfaint(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBattler].hp == 0) { gBattleMons[gActiveBattler].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } FaintClearSetData(); // Effects like attractions, trapping, etc. @@ -3211,7 +3211,7 @@ static void atk1E_jumpifability(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER_SIDE) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattleAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattleMoveAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -3224,7 +3224,7 @@ static void atk1E_jumpifability(void) } else if (gBattlescriptCurrInstr[1] == BS_GET_NOT_ATTACKER_SIDE) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattleAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattleMoveAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; @@ -3257,9 +3257,9 @@ static void atk1F_jumpifsideaffecting(void) const u8* jumpPtr; if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) - side = GET_BATTLER_SIDE(gBattleAttacker); + side = GET_BATTLER_SIDE(gBattleMoveAttacker); else - side = GET_BATTLER_SIDE(gBattleDefender); + side = GET_BATTLER_SIDE(gBattleMoveTarget); flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2); jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4); @@ -3377,7 +3377,7 @@ static void atk23_getexp(void) else { gBattleScripting.atk23_state++; - gBattleStruct->field_DF |= gBitTable[gBattlePartyID[gBank1]]; + gBattleStruct->field_DF |= gBitTable[gBattlerPartyIndexes[gBank1]]; } break; case 1: // calculate experience points to redistribute @@ -3429,7 +3429,7 @@ static void atk23_getexp(void) } // fall through case 2: // set exp value to the poke in expgetter_id and print message - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { item = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HELD_ITEM); @@ -3495,7 +3495,7 @@ static void atk23_getexp(void) // get exp getter bank if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (!(gBattlePartyID[2] != gBattleStruct->expGetterId) && !(gAbsentBattlerFlags & gBitTable[2])) + if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterId) && !(gAbsentBattlerFlags & gBitTable[2])) gBattleStruct->expGetterBank = 2; else { @@ -3524,7 +3524,7 @@ static void atk23_getexp(void) } break; case 3: // Set stats and give exp - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleBufferB[gBattleStruct->expGetterBank][0] = 0; if (GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL) != MAX_MON_LEVEL) @@ -3537,20 +3537,20 @@ static void atk23_getexp(void) BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); gActiveBattler = gBattleStruct->expGetterBank; - EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); } gBattleScripting.atk23_state++; } break; case 4: // lvl up if necessary - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = gBattleStruct->expGetterBank; if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP) { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterId) - HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBattler]], gActiveBattler); + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterId) + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterId) @@ -3563,7 +3563,7 @@ static void atk23_getexp(void) AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterId], 0); // update battle mon structure after level up - if (gBattlePartyID[0] == gBattleStruct->expGetterId && gBattleMons[0].hp) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId && gBattleMons[0].hp) { gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL); gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP); @@ -3578,7 +3578,7 @@ static void atk23_getexp(void) gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); } // What is else if? - if (gBattlePartyID[2] == gBattleStruct->expGetterId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL); gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP); @@ -3613,7 +3613,7 @@ static void atk23_getexp(void) } break; case 6: // increment instruction - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { // not sure why gf clears the item and ability here gBattleMons[gBank1].item = 0; @@ -3630,7 +3630,7 @@ static void atk24(void) u16 HP_count = 0; s32 i; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId == STEVEN_PARTNER_ID) @@ -3716,7 +3716,7 @@ static void atk24(void) mov r7, r8\n\ push {r7}\n\ movs r6, 0\n\ - ldr r0, =gBattleExecBuffer\n\ + ldr r0, =gBattleControllerExecFlags\n\ ldr r0, [r0]\n\ cmp r0, 0\n\ beq _0804ACE2\n\ @@ -4303,7 +4303,7 @@ static void atk38_bicword(void) static void atk39_pause(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 1); if (++gPauseCounterBattle >= value) @@ -4316,19 +4316,19 @@ static void atk39_pause(void) static void atk3A_waitstate(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattlescriptCurrInstr++; } static void atk3B_healthbar_update(void) { if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gActiveBattler = gBattleDefender; + gActiveBattler = gBattleMoveTarget; else - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; - EmitHealthBarUpdate(0, gBattleMoveDamage); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -4340,7 +4340,7 @@ static void atk3C_return(void) static void atk3D_end(void) { if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A5718(gBattleAttacker); + sub_81A5718(gBattleMoveAttacker); gMoveResultFlags = 0; gActiveBattler = 0; @@ -4387,7 +4387,7 @@ static void atk43_jumpifabilitypresent(void) static void atk44_endselectionscript(void) { - *(gBattleAttacker + gBattleStruct->selectionScriptFinished) = TRUE; + *(gBattleMoveAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } static void atk45_playanimation(void) @@ -4401,8 +4401,8 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE) { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -4415,8 +4415,8 @@ static void atk45_playanimation(void) || gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES) { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) @@ -4425,8 +4425,8 @@ static void atk45_playanimation(void) } else { - EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 7; } } @@ -4444,8 +4444,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SNATCH_MOVE || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE) { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) @@ -4457,8 +4457,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES || *animationIdPtr == B_ANIM_HAIL_CONTINUES) { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) @@ -4467,8 +4467,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po } else { - EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 10; } } @@ -4575,8 +4575,8 @@ static void atk48_playstatchangeanimation(void) } else if (changeableStats != 0 && gBattleScripting.field_1B == 0) { - EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId); + MarkBattlerForControllerExec(gActiveBattler); if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStats > 1) gBattleScripting.field_1B = 1; gBattlescriptCurrInstr += 4; @@ -4803,10 +4803,10 @@ _0804BB6C:\n\ movs r1, 0x1\n\ mov r2, r8\n\ str r3, [sp]\n\ - bl EmitBattleAnimation\n\ + bl BtlController_EmitBattleAnimation\n\ ldr r0, =gActiveBattler\n\ ldrb r0, [r0]\n\ - bl MarkBufferBankForExecution\n\ + bl MarkBattlerForControllerExec\n\ ldr r0, =gBattlescriptCurrInstr\n\ ldr r0, [r0]\n\ ldrb r1, [r0, 0x3]\n\ @@ -4864,12 +4864,12 @@ static void atk49_moveend(void) arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; - if (gBattleMons[gBattleAttacker].item == ITEM_ENIGMA_BERRY) - holdEffectAtk = gEnigmaBerries[gBattleAttacker].holdEffect; + if (gBattleMons[gBattleMoveAttacker].item == ITEM_ENIGMA_BERRY) + holdEffectAtk = gEnigmaBerries[gBattleMoveAttacker].holdEffect; else - holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattleAttacker].item); + holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattleMoveAttacker].item); - choicedMoveAtk = &gBattleStruct->choicedMove[gBattleAttacker]; + choicedMoveAtk = &gBattleStruct->choicedMove[gBattleMoveAttacker]; GET_MOVE_TYPE(gCurrentMove, moveType); @@ -4878,13 +4878,13 @@ static void atk49_moveend(void) switch (gBattleScripting.atk49_state) { case 0: // rage check - if (gBattleMons[gBattleDefender].status2 & STATUS2_RAGE - && gBattleMons[gBattleDefender].hp != 0 && gBattleAttacker != gBattleDefender - && GetBattlerSide(gBattleAttacker) != GetBattlerSide(gBattleDefender) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_RAGE + && gBattleMons[gBattleMoveTarget].hp != 0 && gBattleMoveAttacker != gBattleMoveTarget + && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBattleDefender].statStages[STAT_STAGE_ATK] <= 0xB) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_ATK] <= 0xB) { - gBattleMons[gBattleDefender].statStages[STAT_STAGE_ATK]++; + gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_ATK]++; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = TRUE; @@ -4892,15 +4892,15 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 1: // defrosting check - if (gBattleMons[gBattleDefender].status1 & STATUS1_FREEZE - && gBattleMons[gBattleDefender].hp != 0 && gBattleAttacker != gBattleDefender - && gSpecialStatuses[gBattleDefender].moveturnLostHP_special + if (gBattleMons[gBattleMoveTarget].status1 & STATUS1_FREEZE + && gBattleMons[gBattleMoveTarget].hp != 0 && gBattleMoveAttacker != gBattleMoveTarget + && gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE) { - gBattleMons[gBattleDefender].status1 &= ~(STATUS1_FREEZE); - gActiveBattler = gBattleDefender; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattleDefender].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattleMoveTarget].status1 &= ~(STATUS1_FREEZE); + gActiveBattler = gBattleMoveTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattleMoveTarget].status1); + MarkBattlerForControllerExec(gActiveBattler); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; effect = TRUE; @@ -4908,12 +4908,12 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 2: // target synchronize - if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattleDefender, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattleMoveTarget, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; case 3: // contact abilities - if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattleDefender, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattleMoveTarget, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4924,7 +4924,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 5: // attacker synchronize - if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattleAttacker, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattleMoveAttacker, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4942,7 +4942,7 @@ static void atk49_moveend(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleAttacker].moves[i] == *choicedMoveAtk) + if (gBattleMons[gBattleMoveAttacker].moves[i] == *choicedMoveAtk) break; } if (i == 4) @@ -4975,12 +4975,12 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 8: // make attacker sprite invisible - if (gStatuses3[gBattleAttacker] & (STATUS3_SEMI_INVULNERABLE) + if (gStatuses3[gBattleMoveAttacker] & (STATUS3_SEMI_INVULNERABLE) && gHitMarker & HITMARKER_NO_ANIMATIONS) { - gActiveBattler = gBattleAttacker; - EmitSpriteInvisibility(0, TRUE); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSpriteInvisibility(0, TRUE); + MarkBattlerForControllerExec(gActiveBattler); gBattleScripting.atk49_state++; return; } @@ -4988,27 +4988,27 @@ static void atk49_moveend(void) break; case 9: // make attacker sprite visible if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT - || !(gStatuses3[gBattleAttacker] & (STATUS3_SEMI_INVULNERABLE)) - || WasUnableToUseMove(gBattleAttacker)) - { - gActiveBattler = gBattleAttacker; - EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBattler); - gStatuses3[gBattleAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); - gSpecialStatuses[gBattleAttacker].restoredBankSprite = 1; + || !(gStatuses3[gBattleMoveAttacker] & (STATUS3_SEMI_INVULNERABLE)) + || WasUnableToUseMove(gBattleMoveAttacker)) + { + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); + gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); + gSpecialStatuses[gBattleMoveAttacker].restoredBankSprite = 1; gBattleScripting.atk49_state++; return; } gBattleScripting.atk49_state++; break; case 10: // make target sprite visible - if (!gSpecialStatuses[gBattleDefender].restoredBankSprite && gBattleDefender < gBattlersCount - && !(gStatuses3[gBattleDefender] & STATUS3_SEMI_INVULNERABLE)) + if (!gSpecialStatuses[gBattleMoveTarget].restoredBankSprite && gBattleMoveTarget < gBattlersCount + && !(gStatuses3[gBattleMoveTarget] & STATUS3_SEMI_INVULNERABLE)) { - gActiveBattler = gBattleDefender; - EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBattler); - gStatuses3[gBattleDefender] &= ~(STATUS3_SEMI_INVULNERABLE); + gActiveBattler = gBattleMoveTarget; + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); + gStatuses3[gBattleMoveTarget] &= ~(STATUS3_SEMI_INVULNERABLE); gBattleScripting.atk49_state++; return; } @@ -5025,82 +5025,82 @@ static void atk49_moveend(void) case 14: // This case looks interesting, although I am not certain what it does. Probably fine tunes edge cases. if (gHitMarker & HITMARKER_PURSUIT_TRAP) { - gActiveBattler = gBattleAttacker; - gBattleAttacker = gBattleDefender; - gBattleDefender = gActiveBattler; + gActiveBattler = gBattleMoveAttacker; + gBattleMoveAttacker = gBattleMoveTarget; + gBattleMoveTarget = gActiveBattler; gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gLastPrintedMoves[gBattleAttacker] = gChosenMove; + gLastPrintedMoves[gBattleMoveAttacker] = gChosenMove; } - if (!(gAbsentBattlerFlags & gBitTable[gBattleAttacker]) - && !(gBattleStruct->field_91 & gBitTable[gBattleAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]) + && !(gBattleStruct->field_91 & gBitTable[gBattleMoveAttacker]) && gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS) { if (gHitMarker & HITMARKER_OBEYS) { - gLastMoves[gBattleAttacker] = gChosenMove; - gLastResultingMoves[gBattleAttacker] = gCurrentMove; + gLastMoves[gBattleMoveAttacker] = gChosenMove; + gLastResultingMoves[gBattleMoveAttacker] = gCurrentMove; } else { - gLastMoves[gBattleAttacker] = 0xFFFF; - gLastResultingMoves[gBattleAttacker] = 0xFFFF; + gLastMoves[gBattleMoveAttacker] = 0xFFFF; + gLastResultingMoves[gBattleMoveAttacker] = 0xFFFF; } - if (!(gHitMarker & HITMARKER_FAINTED(gBattleDefender))) - gLastHitBy[gBattleDefender] = gBattleAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gBattleMoveTarget))) + gLastHitBy[gBattleMoveTarget] = gBattleMoveAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (gChosenMove == 0xFFFF) { - gLastLandedMoves[gBattleDefender] = gChosenMove; + gLastLandedMoves[gBattleMoveTarget] = gChosenMove; } else { - gLastLandedMoves[gBattleDefender] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattleDefender]); + gLastLandedMoves[gBattleMoveTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattleMoveTarget]); } } else { - gLastLandedMoves[gBattleDefender] = 0xFFFF; + gLastLandedMoves[gBattleMoveTarget] = 0xFFFF; } } gBattleScripting.atk49_state++; break; case 15: // mirror move - if (!(gAbsentBattlerFlags & gBitTable[gBattleAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattleAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattleMoveAttacker]) && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS - && gBattleAttacker != gBattleDefender && !(gHitMarker & HITMARKER_FAINTED(gBattleDefender)) + && gBattleMoveAttacker != gBattleMoveTarget && !(gHitMarker & HITMARKER_FAINTED(gBattleMoveTarget)) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBattleDefender * 2 + 0) = gChosenMove; - *(gBattleStruct->mirrorMoves + gBattleDefender * 2 + 1) = gChosenMove >> 8; + *(gBattleStruct->mirrorMoves + gBattleMoveTarget * 2 + 0) = gChosenMove; + *(gBattleStruct->mirrorMoves + gBattleMoveTarget * 2 + 1) = gChosenMove >> 8; - target = gBattleDefender; - attacker = gBattleAttacker; + target = gBattleMoveTarget; + attacker = gBattleMoveAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove; - target = gBattleDefender; - attacker = gBattleAttacker; + target = gBattleMoveTarget; + attacker = gBattleMoveAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8; } gBattleScripting.atk49_state++; break; case 16: // if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !gProtectStructs[gBattleAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH + && !gProtectStructs[gBattleMoveAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 bank = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gBattleDefender))); + u8 bank = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gBattleMoveTarget))); if (gBattleMons[bank].hp != 0) { - gBattleDefender = bank; + gBattleMoveTarget = bank; gHitMarker |= HITMARKER_NO_ATTACKSTRING; gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); @@ -5136,13 +5136,13 @@ static void atk4A_typecalc2(void) s32 i = 0; u8 moveType = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBattleDefender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBattleDefender].ability; + gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBattleDefender] = 0; + gLastLandedMoves[gBattleMoveTarget] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } else { @@ -5150,7 +5150,7 @@ static void atk4A_typecalc2(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBattleDefender].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) { break; } @@ -5164,7 +5164,7 @@ static void atk4A_typecalc2(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1) { if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { @@ -5181,22 +5181,22 @@ static void atk4A_typecalc2(void) } } // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2) { - if (gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 + if (gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 - && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 + && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) { flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleDefender].type2 - && gBattleMons[gBattleDefender].type1 != gBattleMons[gBattleDefender].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 + && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) { flags |= MOVE_RESULT_SUPER_EFFECTIVE; @@ -5207,46 +5207,46 @@ static void atk4A_typecalc2(void) } } - if (gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) - && AttacksThisTurn(gBattleAttacker, gCurrentMove) == 2 + && AttacksThisTurn(gBattleMoveAttacker, gCurrentMove) == 2 && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBattleDefender] = 0; + gLastLandedMoves[gBattleMoveTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBattleAttacker].targetNotAffected = 1; + gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } static void atk4B_returnatktoball(void) { - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { - EmitReturnMonToBall(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 0); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr++; } static void atk4C_getswitchedmondata(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - gBattlePartyID[gActiveBattler] = *(gBattleStruct->monToSwitchIntoId + gActiveBattler); + gBattlerPartyIndexes[gActiveBattler] = *(gBattleStruct->monToSwitchIntoId + gActiveBattler); - EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlePartyID[gActiveBattler]]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -5257,7 +5257,7 @@ static void atk4D_switchindataupdate(void) s32 i; u8 *monData; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -5275,7 +5275,7 @@ static void atk4D_switchindataupdate(void) // check knocked off item i = GetBattlerSide(gActiveBattler); - if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBattler]]) + if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlerPartyIndexes[gActiveBattler]]) { gBattleMons[gActiveBattler].item = 0; } @@ -5299,14 +5299,14 @@ static void atk4D_switchindataupdate(void) gBattleScripting.battler = gActiveBattler; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlePartyID[gActiveBattler]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]); gBattlescriptCurrInstr += 2; } static void atk4E_switchinanim(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -5321,8 +5321,8 @@ static void atk4E_switchinanim(void) gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); - EmitSwitchInAnim(0, gBattlePartyID[gActiveBattler], gBattlescriptCurrInstr[2]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], gBattlescriptCurrInstr[2]); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; @@ -5364,7 +5364,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBattler] != val) + && gBattlerPartyIndexes[gActiveBattler] != val) break; } @@ -5382,7 +5382,7 @@ static void atk4F_jumpifcantswitch(void) party = gPlayerParty; val = 0; - if (sub_806D82C(GetBankMultiplayerId(gActiveBattler)) == TRUE) + if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE) val = 3; } else @@ -5404,7 +5404,7 @@ static void atk4F_jumpifcantswitch(void) val = 0; - if (sub_806D82C(GetBankMultiplayerId(gActiveBattler)) == TRUE) + if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE) val = 3; } @@ -5413,7 +5413,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBattler] != val) + && gBattlerPartyIndexes[gActiveBattler] != val) break; } @@ -5435,7 +5435,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) && GetMonData(&party[val], MON_DATA_HP) != 0 - && gBattlePartyID[gActiveBattler] != val) + && gBattlerPartyIndexes[gActiveBattler] != val) break; } @@ -5473,7 +5473,7 @@ static void atk4F_jumpifcantswitch(void) if (GetMonData(&party[val], MON_DATA_HP) != 0 && GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[val], MON_DATA_IS_EGG) - && val != gBattlePartyID[r7] && val != gBattlePartyID[compareVar]) + && val != gBattlerPartyIndexes[r7] && val != gBattlerPartyIndexes[compareVar]) break; } @@ -5486,12 +5486,12 @@ static void atk4F_jumpifcantswitch(void) static void sub_804CF10(u8 arg0) { - *(gBattleStruct->field_58 + gActiveBattler) = gBattlePartyID[gActiveBattler]; + *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]); - EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBattler]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBattler]); + MarkBattlerForControllerExec(gActiveBattler); } static void atk50_openpartyscreen(void) @@ -5517,8 +5517,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5528,8 +5528,8 @@ static void atk50_openpartyscreen(void) } else { - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -5546,8 +5546,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitCmd42(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd42(0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5556,8 +5556,8 @@ static void atk50_openpartyscreen(void) } else { - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); flags |= 1; } } @@ -5568,8 +5568,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitCmd42(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd42(0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5578,8 +5578,8 @@ static void atk50_openpartyscreen(void) } else if (!(flags & 1)) { - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } if (gBitTable[1] & hitmarkerFaintBits) @@ -5589,8 +5589,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitCmd42(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd42(0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5599,8 +5599,8 @@ static void atk50_openpartyscreen(void) } else { - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); flags |= 2; } } @@ -5611,8 +5611,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitCmd42(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd42(0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5621,8 +5621,8 @@ static void atk50_openpartyscreen(void) } else if (!(flags & 2)) { - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -5637,8 +5637,8 @@ static void atk50_openpartyscreen(void) else gActiveBattler = 0; - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -5653,8 +5653,8 @@ static void atk50_openpartyscreen(void) else gActiveBattler = 1; - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -5674,8 +5674,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitCmd42(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd42(0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5690,8 +5690,8 @@ static void atk50_openpartyscreen(void) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); - EmitCmd42(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd42(0); + MarkBattlerForControllerExec(gActiveBattler); } else if (!gSpecialStatuses[gActiveBattler].flag40) { @@ -5748,12 +5748,12 @@ static void atk50_openpartyscreen(void) else { gActiveBattler = bank; - *(gBattleStruct->field_58 + gActiveBattler) = gBattlePartyID[gActiveBattler]; + *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]); - EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), 0, gBattleStruct->field_60[gActiveBattler]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), 0, gBattleStruct->field_60[gActiveBattler]); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 6; @@ -5766,8 +5766,8 @@ static void atk50_openpartyscreen(void) { if (gActiveBattler != bank) { - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -5777,8 +5777,8 @@ static void atk50_openpartyscreen(void) if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gActiveBattler ^= BIT_FLANK; - EmitLinkStandbyMsg(0, 2, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitLinkStandbyMsg(0, 2, 0); + MarkBattlerForControllerExec(gActiveBattler); } } } @@ -5787,7 +5787,7 @@ static void atk50_openpartyscreen(void) static void atk51_switchhandleorder(void) { s32 i; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -5802,7 +5802,7 @@ static void atk51_switchhandleorder(void) *(gBattleStruct->monToSwitchIntoId + i) = gBattleBufferB[i][1]; if (!(gBattleStruct->field_93 & gBitTable[i])) { - RecordedBattle_SetBankAction(i, gBattleBufferB[i][1]); + RecordedBattle_SetBattlerAction(i, gBattleBufferB[i][1]); gBattleStruct->field_93 |= gBitTable[i]; } } @@ -5815,7 +5815,7 @@ static void atk51_switchhandleorder(void) case 2: if (!(gBattleStruct->field_93 & gBitTable[gActiveBattler])) { - RecordedBattle_SetBankAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); + RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); gBattleStruct->field_93 |= gBitTable[gActiveBattler]; } // fall through @@ -5842,7 +5842,7 @@ static void atk51_switchhandleorder(void) sub_803BDA0(gActiveBattler); } - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleAttacker].species) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveAttacker].species) PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1]) break; @@ -5935,26 +5935,26 @@ static void atk52_switchineffects(void) static void atk53_trainerslidein(void) { gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]); - EmitTrainerSlide(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitTrainerSlide(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk54_playse(void) { - gActiveBattler = gBattleAttacker; - EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } static void atk55_fanfare(void) { - gActiveBattler = gBattleAttacker; - EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 3; } @@ -5962,8 +5962,8 @@ static void atk55_fanfare(void) static void atk56_playfaintcry(void) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitFaintingCry(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitFaintingCry(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -5971,8 +5971,8 @@ static void atk56_playfaintcry(void) static void atk57(void) { gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - EmitCmd55(0, gBattleOutcome); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd55(0, gBattleOutcome); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 1; } @@ -5980,8 +5980,8 @@ static void atk57(void) static void atk58_returntoball(void) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitReturnMonToBall(0, 1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6007,7 +6007,7 @@ static void atk59_handlelearnnewmove(void) { gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - if (gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterId + if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); @@ -6015,7 +6015,7 @@ static void atk59_handlelearnnewmove(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - if (gBattlePartyID[gActiveBattler] == gBattleStruct->expGetterId + if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret); @@ -6113,7 +6113,7 @@ static void atk5A_yesnoboxlearnmove(void) RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterId], movePosition); SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterId], gMoveToLearn, movePosition); - if (gBattlePartyID[0] == gBattleStruct->expGetterId + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[0].unk18_b & gBitTable[movePosition])) { @@ -6121,7 +6121,7 @@ static void atk5A_yesnoboxlearnmove(void) SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, movePosition); } if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattlePartyID[2] == gBattleStruct->expGetterId + && gBattlerPartyIndexes[2] == gBattleStruct->expGetterId && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[2].unk18_b & gBitTable[movePosition])) { @@ -6137,7 +6137,7 @@ static void atk5A_yesnoboxlearnmove(void) gBattlescriptCurrInstr += 5; break; case 6: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gBattleScripting.learnMoveState = 2; } @@ -6202,8 +6202,8 @@ static void atk5C_hitanimation(void) } else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0) { - EmitHitAnimation(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHitAnimation(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } else @@ -6289,12 +6289,12 @@ static void atk5E(void) switch (gBattleCommunication[0]) { case 0: - EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[0]++; break; case 1: - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { s32 i; struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBattler][4]; @@ -6311,9 +6311,9 @@ static void atk5E(void) static void atk5F(void) { - gActiveBattler = gBattleAttacker; - gBattleAttacker = gBattleDefender; - gBattleDefender = gActiveBattler; + gActiveBattler = gBattleMoveAttacker; + gBattleMoveAttacker = gBattleMoveTarget; + gBattleMoveTarget = gActiveBattler; if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -6325,7 +6325,7 @@ static void atk5F(void) static void atk60_incrementgamestat(void) { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) IncrementGameStat(gBattlescriptCurrInstr[1]); gBattlescriptCurrInstr += 2; @@ -6337,7 +6337,7 @@ static void atk61_drawpartystatussummary(void) struct Pokemon* party; struct HpAndStatus hpStatuses[6]; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -6362,8 +6362,8 @@ static void atk61_drawpartystatussummary(void) } } - EmitDrawPartyStatusSummary(0, hpStatuses, 1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitDrawPartyStatusSummary(0, hpStatuses, 1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6371,8 +6371,8 @@ static void atk61_drawpartystatussummary(void) static void atk62(void) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitCmd49(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitCmd49(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6389,15 +6389,15 @@ static void atk63_jumptorandomattack(void) static void atk64_statusanimation(void) { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 2; } @@ -6407,7 +6407,7 @@ static void atk65_status2animation(void) { u32 wantedToAnimate; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); wantedToAnimate = BSScriptRead32(gBattlescriptCurrInstr + 2); @@ -6415,8 +6415,8 @@ static void atk65_status2animation(void) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBattler].status2 & wantedToAnimate); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBattler].status2 & wantedToAnimate); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 6; } @@ -6426,7 +6426,7 @@ static void atk66_chosenstatusanimation(void) { u32 wantedStatus; - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); wantedStatus = BSScriptRead32(gBattlescriptCurrInstr + 3); @@ -6434,8 +6434,8 @@ static void atk66_chosenstatusanimation(void) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - EmitStatusAnimation(0, gBattlescriptCurrInstr[2], wantedStatus); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusAnimation(0, gBattlescriptCurrInstr[2], wantedStatus); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 7; } @@ -6498,42 +6498,42 @@ static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no ra { u8 holdEffect, quality; - if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleDefender].holdEffect, quality = gEnigmaBerries[gBattleDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect, quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); } - gStringBank = gBattleDefender; + gStringBank = gBattleMoveTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBattleDefender, holdEffect); - gSpecialStatuses[gBattleDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleMoveTarget, holdEffect); + gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; } - if (gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleDefender].endured - && !gSpecialStatuses[gBattleDefender].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleMoveTarget].endured + && !gSpecialStatuses[gBattleMoveTarget].focusBanded) goto END; - if (gBattleMons[gBattleDefender].hp > gBattleMoveDamage) + if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; - if (gProtectStructs[gBattleDefender].endured) + if (gProtectStructs[gBattleMoveTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleDefender].focusBanded) + else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleDefender].item; + gLastUsedItem = gBattleMons[gBattleMoveTarget].item; } END: @@ -6550,15 +6550,15 @@ static void atk6A_removeitem(void) *usedHeldItem = gBattleMons[gActiveBattler].item; gBattleMons[gActiveBattler].item = 0; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } static void atk6B_atknameinbuff1(void) { - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattlePartyID[gBattleAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]) gBattlescriptCurrInstr++; } @@ -6829,9 +6829,9 @@ static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite) static bool32 IsMonGettingExpSentOut(void) { - if (gBattlePartyID[0] == gBattleStruct->expGetterId) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId) return TRUE; - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == gBattleStruct->expGetterId) + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterId) return TRUE; return FALSE; @@ -6845,15 +6845,15 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBattleAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleMoveAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr++; } static void atk6F_makevisible(void) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitSpriteInvisibility(0, FALSE); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSpriteInvisibility(0, FALSE); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } @@ -6939,8 +6939,8 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { - gBankInMenu = gBattleAttacker; - ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBattleAttacker]], gLastUsedItem, gBattlePartyID[gBattleAttacker], 0, 1); + gBankInMenu = gBattleMoveAttacker; + ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattleMoveAttacker], 0, 1); gBattlescriptCurrInstr += 1; } @@ -6958,18 +6958,18 @@ static void atk76_various(void) CancelMultiTurnMoves(gActiveBattler); break; case VARIOUS_SET_MAGIC_COAT_TARGET: - gBattleAttacker = gBattleDefender; - side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; + gBattleMoveAttacker = gBattleMoveTarget; + side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) - gBattleDefender = gSideTimers[side].followmeTarget; + gBattleMoveTarget = gSideTimers[side].followmeTarget; else - gBattleDefender = gActiveBattler; + gBattleMoveTarget = gActiveBattler; break; case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: - gBattleDefender = GetMoveTarget(gCurrentMove, 0); + gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); break; case 4: if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) @@ -6982,11 +6982,11 @@ static void atk76_various(void) gSpecialStatuses[gActiveBattler].traced = 0; break; case VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP: - if (gBattlePartyID[0] == gBattleStruct->expGetterId || gBattlePartyID[2] == gBattleStruct->expGetterId) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId || gBattlerPartyIndexes[2] == gBattleStruct->expGetterId) { u16 *choicedMove; - if (gBattlePartyID[0] == gBattleStruct->expGetterId) + if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId) gActiveBattler = 0; else gActiveBattler = 2; @@ -7034,14 +7034,14 @@ static void atk76_various(void) case 10: gBattleMons[1].hp = 0; gHitMarker |= HITMARKER_FAINTED(1); - gBattleStruct->field_2A1 |= gBitTable[gBattlePartyID[1]]; + gBattleStruct->field_2A1 |= gBitTable[gBattlerPartyIndexes[1]]; gDisableStructs[1].truantUnknownBit = 1; break; case 11: gBattleMons[0].hp = 0; gHitMarker |= HITMARKER_FAINTED(0); gHitMarker |= HITMARKER_x400000; - gBattleStruct->field_2A0 |= gBitTable[gBattlePartyID[0]]; + gBattleStruct->field_2A0 |= gBitTable[gBattlerPartyIndexes[0]]; gDisableStructs[0].truantUnknownBit = 1; break; case 12: @@ -7050,14 +7050,14 @@ static void atk76_various(void) gHitMarker |= HITMARKER_FAINTED(0); gHitMarker |= HITMARKER_FAINTED(1); gHitMarker |= HITMARKER_x400000; - gBattleStruct->field_2A0 |= gBitTable[gBattlePartyID[0]]; - gBattleStruct->field_2A1 |= gBitTable[gBattlePartyID[1]]; + gBattleStruct->field_2A0 |= gBitTable[gBattlerPartyIndexes[0]]; + gBattleStruct->field_2A1 |= gBitTable[gBattlerPartyIndexes[1]]; gDisableStructs[0].truantUnknownBit = 1; gDisableStructs[1].truantUnknownBit = 1; break; case VARIOUS_EMIT_YESNOBOX: - EmitUnknownYesNoBox(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitUnknownYesNoBox(0); + MarkBattlerForControllerExec(gActiveBattler); break; case 14: sub_81A5BF8(); @@ -7081,8 +7081,8 @@ static void atk76_various(void) gActiveBattler = 1; if (gBattleMons[gActiveBattler].hp != 0) { - EmitReturnMonToBall(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 0); + MarkBattlerForControllerExec(gActiveBattler); } break; case VARIOUS_RETURN_OPPONENT_MON2: @@ -7091,8 +7091,8 @@ static void atk76_various(void) gActiveBattler = 3; if (gBattleMons[gActiveBattler].hp != 0) { - EmitReturnMonToBall(0, 0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitReturnMonToBall(0, 0); + MarkBattlerForControllerExec(gActiveBattler); } } break; @@ -7116,8 +7116,8 @@ static void atk76_various(void) gBattleOutcome = B_OUTCOME_POKE_TELEPORTED; break; case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: - EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE); + MarkBattlerForControllerExec(gActiveBattler); break; } @@ -7127,31 +7127,31 @@ static void atk76_various(void) static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; - u16 lastMove = gLastResultingMoves[gBattleAttacker]; + u16 lastMove = gLastResultingMoves[gBattleMoveAttacker]; if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) - gDisableStructs[gBattleAttacker].protectUses = 0; + gDisableStructs[gBattleMoveAttacker].protectUses = 0; if (gCurrentTurnActionNumber == (gBattlersCount - 1)) notLastTurn = FALSE; - if (sProtectSuccessRates[gDisableStructs[gBattleAttacker].protectUses] >= Random() && notLastTurn) + if (sProtectSuccessRates[gDisableStructs[gBattleMoveAttacker].protectUses] >= Random() && notLastTurn) { if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) { - gProtectStructs[gBattleAttacker].protected = 1; + gProtectStructs[gBattleMoveAttacker].protected = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) { - gProtectStructs[gBattleAttacker].endured = 1; + gProtectStructs[gBattleMoveAttacker].endured = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - gDisableStructs[gBattleAttacker].protectUses++; + gDisableStructs[gBattleMoveAttacker].protectUses++; } else { - gDisableStructs[gBattleAttacker].protectUses = 0; + gDisableStructs[gBattleMoveAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gMoveResultFlags |= MOVE_RESULT_MISSED; } @@ -7161,48 +7161,48 @@ static void atk77_setprotectlike(void) // protect and endure static void atk78_faintifabilitynotdamp(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) + for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) { - if (gBattleMons[gBattleDefender].ability == ABILITY_DAMP) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_DAMP) break; } - if (gBattleDefender == gBattlersCount) + if (gBattleMoveTarget == gBattlersCount) { - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; - EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; - for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) + for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) { - if (gBattleDefender == gBattleAttacker) + if (gBattleMoveTarget == gBattleMoveAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) break; } } else { gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(gBattleDefender, gBattleMons[gBattleDefender].ability); + RecordAbilityBattle(gBattleMoveTarget, gBattleMons[gBattleMoveTarget].ability); gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } static void atk79_setatkhptozero(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; gBattleMons[gActiveBattler].hp = 0; - EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } @@ -7213,15 +7213,15 @@ static void atk7A_jumpifnexttargetvalid(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (gBattleDefender++; ; gBattleDefender++) + for (gBattleMoveTarget++; ; gBattleMoveTarget++) { - if (gBattleDefender == gBattleAttacker) + if (gBattleMoveTarget == gBattleMoveAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) break; } - if (gBattleDefender >= gBattlersCount) + if (gBattleMoveTarget >= gBattlersCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jumpPtr; @@ -7237,14 +7237,14 @@ static void atk7B_tryhealhalfhealth(void) const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattlescriptCurrInstr[5] == BS_GET_ATTACKER) - gBattleDefender = gBattleAttacker; + gBattleMoveTarget = gBattleMoveAttacker; - gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBattleDefender].hp == gBattleMons[gBattleDefender].maxHP) + if (gBattleMons[gBattleMoveTarget].hp == gBattleMons[gBattleMoveTarget].maxHP) gBattlescriptCurrInstr = failPtr; else gBattlescriptCurrInstr += 6; @@ -7262,10 +7262,10 @@ static void atk7C_trymirrormove(void) for (validMovesCount = 0, i = 0; i < gBattlersCount; i++) { - if (i != gBattleAttacker) + if (i != gBattleMoveAttacker) { - move = *(i * 2 + gBattleAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) - | (*(i * 2 + gBattleAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); + move = *(i * 2 + gBattleMoveAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) + | (*(i * 2 + gBattleMoveAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); if (move != 0 && move != 0xFFFF) { @@ -7275,14 +7275,14 @@ static void atk7C_trymirrormove(void) } } - move = *(gBattleStruct->mirrorMoves + gBattleAttacker * 2 + 0) - | (*(gBattleStruct->mirrorMoves + gBattleAttacker * 2 + 1) << 8); + move = *(gBattleStruct->mirrorMoves + gBattleMoveAttacker * 2 + 0) + | (*(gBattleStruct->mirrorMoves + gBattleMoveAttacker * 2 + 1) << 8); if (move != 0 && move != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = move; - gBattleDefender = GetMoveTarget(gCurrentMove, 0); + gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (validMovesCount) @@ -7290,12 +7290,12 @@ static void atk7C_trymirrormove(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); i = Random() % validMovesCount; gCurrentMove = movesArray[i]; - gBattleDefender = GetMoveTarget(gCurrentMove, 0); + gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else { - gSpecialStatuses[gBattleAttacker].flag20 = 1; + gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; gBattlescriptCurrInstr++; } } @@ -7318,16 +7318,16 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] & SIDE_STATUS_REFLECT) + if (gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_REFLECT; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].reflectTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].reflectBank = gBattleAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_REFLECT; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].reflectTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].reflectBank = gBattleMoveAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; @@ -7339,20 +7339,20 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattleDefender] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattleMoveTarget] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gBattleDefender].type1 == TYPE_GRASS || gBattleMons[gBattleDefender].type2 == TYPE_GRASS) + else if (gBattleMons[gBattleMoveTarget].type1 == TYPE_GRASS || gBattleMons[gBattleMoveTarget].type2 == TYPE_GRASS) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else { - gStatuses3[gBattleDefender] |= gBattleAttacker; - gStatuses3[gBattleDefender] |= STATUS3_LEECHSEED; + gStatuses3[gBattleMoveTarget] |= gBattleMoveAttacker; + gStatuses3[gBattleMoveTarget] |= STATUS3_LEECHSEED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7370,8 +7370,8 @@ static void atk80_manipulatedamage(void) gBattleMoveDamage /= 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gBattleDefender].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 2; + if ((gBattleMons[gBattleMoveTarget].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 2; break; case ATK80_DMG_DOUBLED: gBattleMoveDamage *= 2; @@ -7384,23 +7384,23 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - gActiveBattler = gBattleDefender = gBattleAttacker; - gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP * (-1); + gActiveBattler = gBattleMoveTarget = gBattleMoveAttacker; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP * (-1); - if (gBattleMons[gBattleDefender].hp == gBattleMons[gBattleDefender].maxHP) + if (gBattleMons[gBattleMoveTarget].hp == gBattleMons[gBattleMoveTarget].maxHP) { gBattlescriptCurrInstr = failJump; } else { - if (gBattleMons[gBattleDefender].status1 & ((u8)(~STATUS1_SLEEP))) + if (gBattleMons[gBattleMoveTarget].status1 & ((u8)(~STATUS1_SLEEP))) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gBattleDefender].status1 = 3; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gBattleMons[gBattleMoveTarget].status1 = 3; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } } @@ -7409,7 +7409,7 @@ static void atk82_jumpifnotfirstturn(void) { const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBattleAttacker].isFirstTurn) + if (gDisableStructs[gBattleMoveAttacker].isFirstTurn) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = failJump; @@ -7431,9 +7431,9 @@ bool8 UproarWakeUpCheck(u8 bank) gBattleScripting.battler = i; - if (gBattleDefender == 0xFF) - gBattleDefender = i; - else if (gBattleDefender == i) + if (gBattleMoveTarget == 0xFF) + gBattleMoveTarget = i; + else if (gBattleMoveTarget == i) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -7451,17 +7451,17 @@ static void atk84_jumpifcantmakeasleep(void) { const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (UproarWakeUpCheck(gBattleDefender)) + if (UproarWakeUpCheck(gBattleMoveTarget)) { gBattlescriptCurrInstr = jumpPtr; } - else if (gBattleMons[gBattleDefender].ability == ABILITY_INSOMNIA - || gBattleMons[gBattleDefender].ability == ABILITY_VITAL_SPIRIT) + else if (gBattleMons[gBattleMoveTarget].ability == ABILITY_INSOMNIA + || gBattleMons[gBattleMoveTarget].ability == ABILITY_VITAL_SPIRIT) { - gLastUsedAbility = gBattleMons[gBattleDefender].ability; + gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattlescriptCurrInstr = jumpPtr; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } else { @@ -7471,16 +7471,16 @@ static void atk84_jumpifcantmakeasleep(void) static void atk85_stockpile(void) { - if (gDisableStructs[gBattleAttacker].stockpileCounter == 3) + if (gDisableStructs[gBattleMoveAttacker].stockpileCounter == 3) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gDisableStructs[gBattleAttacker].stockpileCounter++; + gDisableStructs[gBattleMoveAttacker].stockpileCounter++; - PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattleAttacker].stockpileCounter) + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattleMoveAttacker].stockpileCounter) gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7490,7 +7490,7 @@ static void atk85_stockpile(void) static void atk86_stockpiletobasedamage(void) { const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBattleAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattleMoveAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; } @@ -7498,17 +7498,17 @@ static void atk86_stockpiletobasedamage(void) { if (gBattleCommunication[6] != 1) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleDefender], gCurrentMove, - gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)], 0, - 0, gBattleAttacker, gBattleDefender) - * gDisableStructs[gBattleAttacker].stockpileCounter; - gBattleScripting.animTurn = gDisableStructs[gBattleAttacker].stockpileCounter; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveTarget], gCurrentMove, + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)], 0, + 0, gBattleMoveAttacker, gBattleMoveTarget) + * gDisableStructs[gBattleMoveAttacker].stockpileCounter; + gBattleScripting.animTurn = gDisableStructs[gBattleMoveAttacker].stockpileCounter; - if (gProtectStructs[gBattleAttacker].helpingHand) + if (gProtectStructs[gBattleMoveAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; } - gDisableStructs[gBattleAttacker].stockpileCounter = 0; + gDisableStructs[gBattleMoveAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; } } @@ -7517,30 +7517,30 @@ static void atk87_stockpiletohpheal(void) { const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBattleAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattleMoveAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } - else if (gBattleMons[gBattleAttacker].maxHP == gBattleMons[gBattleAttacker].hp) + else if (gBattleMons[gBattleMoveAttacker].maxHP == gBattleMons[gBattleMoveAttacker].hp) { - gDisableStructs[gBattleAttacker].stockpileCounter = 0; + gDisableStructs[gBattleMoveAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jumpPtr; - gBattleDefender = gBattleAttacker; + gBattleMoveTarget = gBattleMoveAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / (1 << (3 - gDisableStructs[gBattleAttacker].stockpileCounter)); + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / (1 << (3 - gDisableStructs[gBattleMoveAttacker].stockpileCounter)); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattleScripting.animTurn = gDisableStructs[gBattleAttacker].stockpileCounter; - gDisableStructs[gBattleAttacker].stockpileCounter = 0; + gBattleScripting.animTurn = gDisableStructs[gBattleMoveAttacker].stockpileCounter; + gDisableStructs[gBattleMoveAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; - gBattleDefender = gBattleAttacker; + gBattleMoveTarget = gBattleMoveAttacker; } } @@ -7560,9 +7560,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) u32 index; if (flags & MOVE_EFFECT_AFFECTS_USER) - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; else - gActiveBattler = gBattleDefender; + gActiveBattler = gBattleMoveTarget; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -7678,7 +7678,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleDefender == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleMoveTarget == gActiveBattler); } } @@ -7705,7 +7705,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleDefender == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleMoveTarget == gActiveBattler); } gBattleMons[gActiveBattler].statStages[statId] += statValue; @@ -7745,17 +7745,17 @@ static void atk8A_normalisebuffs(void) // haze static void atk8B_setbide(void) { - gBattleMons[gBattleAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBattleAttacker] = gCurrentMove; - gTakenDmg[gBattleAttacker] = 0; - gBattleMons[gBattleAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattleMoveAttacker] = gCurrentMove; + gTakenDmg[gBattleMoveAttacker] = 0; + gBattleMons[gBattleMoveAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns gBattlescriptCurrInstr++; } static void atk8C_confuseifrepeatingattackends(void) { - if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_LOCK_CONFUSE)) gBattleCommunication[MOVE_EFFECT_BYTE] = (MOVE_EFFECT_THRASH | MOVE_EFFECT_AFFECTS_USER); gBattlescriptCurrInstr++; @@ -7788,19 +7788,19 @@ static void atk8E_initmultihitstring(void) static bool8 TryDoForceSwitchOut(void) { - if (gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) + if (gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) { - *(gBattleStruct->field_58 + gBattleDefender) = gBattlePartyID[gBattleDefender]; + *(gBattleStruct->field_58 + gBattleMoveTarget) = gBattlerPartyIndexes[gBattleMoveTarget]; } else { u16 random = Random() & 0xFF; - if ((u32)((random * (gBattleMons[gBattleAttacker].level + gBattleMons[gBattleDefender].level) >> 8) + 1) <= (gBattleMons[gBattleDefender].level / 4)) + if ((u32)((random * (gBattleMons[gBattleMoveAttacker].level + gBattleMons[gBattleMoveTarget].level) >> 8) + 1) <= (gBattleMons[gBattleMoveTarget].level / 4)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); return FALSE; } - *(gBattleStruct->field_58 + gBattleDefender) = gBattlePartyID[gBattleDefender]; + *(gBattleStruct->field_58 + gBattleMoveTarget) = gBattlerPartyIndexes[gBattleMoveTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; @@ -7827,7 +7827,7 @@ static void atk8F_forcerandomswitch(void) if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -7836,7 +7836,7 @@ static void atk8F_forcerandomswitch(void) || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) { - if ((gBattleDefender & BIT_FLANK) != 0) + if ((gBattleMoveTarget & BIT_FLANK) != 0) { firstMonId = 3; lastMonId = 6; @@ -7848,13 +7848,13 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBattleDefender]; - bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; } else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) { - if (sub_806D82C(GetBankMultiplayerId(gBattleDefender)) == 1) + if (sub_806D82C(GetBattlerMultiplayerId(gBattleMoveTarget)) == 1) { firstMonId = 3; lastMonId = 6; @@ -7866,12 +7866,12 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBattleDefender]; - bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) { firstMonId = 0; lastMonId = 6; @@ -7880,7 +7880,7 @@ static void atk8F_forcerandomswitch(void) } else { - if ((gBattleDefender & BIT_FLANK) != 0) + if ((gBattleMoveTarget & BIT_FLANK) != 0) { firstMonId = 3; lastMonId = 6; @@ -7893,8 +7893,8 @@ static void atk8F_forcerandomswitch(void) monsCount = 3; minNeeded = 1; } - bank2PartyId = gBattlePartyID[gBattleDefender]; - bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7902,8 +7902,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 2; - bank2PartyId = gBattlePartyID[gBattleDefender]; - bank1PartyId = gBattlePartyID[gBattleDefender ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; } else { @@ -7911,8 +7911,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 1; - bank2PartyId = gBattlePartyID[gBattleDefender]; // there is only one pokemon out in single battles - bank1PartyId = gBattlePartyID[gBattleDefender]; + bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; // there is only one pokemon out in single battles + bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; } for (i = firstMonId; i < lastMonId; i++) @@ -7944,22 +7944,22 @@ static void atk8F_forcerandomswitch(void) || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE || GetMonData(&party[i], MON_DATA_HP) == 0); } - *(gBattleStruct->monToSwitchIntoId + gBattleDefender) = i; + *(gBattleStruct->monToSwitchIntoId + gBattleMoveTarget) = i; if (!sub_81B1250()) - sub_803BDA0(gBattleDefender); + sub_803BDA0(gBattleMoveTarget); if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - sub_81B8E80(gBattleDefender, i, 0); - sub_81B8E80(gBattleDefender ^ BIT_FLANK, i, 1); + sub_81B8E80(gBattleMoveTarget, i, 0); + sub_81B8E80(gBattleMoveTarget ^ BIT_FLANK, i, 1); } if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) - sub_80571DC(gBattleDefender, i); + sub_80571DC(gBattleMoveTarget, i); } } else @@ -7976,7 +7976,7 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type while (validMoves < 4) { - if (gBattleMons[gBattleAttacker].moves[validMoves] == 0) + if (gBattleMons[gBattleMoveAttacker].moves[validMoves] == 0) break; validMoves++; @@ -7984,17 +7984,17 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type for (moveChecked = 0; moveChecked < validMoves; moveChecked++) { - moveType = gBattleMoves[gBattleMons[gBattleAttacker].moves[moveChecked]].type; + moveType = gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[moveChecked]].type; if (moveType == TYPE_MYSTERY) { - if (gBattleMons[gBattleAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattleMoveAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleMoveAttacker].type2 == TYPE_GHOST) moveType = TYPE_GHOST; else moveType = TYPE_NORMAL; } - if (moveType != gBattleMons[gBattleAttacker].type1 - && moveType != gBattleMons[gBattleAttacker].type2) + if (moveType != gBattleMons[gBattleMoveAttacker].type1 + && moveType != gBattleMons[gBattleMoveAttacker].type2) { break; } @@ -8011,20 +8011,20 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type while ((moveChecked = Random() & 3) >= validMoves); - moveType = gBattleMoves[gBattleMons[gBattleAttacker].moves[moveChecked]].type; + moveType = gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[moveChecked]].type; if (moveType == TYPE_MYSTERY) { - if (gBattleMons[gBattleAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattleMoveAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleMoveAttacker].type2 == TYPE_GHOST) moveType = TYPE_GHOST; else moveType = TYPE_NORMAL; } } - while (moveType == gBattleMons[gBattleAttacker].type1 || moveType == gBattleMons[gBattleAttacker].type2); + while (moveType == gBattleMons[gBattleMoveAttacker].type1 || moveType == gBattleMons[gBattleMoveAttacker].type2); - gBattleMons[gBattleAttacker].type1 = moveType; - gBattleMons[gBattleAttacker].type2 = moveType; + gBattleMons[gBattleMoveAttacker].type1 = moveType; + gBattleMons[gBattleMoveAttacker].type2 = moveType; PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType) @@ -8052,16 +8052,16 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] & SIDE_STATUS_LIGHTSCREEN) + if (gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].lightscreenTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].lightscreenBank = gBattleAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].lightscreenTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].lightscreenBank = gBattleMoveAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; @@ -8076,72 +8076,72 @@ static void atk93_tryKO(void) { u8 holdEffect, param; - if (gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleDefender].holdEffect; - param = gEnigmaBerries[gBattleDefender].holdEffectParam; + holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect; + param = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleDefender].item); - param = ItemId_GetHoldEffectParam(gBattleMons[gBattleDefender].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); + param = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); } - gStringBank = gBattleDefender; + gStringBank = gBattleMoveTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param) { - RecordItemEffectBattle(gBattleDefender, HOLD_EFFECT_FOCUS_BAND); - gSpecialStatuses[gBattleDefender].focusBanded = 1; + RecordItemEffectBattle(gBattleMoveTarget, HOLD_EFFECT_FOCUS_BAND); + gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; } - if (gBattleMons[gBattleDefender].ability == ABILITY_STURDY) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_STURDY) { gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO; - RecordAbilityBattle(gBattleDefender, ABILITY_STURDY); + RecordAbilityBattle(gBattleMoveTarget, ABILITY_STURDY); } else { u16 chance; - if (!(gStatuses3[gBattleDefender] & STATUS3_ALWAYS_HITS)) + if (!(gStatuses3[gBattleMoveTarget] & STATUS3_ALWAYS_HITS)) { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleAttacker].level - gBattleMons[gBattleDefender].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleMoveAttacker].level - gBattleMons[gBattleMoveTarget].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) chance = TRUE; else chance = FALSE; } - else if (gDisableStructs[gBattleDefender].bankWithSureHit == gBattleAttacker - && gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) + else if (gDisableStructs[gBattleMoveTarget].bankWithSureHit == gBattleMoveAttacker + && gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) { chance = TRUE; } else { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleAttacker].level - gBattleMons[gBattleDefender].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleMoveAttacker].level - gBattleMons[gBattleMoveTarget].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) chance = TRUE; else chance = FALSE; } if (chance) { - if (gProtectStructs[gBattleDefender].endured) + if (gProtectStructs[gBattleMoveTarget].endured) { - gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleDefender].focusBanded) + else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) { - gBattleMoveDamage = gBattleMons[gBattleDefender].hp - 1; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleDefender].item; + gLastUsedItem = gBattleMons[gBattleMoveTarget].item; } else { - gBattleMoveDamage = gBattleMons[gBattleDefender].hp; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp; gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO; } gBattlescriptCurrInstr += 5; @@ -8149,7 +8149,7 @@ static void atk93_tryKO(void) else { gMoveResultFlags |= MOVE_RESULT_MISSED; - if (gBattleMons[gBattleAttacker].level >= gBattleMons[gBattleDefender].level) + if (gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8160,7 +8160,7 @@ static void atk93_tryKO(void) static void atk94_damagetohalftargethp(void) // super fang { - gBattleMoveDamage = gBattleMons[gBattleDefender].hp / 2; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -8189,17 +8189,17 @@ static void atk96_weatherdamage(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - if (gBattleMons[gBattleAttacker].type1 != TYPE_ROCK - && gBattleMons[gBattleAttacker].type1 != TYPE_STEEL - && gBattleMons[gBattleAttacker].type1 != TYPE_GROUND - && gBattleMons[gBattleAttacker].type2 != TYPE_ROCK - && gBattleMons[gBattleAttacker].type2 != TYPE_STEEL - && gBattleMons[gBattleAttacker].type2 != TYPE_GROUND - && gBattleMons[gBattleAttacker].ability != ABILITY_SAND_VEIL - && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERGROUND) - && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERWATER)) - { - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 16; + if (gBattleMons[gBattleMoveAttacker].type1 != TYPE_ROCK + && gBattleMons[gBattleMoveAttacker].type1 != TYPE_STEEL + && gBattleMons[gBattleMoveAttacker].type1 != TYPE_GROUND + && gBattleMons[gBattleMoveAttacker].type2 != TYPE_ROCK + && gBattleMons[gBattleMoveAttacker].type2 != TYPE_STEEL + && gBattleMons[gBattleMoveAttacker].type2 != TYPE_GROUND + && gBattleMons[gBattleMoveAttacker].ability != ABILITY_SAND_VEIL + && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERWATER)) + { + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -8210,12 +8210,12 @@ static void atk96_weatherdamage(void) } if (gBattleWeather & WEATHER_HAIL) { - if (gBattleMons[gBattleAttacker].type1 != TYPE_ICE - && gBattleMons[gBattleAttacker].type2 != TYPE_ICE - && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERGROUND) - && !(gStatuses3[gBattleAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattleMoveAttacker].type1 != TYPE_ICE + && gBattleMons[gBattleMoveAttacker].type2 != TYPE_ICE + && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -8230,7 +8230,7 @@ static void atk96_weatherdamage(void) gBattleMoveDamage = 0; } - if (gAbsentBattlerFlags & gBitTable[gBattleAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -8242,15 +8242,15 @@ static void atk97_tryinfatuating(void) u16 speciesAttacker, speciesTarget; u32 personalityAttacker, personalityTarget; - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) - monAttacker = &gPlayerParty[gBattlePartyID[gBattleAttacker]]; + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + monAttacker = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; else - monAttacker = &gEnemyParty[gBattlePartyID[gBattleAttacker]]; + monAttacker = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) - monTarget = &gPlayerParty[gBattlePartyID[gBattleDefender]]; + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + monTarget = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveTarget]]; else - monTarget = &gEnemyParty[gBattlePartyID[gBattleDefender]]; + monTarget = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]]; speciesAttacker = GetMonData(monAttacker, MON_DATA_SPECIES); personalityAttacker = GetMonData(monAttacker, MON_DATA_PERSONALITY); @@ -8258,16 +8258,16 @@ static void atk97_tryinfatuating(void) speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES); personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY); - if (gBattleMons[gBattleDefender].ability == ABILITY_OBLIVIOUS) + if (gBattleMons[gBattleMoveTarget].ability == ABILITY_OBLIVIOUS) { gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; gLastUsedAbility = ABILITY_OBLIVIOUS; - RecordAbilityBattle(gBattleDefender, ABILITY_OBLIVIOUS); + RecordAbilityBattle(gBattleMoveTarget, ABILITY_OBLIVIOUS); } else { if (GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) - || gBattleMons[gBattleDefender].status2 & STATUS2_INFATUATION + || gBattleMons[gBattleMoveTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS || GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS) { @@ -8275,7 +8275,7 @@ static void atk97_tryinfatuating(void) } else { - gBattleMons[gBattleDefender].status2 |= STATUS2_INFATUATED_WITH(gBattleAttacker); + gBattleMons[gBattleMoveTarget].status2 |= STATUS2_INFATUATED_WITH(gBattleMoveAttacker); gBattlescriptCurrInstr += 5; } } @@ -8283,31 +8283,31 @@ static void atk97_tryinfatuating(void) static void atk98_updatestatusicon(void) { - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; if (gBattlescriptCurrInstr[1] != BS_ATTACKER_WITH_PARTNER) { gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]); - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } else { - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { - EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); + MarkBattlerForControllerExec(gActiveBattler); } } gBattlescriptCurrInstr += 2; @@ -8316,16 +8316,16 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].mistTimer) + if (gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].mistTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].mistBank = gBattleAttacker; - gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_MIST; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].mistTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].mistBank = gBattleMoveAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8333,14 +8333,14 @@ static void atk99_setmist(void) static void atk9A_setfocusenergy(void) { - if (gBattleMons[gBattleAttacker].status2 & STATUS2_FOCUS_ENERGY) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMons[gBattleAttacker].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8350,8 +8350,8 @@ static void atk9B_transformdataexecution(void) { gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; - if (gBattleMons[gBattleDefender].status2 & STATUS2_TRANSFORMED - || gStatuses3[gBattleDefender] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_TRANSFORMED + || gStatuses3[gBattleMoveTarget] & STATUS3_SEMI_INVULNERABLE) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8361,55 +8361,55 @@ static void atk9B_transformdataexecution(void) s32 i; u8 *battleMonAttacker, *battleMonTarget; - gBattleMons[gBattleAttacker].status2 |= STATUS2_TRANSFORMED; - gDisableStructs[gBattleAttacker].disabledMove = 0; - gDisableStructs[gBattleAttacker].disableTimer1 = 0; - gDisableStructs[gBattleAttacker].transformedMonPersonality = gBattleMons[gBattleDefender].personality; - gDisableStructs[gBattleAttacker].unk18_b = 0; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_TRANSFORMED; + gDisableStructs[gBattleMoveAttacker].disabledMove = 0; + gDisableStructs[gBattleMoveAttacker].disableTimer1 = 0; + gDisableStructs[gBattleMoveAttacker].transformedMonPersonality = gBattleMons[gBattleMoveTarget].personality; + gDisableStructs[gBattleMoveAttacker].unk18_b = 0; - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleDefender].species) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveTarget].species) - battleMonAttacker = (u8*)(&gBattleMons[gBattleAttacker]); - battleMonTarget = (u8*)(&gBattleMons[gBattleDefender]); + battleMonAttacker = (u8*)(&gBattleMons[gBattleMoveAttacker]); + battleMonTarget = (u8*)(&gBattleMons[gBattleMoveTarget]); for (i = 0; i < offsetof(struct BattlePokemon, pp); i++) battleMonAttacker[i] = battleMonTarget[i]; for (i = 0; i < 4; i++) { - if (gBattleMoves[gBattleMons[gBattleAttacker].moves[i]].pp < 5) - gBattleMons[gBattleAttacker].pp[i] = gBattleMoves[gBattleMons[gBattleAttacker].moves[i]].pp; + if (gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[i]].pp < 5) + gBattleMons[gBattleMoveAttacker].pp[i] = gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[i]].pp; else - gBattleMons[gBattleAttacker].pp[i] = 5; + gBattleMons[gBattleMoveAttacker].pp[i] = 5; } - gActiveBattler = gBattleAttacker; - EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); + MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 0; } } static void atk9C_setsubstitute(void) { - u32 hp = gBattleMons[gBattleAttacker].maxHP / 4; - if (gBattleMons[gBattleAttacker].maxHP / 4 == 0) + u32 hp = gBattleMons[gBattleMoveAttacker].maxHP / 4; + if (gBattleMons[gBattleMoveAttacker].maxHP / 4 == 0) hp = 1; - if (gBattleMons[gBattleAttacker].hp <= hp) + if (gBattleMons[gBattleMoveAttacker].hp <= hp) { gBattleMoveDamage = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleMons[gBattleAttacker].status2 |= STATUS2_SUBSTITUTE; - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_WRAPPED); - gDisableStructs[gBattleAttacker].substituteHP = gBattleMoveDamage; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_SUBSTITUTE; + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_WRAPPED); + gDisableStructs[gBattleMoveAttacker].substituteHP = gBattleMoveDamage; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -8430,10 +8430,10 @@ static void atk9D_mimicattackcopy(void) { gChosenMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gLastMoves[gBattleDefender]) - || gBattleMons[gBattleAttacker].status2 & STATUS2_TRANSFORMED - || gLastMoves[gBattleDefender] == 0 - || gLastMoves[gBattleDefender] == 0xFFFF) + if (IsMoveUncopyableByMimic(gLastMoves[gBattleMoveTarget]) + || gBattleMons[gBattleMoveAttacker].status2 & STATUS2_TRANSFORMED + || gLastMoves[gBattleMoveTarget] == 0 + || gLastMoves[gBattleMoveTarget] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8443,22 +8443,22 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleAttacker].moves[i] == gLastMoves[gBattleDefender]) + if (gBattleMons[gBattleMoveAttacker].moves[i] == gLastMoves[gBattleMoveTarget]) break; } if (i == 4) { - gBattleMons[gBattleAttacker].moves[gCurrMovePos] = gLastMoves[gBattleDefender]; - if (gBattleMoves[gLastMoves[gBattleDefender]].pp < 5) - gBattleMons[gBattleAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattleDefender]].pp; + gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos] = gLastMoves[gBattleMoveTarget]; + if (gBattleMoves[gLastMoves[gBattleMoveTarget]].pp < 5) + gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattleMoveTarget]].pp; else - gBattleMons[gBattleAttacker].pp[gCurrMovePos] = 5; + gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleDefender]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleMoveTarget]) - gDisableStructs[gBattleAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gDisableStructs[gBattleMoveAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; } else @@ -8494,7 +8494,7 @@ static void atk9E_metronome(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gBattleDefender = GetMoveTarget(gCurrentMove, 0); + gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); return; } } @@ -8502,7 +8502,7 @@ static void atk9E_metronome(void) static void atk9F_dmgtolevel(void) { - gBattleMoveDamage = gBattleMons[gBattleAttacker].level; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].level; gBattlescriptCurrInstr++; } @@ -8513,54 +8513,54 @@ static void atkA0_psywavedamageeffect(void) while ((randDamage = (Random() & 0xF)) > 10); randDamage *= 10; - gBattleMoveDamage = gBattleMons[gBattleAttacker].level * (randDamage + 50) / 100; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].level * (randDamage + 50) / 100; gBattlescriptCurrInstr++; } static void atkA1_counterdamagecalculator(void) { - u8 sideAttacker = GetBattlerSide(gBattleAttacker); - u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleAttacker].physicalBank); + u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); + u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleMoveAttacker].physicalBank); - if (gProtectStructs[gBattleAttacker].physicalDmg + if (gProtectStructs[gBattleMoveAttacker].physicalDmg && sideAttacker != sideTarget - && gBattleMons[gProtectStructs[gBattleAttacker].physicalBank].hp) + && gBattleMons[gProtectStructs[gBattleMoveAttacker].physicalBank].hp) { - gBattleMoveDamage = gProtectStructs[gBattleAttacker].physicalDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattleMoveAttacker].physicalDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBattleDefender = gSideTimers[sideTarget].followmeTarget; + gBattleMoveTarget = gSideTimers[sideTarget].followmeTarget; else - gBattleDefender = gProtectStructs[gBattleAttacker].physicalBank; + gBattleMoveTarget = gProtectStructs[gBattleMoveAttacker].physicalBank; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBattleAttacker].flag20 = 1; + gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the physical -> special field changes { - u8 sideAttacker = GetBattlerSide(gBattleAttacker); - u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleAttacker].specialBank); + u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); + u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleMoveAttacker].specialBank); - if (gProtectStructs[gBattleAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattleAttacker].specialBank].hp) + if (gProtectStructs[gBattleMoveAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattleMoveAttacker].specialBank].hp) { - gBattleMoveDamage = gProtectStructs[gBattleAttacker].specialDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattleMoveAttacker].specialDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBattleDefender = gSideTimers[sideTarget].followmeTarget; + gBattleMoveTarget = gSideTimers[sideTarget].followmeTarget; else - gBattleDefender = gProtectStructs[gBattleAttacker].specialBank; + gBattleMoveTarget = gProtectStructs[gBattleMoveAttacker].specialBank; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBattleAttacker].flag20 = 1; + gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } @@ -8571,17 +8571,17 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleDefender].moves[i] == gLastMoves[gBattleDefender]) + if (gBattleMons[gBattleMoveTarget].moves[i] == gLastMoves[gBattleMoveTarget]) break; } - if (gDisableStructs[gBattleDefender].disabledMove == 0 - && i != 4 && gBattleMons[gBattleDefender].pp[i] != 0) + if (gDisableStructs[gBattleMoveTarget].disabledMove == 0 + && i != 4 && gBattleMons[gBattleMoveTarget].pp[i] != 0) { - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleDefender].moves[i]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveTarget].moves[i]) - gDisableStructs[gBattleDefender].disabledMove = gBattleMons[gBattleDefender].moves[i]; - gDisableStructs[gBattleDefender].disableTimer1 = (Random() & 3) + 2; - gDisableStructs[gBattleDefender].disableTimer2 = gDisableStructs[gBattleDefender].disableTimer1; // used to save the random amount of turns? + gDisableStructs[gBattleMoveTarget].disabledMove = gBattleMons[gBattleMoveTarget].moves[i]; + gDisableStructs[gBattleMoveTarget].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBattleMoveTarget].disableTimer2 = gDisableStructs[gBattleMoveTarget].disableTimer1; // used to save the random amount of turns? gBattlescriptCurrInstr += 5; } else @@ -8596,24 +8596,24 @@ static void atkA4_trysetencore(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleDefender].moves[i] == gLastMoves[gBattleDefender]) + if (gBattleMons[gBattleMoveTarget].moves[i] == gLastMoves[gBattleMoveTarget]) break; } - if (gLastMoves[gBattleDefender] == MOVE_STRUGGLE - || gLastMoves[gBattleDefender] == MOVE_ENCORE - || gLastMoves[gBattleDefender] == MOVE_MIRROR_MOVE) + if (gLastMoves[gBattleMoveTarget] == MOVE_STRUGGLE + || gLastMoves[gBattleMoveTarget] == MOVE_ENCORE + || gLastMoves[gBattleMoveTarget] == MOVE_MIRROR_MOVE) { i = 4; } - if (gDisableStructs[gBattleDefender].encoredMove == 0 - && i != 4 && gBattleMons[gBattleDefender].pp[i] != 0) + if (gDisableStructs[gBattleMoveTarget].encoredMove == 0 + && i != 4 && gBattleMons[gBattleMoveTarget].pp[i] != 0) { - gDisableStructs[gBattleDefender].encoredMove = gBattleMons[gBattleDefender].moves[i]; - gDisableStructs[gBattleDefender].encoredMovePos = i; - gDisableStructs[gBattleDefender].encoreTimer1 = (Random() & 3) + 3; - gDisableStructs[gBattleDefender].encoreTimer2 = gDisableStructs[gBattleDefender].encoreTimer1; + gDisableStructs[gBattleMoveTarget].encoredMove = gBattleMons[gBattleMoveTarget].moves[i]; + gDisableStructs[gBattleMoveTarget].encoredMovePos = i; + gDisableStructs[gBattleMoveTarget].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBattleMoveTarget].encoreTimer2 = gDisableStructs[gBattleMoveTarget].encoreTimer1; gBattlescriptCurrInstr += 5; } else @@ -8624,10 +8624,10 @@ static void atkA4_trysetencore(void) static void atkA5_painsplitdmgcalc(void) { - if (!(gBattleMons[gBattleDefender].status2 & STATUS2_SUBSTITUTE)) + if (!(gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE)) { - s32 hpDiff = (gBattleMons[gBattleAttacker].hp + gBattleMons[gBattleDefender].hp) / 2; - s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBattleDefender].hp - hpDiff; + s32 hpDiff = (gBattleMons[gBattleMoveAttacker].hp + gBattleMons[gBattleMoveTarget].hp) / 2; + s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - hpDiff; u8* storeLoc = (void*)(&gBattleScripting.painSplitHp); storeLoc[0] = (painSplitHp); @@ -8635,8 +8635,8 @@ static void atkA5_painsplitdmgcalc(void) storeLoc[2] = (painSplitHp & 0x00FF0000) >> 16; storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; - gBattleMoveDamage = gBattleMons[gBattleAttacker].hp - hpDiff; - gSpecialStatuses[gBattleDefender].moveturnLostHP = 0xFFFF; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].hp - hpDiff; + gSpecialStatuses[gBattleMoveTarget].moveturnLostHP = 0xFFFF; gBattlescriptCurrInstr += 5; } @@ -8648,13 +8648,13 @@ static void atkA5_painsplitdmgcalc(void) static void atkA6_settypetorandomresistance(void) // conversion 2 { - if (gLastLandedMoves[gBattleAttacker] == 0 - || gLastLandedMoves[gBattleAttacker] == 0xFFFF) + if (gLastLandedMoves[gBattleMoveAttacker] == 0 + || gLastLandedMoves[gBattleMoveAttacker] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } - else if (IsTwoTurnsMove(gLastLandedMoves[gBattleAttacker]) - && gBattleMons[gLastHitBy[gBattleAttacker]].status2 & STATUS2_MULTIPLETURNS) + else if (IsTwoTurnsMove(gLastLandedMoves[gBattleMoveAttacker]) + && gBattleMons[gLastHitBy[gBattleMoveAttacker]].status2 & STATUS2_MULTIPLETURNS) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8668,13 +8668,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 i *= 3; - if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBattleAttacker] + if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBattleMoveAttacker] && TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE - && gBattleMons[gBattleAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) - && gBattleMons[gBattleAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) + && gBattleMons[gBattleMoveAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) + && gBattleMons[gBattleMoveAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) { - gBattleMons[gBattleAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i); - gBattleMons[gBattleAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i); + gBattleMons[gBattleMoveAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i); + gBattleMons[gBattleMoveAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i); PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(i)) @@ -8691,13 +8691,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 case TYPE_FORESIGHT: break; default: - if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBattleAttacker] + if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBattleMoveAttacker] && TYPE_EFFECT_MULTIPLIER(j) <= 5 - && gBattleMons[gBattleAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) - && gBattleMons[gBattleAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) + && gBattleMons[gBattleMoveAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) + && gBattleMons[gBattleMoveAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) { - gBattleMons[gBattleAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands); - gBattleMons[gBattleAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands); + gBattleMons[gBattleMoveAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands); + gBattleMons[gBattleMoveAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands); PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(rands)) @@ -8714,9 +8714,9 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 static void atkA7_setalwayshitflag(void) { - gStatuses3[gBattleDefender] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[gBattleDefender] |= 0x10; - gDisableStructs[gBattleDefender].bankWithSureHit = gBattleAttacker; + gStatuses3[gBattleMoveTarget] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBattleMoveTarget] |= 0x10; + gDisableStructs[gBattleMoveTarget].bankWithSureHit = gBattleMoveAttacker; gBattlescriptCurrInstr++; } @@ -8724,19 +8724,19 @@ static void atkA8_copymovepermanently(void) // sketch { gChosenMove = 0xFFFF; - if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_TRANSFORMED) - && gLastPrintedMoves[gBattleDefender] != MOVE_STRUGGLE - && gLastPrintedMoves[gBattleDefender] != 0 - && gLastPrintedMoves[gBattleDefender] != 0xFFFF - && gLastPrintedMoves[gBattleDefender] != MOVE_SKETCH) + if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_TRANSFORMED) + && gLastPrintedMoves[gBattleMoveTarget] != MOVE_STRUGGLE + && gLastPrintedMoves[gBattleMoveTarget] != 0 + && gLastPrintedMoves[gBattleMoveTarget] != 0xFFFF + && gLastPrintedMoves[gBattleMoveTarget] != MOVE_SKETCH) { s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleAttacker].moves[i] == MOVE_SKETCH) + if (gBattleMons[gBattleMoveAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBattleAttacker].moves[i] == gLastPrintedMoves[gBattleDefender]) + if (gBattleMons[gBattleMoveAttacker].moves[i] == gLastPrintedMoves[gBattleMoveTarget]) break; } @@ -8748,21 +8748,21 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBattleAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattleDefender]; - gBattleMons[gBattleAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattleDefender]].pp; - gActiveBattler = gBattleAttacker; + gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattleMoveTarget]; + gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattleMoveTarget]].pp; + gActiveBattler = gBattleMoveAttacker; for (i = 0; i < 4; i++) { - movePpData.moves[i] = gBattleMons[gBattleAttacker].moves[i]; - movePpData.pp[i] = gBattleMons[gBattleAttacker].pp[i]; + movePpData.moves[i] = gBattleMons[gBattleMoveAttacker].moves[i]; + movePpData.pp[i] = gBattleMons[gBattleMoveAttacker].pp[i]; } - movePpData.ppBonuses = gBattleMons[gBattleAttacker].ppBonuses; + movePpData.ppBonuses = gBattleMons[gBattleMoveAttacker].ppBonuses; - EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); + MarkBattlerForControllerExec(gActiveBattler); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattleDefender]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattleMoveTarget]) gBattlescriptCurrInstr += 5; } @@ -8822,17 +8822,17 @@ static void atkA9_trychoosesleeptalkmove(void) for (i = 0; i < 4; i++) { - if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBattleAttacker].moves[i]) - || gBattleMons[gBattleAttacker].moves[i] == MOVE_FOCUS_PUNCH - || gBattleMons[gBattleAttacker].moves[i] == MOVE_UPROAR - || IsTwoTurnsMove(gBattleMons[gBattleAttacker].moves[i])) + if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBattleMoveAttacker].moves[i]) + || gBattleMons[gBattleMoveAttacker].moves[i] == MOVE_FOCUS_PUNCH + || gBattleMons[gBattleMoveAttacker].moves[i] == MOVE_UPROAR + || IsTwoTurnsMove(gBattleMons[gBattleMoveAttacker].moves[i])) { unusableMovesBits |= gBitTable[i]; } } - unusableMovesBits = CheckMoveLimitations(gBattleAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); + unusableMovesBits = CheckMoveLimitations(gBattleMoveAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); if (unusableMovesBits == 0xF) // all 4 moves cannot be chosen { gBattlescriptCurrInstr += 5; @@ -8846,25 +8846,25 @@ static void atkA9_trychoosesleeptalkmove(void) movePosition = Random() & 3; } while ((gBitTable[movePosition] & unusableMovesBits)); - gRandomMove = gBattleMons[gBattleAttacker].moves[movePosition]; + gRandomMove = gBattleMons[gBattleMoveAttacker].moves[movePosition]; gCurrMovePos = movePosition; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBattleDefender = GetMoveTarget(gRandomMove, 0); + gBattleMoveTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkAA_setdestinybond(void) { - gBattleMons[gBattleAttacker].status2 |= STATUS2_DESTINY_BOND; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } static void TrySetDestinyBondToHappen(void) { - u8 sideAttacker = GetBattlerSide(gBattleAttacker); - u8 sideTarget = GetBattlerSide(gBattleDefender); - if (gBattleMons[gBattleDefender].status2 & STATUS2_DESTINY_BOND + u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); + u8 sideTarget = GetBattlerSide(gBattleMoveTarget); + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_DESTINY_BOND && sideAttacker != sideTarget && !(gHitMarker & HITMARKER_GRUDGE)) { @@ -8881,7 +8881,7 @@ static void atkAB_trysetdestinybondtohappen(void) static void atkAC_remaininghptopower(void) { s32 i; - s32 hpFraction = GetScaledHPFraction(gBattleMons[gBattleAttacker].hp, gBattleMons[gBattleAttacker].maxHP, 48); + s32 hpFraction = GetScaledHPFraction(gBattleMons[gBattleMoveAttacker].hp, gBattleMons[gBattleMoveAttacker].maxHP, 48); for (i = 0; i < (s32) sizeof(sFlailHpScaleToPowerTable); i += 2) { @@ -8895,43 +8895,43 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastMoves[gBattleDefender] != 0 - && gLastMoves[gBattleDefender] != 0xFFFF) + if (gLastMoves[gBattleMoveTarget] != 0 + && gLastMoves[gBattleMoveTarget] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gLastMoves[gBattleDefender] == gBattleMons[gBattleDefender].moves[i]) + if (gLastMoves[gBattleMoveTarget] == gBattleMons[gBattleMoveTarget].moves[i]) break; } - if (i != 4 && gBattleMons[gBattleDefender].pp[i] > 1) + if (i != 4 && gBattleMons[gBattleMoveTarget].pp[i] > 1) { s32 ppToDeduct = (Random() & 3) + 2; - if (gBattleMons[gBattleDefender].pp[i] < ppToDeduct) - ppToDeduct = gBattleMons[gBattleDefender].pp[i]; + if (gBattleMons[gBattleMoveTarget].pp[i] < ppToDeduct) + ppToDeduct = gBattleMons[gBattleMoveTarget].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleDefender]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleMoveTarget]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 1, ppToDeduct) - gBattleMons[gBattleDefender].pp[i] -= ppToDeduct; - gActiveBattler = gBattleDefender; + gBattleMons[gBattleMoveTarget].pp[i] -= ppToDeduct; + gActiveBattler = gBattleMoveTarget; if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr += 5; - if (gBattleMons[gBattleDefender].pp[i] == 0) - CancelMultiTurnMoves(gBattleDefender); + if (gBattleMons[gBattleMoveTarget].pp[i] == 0) + CancelMultiTurnMoves(gBattleMoveTarget); } else { @@ -8956,23 +8956,23 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBattleAttacker].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gBattleMoveAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBattleAttacker].status1 = 0; - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleMoveAttacker].status1 = 0; + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); } else { - RecordAbilityBattle(gBattleAttacker, gBattleMons[gBattleAttacker].ability); + RecordAbilityBattle(gBattleMoveAttacker, gBattleMons[gBattleMoveAttacker].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); + gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) @@ -8998,10 +8998,10 @@ static void atkAE_healpartystatus(void) { u8 ability; - if (gBattlePartyID[gBattleAttacker] == i) - ability = gBattleMons[gBattleAttacker].ability; + if (gBattlerPartyIndexes[gBattleMoveAttacker] == i) + ability = gBattleMons[gBattleMoveAttacker].ability; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattlePartyID[gActiveBattler] == i + && gBattlerPartyIndexes[gActiveBattler] == i && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) ability = gBattleMons[gActiveBattler].ability; else @@ -9017,10 +9017,10 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = 4; toHeal = 0x3F; - gBattleMons[gBattleAttacker].status1 = 0; - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleMoveAttacker].status1 = 0; + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { @@ -9032,9 +9032,9 @@ static void atkAE_healpartystatus(void) if (toHeal) { - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero); + MarkBattlerForControllerExec(gActiveBattler); } gBattlescriptCurrInstr++; @@ -9042,14 +9042,14 @@ static void atkAE_healpartystatus(void) static void atkAF_cursetarget(void) { - if (gBattleMons[gBattleDefender].status2 & STATUS2_CURSED) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_CURSED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBattleDefender].status2 |= STATUS2_CURSED; - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 2; + gBattleMons[gBattleMoveTarget].status2 |= STATUS2_CURSED; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9059,11 +9059,11 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { - u8 targetSide = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; + u8 targetSide = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; if (gSideTimers[targetSide].spikesAmount == 3) { - gSpecialStatuses[gBattleAttacker].flag20 = 1; + gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else @@ -9076,7 +9076,7 @@ static void atkB0_trysetspikes(void) static void atkB1_setforesight(void) { - gBattleMons[gBattleDefender].status2 |= STATUS2_FORESIGHT; + gBattleMons[gBattleMoveTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } @@ -9100,7 +9100,7 @@ static void atkB2_trysetperishsong(void) } } - PressurePPLoseOnUsingPerishSong(gBattleAttacker); + PressurePPLoseOnUsingPerishSong(gBattleMoveAttacker); if (notAffectedCount == gBattlersCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -9112,31 +9112,31 @@ static void atkB3_rolloutdamagecalculation(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - CancelMultiTurnMoves(gBattleAttacker); + CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { s32 i; - if (!(gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit + if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit { - gDisableStructs[gBattleAttacker].rolloutCounter1 = 5; - gDisableStructs[gBattleAttacker].rolloutCounter2 = 5; - gBattleMons[gBattleAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBattleAttacker] = gCurrentMove; + gDisableStructs[gBattleMoveAttacker].rolloutCounter1 = 5; + gDisableStructs[gBattleMoveAttacker].rolloutCounter2 = 5; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattleMoveAttacker] = gCurrentMove; } - if (--gDisableStructs[gBattleAttacker].rolloutCounter1 == 0) // last hit + if (--gDisableStructs[gBattleMoveAttacker].rolloutCounter1 == 0) // last hit { - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); } gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < (5 - gDisableStructs[gBattleAttacker].rolloutCounter1); i++) + for (i = 1; i < (5 - gDisableStructs[gBattleMoveAttacker].rolloutCounter1); i++) gDynamicBasePower *= 2; - if (gBattleMons[gBattleAttacker].status2 & STATUS2_DEFENSE_CURL) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_DEFENSE_CURL) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -9145,8 +9145,8 @@ static void atkB3_rolloutdamagecalculation(void) static void atkB4_jumpifconfusedandstatmaxed(void) { - if (gBattleMons[gBattleDefender].status2 & STATUS2_CONFUSION - && gBattleMons[gBattleDefender].statStages[gBattlescriptCurrInstr[1]] == 0xC) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_CONFUSION + && gBattleMons[gBattleMoveTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -9156,19 +9156,19 @@ static void atkB5_furycuttercalc(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gDisableStructs[gBattleAttacker].furyCutterCounter = 0; + gDisableStructs[gBattleMoveAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { s32 i; - if (gDisableStructs[gBattleAttacker].furyCutterCounter != 5) - gDisableStructs[gBattleAttacker].furyCutterCounter++; + if (gDisableStructs[gBattleMoveAttacker].furyCutterCounter != 5) + gDisableStructs[gBattleMoveAttacker].furyCutterCounter++; gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < gDisableStructs[gBattleAttacker].furyCutterCounter; i++) + for (i = 1; i < gDisableStructs[gBattleMoveAttacker].furyCutterCounter; i++) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -9178,9 +9178,9 @@ static void atkB5_furycuttercalc(void) static void atkB6_happinesstodamagecalculation(void) { if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) - gDynamicBasePower = 10 * (gBattleMons[gBattleAttacker].friendship) / 25; + gDynamicBasePower = 10 * (gBattleMons[gBattleMoveAttacker].friendship) / 25; else // EFFECT_FRUSTRATION - gDynamicBasePower = 10 * (255 - gBattleMons[gBattleAttacker].friendship) / 25; + gDynamicBasePower = 10 * (255 - gBattleMons[gBattleMoveAttacker].friendship) / 25; gBattlescriptCurrInstr++; } @@ -9197,14 +9197,14 @@ static void atkB7_presentdamagecalculation(void) gDynamicBasePower = 120; else { - gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } if (rand < 204) gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; - else if (gBattleMons[gBattleDefender].maxHP == gBattleMons[gBattleDefender].hp) + else if (gBattleMons[gBattleMoveTarget].maxHP == gBattleMons[gBattleMoveTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { @@ -9215,16 +9215,16 @@ static void atkB7_presentdamagecalculation(void) static void atkB8_setsafeguard(void) { - if (gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] & SIDE_STATUS_SAFEGUARD) + if (gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleAttacker)] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].safeguardTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleAttacker)].safeguardBank = gBattleAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].safeguardTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].safeguardBank = gBattleMoveAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -9274,11 +9274,11 @@ static void atkB9_magnitudedamagecalculation(void) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 2, magnitude) - for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) + for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) { - if (gBattleDefender == gBattleAttacker) + if (gBattleMoveTarget == gBattleMoveAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) // a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) // a valid target was found break; } @@ -9289,36 +9289,36 @@ static void atkBA_jumpifnopursuitswitchdmg(void) { if (gMultiHitCounter == 1) { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); } else { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else - gBattleDefender = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gActionForBanks[gBattleDefender] == ACTION_USE_MOVE - && gBattleAttacker == *(gBattleStruct->moveTarget + gBattleDefender) - && !(gBattleMons[gBattleDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) - && gBattleMons[gBattleAttacker].hp - && !gDisableStructs[gBattleDefender].truantCounter - && gChosenMovesByBanks[gBattleDefender] == MOVE_PURSUIT) + if (gActionForBanks[gBattleMoveTarget] == ACTION_USE_MOVE + && gBattleMoveAttacker == *(gBattleStruct->moveTarget + gBattleMoveTarget) + && !(gBattleMons[gBattleMoveTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + && gBattleMons[gBattleMoveAttacker].hp + && !gDisableStructs[gBattleMoveTarget].truantCounter + && gChosenMovesByBanks[gBattleMoveTarget] == MOVE_PURSUIT) { s32 i; for (i = 0; i < gBattlersCount; i++) { - if (gBattleTurnOrder[i] == gBattleDefender) + if (gBattleTurnOrder[i] == gBattleMoveTarget) gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleDefender); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleMoveTarget); gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); @@ -9348,16 +9348,16 @@ static void atkBB_setsunny(void) static void atkBC_maxattackhalvehp(void) // belly drum { - u32 halfHp = gBattleMons[gBattleAttacker].maxHP / 2; + u32 halfHp = gBattleMons[gBattleMoveAttacker].maxHP / 2; - if (!(gBattleMons[gBattleAttacker].maxHP / 2)) + if (!(gBattleMons[gBattleMoveAttacker].maxHP / 2)) halfHp = 1; - if (gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ATK] < 12 - && gBattleMons[gBattleAttacker].hp > halfHp) + if (gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ATK] < 12 + && gBattleMons[gBattleMoveAttacker].hp > halfHp) { - gBattleMons[gBattleAttacker].statStages[STAT_STAGE_ATK] = 12; - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 2; + gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ATK] = 12; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9375,7 +9375,7 @@ static void atkBD_copyfoestats(void) // psych up for (i = 0; i < BATTLE_STATS_NO; i++) { - gBattleMons[gBattleAttacker].statStages[i] = gBattleMons[gBattleDefender].statStages[i]; + gBattleMons[gBattleMoveAttacker].statStages[i] = gBattleMons[gBattleMoveTarget].statStages[i]; } gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter. @@ -9383,32 +9383,32 @@ static void atkBD_copyfoestats(void) // psych up static void atkBE_rapidspinfree(void) { - if (gBattleMons[gBattleAttacker].status2 & STATUS2_WRAPPED) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_WRAPPED) { - gBattleScripting.battler = gBattleDefender; - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_WRAPPED); - gBattleDefender = *(gBattleStruct->wrappedBy + gBattleAttacker); + gBattleScripting.battler = gBattleMoveTarget; + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_WRAPPED); + gBattleMoveTarget = *(gBattleStruct->wrappedBy + gBattleMoveAttacker); gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff1[1] = B_BUFF_MOVE; - gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBattleAttacker * 2 + 0); - gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBattleAttacker * 2 + 1); + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBattleMoveAttacker * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBattleMoveAttacker * 2 + 1); gBattleTextBuff1[4] = B_BUFF_EOS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WrapFree; } - else if (gStatuses3[gBattleAttacker] & STATUS3_LEECHSEED) + else if (gStatuses3[gBattleMoveAttacker] & STATUS3_LEECHSEED) { - gStatuses3[gBattleAttacker] &= ~(STATUS3_LEECHSEED); - gStatuses3[gBattleAttacker] &= ~(STATUS3_LEECHSEED_BANK); + gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_LEECHSEED); + gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_LEECHSEED_BANK); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideStatuses[GetBattlerSide(gBattleAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideStatuses[GetBattlerSide(gBattleMoveAttacker)] & SIDE_STATUS_SPIKES) { - gSideStatuses[GetBattlerSide(gBattleAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimers[GetBattlerSide(gBattleAttacker)].spikesAmount = 0; + gSideStatuses[GetBattlerSide(gBattleMoveAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBattlerSide(gBattleMoveAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -9420,22 +9420,22 @@ static void atkBE_rapidspinfree(void) static void atkBF_setdefensecurlbit(void) { - gBattleMons[gBattleAttacker].status2 |= STATUS2_DEFENSE_CURL; + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; } static void atkC0_recoverbasedonsunlight(void) { - gBattleDefender = gBattleAttacker; + gBattleMoveTarget = gBattleMoveAttacker; - if (gBattleMons[gBattleAttacker].hp != gBattleMons[gBattleAttacker].maxHP) + if (gBattleMons[gBattleMoveAttacker].hp != gBattleMons[gBattleMoveAttacker].maxHP) { if (gBattleWeather == 0 || !WEATHER_HAS_EFFECT) - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 2; else if (gBattleWeather & WEATHER_SUN_ANY) - gBattleMoveDamage = 20 * gBattleMons[gBattleAttacker].maxHP / 30; + gBattleMoveDamage = 20 * gBattleMons[gBattleMoveAttacker].maxHP / 30; else // not sunny weather - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9455,19 +9455,19 @@ static void atkC1_hiddenpowercalc(void) u32 powerBits = 0; u32 typeBits = 0; - powerBits |= ((gBattleMons[gBattleAttacker].hpIV & 2) >> 1); - powerBits |= ((gBattleMons[gBattleAttacker].attackIV & 2) << 0); - powerBits |= ((gBattleMons[gBattleAttacker].defenseIV & 2) << 1); - powerBits |= ((gBattleMons[gBattleAttacker].speedIV & 2) << 2); - powerBits |= ((gBattleMons[gBattleAttacker].spAttackIV & 2) << 3); - powerBits |= ((gBattleMons[gBattleAttacker].spDefenseIV & 2) << 4); + powerBits |= ((gBattleMons[gBattleMoveAttacker].hpIV & 2) >> 1); + powerBits |= ((gBattleMons[gBattleMoveAttacker].attackIV & 2) << 0); + powerBits |= ((gBattleMons[gBattleMoveAttacker].defenseIV & 2) << 1); + powerBits |= ((gBattleMons[gBattleMoveAttacker].speedIV & 2) << 2); + powerBits |= ((gBattleMons[gBattleMoveAttacker].spAttackIV & 2) << 3); + powerBits |= ((gBattleMons[gBattleMoveAttacker].spDefenseIV & 2) << 4); - typeBits |= ((gBattleMons[gBattleAttacker].hpIV & 1) << 0); - typeBits |= ((gBattleMons[gBattleAttacker].attackIV & 1) << 1); - typeBits |= ((gBattleMons[gBattleAttacker].defenseIV & 1) << 2); - typeBits |= ((gBattleMons[gBattleAttacker].speedIV & 1) << 3); - typeBits |= ((gBattleMons[gBattleAttacker].spAttackIV & 1) << 4); - typeBits |= ((gBattleMons[gBattleAttacker].spDefenseIV & 1) << 5); + typeBits |= ((gBattleMons[gBattleMoveAttacker].hpIV & 1) << 0); + typeBits |= ((gBattleMons[gBattleMoveAttacker].attackIV & 1) << 1); + typeBits |= ((gBattleMons[gBattleMoveAttacker].defenseIV & 1) << 2); + typeBits |= ((gBattleMons[gBattleMoveAttacker].speedIV & 1) << 3); + typeBits |= ((gBattleMons[gBattleMoveAttacker].spAttackIV & 1) << 4); + typeBits |= ((gBattleMons[gBattleMoveAttacker].spDefenseIV & 1) << 5); gDynamicBasePower = (40 * powerBits) / 63 + 30; @@ -9490,7 +9490,7 @@ static void atkC1_hiddenpowercalc(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r2, =gBattleMons\n\ - ldr r0, =gBattleAttacker\n\ + ldr r0, =gBattleMoveAttacker\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r4, r1, 0\n\ @@ -9626,11 +9626,11 @@ _080544F0:\n\ static void atkC2_selectfirstvalidtarget(void) { - for (gBattleDefender = 0; gBattleDefender < gBattlersCount; gBattleDefender++) + for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) { - if (gBattleDefender == gBattleAttacker) + if (gBattleMoveTarget == gBattleMoveAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) break; } gBattlescriptCurrInstr++; @@ -9638,22 +9638,22 @@ static void atkC2_selectfirstvalidtarget(void) static void atkC3_trysetfutureattack(void) { - if (gWishFutureKnock.futureSightCounter[gBattleDefender] != 0) + if (gWishFutureKnock.futureSightCounter[gBattleMoveTarget] != 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)] |= SIDE_STATUS_FUTUREATTACK; - gWishFutureKnock.futureSightMove[gBattleDefender] = gCurrentMove; - gWishFutureKnock.futureSightAttacker[gBattleDefender] = gBattleAttacker; - gWishFutureKnock.futureSightCounter[gBattleDefender] = 3; - gWishFutureKnock.futureSightDmg[gBattleDefender] = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleDefender], gCurrentMove, - gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)], 0, - 0, gBattleAttacker, gBattleDefender); + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)] |= SIDE_STATUS_FUTUREATTACK; + gWishFutureKnock.futureSightMove[gBattleMoveTarget] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBattleMoveTarget] = gBattleMoveAttacker; + gWishFutureKnock.futureSightCounter[gBattleMoveTarget] = 3; + gWishFutureKnock.futureSightDmg[gBattleMoveTarget] = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveTarget], gCurrentMove, + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)], 0, + 0, gBattleMoveAttacker, gBattleMoveTarget); - if (gProtectStructs[gBattleAttacker].helpingHand) - gWishFutureKnock.futureSightDmg[gBattleDefender] = gWishFutureKnock.futureSightDmg[gBattleDefender] * 15 / 10; + if (gProtectStructs[gBattleMoveAttacker].helpingHand) + gWishFutureKnock.futureSightDmg[gBattleMoveTarget] = gWishFutureKnock.futureSightDmg[gBattleMoveTarget] * 15 / 10; if (gCurrentMove == MOVE_DOOM_DESIRE) gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -9668,12 +9668,12 @@ static void atkC4_trydobeatup(void) { struct Pokemon *party; - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBattleDefender].hp == 0) + if (gBattleMons[gBattleMoveTarget].hp == 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -9690,16 +9690,16 @@ static void atkC4_trydobeatup(void) } if (gBattleCommunication[0] < 6) { - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleAttacker, gBattleCommunication[0]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattleCommunication[0]) gBattlescriptCurrInstr += 9; gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gBaseStats[gBattleMons[gBattleDefender].species].baseDefense; + gBattleMoveDamage /= gBaseStats[gBattleMons[gBattleMoveTarget].species].baseDefense; gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; - if (gProtectStructs[gBattleAttacker].helpingHand) + if (gProtectStructs[gBattleMoveAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattleCommunication[0]++; @@ -9717,13 +9717,13 @@ static void atkC5_setsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBattleAttacker] |= STATUS3_ON_AIR; + gStatuses3[gBattleMoveAttacker] |= STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBattleAttacker] |= STATUS3_UNDERGROUND; + gStatuses3[gBattleMoveAttacker] |= STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBattleAttacker] |= STATUS3_UNDERWATER; + gStatuses3[gBattleMoveAttacker] |= STATUS3_UNDERWATER; break; } @@ -9736,13 +9736,13 @@ static void atkC6_clearsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBattleAttacker] &= ~STATUS3_ON_AIR; + gStatuses3[gBattleMoveAttacker] &= ~STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBattleAttacker] &= ~STATUS3_UNDERGROUND; + gStatuses3[gBattleMoveAttacker] &= ~STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBattleAttacker] &= ~STATUS3_UNDERWATER; + gStatuses3[gBattleMoveAttacker] &= ~STATUS3_UNDERWATER; break; } @@ -9752,7 +9752,7 @@ static void atkC6_clearsemiinvulnerablebit(void) static void atkC7_setminimize(void) { if (gHitMarker & HITMARKER_OBEYS) - gStatuses3[gBattleAttacker] |= STATUS3_MINIMIZED; + gStatuses3[gBattleMoveAttacker] |= STATUS3_MINIMIZED; gBattlescriptCurrInstr++; } @@ -9776,34 +9776,34 @@ static void atkC8_sethail(void) static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento { - if (gBattleMons[gBattleDefender].statStages[STAT_STAGE_ATK] == 0 - && gBattleMons[gBattleDefender].statStages[STAT_STAGE_SPATK] == 0 + if (gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_SPATK] == 0 && gBattleCommunication[6] != 1) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; - EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } } static void atkCA_setforcedtarget(void) // follow me { - gSideTimers[GetBattlerSide(gBattleAttacker)].followmeTimer = 1; - gSideTimers[GetBattlerSide(gBattleAttacker)].followmeTarget = gBattleAttacker; + gSideTimers[GetBattlerSide(gBattleMoveAttacker)].followmeTimer = 1; + gSideTimers[GetBattlerSide(gBattleMoveAttacker)].followmeTarget = gBattleMoveAttacker; gBattlescriptCurrInstr++; } static void atkCB_setcharge(void) { - gStatuses3[gBattleAttacker] |= STATUS3_CHARGED_UP; - gDisableStructs[gBattleAttacker].chargeTimer1 = 2; - gDisableStructs[gBattleAttacker].chargeTimer2 = 2; + gStatuses3[gBattleMoveAttacker] |= STATUS3_CHARGED_UP; + gDisableStructs[gBattleMoveAttacker].chargeTimer1 = 2; + gDisableStructs[gBattleMoveAttacker].chargeTimer2 = 2; gBattlescriptCurrInstr++; } @@ -9811,20 +9811,20 @@ static void atkCC_callterrainattack(void) // nature power { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; - gBattleDefender = GetMoveTarget(gCurrentMove, 0); + gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh { - if (gBattleMons[gBattleAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + if (gBattleMons[gBattleMoveAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) { - gBattleMons[gBattleAttacker].status1 = 0; + gBattleMons[gBattleMoveAttacker].status1 = 0; gBattlescriptCurrInstr += 5; - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } else { @@ -9834,20 +9834,20 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh static void atkCE_settorment(void) { - if (gBattleMons[gBattleDefender].status2 & STATUS2_TORMENT) + if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_TORMENT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBattleDefender].status2 |= STATUS2_TORMENT; + gBattleMons[gBattleMoveTarget].status2 |= STATUS2_TORMENT; gBattlescriptCurrInstr += 5; } } static void atkCF_jumpifnodamage(void) { - if (gProtectStructs[gBattleAttacker].physicalDmg || gProtectStructs[gBattleAttacker].specialDmg) + if (gProtectStructs[gBattleMoveAttacker].physicalDmg || gProtectStructs[gBattleMoveAttacker].specialDmg) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -9855,10 +9855,10 @@ static void atkCF_jumpifnodamage(void) static void atkD0_settaunt(void) { - if (gDisableStructs[gBattleDefender].tauntTimer1 == 0) + if (gDisableStructs[gBattleMoveTarget].tauntTimer1 == 0) { - gDisableStructs[gBattleDefender].tauntTimer1 = 2; - gDisableStructs[gBattleDefender].tauntTimer2 = 2; + gDisableStructs[gBattleMoveTarget].tauntTimer1 = 2; + gDisableStructs[gBattleMoveTarget].tauntTimer2 = 2; gBattlescriptCurrInstr += 5; } else @@ -9869,14 +9869,14 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBattleDefender = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); + gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBattlerFlags & gBitTable[gBattleDefender]) - && !gProtectStructs[gBattleAttacker].helpingHand - && !gProtectStructs[gBattleDefender].helpingHand) + && !(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + && !gProtectStructs[gBattleMoveAttacker].helpingHand + && !gProtectStructs[gBattleMoveTarget].helpingHand) { - gProtectStructs[gBattleDefender].helpingHand = 1; + gProtectStructs[gBattleMoveTarget].helpingHand = 1; gBattlescriptCurrInstr += 5; } else @@ -9889,7 +9889,7 @@ static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_x4000000 - || (GetBattlerSide(gBattleAttacker) == B_SIDE_OPPONENT + || (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -9900,8 +9900,8 @@ static void atkD2_tryswapitems(void) // trick } else { - u8 sideAttacker = GetBattlerSide(gBattleAttacker); - u8 sideTarget = GetBattlerSide(gBattleDefender); + u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); + u8 sideTarget = GetBattlerSide(gBattleMoveTarget); // you can't swap items if they were knocked off in regular battles if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK @@ -9909,53 +9909,53 @@ static void atkD2_tryswapitems(void) // trick | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_x2000000)) - && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlePartyID[gBattleAttacker]] - || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBattleDefender]])) + && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattleMoveAttacker]] + || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattleMoveTarget]])) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // can't swap if two pokemon don't have an item // or if either of them is an enigma berry or a mail - else if ((gBattleMons[gBattleAttacker].item == 0 && gBattleMons[gBattleDefender].item == 0) - || gBattleMons[gBattleAttacker].item == ITEM_ENIGMA_BERRY - || gBattleMons[gBattleDefender].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBattleAttacker].item) - || IS_ITEM_MAIL(gBattleMons[gBattleDefender].item)) + else if ((gBattleMons[gBattleMoveAttacker].item == 0 && gBattleMons[gBattleMoveTarget].item == 0) + || gBattleMons[gBattleMoveAttacker].item == ITEM_ENIGMA_BERRY + || gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattleMoveAttacker].item) + || IS_ITEM_MAIL(gBattleMons[gBattleMoveTarget].item)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // check if ability prevents swapping - else if (gBattleMons[gBattleDefender].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBattleMoveTarget].ability == ABILITY_STICKY_HOLD) { gBattlescriptCurrInstr = BattleScript_StickyHoldActivates; - gLastUsedAbility = gBattleMons[gBattleDefender].ability; - RecordAbilityBattle(gBattleDefender, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; + RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); } // took a while, but all checks passed and items can be safely swapped else { u16 oldItemAtk, *newItemAtk; - newItemAtk = &gBattleStruct->changedItems[gBattleAttacker]; - oldItemAtk = gBattleMons[gBattleAttacker].item; - *newItemAtk = gBattleMons[gBattleDefender].item; + newItemAtk = &gBattleStruct->changedItems[gBattleMoveAttacker]; + oldItemAtk = gBattleMons[gBattleMoveAttacker].item; + *newItemAtk = gBattleMons[gBattleMoveTarget].item; - gBattleMons[gBattleAttacker].item = 0; - gBattleMons[gBattleDefender].item = oldItemAtk; + gBattleMons[gBattleMoveAttacker].item = 0; + gBattleMons[gBattleMoveTarget].item = oldItemAtk; - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); - MarkBufferBankForExecution(gBattleAttacker); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); + MarkBattlerForControllerExec(gBattleMoveAttacker); - gActiveBattler = gBattleDefender; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleDefender].item); - MarkBufferBankForExecution(gBattleDefender); + gActiveBattler = gBattleMoveTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleMoveTarget].item); + MarkBattlerForControllerExec(gBattleMoveTarget); - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleDefender]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 1) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleAttacker]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleAttacker]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveAttacker]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveAttacker]) + 1) = 0; gBattlescriptCurrInstr += 5; @@ -9974,11 +9974,11 @@ static void atkD2_tryswapitems(void) // trick static void atkD3_trycopyability(void) // role play { - if (gBattleMons[gBattleDefender].ability != 0 - && gBattleMons[gBattleDefender].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[gBattleMoveTarget].ability != 0 + && gBattleMons[gBattleMoveTarget].ability != ABILITY_WONDER_GUARD) { - gBattleMons[gBattleAttacker].ability = gBattleMons[gBattleDefender].ability; - gLastUsedAbility = gBattleMons[gBattleDefender].ability; + gBattleMons[gBattleMoveAttacker].ability = gBattleMons[gBattleMoveTarget].ability; + gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; gBattlescriptCurrInstr += 5; } else @@ -9992,10 +9992,10 @@ static void atkD4_trywish(void) switch (gBattlescriptCurrInstr[1]) { case 0: // use wish - if (gWishFutureKnock.wishCounter[gBattleAttacker] == 0) + if (gWishFutureKnock.wishCounter[gBattleMoveAttacker] == 0) { - gWishFutureKnock.wishCounter[gBattleAttacker] = 2; - gWishFutureKnock.wishUserID[gBattleAttacker] = gBattlePartyID[gBattleAttacker]; + gWishFutureKnock.wishCounter[gBattleMoveAttacker] = 2; + gWishFutureKnock.wishUserID[gBattleMoveAttacker] = gBattlerPartyIndexes[gBattleMoveAttacker]; gBattlescriptCurrInstr += 6; } else @@ -10004,14 +10004,14 @@ static void atkD4_trywish(void) } break; case 1: // heal effect - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleDefender, gWishFutureKnock.wishUserID[gBattleDefender]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleMoveTarget, gWishFutureKnock.wishUserID[gBattleMoveTarget]) - gBattleMoveDamage = gBattleMons[gBattleDefender].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBattleDefender].hp == gBattleMons[gBattleDefender].maxHP) + if (gBattleMons[gBattleMoveTarget].hp == gBattleMons[gBattleMoveTarget].maxHP) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -10022,23 +10022,23 @@ static void atkD4_trywish(void) static void atkD5_trysetroots(void) // ingrain { - if (gStatuses3[gBattleAttacker] & STATUS3_ROOTED) + if (gStatuses3[gBattleMoveAttacker] & STATUS3_ROOTED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBattleAttacker] |= STATUS3_ROOTED; + gStatuses3[gBattleMoveAttacker] |= STATUS3_ROOTED; gBattlescriptCurrInstr += 5; } } static void atkD6_doubledamagedealtifdamaged(void) { - if ((gProtectStructs[gBattleAttacker].physicalDmg - && gProtectStructs[gBattleAttacker].physicalBank == gBattleDefender) - || (gProtectStructs[gBattleAttacker].specialDmg - && gProtectStructs[gBattleAttacker].specialBank == gBattleDefender)) + if ((gProtectStructs[gBattleMoveAttacker].physicalDmg + && gProtectStructs[gBattleMoveAttacker].physicalBank == gBattleMoveTarget) + || (gProtectStructs[gBattleMoveAttacker].specialDmg + && gProtectStructs[gBattleMoveAttacker].specialBank == gBattleMoveTarget)) { gBattleScripting.dmgMultiplier = 2; } @@ -10048,27 +10048,27 @@ static void atkD6_doubledamagedealtifdamaged(void) static void atkD7_setyawn(void) { - if (gStatuses3[gBattleDefender] & STATUS3_YAWN - || gBattleMons[gBattleDefender].status1 & STATUS1_ANY) + if (gStatuses3[gBattleMoveTarget] & STATUS3_YAWN + || gBattleMons[gBattleMoveTarget].status1 & STATUS1_ANY) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBattleDefender] |= 0x1000; + gStatuses3[gBattleMoveTarget] |= 0x1000; gBattlescriptCurrInstr += 5; } } static void atkD8_setdamagetohealthdifference(void) { - if (gBattleMons[gBattleDefender].hp <= gBattleMons[gBattleAttacker].hp) + if (gBattleMons[gBattleMoveTarget].hp <= gBattleMons[gBattleMoveAttacker].hp) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMoveDamage = gBattleMons[gBattleDefender].hp - gBattleMons[gBattleAttacker].hp; + gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - gBattleMons[gBattleMoveAttacker].hp; gBattlescriptCurrInstr += 5; } } @@ -10078,7 +10078,7 @@ static void atkD9_scaledamagebyhealthratio(void) if (gDynamicBasePower == 0) { u8 power = gBattleMoves[gCurrentMove].power; - gDynamicBasePower = gBattleMons[gBattleAttacker].hp * power / gBattleMons[gBattleAttacker].maxHP; + gDynamicBasePower = gBattleMons[gBattleMoveAttacker].hp * power / gBattleMons[gBattleMoveAttacker].maxHP; if (gDynamicBasePower == 0) gDynamicBasePower = 1; } @@ -10087,19 +10087,19 @@ static void atkD9_scaledamagebyhealthratio(void) static void atkDA_tryswapabilities(void) // skill swap { - if ((gBattleMons[gBattleAttacker].ability == 0 - && gBattleMons[gBattleDefender].ability == 0) - || gBattleMons[gBattleAttacker].ability == ABILITY_WONDER_GUARD - || gBattleMons[gBattleDefender].ability == ABILITY_WONDER_GUARD + if ((gBattleMons[gBattleMoveAttacker].ability == 0 + && gBattleMons[gBattleMoveTarget].ability == 0) + || gBattleMons[gBattleMoveAttacker].ability == ABILITY_WONDER_GUARD + || gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - u8 abilityAtk = gBattleMons[gBattleAttacker].ability; - gBattleMons[gBattleAttacker].ability = gBattleMons[gBattleDefender].ability; - gBattleMons[gBattleDefender].ability = abilityAtk; + u8 abilityAtk = gBattleMons[gBattleMoveAttacker].ability; + gBattleMons[gBattleMoveAttacker].ability = gBattleMons[gBattleMoveTarget].ability; + gBattleMons[gBattleMoveTarget].ability = abilityAtk; gBattlescriptCurrInstr += 5; } @@ -10107,7 +10107,7 @@ static void atkDA_tryswapabilities(void) // skill swap static void atkDB_tryimprision(void) { - if ((gStatuses3[gBattleAttacker] & STATUS3_IMPRISONED_OTHERS)) + if ((gStatuses3[gBattleMoveAttacker] & STATUS3_IMPRISONED_OTHERS)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -10115,8 +10115,8 @@ static void atkDB_tryimprision(void) { u8 bank, sideAttacker; - sideAttacker = GetBattlerSide(gBattleAttacker); - PressurePPLoseOnUsingImprision(gBattleAttacker); + sideAttacker = GetBattlerSide(gBattleMoveAttacker); + PressurePPLoseOnUsingImprision(gBattleMoveAttacker); for (bank = 0; bank < gBattlersCount; bank++) { if (sideAttacker != GetBattlerSide(bank)) @@ -10127,8 +10127,8 @@ static void atkDB_tryimprision(void) s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] - && gBattleMons[gBattleAttacker].moves[attackerMoveId] != MOVE_NONE) + if (gBattleMons[gBattleMoveAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] + && gBattleMons[gBattleMoveAttacker].moves[attackerMoveId] != MOVE_NONE) break; } if (i != 4) @@ -10136,7 +10136,7 @@ static void atkDB_tryimprision(void) } if (attackerMoveId != 4) { - gStatuses3[gBattleAttacker] |= STATUS3_IMPRISONED_OTHERS; + gStatuses3[gBattleMoveAttacker] |= STATUS3_IMPRISONED_OTHERS; gBattlescriptCurrInstr += 5; break; } @@ -10149,13 +10149,13 @@ static void atkDB_tryimprision(void) static void atkDC_trysetgrudge(void) { - if (gStatuses3[gBattleAttacker] & STATUS3_GRUDGE) + if (gStatuses3[gBattleMoveAttacker] & STATUS3_GRUDGE) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBattleAttacker] |= STATUS3_GRUDGE; + gStatuses3[gBattleMoveAttacker] |= STATUS3_GRUDGE; gBattlescriptCurrInstr += 5; } } @@ -10165,7 +10165,7 @@ static void atkDD_weightdamagecalculation(void) s32 i; for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) { - if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattleDefender].species), 1)) + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattleMoveTarget].species), 1)) break; } @@ -10184,14 +10184,14 @@ static void atkDE_asistattackselect(void) s32 monId, moveId; u16* movesArray = gBattleStruct->assistPossibleMoves; - if (GET_BATTLER_SIDE(gBattleAttacker) != B_SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattleMoveAttacker) != B_SIDE_PLAYER) party = gEnemyParty; else party = gPlayerParty; for (monId = 0; monId < 6; monId++) { - if (monId == gBattlePartyID[gBattleAttacker]) + if (monId == gBattlerPartyIndexes[gBattleMoveAttacker]) continue; if (GetMonData(&party[monId], MON_DATA_SPECIES2) == SPECIES_NONE) continue; @@ -10221,7 +10221,7 @@ static void atkDE_asistattackselect(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; - gBattleDefender = GetMoveTarget(gRandomMove, 0); + gBattleMoveTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr += 5; } else @@ -10232,29 +10232,29 @@ static void atkDE_asistattackselect(void) static void atkDF_trysetmagiccoat(void) { - gBattleDefender = gBattleAttacker; - gSpecialStatuses[gBattleAttacker].flag20 = 1; + gBattleMoveTarget = gBattleMoveAttacker; + gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gProtectStructs[gBattleAttacker].bounceMove = 1; + gProtectStructs[gBattleMoveAttacker].bounceMove = 1; gBattlescriptCurrInstr += 5; } } static void atkE0_trysetsnatch(void) // snatch { - gSpecialStatuses[gBattleAttacker].flag20 = 1; + gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gProtectStructs[gBattleAttacker].stealMove = 1; + gProtectStructs[gBattleMoveAttacker].stealMove = 1; gBattlescriptCurrInstr += 5; } } @@ -10268,15 +10268,15 @@ static void atkE1_trygetintimidatetarget(void) PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.battler].ability) - for (;gBattleDefender < gBattlersCount; gBattleDefender++) + for (;gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) { - if (GetBattlerSide(gBattleDefender) == side) + if (GetBattlerSide(gBattleMoveTarget) == side) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleDefender])) + if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) break; } - if (gBattleDefender >= gBattlersCount) + if (gBattleMoveTarget >= gBattlersCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -10290,8 +10290,8 @@ static void atkE2_switchoutabilities(void) { case ABILITY_NATURAL_CURE: gBattleMons[gActiveBattler].status1 = 0; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } @@ -10426,8 +10426,8 @@ static void atkE6_docastformchangeanimation(void) if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) *(&gBattleStruct->formToChangeInto) |= 0x80; - EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; } @@ -10451,18 +10451,18 @@ static void atkE8_settypebasedhalvers(void) // water and mud sport if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) { - if (!(gStatuses3[gBattleAttacker] & STATUS3_MUDSPORT)) + if (!(gStatuses3[gBattleMoveAttacker] & STATUS3_MUDSPORT)) { - gStatuses3[gBattleAttacker] |= STATUS3_MUDSPORT; + gStatuses3[gBattleMoveAttacker] |= STATUS3_MUDSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 0; worked = TRUE; } } else // water sport { - if (!(gStatuses3[gBattleAttacker] & STATUS3_WATERSPORT)) + if (!(gStatuses3[gBattleMoveAttacker] & STATUS3_WATERSPORT)) { - gStatuses3[gBattleAttacker] |= STATUS3_WATERSPORT; + gStatuses3[gBattleMoveAttacker] |= STATUS3_WATERSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 1; worked = TRUE; } @@ -10499,7 +10499,7 @@ static void atkEA_tryrecycleitem(void) { u16 *usedHeldItem; - gActiveBattler = gBattleAttacker; + gActiveBattler = gBattleMoveAttacker; usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBattler]; if (*usedHeldItem != 0 && gBattleMons[gActiveBattler].item == 0) { @@ -10507,8 +10507,8 @@ static void atkEA_tryrecycleitem(void) *usedHeldItem = 0; gBattleMons[gActiveBattler].item = gLastUsedItem; - EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; } @@ -10520,11 +10520,11 @@ static void atkEA_tryrecycleitem(void) static void atkEB_settypetoterrain(void) { - if (gBattleMons[gBattleAttacker].type1 != sTerrainToType[gBattleTerrain] - && gBattleMons[gBattleAttacker].type2 != sTerrainToType[gBattleTerrain]) + if (gBattleMons[gBattleMoveAttacker].type1 != sTerrainToType[gBattleTerrain] + && gBattleMons[gBattleMoveAttacker].type2 != sTerrainToType[gBattleTerrain]) { - gBattleMons[gBattleAttacker].type1 = sTerrainToType[gBattleTerrain]; - gBattleMons[gBattleAttacker].type2 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattleMoveAttacker].type1 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattleMoveAttacker].type2 = sTerrainToType[gBattleTerrain]; PREPARE_TYPE_BUFFER(gBattleTextBuff1, sTerrainToType[gBattleTerrain]) @@ -10538,7 +10538,7 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) @@ -10549,8 +10549,8 @@ static void atkEC_pursuitrelated(void) gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; - gBattleScripting.field_20 = gBattleAttacker; - gBattleAttacker = gActiveBattler; + gBattleScripting.field_20 = gBattleMoveAttacker; + gBattleMoveAttacker = gActiveBattler; } else { @@ -10560,12 +10560,12 @@ static void atkEC_pursuitrelated(void) static void atkEF_snatchsetbanks(void) { - gEffectBank = gBattleAttacker; + gEffectBank = gBattleMoveAttacker; - if (gBattleAttacker == gBattleDefender) - gBattleAttacker = gBattleDefender = gBattleScripting.battler; + if (gBattleMoveAttacker == gBattleMoveTarget) + gBattleMoveAttacker = gBattleMoveTarget = gBattleScripting.battler; else - gBattleDefender = gBattleScripting.battler; + gBattleMoveTarget = gBattleScripting.battler; gBattleScripting.battler = gEffectBank; gBattlescriptCurrInstr++; @@ -10573,7 +10573,7 @@ static void atkEF_snatchsetbanks(void) static void atkEE_removelightscreenreflect(void) // brick break { - u8 opposingSide = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; + u8 opposingSide = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer) { @@ -10597,22 +10597,22 @@ static void atkEF_handleballthrow(void) { u8 ballMultiplier = 0; - if (gBattleExecBuffer) + if (gBattleControllerExecFlags) return; - gActiveBattler = gBattleAttacker; - gBattleDefender = gBattleAttacker ^ BIT_SIDE; + gActiveBattler = gBattleMoveAttacker; + gBattleMoveTarget = gBattleMoveAttacker ^ BIT_SIDE; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - EmitBallThrowAnim(0, BALL_TRAINER_BLOCK); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, BALL_TRAINER_BLOCK); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_TrainerBallBlock; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) { - EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_WallyBallThrow; } else @@ -10623,17 +10623,17 @@ static void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_SAFARI_BALL) catchRate = gBattleStruct->field_7C * 1275 / 100; else - catchRate = gBaseStats[gBattleMons[gBattleDefender].species].catchRate; + catchRate = gBaseStats[gBattleMons[gBattleMoveTarget].species].catchRate; if (gLastUsedItem > ITEM_SAFARI_BALL) { switch (gLastUsedItem) { case ITEM_NET_BALL: - if (gBattleMons[gBattleDefender].type1 == TYPE_WATER - || gBattleMons[gBattleDefender].type2 == TYPE_WATER - || gBattleMons[gBattleDefender].type1 == TYPE_BUG - || gBattleMons[gBattleDefender].type2 == TYPE_BUG) + if (gBattleMons[gBattleMoveTarget].type1 == TYPE_WATER + || gBattleMons[gBattleMoveTarget].type2 == TYPE_WATER + || gBattleMons[gBattleMoveTarget].type1 == TYPE_BUG + || gBattleMons[gBattleMoveTarget].type2 == TYPE_BUG) ballMultiplier = 30; else ballMultiplier = 10; @@ -10645,9 +10645,9 @@ static void atkEF_handleballthrow(void) ballMultiplier = 10; break; case ITEM_NEST_BALL: - if (gBattleMons[gBattleDefender].level < 40) + if (gBattleMons[gBattleMoveTarget].level < 40) { - ballMultiplier = 40 - gBattleMons[gBattleDefender].level; + ballMultiplier = 40 - gBattleMons[gBattleMoveTarget].level; if (ballMultiplier <= 9) ballMultiplier = 10; } @@ -10657,7 +10657,7 @@ static void atkEF_handleballthrow(void) } break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattleDefender].species), FLAG_GET_CAUGHT)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattleMoveTarget].species), FLAG_GET_CAUGHT)) ballMultiplier = 30; else ballMultiplier = 10; @@ -10677,12 +10677,12 @@ static void atkEF_handleballthrow(void) ballMultiplier = sBallCatchBonuses[gLastUsedItem - 2]; odds = (catchRate * ballMultiplier / 10) - * (gBattleMons[gBattleDefender].maxHP * 3 - gBattleMons[gBattleDefender].hp * 2) - / (3 * gBattleMons[gBattleDefender].maxHP); + * (gBattleMons[gBattleMoveTarget].maxHP * 3 - gBattleMons[gBattleMoveTarget].hp * 2) + / (3 * gBattleMons[gBattleMoveTarget].maxHP); - if (gBattleMons[gBattleDefender].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + if (gBattleMons[gBattleMoveTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) odds *= 2; - if (gBattleMons[gBattleDefender].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + if (gBattleMons[gBattleMoveTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) odds = (odds * 15) / 10; if (gLastUsedItem != ITEM_SAFARI_BALL) @@ -10700,10 +10700,10 @@ static void atkEF_handleballthrow(void) if (odds > 254) // mon caught { - EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBattleDefender]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10722,13 +10722,13 @@ static void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_MASTER_BALL) shakes = BALL_3_SHAKES_SUCCESS; // why calculate the shakes before that check? - EmitBallThrowAnim(0, shakes); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitBallThrowAnim(0, shakes); + MarkBattlerForControllerExec(gActiveBattler); if (shakes == BALL_3_SHAKES_SUCCESS) // mon caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlePartyID[gBattleDefender]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10746,18 +10746,18 @@ static void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) + if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) { if (!sub_813B21C()) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); - GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); } else { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); - GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); StringCopy(gStringVar3, GetBoxNamePtr(get_unknown_box_id())); gBattleCommunication[MULTISTRING_CHOOSER] = 2; } @@ -10766,9 +10766,9 @@ static void atkF0_givecaughtmon(void) gBattleCommunication[MULTISTRING_CHOOSER]++; } - gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); - GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); - gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); + gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); + gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); gBattlescriptCurrInstr++; } @@ -10804,8 +10804,8 @@ static void atkF2_displaydexinfo(void) { FreeAllWindowBuffers(); gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species), - gBattleMons[gBattleDefender].otId, - gBattleMons[gBattleDefender].personality); + gBattleMons[gBattleMoveTarget].otId, + gBattleMons[gBattleMoveTarget].personality); gBattleCommunication[0]++; } break; @@ -10956,13 +10956,13 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); FreeAllWindowBuffers(); DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick, - GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), - GetMonGender(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]]), - GetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), + GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]]), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), BattleMainCB2); gBattleCommunication[MULTIUSE_STATE]++; @@ -10971,7 +10971,7 @@ static void atkF3_trygivecaughtmonnick(void) case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlePartyID[gBattleAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } break; @@ -10986,13 +10986,13 @@ static void atkF3_trygivecaughtmonnick(void) static void atkF4_subattackerhpbydmg(void) { - gBattleMons[gBattleAttacker].hp -= gBattleMoveDamage; + gBattleMons[gBattleMoveAttacker].hp -= gBattleMoveDamage; gBattlescriptCurrInstr++; } static void atkF5_removeattackerstatus1(void) { - gBattleMons[gBattleAttacker].status1 = 0; + gBattleMons[gBattleMoveAttacker].status1 = 0; gBattlescriptCurrInstr++; } @@ -11010,8 +11010,8 @@ static void atkF7_finishturn(void) static void atkF8_trainerslideout(void) { gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]); - EmitTrainerSlideBack(0); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitTrainerSlideBack(0); + MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 2; } diff --git a/src/battle_util.c b/src/battle_util.c index 135f4f7f2..228727585 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -33,8 +33,8 @@ extern u16 gCurrentMove; extern u16 gLastUsedItem; extern u8 gBattlersCount; extern u32 gStatuses3[MAX_BATTLERS_COUNT]; -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern u8 gAbsentBattlerFlags; extern u16 gBattleWeather; extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; @@ -48,7 +48,7 @@ extern u32 gBattleTypeFlags; extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u32 gHitMarker; extern u8 gEffectBank; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBank1; extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u8 gMoveResultFlags; @@ -56,7 +56,7 @@ extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT]; extern u8 gLastUsedAbility; extern u8 gCurrentActionFuncId; -extern u32 gBattleExecBuffer; +extern u32 gBattleControllerExecFlags; extern u16 gRandomMove; extern u8 gCurrMovePos; extern u8 gUnknown_020241E9; @@ -79,10 +79,10 @@ u8 GetBattleBank(u8 caseId) switch (caseId) { case BS_GET_TARGET: - ret = gBattleDefender; + ret = gBattleMoveTarget; break; case BS_GET_ATTACKER: - ret = gBattleAttacker; + ret = gBattleMoveAttacker; break; case BS_GET_EFFECT_BANK: ret = gEffectBank; @@ -142,8 +142,8 @@ void PressurePPLose(u8 defender, u8 attacker, u16 move) && !(gDisableStructs[attacker].unk18_b & gBitTable[i])) { gActiveBattler = attacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -176,8 +176,8 @@ void PressurePPLoseOnUsingImprision(u8 attacker) && !(gDisableStructs[attacker].unk18_b & gBitTable[imprisionPos])) { gActiveBattler = attacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); + MarkBattlerForControllerExec(gActiveBattler); } } @@ -209,37 +209,33 @@ void PressurePPLoseOnUsingPerishSong(u8 attacker) && !(gDisableStructs[attacker].unk18_b & gBitTable[perishSongPos])) { gActiveBattler = attacker; - EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); + MarkBattlerForControllerExec(gActiveBattler); } } -void MarkAllBufferBanksForExecution(void) // unused +void MarkAllBattlersForControllerExec(void) // unused { s32 i; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { for (i = 0; i < gBattlersCount; i++) - gBattleExecBuffer |= gBitTable[i] << 0x1C; + gBattleControllerExecFlags |= gBitTable[i] << 0x1C; } else { for (i = 0; i < gBattlersCount; i++) - gBattleExecBuffer |= gBitTable[i]; + gBattleControllerExecFlags |= gBitTable[i]; } } -void MarkBufferBankForExecution(u8 battler) +void MarkBattlerForControllerExec(u8 battlerId) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - gBattleExecBuffer |= gBitTable[battler] << 0x1C; - } + gBattleControllerExecFlags |= gBitTable[battlerId] << 0x1C; else - { - gBattleExecBuffer |= gBitTable[battler]; - } + gBattleControllerExecFlags |= gBitTable[battlerId]; } void sub_803F850(u8 arg0) @@ -247,9 +243,9 @@ void sub_803F850(u8 arg0) s32 i; for (i = 0; i < GetLinkPlayerCount(); i++) - gBattleExecBuffer |= gBitTable[arg0] << (i << 2); + gBattleControllerExecFlags |= gBitTable[arg0] << (i << 2); - gBattleExecBuffer &= ~(0x10000000 << arg0); + gBattleControllerExecFlags &= ~(0x10000000 << arg0); } void CancelMultiTurnMoves(u8 battler) @@ -284,8 +280,8 @@ bool8 WasUnableToUseMove(u8 battler) void PrepareStringBattle(u16 stringId, u8 battler) { gActiveBattler = battler; - EmitPrintString(0, stringId); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitPrintString(0, stringId); + MarkBattlerForControllerExec(gActiveBattler); } void ResetSentPokesToOpponentValue(void) @@ -297,7 +293,7 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[1] = 0; for (i = 0; i < gBattlersCount; i += 2) - bits |= gBitTable[gBattlePartyID[i]]; + bits |= gBitTable[gBattlerPartyIndexes[i]]; for (i = 1; i < gBattlersCount; i += 2) gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; @@ -316,7 +312,7 @@ void sub_803F9EC(u8 battler) for (i = 0; i < gBattlersCount; i += 2) { if (!(gAbsentBattlerFlags & gBitTable[i])) - bits |= gBitTable[gBattlePartyID[i]]; + bits |= gBitTable[gBattlerPartyIndexes[i]]; } gSentPokesToOpponent[flank] = bits; @@ -333,7 +329,7 @@ void sub_803FA70(u8 battler) { s32 i; for (i = 1; i < gBattlersCount; i++) - gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlePartyID[battler]]; + gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlerPartyIndexes[battler]]; } } @@ -540,10 +536,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBattleAttacker = 0; gBattleAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleAttacker]; gBattleAttacker++) + for (gBattleMoveAttacker = 0; gBattleMoveAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]; gBattleMoveAttacker++) { } - for (gBattleDefender = 0; gBattleDefender < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleDefender]; gBattleDefender++) + for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]; gBattleMoveTarget++) { } @@ -579,7 +575,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleAttacker = gSideTimers[sideBank].reflectBank; + gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].reflectBank; if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT) { if (--gSideTimers[sideBank].reflectTimer == 0) @@ -604,7 +600,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleAttacker = gSideTimers[sideBank].lightscreenBank; + gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].lightscreenBank; if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN) { if (--gSideTimers[sideBank].lightscreenTimer == 0) @@ -630,7 +626,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleAttacker = gSideTimers[sideBank].mistBank; + gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].mistBank; if (gSideTimers[sideBank].mistTimer != 0 && --gSideTimers[sideBank].mistTimer == 0) { @@ -654,7 +650,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleAttacker = gSideTimers[sideBank].safeguardBank; + gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].safeguardBank; if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD) { if (--gSideTimers[sideBank].safeguardTimer == 0) @@ -682,7 +678,7 @@ u8 UpdateTurnCounters(void) && --gWishFutureKnock.wishCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp != 0) { - gBattleDefender = gActiveBattler; + gBattleMoveTarget = gActiveBattler; BattleScriptExecute(BattleScript_WishComesTrue); effect++; } @@ -800,7 +796,7 @@ u8 TurnBasedEffects(void) gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { - gActiveBattler = gBattleAttacker = gBattleTurnOrder[gBattleStruct->turnEffectsBank]; + gActiveBattler = gBattleMoveAttacker = gBattleTurnOrder[gBattleStruct->turnEffectsBank]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->turnEffectsBank++; @@ -843,12 +839,12 @@ u8 TurnBasedEffects(void) && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBattler].hp != 0) { - gBattleDefender = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattleMoveTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleScripting.animArg1 = gBattleDefender; - gBattleScripting.animArg2 = gBattleAttacker; + gBattleScripting.animArg1 = gBattleMoveTarget; + gBattleScripting.animArg2 = gBattleMoveAttacker; BattleScriptExecute(BattleScript_LeechSeedTurnDrain); effect++; } @@ -957,29 +953,29 @@ u8 TurnBasedEffects(void) case 10: // uproar if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - for (gBattleAttacker = 0; gBattleAttacker < gBattlersCount; gBattleAttacker++) + for (gBattleMoveAttacker = 0; gBattleMoveAttacker < gBattlersCount; gBattleMoveAttacker++) { - if ((gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) - && gBattleMons[gBattleAttacker].ability != ABILITY_SOUNDPROOF) + if ((gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) + && gBattleMons[gBattleMoveAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } } - if (gBattleAttacker != gBattlersCount) + if (gBattleMoveAttacker != gBattlersCount) { effect = 2; // a pokemon was awaken break; } else { - gBattleAttacker = gActiveBattler; + gBattleMoveAttacker = gActiveBattler; gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down if (WasUnableToUseMove(gActiveBattler)) { @@ -1092,8 +1088,8 @@ u8 TurnBasedEffects(void) { CancelMultiTurnMoves(gActiveBattler); gBattleMons[gActiveBattler].status1 |= (Random() & 3) + 2; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); gEffectBank = gActiveBattler; BattleScriptExecute(BattleScript_YawnMakesAsleep); effect++; @@ -1142,16 +1138,16 @@ bool8 HandleWishPerishSongOnTurnEnd(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]); - gBattleDefender = gActiveBattler; - gBattleAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; + gBattleMoveTarget = gActiveBattler; + gBattleMoveAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler]; - gSpecialStatuses[gBattleDefender].moveturnLostHP = 0xFFFF; + gSpecialStatuses[gBattleMoveTarget].moveturnLostHP = 0xFFFF; BattleScriptExecute(BattleScript_MonTookFutureAttack); if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 && gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0) { - gSideStatuses[GET_BATTLER_SIDE(gBattleDefender)] &= ~(SIDE_STATUS_FUTUREATTACK); + gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)] &= ~(SIDE_STATUS_FUTUREATTACK); } return TRUE; } @@ -1166,7 +1162,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) case 1: while (gBattleStruct->wishPerishSongBank < gBattlersCount) { - gActiveBattler = gBattleAttacker = gBattleTurnOrder[gBattleStruct->wishPerishSongBank]; + gActiveBattler = gBattleMoveAttacker = gBattleTurnOrder[gBattleStruct->wishPerishSongBank]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->wishPerishSongBank++; @@ -1244,9 +1240,9 @@ bool8 HandleFaintedMonActions(void) case 1: do { - gBank1 = gBattleDefender = gBattleStruct->faintedActionsBank; + gBank1 = gBattleMoveTarget = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 - && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->faintedActionsBank]]) + && !(gBattleStruct->field_DF & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBank]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank])) { BattleScriptExecute(BattleScript_GiveExp); @@ -1270,7 +1266,7 @@ bool8 HandleFaintedMonActions(void) case 4: do { - gBank1 = gBattleDefender = gBattleStruct->faintedActionsBank; + gBank1 = gBattleMoveTarget = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank])) { @@ -1320,17 +1316,17 @@ u8 AtkCanceller_UnableToUseMove(void) switch (gBattleStruct->atkCancellerTracker) { case 0: // flags clear - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[gBattleAttacker] &= ~(STATUS3_GRUDGE); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_GRUDGE); gBattleStruct->atkCancellerTracker++; break; case 1: // check being asleep - if (gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) + if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) { - if (UproarWakeUpCheck(gBattleAttacker)) + if (UproarWakeUpCheck(gBattleMoveAttacker)) { - gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1339,15 +1335,15 @@ u8 AtkCanceller_UnableToUseMove(void) else { u8 toSub; - if (gBattleMons[gBattleAttacker].ability == ABILITY_EARLY_BIRD) + if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_EARLY_BIRD) toSub = 2; else toSub = 1; - if ((gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) < toSub) - gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_SLEEP); + if ((gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) < toSub) + gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_SLEEP); else - gBattleMons[gBattleAttacker].status1 -= toSub; - if (gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP) + gBattleMons[gBattleMoveAttacker].status1 -= toSub; + if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) { if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) { @@ -1358,7 +1354,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1369,7 +1365,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 2: // check being frozen - if (gBattleMons[gBattleAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_FREEZE) { if (Random() % 5) { @@ -1386,7 +1382,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else // unfreeze { - gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -1396,9 +1392,9 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 3: // truant - if (gBattleMons[gBattleAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattleAttacker].truantCounter) + if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattleMoveAttacker].truantCounter) { - CancelMultiTurnMoves(gBattleAttacker); + CancelMultiTurnMoves(gBattleMoveAttacker); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; @@ -1408,11 +1404,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 4: // recharge - if (gBattleMons[gBattleAttacker].status2 & STATUS2_RECHARGE) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_RECHARGE) { - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_RECHARGE); - gDisableStructs[gBattleAttacker].rechargeCounter = 0; - CancelMultiTurnMoves(gBattleAttacker); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gBattleMoveAttacker].rechargeCounter = 0; + CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1420,11 +1416,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 5: // flinch - if (gBattleMons[gBattleAttacker].status2 & STATUS2_FLINCHED) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_FLINCHED) { - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_FLINCHED); - gProtectStructs[gBattleAttacker].flinchImmobility = 1; - CancelMultiTurnMoves(gBattleAttacker); + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_FLINCHED); + gProtectStructs[gBattleMoveAttacker].flinchImmobility = 1; + CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1432,11 +1428,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 6: // disabled move - if (gDisableStructs[gBattleAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattleAttacker].disabledMove != 0) + if (gDisableStructs[gBattleMoveAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattleMoveAttacker].disabledMove != 0) { - gProtectStructs[gBattleAttacker].usedDisabledMove = 1; - gBattleScripting.battler = gBattleAttacker; - CancelMultiTurnMoves(gBattleAttacker); + gProtectStructs[gBattleMoveAttacker].usedDisabledMove = 1; + gBattleScripting.battler = gBattleMoveAttacker; + CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1444,10 +1440,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 7: // taunt - if (gDisableStructs[gBattleAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) + if (gDisableStructs[gBattleMoveAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) { - gProtectStructs[gBattleAttacker].usedTauntedMove = 1; - CancelMultiTurnMoves(gBattleAttacker); + gProtectStructs[gBattleMoveAttacker].usedTauntedMove = 1; + CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1455,10 +1451,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 8: // imprisoned - if (GetImprisonedMovesCount(gBattleAttacker, gCurrentMove)) + if (GetImprisonedMovesCount(gBattleMoveAttacker, gCurrentMove)) { - gProtectStructs[gBattleAttacker].usedImprisionedMove = 1; - CancelMultiTurnMoves(gBattleAttacker); + gProtectStructs[gBattleMoveAttacker].usedImprisionedMove = 1; + CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1466,10 +1462,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 9: // confusion - if (gBattleMons[gBattleAttacker].status2 & STATUS2_CONFUSION) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_CONFUSION) { - gBattleMons[gBattleAttacker].status2--; - if (gBattleMons[gBattleAttacker].status2 & STATUS2_CONFUSION) + gBattleMons[gBattleMoveAttacker].status2--; + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_CONFUSION) { if (Random() & 1) { @@ -1479,9 +1475,9 @@ u8 AtkCanceller_UnableToUseMove(void) else // confusion dmg { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattleDefender = gBattleAttacker; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleAttacker], MOVE_POUND, 0, 40, 0, gBattleAttacker, gBattleAttacker); - gProtectStructs[gBattleAttacker].confusionSelfDmg = 1; + gBattleMoveTarget = gBattleMoveAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveAttacker], MOVE_POUND, 0, 40, 0, gBattleMoveAttacker, gBattleMoveAttacker); + gProtectStructs[gBattleMoveAttacker].confusionSelfDmg = 1; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; } gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; @@ -1496,11 +1492,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 10: // paralysis - if ((gBattleMons[gBattleAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) + if ((gBattleMons[gBattleMoveAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) { - gProtectStructs[gBattleAttacker].prlzImmobility = 1; + gProtectStructs[gBattleMoveAttacker].prlzImmobility = 1; // This is removed in Emerald for some reason - //CancelMultiTurnMoves(gBattleAttacker); + //CancelMultiTurnMoves(gBattleMoveAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1508,17 +1504,17 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 11: // infatuation - if (gBattleMons[gBattleAttacker].status2 & STATUS2_INFATUATION) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_INFATUATION) { - gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattleAttacker].status2 & STATUS2_INFATUATION) >> 0x10); + gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattleMoveAttacker].status2 & STATUS2_INFATUATION) >> 0x10); if (Random() & 1) BattleScriptPushCursor(); else { BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gProtectStructs[gBattleAttacker].loveImmobility = 1; - CancelMultiTurnMoves(gBattleAttacker); + gProtectStructs[gBattleMoveAttacker].loveImmobility = 1; + CancelMultiTurnMoves(gBattleMoveAttacker); } gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; effect = 1; @@ -1526,22 +1522,22 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 12: // bide - if (gBattleMons[gBattleAttacker].status2 & STATUS2_BIDE) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_BIDE) { - gBattleMons[gBattleAttacker].status2 -= 0x100; - if (gBattleMons[gBattleAttacker].status2 & STATUS2_BIDE) + gBattleMons[gBattleMoveAttacker].status2 -= 0x100; + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_BIDE) gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; else { // This is removed in Emerald for some reason - //gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); - if (gTakenDmg[gBattleAttacker]) + //gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (gTakenDmg[gBattleMoveAttacker]) { gCurrentMove = MOVE_BIDE; - *bideDmg = gTakenDmg[gBattleAttacker] * 2; - gBattleDefender = gTakenDmgBanks[gBattleAttacker]; - if (gAbsentBattlerFlags & gBitTable[gBattleDefender]) - gBattleDefender = GetMoveTarget(MOVE_BIDE, 1); + *bideDmg = gTakenDmg[gBattleMoveAttacker] * 2; + gBattleMoveTarget = gTakenDmgBanks[gBattleMoveAttacker]; + if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattleMoveTarget = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } else @@ -1552,11 +1548,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 13: // move thawing - if (gBattleMons[gBattleAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_FREEZE) { if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) { - gBattleMons[gBattleAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1573,9 +1569,9 @@ u8 AtkCanceller_UnableToUseMove(void) if (effect == 2) { - gActiveBattler = gBattleAttacker; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + gActiveBattler = gBattleMoveAttacker; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } return effect; } @@ -1611,7 +1607,7 @@ bool8 sub_80423F4(u8 battler, u8 r1, u8 r2) if (GetBattlerSide(battler) == B_SIDE_PLAYER) { party = gPlayerParty; - r7 = GetBankMultiplayerId(battler); + r7 = GetBattlerMultiplayerId(battler); r6 = sub_806D82C(r7); } else @@ -1630,7 +1626,7 @@ bool8 sub_80423F4(u8 battler, u8 r1, u8 r2) } else { - r7 = GetBankMultiplayerId(battler); + r7 = GetBattlerMultiplayerId(battler); if (GetBattlerSide(battler) == B_SIDE_PLAYER) party = gPlayerParty; else @@ -1678,9 +1674,9 @@ bool8 sub_80423F4(u8 battler, u8 r1, u8 r2) party = gPlayerParty; } if (r1 == 6) - r1 = gBattlePartyID[r7]; + r1 = gBattlerPartyIndexes[r7]; if (r2 == 6) - r2 = gBattlePartyID[r6]; + r2 = gBattlerPartyIndexes[r6]; for (i = 0; i < 6; i++) { if (GetMonData(&party[i], MON_DATA_HP) != 0 @@ -1754,19 +1750,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA u32 pidAtk; u32 pidDef; - if (gBattleAttacker >= gBattlersCount) - gBattleAttacker = battler; - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) - pokeAtk = &gPlayerParty[gBattlePartyID[gBattleAttacker]]; + if (gBattleMoveAttacker >= gBattlersCount) + gBattleMoveAttacker = battler; + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; else - pokeAtk = &gEnemyParty[gBattlePartyID[gBattleAttacker]]; + pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; - if (gBattleDefender >= gBattlersCount) - gBattleDefender = battler; - if (GetBattlerSide(gBattleDefender) == B_SIDE_PLAYER) - pokeDef = &gPlayerParty[gBattlePartyID[gBattleDefender]]; + if (gBattleMoveTarget >= gBattlersCount) + gBattleMoveTarget = battler; + if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveTarget]]; else - pokeDef = &gEnemyParty[gBattlePartyID[gBattleDefender]]; + pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -1797,8 +1793,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - if (gBattleAttacker >= gBattlersCount) - gBattleAttacker = battler; + if (gBattleMoveAttacker >= gBattlersCount) + gBattleMoveAttacker = battler; switch (gLastUsedAbility) { case ABILITYEFFECT_SWITCH_IN_WEATHER: @@ -1915,7 +1911,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITYEFFECT_ENDTURN: // 1 if (gBattleMons[battler].hp != 0) { - gBattleAttacker = battler; + gBattleMoveAttacker = battler; switch (gLastUsedAbility) { case ABILITY_RAIN_DISH: @@ -1948,8 +1944,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch gBattleScripting.battler = gActiveBattler = battler; BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1); + MarkBattlerForControllerExec(gActiveBattler); effect++; } break; @@ -1965,7 +1961,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITY_TRUANT: - gDisableStructs[gBattleAttacker].truantCounter ^= 1; + gDisableStructs[gBattleMoveAttacker].truantCounter ^= 1; break; } } @@ -1980,7 +1976,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } if (sSoundMovesTable[i] != 0xFFFF) { - if (gBattleMons[gBattleAttacker].status2 & STATUS2_MULTIPLETURNS) + if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; gBattlescriptCurrInstr = BattleScript_SoundproofProtected; effect = 1; @@ -1995,7 +1991,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_VOLT_ABSORB: if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBattleAttacker].notFirstStrike) + if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -2006,7 +2002,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_WATER_ABSORB: if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBattleAttacker].notFirstStrike) + if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -2020,7 +2016,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (!(gBattleResources->flags->flags[battler] & UNKNOWN_FLAG_FLASH_FIRE)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (gProtectStructs[gBattleAttacker].notFirstStrike) + if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -2031,7 +2027,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA else { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gProtectStructs[gBattleAttacker].notFirstStrike) + if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -2045,7 +2041,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA { if (gBattleMons[battler].maxHP == gBattleMons[battler].hp) { - if ((gProtectStructs[gBattleAttacker].notFirstStrike)) + if ((gProtectStructs[gBattleMoveAttacker].notFirstStrike)) gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless; else gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless_PPLoss; @@ -2067,7 +2063,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && gBattleMons[battler].type1 != moveType && gBattleMons[battler].type2 != moveType && gBattleMons[battler].hp != 0) @@ -2082,12 +2078,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_ROUGH_SKIN: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleAttacker].hp != 0 - && !gProtectStructs[gBattleAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && gBattleMons[gBattleMoveAttacker].hp != 0 + && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { - gBattleMoveDamage = gBattleMons[gBattleAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptPushCursor(); @@ -2097,9 +2093,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_EFFECT_SPORE: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleAttacker].hp != 0 - && !gProtectStructs[gBattleAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && gBattleMons[gBattleMoveAttacker].hp != 0 + && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 10) == 0) { @@ -2120,9 +2116,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_POISON_POINT: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleAttacker].hp != 0 - && !gProtectStructs[gBattleAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && gBattleMons[gBattleMoveAttacker].hp != 0 + && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2135,9 +2131,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_STATIC: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleAttacker].hp != 0 - && !gProtectStructs[gBattleAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && gBattleMons[gBattleMoveAttacker].hp != 0 + && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2150,10 +2146,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_FLAME_BODY: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleAttacker].hp != 0 - && !gProtectStructs[gBattleAttacker].confusionSelfDmg + && gBattleMons[gBattleMoveAttacker].hp != 0 + && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; @@ -2165,19 +2161,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_CUTE_CHARM: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleAttacker].hp != 0 - && !gProtectStructs[gBattleAttacker].confusionSelfDmg + && gBattleMons[gBattleMoveAttacker].hp != 0 + && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) - && gBattleMons[gBattleDefender].hp != 0 + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && gBattleMons[gBattleMoveTarget].hp != 0 && (Random() % 3) == 0 - && gBattleMons[gBattleAttacker].ability != ABILITY_OBLIVIOUS + && gBattleMons[gBattleMoveAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBattleAttacker].status2 & STATUS2_INFATUATION) + && !(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_INFATUATION) && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS) { - gBattleMons[gBattleAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattleDefender); + gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattleMoveTarget); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2261,8 +2257,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; gBattleScripting.battler = battler; gActiveBattler = battler; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); return effect; } } @@ -2292,7 +2288,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.battler = gBattleDefender; + gBattleScripting.battler = gBattleMoveTarget; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2308,7 +2304,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect; - gBattleScripting.battler = gBattleAttacker; + gBattleScripting.battler = gBattleMoveAttacker; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2379,7 +2375,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gStatuses3[i] &= ~(STATUS3_TRACE); gBattleScripting.battler = i; - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlePartyID[gActiveBattler]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility) break; } @@ -2560,11 +2556,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); } - atkItem = gBattleMons[gBattleAttacker].item; + atkItem = gBattleMons[gBattleMoveAttacker].item; if (atkItem == ITEM_ENIGMA_BERRY) { - atkHoldEffect = gEnigmaBerries[gBattleAttacker].holdEffect; - atkQuality = gEnigmaBerries[gBattleAttacker].holdEffectParam; + atkHoldEffect = gEnigmaBerries[gBattleMoveAttacker].holdEffect; + atkQuality = gEnigmaBerries[gBattleMoveAttacker].holdEffectParam; } else { @@ -2573,11 +2569,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } // def variables are unused - defItem = gBattleMons[gBattleDefender].item; + defItem = gBattleMons[gBattleMoveTarget].item; if (defItem == ITEM_ENIGMA_BERRY) { - defHoldEffect = gEnigmaBerries[gBattleDefender].holdEffect; - defQuality = gEnigmaBerries[gBattleDefender].holdEffectParam; + defHoldEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect; + defQuality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; } else { @@ -2607,7 +2603,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleScripting.battler = bank; gStringBank = bank; - gActiveBattler = gBattleAttacker = bank; + gActiveBattler = gBattleMoveAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -2637,9 +2633,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) u16 move; if (GetBattlerSide(bank) == B_SIDE_PLAYER) - mon = &gPlayerParty[gBattlePartyID[bank]]; + mon = &gPlayerParty[gBattlerPartyIndexes[bank]]; else - mon = &gEnemyParty[gBattlePartyID[bank]]; + mon = &gEnemyParty[gBattlerPartyIndexes[bank]]; for (i = 0; i < 4; i++) { move = GetMonData(mon, MON_DATA_MOVE1 + i); @@ -2659,8 +2655,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); BattleScriptExecute(BattleScript_BerryPPHealEnd2); - EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); + MarkBattlerForControllerExec(gActiveBattler); effect = ITEM_PP_CHANGE; } } @@ -2678,7 +2674,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleScripting.battler = bank; gStringBank = bank; - gActiveBattler = gBattleAttacker = bank; + gActiveBattler = gBattleMoveAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -3006,12 +3002,12 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { gBattleScripting.battler = bank; gStringBank = bank; - gActiveBattler = gBattleAttacker = bank; + gActiveBattler = gBattleMoveAttacker = bank; switch (effect) { case ITEM_STATUS_CHANGE: - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBattlerForControllerExec(gActiveBattler); break; case ITEM_PP_CHANGE: if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) @@ -3165,8 +3161,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleScripting.battler = bank; gStringBank = bank; gActiveBattler = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); break; } } @@ -3178,10 +3174,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { case HOLD_EFFECT_FLINCH: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && (gSpecialStatuses[gBattleDefender].moveturnLostHP_physical || gSpecialStatuses[gBattleDefender].moveturnLostHP_special) + && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) && (Random() % 100) < atkQuality && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED - && gBattleMons[gBattleDefender].hp) + && gBattleMons[gBattleMoveTarget].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); @@ -3191,19 +3187,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) break; case HOLD_EFFECT_SHELL_BELL: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gSpecialStatuses[gBattleDefender].moveturnLostHP != 0 - && gSpecialStatuses[gBattleDefender].moveturnLostHP != 0xFFFF - && gBattleAttacker != gBattleDefender - && gBattleMons[gBattleAttacker].hp != gBattleMons[gBattleAttacker].maxHP - && gBattleMons[gBattleAttacker].hp != 0) + && gSpecialStatuses[gBattleMoveTarget].moveturnLostHP != 0 + && gSpecialStatuses[gBattleMoveTarget].moveturnLostHP != 0xFFFF + && gBattleMoveAttacker != gBattleMoveTarget + && gBattleMons[gBattleMoveAttacker].hp != gBattleMons[gBattleMoveAttacker].maxHP + && gBattleMons[gBattleMoveAttacker].hp != 0) { gLastUsedItem = atkItem; - gStringBank = gBattleAttacker; - gBattleScripting.battler = gBattleAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBattleDefender].moveturnLostHP / atkQuality) * -1; + gStringBank = gBattleMoveAttacker; + gBattleScripting.battler = gBattleMoveAttacker; + gBattleMoveDamage = (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP / atkQuality) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBattleDefender].moveturnLostHP = 0; + gSpecialStatuses[gBattleMoveTarget].moveturnLostHP = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect++; @@ -3226,7 +3222,7 @@ void ClearFuryCutterDestinyBondGrudge(u8 bank) void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands { - if (gBattleExecBuffer == 0) + if (gBattleControllerExecFlags == 0) gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); } @@ -3244,18 +3240,18 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) switch (moveTarget) { case MOVE_TARGET_SELECTED: - side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else { - side = GetBattlerSide(gBattleAttacker); + side = GetBattlerSide(gBattleMoveAttacker); do { targetBank = Random() % gBattlersCount; - } while (targetBank == gBattleAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); + } while (targetBank == gBattleMoveAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC - && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleMoveAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) { targetBank ^= BIT_FLANK; @@ -3268,17 +3264,17 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleMoveAttacker) & BIT_SIDE) ^ BIT_SIDE); if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= BIT_FLANK; break; case MOVE_TARGET_RANDOM: - side = GetBattlerSide(gBattleAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattleAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) { if (Random() & 1) targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); @@ -3296,15 +3292,15 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) targetBank ^= BIT_FLANK; } else - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleMoveAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: - targetBank = gBattleAttacker; + targetBank = gBattleMoveAttacker; break; } - *(gBattleStruct->moveTarget + gBattleAttacker) = targetBank; + *(gBattleStruct->moveTarget + gBattleMoveAttacker) = targetBank; return targetBank; } @@ -3313,10 +3309,10 @@ static bool32 HasObedientBitSet(u8 bank) { if (GetBattlerSide(bank) == B_SIDE_OPPONENT) return TRUE; - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS - && GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS + && GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) return TRUE; - return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_OBEDIENCE, NULL); + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_OBEDIENCE, NULL); } u8 IsMonDisobedient(void) @@ -3327,18 +3323,18 @@ u8 IsMonDisobedient(void) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return 0; - if (GetBattlerSide(gBattleAttacker) == B_SIDE_OPPONENT) + if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_OPPONENT) return 0; - if (HasObedientBitSet(gBattleAttacker)) // only if species is Mew or Deoxys + if (HasObedientBitSet(gBattleMoveAttacker)) // only if species is Mew or Deoxys { - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattleAttacker) == 2) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattleMoveAttacker) == 2) return 0; if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) return 0; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) return 0; - if (!IsOtherTrainer(gBattleMons[gBattleAttacker].otId, gBattleMons[gBattleAttacker].otName)) + if (!IsOtherTrainer(gBattleMons[gBattleMoveAttacker].otId, gBattleMons[gBattleMoveAttacker].otName)) return 0; if (FlagGet(FLAG_BADGE08_GET)) return 0; @@ -3353,27 +3349,27 @@ u8 IsMonDisobedient(void) obedienceLevel = 70; } - if (gBattleMons[gBattleAttacker].level <= obedienceLevel) + if (gBattleMons[gBattleMoveAttacker].level <= obedienceLevel) return 0; rnd = (Random() & 255); - calc = (gBattleMons[gBattleAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattleMoveAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) return 0; // is not obedient if (gCurrentMove == MOVE_RAGE) - gBattleMons[gBattleAttacker].status2 &= ~(STATUS2_RAGE); - if (gBattleMons[gBattleAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_RAGE); + if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { gBattlescriptCurrInstr = BattleScript_82DB695; return 1; } rnd = (Random() & 255); - calc = (gBattleMons[gBattleAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattleMoveAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) { - calc = CheckMoveLimitations(gBattleAttacker, gBitTable[gCurrMovePos], 0xFF); + calc = CheckMoveLimitations(gBattleMoveAttacker, gBitTable[gCurrMovePos], 0xFF); if (calc == 0xF) // all moves cannot be used { gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; @@ -3387,19 +3383,19 @@ u8 IsMonDisobedient(void) gCurrMovePos = gUnknown_020241E9 = Random() & 3; } while (gBitTable[gCurrMovePos] & calc); - gRandomMove = gBattleMons[gBattleAttacker].moves[gCurrMovePos]; + gRandomMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBattleDefender = GetMoveTarget(gRandomMove, 0); + gBattleMoveTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; } } else { - obedienceLevel = gBattleMons[gBattleAttacker].level - obedienceLevel; + obedienceLevel = gBattleMons[gBattleMoveAttacker].level - obedienceLevel; calc = (Random() & 255); - if (calc < obedienceLevel && !(gBattleMons[gBattleAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattleAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattleAttacker].ability != ABILITY_INSOMNIA) + if (calc < obedienceLevel && !(gBattleMons[gBattleMoveAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattleMoveAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattleMoveAttacker].ability != ABILITY_INSOMNIA) { // try putting asleep int i; @@ -3417,8 +3413,8 @@ u8 IsMonDisobedient(void) calc -= obedienceLevel; if (calc < obedienceLevel) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleAttacker], &gBattleMons[gBattleAttacker], MOVE_POUND, 0, 40, 0, gBattleAttacker, gBattleAttacker); - gBattleDefender = gBattleAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveAttacker], MOVE_POUND, 0, 40, 0, gBattleMoveAttacker, gBattleMoveAttacker); + gBattleMoveTarget = gBattleMoveAttacker; gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; diff --git a/src/battle_util2.c b/src/battle_util2.c index 5c7434aa0..ba42d4ea9 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -9,7 +9,7 @@ #include "battle_scripts.h" extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gUnknown_0203CF00[]; extern const u8 *gBattlescriptCurrInstr; extern u8 gBattleCommunication[]; @@ -101,13 +101,13 @@ void AdjustFriendshipOnBattleFaint(u8 bank) if (gBattleMons[opposingBank].level > gBattleMons[bank].level) { if (gBattleMons[opposingBank].level - gBattleMons[bank].level > 29) - AdjustFriendship(&gPlayerParty[gBattlePartyID[bank]], 8); + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[bank]], 8); else - AdjustFriendship(&gPlayerParty[gBattlePartyID[bank]], 6); + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[bank]], 6); } else { - AdjustFriendship(&gPlayerParty[gBattlePartyID[bank]], 6); + AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[bank]], 6); } } @@ -122,7 +122,7 @@ void sub_80571DC(u8 bank, u8 arg1) for (i = 0; i < 3; i++) gUnknown_0203CF00[i] = *(0 * 3 + i + (u8*)(gBattleStruct->field_60)); - sub_81B8FB0(pokemon_order_func(gBattlePartyID[bank]), pokemon_order_func(arg1)); + sub_81B8FB0(pokemon_order_func(gBattlerPartyIndexes[bank]), pokemon_order_func(arg1)); for (i = 0; i < 3; i++) *(0 * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; @@ -207,8 +207,8 @@ u32 sub_805725C(u8 bank) if (effect == 2) { gActiveBattler = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); - MarkBufferBankForExecution(gActiveBattler); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + MarkBattlerForControllerExec(gActiveBattler); } return effect; diff --git a/src/item_use.c b/src/item_use.c index 8fe705a50..9cb2a4546 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -89,7 +89,7 @@ extern void flagmods_08054D70(void); extern u8* sub_806CF78(u16); extern bool8 ExecuteTableBasedItemEffect_(struct Pokemon*, u16, u8, u8); extern u8 gBankInMenu; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; extern void sub_81B89F0(void); extern u8 GetItemEffectType(u16); @@ -1131,7 +1131,7 @@ void sub_80FE440(u8 taskId) void ItemUseInBattle_StatIncrease(u8 taskId) { - u16 partyId = gBattlePartyID[gBankInMenu]; + u16 partyId = gBattlerPartyIndexes[gBankInMenu]; if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE) { diff --git a/src/pokeball.c b/src/pokeball.c index 424ecb0eb..87802d6ba 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -17,10 +17,10 @@ extern bool8 gDoingBattleAnim; extern u8 gActiveBattler; -extern u8 gBattleDefender; -extern u16 gBattlePartyID[]; -extern u8 gBankSpriteIds[]; -extern u8 gHealthBoxesIds[]; +extern u8 gBattleMoveTarget; +extern u16 gBattlerPartyIndexes[]; +extern u8 gBattlerSpriteIds[]; +extern u8 gHealthboxSpriteIds[]; extern struct MusicPlayerInfo gMPlayInfo_BGM; // this file's functions @@ -364,9 +364,9 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) bank = gTasks[taskId].tBank; if (GetBattlerSide(bank) != B_SIDE_PLAYER) - itemId = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + itemId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL); else - itemId = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + itemId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL); ballId = ItemIdToBallId(itemId); LoadBallGfx(ballId); @@ -378,25 +378,25 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) switch (throwCaseId) { case POKEBALL_PLAYER_SENDOUT: - gBattleDefender = bank; + gBattleMoveTarget = 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 = GetBankCoord(bank, BANK_X_POS); - gSprites[ballSpriteId].pos1.y = GetBankCoord(bank, BANK_Y_POS) + 24; - gBattleDefender = bank; + gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(bank, BANK_X_POS); + gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(bank, BANK_Y_POS) + 24; + gBattleMoveTarget = bank; gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; break; default: - gBattleDefender = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); notSendOut = TRUE; break; } - gSprites[ballSpriteId].sBank = gBattleDefender; + gSprites[ballSpriteId].sBank = gBattleMoveTarget; if (!notSendOut) { DestroyTask(taskId); @@ -405,12 +405,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) // this will perform an unused ball throw animation gSprites[ballSpriteId].data[0] = 0x22; - gSprites[ballSpriteId].data[2] = GetBankCoord(gBattleDefender, BANK_X_POS); - gSprites[ballSpriteId].data[4] = GetBankCoord(gBattleDefender, BANK_Y_POS) - 16; + gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattleMoveTarget, BANK_X_POS); + gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattleMoveTarget, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[5] = -40; sub_80A68D4(&gSprites[ballSpriteId]); gSprites[ballSpriteId].oam.affineParam = taskId; - gTasks[taskId].tOpponentBank = gBattleDefender; + gTasks[taskId].tOpponentBank = gBattleMoveTarget; gTasks[taskId].func = TaskDummy; PlaySE(SE_NAGERU); } @@ -458,9 +458,9 @@ static void sub_80756E0(struct Sprite *sprite) { sprite->data[5] = 0; sprite->callback = sub_807574C; - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 2); - AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]); - gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBank]], 2); + AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBank]]); + gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] = 0; } } @@ -469,17 +469,17 @@ static void sub_807574C(struct Sprite *sprite) sprite->data[5]++; if (sprite->data[5] == 11) PlaySE(SE_SUIKOMU); - if (gSprites[gBankSpriteIds[sprite->sBank]].affineAnimEnded) + if (gSprites[gBattlerSpriteIds[sprite->sBank]].affineAnimEnded) { StartSpriteAnim(sprite, 2); - gSprites[gBankSpriteIds[sprite->sBank]].invisible = TRUE; + gSprites[gBattlerSpriteIds[sprite->sBank]].invisible = TRUE; sprite->data[5] = 0; sprite->callback = sub_80757E4; } else { - gSprites[gBankSpriteIds[sprite->sBank]].data[1] += 0x60; - gSprites[gBankSpriteIds[sprite->sBank]].pos2.y = -gSprites[gBankSpriteIds[sprite->sBank]].data[1] >> 8; + gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] += 0x60; + gSprites[gBattlerSpriteIds[sprite->sBank]].pos2.y = -gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] >> 8; } } @@ -757,12 +757,12 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) if (GetBattlerSide(bank) != B_SIDE_PLAYER) { - mon = &gEnemyParty[gBattlePartyID[bank]]; + mon = &gEnemyParty[gBattlerPartyIndexes[bank]]; pan = 25; } else { - mon = &gPlayerParty[gBattlePartyID[bank]]; + mon = &gPlayerParty[gBattlerPartyIndexes[bank]]; pan = -25; } @@ -795,21 +795,21 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) gTasks[taskId].tCryTaskPan = pan; gTasks[taskId].tCryTaskWantedCry = wantedCryCase; gTasks[taskId].tCryTaskBank = bank; - gTasks[taskId].tCryTaskMonSpriteId = gBankSpriteIds[sprite->sBank]; + gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBank]; gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10; gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon); gTasks[taskId].tCryTaskState = 0; } - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 1); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBank]], 1); if (GetBattlerSide(sprite->sBank) == B_SIDE_OPPONENT) - gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039B58; + gSprites[gBattlerSpriteIds[sprite->sBank]].callback = sub_8039B58; else - gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039E44; + gSprites[gBattlerSpriteIds[sprite->sBank]].callback = sub_8039E44; - AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]); - gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0x1000; + AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBank]]); + gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] = 0x1000; } #undef tCryTaskSpecies @@ -836,24 +836,24 @@ static void HandleBallAnimEnd(struct Sprite *sprite) bool8 affineAnimEnded = FALSE; u8 bank = sprite->sBank; - gSprites[gBankSpriteIds[bank]].invisible = FALSE; + gSprites[gBattlerSpriteIds[bank]].invisible = FALSE; if (sprite->animEnded) sprite->invisible = TRUE; - if (gSprites[gBankSpriteIds[bank]].affineAnimEnded) + if (gSprites[gBattlerSpriteIds[bank]].affineAnimEnded) { - StartSpriteAffineAnim(&gSprites[gBankSpriteIds[bank]], 0); + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[bank]], 0); affineAnimEnded = TRUE; } else { - gSprites[gBankSpriteIds[bank]].data[1] -= 288; - gSprites[gBankSpriteIds[bank]].pos2.y = gSprites[gBankSpriteIds[bank]].data[1] >> 8; + gSprites[gBattlerSpriteIds[bank]].data[1] -= 288; + gSprites[gBattlerSpriteIds[bank]].pos2.y = gSprites[gBattlerSpriteIds[bank]].data[1] >> 8; } if (sprite->animEnded && affineAnimEnded) { s32 i, doneBanks; - gSprites[gBankSpriteIds[bank]].pos2.y = 0; + gSprites[gBattlerSpriteIds[bank]].pos2.y = 0; gDoingBattleAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0; FreeSpriteOamMatrix(sprite); @@ -889,8 +889,8 @@ static void sub_80760F8(struct Sprite *sprite) } else if (sprite->data[4] == 315) { - FreeOamMatrix(gSprites[gBankSpriteIds[sprite->sBank]].oam.matrixNum); - DestroySprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + FreeOamMatrix(gSprites[gBattlerSpriteIds[sprite->sBank]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[sprite->sBank]]); DestroySpriteAndFreeResources(sprite); if (gMain.inBattle) gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0; @@ -900,8 +900,8 @@ static void sub_80760F8(struct Sprite *sprite) static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite) { sprite->data[0] = 25; - sprite->data[2] = GetBankCoord(sprite->sBank, 2); - sprite->data[4] = GetBankCoord(sprite->sBank, 3) + 24; + sprite->data[2] = GetBattlerSpriteCoord(sprite->sBank, 2); + sprite->data[4] = GetBattlerSpriteCoord(sprite->sBank, 3) + 24; sprite->data[5] = -30; sprite->oam.affineParam = sprite->sBank; sub_80A68D4(sprite); @@ -1183,7 +1183,7 @@ static void DestroySpriteAndFreeResources_(struct Sprite *sprite) void sub_8076918(u8 bank) { - struct Sprite *healthboxSprite = &gSprites[gHealthBoxesIds[bank]]; + struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[bank]]; healthboxSprite->data[0] = 5; healthboxSprite->data[1] = 0; @@ -1226,7 +1226,7 @@ void DoHitAnimHealthboxEffect(u8 bank) spriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HitAnimHealthoxEffect); gSprites[spriteId].data[0] = 1; - gSprites[spriteId].data[1] = gHealthBoxesIds[bank]; + gSprites[spriteId].data[1] = gHealthboxSpriteIds[bank]; gSprites[spriteId].callback = SpriteCB_HitAnimHealthoxEffect; } @@ -1276,7 +1276,7 @@ void FreeBallGfx(u8 ballId) static u16 GetBankPokeballItemId(u8 bank) { if (GetBattlerSide(bank) == B_SIDE_PLAYER) - return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL); else - return GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + return GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL); } diff --git a/src/pokemon_2.c b/src/pokemon_2.c index d4ccd5ca1..4e3364486 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -16,8 +16,8 @@ struct Unknown_020249B4 extern u8 gAbsentBattlerFlags; extern u8 gActiveBattler; -extern u8 gBattleAttacker; -extern u8 gBattleDefender; +extern u8 gBattleMoveAttacker; +extern u8 gBattleMoveTarget; extern u8 gLastUsedAbility; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; @@ -55,14 +55,14 @@ u8 CountAliveMonsInBattle(u8 caseId) case BATTLE_ALIVE_ATK_SIDE: for (i = 0; i < 4; i++) { - if (GetBattlerSide(i) == GetBattlerSide(gBattleAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattleMoveAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case BATTLE_ALIVE_DEF_SIDE: for (i = 0; i < 4; i++) { - if (GetBattlerSide(i) == GetBattlerSide(gBattleDefender) && !(gAbsentBattlerFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattleMoveTarget) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; diff --git a/src/pokemon_3.c b/src/pokemon_3.c index d6413c455..e11afa91e 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -27,13 +27,13 @@ extern struct BattlePokemon gBattleMons[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gActiveBattler; extern u8 gBankInMenu; -extern u8 gBattleDefender; -extern u8 gBattleAttacker; +extern u8 gBattleMoveTarget; +extern u8 gBattleMoveAttacker; extern u8 gStringBank; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; extern u8 gBattleMonForms[4]; -extern u16 gBattlePartyID[4]; +extern u16 gBattlerPartyIndexes[4]; extern u8 gLastUsedAbility; extern u16 gPartnerTrainerId; extern u32 gHitMarker; @@ -210,7 +210,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) void sub_806CF24(s32 stat) { - gBattleDefender = gBankInMenu; + gBattleMoveTarget = gBankInMenu; StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]); StringCopy(gBattleTextBuff2, gText_StatRose); BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); @@ -247,7 +247,7 @@ u8 *sub_806CF78(u16 itemId) } else { - gBattleAttacker = gBankInMenu; + gBattleMoveAttacker = gBankInMenu; BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped); } } @@ -255,7 +255,7 @@ u8 *sub_806CF78(u16 itemId) if (itemEffect[3] & 0x80) { - gBattleAttacker = gBankInMenu; + gBattleMoveAttacker = gBankInMenu; BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist); } @@ -615,7 +615,7 @@ bool16 sub_806D82C(u8 id) return retVal; } -s32 GetBankMultiplayerId(u16 a1) +s32 GetBattlerMultiplayerId(u16 a1) { s32 id; for (id = 0; id < MAX_LINK_PLAYERS; id++) @@ -1367,11 +1367,11 @@ void sub_806E994(void) gBattleTextBuff1[4] = B_BUFF_EOS; if (!GetBattlerSide(gBattleStruct->field_49)) - gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->field_49]); + gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->field_49]); else - gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->field_49]; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->field_49]; - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBankInMenu, pokemon_order_func(gBattlePartyID[gBankInMenu])) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBankInMenu, pokemon_order_func(gBattlerPartyIndexes[gBankInMenu])) BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4); } @@ -1478,7 +1478,7 @@ const u8 *GetTrainerPartnerName(void) else { u8 id = GetMultiplayerId(); - return gLinkPlayers[GetBankMultiplayerId(gLinkPlayers[id].lp_field_18 ^ 2)].name; + return gLinkPlayers[GetBattlerMultiplayerId(gLinkPlayers[id].lp_field_18 ^ 2)].name; } } diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 2bd4e3ef9..02755fe40 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -16,7 +16,7 @@ struct UnkAnimStruct s16 field_8; }; -extern u16 gBattlePartyID[]; +extern u16 gBattlerPartyIndexes[]; // this file's functions static void pokemonanimfunc_00(struct Sprite *sprite); @@ -945,7 +945,7 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet) gTasks[taskId].tPtrHI = (u32)(sprite); bank = sprite->data[0]; - nature = GetNature(&gPlayerParty[gBattlePartyID[bank]]); + nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[bank]]); animId = 3 * backAnimSet + sBackAnimNatureModTable[nature]; gTasks[taskId].tAnimId = sBackAnimationIds[animId]; diff --git a/src/recorded_battle.c b/src/recorded_battle.c index cd54495fc..34611b509 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -27,7 +27,7 @@ extern u16 gTrainerBattleOpponent_B; extern u16 gPartnerTrainerId; extern u8 gActiveBattler; extern u8 gBattlersCount; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; extern u8 gUnknown_03001278; @@ -200,7 +200,7 @@ void sub_8184E58(void) } } -void RecordedBattle_SetBankAction(u8 bank, u8 action) +void RecordedBattle_SetBattlerAction(u8 bank, u8 action) { if (sRecordedBytesNo[bank] < BANK_RECORD_SIZE && sUnknown_0203C7AC != 2) { @@ -208,7 +208,7 @@ void RecordedBattle_SetBankAction(u8 bank, u8 action) } } -void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear) +void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear) { s32 i; @@ -221,7 +221,7 @@ void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear) } } -u8 RecordedBattle_ReadBankAction(u8 bank) +u8 RecordedBattle_GetBankAction(u8 bank) { // trying to read past array or invalid action byte, battle is over if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF) @@ -1536,14 +1536,14 @@ void sub_818603C(u8 arg0) } if (j != 4) // player's mon's move has been changed { - RecordedBattle_SetBankAction(bank, ACTION_MOVE_CHANGE); + RecordedBattle_SetBattlerAction(bank, ACTION_MOVE_CHANGE); for (j = 0; j < 4; j++) { for (k = 0; k < 4; k++) { if (gBattleMons[bank].moves[j] == sRecordedBattle_PlayerMonMoves[bank / 2][k]) { - RecordedBattle_SetBankAction(bank, k); + RecordedBattle_SetBattlerAction(bank, k); break; } } @@ -1561,14 +1561,14 @@ void sub_818603C(u8 arg0) u8 array3[8]; u8 var; - RecordedBattle_ReadBankAction(bank); + RecordedBattle_GetBankAction(bank); for (j = 0; j < 4; j++) { ppBonuses[j] = ((gBattleMons[bank].ppBonuses & ((3 << (j << 1)))) >> (j << 1)); } for (j = 0; j < 4; j++) { - array1[j] = RecordedBattle_ReadBankAction(bank); + array1[j] = RecordedBattle_GetBankAction(bank); movePp.moves[j] = gBattleMons[bank].moves[array1[j]]; movePp.pp[j] = gBattleMons[bank].pp[array1[j]]; array3[j] = ppBonuses[array1[j]]; @@ -1591,25 +1591,25 @@ void sub_818603C(u8 arg0) { for (j = 0; j < 4; j++) { - ppBonuses[j] = ((GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1)); + ppBonuses[j] = ((GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1)); } for (j = 0; j < 4; j++) { - movePp.moves[j] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_MOVE1 + array1[j], NULL); - movePp.pp[j] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP1 + array1[j], NULL); + movePp.moves[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_MOVE1 + array1[j], NULL); + movePp.pp[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP1 + array1[j], NULL); array3[j] = ppBonuses[array1[j]]; } for (j = 0; j < 4; j++) { - SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_MOVE1 + j, &movePp.moves[j]); - SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP1 + j, &movePp.pp[j]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_MOVE1 + j, &movePp.moves[j]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP1 + j, &movePp.pp[j]); } var = 0; for (j = 0; j < 4; j++) { var |= (array3[j]) << (j << 1); } - SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP_BONUSES, &var); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP_BONUSES, &var); } gChosenMovesByBanks[bank] = gBattleMons[bank].moves[*(gBattleStruct->chosenMovePositions + bank)]; diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 92a9c4074..c1e37a9ac 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -24,12 +24,12 @@ extern u16 gBattle_BG3_Y; extern u8 gReservedSpritePaletteCount; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gBankInMenu; -extern u16 gBattlePartyID[MAX_BATTLERS_COUNT]; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattlersCount; extern u32 gBattleTypeFlags; -extern u8 gBankSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; -extern u8 gHealthBoxesIds[MAX_BATTLERS_COUNT]; +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern struct SpriteTemplate gUnknown_0202499C; extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[]; @@ -38,11 +38,11 @@ extern void ScanlineEffect_Clear(void); extern void sub_8035658(void); extern bool8 IsDoubleBattle(void); extern u8 GetSubstituteSpriteDefault_Y(u8 bank); -extern u8 GetBankSpriteDefault_Y(u8 bank); +extern u8 GetBattlerSpriteDefault_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 GetBankCoord(u8 bank, u8 caseId); +extern u8 GetBattlerSpriteCoord(u8 bank, u8 caseId); // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); @@ -165,14 +165,14 @@ static void CB2_ReshowBattleScreenAfterMenu(void) LoadAndCreateEnemyShadowSprites(); opponentBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); - SetBankEnemyShadowSpriteCallback(opponentBank, species); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES); + SetBattlerShadowSpriteCallback(opponentBank, species); if (IsDoubleBattle()) { opponentBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); - SetBankEnemyShadowSpriteCallback(opponentBank, species); + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES); + SetBattlerShadowSpriteCallback(opponentBank, species); } ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0); @@ -215,7 +215,7 @@ static bool8 LoadBankSpriteGfx(u8 bank) if (GetBattlerSide(bank) != B_SIDE_PLAYER) { if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE); } @@ -224,7 +224,7 @@ static bool8 LoadBankSpriteGfx(u8 bank) else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) DecompressTrainerBackPic(BACK_PIC_WALLY, bank); else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank); + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE); @@ -252,62 +252,62 @@ static void CreateBankSprite(u8 bank) if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute) posY = GetSubstituteSpriteDefault_Y(bank); else - posY = GetBankSpriteDefault_Y(bank); + posY = GetBattlerSpriteDefault_Y(bank); if (GetBattlerSide(bank) != B_SIDE_PLAYER) { - if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), posY, sub_80A82E4(bank)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + sub_806A068(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(bank, 2), posY, sub_80A82E4(bank)); + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) - gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + gSprites[gBattlerSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) { sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, sub_80A82E4(0)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(0)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80, sub_80A82E4(0)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; } else { - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankCoord(bank, 2), posY, sub_80A82E4(bank)); - gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data[0] = bank; - gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + sub_806A068(GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); + gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(bank, 2), posY, sub_80A82E4(bank)); + gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); - StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) - gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + gSprites[gBattlerSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; } - gSprites[gBankSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible; + gSprites[gBattlerSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible; } } @@ -322,32 +322,32 @@ static void CreateHealthboxSprite(u8 bank) else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) return; else - healthboxSpriteId = CreateBankHealthboxSprites(bank); + healthboxSpriteId = CreateHealthboxSprites(bank); - gHealthBoxesIds[bank] = healthboxSpriteId; - SetBankHealthboxSpritePos(bank); + gHealthboxSpriteIds[bank] = healthboxSpriteId; + InitBattlerHealthboxCoords(bank); SetHealthboxSpriteVisible(healthboxSpriteId); if (GetBattlerSide(bank) != B_SIDE_PLAYER) - UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gEnemyParty[gBattlerPartyIndexes[bank]], HEALTHBOX_ALL); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT); + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], HEALTHBOX_SAFARI_ALL_TEXT); else - UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], HEALTHBOX_ALL); if (GetBattlerPosition(bank) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(bank) == B_POSITION_PLAYER_RIGHT) - DummyBattleInterfaceFunc(gHealthBoxesIds[bank], TRUE); + DummyBattleInterfaceFunc(gHealthboxSpriteIds[bank], TRUE); else - DummyBattleInterfaceFunc(gHealthBoxesIds[bank], FALSE); + DummyBattleInterfaceFunc(gHealthboxSpriteIds[bank], FALSE); if (GetBattlerSide(bank) != B_SIDE_PLAYER) { - if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) SetHealthboxSpriteInvisible(healthboxSpriteId); } else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) { - if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) SetHealthboxSpriteInvisible(healthboxSpriteId); } } diff --git a/sym_common.txt b/sym_common.txt index d724a46d5..ec6c95b20 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -215,10 +215,10 @@ gBattleResults: @ 3005D10 gLeveledUpInBattle: @ 3005D54 .space 0xC -gBattlerFuncs: @ 3005D60 +gBattlerControllerFuncs: @ 3005D60 .space 0x10 -gHealthBoxesIds: @ 3005D70 +gHealthboxSpriteIds: @ 3005D70 .space 0x4 gMultiUsePlayerCursor: @ 3005D74 diff --git a/sym_ewram.txt b/sym_ewram.txt index ca117d1e5..a35bd4bf0 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -273,13 +273,13 @@ gBattleBufferB: @ 2023864 gActiveBattler: @ 2024064 .space 0x4 -gBattleExecBuffer: @ 2024068 +gBattleControllerExecFlags: @ 2024068 .space 0x4 gBattlersCount: @ 202406C .space 0x2 -gBattlePartyID: @ 202406E +gBattlerPartyIndexes: @ 202406E .space 0x8 gBattlerPositions: @ 2024076 @@ -300,7 +300,7 @@ gCurrentActionFuncId: @ 2024083 gBattleMons: @ 2024084 .space 0x160 -gBankSpriteIds: @ 20241E4 +gBattlerSpriteIds: @ 20241E4 .space 0x4 gCurrMovePos: @ 20241E8 @@ -333,10 +333,10 @@ gLastUsedItem: @ 2024208 gLastUsedAbility: @ 202420A .space 0x1 -gBattleAttacker: @ 202420B +gBattleMoveAttacker: @ 202420B .space 0x1 -gBattleDefender: @ 202420C +gBattleMoveTarget: @ 202420C .space 0x1 gBank1: @ 202420D -- cgit v1.2.3 From aba388d3322806467a5ef1adb4e3159cf1793db1 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 14:00:01 -0600 Subject: GetBattlerSpriteId -> GetAnimBattlerSpriteId --- asm/battle_anim_80A5C6C.s | 14 +++--- asm/battle_anim_80D51AC.s | 26 +++++------ asm/battle_anim_80FE840.s | 116 +++++++++++++++++++++++----------------------- asm/battle_anim_815A0D4.s | 54 ++++++++++----------- include/battle_anim.h | 2 +- src/battle_anim.c | 12 ++--- 6 files changed, 112 insertions(+), 112 deletions(-) diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index 202861b83..a3be18667 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -716,8 +716,8 @@ _080A6238: bx r1 thumb_func_end sub_80A6190 - thumb_func_start GetBattlerSpriteId -GetBattlerSpriteId: @ 80A6240 + thumb_func_start GetAnimBattlerSpriteId +GetAnimBattlerSpriteId: @ 80A6240 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -785,7 +785,7 @@ _080A62CA: pop {r1} bx r1 .pool - thumb_func_end GetBattlerSpriteId + thumb_func_end GetAnimBattlerSpriteId thumb_func_start StoreSpriteCallbackInData6 StoreSpriteCallbackInData6: @ 80A62D4 @@ -2889,7 +2889,7 @@ sub_80A7238: @ 80A7238 beq _080A7268 ldr r4, =gSprites movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -3858,7 +3858,7 @@ duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF @@ -4084,7 +4084,7 @@ sub_80A7B98: @ 80A7B98 lsrs r4, r0, 24 ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -6101,7 +6101,7 @@ sub_80A8BC4: @ 80A8BC4 ldr r0, =gTasks adds r5, r1, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r6, 0 diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s index 7714d1a2f..3f36bb4a2 100644 --- a/asm/battle_anim_80D51AC.s +++ b/asm/battle_anim_80D51AC.s @@ -12,7 +12,7 @@ sub_80D51AC: @ 80D51AC lsrs r5, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF @@ -165,7 +165,7 @@ sub_80D52D0: @ 80D52D0 bgt _080D52FC lsls r0, 24 lsrs r0, 24 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -379,7 +379,7 @@ sub_80D5484: @ 80D5484 lsrs r5, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xFF @@ -603,7 +603,7 @@ sub_80D5644: @ 80D5644 lsrs r4, 24 ldr r5, =gBattleAnimArgs ldrb r0, [r5] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -723,7 +723,7 @@ sub_80D5738: @ 80D5738 movs r6, 0x1 ldr r4, =gBattleAnimArgs ldrb r0, [r4] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 movs r1, 0x8 @@ -938,7 +938,7 @@ sub_80D58F8: @ 80D58F8 strb r0, [r2] ldr r5, =gBattleAnimArgs ldrb r0, [r5, 0x4] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldrh r2, [r5] @@ -1352,7 +1352,7 @@ sub_80D5C50: @ 80D5C50 strh r0, [r5, 0xA] _080D5C82: ldrb r0, [r5] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r1, =gTasks lsls r4, r6, 2 adds r4, r6 @@ -1508,7 +1508,7 @@ sub_80D5DB0: @ 80D5DB0 cmp r0, 0 blt _080D5E10 ldrb r0, [r1] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r2, r0, 24 b _080D5E18 @@ -1635,7 +1635,7 @@ sub_80D5EB8: @ 80D5EB8 _080D5ED4: ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x8] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks @@ -1836,7 +1836,7 @@ sub_80D6064: @ 80D6064 lsrs r4, 24 ldr r6, =gBattleAnimArgs ldrb r0, [r6, 0x6] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 @@ -1939,7 +1939,7 @@ sub_80D6134: @ 80D6134 lsrs r7, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x4] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -2057,7 +2057,7 @@ sub_80D622C: @ 80D622C lsrs r5, r0, 24 ldr r4, =gBattleAnimArgs ldrb r0, [r4, 0x4] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -2290,7 +2290,7 @@ _080D63EE: ldrh r0, [r1, 0x8] strh r0, [r4, 0x1E] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 5cbaf41f7..1aee34601 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -1434,7 +1434,7 @@ sub_80FF3B0: @ 80FF3B0 ands r0, r1 strb r0, [r2] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x2E] @@ -1452,7 +1452,7 @@ sub_80FF3EC: @ 80FF3EC push {r4,lr} adds r4, r0, 0 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 @@ -1517,7 +1517,7 @@ sub_80FF458: @ 80FF458 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gSprites @@ -1567,7 +1567,7 @@ _080FF498: orrs r0, r1 strb r0, [r7, 0x5] movs r0, 0x3 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 lsls r4, r1, 4 @@ -1618,7 +1618,7 @@ sub_80FF53C: @ 80FF53C lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -1698,7 +1698,7 @@ sub_80FF5CC: @ 80FF5CC cmp r5, 0 bne _080FF674 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -1723,7 +1723,7 @@ sub_80FF5CC: @ 80FF5CC orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x3 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 @@ -3867,7 +3867,7 @@ _08100700: adds r0, r7 strh r0, [r4, 0x22] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId _0810071A: adds r0, r6, 0 bl sub_80A8328 @@ -8237,7 +8237,7 @@ sub_81029B4: @ 81029B4 ldr r1, =gTasks adds r6, r0, r1 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x8] @@ -11678,7 +11678,7 @@ sub_81045B0: @ 81045B0 lsls r5, 24 lsrs r5, 24 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -11735,7 +11735,7 @@ sub_8104614: @ 8104614 cmp r1, r0 bne _08104664 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -11771,7 +11771,7 @@ sub_8104674: @ 8104674 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 @@ -12129,7 +12129,7 @@ sub_8104938: @ 8104938 .pool _08104964: ldrb r0, [r5] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12303,7 +12303,7 @@ sub_8104AB4: @ 8104AB4 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12476,7 +12476,7 @@ sub_8104C38: @ 8104C38 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12528,7 +12528,7 @@ sub_8104CA4: @ 8104CA4 ldr r0, =gTasks adds r4, r1, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r2, 0 @@ -13873,7 +13873,7 @@ sub_810577C: @ 810577C ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -13968,7 +13968,7 @@ _08105850: _08105856: strh r0, [r4, 0x24] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14154,7 +14154,7 @@ sub_810599C: @ 810599C movs r0, 0x2 strh r0, [r4, 0x24] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14939,7 +14939,7 @@ sub_8106020: @ 8106020 lsrs r0, 24 adds r6, r0, 0 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks @@ -14955,7 +14955,7 @@ sub_8106020: @ 8106020 cmp r0, 0x1 bne _0810607C movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -15004,7 +15004,7 @@ sub_81060B0: @ 81060B0 lsrs r0, 24 adds r6, r0, 0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks @@ -15020,7 +15020,7 @@ sub_81060B0: @ 81060B0 cmp r0, 0x1 bne _0810610C movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -16593,7 +16593,7 @@ sub_8106D90: @ 8106D90 lsrs r5, 24 ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -18963,7 +18963,7 @@ sub_81080E4: @ 81080E4 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -21389,7 +21389,7 @@ sub_8109460: @ 8109460 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 @@ -22600,12 +22600,12 @@ _08109DE2: adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] movs r0, 0x3 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -24532,7 +24532,7 @@ sub_810AD98: @ 810AD98 lsrs r0, 24 strh r0, [r5, 0x22] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] @@ -24641,7 +24641,7 @@ _0810AE8E: b _0810AFC0 _0810AE90: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r6, 0 @@ -27505,7 +27505,7 @@ _0810C594: cmp r0, 0 bne _0810C5F0 movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -30867,7 +30867,7 @@ sub_810E13C: @ 810E13C ldr r0, =sub_810E184 str r0, [r4, 0x1C] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -31021,7 +31021,7 @@ _0810E274: ble _0810E2BC _0810E296: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32289,7 +32289,7 @@ _0810EC46: movs r1, 0x1 bl sub_80A69CC movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32379,7 +32379,7 @@ _0810ECE0: cmp r0, r1 bge _0810ED1E movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32416,7 +32416,7 @@ sub_810ED28: @ 810ED28 ldr r0, =sub_810ED70 str r0, [r4, 0x1C] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -32989,7 +32989,7 @@ sub_810F184: @ 810F184 cmp r0, 0 bne _0810F1BC movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -33005,7 +33005,7 @@ sub_810F184: @ 810F184 .pool _0810F1BC: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -33774,7 +33774,7 @@ sub_810F7D4: @ 810F7D4 ldr r0, =gTasks adds r4, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -33824,7 +33824,7 @@ sub_810F83C: @ 810F83C ldr r0, =gTasks adds r4, r1, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -34891,7 +34891,7 @@ _08110094: bl CalcCenterToCornerVec ldr r1, =gBattleAnimArgs ldrb r0, [r1] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] @@ -36732,7 +36732,7 @@ _0811101E: strh r0, [r6, 0x24] strh r5, [r6, 0xA] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] @@ -37770,7 +37770,7 @@ sub_811188C: @ 811188C movs r0, 0x52 bl SetGpuReg movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -37881,7 +37881,7 @@ sub_811196C: @ 811196C .pool _08111994: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r1, r0, 24 ldrh r0, [r4, 0x8] @@ -38626,7 +38626,7 @@ _08111F0C: movs r0, 0x10 strh r0, [r5, 0xE] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -38888,7 +38888,7 @@ _081121AE: movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] @@ -42979,7 +42979,7 @@ sub_8114374: @ 8114374 _0811438A: lsls r0, r4, 24 lsrs r0, 24 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -43295,7 +43295,7 @@ _08114650: lsrs r5, r0, 16 _0811465C: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -43421,7 +43421,7 @@ _08114776: cmp r0, 0x2 bne _08114824 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r5, =gSprites @@ -43562,7 +43562,7 @@ _081148C4: .4byte _081148FC _081148E4: ldrb r0, [r2] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r2, r0, 24 b _08114902 @@ -44092,7 +44092,7 @@ _08114D28: .4byte _08114E8C _08114D3C: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -44272,7 +44272,7 @@ sub_8114EB4: @ 8114EB4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -44361,7 +44361,7 @@ sub_8114F54: @ 8114F54 .pool _08114F78: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -44438,7 +44438,7 @@ _08115004: .4byte _081150D4 _08115018: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -44846,7 +44846,7 @@ _08115370: .pool _08115380: ldrb r0, [r6] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -47048,7 +47048,7 @@ sub_81164F0: @ 81164F0 adds r4, r0, 0 ldr r5, =gBattleAnimArgs ldrb r0, [r5] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] @@ -47965,7 +47965,7 @@ _08116CA0: lsrs r5, r0, 16 _08116CAC: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -48119,7 +48119,7 @@ _08116DF6: movs r1, 0 bl SetGpuReg movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r4, =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index f0a08d8c5..6b894a0f1 100644 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -1922,7 +1922,7 @@ sub_815AFF0: @ 815AFF0 strh r0, [r4, 0x12] strh r5, [r4, 0x14] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -2320,7 +2320,7 @@ sub_815B338: @ 815B338 .pool _0815B35C: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2351,7 +2351,7 @@ sub_815B394: @ 815B394 push {r4-r6,lr} adds r5, r0, 0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x2E @@ -2728,7 +2728,7 @@ sub_815B65C: @ 815B65C cmp r0, 0 bne _0815B69C movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2770,7 +2770,7 @@ sub_815B6B4: @ 815B6B4 cmp r0, 0 bne _0815B6F4 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2868,7 +2868,7 @@ sub_815B778: @ 815B778 cmp r0, 0 bne _0815B7B8 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -4272,7 +4272,7 @@ sub_815C3A8: @ 815C3A8 cmp r0, 0 bne _0815C3E8 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -4419,7 +4419,7 @@ _0815C4BC: subs r0, 0x1 strh r0, [r4, 0x14] ldrb r0, [r5] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -4758,7 +4758,7 @@ sub_815C770: @ 815C770 strh r0, [r4, 0x24] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -5110,7 +5110,7 @@ _0815CA5E: strh r0, [r2, 0x1E] mov r1, r8 ldrb r0, [r1] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks @@ -5674,7 +5674,7 @@ sub_815CED8: @ 815CED8 lsrs r0, 24 str r0, [sp, 0x18] movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId bl IsContest lsls r0, 24 cmp r0, 0 @@ -6118,7 +6118,7 @@ _0815D2B4: strh r0, [r4, 0x24] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -6562,7 +6562,7 @@ sub_815D64C: @ 815D64C strh r0, [r4, 0x8] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -7399,7 +7399,7 @@ _0815DCEA: strh r0, [r5, 0x14] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -7661,7 +7661,7 @@ sub_815DF0C: @ 815DF0C ldrh r0, [r1, 0x2] strh r0, [r4, 0xA] ldrb r0, [r1] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites @@ -8827,7 +8827,7 @@ _0815E85C: ldrh r0, [r2, 0x2] strh r0, [r4, 0x8] ldrb r0, [r2] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -9326,7 +9326,7 @@ sub_815EC48: @ 815EC48 ldr r0, =gTasks adds r6, r1, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] @@ -10057,7 +10057,7 @@ sub_815F20C: @ 815F20C lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 @@ -10191,7 +10191,7 @@ sub_815F330: @ 815F330 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r3, r0, 24 ldr r1, =gTasks @@ -10943,7 +10943,7 @@ _0815F92C: .4byte _0815FD8C _0815F940: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks @@ -11096,7 +11096,7 @@ _0815FA9C: ldrh r6, [r1, 0x2] _0815FA9E: movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -11160,7 +11160,7 @@ _0815FB2C: ldrh r6, [r1, 0x2] _0815FB2E: movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -11365,7 +11365,7 @@ _0815FCE8: .pool _0815FD08: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks @@ -11425,7 +11425,7 @@ _0815FD7E: .pool _0815FD8C: movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks @@ -11595,7 +11595,7 @@ _0815FE92: cmp r0, 0 bne _0815FFBC movs r0, 0x1 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId ldr r2, =gSprites lsls r0, 24 lsrs r0, 24 @@ -11893,7 +11893,7 @@ sub_8160164: @ 8160164 ldr r0, =gTasks adds r4, r1, r0 movs r0, 0 - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 @@ -12396,7 +12396,7 @@ sub_8160544: @ 8160544 strh r0, [r4, 0x8] ldr r0, =gBattleAnimArgs ldrb r0, [r0] - bl GetBattlerSpriteId + bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 diff --git a/include/battle_anim.h b/include/battle_anim.h index 8f8e3a377..cc864b024 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -89,7 +89,7 @@ u8 GetBattlerSpriteCoord(u8 bank, u8 attributeId); bool8 IsBattlerSpritePresent(u8 bank); void sub_80A6C68(u8 arg0); -u8 GetBattlerSpriteId(u8 wantedBank); +u8 GetAnimBattlerSpriteId(u8 wantedBank); bool8 IsDoubleBattle(void); u8 sub_80A6D94(void); u8 sub_80A8364(u8); diff --git a/src/battle_anim.c b/src/battle_anim.c index f5de56610..ab9569dcf 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1751,7 +1751,7 @@ static void ScriptCmd_invisible(void) { u8 spriteId; - spriteId = GetBattlerSpriteId(sBattleAnimScriptPtr[1]); + spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) gSprites[spriteId].invisible = 1; @@ -1762,7 +1762,7 @@ static void ScriptCmd_visible(void) { u8 spriteId; - spriteId = GetBattlerSpriteId(sBattleAnimScriptPtr[1]); + spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) gSprites[spriteId].invisible = 0; @@ -1783,12 +1783,12 @@ static void ScriptCmd_doublebattle_2D(void) if (wantedBank == ANIM_ATTACKER) { r4 = sub_80A8364(gBattleAnimAttacker); - spriteId = GetBattlerSpriteId(ANIM_ATTACKER); + spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); } else { r4 = sub_80A8364(gBattleAnimTarget); - spriteId = GetBattlerSpriteId(ANIM_TARGET); + spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } if (spriteId != 0xFF) { @@ -1818,12 +1818,12 @@ static void ScriptCmd_doublebattle_2E(void) if (wantedBank == ANIM_ATTACKER) { r4 = sub_80A8364(gBattleAnimAttacker); - spriteId = GetBattlerSpriteId(ANIM_ATTACKER); + spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); } else { r4 = sub_80A8364(gBattleAnimTarget); - spriteId = GetBattlerSpriteId(ANIM_TARGET); + spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } if (spriteId != 0xFF && r4 == 2) -- cgit v1.2.3 From c3dc14ba66b31c8f2556e9a19b6be7a5e860a376 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Tue, 6 Feb 2018 16:09:39 -0600 Subject: more renaming --- asm/battle_anim_80FE840.s | 12 +- asm/battle_link_817C95C.s | 134 +-- asm/contest.s | 12 +- asm/pokemon_item_effect.s | 2 +- data/battle_scripts_1.s | 26 +- include/battle.h | 68 +- include/battle_ai_script_commands.h | 4 +- include/battle_interface.h | 2 +- include/recorded_battle.h | 2 +- src/battle_ai_script_commands.c | 252 ++-- src/battle_ai_switch_items.c | 32 +- src/battle_anim.c | 10 +- src/battle_controller_link_opponent.c | 54 +- src/battle_controller_link_partner.c | 18 +- src/battle_controller_opponent.c | 34 +- src/battle_controller_player.c | 36 +- src/battle_controller_player_partner.c | 28 +- src/battle_controller_recorded_opponent.c | 38 +- src/battle_controller_recorded_player.c | 28 +- src/battle_controller_safari.c | 8 +- src/battle_controller_wally.c | 12 +- src/battle_controllers.c | 16 +- src/battle_gfx_sfx_util.c | 68 +- src/battle_interface.c | 48 +- src/battle_main.c | 574 ++++----- src/battle_message.c | 60 +- src/battle_script_commands.c | 1846 ++++++++++++++--------------- src/battle_util.c | 392 +++--- src/pokeball.c | 16 +- src/pokemon_2.c | 8 +- src/pokemon_3.c | 14 +- src/recorded_battle.c | 10 +- src/reshow_battle_screen.c | 154 +-- sym_ewram.txt | 12 +- 34 files changed, 2015 insertions(+), 2015 deletions(-) diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 1aee34601..3e3be2100 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -29520,7 +29520,7 @@ sub_810D608: @ 810D608 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D664 - ldr r4, =gBattleMoveAttacker + ldr r4, =gBattlerAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord @@ -29808,7 +29808,7 @@ sub_810D874: @ 810D874 ldrsh r0, [r0, r1] cmp r0, 0 bne _0810D8B8 - ldr r4, =gBattleMoveAttacker + ldr r4, =gBattlerAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord @@ -40918,7 +40918,7 @@ sub_8113250: @ 8113250 ldr r0, =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] - ldr r4, =gBattleMoveAttacker + ldr r4, =gBattlerAttacker ldrb r0, [r4] movs r1, 0 bl sub_80A861C @@ -50065,7 +50065,7 @@ sub_8117E94: @ 8117E94 lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimAttacker - ldr r1, =gBattleMoveTarget + ldr r1, =gBattlerTarget ldrb r1, [r1] strb r1, [r2] ldr r2, =gBattleAnimTarget @@ -50117,7 +50117,7 @@ sub_8117F10: @ 8117F10 lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimTarget - ldr r1, =gBattleMoveTarget + ldr r1, =gBattlerTarget ldrb r1, [r1] strb r1, [r2] bl DestroyAnimVisualTask @@ -50132,7 +50132,7 @@ sub_8117F30: @ 8117F30 lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimAttacker - ldr r1, =gBattleMoveAttacker + ldr r1, =gBattlerAttacker ldrb r1, [r1] strb r1, [r2] ldr r2, =gBattleAnimTarget diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index 61e303417..dcfd89132 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -34,12 +34,12 @@ _0817C988: movs r1, 0x81 lsls r1, 2 adds r7, r0, r1 - ldr r5, =gBattleMoveAttacker + ldr r5, =gBattlerAttacker ldrb r0, [r5] bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -83,7 +83,7 @@ _0817CA10: str r1, [sp, 0x8] cmp r6, 0 bne _0817CA3C - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -94,7 +94,7 @@ _0817CA10: b _0817CA4C .pool _0817CA3C: - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -105,7 +105,7 @@ _0817CA3C: _0817CA4C: adds r1, r0 str r1, [sp, 0xC] - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] ldr r1, =gStringInfo ldr r1, [r1] @@ -134,13 +134,13 @@ _0817CA4C: bl _0817E0A2 .pool _0817CA9C: - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 lsrs r0, 25 mov r8, r0 - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] bl GetBattlerPosition lsls r0, 24 @@ -572,7 +572,7 @@ _0817D0DC: lsls r3, 2 adds r3, r7, r3 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -602,7 +602,7 @@ _0817D124: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -635,7 +635,7 @@ _0817D16C: lsls r0, 2 adds r5, r7, r0 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -716,7 +716,7 @@ _0817D216: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -776,7 +776,7 @@ _0817D296: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -834,7 +834,7 @@ _0817D314: adds r3, r0 adds r3, r7, r3 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -940,8 +940,8 @@ _0817D3F2: bne _0817D3FE bl _0817E0A6 _0817D3FE: - ldr r0, =gBattleMoveAttacker - ldr r1, =gBattleMoveTarget + ldr r0, =gBattlerAttacker + ldr r1, =gBattlerTarget ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 @@ -1015,7 +1015,7 @@ _0817D498: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1092,7 +1092,7 @@ _0817D53C: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1162,7 +1162,7 @@ _0817D5CE: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1227,7 +1227,7 @@ _0817D65E: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1314,7 +1314,7 @@ _0817D704: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1354,7 +1354,7 @@ _0817D76C: bl _0817E0A6 _0817D77E: ldr r6, =gBattlerPartyIndexes - ldr r5, =gBattleMoveAttacker + ldr r5, =gBattlerAttacker ldrb r0, [r5] lsls r0, 1 adds r0, r6 @@ -1408,7 +1408,7 @@ _0817D7D8: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1452,7 +1452,7 @@ _0817D838: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1498,7 +1498,7 @@ _0817D8A4: _0817D8B6: ldr r2, =gBattlerPartyIndexes mov r8, r2 - ldr r6, =gBattleMoveAttacker + ldr r6, =gBattlerAttacker ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -1574,7 +1574,7 @@ _0817D94C: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1640,7 +1640,7 @@ _0817D9C2: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1672,7 +1672,7 @@ _0817D9C2: .pool _0817DA24: ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1715,7 +1715,7 @@ _0817DA68: lsls r4, 3 adds r2, r4 adds r2, r7, r2 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1748,7 +1748,7 @@ _0817DA68: .pool _0817DACC: ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1803,7 +1803,7 @@ _0817DB24: lsls r4, 3 adds r3, r4 adds r3, r7, r3 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r5 @@ -1839,7 +1839,7 @@ _0817DB76: .pool _0817DB90: ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1876,7 +1876,7 @@ _0817DBD4: adds r3, r0 adds r3, r7, r3 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -1944,7 +1944,7 @@ _0817DC62: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2022,7 +2022,7 @@ _0817DCFC: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2050,7 +2050,7 @@ _0817DD38: adds r2, r0 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2122,7 +2122,7 @@ _0817DDC8: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2155,7 +2155,7 @@ _0817DE10: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2254,7 +2254,7 @@ _0817DEDC: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2332,7 +2332,7 @@ _0817DF70: lsls r2, 2 adds r2, r7, r2 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2414,7 +2414,7 @@ _0817DFE6: ands r0, r2 strb r0, [r1] ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -2557,14 +2557,14 @@ _0817E122: lsls r1, 2 adds r1, r0, r1 str r1, [sp, 0x8] - ldr r2, =gBattleMoveAttacker + ldr r2, =gBattlerAttacker mov r10, r2 ldrb r0, [r2] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -2812,7 +2812,7 @@ sub_817E32C: @ 817E32C movs r1, 0x81 lsls r1, 2 adds r4, r0, r1 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3244,12 +3244,12 @@ sub_817E684: @ 817E684 movs r2, 0x81 lsls r2, 2 adds r7, r0, r2 - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -3298,7 +3298,7 @@ _0817E6F0: .4byte _0817E760 _0817E760: ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -3330,7 +3330,7 @@ _0817E79C: lsls r2, r0, 4 ldr r4, =0x0000ffff ldr r1, [r1] - ldr r3, =gBattleMoveAttacker + ldr r3, =gBattlerAttacker ldrh r0, [r1] cmp r6, r0 bne _0817E7E0 @@ -3708,13 +3708,13 @@ sub_817EA80: @ 817EA80 movs r1, 0x81 lsls r1, 2 adds r5, r0, r1 - ldr r3, =gBattleMoveAttacker + ldr r3, =gBattlerAttacker mov r8, r3 ldrb r0, [r3] bl GetBattlerSide lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 @@ -4006,7 +4006,7 @@ _0817ECCC: lsrs r0, 5 subs r6, r0, 0x1 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4165,7 +4165,7 @@ _0817EE1C: bne _0817EEBC adds r2, r4, 0 ldr r1, =gBattlerPartyIndexes - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -4269,7 +4269,7 @@ sub_817EECC: @ 817EECC beq _0817EEE6 b _0817F1FA _0817EEE6: - ldr r4, =gBattleMoveAttacker + ldr r4, =gBattlerAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 @@ -4291,7 +4291,7 @@ _0817EEF8: bgt _0817EF10 b _0817F1FA _0817EF10: - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] muls r0, r1 adds r0, r5 @@ -4367,7 +4367,7 @@ _0817EF8A: beq _0817EF98 b _0817F1FA _0817EF98: - ldr r2, =gBattleMoveAttacker + ldr r2, =gBattlerAttacker ldrb r0, [r2] adds r0, r6 ldrb r0, [r0] @@ -4386,11 +4386,11 @@ _0817EF98: mov r10, r3 mov r8, r0 add r7, sp, 0x10 - ldr r4, =gBattleMoveTarget + ldr r4, =gBattlerTarget mov r9, r4 _0817EFC2: lsls r1, r5, 1 - ldr r6, =gBattleMoveAttacker + ldr r6, =gBattlerAttacker ldrb r0, [r6] movs r2, 0x58 muls r0, r2 @@ -4420,7 +4420,7 @@ _0817EFC2: lsls r1, 1 adds r1, r4 ldrh r3, [r1] - ldr r2, =gBattleMoveAttacker + ldr r2, =gBattlerAttacker ldrb r0, [r2] movs r4, 0x58 muls r0, r4 @@ -4437,7 +4437,7 @@ _0817EFC2: str r4, [sp] movs r4, 0 str r4, [sp, 0x4] - ldr r6, =gBattleMoveAttacker + ldr r6, =gBattlerAttacker ldrb r4, [r6] str r4, [sp, 0x8] mov r6, r9 @@ -4448,7 +4448,7 @@ _0817EFC2: ldr r4, =gBattleMoveDamage str r3, [r4] ldr r1, =gStatuses3 - ldr r2, =gBattleMoveAttacker + ldr r2, =gBattlerAttacker ldrb r0, [r2] lsls r0, 2 adds r0, r1 @@ -4472,7 +4472,7 @@ _0817EFC2: str r0, [r4] _0817F06A: ldr r0, =gProtectStructs - ldr r6, =gBattleMoveAttacker + ldr r6, =gBattlerAttacker ldrb r1, [r6] lsls r1, 4 adds r1, r0 @@ -4513,7 +4513,7 @@ _0817F0B4: cmp r5, 0x3 ble _0817EFC2 movs r5, 0 - ldr r3, =gBattleMoveAttacker + ldr r3, =gBattlerAttacker ldr r6, =gMoveSelectionCursor ldr r4, =gBattlerPartyIndexes mov r8, r4 @@ -4545,9 +4545,9 @@ _0817F0D8: movs r7, 0 _0817F0F6: movs r5, 0 - ldr r4, =gBattleMoveTarget + ldr r4, =gBattlerTarget ldr r6, =gEnemyParty - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] add r0, r10 ldrb r3, [r0] @@ -4582,7 +4582,7 @@ _0817F11A: adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 - ldr r2, =gBattleMoveAttacker + ldr r2, =gBattlerAttacker ldrb r0, [r2] lsls r0, 1 add r0, r8 @@ -4598,7 +4598,7 @@ _0817F11A: adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 - ldr r4, =gBattleMoveAttacker + ldr r4, =gBattlerAttacker ldrb r3, [r4] mov r2, r10 adds r0, r3, r2 @@ -4625,7 +4625,7 @@ _0817F1D4: _0817F1DC: ldr r2, =gBattleMoveDamage ldr r1, =gMoveSelectionCursor - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -4695,7 +4695,7 @@ _0817F270: cmp r2, 0x95 bne _0817F294 ldr r2, =gBattleMons - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r1, [r0] movs r0, 0x58 muls r0, r1 diff --git a/asm/contest.s b/asm/contest.s index 8f5ff780e..87abc1d06 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1058,9 +1058,9 @@ _080D8004: strb r2, [r1, 0x3] ldr r0, =gBattleTypeFlags str r4, [r0] - ldr r4, =gBattleMoveAttacker + ldr r4, =gBattlerAttacker strb r2, [r4] - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget strb r3, [r0] bl sub_80DB0C4 ldr r2, =gBattlerSpriteIds @@ -2548,7 +2548,7 @@ _080D8DD0: adds r4, r0 strh r5, [r4, 0xC] ldr r1, =gBattlerSpriteIds - ldr r0, =gBattleMoveAttacker + ldr r0, =gBattlerAttacker ldrb r0, [r0] adds r0, r1 strb r5, [r0] @@ -13798,7 +13798,7 @@ sub_80DEA20: @ 80DEA20 bl CreateInvisibleSpriteWithCallback ldr r1, =gBattlerSpriteIds strb r0, [r1, 0x3] - ldr r0, =gBattleMoveTarget + ldr r0, =gBattlerTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -13905,12 +13905,12 @@ _080DEAD0: .4byte _080DEB60 .4byte _080DEB60 _080DEB54: - ldr r1, =gBattleMoveTarget + ldr r1, =gBattlerTarget movs r0, 0x2 b _080DEB64 .pool _080DEB60: - ldr r1, =gBattleMoveTarget + ldr r1, =gBattlerTarget movs r0, 0x3 _080DEB64: strb r0, [r1] diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 928eb5550..be7d3be49 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -100,7 +100,7 @@ _0806BDBC: lsrs r0, 24 _0806BDC4: str r0, [sp, 0x34] - ldr r1, =gStringBank + ldr r1, =gStringBattler ldr r0, =gBankInMenu ldrb r2, [r0] strb r2, [r1] diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8eb3deaf2..4d8b22186 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -735,7 +735,7 @@ BattleScript_AlreadyPoisoned:: goto BattleScript_MoveEnd BattleScript_ImmunityProtected:: - copybyte gEffectBank, gBattleMoveTarget + copybyte gEffectBank, gBattlerTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PSNPrevention goto BattleScript_MoveEnd @@ -1055,7 +1055,7 @@ BattleScript_AlreadyParalyzed:: goto BattleScript_MoveEnd BattleScript_LimberProtected:: - copybyte gEffectBank, gBattleMoveTarget + copybyte gEffectBank, gBattlerTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_PRLZPrevention goto BattleScript_MoveEnd @@ -1513,7 +1513,7 @@ BattleScript_EffectCurse:: jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed BattleScript_CurseTrySpeed:: - copybyte gBattleMoveTarget, gBattleMoveAttacker + copybyte gBattlerTarget, gBattlerAttacker setbyte sANIM_TURN, 0x1 attackanimation waitanimation @@ -1534,7 +1534,7 @@ BattleScript_CurseTryDefence:: BattleScript_CurseEnd:: goto BattleScript_MoveEnd BattleScript_GhostCurse:: - jumpifbytenotequal gBattleMoveAttacker, gBattleMoveTarget, BattleScript_DoGhostCurse + jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_DoGhostCurse getmovetarget ATTACKER BattleScript_DoGhostCurse:: attackcanceler @@ -2217,7 +2217,7 @@ BattleScript_EffectWillOWisp:: goto BattleScript_MoveEnd BattleScript_WaterVeilPrevents:: - copybyte gEffectBank, gBattleMoveTarget + copybyte gEffectBank, gBattlerTarget setbyte cMULTISTRING_CHOOSER, 0x0 call BattleScript_BRNPrevention goto BattleScript_MoveEnd @@ -2598,11 +2598,11 @@ BattleScript_EffectTeeterDance:: attackcanceler attackstring ppreduce - setbyte gBattleMoveTarget, 0x0 + setbyte gBattlerTarget, 0x0 BattleScript_TeeterDanceLoop:: movevaluescleanup setmoveeffect EFFECT_CONFUSION - jumpifbyteequal gBattleMoveAttacker, gBattleMoveTarget, BattleScript_TeeterDanceLoopIncrement + jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_TeeterDanceLoopIncrement jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused @@ -2618,8 +2618,8 @@ BattleScript_TeeterDanceDoMoveEndIncrement:: setbyte sMOVEEND_STATE, 0x0 moveend 0x2, 0x10 BattleScript_TeeterDanceLoopIncrement:: - addbyte gBattleMoveTarget, 0x1 - jumpifbytenotequal gBattleMoveTarget, gBattlersCount, BattleScript_TeeterDanceLoop + addbyte gBattlerTarget, 0x1 + jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop end BattleScript_TeeterDanceOwnTempoPrevents:: @@ -3228,7 +3228,7 @@ BattleScript_DamagingWeatherContinues:: playanimation2 ATTACKER, sANIM_ARG1, NULL setbyte gBattleCommunication, 0x0 BattleScript_DamagingWeatherLoop:: - copyarraywithindex gBattleMoveAttacker, gBattleTurnOrder, gBattleCommunication, 0x1 + copyarraywithindex gBattlerAttacker, gBattleTurnOrder, gBattleCommunication, 0x1 weatherdamage jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement printfromtable gSandStormHailDmgStringIds @@ -3521,7 +3521,7 @@ BattleScript_RapidSpinAway:: BattleScript_WrapFree:: printstring STRINGID_PKMNGOTFREE waitmessage 0x40 - copybyte gBattleMoveTarget, sBANK + copybyte gBattlerTarget, sBANK return BattleScript_LeechSeedFree:: @@ -4053,7 +4053,7 @@ BattleScript_82DB4B8:: BattleScript_82DB4BE:: pause 0x20 BattleScript_82DB4C1:: - setbyte gBattleMoveTarget, 0x0 + setbyte gBattlerTarget, 0x0 setstatchanger ATK, 1, TRUE BattleScript_82DB4CD:: trygetintimidatetarget BattleScript_82DB51B @@ -4068,7 +4068,7 @@ BattleScript_82DB4CD:: printstring STRINGID_PKMNCUTSATTACKWITH waitmessage 0x40 BattleScript_82DB510:: - addbyte gBattleMoveTarget, 0x1 + addbyte gBattlerTarget, 0x1 goto BattleScript_82DB4CD BattleScript_82DB51B:: return diff --git a/include/battle.h b/include/battle.h index eafa72098..81c1d341d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -13,17 +13,18 @@ /* * A battler may be in one of four positions on the field. The first bit determines * what side the battler is on, either the player's side or the opponent's side. - * The second bit determines whether the pokemon is on the left or right of the - * given side. Note that the opponent's mons are drawn opposite because the position - * numbers correspond to their perspective. The battler number is usually the same - * as the position, except in the case of link battles. + * The second bit determines what flank the battler is on, either the left or right. + * Note that the opponent's flanks are drawn corresponding to their perspective, so + * their right mon appears on the left, and their left mon appears on the right. + * The battler ID is usually the same as the position, except in the case of link battles. * * + ------------------------- + - * | Opponent's side | + * | Opponent's side | + * | Right Left | * | 3 1 | * | | - * | | * | Player's side | + * | Left Right | * | 0 2 | * ----------------------------+ * | | @@ -38,12 +39,16 @@ #define B_POSITION_PLAYER_RIGHT 2 #define B_POSITION_OPPONENT_RIGHT 3 -#define B_POSITION_PARTNER(position) ((position) ^ 2) -#define B_POSITION_OPPOSITE(position) ((position) ^ 1) +// These macros can be used with either battler ID or positions to get the partner or the opposite mon +#define BATTLE_OPPOSITE(id) ((id) ^ 1) +#define BATTLE_PARTNER(id) ((id) ^ 2) #define B_SIDE_PLAYER 0 #define B_SIDE_OPPONENT 1 +#define B_FLANK_LEFT 0 +#define B_FLANK_RIGHT 1 + #define BIT_SIDE 1 #define BIT_FLANK 2 @@ -170,7 +175,7 @@ extern u8 gBattleOutcome; extern u32 gStatuses3[MAX_BATTLERS_COUNT]; -// +// Not really sure what a "hitmarker" is. #define HITMARKER_x10 0x00000010 #define HITMARKER_x20 0x00000020 @@ -214,21 +219,24 @@ extern u32 gHitMarker; extern u16 gSideStatuses[2]; -#define ACTION_USE_MOVE 0 -#define ACTION_USE_ITEM 1 -#define ACTION_SWITCH 2 -#define ACTION_RUN 3 -#define ACTION_WATCHES_CAREFULLY 4 -#define ACTION_SAFARI_ZONE_BALL 5 -#define ACTION_POKEBLOCK_CASE 6 -#define ACTION_GO_NEAR 7 -#define ACTION_SAFARI_ZONE_RUN 8 -#define ACTION_9 9 -#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action -#define ACTION_CANCEL_PARTNER 12 // when choosing an action -#define ACTION_FINISHED 12 // when executing an action -#define ACTION_NOTHING_FAINTED 13 // when choosing an action -#define ACTION_INIT_VALUE 0xFF +// Battle Actions +// These determine what each battler will do in a turn +#define B_ACTION_USE_MOVE 0 +#define B_ACTION_USE_ITEM 1 +#define B_ACTION_SWITCH 2 +#define B_ACTION_RUN 3 +#define B_ACTION_SAFARI_WATCH_CAREFULLY 4 +#define B_ACTION_SAFARI_BALL 5 +#define B_ACTION_SAFARI_POKEBLOCK 6 +#define B_ACTION_SAFARI_GO_NEAR 7 +#define B_ACTION_SAFARI_RUN 8 +// The exact purposes of these are unclear +#define B_ACTION_UNKNOWN9 9 +#define B_ACTION_EXEC_SCRIPT 10 // when executing an action +#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action +#define B_ACTION_FINISHED 12 // when executing an action +#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action +#define B_ACTION_NONE 0xFF #define MOVE_RESULT_MISSED (1 << 0) #define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) @@ -421,8 +429,8 @@ struct DisableStruct /*0x12*/ u8 chargeTimer2 : 4; /*0x13*/ u8 tauntTimer1:4; /*0x13*/ u8 tauntTimer2:4; - /*0x14*/ u8 bankPreventingEscape; - /*0x15*/ u8 bankWithSureHit; + /*0x14*/ u8 battlerPreventingEscape; + /*0x15*/ u8 battlerWithSureHit; /*0x16*/ u8 isFirstTurn; /*0x17*/ u8 unk17; /*0x18*/ u8 truantCounter : 1; @@ -594,10 +602,6 @@ struct BattleResources extern struct BattleResources* gBattleResources; -#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack) -#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack) -#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp) - struct BattleResults { u8 playerFaintCounter; // 0x0 @@ -836,7 +840,7 @@ struct BattleScripting u8 animArg2; u16 tripleKickPower; u8 atk49_state; - u8 bankWithAbility; + u8 battlerWithAbility; u8 multihitMoveEffect; u8 battler; u8 animTurn; @@ -946,7 +950,7 @@ struct BattleBarInfo struct BattleSpriteData { - struct BattleSpriteInfo *bankData; + struct BattleSpriteInfo *battlerData; struct BattleHealthboxInfo *healthBoxesData; struct BattleAnimationInfo *animationData; struct BattleBarInfo *battleBars; diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h index 5fb422b41..316f76de6 100644 --- a/include/battle_ai_script_commands.h +++ b/include/battle_ai_script_commands.h @@ -4,9 +4,9 @@ void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves); void BattleAI_SetupAIData(u8 defaultScoreMoves); u8 BattleAI_ChooseMoveOrAction(void); -void ClearBankMoveHistory(u8 bank); +void ClearBattlerMoveHistory(u8 bank); void RecordAbilityBattle(u8 bank, u8 abilityId); -void ClearBankAbilityHistory(u8 bank); +void ClearBattlerAbilityHistory(u8 bank); void RecordItemEffectBattle(u8 bank, u8 itemEffect); void ClearBankItemEffectHistory(u8 bank); diff --git a/include/battle_interface.h b/include/battle_interface.h index 5ccec56ca..fe8c03f70 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -54,7 +54,7 @@ enum HEALTHBOX_SAFARI_BALLS_TEXT }; -u8 CreateHealthboxSprites(u8 bank); +u8 CreateBattlerHealthboxSprites(u8 bank); u8 CreateSafariPlayerHealthboxSprites(void); void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 5c7bdc983..296245a24 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -9,7 +9,7 @@ void sub_8184DA4(u8 arg0); void sub_8184E58(void); void RecordedBattle_SetBattlerAction(u8 bank, u8 action); void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear); -u8 RecordedBattle_GetBankAction(u8 bank); +u8 RecordedBattle_GetBattlerAction(u8 bank); u8 sub_81850D0(void); u8 sub_81850DC(u8 *arg0); void sub_81851A8(u8 *arg0); diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 3e8d8d40e..355d81d2c 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -48,7 +48,7 @@ extern u32 gBattleTypeFlags; extern u8 gActiveBattler; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u16 gTrainerBattleOpponent_A; @@ -179,7 +179,7 @@ static void BattleAICmd_if_holds_item(void); // ewram EWRAM_DATA const u8 *gAIScriptPtr = NULL; -EWRAM_DATA static u8 sBank_AI = 0; +EWRAM_DATA static u8 sBattler_AI = 0; // const rom data @@ -363,18 +363,18 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) AI_THINKING_STRUCT->simulatedRNG[i] = 100 - (Random() % 16); } gBattleResources->AI_ScriptsStack->size = 0; - sBank_AI = gActiveBattler; + sBattler_AI = gActiveBattler; // decide a random target bank in doubles if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gBattleMoveTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - gBattleMoveTarget ^= BIT_FLANK; + gBattlerTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget ^= BIT_FLANK; } // in singles there's only one choice else { - gBattleMoveTarget = sBank_AI ^ BIT_SIDE; + gBattlerTarget = sBattler_AI ^ BIT_SIDE; } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) @@ -444,7 +444,7 @@ static u8 BattleAI_ChooseMoveOrAction_Singles(void) for (i = 1; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] != 0) // emerald adds an extra move ID check for some reason. + if (gBattleMons[sBattler_AI].moves[i] != 0) // emerald adds an extra move ID check for some reason. { // in ruby, the order of these if statements are reversed. if (currentMoveArray[0] == AI_THINKING_STRUCT->score[i]) @@ -479,7 +479,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) for (i = 0; i < 4; i++) { - if (i == sBank_AI || gBattleMons[i].hp == 0) + if (i == sBattler_AI || gBattleMons[i].hp == 0) { actionOrMoveIndex[i] = -1; bestMovePointsForTarget[i] = -1; @@ -491,9 +491,9 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) else BattleAI_SetupAIData(0xF); - gBattleMoveTarget = i; + gBattlerTarget = i; - if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE)) + if ((i & BIT_SIDE) != (sBattler_AI & BIT_SIDE)) RecordLastUsedMoveByTarget(); AI_THINKING_STRUCT->aiLogicId = 0; @@ -521,7 +521,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) mostViableMovesNo = 1; for (j = 1; j < 4; j++) { - if (gBattleMons[sBank_AI].moves[j] != 0) + if (gBattleMons[sBattler_AI].moves[j] != 0) { if (mostViableMovesScores[0] == AI_THINKING_STRUCT->score[j]) { @@ -542,7 +542,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) bestMovePointsForTarget[i] = mostViableMovesScores[0]; // don't use a move against ally if it has less than 100 pts - if (i == (sBank_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100) + if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100) { bestMovePointsForTarget[i] = -1; mostViableMovesScores[0] = mostViableMovesScores[0]; // needed to match @@ -573,8 +573,8 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) } } - gBattleMoveTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; - return actionOrMoveIndex[gBattleMoveTarget]; + gBattlerTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; + return actionOrMoveIndex[gBattlerTarget]; } static void BattleAI_DoAIProcessing(void) @@ -587,13 +587,13 @@ static void BattleAI_DoAIProcessing(void) break; case AIState_SettingUp: gAIScriptPtr = gBattleAI_ScriptsTable[AI_THINKING_STRUCT->aiLogicId]; // set AI ptr to logic ID. - if (gBattleMons[sBank_AI].pp[AI_THINKING_STRUCT->movesetIndex] == 0) + if (gBattleMons[sBattler_AI].pp[AI_THINKING_STRUCT->movesetIndex] == 0) { AI_THINKING_STRUCT->moveConsidered = 0; } else { - AI_THINKING_STRUCT->moveConsidered = gBattleMons[sBank_AI].moves[AI_THINKING_STRUCT->movesetIndex]; + AI_THINKING_STRUCT->moveConsidered = gBattleMons[sBattler_AI].moves[AI_THINKING_STRUCT->movesetIndex]; } AI_THINKING_STRUCT->aiState++; break; @@ -627,18 +627,18 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] == gLastMoves[gBattleMoveTarget]) + if (gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget]) break; - if (gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] != gLastMoves[gBattleMoveTarget] // HACK: This redundant condition is a hack to make the asm match. - && gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] == 0) + if (gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] != gLastMoves[gBattlerTarget] // HACK: This redundant condition is a hack to make the asm match. + && gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBattleMoveTarget].moves[i] = gLastMoves[gBattleMoveTarget]; + gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] = gLastMoves[gBattlerTarget]; break; } } } -void ClearBankMoveHistory(u8 bank) +void ClearBattlerMoveHistory(u8 bank) { s32 i; @@ -651,7 +651,7 @@ void RecordAbilityBattle(u8 bank, u8 abilityId) gBattleResources->battleHistory->abilities[bank] = abilityId; } -void ClearBankAbilityHistory(u8 bank) +void ClearBattlerAbilityHistory(u8 bank) { gBattleResources->battleHistory->abilities[bank] = 0; } @@ -721,9 +721,9 @@ static void BattleAICmd_if_hp_less_than(void) u16 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -736,9 +736,9 @@ static void BattleAICmd_if_hp_more_than(void) u16 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -751,9 +751,9 @@ static void BattleAICmd_if_hp_equal(void) u16 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -766,9 +766,9 @@ static void BattleAICmd_if_hp_not_equal(void) u16 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -782,9 +782,9 @@ static void BattleAICmd_if_status(void) u32 status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -800,9 +800,9 @@ static void BattleAICmd_if_not_status(void) u32 status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -818,9 +818,9 @@ static void BattleAICmd_if_status2(void) u32 status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -836,9 +836,9 @@ static void BattleAICmd_if_not_status2(void) u32 status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -854,9 +854,9 @@ static void BattleAICmd_if_status3(void) u32 status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -872,9 +872,9 @@ static void BattleAICmd_if_not_status3(void) u32 status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; status = AIScriptRead32(gAIScriptPtr + 2); @@ -890,9 +890,9 @@ static void BattleAICmd_if_side_affecting(void) u32 side, status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; side = GET_BATTLER_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); @@ -909,9 +909,9 @@ static void BattleAICmd_if_not_side_affecting(void) u32 side, status; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; side = GET_BATTLER_SIDE(bank); status = AIScriptRead32(gAIScriptPtr + 2); @@ -1084,8 +1084,8 @@ static void BattleAICmd_if_user_has_attacking_move(void) for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] != 0 - && gBattleMoves[gBattleMons[sBank_AI].moves[i]].power != 0) + if (gBattleMons[sBattler_AI].moves[i] != 0 + && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].power != 0) break; } if (i == 4) @@ -1100,8 +1100,8 @@ static void BattleAICmd_if_user_has_no_attacking_moves(void) for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] != 0 - && gBattleMoves[gBattleMons[sBank_AI].moves[i]].power != 0) + if (gBattleMons[sBattler_AI].moves[i] != 0 + && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].power != 0) break; } if (i != 4) @@ -1123,16 +1123,16 @@ static void BattleAICmd_get_type(void) switch (typeVar) { case AI_TYPE1_USER: // AI user primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type1; break; case AI_TYPE1_TARGET: // target primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleMoveTarget].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type1; break; case AI_TYPE2_USER: // AI user secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type2; break; case AI_TYPE2_TARGET: // target secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattleMoveTarget].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type2; break; case AI_TYPE_MOVE: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -1146,14 +1146,14 @@ static u8 BattleAI_GetWantedBank(u8 bank) switch (bank) { case AI_USER: - return sBank_AI; + return sBattler_AI; case AI_TARGET: default: - return gBattleMoveTarget; + return gBattlerTarget; case AI_USER_PARTNER: - return sBank_AI ^ BIT_FLANK; + return sBattler_AI ^ BIT_FLANK; case AI_TARGET_PARTNER: - return gBattleMoveTarget ^ BIT_FLANK; + return gBattlerTarget ^ BIT_FLANK; } } @@ -1203,17 +1203,17 @@ static void BattleAICmd_get_how_powerful_move_is(void) { for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) { - if (gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i]) + if (gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i]) break; } - if (gBattleMons[sBank_AI].moves[checkedMove] != MOVE_NONE + if (gBattleMons[sBattler_AI].moves[checkedMove] != MOVE_NONE && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF - && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1) + && gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].power > 1) { - gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove]; - AI_CalcDmg(sBank_AI, gBattleMoveTarget); - TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); + gCurrentMove = gBattleMons[sBattler_AI].moves[checkedMove]; + AI_CalcDmg(sBattler_AI, gBattlerTarget); + TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget); moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; if (moveDmgs[checkedMove] == 0) moveDmgs[checkedMove] = 1; @@ -1246,9 +1246,9 @@ static void BattleAICmd_get_how_powerful_move_is(void) static void BattleAICmd_get_last_used_bank_move(void) { if (gAIScriptPtr[1] == AI_USER) - AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; + AI_THINKING_STRUCT->funcResult = gLastMoves[sBattler_AI]; else - AI_THINKING_STRUCT->funcResult = gLastMoves[gBattleMoveTarget]; + AI_THINKING_STRUCT->funcResult = gLastMoves[gBattlerTarget]; gAIScriptPtr += 2; } @@ -1271,7 +1271,7 @@ static void BattleAICmd_if_not_equal_(void) // same as if_not_equal static void BattleAICmd_if_user_goes(void) { - if (GetWhoStrikesFirst(sBank_AI, gBattleMoveTarget, TRUE) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBattler_AI, gBattlerTarget, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1279,7 +1279,7 @@ static void BattleAICmd_if_user_goes(void) static void BattleAICmd_if_user_doesnt_go(void) { - if (GetWhoStrikesFirst(sBank_AI, gBattleMoveTarget, TRUE) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBattler_AI, gBattlerTarget, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1303,9 +1303,9 @@ static void BattleAICmd_count_usable_party_mons(void) AI_THINKING_STRUCT->funcResult = 0; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (GetBattlerSide(bank) == B_SIDE_PLAYER) party = gPlayerParty; @@ -1356,9 +1356,9 @@ static void BattleAICmd_get_ability(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gActiveBattler != bank) { @@ -1489,11 +1489,11 @@ static void BattleAICmd_get_highest_type_effectiveness(void) for (i = 0; i < 4; i++) { gBattleMoveDamage = AI_EFFECTIVENESS_x1; - gCurrentMove = gBattleMons[sBank_AI].moves[i]; + gCurrentMove = gBattleMons[sBattler_AI].moves[i]; if (gCurrentMove) { - TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); + TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1528,7 +1528,7 @@ static void BattleAICmd_if_type_effectiveness(void) gBattleMoveDamage = AI_EFFECTIVENESS_x1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); + TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget); if (gBattleMoveDamage == 120) gBattleMoveDamage = AI_EFFECTIVENESS_x2; @@ -1569,10 +1569,10 @@ static void BattleAICmd_if_status_in_party(void) switch(gAIScriptPtr[1]) { case AI_USER: - bank = sBank_AI; + bank = sBattler_AI; break; default: - bank = gBattleMoveTarget; + bank = gBattlerTarget; break; } @@ -1606,10 +1606,10 @@ static void BattleAICmd_if_status_not_in_party(void) switch(gAIScriptPtr[1]) { case 1: - bank = sBank_AI; + bank = sBattler_AI; break; default: - bank = gBattleMoveTarget; + bank = gBattlerTarget; break; } @@ -1667,9 +1667,9 @@ static void BattleAICmd_if_stat_level_less_than(void) u32 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1682,9 +1682,9 @@ static void BattleAICmd_if_stat_level_more_than(void) u32 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1697,9 +1697,9 @@ static void BattleAICmd_if_stat_level_equal(void) u32 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1712,9 +1712,9 @@ static void BattleAICmd_if_stat_level_not_equal(void) u32 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1736,8 +1736,8 @@ static void BattleAICmd_if_can_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBattleMoveTarget); - TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); + AI_CalcDmg(sBattler_AI, gBattlerTarget); + TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; @@ -1745,7 +1745,7 @@ static void BattleAICmd_if_can_faint(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gBattleMoveTarget].hp <= gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1765,14 +1765,14 @@ static void BattleAICmd_if_cant_faint(void) gMoveResultFlags = 0; gCritMultiplier = 1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; - AI_CalcDmg(sBank_AI, gBattleMoveTarget); - TypeCalc(gCurrentMove, sBank_AI, gBattleMoveTarget); + AI_CalcDmg(sBattler_AI, gBattlerTarget); + TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1788,7 +1788,7 @@ static void BattleAICmd_if_has_move(void) case AI_USER: for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] == *movePtr) + if (gBattleMons[sBattler_AI].moves[i] == *movePtr) break; } if (i == 4) @@ -1802,7 +1802,7 @@ static void BattleAICmd_if_has_move(void) return; } case AI_USER_PARTNER: - if (gBattleMons[sBank_AI ^ BIT_FLANK].hp == 0) + if (gBattleMons[sBattler_AI ^ BIT_FLANK].hp == 0) { gAIScriptPtr += 8; return; @@ -1811,7 +1811,7 @@ static void BattleAICmd_if_has_move(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI ^ BIT_FLANK].moves[i] == *movePtr) + if (gBattleMons[sBattler_AI ^ BIT_FLANK].moves[i] == *movePtr) break; } } @@ -1829,7 +1829,7 @@ static void BattleAICmd_if_has_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == *movePtr) break; } if (i == 4) @@ -1856,7 +1856,7 @@ static void BattleAICmd_if_doesnt_have_move(void) case AI_USER_PARTNER: // UB: no separate check for user partner for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] == *movePtr) + if (gBattleMons[sBattler_AI].moves[i] == *movePtr) break; } if (i != 4) @@ -1873,7 +1873,7 @@ static void BattleAICmd_if_doesnt_have_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i] == *movePtr) + if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == *movePtr) break; } if (i != 4) @@ -1899,7 +1899,7 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_USER_PARTNER: for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBank_AI].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -1911,8 +1911,8 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - // UB: checks sBank_AI instead of gBattleMoveTarget - if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i]].effect == gAIScriptPtr[2]) + // UB: checks sBattler_AI instead of gBattlerTarget + if (gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -1933,7 +1933,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void) case AI_USER_PARTNER: for (i = 0; i < 4; i++) { - if(gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBank_AI].moves[i]].effect == gAIScriptPtr[2]) + if(gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1945,7 +1945,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattleMoveTarget].moves[i]].effect == gAIScriptPtr[2]) + if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1961,9 +1961,9 @@ static void BattleAICmd_if_any_move_disabled_or_encored(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gAIScriptPtr[2] == 0) { @@ -2039,9 +2039,9 @@ static void BattleAICmd_get_hold_effect(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; if (gActiveBattler != bank) AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]); @@ -2057,7 +2057,7 @@ static void BattleAICmd_if_holds_item(void) u16 item; u8 var1, var2; - if ((bank & BIT_SIDE) == (sBank_AI & BIT_SIDE)) + if ((bank & BIT_SIDE) == (sBattler_AI & BIT_SIDE)) item = gBattleMons[bank].item; else item = BATTLE_HISTORY->itemEffects[bank]; @@ -2077,9 +2077,9 @@ static void BattleAICmd_get_gender(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality); @@ -2091,9 +2091,9 @@ static void BattleAICmd_is_first_turn_for(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn; @@ -2105,9 +2105,9 @@ static void BattleAICmd_get_stockpile_count(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter; @@ -2126,9 +2126,9 @@ static void BattleAICmd_get_used_held_item(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; // This is likely a leftover from Ruby's code and its ugly ewram access #ifdef NONMATCHING @@ -2166,9 +2166,9 @@ static void BattleAICmd_get_protect_count(void) u8 bank; if (gAIScriptPtr[1] == AI_USER) - bank = sBank_AI; + bank = sBattler_AI; else - bank = gBattleMoveTarget; + bank = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses; @@ -2221,7 +2221,7 @@ static void BattleAICmd_if_level_cond(void) switch (gAIScriptPtr[1]) { case 0: // greater than - if (gBattleMons[sBank_AI].level > gBattleMons[gBattleMoveTarget].level) + if (gBattleMons[sBattler_AI].level > gBattleMons[gBattlerTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2229,7 +2229,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 1: // less than - if (gBattleMons[sBank_AI].level < gBattleMons[gBattleMoveTarget].level) + if (gBattleMons[sBattler_AI].level < gBattleMons[gBattlerTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2237,7 +2237,7 @@ static void BattleAICmd_if_level_cond(void) gAIScriptPtr += 6; return; case 2: // equal - if (gBattleMons[sBank_AI].level == gBattleMons[gBattleMoveTarget].level) + if (gBattleMons[sBattler_AI].level == gBattleMons[gBattlerTarget].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2249,7 +2249,7 @@ static void BattleAICmd_if_level_cond(void) static void BattleAICmd_if_target_taunted(void) { - if (gDisableStructs[gBattleMoveTarget].tauntTimer1 != 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2257,7 +2257,7 @@ static void BattleAICmd_if_target_taunted(void) static void BattleAICmd_if_target_not_taunted(void) { - if (gDisableStructs[gBattleMoveTarget].tauntTimer1 == 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2265,7 +2265,7 @@ static void BattleAICmd_if_target_not_taunted(void) static void BattleAICmd_if_target_is_ally(void) { - if ((sBank_AI & BIT_SIDE) == (gBattleMoveTarget & BIT_SIDE)) + if ((sBattler_AI & BIT_SIDE) == (gBattlerTarget & BIT_SIDE)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 1671fad7e..23d223308 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -39,7 +39,7 @@ static bool8 ShouldSwitchIfPerishSong(void) && gDisableStructs[gActiveBattler].perishSongTimer1 == 0) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } @@ -60,7 +60,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) return FALSE; - opposingPosition = B_POSITION_OPPOSITE(GetBattlerPosition(gActiveBattler)); + opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler)); if (gBattleMons[GetBattlerAtPosition(opposingPosition)].ability != ABILITY_WONDER_GUARD) return FALSE; @@ -121,7 +121,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) { // we found a mon *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -151,10 +151,10 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBattler; - if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler)))]) + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) bankIn2 = gActiveBattler; else - bankIn2 = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler))); + bankIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); } else { @@ -221,7 +221,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) { // we found a mon *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -241,13 +241,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } @@ -258,7 +258,7 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } @@ -273,7 +273,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) u8 moveFlags; u16 move; - opposingPosition = B_POSITION_OPPOSITE(GetBattlerPosition(gActiveBattler)); + opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler)); opposingBank = GetBattlerAtPosition(opposingPosition); if (!(gAbsentBattlerFlags & gBitTable[opposingBank])) @@ -297,7 +297,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) return FALSE; - opposingBank = GetBattlerAtPosition(B_POSITION_PARTNER(opposingPosition)); + opposingBank = GetBattlerAtPosition(BATTLE_PARTNER(opposingPosition)); if (!(gAbsentBattlerFlags & gBitTable[opposingBank])) { @@ -357,10 +357,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { bankIn1 = gActiveBattler; - if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler)))]) + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) bankIn2 = gActiveBattler; else - bankIn2 = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gActiveBattler))); + bankIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); } else { @@ -426,7 +426,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i; - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -611,7 +611,7 @@ void AI_TrySwitchOrUseItem(void) } } - BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); } static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var) @@ -937,7 +937,7 @@ static bool8 ShouldUseItem(void) if (shouldUse) { - BtlController_EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0); *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2) = item; gBattleResources->battleHistory->trainerItems[i] = 0; return shouldUse; diff --git a/src/battle_anim.c b/src/battle_anim.c index ab9569dcf..34b7a7476 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -25,8 +25,8 @@ #define ANIM_SPRITE_INDEX_COUNT 8 -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u16 gBattle_WIN0H; extern u16 gBattle_WIN0V; extern u16 gBattle_WIN1H; @@ -221,8 +221,8 @@ void ClearBattleAnimationVars(void) void DoMoveAnim(u16 move) { - gBattleAnimAttacker = gBattleMoveAttacker; - gBattleAnimTarget = gBattleMoveTarget; + gBattleAnimAttacker = gBattlerAttacker; + gBattleAnimTarget = gBattlerTarget; LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE); } @@ -665,7 +665,7 @@ bool8 IsBattlerSpriteVisible(u8 bank) return FALSE; if (IsContest()) return TRUE; // this line wont ever be reached. - if (!gBattleSpritesDataPtr->bankData[bank].invisible || !gSprites[gBattlerSpriteIds[bank]].invisible) + if (!gBattleSpritesDataPtr->battlerData[bank].invisible || !gSprites[gBattlerSpriteIds[bank]].invisible) return TRUE; return FALSE; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 2ce9d8712..3775cf1fb 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -262,7 +262,7 @@ static void sub_8064520(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { r8 = TRUE; } @@ -271,18 +271,18 @@ static void sub_8064520(void) if (r8) { - if (r4 || !IsBattlerSpriteVisible(gActiveBattler ^ BIT_FLANK)) + if (r4 || !IsBattlerSpriteVisible(BATTLE_PARTNER(gActiveBattler))) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1) return; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1) return; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].flag_x80 = 0; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); @@ -318,23 +318,23 @@ static void sub_8064734(void) sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1) + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].flag_x80 + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1) { - sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); + sub_8172EF0(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]); } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_8076918(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + sub_8076918(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); sub_8076918(gActiveBattler); @@ -345,7 +345,7 @@ static void sub_8064734(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40 + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x40 && !IsCryPlayingOrClearCrySongs()) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20) @@ -379,8 +379,8 @@ static void sub_8064734(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]); - SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gUnknown_03005D7C[BATTLE_PARTNER(gActiveBattler)]]); + SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES)); } @@ -485,7 +485,7 @@ static void sub_8064D60(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_8064DD0; @@ -1239,7 +1239,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1382,7 +1382,7 @@ static void LinkOpponentHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -1452,10 +1452,10 @@ static void LinkOpponentDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1473,10 +1473,10 @@ static void LinkOpponentDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } @@ -1763,10 +1763,10 @@ static void sub_8067618(u8 taskId) { gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8066494(gActiveBattler, FALSE); - gActiveBattler ^= BIT_FLANK; + gActiveBattler = BATTLE_PARTNER(gActiveBattler); gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler]; sub_8066494(gActiveBattler, FALSE); - gActiveBattler ^= BIT_FLANK; + gActiveBattler = BATTLE_PARTNER(gActiveBattler); } gBattlerControllerFuncs[gActiveBattler] = sub_8064734; gActiveBattler = savedActiveBank; diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 26f808620..340a2b566 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -373,7 +373,7 @@ static void sub_814B4E0(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_814B554; @@ -1121,7 +1121,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1201,7 +1201,7 @@ static void LinkPartnerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -1274,10 +1274,10 @@ static void LinkPartnerDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1295,10 +1295,10 @@ static void LinkPartnerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 2ce339732..760205d90 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -30,7 +30,7 @@ extern u32 gBattleControllerExecFlags; extern u8 gActiveBattler; -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; @@ -473,7 +473,7 @@ static void sub_805FC10(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_805FC80; } @@ -1229,7 +1229,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1415,7 +1415,7 @@ static void OpponentHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -1484,10 +1484,10 @@ static void OpponentDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1505,10 +1505,10 @@ static void OpponentDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } @@ -1575,24 +1575,24 @@ static void OpponentHandleChooseMove(void) switch (chosenMoveId) { case 5: - BtlController_EmitTwoReturnValues(1, ACTION_WATCHES_CAREFULLY, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_WATCH_CAREFULLY, 0); break; case 4: - BtlController_EmitTwoReturnValues(1, ACTION_RUN, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0); break; case 6: - BtlController_EmitTwoReturnValues(1, 15, gBattleMoveTarget); + BtlController_EmitTwoReturnValues(1, 15, gBattlerTarget); break; default: if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10)) - gBattleMoveTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattleMoveTarget << 8)); + BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattlerTarget << 8)); break; } OpponentBufferExecCompleted(); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7a7f87e55..08af2e902 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -300,23 +300,23 @@ static void HandleInputChooseAction(void) switch (gActionSelectionCursor[gActiveBattler]) { case 0: - BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0); break; case 1: - BtlController_EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0); break; case 2: - BtlController_EmitTwoReturnValues(1, ACTION_SWITCH, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0); break; case 3: - BtlController_EmitTwoReturnValues(1, ACTION_RUN, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0); break; } PlayerBufferExecCompleted(); } else if (gMain.newKeys & DPAD_LEFT) { - if (gActionSelectionCursor[gActiveBattler] & 1) // if is ACTION_USE_ITEM or ACTION_RUN + if (gActionSelectionCursor[gActiveBattler] & 1) // if is B_ACTION_USE_ITEM or B_ACTION_RUN { PlaySE(SE_SELECT); ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); @@ -326,7 +326,7 @@ static void HandleInputChooseAction(void) } else if (gMain.newKeys & DPAD_RIGHT) { - if (!(gActionSelectionCursor[gActiveBattler] & 1)) // if is ACTION_USE_MOVE or ACTION_SWITCH + if (!(gActionSelectionCursor[gActiveBattler] & 1)) // if is B_ACTION_USE_MOVE or B_ACTION_SWITCH { PlaySE(SE_SELECT); ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); @@ -336,7 +336,7 @@ static void HandleInputChooseAction(void) } else if (gMain.newKeys & DPAD_UP) { - if (gActionSelectionCursor[gActiveBattler] & 2) // if is ACTION_SWITCH or ACTION_RUN + if (gActionSelectionCursor[gActiveBattler] & 2) // if is B_ACTION_SWITCH or B_ACTION_RUN { PlaySE(SE_SELECT); ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); @@ -346,7 +346,7 @@ static void HandleInputChooseAction(void) } else if (gMain.newKeys & DPAD_DOWN) { - if (!(gActionSelectionCursor[gActiveBattler] & 2)) // if is ACTION_USE_MOVE or ACTION_USE_ITEM + if (!(gActionSelectionCursor[gActiveBattler] & 2)) // if is B_ACTION_USE_MOVE or B_ACTION_USE_ITEM { PlaySE(SE_SELECT); ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]); @@ -361,7 +361,7 @@ static void HandleInputChooseAction(void) && !(gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - if (gBattleBufferA[gActiveBattler][1] == ACTION_USE_ITEM) + if (gBattleBufferA[gActiveBattler][1] == B_ACTION_USE_ITEM) { // Add item to bag if it is a ball if (itemId <= ITEM_PREMIER_BALL) @@ -370,7 +370,7 @@ static void HandleInputChooseAction(void) return; } PlaySE(SE_SELECT); - BtlController_EmitTwoReturnValues(1, ACTION_CANCEL_PARTNER, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_CANCEL_PARTNER, 0); PlayerBufferExecCompleted(); } } @@ -1107,7 +1107,7 @@ static void sub_8058EDC(void) FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_8058FC0; @@ -2278,7 +2278,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -2434,7 +2434,7 @@ static void PlayerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -2522,10 +2522,10 @@ static void PlayerDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -2543,10 +2543,10 @@ static void PlayerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index c44a8d31e..b2b6baa0a 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -47,7 +47,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -560,7 +560,7 @@ static void sub_81BB92C(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_81BB9A0; @@ -1308,7 +1308,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1395,7 +1395,7 @@ static void PlayerPartnerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -1467,10 +1467,10 @@ static void PlayerPartnerDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1488,10 +1488,10 @@ static void PlayerPartnerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } @@ -1545,15 +1545,15 @@ static void PlayerPartnerHandleChooseMove(void) chosenMoveId = BattleAI_ChooseMoveOrAction(); if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) - gBattleMoveTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } - BtlController_EmitTwoReturnValues(1, 10, chosenMoveId | (gBattleMoveTarget << 8)); + BtlController_EmitTwoReturnValues(1, 10, chosenMoveId | (gBattlerTarget << 8)); PlayerPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 22cd63fb3..8078d0af2 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -255,21 +255,17 @@ static void sub_8186678(void) if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded) - { + && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded) var = TRUE; - } } else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded - && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) - { + && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded + && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) var = TRUE; - } } if (var) @@ -469,7 +465,7 @@ static void sub_8186EA4(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_8186F14; @@ -1225,7 +1221,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1314,7 +1310,7 @@ static void RecordedOpponentHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -1383,10 +1379,10 @@ static void RecordedOpponentDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1404,10 +1400,10 @@ static void RecordedOpponentDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } @@ -1443,7 +1439,7 @@ static void RecordedOpponentHandlePrintSelectionString(void) static void RecordedOpponentHandleChooseAction(void) { - BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBankAction(gActiveBattler), 0); + BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBattlerAction(gActiveBattler), 0); RecordedOpponentBufferExecCompleted(); } @@ -1460,8 +1456,8 @@ static void RecordedOpponentHandleChooseMove(void) } else { - u8 moveId = RecordedBattle_GetBankAction(gActiveBattler); - u8 target = RecordedBattle_GetBankAction(gActiveBattler); + u8 moveId = RecordedBattle_GetBattlerAction(gActiveBattler); + u8 target = RecordedBattle_GetBattlerAction(gActiveBattler); BtlController_EmitTwoReturnValues(1, 10, moveId | (target << 8)); } @@ -1475,7 +1471,7 @@ static void RecordedOpponentHandleChooseItem(void) static void RecordedOpponentHandleChoosePokemon(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBankAction(gActiveBattler); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBattlerAction(gActiveBattler); BtlController_EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); RecordedOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 109d71733..953f989e9 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -48,7 +48,7 @@ extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; extern u16 gPartnerTrainerId; extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gUnknown_020244B4[]; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; @@ -458,7 +458,7 @@ static void sub_818A2B4(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { CopyBattleSpriteInvisibility(gActiveBattler); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattlerControllerFuncs[gActiveBattler] = sub_818A328; @@ -1206,7 +1206,7 @@ static void DoSwitchOutAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1313,7 +1313,7 @@ static void RecordedPlayerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } @@ -1385,10 +1385,10 @@ static void RecordedPlayerDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 1; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; @@ -1406,10 +1406,10 @@ static void RecordedPlayerDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute && multihit < 2) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); - gBattleSpritesDataPtr->bankData[gActiveBattler].flag_x8 = 0; + gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0; } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; } @@ -1447,7 +1447,7 @@ static void ChooseActionInBattlePalace(void) { if (gBattleCommunication[4] >= gBattlersCount / 2) { - BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBankAction(gActiveBattler), 0); + BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBattlerAction(gActiveBattler), 0); RecordedPlayerBufferExecCompleted(); } } @@ -1460,7 +1460,7 @@ static void RecordedPlayerHandleChooseAction(void) } else { - BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBankAction(gActiveBattler), 0); + BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBattlerAction(gActiveBattler), 0); RecordedPlayerBufferExecCompleted(); } } @@ -1478,8 +1478,8 @@ static void RecordedPlayerHandleChooseMove(void) } else { - u8 moveId = RecordedBattle_GetBankAction(gActiveBattler); - u8 target = RecordedBattle_GetBankAction(gActiveBattler); + u8 moveId = RecordedBattle_GetBattlerAction(gActiveBattler); + u8 target = RecordedBattle_GetBattlerAction(gActiveBattler); BtlController_EmitTwoReturnValues(1, 10, moveId | (target << 8)); } @@ -1493,7 +1493,7 @@ static void RecordedPlayerHandleChooseItem(void) static void RecordedPlayerHandleChoosePokemon(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBankAction(gActiveBattler); + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBattlerAction(gActiveBattler); BtlController_EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL); RecordedPlayerBufferExecCompleted(); } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 814ee8076..608d59418 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -203,16 +203,16 @@ static void HandleInputChooseAction(void) switch (gActionSelectionCursor[gActiveBattler]) { case 0: - BtlController_EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_BALL, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_BALL, 0); break; case 1: - BtlController_EmitTwoReturnValues(1, ACTION_POKEBLOCK_CASE, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_POKEBLOCK, 0); break; case 2: - BtlController_EmitTwoReturnValues(1, ACTION_GO_NEAR, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_GO_NEAR, 0); break; case 3: - BtlController_EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_RUN, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_RUN, 0); break; } SafariBufferExecCompleted(); diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 7f5108b9b..dd01e5996 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -233,7 +233,7 @@ static void WallyHandleActions(void) if (--gBattleStruct->wallyWaitFrames == 0) { PlaySE(SE_SELECT); - BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0); WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; @@ -244,7 +244,7 @@ static void WallyHandleActions(void) if (--gBattleStruct->wallyWaitFrames == 0) { PlaySE(SE_SELECT); - BtlController_EmitTwoReturnValues(1, ACTION_USE_MOVE, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0); WallyBufferExecCompleted(); gBattleStruct->wallyBattleState++; gBattleStruct->wallyMovesState = 0; @@ -275,7 +275,7 @@ static void WallyHandleActions(void) if (--gBattleStruct->wallyWaitFrames == 0) { PlaySE(SE_SELECT); - BtlController_EmitTwoReturnValues(1, ACTION_USE_ITEM, 0); + BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0); WallyBufferExecCompleted(); } break; @@ -1162,7 +1162,7 @@ static void WallyDoMoveAnimation(void) switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState) { case 0: - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); } @@ -1181,7 +1181,7 @@ static void WallyDoMoveAnimation(void) if (!gAnimScriptActive) { sub_805EB9C(1); - if (gBattleSpritesDataPtr->bankData[gActiveBattler].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); } @@ -1490,7 +1490,7 @@ static void sub_816AA80(u8 bank) { u16 species; - gBattleSpritesDataPtr->bankData[bank].transformSpecies = 0; + gBattleSpritesDataPtr->battlerData[bank].transformSpecies = 0; gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 4d8b63c65..4f523cfa0 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -31,8 +31,8 @@ extern u8 gBattleBuffersTransferData[0x100]; extern u8 gUnknown_02022D08; extern u8 gUnknown_02022D09; extern u8 gUnknown_02022D0A; -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u8 gEffectBank; extern u16 gBattleWeather; @@ -42,7 +42,7 @@ extern u16 gChosenMove; extern u16 gLastUsedItem; extern u8 gBattleOutcome; extern u8 gLastUsedAbility; -extern u8 gStringBank; +extern u8 gStringBattler; extern const struct BattleMove gBattleMoves[]; @@ -752,8 +752,8 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) } gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBattler; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattleMoveAttacker; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattleMoveTarget; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattlerAttacker; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattlerTarget; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBattlerFlags; @@ -920,8 +920,8 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gBattleMoveAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; - gBattleMoveTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; + gBattlerAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; + gBattlerTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; gAbsentBattlerFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; } @@ -1126,7 +1126,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) stringInfo->scrActive = gBattleScripting.battler; stringInfo->unk1605E = gBattleStruct->field_52; stringInfo->hpScale = gBattleStruct->hpScale; - stringInfo->StringBank = gStringBank; + stringInfo->StringBank = gStringBattler; stringInfo->moveType = gBattleMoves[gCurrentMove].type; for (i = 0; i < MAX_BATTLERS_COUNT; i++) diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index d7806aee0..7958d07b3 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -127,7 +127,7 @@ static const struct SpritePalette gUnknown_0832C128[2] = void AllocateBattleSpritesData(void) { gBattleSpritesDataPtr = AllocZeroed(sizeof(struct BattleSpriteData)); - gBattleSpritesDataPtr->bankData = AllocZeroed(sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); + gBattleSpritesDataPtr->battlerData = AllocZeroed(sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); gBattleSpritesDataPtr->healthBoxesData = AllocZeroed(sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT); gBattleSpritesDataPtr->animationData = AllocZeroed(sizeof(struct BattleAnimationInfo)); gBattleSpritesDataPtr->battleBars = AllocZeroed(sizeof(struct BattleBarInfo) * MAX_BATTLERS_COUNT); @@ -141,7 +141,7 @@ void FreeBattleSpritesData(void) FREE_AND_SET_NULL(gBattleSpritesDataPtr->battleBars); FREE_AND_SET_NULL(gBattleSpritesDataPtr->animationData); FREE_AND_SET_NULL(gBattleSpritesDataPtr->healthBoxesData); - FREE_AND_SET_NULL(gBattleSpritesDataPtr->bankData); + FREE_AND_SET_NULL(gBattleSpritesDataPtr->battlerData); FREE_AND_SET_NULL(gBattleSpritesDataPtr); } @@ -432,12 +432,12 @@ bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, gBattleMonForms[activeBank] = (argument & ~(0x80)); return TRUE; } - if (gBattleSpritesDataPtr->bankData[activeBank].behindSubstitute + if (gBattleSpritesDataPtr->battlerData[activeBank].behindSubstitute && !ShouldAnimBeDoneRegardlessOfSubsitute(tableId)) { return TRUE; } - if (gBattleSpritesDataPtr->bankData[activeBank].behindSubstitute + if (gBattleSpritesDataPtr->battlerData[activeBank].behindSubstitute && tableId == B_ANIM_SUBSTITUTE_FADE && gSprites[gBattlerSpriteIds[activeBank]].invisible) { @@ -549,14 +549,14 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY); - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE) { species = GetMonData(mon, MON_DATA_SPECIES); currentPersonality = monsPersonality; } else { - species = gBattleSpritesDataPtr->bankData[bank].transformSpecies; + species = gBattleSpritesDataPtr->battlerData[bank].transformSpecies; currentPersonality = gTransformedPersonalities[bank]; } @@ -568,7 +568,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) paletteOffset = 0x100 + bank * 16; - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE) lzPaletteData = GetMonFrontSpritePal(mon); else lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality); @@ -585,7 +585,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank) } // transform's pink color - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE) { BlendPalette(paletteOffset, 16, 6, 0x7FFF); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); @@ -602,21 +602,21 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY); - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE) { species = GetMonData(mon, MON_DATA_SPECIES); currentPersonality = monsPersonality; } else { - species = gBattleSpritesDataPtr->bankData[bank].transformSpecies; + species = gBattleSpritesDataPtr->battlerData[bank].transformSpecies; currentPersonality = gTransformedPersonalities[bank]; } otId = GetMonData(mon, MON_DATA_OT_ID); position = GetBattlerPosition(bank); - if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) + if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE) { HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[position], @@ -631,7 +631,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) paletteOffset = 0x100 + bank * 16; - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE) lzPaletteData = GetMonFrontSpritePal(mon); else lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality); @@ -648,7 +648,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank) } // transform's pink color - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE) { BlendPalette(paletteOffset, 16, 6, 0x7FFF); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); @@ -804,7 +804,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank) if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && *bank == 0) gHealthboxSpriteIds[*bank] = CreateSafariPlayerHealthboxSprites(); else - gHealthboxSpriteIds[*bank] = CreateHealthboxSprites(*bank); + gHealthboxSpriteIds[*bank] = CreateBattlerHealthboxSprites(*bank); (*bank)++; if (*bank == gBattlersCount) @@ -864,7 +864,7 @@ void ClearSpritesHealthboxAnimData(void) static void ClearSpritesBankHealthboxAnimData(void) { ClearSpritesHealthboxAnimData(); - memset(gBattleSpritesDataPtr->bankData, 0, sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); + memset(gBattleSpritesDataPtr->battlerData, 0, sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT); } void CopyAllBattleSpritesInvisibilities(void) @@ -872,12 +872,12 @@ void CopyAllBattleSpritesInvisibilities(void) s32 i; for (i = 0; i < gBattlersCount; i++) - gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; + gBattleSpritesDataPtr->battlerData[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; } void CopyBattleSpriteInvisibility(u8 bank) { - gBattleSpritesDataPtr->bankData[bank].invisible = gSprites[gBattlerSpriteIds[bank]].invisible; + gBattleSpritesDataPtr->battlerData[bank].invisible = gSprites[gBattlerSpriteIds[bank]].invisible; } void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) @@ -894,7 +894,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) paletteOffset = 0x100 + bankAtk * 16; LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32); gBattleMonForms[bankAtk] = gBattleSpritesDataPtr->animationData->animArg; - if (gBattleSpritesDataPtr->bankData[bankAtk].transformSpecies != SPECIES_NONE) + if (gBattleSpritesDataPtr->battlerData[bankAtk].transformSpecies != SPECIES_NONE) { BlendPalette(paletteOffset, 16, 6, 0x7FFF); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); @@ -970,7 +970,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform) if (!IsContest()) { - gBattleSpritesDataPtr->bankData[bankAtk].transformSpecies = targetSpecies; + gBattleSpritesDataPtr->battlerData[bankAtk].transformSpecies = targetSpecies; gBattleMonForms[bankAtk] = gBattleMonForms[bankDef]; } @@ -1040,12 +1040,12 @@ void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId) void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move) { if (move == MOVE_SUBSTITUTE) - gBattleSpritesDataPtr->bankData[bank].behindSubstitute = 1; + gBattleSpritesDataPtr->battlerData[bank].behindSubstitute = 1; } void ClearBehindSubstituteBit(u8 bank) { - gBattleSpritesDataPtr->bankData[bank].behindSubstitute = 0; + gBattleSpritesDataPtr->battlerData[bank].behindSubstitute = 0; } void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) @@ -1055,22 +1055,22 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank) if (GetHPBarLevel(hp, maxHP) == HP_BAR_RED) { - if (!gBattleSpritesDataPtr->bankData[bank].lowHpSong) + if (!gBattleSpritesDataPtr->battlerData[bank].lowHpSong) { - if (!gBattleSpritesDataPtr->bankData[bank ^ BIT_FLANK].lowHpSong) + if (!gBattleSpritesDataPtr->battlerData[bank ^ BIT_FLANK].lowHpSong) PlaySE(SE_HINSI); - gBattleSpritesDataPtr->bankData[bank].lowHpSong = 1; + gBattleSpritesDataPtr->battlerData[bank].lowHpSong = 1; } } else { - gBattleSpritesDataPtr->bankData[bank].lowHpSong = 0; + gBattleSpritesDataPtr->battlerData[bank].lowHpSong = 0; if (!IsDoubleBattle()) { m4aSongNumStop(SE_HINSI); return; } - if (IsDoubleBattle() && !gBattleSpritesDataPtr->bankData[bank ^ BIT_FLANK].lowHpSong) + if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[bank ^ BIT_FLANK].lowHpSong) { m4aSongNumStop(SE_HINSI); return; @@ -1082,9 +1082,9 @@ void BattleStopLowHpSound(void) { u8 playerBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0; + gBattleSpritesDataPtr->battlerData[playerBank].lowHpSong = 0; if (IsDoubleBattle()) - gBattleSpritesDataPtr->bankData[playerBank ^ BIT_FLANK].lowHpSong = 0; + gBattleSpritesDataPtr->battlerData[playerBank ^ BIT_FLANK].lowHpSong = 0; m4aSongNumStop(SE_HINSI); } @@ -1168,11 +1168,11 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) } if (gAnimScriptActive || bankSprite->invisible) invisible = TRUE; - else if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE - && gEnemyMonElevation[gBattleSpritesDataPtr->bankData[bank].transformSpecies] == 0) + else if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE + && gEnemyMonElevation[gBattleSpritesDataPtr->battlerData[bank].transformSpecies] == 0) invisible = TRUE; - if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute) + if (gBattleSpritesDataPtr->battlerData[bank].behindSubstitute) invisible = TRUE; shadowSprite->pos1.x = bankSprite->pos1.x; @@ -1193,8 +1193,8 @@ void SetBattlerShadowSpriteCallback(u8 bank, u16 species) if (GetBattlerSide(bank) == B_SIDE_PLAYER) return; - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE) - species = gBattleSpritesDataPtr->bankData[bank].transformSpecies; + if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE) + species = gBattleSpritesDataPtr->battlerData[bank].transformSpecies; if (gEnemyMonElevation[species] != 0) gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].callback = SpriteCB_EnemyShadow; @@ -1232,7 +1232,7 @@ void sub_805EF14(void) void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute) { - gBattleSpritesDataPtr->bankData[bank].transformSpecies = SPECIES_NONE; + gBattleSpritesDataPtr->battlerData[bank].transformSpecies = SPECIES_NONE; gBattleMonForms[bank] = 0; if (!dontClearSubstitute) ClearBehindSubstituteBit(bank); diff --git a/src/battle_interface.c b/src/battle_interface.c index 941fd20d5..debbc8eb7 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -898,7 +898,7 @@ void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2) // healthboxSpriteId_2 refers to the other part // there's also one other sprite that appears to be a black square? dont fully understand its role -u8 CreateHealthboxSprites(u8 bank) +u8 CreateBattlerHealthboxSprites(u8 battler) { s16 data6 = 0; u8 healthboxSpriteId_1, healthboxSpriteId_2; @@ -907,7 +907,7 @@ u8 CreateHealthboxSprites(u8 bank) if (!IsDoubleBattle()) { - if (GetBattlerSide(bank) == B_SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) { healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); @@ -932,10 +932,10 @@ u8 CreateHealthboxSprites(u8 bank) } else { - if (GetBattlerSide(bank) == B_SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) { - healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; @@ -947,8 +947,8 @@ u8 CreateHealthboxSprites(u8 bank) } else { - healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; @@ -960,16 +960,16 @@ u8 CreateHealthboxSprites(u8 bank) } } - unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBattlerPositions[bank]], 140, 60, 0); + unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBattlerPositions[battler]], 140, 60, 0); unkSpritePtr = &gSprites[unkSpriteId]; - SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBattlerSide(bank)]); + SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBattlerSide(battler)]); unkSpritePtr->subspriteMode = 2; unkSpritePtr->oam.priority = 1; CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + unkSpritePtr->oam.tileNum * 32), 64); gSprites[healthboxSpriteId_1].data[5] = unkSpriteId; - gSprites[healthboxSpriteId_1].data[6] = bank; + gSprites[healthboxSpriteId_1].data[6] = battler; gSprites[healthboxSpriteId_1].invisible = 1; gSprites[healthboxSpriteId_2].invisible = 1; @@ -1099,20 +1099,20 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) } } -void InitBattlerHealthboxCoords(u8 bank) +void InitBattlerHealthboxCoords(u8 battler) { s16 x = 0, y = 0; if (!IsDoubleBattle()) { - if (GetBattlerSide(bank) != B_SIDE_PLAYER) + if (GetBattlerSide(battler) != B_SIDE_PLAYER) x = 44, y = 30; else x = 158, y = 88; } else { - switch (GetBattlerPosition(bank)) + switch (GetBattlerPosition(battler)) { case B_POSITION_PLAYER_LEFT: x = 159, y = 76; @@ -1129,7 +1129,7 @@ void InitBattlerHealthboxCoords(u8 bank) } } - UpdateSpritePos(gHealthboxSpriteIds[bank], x, y); + UpdateSpritePos(gHealthboxSpriteIds[battler], x, y); } static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) @@ -1210,11 +1210,11 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) } else { - u8 bank; + u8 battler; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - bank = gSprites[healthboxSpriteId].data[6]; - if (IsDoubleBattle() == TRUE || GetBattlerSide(bank) == B_SIDE_OPPONENT) + battler = gSprites[healthboxSpriteId].data[6]; + if (IsDoubleBattle() == TRUE || GetBattlerSide(battler) == B_SIDE_OPPONENT) { UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent); } @@ -1260,7 +1260,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { - if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible + if (gBattleSpritesDataPtr->battlerData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible { spriteTileNum = gSprites[gSprites[healthboxSpriteId].data[5]].oam.tileNum * 32; objVram = (void*)(OBJ_VRAM0) + spriteTileNum; @@ -1294,7 +1294,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 memcpy(text, sUnknown_0832C3D8, sizeof(sUnknown_0832C3D8)); bank = gSprites[healthboxSpriteId].data[6]; - if (gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) // don't print text if only bars are visible + if (gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) // don't print text if only bars are visible { u8 var = 4; u8 r7; @@ -1423,8 +1423,8 @@ void SwapHpBarsWithHpText(void) { bool8 noBars; - gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars ^= 1; - noBars = gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars; + gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1; + noBars = gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars; if (GetBattlerSide(i) == B_SIDE_PLAYER) { if (!IsDoubleBattle()) @@ -2062,7 +2062,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) for (i = 0; i < 3; i++) CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * 32), 32); - if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) + if (!gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 64); TryAddPokeballIconToHealthbox(healthboxSpriteId, TRUE); @@ -2077,7 +2077,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96); if (IsDoubleBattle() == TRUE || GetBattlerSide(bank) == B_SIDE_OPPONENT) { - if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) + if (!gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) { CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 32); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 1) * 32), 32); @@ -2275,7 +2275,7 @@ s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3) 8, expFraction); } - if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)) + if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars)) sub_8074B9C(bank, whichBar); if (var == -1) diff --git a/src/battle_main.c b/src/battle_main.c index df3fc9378..3704ff3b4 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -91,7 +91,7 @@ extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; -extern u8 gStringBank; +extern u8 gStringBattler; extern u32 gUnknown_02022F88; extern u32 gHitMarker; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; @@ -103,8 +103,8 @@ extern u16 gPauseCounterBattle; extern u16 gRandomTurnNumber; extern u8 gActiveBattler; extern u8 gBattlersCount; -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gLeveledUpInBattle; extern u8 gAbsentBattlerFlags; extern u32 gBattleControllerExecFlags; @@ -127,8 +127,8 @@ extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; -extern u8 gActionForBanks[MAX_BATTLERS_COUNT]; -extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; +extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; +extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u8 gCurrentActionFuncId; extern u8 gLastUsedAbility; extern u8 gUnknown_0203CF00[]; @@ -264,20 +264,20 @@ static void HandleAction_ActionFinished(void); // rom const data static void (* const sTurnActionsFuncsTable[])(void) = { - HandleAction_UseMove, // ACTION_USE_MOVE - HandleAction_UseItem, // ACTION_USE_ITEM - HandleAction_Switch, // ACTION_SWITCH - HandleAction_Run, // ACTION_RUN - HandleAction_WatchesCarefully, // ACTION_WATCHES_CAREFULLY - HandleAction_SafariZoneBallThrow, // ACTION_SAFARI_ZONE_BALL - HandleAction_ThrowPokeblock, // ACTION_POKEBLOCK_CASE - HandleAction_GoNear, // ACTION_GO_NEAR - HandleAction_SafriZoneRun, // ACTION_SAFARI_ZONE_RUN - HandleAction_Action9, // ACTION_9 - HandleAction_RunBattleScript, // ACTION_RUN_BATTLESCRIPT + HandleAction_UseMove, // B_ACTION_USE_MOVE + HandleAction_UseItem, // B_ACTION_USE_ITEM + HandleAction_Switch, // B_ACTION_SWITCH + HandleAction_Run, // B_ACTION_RUN + HandleAction_WatchesCarefully, // B_ACTION_SAFARI_WATCH_CAREFULLY + HandleAction_SafariZoneBallThrow, // B_ACTION_SAFARI_BALL + HandleAction_ThrowPokeblock, // B_ACTION_SAFARI_POKEBLOCK + HandleAction_GoNear, // B_ACTION_SAFARI_GO_NEAR + HandleAction_SafriZoneRun, // B_ACTION_SAFARI_RUN + HandleAction_Action9, // B_ACTION_UNKNOWN9 + HandleAction_RunBattleScript, // B_ACTION_EXEC_SCRIPT HandleAction_Action11, // not sure about this one - HandleAction_ActionFinished, // ACTION_FINISHED - HandleAction_NothingIsFainted, // ACTION_NOTHING_FAINTED + HandleAction_ActionFinished, // B_ACTION_FINISHED + HandleAction_NothingIsFainted, // B_ACTION_NOTHING_FAINTED }; static void (* const sEndTurnFuncsTable[])(void) = @@ -2371,8 +2371,8 @@ u32 sub_80397C4(u32 setId, u32 tableId) return gUnknown_0831ABA0[setId][tableId].width * 8; } -#define tBank data[0] -#define tSpeciesId data[2] +#define sBattler data[0] +#define sSpeciesId data[2] void oac_poke_opponent(struct Sprite *sprite) { @@ -2397,8 +2397,8 @@ static void sub_8039838(struct Sprite *sprite) { if (sprite->animEnded) { - sub_8076918(sprite->tBank); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->tBank]); + sub_8076918(sprite->sBattler); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]); sprite->callback = sub_8039894; StartSpriteAnimIfDifferent(sprite, 0); BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108); @@ -2409,7 +2409,7 @@ static void sub_8039894(struct Sprite *sprite) { if (!gPaletteFade.active) { - BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, FALSE, 1); + BattleAnimateFrontSprite(sprite, sprite->sSpeciesId, FALSE, 1); } } @@ -2447,20 +2447,20 @@ extern const struct MonCoords gCastformFrontSpriteCoords[]; void sub_8039934(struct Sprite *sprite) { - u8 bank = sprite->tBank; + u8 battler = sprite->sBattler; u16 species; u8 yOffset; - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != 0) - species = gBattleSpritesDataPtr->bankData[bank].transformSpecies; + if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies != 0) + species = gBattleSpritesDataPtr->battlerData[battler].transformSpecies; else - species = sprite->tSpeciesId; + species = sprite->sSpeciesId; - GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_PERSONALITY); // Unused return value + GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); // Unused return value if (species == SPECIES_UNOWN) { - u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_PERSONALITY); + u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); u16 unownSpecies; @@ -2473,7 +2473,7 @@ void sub_8039934(struct Sprite *sprite) } else if (species == SPECIES_CASTFORM) { - yOffset = gCastformFrontSpriteCoords[gBattleMonForms[bank]].y_offset; + yOffset = gCastformFrontSpriteCoords[gBattleMonForms[battler]].y_offset; } else if (species > NUM_SPECIES) { @@ -2506,12 +2506,12 @@ static void sub_8039A48(struct Sprite *sprite) } else { - u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); + u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; - StartSpriteAnim(sprite, gBattleMonForms[sprite->tBank]); + StartSpriteAnim(sprite, gBattleMonForms[sprite->sBattler]); } } } @@ -2546,10 +2546,10 @@ void sub_8039B58(struct Sprite *sprite) { if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) { - if (HasTwoFramesAnimation(sprite->tSpeciesId)) + if (HasTwoFramesAnimation(sprite->sSpeciesId)) StartSpriteAnim(sprite, 1); } - BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, TRUE, 1); + BattleAnimateFrontSprite(sprite, sprite->sSpeciesId, TRUE, 1); } } @@ -2589,35 +2589,35 @@ void sub_8039C00(struct Sprite *sprite) } } -void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) +void dp11b_obj_instanciate(u8 battler, u8 b, s8 c, s8 d) { u8 bounceHealthBoxSpriteId; u8 spriteId2; if (b) { - if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) + if (gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2) return; } else { - if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) + if (gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4) return; } bounceHealthBoxSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HealthBoxBounce); if (b == TRUE) { - spriteId2 = gHealthboxSpriteIds[bank]; - gBattleSpritesDataPtr->healthBoxesData[bank].field_2 = bounceHealthBoxSpriteId; - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 1; + spriteId2 = gHealthboxSpriteIds[battler]; + gBattleSpritesDataPtr->healthBoxesData[battler].field_2 = bounceHealthBoxSpriteId; + gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2 = 1; gSprites[bounceHealthBoxSpriteId].data[0] = 0x80; } else { - spriteId2 = gBattlerSpriteIds[bank]; - gBattleSpritesDataPtr->healthBoxesData[bank].field_3 = bounceHealthBoxSpriteId; - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 1; + spriteId2 = gBattlerSpriteIds[battler]; + gBattleSpritesDataPtr->healthBoxesData[battler].field_3 = bounceHealthBoxSpriteId; + gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4 = 1; gSprites[bounceHealthBoxSpriteId].data[0] = 0xC0; } gSprites[bounceHealthBoxSpriteId].data[1] = c; @@ -2628,27 +2628,27 @@ void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) gSprites[spriteId2].pos2.y = 0; } -void dp11b_obj_free(u8 bank, bool8 b) +void dp11b_obj_free(u8 battler, bool8 b) { u8 r4; if (b == TRUE) { - if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) + if (!gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2) return; - r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2].data[3]; - DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2]); - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 0; + r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_2].data[3]; + DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_2]); + gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2 = 0; } else { - if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) + if (!gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4) return; - r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3].data[3]; - DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3]); - gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 0; + r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_3].data[3]; + DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_3]); + gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4 = 0; } gSprites[r4].pos2.x = 0; gSprites[r4].pos2.y = 0; @@ -2671,7 +2671,7 @@ static void SpriteCB_HealthBoxBounce(struct Sprite *sprite) void sub_8039E44(struct Sprite *sprite) { if (sprite->affineAnimEnded) - BattleAnimateBackSprite(sprite, sprite->tSpeciesId); + BattleAnimateBackSprite(sprite, sprite->sSpeciesId); } void sub_8039E60(struct Sprite *sprite) @@ -2752,8 +2752,8 @@ static void BattleStartClearSetData(void) dataPtr[j] = 0; } - gBattleMoveAttacker = 0; - gBattleMoveTarget = 0; + gBattlerAttacker = 0; + gBattlerTarget = 0; gBattleWeather = 0; dataPtr = (u8 *)&gWishFutureKnock; @@ -2841,12 +2841,12 @@ void SwitchInClearSetData(void) gBattleMons[gActiveBattler].statStages[i] = 6; for (i = 0; i < gBattlersCount; i++) { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBattler) + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; - if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBattler) + if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].battlerWithSureHit == gActiveBattler) { gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; - gDisableStructs[i].bankWithSureHit = 0; + gDisableStructs[i].battlerWithSureHit = 0; } } } @@ -2859,7 +2859,7 @@ void SwitchInClearSetData(void) { if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i) && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 - && (gDisableStructs[i].bankWithSureHit == gActiveBattler)) + && (gDisableStructs[i].battlerWithSureHit == gActiveBattler)) { gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS); gStatuses3[i] |= 0x10; @@ -2890,10 +2890,10 @@ void SwitchInClearSetData(void) if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP; - gDisableStructs[gActiveBattler].bankWithSureHit = disableStructCopy.bankWithSureHit; + gDisableStructs[gActiveBattler].battlerWithSureHit = disableStructCopy.battlerWithSureHit; gDisableStructs[gActiveBattler].perishSongTimer1 = disableStructCopy.perishSongTimer1; gDisableStructs[gActiveBattler].perishSongTimer2 = disableStructCopy.perishSongTimer2; - gDisableStructs[gActiveBattler].bankPreventingEscape = disableStructCopy.bankPreventingEscape; + gDisableStructs[gActiveBattler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape; } gMoveResultFlags = 0; @@ -2937,8 +2937,8 @@ void SwitchInClearSetData(void) gCurrentMove = 0; gBattleStruct->field_DA = 0xFF; - ClearBankMoveHistory(gActiveBattler); - ClearBankAbilityHistory(gActiveBattler); + ClearBattlerMoveHistory(gActiveBattler); + ClearBattlerAbilityHistory(gActiveBattler); } void FaintClearSetData(void) @@ -2954,7 +2954,7 @@ void FaintClearSetData(void) for (i = 0; i < gBattlersCount; i++) { - if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBattler) + if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler)) gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler)); @@ -3030,8 +3030,8 @@ void FaintClearSetData(void) gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; - ClearBankMoveHistory(gActiveBattler); - ClearBankAbilityHistory(gActiveBattler); + ClearBattlerMoveHistory(gActiveBattler); + ClearBattlerAbilityHistory(gActiveBattler); } static void BattleIntroGetMonsData(void) @@ -3639,8 +3639,8 @@ static void TryDoEventsBeforeFirstTurn(void) for (i = 0; i < MAX_BATTLERS_COUNT; i++) { *(gBattleStruct->monToSwitchIntoId + i) = 6; - gActionForBanks[i] = ACTION_INIT_VALUE; - gChosenMovesByBanks[i] = MOVE_NONE; + gChosenActionByBattler[i] = B_ACTION_NONE; + gChosenMoveByBattler[i] = MOVE_NONE; } TurnValuesCleanUp(FALSE); SpecialStatusesClear(); @@ -3744,8 +3744,8 @@ void BattleTurnPassed(void) for (i = 0; i < gBattlersCount; i++) { - gActionForBanks[i] = ACTION_INIT_VALUE; - gChosenMovesByBanks[i] = MOVE_NONE; + gChosenActionByBattler[i] = B_ACTION_NONE; + gChosenMoveByBattler[i] = MOVE_NONE; } for (i = 0; i < 4; i++) @@ -3773,7 +3773,7 @@ u8 IsRunningFromBattleImpossible(void) else holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); - gStringBank = gActiveBattler; + gStringBattler = gActiveBattler; if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) return 0; @@ -3828,34 +3828,34 @@ u8 IsRunningFromBattleImpossible(void) return 0; } -void sub_803BDA0(u8 bank) +void sub_803BDA0(u8 battler) { s32 i; u8 r4; u8 r1; - // gBattleStruct->field_60[bank][i] + // gBattleStruct->field_60[battler][i] for (i = 0; i < 3; i++) - gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60)); + gUnknown_0203CF00[i] = *(battler * 3 + i + (u8*)(gBattleStruct->field_60)); - r4 = pokemon_order_func(gBattlerPartyIndexes[bank]); - r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + bank)); + r4 = pokemon_order_func(gBattlerPartyIndexes[battler]); + r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + battler)); sub_81B8FB0(r4, r1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { for (i = 0; i < 3; i++) { - *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; - *((bank ^ BIT_FLANK) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + *(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + *(BATTLE_PARTNER(battler) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; } } else { for (i = 0; i < 3; i++) { - *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; + *(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i]; } } } @@ -3891,12 +3891,12 @@ static void HandleTurnActionSelectionState(void) *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; if (gBattleTypeFlags & BATTLE_TYPE_MULTI || !(position & BIT_FLANK) - || gBattleStruct->field_91 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)] - || gBattleCommunication[GetBattlerAtPosition(position ^ BIT_FLANK)] == 5) + || gBattleStruct->field_91 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))] + || gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] == 5) { if (gBattleStruct->field_91 & gBitTable[gActiveBattler]) { - gActionForBanks[gActiveBattler] = ACTION_NOTHING_FAINTED; + gChosenActionByBattler[gActiveBattler] = B_ACTION_NOTHING_FAINTED; if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED; else @@ -3907,12 +3907,12 @@ static void HandleTurnActionSelectionState(void) if (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gActiveBattler].status2 & STATUS2_RECHARGE) { - gActionForBanks[gActiveBattler] = ACTION_USE_MOVE; + gChosenActionByBattler[gActiveBattler] = B_ACTION_USE_MOVE; gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; } else { - BtlController_EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); + BtlController_EmitChooseAction(0, gChosenActionByBattler[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[gActiveBattler]++; } @@ -3923,11 +3923,11 @@ static void HandleTurnActionSelectionState(void) if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]); - gActionForBanks[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; + gChosenActionByBattler[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; switch (gBattleBufferB[gActiveBattler][1]) { - case ACTION_USE_MOVE: + case B_ACTION_USE_MOVE: if (AreAllMovesUnusable()) { gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; @@ -3938,7 +3938,7 @@ static void HandleTurnActionSelectionState(void) } else if (gDisableStructs[gActiveBattler].encoredMove != 0) { - gChosenMovesByBanks[gActiveBattler] = gDisableStructs[gActiveBattler].encoredMove; + gChosenMoveByBattler[gActiveBattler] = gDisableStructs[gActiveBattler].encoredMove; *(gBattleStruct->chosenMovePositions + gActiveBattler) = gDisableStructs[gActiveBattler].encoredMovePos; gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; return; @@ -3965,7 +3965,7 @@ static void HandleTurnActionSelectionState(void) MarkBattlerForControllerExec(gActiveBattler); } break; - case ACTION_USE_ITEM: + case B_ACTION_USE_ITEM: if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER_NO_PYRAMID | BATTLE_TYPE_EREADER_TRAINER @@ -3984,7 +3984,7 @@ static void HandleTurnActionSelectionState(void) MarkBattlerForControllerExec(gActiveBattler); } break; - case ACTION_SWITCH: + case B_ACTION_SWITCH: *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gBattleTypeFlags & BATTLE_TYPE_ARENA @@ -4005,16 +4005,16 @@ static void HandleTurnActionSelectionState(void) } else { - if (gActiveBattler == 2 && gActionForBanks[0] == ACTION_SWITCH) + if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH) BtlController_EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); - else if (gActiveBattler == 3 && gActionForBanks[1] == ACTION_SWITCH) + else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH) BtlController_EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); else BtlController_EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]); } MarkBattlerForControllerExec(gActiveBattler); break; - case ACTION_SAFARI_ZONE_BALL: + case B_ACTION_SAFARI_BALL: if (IsPlayerPartyAndPokemonStorageFull()) { gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintFullBox; @@ -4024,44 +4024,44 @@ static void HandleTurnActionSelectionState(void) return; } break; - case ACTION_POKEBLOCK_CASE: + case B_ACTION_SAFARI_POKEBLOCK: BtlController_EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]); MarkBattlerForControllerExec(gActiveBattler); break; - case ACTION_CANCEL_PARTNER: + case B_ACTION_CANCEL_PARTNER: gBattleCommunication[gActiveBattler] = 7; - gBattleCommunication[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] = 1; + gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] = 1; RecordedBattle_ClearBattlerAction(gActiveBattler, 1); - if (gBattleMons[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].status2 & STATUS2_MULTIPLETURNS - || gBattleMons[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].status2 & STATUS2_RECHARGE) + if (gBattleMons[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].status2 & STATUS2_MULTIPLETURNS + || gBattleMons[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].status2 & STATUS2_RECHARGE) { BtlController_EmitCmd50(0); MarkBattlerForControllerExec(gActiveBattler); return; } - else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_SWITCH) + else if (gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_SWITCH) { - RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 2); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 2); } - else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_RUN) + else if (gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_RUN) { - RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 1); } - else if (gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_USE_MOVE - && (gProtectStructs[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].onlyStruggle - || gDisableStructs[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)].encoredMove)) + else if (gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_USE_MOVE + && (gProtectStructs[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].onlyStruggle + || gDisableStructs[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].encoredMove)) { - RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 1); } else if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gActionForBanks[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)] == ACTION_USE_MOVE) + && gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_USE_MOVE) { gRngValue = gBattlePalaceMoveSelectionRngValue; - RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 1); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 1); } else { - RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK), 3); + RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 3); } BtlController_EmitCmd50(0); MarkBattlerForControllerExec(gActiveBattler); @@ -4070,7 +4070,7 @@ static void HandleTurnActionSelectionState(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) - && gBattleBufferB[gActiveBattler][1] == ACTION_RUN) + && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN) { gSelectionBattleScripts[gActiveBattler] = BattleScript_AskIfWantsToForfeitMatch; gBattleCommunication[gActiveBattler] = 8; @@ -4080,13 +4080,13 @@ static void HandleTurnActionSelectionState(void) } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - && gBattleBufferB[gActiveBattler][1] == ACTION_RUN) + && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN) { BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); gBattleCommunication[gActiveBattler] = 1; } else if (IsRunningFromBattleImpossible() - && gBattleBufferB[gActiveBattler][1] == ACTION_RUN) + && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN) { gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintCantEscapeFromBattle; gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; @@ -4103,9 +4103,9 @@ static void HandleTurnActionSelectionState(void) case STATE_WAIT_ACTION_CASE_CHOSEN: if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { - switch (gActionForBanks[gActiveBattler]) + switch (gChosenActionByBattler[gActiveBattler]) { - case ACTION_USE_MOVE: + case B_ACTION_USE_MOVE: switch (gBattleBufferB[gActiveBattler][1]) { case 3: @@ -4115,10 +4115,10 @@ static void HandleTurnActionSelectionState(void) case 7: case 8: case 9: - gActionForBanks[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; + gChosenActionByBattler[gActiveBattler] = gBattleBufferB[gActiveBattler][1]; return; case 15: - gActionForBanks[gActiveBattler] = ACTION_SWITCH; + gChosenActionByBattler[gActiveBattler] = B_ACTION_SWITCH; sub_803CDF8(); return; default: @@ -4145,14 +4145,14 @@ static void HandleTurnActionSelectionState(void) RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][3]); } *(gBattleStruct->chosenMovePositions + gActiveBattler) = gBattleBufferB[gActiveBattler][2]; - gChosenMovesByBanks[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)]; + gChosenMoveByBattler[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)]; *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3]; gBattleCommunication[gActiveBattler]++; } break; } break; - case ACTION_USE_ITEM: + case B_ACTION_USE_ITEM: if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) == 0) { gBattleCommunication[gActiveBattler] = 1; @@ -4163,7 +4163,7 @@ static void HandleTurnActionSelectionState(void) gBattleCommunication[gActiveBattler]++; } break; - case ACTION_SWITCH: + case B_ACTION_SWITCH: if (gBattleBufferB[gActiveBattler][1] == 6) { gBattleCommunication[gActiveBattler] = 1; @@ -4175,17 +4175,17 @@ static void HandleTurnActionSelectionState(void) gBattleCommunication[gActiveBattler]++; } break; - case ACTION_RUN: + case B_ACTION_RUN: gHitMarker |= HITMARKER_RUN; gBattleCommunication[gActiveBattler]++; break; - case ACTION_WATCHES_CAREFULLY: + case B_ACTION_SAFARI_WATCH_CAREFULLY: gBattleCommunication[gActiveBattler]++; break; - case ACTION_SAFARI_ZONE_BALL: + case B_ACTION_SAFARI_BALL: gBattleCommunication[gActiveBattler]++; break; - case ACTION_POKEBLOCK_CASE: + case B_ACTION_SAFARI_POKEBLOCK: if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) != 0) { gBattleCommunication[gActiveBattler]++; @@ -4195,14 +4195,14 @@ static void HandleTurnActionSelectionState(void) gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; } break; - case ACTION_GO_NEAR: + case B_ACTION_SAFARI_GO_NEAR: gBattleCommunication[gActiveBattler]++; break; - case ACTION_SAFARI_ZONE_RUN: + case B_ACTION_SAFARI_RUN: gHitMarker |= HITMARKER_RUN; gBattleCommunication[gActiveBattler]++; break; - case ACTION_9: + case B_ACTION_UNKNOWN9: gBattleCommunication[gActiveBattler]++; break; } @@ -4240,7 +4240,7 @@ static void HandleTurnActionSelectionState(void) } else { - gBattleMoveAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { @@ -4261,7 +4261,7 @@ static void HandleTurnActionSelectionState(void) if (gBattleBufferB[gActiveBattler][1] == 13) { gHitMarker |= HITMARKER_RUN; - gActionForBanks[gActiveBattler] = ACTION_RUN; + gChosenActionByBattler[gActiveBattler] = B_ACTION_RUN; gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; } else @@ -4272,7 +4272,7 @@ static void HandleTurnActionSelectionState(void) } else { - gBattleMoveAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler]; if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC)))) { @@ -4294,7 +4294,7 @@ static void HandleTurnActionSelectionState(void) { for (i = 0; i < gBattlersCount; i++) { - if (gActionForBanks[i] == ACTION_SWITCH) + if (gChosenActionByBattler[i] == B_ACTION_SWITCH) sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i)); } } @@ -4447,7 +4447,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) } else { - if (gActionForBanks[bank1] == ACTION_USE_MOVE) + if (gChosenActionByBattler[bank1] == B_ACTION_USE_MOVE) { if (gProtectStructs[bank1].onlyStruggle) moveBank1 = MOVE_STRUGGLE; @@ -4457,7 +4457,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves) else moveBank1 = MOVE_NONE; - if (gActionForBanks[bank2] == ACTION_USE_MOVE) + if (gChosenActionByBattler[bank2] == B_ACTION_USE_MOVE) { if (gProtectStructs[bank2].onlyStruggle) moveBank2 = MOVE_STRUGGLE; @@ -4509,7 +4509,7 @@ static void SetActionsAndBanksTurnOrder(void) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gActionsByTurnOrder[var] = gChosenActionByBattler[gActiveBattler]; gBattleTurnOrder[var] = gActiveBattler; var++; } @@ -4520,7 +4520,7 @@ static void SetActionsAndBanksTurnOrder(void) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBattler] == ACTION_RUN) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN) { var = 5; break; @@ -4529,12 +4529,12 @@ static void SetActionsAndBanksTurnOrder(void) } else { - if (gActionForBanks[0] == ACTION_RUN) + if (gChosenActionByBattler[0] == B_ACTION_RUN) { gActiveBattler = 0; var = 5; } - if (gActionForBanks[2] == ACTION_RUN) + if (gChosenActionByBattler[2] == B_ACTION_RUN) { gActiveBattler = 2; var = 5; @@ -4543,14 +4543,14 @@ static void SetActionsAndBanksTurnOrder(void) if (var == 5) { - gActionsByTurnOrder[0] = gActionForBanks[gActiveBattler]; + gActionsByTurnOrder[0] = gChosenActionByBattler[gActiveBattler]; gBattleTurnOrder[0] = gActiveBattler; var = 1; for (i = 0; i < gBattlersCount; i++) { if (i != gActiveBattler) { - gActionsByTurnOrder[var] = gActionForBanks[i]; + gActionsByTurnOrder[var] = gChosenActionByBattler[i]; gBattleTurnOrder[var] = i; var++; } @@ -4563,18 +4563,18 @@ static void SetActionsAndBanksTurnOrder(void) { for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBattler] == ACTION_USE_ITEM || gActionForBanks[gActiveBattler] == ACTION_SWITCH) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gActionsByTurnOrder[var] = gChosenActionByBattler[gActiveBattler]; gBattleTurnOrder[var] = gActiveBattler; var++; } } for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - if (gActionForBanks[gActiveBattler] != ACTION_USE_ITEM && gActionForBanks[gActiveBattler] != ACTION_SWITCH) + if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) { - gActionsByTurnOrder[var] = gActionForBanks[gActiveBattler]; + gActionsByTurnOrder[var] = gChosenActionByBattler[gActiveBattler]; gBattleTurnOrder[var] = gActiveBattler; var++; } @@ -4585,10 +4585,10 @@ static void SetActionsAndBanksTurnOrder(void) { u8 bank1 = gBattleTurnOrder[i]; u8 bank2 = gBattleTurnOrder[j]; - if (gActionsByTurnOrder[i] != ACTION_USE_ITEM - && gActionsByTurnOrder[j] != ACTION_USE_ITEM - && gActionsByTurnOrder[i] != ACTION_SWITCH - && gActionsByTurnOrder[j] != ACTION_SWITCH) + if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[i] != B_ACTION_SWITCH + && gActionsByTurnOrder[j] != B_ACTION_SWITCH) { if (GetWhoStrikesFirst(bank1, bank2, FALSE)) SwapTurnOrder(i, j); @@ -4656,11 +4656,11 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { while (gBattleStruct->focusPunchBank < gBattlersCount) { - gActiveBattler = gBattleMoveAttacker = gBattleStruct->focusPunchBank; + gActiveBattler = gBattlerAttacker = gBattleStruct->focusPunchBank; gBattleStruct->focusPunchBank++; - if (gChosenMovesByBanks[gActiveBattler] == MOVE_FOCUS_PUNCH + if (gChosenMoveByBattler[gActiveBattler] == MOVE_FOCUS_PUNCH && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) - && !(gDisableStructs[gBattleMoveAttacker].truantCounter) + && !(gDisableStructs[gBattlerAttacker].truantCounter) && !(gProtectStructs[gActiveBattler].onlyStruggle)) { BattleScriptExecute(BattleScript_FocusPunchSetUp); @@ -4716,7 +4716,7 @@ static void HandleEndTurn_BattleWon(void) { gSpecialVar_Result = gBattleOutcome; gBattleTextBuff1[0] = gBattleOutcome; - gBattleMoveAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } @@ -4789,7 +4789,7 @@ static void HandleEndTurn_BattleLost(void) else { gBattleTextBuff1[0] = gBattleOutcome; - gBattleMoveAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } @@ -4819,7 +4819,7 @@ static void HandleEndTurn_RanFromBattle(void) } else { - switch (gProtectStructs[gBattleMoveAttacker].fleeFlag) + switch (gProtectStructs[gBattlerAttacker].fleeFlag) { default: gBattlescriptCurrInstr = BattleScript_GotAwaySafely; @@ -4840,7 +4840,7 @@ static void HandleEndTurn_MonFled(void) { gCurrentActionFuncId = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]); gBattlescriptCurrInstr = BattleScript_WildMonFled; gBattleMainFunc = HandleEndTurn_FinishBattle; @@ -4995,9 +4995,9 @@ void RunBattleScriptCommands_PopCallbacksStack(void) { if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) { - if (BATTLE_CALLBACKS_STACK->size != 0) - BATTLE_CALLBACKS_STACK->size--; - gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size]; + if (gBattleResources->battleCallbackStack->size != 0) + gBattleResources->battleCallbackStack->size--; + gBattleMainFunc = gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size]; } else { @@ -5017,11 +5017,11 @@ static void HandleAction_UseMove(void) u8 side; u8 var = 4; - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; - if (*(&gBattleStruct->field_91) & gBitTable[gBattleMoveAttacker]) + if (*(&gBattleStruct->field_91) & gBitTable[gBattlerAttacker]) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; return; } @@ -5031,78 +5031,78 @@ static void HandleAction_UseMove(void) gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleMoveAttacker); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattlerAttacker); // choose move - if (gProtectStructs[gBattleMoveAttacker].onlyStruggle) + if (gProtectStructs[gBattlerAttacker].onlyStruggle) { - gProtectStructs[gBattleMoveAttacker].onlyStruggle = 0; + gProtectStructs[gBattlerAttacker].onlyStruggle = 0; gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; - *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } - else if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattleMoveAttacker].status2 & STATUS2_RECHARGE) + else if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gChosenMove = gLockedMoves[gBattleMoveAttacker]; + gCurrentMove = gChosenMove = gLockedMoves[gBattlerAttacker]; } // encore forces you to use the same move - else if (gDisableStructs[gBattleMoveAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBattleMoveAttacker].encoredMove == gBattleMons[gBattleMoveAttacker].moves[gDisableStructs[gBattleMoveAttacker].encoredMovePos]) + else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattlerAttacker].encoredMove == gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) { - gCurrentMove = gChosenMove = gDisableStructs[gBattleMoveAttacker].encoredMove; - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleMoveAttacker].encoredMovePos; - *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gDisableStructs[gBattlerAttacker].encoredMove; + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattlerAttacker].encoredMovePos; + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); } // check if the encored move wasn't overwritten - else if (gDisableStructs[gBattleMoveAttacker].encoredMove != MOVE_NONE - && gDisableStructs[gBattleMoveAttacker].encoredMove != gBattleMons[gBattleMoveAttacker].moves[gDisableStructs[gBattleMoveAttacker].encoredMovePos]) + else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBattlerAttacker].encoredMove != gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos]) { - gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattleMoveAttacker].encoredMovePos; - gCurrentMove = gChosenMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; - gDisableStructs[gBattleMoveAttacker].encoredMove = MOVE_NONE; - gDisableStructs[gBattleMoveAttacker].encoredMovePos = 0; - gDisableStructs[gBattleMoveAttacker].encoreTimer1 = 0; - *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattlerAttacker].encoredMovePos; + gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; + gDisableStructs[gBattlerAttacker].encoredMove = MOVE_NONE; + gDisableStructs[gBattlerAttacker].encoredMovePos = 0; + gDisableStructs[gBattlerAttacker].encoreTimer1 = 0; + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); } - else if (gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBattleMoveAttacker]) + else if (gBattleMons[gBattlerAttacker].moves[gCurrMovePos] != gChosenMoveByBattler[gBattlerAttacker]) { - gCurrentMove = gChosenMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; - *(gBattleStruct->moveTarget + gBattleMoveAttacker) = GetMoveTarget(gCurrentMove, 0); + gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gChosenMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; } - if (gBattleMons[gBattleMoveAttacker].hp != 0) + if (gBattleMons[gBattlerAttacker].hp != 0) { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) gBattleResults.lastUsedMovePlayer = gCurrentMove; else gBattleResults.lastUsedMoveOpponent = gCurrentMove; } // choose target - side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED - && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget) && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) { - gBattleMoveTarget = gSideTimers[side].followmeTarget; + gBattlerTarget = gSideTimers[side].followmeTarget; } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gSideTimers[side].followmeTimer == 0 && (gBattleMoves[gCurrentMove].power != 0 || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) - && gBattleMons[*(gBattleStruct->moveTarget + gBattleMoveAttacker)].ability != ABILITY_LIGHTNING_ROD + && gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_LIGHTNING_ROD && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { - side = GetBattlerSide(gBattleMoveAttacker); + side = GetBattlerSide(gBattlerAttacker); for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (side != GetBattlerSide(gActiveBattler) - && *(gBattleStruct->moveTarget + gBattleMoveAttacker) != gActiveBattler + && *(gBattleStruct->moveTarget + gBattlerAttacker) != gActiveBattler && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD && GetBattlerTurnOrderNum(gActiveBattler) < var) { @@ -5113,37 +5113,37 @@ static void HandleAction_UseMove(void) { if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } } else { - gBattleMoveTarget = *(gBattleStruct->moveTarget + gBattleMoveAttacker); + gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker); } - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) { - if (GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget)) + if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } else { - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } } } @@ -5152,65 +5152,65 @@ static void HandleAction_UseMove(void) gActiveBattler = gBattleTurnOrder[var]; RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1; - gBattleMoveTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget] - && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget)) + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget] + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } } else { - gBattleMoveTarget = *(gBattleStruct->moveTarget + gBattleMoveAttacker); - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) + gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) { - if (GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget)) + if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } else { - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); } } } // choose battlescript if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gProtectStructs[gBattleMoveAttacker].flag_x10) + && gProtectStructs[gBattlerAttacker].flag_x10) { - if (gBattleMons[gBattleMoveAttacker].hp == 0) + if (gBattleMons[gBattlerAttacker].hp == 0) { - gCurrentActionFuncId = 12; + gCurrentActionFuncId = B_ACTION_FINISHED; return; } - else if (gPalaceSelectionBattleScripts[gBattleMoveAttacker] != NULL) + else if (gPalaceSelectionBattleScripts[gBattlerAttacker] != NULL) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattleMoveAttacker]; - gPalaceSelectionBattleScripts[gBattleMoveAttacker] = NULL; + gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattlerAttacker]; + gPalaceSelectionBattleScripts[gBattlerAttacker] = NULL; } else { @@ -5224,24 +5224,24 @@ static void HandleAction_UseMove(void) } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A56E8(gBattleMoveAttacker); + sub_81A56E8(gBattlerAttacker); - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } static void HandleAction_Switch(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gActionSelectionCursor[gBattleMoveAttacker] = 0; - gMoveSelectionCursor[gBattleMoveAttacker] = 0; + gActionSelectionCursor[gBattlerAttacker] = 0; + gMoveSelectionCursor[gBattlerAttacker] = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, *(gBattleStruct->field_58 + gBattleMoveAttacker)) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, *(gBattleStruct->field_58 + gBattlerAttacker)) - gBattleScripting.battler = gBattleMoveAttacker; + gBattleScripting.battler = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_ActionSwitch; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; if (gBattleResults.playerSwitchesCounter < 255) gBattleResults.playerSwitchesCounter++; @@ -5249,11 +5249,11 @@ static void HandleAction_Switch(void) static void HandleAction_UseItem(void) { - gBattleMoveAttacker = gBattleMoveTarget = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattlerTarget = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - ClearFuryCutterDestinyBondGrudge(gBattleMoveAttacker); - gLastUsedItem = gBattleBufferB[gBattleMoveAttacker][1] | (gBattleBufferB[gBattleMoveAttacker][2] << 8); + ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); + gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8); if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball { @@ -5263,38 +5263,38 @@ static void HandleAction_UseItem(void) { gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; } - else if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } else { - gBattleScripting.battler = gBattleMoveAttacker; + gBattleScripting.battler = gBattlerAttacker; - switch (*(gBattleStruct->AI_itemType + (gBattleMoveAttacker >> 1))) + switch (*(gBattleStruct->AI_itemType + (gBattlerAttacker >> 1))) { case AI_ITEM_FULL_RESTORE: case AI_ITEM_HEAL_HP: break; case AI_ITEM_CURE_CONDITION: gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (*(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) & 1) + if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1) { - if (*(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) & 0x3E) + if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E) gBattleCommunication[MULTISTRING_CHOOSER] = 5; } else { - while (!(*(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) & 1)) + while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)) { - *(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1; gBattleCommunication[MULTISTRING_CHOOSER]++; } } break; case AI_ITEM_X_STAT: gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (*(gBattleStruct->AI_itemFlags + (gBattleMoveAttacker >> 1)) & 0x80) + if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 0x80) { gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -5303,9 +5303,9 @@ static void HandleAction_UseItem(void) PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) - while (!((*(gBattleStruct->AI_itemFlags + (gBattleMoveAttacker >> 1))) & 1)) + while (!((*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1))) & 1)) { - *(gBattleStruct->AI_itemFlags + gBattleMoveAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1; gBattleTextBuff1[2]++; } @@ -5321,49 +5321,49 @@ static void HandleAction_UseItem(void) break; } - gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattleMoveAttacker / 2)]; + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattlerAttacker / 2)]; } - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } -bool8 TryRunFromBattle(u8 bank) +bool8 TryRunFromBattle(u8 battler) { bool8 effect = FALSE; u8 holdEffect; u8 pyramidMultiplier; u8 speedVar; - if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[bank].holdEffect; + if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[battler].holdEffect; else - holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[battler].item); - gStringBank = bank; + gStringBattler = battler; if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) { - gLastUsedItem = gBattleMons[bank].item ; - gProtectStructs[bank].fleeFlag = 1; + gLastUsedItem = gBattleMons[battler].item ; + gProtectStructs[battler].fleeFlag = 1; effect++; } - else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY) + else if (gBattleMons[battler].ability == ABILITY_RUN_AWAY) { if (InBattlePyramid()) { gBattleStruct->runTries++; pyramidMultiplier = sub_81A9E28(); - speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); + speedVar = (gBattleMons[battler].speed * pyramidMultiplier) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30); if (speedVar > (Random() & 0xFF)) { gLastUsedAbility = ABILITY_RUN_AWAY; - gProtectStructs[bank].fleeFlag = 2; + gProtectStructs[battler].fleeFlag = 2; effect++; } } else { gLastUsedAbility = ABILITY_RUN_AWAY; - gProtectStructs[bank].fleeFlag = 2; + gProtectStructs[battler].fleeFlag = 2; effect++; } } @@ -5378,13 +5378,13 @@ bool8 TryRunFromBattle(u8 bank) if (InBattlePyramid()) { pyramidMultiplier = sub_81A9E28(); - speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); + speedVar = (gBattleMons[battler].speed * pyramidMultiplier) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30); if (speedVar > (Random() & 0xFF)) effect++; } - else if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed) + else if (gBattleMons[battler].speed < gBattleMons[BATTLE_OPPOSITE(battler)].speed) { - speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); + speedVar = (gBattleMons[battler].speed * 128) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30); if (speedVar > (Random() & 0xFF)) effect++; } @@ -5408,7 +5408,7 @@ bool8 TryRunFromBattle(u8 bank) static void HandleAction_Run(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) { @@ -5418,12 +5418,12 @@ static void HandleAction_Run(void) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - if (gActionForBanks[gActiveBattler] == ACTION_RUN) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN) gBattleOutcome |= B_OUTCOME_LOST; } else { - if (gActionForBanks[gActiveBattler] == ACTION_RUN) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN) gBattleOutcome |= B_OUTCOME_WON; } } @@ -5433,23 +5433,23 @@ static void HandleAction_Run(void) } else { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { - if (!TryRunFromBattle(gBattleMoveAttacker)) // failed to run away + if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away { - ClearFuryCutterDestinyBondGrudge(gBattleMoveAttacker); + ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } } else { - if (gBattleMons[gBattleMoveAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + if (gBattleMons[gBattlerAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } else { @@ -5462,31 +5462,31 @@ static void HandleAction_Run(void) static void HandleAction_WatchesCarefully(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } static void HandleAction_SafariZoneBallThrow(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; gNumSafariBalls--; gLastUsedItem = ITEM_SAFARI_BALL; gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } static void HandleAction_ThrowPokeblock(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattleMoveAttacker][1] - 1; - gLastUsedItem = gBattleBufferB[gBattleMoveAttacker][2]; + gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1; + gLastUsedItem = gBattleBufferB[gBattlerAttacker][2]; if (gBattleResults.field_1F < 0xFF) gBattleResults.field_1F++; @@ -5501,12 +5501,12 @@ static void HandleAction_ThrowPokeblock(void) } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } static void HandleAction_GoNear(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -5528,12 +5528,12 @@ static void HandleAction_GoNear(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; } static void HandleAction_SafriZoneRun(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; PlaySE(SE_NIGERU); gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; @@ -5541,15 +5541,15 @@ static void HandleAction_SafriZoneRun(void) static void HandleAction_Action9(void) { - gBattleMoveAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; + gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]) gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; - gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; - gActionsByTurnOrder[1] = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; + gActionsByTurnOrder[1] = B_ACTION_FINISHED; } static void HandleAction_Action11(void) @@ -5557,7 +5557,7 @@ static void HandleAction_Action11(void) if (!HandleFaintedMonActions()) { gBattleStruct->faintedActionsState = 0; - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; } } @@ -5589,8 +5589,8 @@ static void HandleAction_ActionFinished(void) gMoveResultFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gLastLandedMoves[gBattleMoveAttacker] = 0; - gLastHitByType[gBattleMoveAttacker] = 0; + gLastLandedMoves[gBattlerAttacker] = 0; + gLastHitByType[gBattlerAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gDynamicBasePower = 0; gBattleScripting.atk49_state = 0; diff --git a/src/battle_message.c b/src/battle_message.c index 07e5b2d60..88d11163d 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -17,11 +17,11 @@ extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gActiveBattler; -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; -extern u8 gStringBank; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; +extern u8 gStringBattler; extern u8 gEffectBank; -extern u8 gAbilitiesPerBank[MAX_BATTLERS_COUNT]; +extern u8 gBattlerAbilities[MAX_BATTLERS_COUNT]; extern u32 gBattleTypeFlags; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; @@ -1436,12 +1436,12 @@ void BufferStringBattle(u16 stringID) gBattleScripting.battler = gStringInfo->scrActive; *(&gBattleStruct->field_52) = gStringInfo->unk1605E; *(&gBattleStruct->hpScale) = gStringInfo->hpScale; - gStringBank = gStringInfo->StringBank; + gStringBattler = gStringInfo->StringBank; *(&gBattleStruct->stringMoveType) = gStringInfo->moveType; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - gAbilitiesPerBank[i] = gStringInfo->abilities[i]; + gBattlerAbilities[i] = gStringInfo->abilities[i]; } for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { @@ -1884,23 +1884,23 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBattleMoveAttacker, - gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleMoveAttacker))]) + HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, + gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker))]) break; case B_TXT_ATK_PARTNER_NAME: // attacker partner name - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) - GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleMoveAttacker)) + 2]], MON_DATA_NICKNAME, text); + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattleMoveAttacker)) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]) + HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]) break; case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix - HANDLE_NICKNAME_STRING_CASE(gBattleMoveTarget, gBattlerPartyIndexes[gBattleMoveTarget]) + HANDLE_NICKNAME_STRING_CASE(gBattlerTarget, gBattlerPartyIndexes[gBattlerTarget]) break; case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlerPartyIndexes[gEffectBank]) @@ -1930,10 +1930,10 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) { if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - if ((gBattleScripting.multiplayerId != 0 && (gStringBank & BIT_SIDE)) - || (gBattleScripting.multiplayerId == 0 && !(gStringBank & BIT_SIDE))) + if ((gBattleScripting.multiplayerId != 0 && (gStringBattler & BIT_SIDE)) + || (gBattleScripting.multiplayerId == 0 && !(gStringBattler & BIT_SIDE))) { - StringCopy(text, gEnigmaBerries[gStringBank].name); + StringCopy(text, gEnigmaBerries[gStringBattler].name); StringAppend(text, gText_BerrySuffix); toCpy = text; } @@ -1944,9 +1944,9 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) } else { - if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBank) + if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBattler) { - StringCopy(text, gEnigmaBerries[gStringBank].name); + StringCopy(text, gEnigmaBerries[gStringBattler].name); StringAppend(text, gText_BerrySuffix); toCpy = text; } @@ -1970,16 +1970,16 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gAbilityNames[gLastUsedAbility]; break; case B_TXT_ATK_ABILITY: // attacker ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBattleMoveAttacker]]; + toCpy = gAbilityNames[gBattlerAbilities[gBattlerAttacker]]; break; case B_TXT_DEF_ABILITY: // target ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBattleMoveTarget]]; + toCpy = gAbilityNames[gBattlerAbilities[gBattlerTarget]]; break; case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability - toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.battler]]; + toCpy = gAbilityNames[gBattlerAbilities[gBattleScripting.battler]]; break; case B_TXT_EFF_ABILITY: // effect bank ability - toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBank]]; + toCpy = gAbilityNames[gBattlerAbilities[gEffectBank]]; break; case B_TXT_TRAINER1_CLASS: // trainer class name if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE) @@ -2094,37 +2094,37 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = gText_Someones; break; case B_TXT_ATK_PREFIX2: - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; break; case B_TXT_DEF_PREFIX2: - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix2; else toCpy = gText_FoePkmnPrefix3; break; case B_TXT_ATK_PREFIX1: - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; break; case B_TXT_DEF_PREFIX1: - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix; else toCpy = gText_FoePkmnPrefix2; break; case B_TXT_ATK_PREFIX3: - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; break; case B_TXT_DEF_PREFIX3: - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) toCpy = gText_AllyPkmnPrefix3; else toCpy = gText_FoePkmnPrefix4; @@ -2313,9 +2313,9 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) { if (hword == ITEM_ENIGMA_BERRY) { - if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBank) + if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBattler) { - StringCopy(dst, gEnigmaBerries[gStringBank].name); + StringCopy(dst, gEnigmaBerries[gStringBattler].name); StringAppend(dst, gText_BerrySuffix); } else diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index c443c5449..a751cf5e7 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -54,16 +54,16 @@ extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; -extern u8 gStringBank; +extern u8 gStringBattler; extern u8 gEffectBank; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; -extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; +extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u16 gPauseCounterBattle; extern u16 gPaydayMoney; extern u16 gRandomTurnNumber; -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern const u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; extern u8 gCurrentActionFuncId; @@ -73,7 +73,7 @@ extern u16 gLastLandedMoves[4]; extern u16 gLastHitByType[4]; extern u16 gLastResultingMoves[4]; extern u8 gLastHitBy[4]; -extern u8 gStringBank; +extern u8 gStringBattler; extern u16 gDynamicBasePower; extern u16 gLastUsedItem; extern u16 gBattleMovePower; @@ -89,7 +89,7 @@ extern u8 gPlayerPartyCount; extern u16 gMoveToLearn; extern u16 gRandomMove; extern u8 gBankInMenu; -extern u8 gActionForBanks[MAX_BATTLERS_COUNT]; +extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; extern u8 gCurrentTurnActionNumber; extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; extern u16 gLockedMoves[MAX_BATTLERS_COUNT]; @@ -155,10 +155,10 @@ extern const u8 gText_BattleYesNoChoice[]; #define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr)) -#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattleMoveTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) +#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) -#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical != 0 \ - || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special != 0) +#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical != 0 \ + || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special != 0) // this file's functions static bool8 IsTwoTurnsMove(u16 move); @@ -1024,10 +1024,10 @@ static void atk00_attackcanceler(void) if (gBattleOutcome != 0) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; return; } - if (gBattleMons[gBattleMoveAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) + if (gBattleMons[gBattlerAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; @@ -1035,10 +1035,10 @@ static void atk00_attackcanceler(void) } if (AtkCanceller_UnableToUseMove()) return; - if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattleMoveTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0)) return; - if (!gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) - && !(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -1047,7 +1047,7 @@ static void atk00_attackcanceler(void) gHitMarker &= ~(HITMARKER_x800000); - if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)) + if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { i = IsMonDisobedient(); // why use the 'i' variable...? switch (i) @@ -1065,10 +1065,10 @@ static void atk00_attackcanceler(void) gHitMarker |= HITMARKER_OBEYS; - if (gProtectStructs[gBattleMoveTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) + if (gProtectStructs[gBattlerTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED) { - PressurePPLose(gBattleMoveAttacker, gBattleMoveTarget, MOVE_MAGIC_COAT); - gProtectStructs[gBattleMoveTarget].bounceMove = 0; + PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT); + gProtectStructs[gBattlerTarget].bounceMove = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; @@ -1078,7 +1078,7 @@ static void atk00_attackcanceler(void) { if ((gProtectStructs[gBattleTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) { - PressurePPLose(gBattleMoveAttacker, gBattleTurnOrder[i], MOVE_SNATCH); + PressurePPLose(gBattlerAttacker, gBattleTurnOrder[i], MOVE_SNATCH); gProtectStructs[gBattleTurnOrder[i]].stealMove = 0; gBattleScripting.battler = gBattleTurnOrder[i]; BattleScriptPushCursor(); @@ -1087,22 +1087,22 @@ static void atk00_attackcanceler(void) } } - if (gSpecialStatuses[gBattleMoveTarget].lightningRodRedirected) + if (gSpecialStatuses[gBattlerTarget].lightningRodRedirected) { - gSpecialStatuses[gBattleMoveTarget].lightningRodRedirected = 0; + gSpecialStatuses[gBattlerTarget].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else if (DEFENDER_IS_PROTECTED - && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattleMoveAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleMoveAttacker].type2 == TYPE_GHOST)) - && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)))) + && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)) + && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)))) { - CancelMultiTurnMoves(gBattleMoveAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBattleMoveTarget] = 0; - gLastHitByType[gBattleMoveTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1117,14 +1117,14 @@ static void JumpIfMoveFailed(u8 adder, u16 move) const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gLastLandedMoves[gBattleMoveTarget] = 0; - gLastHitByType[gBattleMoveTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { TrySetDestinyBondToHappen(); - if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattleMoveTarget, 0, 0, move)) + if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattlerTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; @@ -1159,13 +1159,13 @@ bool8 JumpIfMoveAffectedByProtect(u16 move) static bool8 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBattleMoveTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattleMoveTarget].bankWithSureHit == gBattleMoveAttacker) + if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) { JumpIfMoveFailed(7, move); return TRUE; } - if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattleMoveTarget] & STATUS3_ON_AIR) + if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1174,7 +1174,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_ON_AIR; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattleMoveTarget] & STATUS3_UNDERGROUND) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattlerTarget] & STATUS3_UNDERGROUND) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1183,7 +1183,7 @@ static bool8 AccuracyCalcHelper(u16 move) gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND; - if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattleMoveTarget] & STATUS3_UNDERWATER) + if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattlerTarget] & STATUS3_UNDERWATER) { gMoveResultFlags |= MOVE_RESULT_MISSED; JumpIfMoveFailed(7, move); @@ -1208,9 +1208,9 @@ static void atk01_accuracycheck(void) if (move == 0xFFFE || move == 0xFFFF) { - if (gStatuses3[gBattleMoveTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattleMoveTarget].bankWithSureHit == gBattleMoveAttacker) + if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) gBattlescriptCurrInstr += 7; - else if (gStatuses3[gBattleMoveTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) + else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else if (!JumpIfMoveAffectedByProtect(0)) gBattlescriptCurrInstr += 7; @@ -1231,15 +1231,15 @@ static void atk01_accuracycheck(void) if (AccuracyCalcHelper(move)) return; - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) { - u8 acc = gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ACC]; + u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC]; buff = acc; } else { - u8 acc = gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ACC]; - buff = acc + 6 - gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_EVASION]; + u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC]; + buff = acc + 6 - gBattleMons[gBattlerTarget].statStages[STAT_STAGE_EVASION]; } if (buff < 0) @@ -1255,25 +1255,25 @@ static void atk01_accuracycheck(void) calc = sAccuracyStageRatios[buff].dividend * moveAcc; calc /= sAccuracyStageRatios[buff].divisor; - if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_COMPOUND_EYES) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_COMPOUND_EYES) calc = (calc * 130) / 100; // 1.3 compound eyes boost - if (WEATHER_HAS_EFFECT && gBattleMons[gBattleMoveTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) + if (WEATHER_HAS_EFFECT && gBattleMons[gBattlerTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY) calc = (calc * 80) / 100; // 1.2 sand veil loss - if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_HUSTLE && type < 9) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_HUSTLE && type < 9) calc = (calc * 80) / 100; // 1.2 hustle loss - if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect; - quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect; + quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBattleMoveTarget; + gStringBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_EVASION_UP) calc = (calc * (100 - quality)) / 100; @@ -1300,7 +1300,7 @@ static void atk02_attackstring(void) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(STRINGID_USEDMOVE, gBattleMoveAttacker); + PrepareStringBattle(STRINGID_USEDMOVE, gBattlerAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -1314,39 +1314,39 @@ static void atk03_ppreduce(void) if (gBattleControllerExecFlags) return; - if (!gSpecialStatuses[gBattleMoveAttacker].flag20) + if (!gSpecialStatuses[gBattlerAttacker].flag20) { switch (gBattleMoves[gCurrentMove].target) { case MOVE_TARGET_FOES_AND_ALLY: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattleMoveAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattlerAttacker, ABILITY_PRESSURE, 0, 0); break; case MOVE_TARGET_BOTH: case MOVE_TARGET_OPPONENTS_FIELD: - ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleMoveAttacker, ABILITY_PRESSURE, 0, 0); + ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_PRESSURE, 0, 0); break; default: - if (gBattleMoveAttacker != gBattleMoveTarget && gBattleMons[gBattleMoveTarget].ability == ABILITY_PRESSURE) + if (gBattlerAttacker != gBattlerTarget && gBattleMons[gBattlerTarget].ability == ABILITY_PRESSURE) ppToDeduct++; break; } } - if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos]) + if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos]) { - gProtectStructs[gBattleMoveAttacker].notFirstStrike = 1; + gProtectStructs[gBattlerAttacker].notFirstStrike = 1; - if (gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] > ppToDeduct) - gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] -= ppToDeduct; + if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct) + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] -= ppToDeduct; else - gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = 0; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0; - if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_TRANSFORMED) - && !((gDisableStructs[gBattleMoveAttacker].unk18_b) & gBitTable[gCurrMovePos])) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) + && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos])) { - gActiveBattler = gBattleMoveAttacker; - BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos]); - MarkBattlerForControllerExec(gBattleMoveAttacker); + gActiveBattler = gBattlerAttacker; + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]); + MarkBattlerForControllerExec(gBattlerAttacker); } } @@ -1359,29 +1359,29 @@ static void atk04_critcalc(void) u8 holdEffect; u16 item, critChance; - item = gBattleMons[gBattleMoveAttacker].item; + item = gBattleMons[gBattlerAttacker].item; if (item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gBattleMoveAttacker].holdEffect; + holdEffect = gEnigmaBerries[gBattlerAttacker].holdEffect; else holdEffect = ItemId_GetHoldEffect(item); - gStringBank = gBattleMoveAttacker; + gStringBattler = gBattlerAttacker; - critChance = 2 * ((gBattleMons[gBattleMoveAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + critChance = 2 * ((gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0) + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) + (holdEffect == HOLD_EFFECT_SCOPE_LENS) - + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattleMoveAttacker].species == SPECIES_CHANSEY) - + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattleMoveAttacker].species == SPECIES_FARFETCHD); + + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY) + + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattlerAttacker].species == SPECIES_FARFETCHD); if (critChance > 4) critChance = 4; - if ((gBattleMons[gBattleMoveTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattleMoveTarget].ability != ABILITY_SHELL_ARMOR) - && !(gStatuses3[gBattleMoveAttacker] & STATUS3_CANT_SCORE_A_CRIT) + if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR) + && !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT) && !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) && !(Random() % sCriticalHitChance[critChance])) gCritMultiplier = 2; @@ -1393,15 +1393,15 @@ static void atk04_critcalc(void) static void atk05_damagecalc(void) { - u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)]; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveTarget], gCurrentMove, + u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)]; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, sideStatus, gDynamicBasePower, - gBattleStruct->dynamicMoveType, gBattleMoveAttacker, gBattleMoveTarget); + gBattleStruct->dynamicMoveType, gBattlerAttacker, gBattlerTarget); gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier; - if (gStatuses3[gBattleMoveAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + if (gStatuses3[gBattlerAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) gBattleMoveDamage *= 2; - if (gProtectStructs[gBattleMoveAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattlescriptCurrInstr++; @@ -1470,20 +1470,20 @@ static void atk06_typecalc(void) GET_MOVE_TYPE(gCurrentMove, moveType); // check stab - if (gBattleMons[gBattleMoveAttacker].type1 == moveType || gBattleMons[gBattleMoveAttacker].type2 == moveType) + if (gBattleMons[gBattlerAttacker].type1 == moveType || gBattleMons[gBattlerAttacker].type2 == moveType) { gBattleMoveDamage = gBattleMoveDamage * 15; gBattleMoveDamage = gBattleMoveDamage / 10; } - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBattleMoveTarget] = 0; - gLastHitByType[gBattleMoveTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -1491,7 +1491,7 @@ static void atk06_typecalc(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1499,30 +1499,30 @@ static void atk06_typecalc(void) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 && - gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 && + gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); } i += 3; } } - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleMoveAttacker, gCurrentMove) == 2 + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBattleMoveTarget] = 0; - gLastHitByType[gBattleMoveTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; + gLastHitByType[gBattlerTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } @@ -1538,11 +1538,11 @@ static void CheckWonderGuardAndLevitate(void) GET_MOVE_TYPE(gCurrentMove, moveType); - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { gLastUsedAbility = ABILITY_LEVITATE; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBattleMoveTarget, ABILITY_LEVITATE); + RecordAbilityBattle(gBattlerTarget, ABILITY_LEVITATE); return; } @@ -1550,7 +1550,7 @@ static void CheckWonderGuardAndLevitate(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) break; i += 3; continue; @@ -1558,46 +1558,46 @@ static void CheckWonderGuardAndLevitate(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check no effect - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 && - gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 && + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 && + gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } // check super effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) flags |= 1; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 - && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) flags |= 1; // check not very effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) flags |= 2; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 - && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) flags |= 2; } i += 3; } - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattleMoveAttacker, gCurrentMove) == 2) + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2) { if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBattleMoveTarget, ABILITY_WONDER_GUARD); + RecordAbilityBattle(gBattlerTarget, ABILITY_WONDER_GUARD); } } } @@ -1764,42 +1764,42 @@ static void atk07_adjustnormaldamage(void) ApplyRandomDmgMultiplier(); - if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect, quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBattleMoveTarget; + gStringBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBattleMoveTarget, holdEffect); - gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; + RecordItemEffectBattle(gBattlerTarget, holdEffect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleMoveTarget].endured - && !gSpecialStatuses[gBattleMoveTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBattleMoveTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) + else if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleMoveTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -1812,40 +1812,40 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't ApplyRandomDmgMultiplier(); - if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect, quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBattleMoveTarget; + gStringBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBattleMoveTarget, holdEffect); - gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; + RecordItemEffectBattle(gBattlerTarget, holdEffect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (!gProtectStructs[gBattleMoveTarget].endured && !gSpecialStatuses[gBattleMoveTarget].focusBanded) + if (!gProtectStructs[gBattlerTarget].endured && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBattleMoveTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) + else if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleMoveTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -1878,13 +1878,13 @@ static void atk09_attackanimation(void) { u8 multihit; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) multihit = gMultiHitCounter; else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) { - if (gBattleMons[gBattleMoveTarget].hp <= gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage) multihit = 1; else multihit = gMultiHitCounter; @@ -1892,10 +1892,10 @@ static void atk09_attackanimation(void) else multihit = gMultiHitCounter; - BtlController_EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattleMoveAttacker].friendship, &gDisableStructs[gBattleMoveAttacker], multihit); + BtlController_EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattlerAttacker].friendship, &gDisableStructs[gBattlerAttacker], multihit); gBattleScripting.animTurn += 1; gBattleScripting.animTargetsHit += 1; - MarkBattlerForControllerExec(gBattleMoveAttacker); + MarkBattlerForControllerExec(gBattlerAttacker); gBattlescriptCurrInstr++; } else @@ -2010,9 +2010,9 @@ static void atk0C_datahpupdate(void) { gTakenDmg[gActiveBattler] += gBattleMoveDamage; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gTakenDmgBanks[gActiveBattler] = gBattleMoveAttacker; + gTakenDmgBanks[gActiveBattler] = gBattlerAttacker; else - gTakenDmgBanks[gActiveBattler] = gBattleMoveTarget; + gTakenDmgBanks[gActiveBattler] = gBattlerTarget; } if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage) @@ -2035,13 +2035,13 @@ static void atk0C_datahpupdate(void) gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].physicalBank = gBattleMoveAttacker; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleMoveAttacker; + gProtectStructs[gActiveBattler].physicalBank = gBattlerAttacker; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattlerAttacker; } else { - gProtectStructs[gActiveBattler].physicalBank = gBattleMoveTarget; - gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattleMoveTarget; + gProtectStructs[gActiveBattler].physicalBank = gBattlerTarget; + gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattlerTarget; } } else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000)) @@ -2050,13 +2050,13 @@ static void atk0C_datahpupdate(void) gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt; if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) { - gProtectStructs[gActiveBattler].specialBank = gBattleMoveAttacker; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleMoveAttacker; + gProtectStructs[gActiveBattler].specialBank = gBattlerAttacker; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattlerAttacker; } else { - gProtectStructs[gActiveBattler].specialBank = gBattleMoveTarget; - gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattleMoveTarget; + gProtectStructs[gActiveBattler].specialBank = gBattlerTarget; + gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattlerTarget; } } } @@ -2080,7 +2080,7 @@ static void atk0D_critmessage(void) { if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { - PrepareStringBattle(STRINGID_CRITICALHIT, gBattleMoveAttacker); + PrepareStringBattle(STRINGID_CRITICALHIT, gBattlerAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2092,7 +2092,7 @@ static void atk0E_effectivenesssound(void) if (gBattleControllerExecFlags) return; - gActiveBattler = gBattleMoveTarget; + gActiveBattler = gBattlerTarget; if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) { switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED))) @@ -2170,8 +2170,8 @@ static void atk0F_resultmessage(void) stringId = STRINGID_ITDOESNTAFFECT; break; case MOVE_RESULT_FOE_HUNG_ON: - gLastUsedItem = gBattleMons[gBattleMoveTarget].item; - gStringBank = gBattleMoveTarget; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + gStringBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2199,8 +2199,8 @@ static void atk0F_resultmessage(void) } else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { - gLastUsedItem = gBattleMons[gBattleMoveTarget].item; - gStringBank = gBattleMoveTarget; + gLastUsedItem = gBattleMons[gBattlerTarget].item; + gStringBattler = gBattlerTarget; gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; @@ -2218,7 +2218,7 @@ static void atk0F_resultmessage(void) } if (stringId) - PrepareStringBattle(stringId, gBattleMoveAttacker); + PrepareStringBattle(stringId, gBattlerAttacker); gBattlescriptCurrInstr++; } @@ -2228,7 +2228,7 @@ static void atk10_printstring(void) if (gBattleControllerExecFlags == 0) { u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1); - PrepareStringBattle(var, gBattleMoveAttacker); + PrepareStringBattle(var, gBattlerAttacker); gBattlescriptCurrInstr += 3; gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2236,7 +2236,7 @@ static void atk10_printstring(void) static void atk11_printselectionstring(void) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBattlerForControllerExec(gActiveBattler); @@ -2273,7 +2273,7 @@ static void atk13_printfromtable(void) const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - PrepareStringBattle(*ptr, gBattleMoveAttacker); + PrepareStringBattle(*ptr, gBattlerAttacker); gBattlescriptCurrInstr += 5; gBattleCommunication[MSG_DISPLAY] = 1; @@ -2287,7 +2287,7 @@ static void atk14_printselectionstringfromtable(void) const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitPrintSelectionString(0, *ptr); MarkBattlerForControllerExec(gActiveBattler); @@ -2328,15 +2328,15 @@ void SetMoveEffect(bool8 primary, u8 certain) if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_AFFECTS_USER) { - gEffectBank = gBattleMoveAttacker; // bank that effects get applied on + gEffectBank = gBattlerAttacker; // bank that effects get applied on gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_AFFECTS_USER); affectsUser = MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.battler = gBattleMoveTarget; // theoretically the attacker + gBattleScripting.battler = gBattlerTarget; // theoretically the attacker } else { - gEffectBank = gBattleMoveTarget; - gBattleScripting.battler = gBattleMoveAttacker; + gEffectBank = gBattlerTarget; + gBattleScripting.battler = gBattlerAttacker; } if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -2681,10 +2681,10 @@ void SetMoveEffect(bool8 primary, u8 certain) } break; case MOVE_EFFECT_PAYDAY: - if (GET_BATTLER_SIDE(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattlerAttacker) == B_SIDE_PLAYER) { u16 PayDay = gPaydayMoney; - gPaydayMoney += (gBattleMons[gBattleMoveAttacker].level * 5); + gPaydayMoney += (gBattleMons[gBattlerAttacker].level * 5); if (PayDay > gPaydayMoney) gPaydayMoney = 0xFFFF; } @@ -2719,7 +2719,7 @@ void SetMoveEffect(bool8 primary, u8 certain) *(gBattleStruct->wrappedMove + gEffectBank * 2 + 0) = gCurrentMove; *(gBattleStruct->wrappedMove + gEffectBank * 2 + 1) = gCurrentMove >> 8; - *(gBattleStruct->wrappedBy + gEffectBank) = gBattleMoveAttacker; + *(gBattleStruct->wrappedBy + gEffectBank) = gBattlerAttacker; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; @@ -2832,7 +2832,7 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr++; break; case MOVE_EFFECT_RAGE: - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_RAGE; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_RAGE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_STEAL_ITEM: @@ -2843,8 +2843,8 @@ void SetMoveEffect(bool8 primary, u8 certain) break; } - side = GetBattlerSide(gBattleMoveAttacker); - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_OPPONENT + side = GetBattlerSide(gBattlerAttacker); + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -2860,56 +2860,56 @@ void SetMoveEffect(bool8 primary, u8 certain) | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_SECRET_BASE)) - && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattleMoveAttacker]])) + && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]])) { gBattlescriptCurrInstr++; } - else if (gBattleMons[gBattleMoveTarget].item - && gBattleMons[gBattleMoveTarget].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBattlerTarget].item + && gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; - gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } - else if (gBattleMons[gBattleMoveAttacker].item != 0 - || gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBattleMoveTarget].item) - || gBattleMons[gBattleMoveTarget].item == 0) + else if (gBattleMons[gBattlerAttacker].item != 0 + || gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattlerTarget].item) + || gBattleMons[gBattlerTarget].item == 0) { gBattlescriptCurrInstr++; } else { - u16* changedItem = &gBattleStruct->changedItems[gBattleMoveAttacker]; - gLastUsedItem = *changedItem = gBattleMons[gBattleMoveTarget].item; - gBattleMons[gBattleMoveTarget].item = 0; + u16* changedItem = &gBattleStruct->changedItems[gBattlerAttacker]; + gLastUsedItem = *changedItem = gBattleMons[gBattlerTarget].item; + gBattleMons[gBattlerTarget].item = 0; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); - MarkBattlerForControllerExec(gBattleMoveAttacker); + MarkBattlerForControllerExec(gBattlerAttacker); - gActiveBattler = gBattleMoveTarget; - BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleMoveTarget].item); - MarkBattlerForControllerExec(gBattleMoveTarget); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item); + MarkBattlerForControllerExec(gBattlerTarget); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 1) = 0; } } break; case MOVE_EFFECT_PREVENT_ESCAPE: - gBattleMons[gBattleMoveTarget].status2 |= STATUS2_ESCAPE_PREVENTION; - gDisableStructs[gBattleMoveTarget].bankPreventingEscape = gBattleMoveAttacker; + gBattleMons[gBattlerTarget].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[gBattlerTarget].battlerPreventingEscape = gBattlerAttacker; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_NIGHTMARE: - gBattleMons[gBattleMoveTarget].status2 |= STATUS2_NIGHTMARE; + gBattleMons[gBattlerTarget].status2 |= STATUS2_NIGHTMARE; gBattlescriptCurrInstr++; break; case MOVE_EFFECT_ALL_STATS_UP: @@ -2921,15 +2921,15 @@ void SetMoveEffect(bool8 primary, u8 certain) gBattlescriptCurrInstr = BattleScript_RapidSpinAway; break; case MOVE_EFFECT_REMOVE_PARALYSIS: // Smelling salts - if (!(gBattleMons[gBattleMoveTarget].status1 & STATUS1_PARALYSIS)) + if (!(gBattleMons[gBattlerTarget].status1 & STATUS1_PARALYSIS)) { gBattlescriptCurrInstr++; } else { - gBattleMons[gBattleMoveTarget].status1 &= ~(STATUS1_PARALYSIS); + gBattleMons[gBattlerTarget].status1 &= ~(STATUS1_PARALYSIS); - gActiveBattler = gBattleMoveTarget; + gActiveBattler = gBattlerTarget; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); @@ -3010,7 +3010,7 @@ static void atk15_seteffectwithchance(void) { u32 percentChance; - if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_SERENE_GRACE) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_SERENE_GRACE) percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2; else percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance; @@ -3089,14 +3089,14 @@ static void atk19_tryfaintmon(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) { - gActiveBattler = gBattleMoveAttacker; - bank = gBattleMoveTarget; + gActiveBattler = gBattlerAttacker; + bank = gBattlerTarget; BS_ptr = BattleScript_FaintAttacker; } else { - gActiveBattler = gBattleMoveTarget; - bank = gBattleMoveAttacker; + gActiveBattler = gBattlerTarget; + bank = gBattlerAttacker; BS_ptr = BattleScript_FaintTarget; } if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) @@ -3118,29 +3118,29 @@ static void atk19_tryfaintmon(void) gBattleResults.opponentFaintCounter++; gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL); } - if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattleMoveAttacker].hp != 0) + if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattlerAttacker].hp != 0) { gHitMarker &= ~(HITMARKER_DESTINYBOND); BattleScriptPush(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } - if ((gStatuses3[gBattleMoveTarget] & STATUS3_GRUDGE) + if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE) && !(gHitMarker & HITMARKER_GRUDGE) - && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget) - && gBattleMons[gBattleMoveAttacker].hp != 0 + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) + && gBattleMons[gBattlerAttacker].hp != 0 && gCurrentMove != MOVE_STRUGGLE) { - u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBattleMoveAttacker); + u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBattlerAttacker); - gBattleMons[gBattleMoveAttacker].pp[moveIndex] = 0; + gBattleMons[gBattlerAttacker].pp[moveIndex] = 0; BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); MarkBattlerForControllerExec(gActiveBattler); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveAttacker].moves[moveIndex]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].moves[moveIndex]) } } else @@ -3211,26 +3211,26 @@ static void atk1E_jumpifability(void) if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER_SIDE) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattleMoveAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(bank - 1, gLastUsedAbility); - gBattleScripting.bankWithAbility = bank - 1; + gBattleScripting.battlerWithAbility = bank - 1; } else gBattlescriptCurrInstr += 7; } else if (gBattlescriptCurrInstr[1] == BS_GET_NOT_ATTACKER_SIDE) { - bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattleMoveAttacker, ability, 0, 0); + bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0); if (bank) { gLastUsedAbility = ability; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(bank - 1, gLastUsedAbility); - gBattleScripting.bankWithAbility = bank - 1; + gBattleScripting.battlerWithAbility = bank - 1; } else gBattlescriptCurrInstr += 7; @@ -3243,7 +3243,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(bank, gLastUsedAbility); - gBattleScripting.bankWithAbility = bank; + gBattleScripting.battlerWithAbility = bank; } else gBattlescriptCurrInstr += 7; @@ -3257,9 +3257,9 @@ static void atk1F_jumpifsideaffecting(void) const u8* jumpPtr; if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) - side = GET_BATTLER_SIDE(gBattleMoveAttacker); + side = GET_BATTLER_SIDE(gBattlerAttacker); else - side = GET_BATTLER_SIDE(gBattleMoveTarget); + side = GET_BATTLER_SIDE(gBattlerTarget); flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2); jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4); @@ -3529,12 +3529,12 @@ static void atk23_getexp(void) gBattleBufferB[gBattleStruct->expGetterBank][0] = 0; if (GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL) != MAX_MON_LEVEL) { - BATTLE_LVLUP_STATS->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP); - BATTLE_LVLUP_STATS->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK); - BATTLE_LVLUP_STATS->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF); - BATTLE_LVLUP_STATS->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); - BATTLE_LVLUP_STATS->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); - BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); + gBattleResources->statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP); + gBattleResources->statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK); + gBattleResources->statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF); + gBattleResources->statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED); + gBattleResources->statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK); + gBattleResources->statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF); gActiveBattler = gBattleStruct->expGetterBank; BtlController_EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage); @@ -3646,7 +3646,7 @@ static void atk24(void) for (i = 0; i < 6; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) - && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->field_2A0 & gBitTable[i]))) + && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->field_2A0 & gBitTable[i]))) { HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); } @@ -4323,9 +4323,9 @@ static void atk3A_waitstate(void) static void atk3B_healthbar_update(void) { if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) - gActiveBattler = gBattleMoveTarget; + gActiveBattler = gBattlerTarget; else - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage); MarkBattlerForControllerExec(gActiveBattler); @@ -4340,7 +4340,7 @@ static void atk3C_return(void) static void atk3D_end(void) { if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - sub_81A5718(gBattleMoveAttacker); + sub_81A5718(gBattlerAttacker); gMoveResultFlags = 0; gActiveBattler = 0; @@ -4356,9 +4356,9 @@ static void atk3E_end2(void) static void atk3F_end3(void) // pops the main function stack { BattleScriptPop(); - if (BATTLE_CALLBACKS_STACK->size) - BATTLE_CALLBACKS_STACK->size--; - gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size]; + if (gBattleResources->battleCallbackStack->size != 0) + gBattleResources->battleCallbackStack->size--; + gBattleMainFunc = gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size]; } static void atk41_call(void) @@ -4387,7 +4387,7 @@ static void atk43_jumpifabilitypresent(void) static void atk44_endselectionscript(void) { - *(gBattleMoveAttacker + gBattleStruct->selectionScriptFinished) = TRUE; + *(gBattlerAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } static void atk45_playanimation(void) @@ -4864,12 +4864,12 @@ static void atk49_moveend(void) arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; - if (gBattleMons[gBattleMoveAttacker].item == ITEM_ENIGMA_BERRY) - holdEffectAtk = gEnigmaBerries[gBattleMoveAttacker].holdEffect; + if (gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY) + holdEffectAtk = gEnigmaBerries[gBattlerAttacker].holdEffect; else - holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattleMoveAttacker].item); + holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattlerAttacker].item); - choicedMoveAtk = &gBattleStruct->choicedMove[gBattleMoveAttacker]; + choicedMoveAtk = &gBattleStruct->choicedMove[gBattlerAttacker]; GET_MOVE_TYPE(gCurrentMove, moveType); @@ -4878,13 +4878,13 @@ static void atk49_moveend(void) switch (gBattleScripting.atk49_state) { case 0: // rage check - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_RAGE - && gBattleMons[gBattleMoveTarget].hp != 0 && gBattleMoveAttacker != gBattleMoveTarget - && GetBattlerSide(gBattleMoveAttacker) != GetBattlerSide(gBattleMoveTarget) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_RAGE + && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget + && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED - && gBattleMoves[gCurrentMove].power && gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_ATK] <= 0xB) + && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] <= 0xB) { - gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_ATK]++; + gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK]++; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = TRUE; @@ -4892,14 +4892,14 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 1: // defrosting check - if (gBattleMons[gBattleMoveTarget].status1 & STATUS1_FREEZE - && gBattleMons[gBattleMoveTarget].hp != 0 && gBattleMoveAttacker != gBattleMoveTarget - && gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special + if (gBattleMons[gBattlerTarget].status1 & STATUS1_FREEZE + && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget + && gSpecialStatuses[gBattlerTarget].moveturnLostHP_special && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE) { - gBattleMons[gBattleMoveTarget].status1 &= ~(STATUS1_FREEZE); - gActiveBattler = gBattleMoveTarget; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattleMoveTarget].status1); + gBattleMons[gBattlerTarget].status1 &= ~(STATUS1_FREEZE); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1); MarkBattlerForControllerExec(gActiveBattler); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; @@ -4908,12 +4908,12 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 2: // target synchronize - if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattleMoveTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattlerTarget, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; case 3: // contact abilities - if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattleMoveTarget, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattlerTarget, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4924,7 +4924,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 5: // attacker synchronize - if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattleMoveAttacker, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattlerAttacker, 0, 0, 0)) effect = TRUE; gBattleScripting.atk49_state++; break; @@ -4942,7 +4942,7 @@ static void atk49_moveend(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleMoveAttacker].moves[i] == *choicedMoveAtk) + if (gBattleMons[gBattlerAttacker].moves[i] == *choicedMoveAtk) break; } if (i == 4) @@ -4975,10 +4975,10 @@ static void atk49_moveend(void) gBattleScripting.atk49_state++; break; case 8: // make attacker sprite invisible - if (gStatuses3[gBattleMoveAttacker] & (STATUS3_SEMI_INVULNERABLE) + if (gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE) && gHitMarker & HITMARKER_NO_ANIMATIONS) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSpriteInvisibility(0, TRUE); MarkBattlerForControllerExec(gActiveBattler); gBattleScripting.atk49_state++; @@ -4988,27 +4988,27 @@ static void atk49_moveend(void) break; case 9: // make attacker sprite visible if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT - || !(gStatuses3[gBattleMoveAttacker] & (STATUS3_SEMI_INVULNERABLE)) - || WasUnableToUseMove(gBattleMoveAttacker)) + || !(gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE)) + || WasUnableToUseMove(gBattlerAttacker)) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSpriteInvisibility(0, FALSE); MarkBattlerForControllerExec(gActiveBattler); - gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); - gSpecialStatuses[gBattleMoveAttacker].restoredBankSprite = 1; + gStatuses3[gBattlerAttacker] &= ~(STATUS3_SEMI_INVULNERABLE); + gSpecialStatuses[gBattlerAttacker].restoredBankSprite = 1; gBattleScripting.atk49_state++; return; } gBattleScripting.atk49_state++; break; case 10: // make target sprite visible - if (!gSpecialStatuses[gBattleMoveTarget].restoredBankSprite && gBattleMoveTarget < gBattlersCount - && !(gStatuses3[gBattleMoveTarget] & STATUS3_SEMI_INVULNERABLE)) + if (!gSpecialStatuses[gBattlerTarget].restoredBankSprite && gBattlerTarget < gBattlersCount + && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { - gActiveBattler = gBattleMoveTarget; + gActiveBattler = gBattlerTarget; BtlController_EmitSpriteInvisibility(0, FALSE); MarkBattlerForControllerExec(gActiveBattler); - gStatuses3[gBattleMoveTarget] &= ~(STATUS3_SEMI_INVULNERABLE); + gStatuses3[gBattlerTarget] &= ~(STATUS3_SEMI_INVULNERABLE); gBattleScripting.atk49_state++; return; } @@ -5025,82 +5025,82 @@ static void atk49_moveend(void) case 14: // This case looks interesting, although I am not certain what it does. Probably fine tunes edge cases. if (gHitMarker & HITMARKER_PURSUIT_TRAP) { - gActiveBattler = gBattleMoveAttacker; - gBattleMoveAttacker = gBattleMoveTarget; - gBattleMoveTarget = gActiveBattler; + gActiveBattler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = gActiveBattler; gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gLastPrintedMoves[gBattleMoveAttacker] = gChosenMove; + gLastPrintedMoves[gBattlerAttacker] = gChosenMove; } - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]) - && !(gBattleStruct->field_91 & gBitTable[gBattleMoveAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) + && !(gBattleStruct->field_91 & gBitTable[gBattlerAttacker]) && gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS) { if (gHitMarker & HITMARKER_OBEYS) { - gLastMoves[gBattleMoveAttacker] = gChosenMove; - gLastResultingMoves[gBattleMoveAttacker] = gCurrentMove; + gLastMoves[gBattlerAttacker] = gChosenMove; + gLastResultingMoves[gBattlerAttacker] = gCurrentMove; } else { - gLastMoves[gBattleMoveAttacker] = 0xFFFF; - gLastResultingMoves[gBattleMoveAttacker] = 0xFFFF; + gLastMoves[gBattlerAttacker] = 0xFFFF; + gLastResultingMoves[gBattlerAttacker] = 0xFFFF; } - if (!(gHitMarker & HITMARKER_FAINTED(gBattleMoveTarget))) - gLastHitBy[gBattleMoveTarget] = gBattleMoveAttacker; + if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget))) + gLastHitBy[gBattlerTarget] = gBattlerAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { if (gChosenMove == 0xFFFF) { - gLastLandedMoves[gBattleMoveTarget] = gChosenMove; + gLastLandedMoves[gBattlerTarget] = gChosenMove; } else { - gLastLandedMoves[gBattleMoveTarget] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattleMoveTarget]); + gLastLandedMoves[gBattlerTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattlerTarget]); } } else { - gLastLandedMoves[gBattleMoveTarget] = 0xFFFF; + gLastLandedMoves[gBattlerTarget] = 0xFFFF; } } gBattleScripting.atk49_state++; break; case 15: // mirror move - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattleMoveAttacker]) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattlerAttacker]) && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS - && gBattleMoveAttacker != gBattleMoveTarget && !(gHitMarker & HITMARKER_FAINTED(gBattleMoveTarget)) + && gBattlerAttacker != gBattlerTarget && !(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBattleMoveTarget * 2 + 0) = gChosenMove; - *(gBattleStruct->mirrorMoves + gBattleMoveTarget * 2 + 1) = gChosenMove >> 8; + *(gBattleStruct->mirrorMoves + gBattlerTarget * 2 + 0) = gChosenMove; + *(gBattleStruct->mirrorMoves + gBattlerTarget * 2 + 1) = gChosenMove >> 8; - target = gBattleMoveTarget; - attacker = gBattleMoveAttacker; + target = gBattlerTarget; + attacker = gBattlerAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove; - target = gBattleMoveTarget; - attacker = gBattleMoveAttacker; + target = gBattlerTarget; + attacker = gBattlerAttacker; *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8; } gBattleScripting.atk49_state++; break; case 16: // if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !gProtectStructs[gBattleMoveAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH + && !gProtectStructs[gBattlerAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 bank = GetBattlerAtPosition(B_POSITION_PARTNER(GetBattlerPosition(gBattleMoveTarget))); + u8 bank = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); if (gBattleMons[bank].hp != 0) { - gBattleMoveTarget = bank; + gBattlerTarget = bank; gHitMarker |= HITMARKER_NO_ATTACKSTRING; gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); @@ -5136,13 +5136,13 @@ static void atk4A_typecalc2(void) s32 i = 0; u8 moveType = gBattleMoves[gCurrentMove].type; - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) { - gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); - gLastLandedMoves[gBattleMoveTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; gBattleCommunication[6] = moveType; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -5150,7 +5150,7 @@ static void atk4A_typecalc2(void) { if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_FORESIGHT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT) { break; } @@ -5164,7 +5164,7 @@ static void atk4A_typecalc2(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1) { if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { @@ -5181,22 +5181,22 @@ static void atk4A_typecalc2(void) } } // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2) { - if (gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 + if (gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 - && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) { flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattleMoveTarget].type2 - && gBattleMons[gBattleMoveTarget].type1 != gBattleMons[gBattleMoveTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 + && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) { flags |= MOVE_RESULT_SUPER_EFFECTIVE; @@ -5207,27 +5207,27 @@ static void atk4A_typecalc2(void) } } - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD + if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_NO_EFFECT) - && AttacksThisTurn(gBattleMoveAttacker, gCurrentMove) == 2 + && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2 && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE))) && gBattleMoves[gCurrentMove].power) { gLastUsedAbility = ABILITY_WONDER_GUARD; gMoveResultFlags |= MOVE_RESULT_MISSED; - gLastLandedMoves[gBattleMoveTarget] = 0; + gLastLandedMoves[gBattlerTarget] = 0; gBattleCommunication[6] = 3; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) - gProtectStructs[gBattleMoveAttacker].targetNotAffected = 1; + gProtectStructs[gBattlerAttacker].targetNotAffected = 1; gBattlescriptCurrInstr++; } static void atk4B_returnatktoball(void) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { BtlController_EmitReturnMonToBall(0, 0); @@ -5842,7 +5842,7 @@ static void atk51_switchhandleorder(void) sub_803BDA0(gActiveBattler); } - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveAttacker].species) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species) PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1]) break; @@ -5904,7 +5904,7 @@ static void atk52_switchineffects(void) for (i = 0; i < gBattlersCount; i++) { if (gBattleTurnOrder[i] == gActiveBattler) - gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER; + gActionsByTurnOrder[i] = B_ACTION_CANCEL_PARTNER; } for (i = 0; i < gBattlersCount; i++) @@ -5943,7 +5943,7 @@ static void atk53_trainerslidein(void) static void atk54_playse(void) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBattlerForControllerExec(gActiveBattler); @@ -5952,7 +5952,7 @@ static void atk54_playse(void) static void atk55_fanfare(void) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); MarkBattlerForControllerExec(gActiveBattler); @@ -6311,9 +6311,9 @@ static void atk5E(void) static void atk5F(void) { - gActiveBattler = gBattleMoveAttacker; - gBattleMoveAttacker = gBattleMoveTarget; - gBattleMoveTarget = gActiveBattler; + gActiveBattler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + gBattlerTarget = gActiveBattler; if (gHitMarker & HITMARKER_PURSUIT_TRAP) gHitMarker &= ~(HITMARKER_PURSUIT_TRAP); @@ -6325,7 +6325,7 @@ static void atk5F(void) static void atk60_incrementgamestat(void) { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) IncrementGameStat(gBattlescriptCurrInstr[1]); gBattlescriptCurrInstr += 2; @@ -6489,7 +6489,7 @@ static void atk68_cancelallactions(void) s32 i; for (i = 0; i < gBattlersCount; i++) - gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER; + gActionsByTurnOrder[i] = B_ACTION_CANCEL_PARTNER; gBattlescriptCurrInstr++; } @@ -6498,42 +6498,42 @@ static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no ra { u8 holdEffect, quality; - if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect, quality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); - quality = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBattleMoveTarget; + gStringBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality) { - RecordItemEffectBattle(gBattleMoveTarget, holdEffect); - gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; + RecordItemEffectBattle(gBattlerTarget, holdEffect); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) goto END; - if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattleMoveTarget].endured - && !gSpecialStatuses[gBattleMoveTarget].focusBanded) + if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured + && !gSpecialStatuses[gBattlerTarget].focusBanded) goto END; - if (gBattleMons[gBattleMoveTarget].hp > gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - if (gProtectStructs[gBattleMoveTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) + else if (gSpecialStatuses[gBattlerTarget].focusBanded) { gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleMoveTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } END: @@ -6558,7 +6558,7 @@ static void atk6A_removeitem(void) static void atk6B_atknameinbuff1(void) { - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattlerPartyIndexes[gBattleMoveAttacker]) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]) gBattlescriptCurrInstr++; } @@ -6845,7 +6845,7 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBattleMoveAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); gBattlescriptCurrInstr++; } @@ -6939,8 +6939,8 @@ static void atk74_hpthresholds2(void) static void atk75_useitemonopponent(void) { - gBankInMenu = gBattleMoveAttacker; - ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattleMoveAttacker], 0, 1); + gBankInMenu = gBattlerAttacker; + ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1); gBattlescriptCurrInstr += 1; } @@ -6958,18 +6958,18 @@ static void atk76_various(void) CancelMultiTurnMoves(gActiveBattler); break; case VARIOUS_SET_MAGIC_COAT_TARGET: - gBattleMoveAttacker = gBattleMoveTarget; - side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; + gBattlerAttacker = gBattlerTarget; + side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) - gBattleMoveTarget = gSideTimers[side].followmeTarget; + gBattlerTarget = gSideTimers[side].followmeTarget; else - gBattleMoveTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; break; case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: - gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); break; case 4: if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) @@ -7127,31 +7127,31 @@ static void atk76_various(void) static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; - u16 lastMove = gLastResultingMoves[gBattleMoveAttacker]; + u16 lastMove = gLastResultingMoves[gBattlerAttacker]; if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) - gDisableStructs[gBattleMoveAttacker].protectUses = 0; + gDisableStructs[gBattlerAttacker].protectUses = 0; if (gCurrentTurnActionNumber == (gBattlersCount - 1)) notLastTurn = FALSE; - if (sProtectSuccessRates[gDisableStructs[gBattleMoveAttacker].protectUses] >= Random() && notLastTurn) + if (sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] >= Random() && notLastTurn) { if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) { - gProtectStructs[gBattleMoveAttacker].protected = 1; + gProtectStructs[gBattlerAttacker].protected = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) { - gProtectStructs[gBattleMoveAttacker].endured = 1; + gProtectStructs[gBattlerAttacker].endured = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - gDisableStructs[gBattleMoveAttacker].protectUses++; + gDisableStructs[gBattlerAttacker].protectUses++; } else { - gDisableStructs[gBattleMoveAttacker].protectUses = 0; + gDisableStructs[gBattlerAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gMoveResultFlags |= MOVE_RESULT_MISSED; } @@ -7164,32 +7164,32 @@ static void atk78_faintifabilitynotdamp(void) if (gBattleControllerExecFlags) return; - for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_DAMP) + if (gBattleMons[gBattlerTarget].ability == ABILITY_DAMP) break; } - if (gBattleMoveTarget == gBattlersCount) + if (gBattlerTarget == gBattlersCount) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; BtlController_EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr++; - for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBattleMoveTarget == gBattleMoveAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } } else { gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(gBattleMoveTarget, gBattleMons[gBattleMoveTarget].ability); + RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; } } @@ -7199,7 +7199,7 @@ static void atk79_setatkhptozero(void) if (gBattleControllerExecFlags) return; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; gBattleMons[gActiveBattler].hp = 0; BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp); MarkBattlerForControllerExec(gActiveBattler); @@ -7213,15 +7213,15 @@ static void atk7A_jumpifnexttargetvalid(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (gBattleMoveTarget++; ; gBattleMoveTarget++) + for (gBattlerTarget++; ; gBattlerTarget++) { - if (gBattleMoveTarget == gBattleMoveAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } - if (gBattleMoveTarget >= gBattlersCount) + if (gBattlerTarget >= gBattlersCount) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = jumpPtr; @@ -7237,14 +7237,14 @@ static void atk7B_tryhealhalfhealth(void) const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattlescriptCurrInstr[5] == BS_GET_ATTACKER) - gBattleMoveTarget = gBattleMoveAttacker; + gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBattleMoveTarget].hp == gBattleMons[gBattleMoveTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = failPtr; else gBattlescriptCurrInstr += 6; @@ -7262,10 +7262,10 @@ static void atk7C_trymirrormove(void) for (validMovesCount = 0, i = 0; i < gBattlersCount; i++) { - if (i != gBattleMoveAttacker) + if (i != gBattlerAttacker) { - move = *(i * 2 + gBattleMoveAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) - | (*(i * 2 + gBattleMoveAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); + move = *(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) + | (*(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8); if (move != 0 && move != 0xFFFF) { @@ -7275,14 +7275,14 @@ static void atk7C_trymirrormove(void) } } - move = *(gBattleStruct->mirrorMoves + gBattleMoveAttacker * 2 + 0) - | (*(gBattleStruct->mirrorMoves + gBattleMoveAttacker * 2 + 1) << 8); + move = *(gBattleStruct->mirrorMoves + gBattlerAttacker * 2 + 0) + | (*(gBattleStruct->mirrorMoves + gBattlerAttacker * 2 + 1) << 8); if (move != 0 && move != 0xFFFF) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = move; - gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else if (validMovesCount) @@ -7290,12 +7290,12 @@ static void atk7C_trymirrormove(void) gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); i = Random() % validMovesCount; gCurrentMove = movesArray[i]; - gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } else { - gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].flag20 = 1; gBattlescriptCurrInstr++; } } @@ -7318,16 +7318,16 @@ static void atk7D_setrain(void) static void atk7E_setreflect(void) { - if (gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] & SIDE_STATUS_REFLECT) + if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_REFLECT; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].reflectTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].reflectBank = gBattleMoveAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_REFLECT; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectBank = gBattlerAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; @@ -7339,20 +7339,20 @@ static void atk7E_setreflect(void) static void atk7F_setseeded(void) { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattleMoveTarget] & STATUS3_LEECHSEED) + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } - else if (gBattleMons[gBattleMoveTarget].type1 == TYPE_GRASS || gBattleMons[gBattleMoveTarget].type2 == TYPE_GRASS) + else if (gBattleMons[gBattlerTarget].type1 == TYPE_GRASS || gBattleMons[gBattlerTarget].type2 == TYPE_GRASS) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 2; } else { - gStatuses3[gBattleMoveTarget] |= gBattleMoveAttacker; - gStatuses3[gBattleMoveTarget] |= STATUS3_LEECHSEED; + gStatuses3[gBattlerTarget] |= gBattlerAttacker; + gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7370,8 +7370,8 @@ static void atk80_manipulatedamage(void) gBattleMoveDamage /= 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gBattleMoveTarget].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 2; + if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; break; case ATK80_DMG_DOUBLED: gBattleMoveDamage *= 2; @@ -7384,21 +7384,21 @@ static void atk80_manipulatedamage(void) static void atk81_trysetrest(void) { const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - gActiveBattler = gBattleMoveTarget = gBattleMoveAttacker; - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP * (-1); + gActiveBattler = gBattlerTarget = gBattlerAttacker; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP * (-1); - if (gBattleMons[gBattleMoveTarget].hp == gBattleMons[gBattleMoveTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) { gBattlescriptCurrInstr = failJump; } else { - if (gBattleMons[gBattleMoveTarget].status1 & ((u8)(~STATUS1_SLEEP))) + if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP))) gBattleCommunication[MULTISTRING_CHOOSER] = 1; else gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gBattleMoveTarget].status1 = 3; + gBattleMons[gBattlerTarget].status1 = 3; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 5; @@ -7409,7 +7409,7 @@ static void atk82_jumpifnotfirstturn(void) { const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBattleMoveAttacker].isFirstTurn) + if (gDisableStructs[gBattlerAttacker].isFirstTurn) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = failJump; @@ -7431,9 +7431,9 @@ bool8 UproarWakeUpCheck(u8 bank) gBattleScripting.battler = i; - if (gBattleMoveTarget == 0xFF) - gBattleMoveTarget = i; - else if (gBattleMoveTarget == i) + if (gBattlerTarget == 0xFF) + gBattlerTarget = i; + else if (gBattlerTarget == i) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -7451,17 +7451,17 @@ static void atk84_jumpifcantmakeasleep(void) { const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (UproarWakeUpCheck(gBattleMoveTarget)) + if (UproarWakeUpCheck(gBattlerTarget)) { gBattlescriptCurrInstr = jumpPtr; } - else if (gBattleMons[gBattleMoveTarget].ability == ABILITY_INSOMNIA - || gBattleMons[gBattleMoveTarget].ability == ABILITY_VITAL_SPIRIT) + else if (gBattleMons[gBattlerTarget].ability == ABILITY_INSOMNIA + || gBattleMons[gBattlerTarget].ability == ABILITY_VITAL_SPIRIT) { - gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattlescriptCurrInstr = jumpPtr; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } else { @@ -7471,16 +7471,16 @@ static void atk84_jumpifcantmakeasleep(void) static void atk85_stockpile(void) { - if (gDisableStructs[gBattleMoveAttacker].stockpileCounter == 3) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 3) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gDisableStructs[gBattleMoveAttacker].stockpileCounter++; + gDisableStructs[gBattlerAttacker].stockpileCounter++; - PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattleMoveAttacker].stockpileCounter) + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattlerAttacker].stockpileCounter) gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -7490,7 +7490,7 @@ static void atk85_stockpile(void) static void atk86_stockpiletobasedamage(void) { const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBattleMoveAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; } @@ -7498,17 +7498,17 @@ static void atk86_stockpiletobasedamage(void) { if (gBattleCommunication[6] != 1) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveTarget], gCurrentMove, - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)], 0, - 0, gBattleMoveAttacker, gBattleMoveTarget) - * gDisableStructs[gBattleMoveAttacker].stockpileCounter; - gBattleScripting.animTurn = gDisableStructs[gBattleMoveAttacker].stockpileCounter; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, + gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)], 0, + 0, gBattlerAttacker, gBattlerTarget) + * gDisableStructs[gBattlerAttacker].stockpileCounter; + gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; - if (gProtectStructs[gBattleMoveAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; } - gDisableStructs[gBattleMoveAttacker].stockpileCounter = 0; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; } } @@ -7517,30 +7517,30 @@ static void atk87_stockpiletohpheal(void) { const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - if (gDisableStructs[gBattleMoveAttacker].stockpileCounter == 0) + if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { gBattlescriptCurrInstr = jumpPtr; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } - else if (gBattleMons[gBattleMoveAttacker].maxHP == gBattleMons[gBattleMoveAttacker].hp) + else if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp) { - gDisableStructs[gBattleMoveAttacker].stockpileCounter = 0; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr = jumpPtr; - gBattleMoveTarget = gBattleMoveAttacker; + gBattlerTarget = gBattlerAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / (1 << (3 - gDisableStructs[gBattleMoveAttacker].stockpileCounter)); + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / (1 << (3 - gDisableStructs[gBattlerAttacker].stockpileCounter)); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattleScripting.animTurn = gDisableStructs[gBattleMoveAttacker].stockpileCounter; - gDisableStructs[gBattleMoveAttacker].stockpileCounter = 0; + gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; + gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gBattlescriptCurrInstr += 5; - gBattleMoveTarget = gBattleMoveAttacker; + gBattlerTarget = gBattlerAttacker; } } @@ -7560,9 +7560,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) u32 index; if (flags & MOVE_EFFECT_AFFECTS_USER) - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; else - gActiveBattler = gBattleMoveTarget; + gActiveBattler = gBattlerTarget; flags &= ~(MOVE_EFFECT_AFFECTS_USER); @@ -7678,7 +7678,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleMoveTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } } @@ -7705,7 +7705,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) if (gBattleMons[gActiveBattler].statStages[statId] == 0xC) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else - gBattleCommunication[MULTISTRING_CHOOSER] = (gBattleMoveTarget == gActiveBattler); + gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); } gBattleMons[gActiveBattler].statStages[statId] += statValue; @@ -7745,17 +7745,17 @@ static void atk8A_normalisebuffs(void) // haze static void atk8B_setbide(void) { - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBattleMoveAttacker] = gCurrentMove; - gTakenDmg[gBattleMoveAttacker] = 0; - gBattleMons[gBattleMoveAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattlerAttacker] = gCurrentMove; + gTakenDmg[gBattlerAttacker] = 0; + gBattleMons[gBattlerAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns gBattlescriptCurrInstr++; } static void atk8C_confuseifrepeatingattackends(void) { - if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_LOCK_CONFUSE)) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE)) gBattleCommunication[MOVE_EFFECT_BYTE] = (MOVE_EFFECT_THRASH | MOVE_EFFECT_AFFECTS_USER); gBattlescriptCurrInstr++; @@ -7788,19 +7788,19 @@ static void atk8E_initmultihitstring(void) static bool8 TryDoForceSwitchOut(void) { - if (gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) + if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) { - *(gBattleStruct->field_58 + gBattleMoveTarget) = gBattlerPartyIndexes[gBattleMoveTarget]; + *(gBattleStruct->field_58 + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } else { u16 random = Random() & 0xFF; - if ((u32)((random * (gBattleMons[gBattleMoveAttacker].level + gBattleMons[gBattleMoveTarget].level) >> 8) + 1) <= (gBattleMons[gBattleMoveTarget].level / 4)) + if ((u32)((random * (gBattleMons[gBattlerAttacker].level + gBattleMons[gBattlerTarget].level) >> 8) + 1) <= (gBattleMons[gBattlerTarget].level / 4)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); return FALSE; } - *(gBattleStruct->field_58 + gBattleMoveTarget) = gBattlerPartyIndexes[gBattleMoveTarget]; + *(gBattleStruct->field_58 + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; @@ -7827,7 +7827,7 @@ static void atk8F_forcerandomswitch(void) if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -7836,7 +7836,7 @@ static void atk8F_forcerandomswitch(void) || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000) || (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)) { - if ((gBattleMoveTarget & BIT_FLANK) != 0) + if ((gBattlerTarget & BIT_FLANK) != 0) { firstMonId = 3; lastMonId = 6; @@ -7848,13 +7848,13 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; - bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattlerTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; } else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) { - if (sub_806D82C(GetBattlerMultiplayerId(gBattleMoveTarget)) == 1) + if (sub_806D82C(GetBattlerMultiplayerId(gBattlerTarget)) == 1) { firstMonId = 3; lastMonId = 6; @@ -7866,12 +7866,12 @@ static void atk8F_forcerandomswitch(void) } monsCount = 3; minNeeded = 1; - bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; - bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattlerTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) { firstMonId = 0; lastMonId = 6; @@ -7880,7 +7880,7 @@ static void atk8F_forcerandomswitch(void) } else { - if ((gBattleMoveTarget & BIT_FLANK) != 0) + if ((gBattlerTarget & BIT_FLANK) != 0) { firstMonId = 3; lastMonId = 6; @@ -7893,8 +7893,8 @@ static void atk8F_forcerandomswitch(void) monsCount = 3; minNeeded = 1; } - bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; - bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattlerTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7902,8 +7902,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 2; - bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; - bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget ^ BIT_FLANK]; + bank2PartyId = gBattlerPartyIndexes[gBattlerTarget]; + bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; } else { @@ -7911,8 +7911,8 @@ static void atk8F_forcerandomswitch(void) lastMonId = 6; monsCount = 6; minNeeded = 1; - bank2PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; // there is only one pokemon out in single battles - bank1PartyId = gBattlerPartyIndexes[gBattleMoveTarget]; + bank2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one pokemon out in single battles + bank1PartyId = gBattlerPartyIndexes[gBattlerTarget]; } for (i = firstMonId; i < lastMonId; i++) @@ -7944,22 +7944,22 @@ static void atk8F_forcerandomswitch(void) || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE || GetMonData(&party[i], MON_DATA_HP) == 0); } - *(gBattleStruct->monToSwitchIntoId + gBattleMoveTarget) = i; + *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i; if (!sub_81B1250()) - sub_803BDA0(gBattleMoveTarget); + sub_803BDA0(gBattlerTarget); if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) || (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - sub_81B8E80(gBattleMoveTarget, i, 0); - sub_81B8E80(gBattleMoveTarget ^ BIT_FLANK, i, 1); + sub_81B8E80(gBattlerTarget, i, 0); + sub_81B8E80(gBattlerTarget ^ BIT_FLANK, i, 1); } if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) - sub_80571DC(gBattleMoveTarget, i); + sub_80571DC(gBattlerTarget, i); } } else @@ -7976,7 +7976,7 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type while (validMoves < 4) { - if (gBattleMons[gBattleMoveAttacker].moves[validMoves] == 0) + if (gBattleMons[gBattlerAttacker].moves[validMoves] == 0) break; validMoves++; @@ -7984,17 +7984,17 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type for (moveChecked = 0; moveChecked < validMoves; moveChecked++) { - moveType = gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[moveChecked]].type; + moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type; if (moveType == TYPE_MYSTERY) { - if (gBattleMons[gBattleMoveAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleMoveAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST) moveType = TYPE_GHOST; else moveType = TYPE_NORMAL; } - if (moveType != gBattleMons[gBattleMoveAttacker].type1 - && moveType != gBattleMons[gBattleMoveAttacker].type2) + if (moveType != gBattleMons[gBattlerAttacker].type1 + && moveType != gBattleMons[gBattlerAttacker].type2) { break; } @@ -8011,20 +8011,20 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type while ((moveChecked = Random() & 3) >= validMoves); - moveType = gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[moveChecked]].type; + moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type; if (moveType == TYPE_MYSTERY) { - if (gBattleMons[gBattleMoveAttacker].type1 == TYPE_GHOST || gBattleMons[gBattleMoveAttacker].type2 == TYPE_GHOST) + if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST) moveType = TYPE_GHOST; else moveType = TYPE_NORMAL; } } - while (moveType == gBattleMons[gBattleMoveAttacker].type1 || moveType == gBattleMons[gBattleMoveAttacker].type2); + while (moveType == gBattleMons[gBattlerAttacker].type1 || moveType == gBattleMons[gBattlerAttacker].type2); - gBattleMons[gBattleMoveAttacker].type1 = moveType; - gBattleMons[gBattleMoveAttacker].type2 = moveType; + gBattleMons[gBattlerAttacker].type1 = moveType; + gBattleMons[gBattlerAttacker].type2 = moveType; PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType) @@ -8052,16 +8052,16 @@ static void atk91_givepaydaymoney(void) static void atk92_setlightscreen(void) { - if (gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] & SIDE_STATUS_LIGHTSCREEN) + if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].lightscreenTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].lightscreenBank = gBattleMoveAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_LIGHTSCREEN; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenBank = gBattlerAttacker; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; @@ -8076,72 +8076,72 @@ static void atk93_tryKO(void) { u8 holdEffect, param; - if (gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY) + if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY) { - holdEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect; - param = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; + holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect; + param = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { - holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattleMoveTarget].item); - param = ItemId_GetHoldEffectParam(gBattleMons[gBattleMoveTarget].item); + holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item); + param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item); } - gStringBank = gBattleMoveTarget; + gStringBattler = gBattlerTarget; if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param) { - RecordItemEffectBattle(gBattleMoveTarget, HOLD_EFFECT_FOCUS_BAND); - gSpecialStatuses[gBattleMoveTarget].focusBanded = 1; + RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_FOCUS_BAND); + gSpecialStatuses[gBattlerTarget].focusBanded = 1; } - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_STURDY) + if (gBattleMons[gBattlerTarget].ability == ABILITY_STURDY) { gMoveResultFlags |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO; - RecordAbilityBattle(gBattleMoveTarget, ABILITY_STURDY); + RecordAbilityBattle(gBattlerTarget, ABILITY_STURDY); } else { u16 chance; - if (!(gStatuses3[gBattleMoveTarget] & STATUS3_ALWAYS_HITS)) + if (!(gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS)) { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleMoveAttacker].level - gBattleMons[gBattleMoveTarget].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) chance = TRUE; else chance = FALSE; } - else if (gDisableStructs[gBattleMoveTarget].bankWithSureHit == gBattleMoveAttacker - && gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) + else if (gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker + && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) { chance = TRUE; } else { - chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattleMoveAttacker].level - gBattleMons[gBattleMoveTarget].level); - if (Random() % 100 + 1 < chance && gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) + chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level); + if (Random() % 100 + 1 < chance && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) chance = TRUE; else chance = FALSE; } if (chance) { - if (gProtectStructs[gBattleMoveTarget].endured) + if (gProtectStructs[gBattlerTarget].endured) { - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; } - else if (gSpecialStatuses[gBattleMoveTarget].focusBanded) + else if (gSpecialStatuses[gBattlerTarget].focusBanded) { - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - 1; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattleMoveTarget].item; + gLastUsedItem = gBattleMons[gBattlerTarget].item; } else { - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp; gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO; } gBattlescriptCurrInstr += 5; @@ -8149,7 +8149,7 @@ static void atk93_tryKO(void) else { gMoveResultFlags |= MOVE_RESULT_MISSED; - if (gBattleMons[gBattleMoveAttacker].level >= gBattleMons[gBattleMoveTarget].level) + if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8160,7 +8160,7 @@ static void atk93_tryKO(void) static void atk94_damagetohalftargethp(void) // super fang { - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -8189,17 +8189,17 @@ static void atk96_weatherdamage(void) { if (gBattleWeather & WEATHER_SANDSTORM_ANY) { - if (gBattleMons[gBattleMoveAttacker].type1 != TYPE_ROCK - && gBattleMons[gBattleMoveAttacker].type1 != TYPE_STEEL - && gBattleMons[gBattleMoveAttacker].type1 != TYPE_GROUND - && gBattleMons[gBattleMoveAttacker].type2 != TYPE_ROCK - && gBattleMons[gBattleMoveAttacker].type2 != TYPE_STEEL - && gBattleMons[gBattleMoveAttacker].type2 != TYPE_GROUND - && gBattleMons[gBattleMoveAttacker].ability != ABILITY_SAND_VEIL - && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERGROUND) - && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERWATER)) - { - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 16; + if (gBattleMons[gBattlerAttacker].type1 != TYPE_ROCK + && gBattleMons[gBattlerAttacker].type1 != TYPE_STEEL + && gBattleMons[gBattlerAttacker].type1 != TYPE_GROUND + && gBattleMons[gBattlerAttacker].type2 != TYPE_ROCK + && gBattleMons[gBattlerAttacker].type2 != TYPE_STEEL + && gBattleMons[gBattlerAttacker].type2 != TYPE_GROUND + && gBattleMons[gBattlerAttacker].ability != ABILITY_SAND_VEIL + && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) + { + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -8210,12 +8210,12 @@ static void atk96_weatherdamage(void) } if (gBattleWeather & WEATHER_HAIL) { - if (gBattleMons[gBattleMoveAttacker].type1 != TYPE_ICE - && gBattleMons[gBattleMoveAttacker].type2 != TYPE_ICE - && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERGROUND) - && !(gStatuses3[gBattleMoveAttacker] & STATUS3_UNDERWATER)) + if (gBattleMons[gBattlerAttacker].type1 != TYPE_ICE + && gBattleMons[gBattlerAttacker].type2 != TYPE_ICE + && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) + && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) { - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; } @@ -8230,7 +8230,7 @@ static void atk96_weatherdamage(void) gBattleMoveDamage = 0; } - if (gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]) + if (gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) gBattleMoveDamage = 0; gBattlescriptCurrInstr++; @@ -8242,15 +8242,15 @@ static void atk97_tryinfatuating(void) u16 speciesAttacker, speciesTarget; u32 personalityAttacker, personalityTarget; - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) - monAttacker = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + monAttacker = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else - monAttacker = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; + monAttacker = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]]; - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) - monTarget = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveTarget]]; + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) + monTarget = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else - monTarget = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]]; + monTarget = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]; speciesAttacker = GetMonData(monAttacker, MON_DATA_SPECIES); personalityAttacker = GetMonData(monAttacker, MON_DATA_PERSONALITY); @@ -8258,16 +8258,16 @@ static void atk97_tryinfatuating(void) speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES); personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY); - if (gBattleMons[gBattleMoveTarget].ability == ABILITY_OBLIVIOUS) + if (gBattleMons[gBattlerTarget].ability == ABILITY_OBLIVIOUS) { gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction; gLastUsedAbility = ABILITY_OBLIVIOUS; - RecordAbilityBattle(gBattleMoveTarget, ABILITY_OBLIVIOUS); + RecordAbilityBattle(gBattlerTarget, ABILITY_OBLIVIOUS); } else { if (GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) - || gBattleMons[gBattleMoveTarget].status2 & STATUS2_INFATUATION + || gBattleMons[gBattlerTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS || GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS) { @@ -8275,7 +8275,7 @@ static void atk97_tryinfatuating(void) } else { - gBattleMons[gBattleMoveTarget].status2 |= STATUS2_INFATUATED_WITH(gBattleMoveAttacker); + gBattleMons[gBattlerTarget].status2 |= STATUS2_INFATUATED_WITH(gBattlerAttacker); gBattlescriptCurrInstr += 5; } } @@ -8295,7 +8295,7 @@ static void atk98_updatestatusicon(void) } else { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); @@ -8303,7 +8303,7 @@ static void atk98_updatestatusicon(void) } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); @@ -8316,16 +8316,16 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].mistTimer) + if (gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].mistTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].mistBank = gBattleMoveAttacker; - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_MIST; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistBank = gBattlerAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8333,14 +8333,14 @@ static void atk99_setmist(void) static void atk9A_setfocusenergy(void) { - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_FOCUS_ENERGY) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } gBattlescriptCurrInstr++; @@ -8350,8 +8350,8 @@ static void atk9B_transformdataexecution(void) { gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_TRANSFORMED - || gStatuses3[gBattleMoveTarget] & STATUS3_SEMI_INVULNERABLE) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TRANSFORMED + || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) { gMoveResultFlags |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -8361,29 +8361,29 @@ static void atk9B_transformdataexecution(void) s32 i; u8 *battleMonAttacker, *battleMonTarget; - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_TRANSFORMED; - gDisableStructs[gBattleMoveAttacker].disabledMove = 0; - gDisableStructs[gBattleMoveAttacker].disableTimer1 = 0; - gDisableStructs[gBattleMoveAttacker].transformedMonPersonality = gBattleMons[gBattleMoveTarget].personality; - gDisableStructs[gBattleMoveAttacker].unk18_b = 0; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED; + gDisableStructs[gBattlerAttacker].disabledMove = 0; + gDisableStructs[gBattlerAttacker].disableTimer1 = 0; + gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality; + gDisableStructs[gBattlerAttacker].unk18_b = 0; - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveTarget].species) + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].species) - battleMonAttacker = (u8*)(&gBattleMons[gBattleMoveAttacker]); - battleMonTarget = (u8*)(&gBattleMons[gBattleMoveTarget]); + battleMonAttacker = (u8*)(&gBattleMons[gBattlerAttacker]); + battleMonTarget = (u8*)(&gBattleMons[gBattlerTarget]); for (i = 0; i < offsetof(struct BattlePokemon, pp); i++) battleMonAttacker[i] = battleMonTarget[i]; for (i = 0; i < 4; i++) { - if (gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[i]].pp < 5) - gBattleMons[gBattleMoveAttacker].pp[i] = gBattleMoves[gBattleMons[gBattleMoveAttacker].moves[i]].pp; + if (gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].pp < 5) + gBattleMons[gBattlerAttacker].pp[i] = gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].pp; else - gBattleMons[gBattleMoveAttacker].pp[i] = 5; + gBattleMons[gBattlerAttacker].pp[i] = 5; } - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -8392,24 +8392,24 @@ static void atk9B_transformdataexecution(void) static void atk9C_setsubstitute(void) { - u32 hp = gBattleMons[gBattleMoveAttacker].maxHP / 4; - if (gBattleMons[gBattleMoveAttacker].maxHP / 4 == 0) + u32 hp = gBattleMons[gBattlerAttacker].maxHP / 4; + if (gBattleMons[gBattlerAttacker].maxHP / 4 == 0) hp = 1; - if (gBattleMons[gBattleMoveAttacker].hp <= hp) + if (gBattleMons[gBattlerAttacker].hp <= hp) { gBattleMoveDamage = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_SUBSTITUTE; - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_WRAPPED); - gDisableStructs[gBattleMoveAttacker].substituteHP = gBattleMoveDamage; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE; + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); + gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -8430,10 +8430,10 @@ static void atk9D_mimicattackcopy(void) { gChosenMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gLastMoves[gBattleMoveTarget]) - || gBattleMons[gBattleMoveAttacker].status2 & STATUS2_TRANSFORMED - || gLastMoves[gBattleMoveTarget] == 0 - || gLastMoves[gBattleMoveTarget] == 0xFFFF) + if (IsMoveUncopyableByMimic(gLastMoves[gBattlerTarget]) + || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED + || gLastMoves[gBattlerTarget] == 0 + || gLastMoves[gBattlerTarget] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8443,22 +8443,22 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleMoveAttacker].moves[i] == gLastMoves[gBattleMoveTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gLastMoves[gBattlerTarget]) break; } if (i == 4) { - gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos] = gLastMoves[gBattleMoveTarget]; - if (gBattleMoves[gLastMoves[gBattleMoveTarget]].pp < 5) - gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattleMoveTarget]].pp; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastMoves[gBattlerTarget]; + if (gBattleMoves[gLastMoves[gBattlerTarget]].pp < 5) + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattlerTarget]].pp; else - gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = 5; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleMoveTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattlerTarget]) - gDisableStructs[gBattleMoveAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; } else @@ -8494,7 +8494,7 @@ static void atk9E_metronome(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; - gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); return; } } @@ -8502,7 +8502,7 @@ static void atk9E_metronome(void) static void atk9F_dmgtolevel(void) { - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].level; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level; gBattlescriptCurrInstr++; } @@ -8513,54 +8513,54 @@ static void atkA0_psywavedamageeffect(void) while ((randDamage = (Random() & 0xF)) > 10); randDamage *= 10; - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].level * (randDamage + 50) / 100; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (randDamage + 50) / 100; gBattlescriptCurrInstr++; } static void atkA1_counterdamagecalculator(void) { - u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); - u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleMoveAttacker].physicalBank); + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); + u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].physicalBank); - if (gProtectStructs[gBattleMoveAttacker].physicalDmg + if (gProtectStructs[gBattlerAttacker].physicalDmg && sideAttacker != sideTarget - && gBattleMons[gProtectStructs[gBattleMoveAttacker].physicalBank].hp) + && gBattleMons[gProtectStructs[gBattlerAttacker].physicalBank].hp) { - gBattleMoveDamage = gProtectStructs[gBattleMoveAttacker].physicalDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBattleMoveTarget = gSideTimers[sideTarget].followmeTarget; + gBattlerTarget = gSideTimers[sideTarget].followmeTarget; else - gBattleMoveTarget = gProtectStructs[gBattleMoveAttacker].physicalBank; + gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBank; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the physical -> special field changes { - u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); - u8 sideTarget = GetBattlerSide(gProtectStructs[gBattleMoveAttacker].specialBank); + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); + u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBank); - if (gProtectStructs[gBattleMoveAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattleMoveAttacker].specialBank].hp) + if (gProtectStructs[gBattlerAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattlerAttacker].specialBank].hp) { - gBattleMoveDamage = gProtectStructs[gBattleMoveAttacker].specialDmg * 2; + gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 2; if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp) - gBattleMoveTarget = gSideTimers[sideTarget].followmeTarget; + gBattlerTarget = gSideTimers[sideTarget].followmeTarget; else - gBattleMoveTarget = gProtectStructs[gBattleMoveAttacker].specialBank; + gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBank; gBattlescriptCurrInstr += 5; } else { - gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } @@ -8571,17 +8571,17 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleMoveTarget].moves[i] == gLastMoves[gBattleMoveTarget]) + if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget]) break; } - if (gDisableStructs[gBattleMoveTarget].disabledMove == 0 - && i != 4 && gBattleMons[gBattleMoveTarget].pp[i] != 0) + if (gDisableStructs[gBattlerTarget].disabledMove == 0 + && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0) { - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattleMoveTarget].moves[i]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].moves[i]) - gDisableStructs[gBattleMoveTarget].disabledMove = gBattleMons[gBattleMoveTarget].moves[i]; - gDisableStructs[gBattleMoveTarget].disableTimer1 = (Random() & 3) + 2; - gDisableStructs[gBattleMoveTarget].disableTimer2 = gDisableStructs[gBattleMoveTarget].disableTimer1; // used to save the random amount of turns? + gDisableStructs[gBattlerTarget].disabledMove = gBattleMons[gBattlerTarget].moves[i]; + gDisableStructs[gBattlerTarget].disableTimer1 = (Random() & 3) + 2; + gDisableStructs[gBattlerTarget].disableTimer2 = gDisableStructs[gBattlerTarget].disableTimer1; // used to save the random amount of turns? gBattlescriptCurrInstr += 5; } else @@ -8596,24 +8596,24 @@ static void atkA4_trysetencore(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleMoveTarget].moves[i] == gLastMoves[gBattleMoveTarget]) + if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget]) break; } - if (gLastMoves[gBattleMoveTarget] == MOVE_STRUGGLE - || gLastMoves[gBattleMoveTarget] == MOVE_ENCORE - || gLastMoves[gBattleMoveTarget] == MOVE_MIRROR_MOVE) + if (gLastMoves[gBattlerTarget] == MOVE_STRUGGLE + || gLastMoves[gBattlerTarget] == MOVE_ENCORE + || gLastMoves[gBattlerTarget] == MOVE_MIRROR_MOVE) { i = 4; } - if (gDisableStructs[gBattleMoveTarget].encoredMove == 0 - && i != 4 && gBattleMons[gBattleMoveTarget].pp[i] != 0) + if (gDisableStructs[gBattlerTarget].encoredMove == 0 + && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0) { - gDisableStructs[gBattleMoveTarget].encoredMove = gBattleMons[gBattleMoveTarget].moves[i]; - gDisableStructs[gBattleMoveTarget].encoredMovePos = i; - gDisableStructs[gBattleMoveTarget].encoreTimer1 = (Random() & 3) + 3; - gDisableStructs[gBattleMoveTarget].encoreTimer2 = gDisableStructs[gBattleMoveTarget].encoreTimer1; + gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i]; + gDisableStructs[gBattlerTarget].encoredMovePos = i; + gDisableStructs[gBattlerTarget].encoreTimer1 = (Random() & 3) + 3; + gDisableStructs[gBattlerTarget].encoreTimer2 = gDisableStructs[gBattlerTarget].encoreTimer1; gBattlescriptCurrInstr += 5; } else @@ -8624,10 +8624,10 @@ static void atkA4_trysetencore(void) static void atkA5_painsplitdmgcalc(void) { - if (!(gBattleMons[gBattleMoveTarget].status2 & STATUS2_SUBSTITUTE)) + if (!(gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)) { - s32 hpDiff = (gBattleMons[gBattleMoveAttacker].hp + gBattleMons[gBattleMoveTarget].hp) / 2; - s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - hpDiff; + s32 hpDiff = (gBattleMons[gBattlerAttacker].hp + gBattleMons[gBattlerTarget].hp) / 2; + s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - hpDiff; u8* storeLoc = (void*)(&gBattleScripting.painSplitHp); storeLoc[0] = (painSplitHp); @@ -8635,8 +8635,8 @@ static void atkA5_painsplitdmgcalc(void) storeLoc[2] = (painSplitHp & 0x00FF0000) >> 16; storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].hp - hpDiff; - gSpecialStatuses[gBattleMoveTarget].moveturnLostHP = 0xFFFF; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hpDiff; + gSpecialStatuses[gBattlerTarget].moveturnLostHP = 0xFFFF; gBattlescriptCurrInstr += 5; } @@ -8648,13 +8648,13 @@ static void atkA5_painsplitdmgcalc(void) static void atkA6_settypetorandomresistance(void) // conversion 2 { - if (gLastLandedMoves[gBattleMoveAttacker] == 0 - || gLastLandedMoves[gBattleMoveAttacker] == 0xFFFF) + if (gLastLandedMoves[gBattlerAttacker] == 0 + || gLastLandedMoves[gBattlerAttacker] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } - else if (IsTwoTurnsMove(gLastLandedMoves[gBattleMoveAttacker]) - && gBattleMons[gLastHitBy[gBattleMoveAttacker]].status2 & STATUS2_MULTIPLETURNS) + else if (IsTwoTurnsMove(gLastLandedMoves[gBattlerAttacker]) + && gBattleMons[gLastHitBy[gBattlerAttacker]].status2 & STATUS2_MULTIPLETURNS) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8668,13 +8668,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 i *= 3; - if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBattleMoveAttacker] + if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBattlerAttacker] && TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE - && gBattleMons[gBattleMoveAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) - && gBattleMons[gBattleMoveAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) + && gBattleMons[gBattlerAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) + && gBattleMons[gBattlerAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) { - gBattleMons[gBattleMoveAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i); - gBattleMons[gBattleMoveAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i); + gBattleMons[gBattlerAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i); + gBattleMons[gBattlerAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i); PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(i)) @@ -8691,13 +8691,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 case TYPE_FORESIGHT: break; default: - if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBattleMoveAttacker] - && TYPE_EFFECT_MULTIPLIER(j) <= 5 - && gBattleMons[gBattleMoveAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) - && gBattleMons[gBattleMoveAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) + if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBattlerAttacker] + && TYPE_EFFECT_MULTIPLIER(j) <= 5 + && gBattleMons[gBattlerAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) + && gBattleMons[gBattlerAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) { - gBattleMons[gBattleMoveAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands); - gBattleMons[gBattleMoveAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands); + gBattleMons[gBattlerAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands); + gBattleMons[gBattlerAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands); PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(rands)) @@ -8714,9 +8714,9 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 static void atkA7_setalwayshitflag(void) { - gStatuses3[gBattleMoveTarget] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[gBattleMoveTarget] |= 0x10; - gDisableStructs[gBattleMoveTarget].bankWithSureHit = gBattleMoveAttacker; + gStatuses3[gBattlerTarget] &= ~(STATUS3_ALWAYS_HITS); + gStatuses3[gBattlerTarget] |= 0x10; + gDisableStructs[gBattlerTarget].battlerWithSureHit = gBattlerAttacker; gBattlescriptCurrInstr++; } @@ -8724,19 +8724,19 @@ static void atkA8_copymovepermanently(void) // sketch { gChosenMove = 0xFFFF; - if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_TRANSFORMED) - && gLastPrintedMoves[gBattleMoveTarget] != MOVE_STRUGGLE - && gLastPrintedMoves[gBattleMoveTarget] != 0 - && gLastPrintedMoves[gBattleMoveTarget] != 0xFFFF - && gLastPrintedMoves[gBattleMoveTarget] != MOVE_SKETCH) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) + && gLastPrintedMoves[gBattlerTarget] != MOVE_STRUGGLE + && gLastPrintedMoves[gBattlerTarget] != 0 + && gLastPrintedMoves[gBattlerTarget] != 0xFFFF + && gLastPrintedMoves[gBattlerTarget] != MOVE_SKETCH) { s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleMoveAttacker].moves[i] == MOVE_SKETCH) + if (gBattleMons[gBattlerAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBattleMoveAttacker].moves[i] == gLastPrintedMoves[gBattleMoveTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gLastPrintedMoves[gBattlerTarget]) break; } @@ -8748,21 +8748,21 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattleMoveTarget]; - gBattleMons[gBattleMoveAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattleMoveTarget]].pp; - gActiveBattler = gBattleMoveAttacker; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattlerTarget]; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattlerTarget]].pp; + gActiveBattler = gBattlerAttacker; for (i = 0; i < 4; i++) { - movePpData.moves[i] = gBattleMons[gBattleMoveAttacker].moves[i]; - movePpData.pp[i] = gBattleMons[gBattleMoveAttacker].pp[i]; + movePpData.moves[i] = gBattleMons[gBattlerAttacker].moves[i]; + movePpData.pp[i] = gBattleMons[gBattlerAttacker].pp[i]; } - movePpData.ppBonuses = gBattleMons[gBattleMoveAttacker].ppBonuses; + movePpData.ppBonuses = gBattleMons[gBattlerAttacker].ppBonuses; BtlController_EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); MarkBattlerForControllerExec(gActiveBattler); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattleMoveTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattlerTarget]) gBattlescriptCurrInstr += 5; } @@ -8822,17 +8822,17 @@ static void atkA9_trychoosesleeptalkmove(void) for (i = 0; i < 4; i++) { - if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBattleMoveAttacker].moves[i]) - || gBattleMons[gBattleMoveAttacker].moves[i] == MOVE_FOCUS_PUNCH - || gBattleMons[gBattleMoveAttacker].moves[i] == MOVE_UPROAR - || IsTwoTurnsMove(gBattleMons[gBattleMoveAttacker].moves[i])) + if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBattlerAttacker].moves[i]) + || gBattleMons[gBattlerAttacker].moves[i] == MOVE_FOCUS_PUNCH + || gBattleMons[gBattlerAttacker].moves[i] == MOVE_UPROAR + || IsTwoTurnsMove(gBattleMons[gBattlerAttacker].moves[i])) { unusableMovesBits |= gBitTable[i]; } } - unusableMovesBits = CheckMoveLimitations(gBattleMoveAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); + unusableMovesBits = CheckMoveLimitations(gBattlerAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP)); if (unusableMovesBits == 0xF) // all 4 moves cannot be chosen { gBattlescriptCurrInstr += 5; @@ -8846,25 +8846,25 @@ static void atkA9_trychoosesleeptalkmove(void) movePosition = Random() & 3; } while ((gBitTable[movePosition] & unusableMovesBits)); - gRandomMove = gBattleMons[gBattleMoveAttacker].moves[movePosition]; + gRandomMove = gBattleMons[gBattlerAttacker].moves[movePosition]; gCurrMovePos = movePosition; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBattleMoveTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } } static void atkAA_setdestinybond(void) { - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_DESTINY_BOND; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } static void TrySetDestinyBondToHappen(void) { - u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); - u8 sideTarget = GetBattlerSide(gBattleMoveTarget); - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_DESTINY_BOND + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); + u8 sideTarget = GetBattlerSide(gBattlerTarget); + if (gBattleMons[gBattlerTarget].status2 & STATUS2_DESTINY_BOND && sideAttacker != sideTarget && !(gHitMarker & HITMARKER_GRUDGE)) { @@ -8881,7 +8881,7 @@ static void atkAB_trysetdestinybondtohappen(void) static void atkAC_remaininghptopower(void) { s32 i; - s32 hpFraction = GetScaledHPFraction(gBattleMons[gBattleMoveAttacker].hp, gBattleMons[gBattleMoveAttacker].maxHP, 48); + s32 hpFraction = GetScaledHPFraction(gBattleMons[gBattlerAttacker].hp, gBattleMons[gBattlerAttacker].maxHP, 48); for (i = 0; i < (s32) sizeof(sFlailHpScaleToPowerTable); i += 2) { @@ -8895,31 +8895,31 @@ static void atkAC_remaininghptopower(void) static void atkAD_tryspiteppreduce(void) { - if (gLastMoves[gBattleMoveTarget] != 0 - && gLastMoves[gBattleMoveTarget] != 0xFFFF) + if (gLastMoves[gBattlerTarget] != 0 + && gLastMoves[gBattlerTarget] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gLastMoves[gBattleMoveTarget] == gBattleMons[gBattleMoveTarget].moves[i]) + if (gLastMoves[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i]) break; } - if (i != 4 && gBattleMons[gBattleMoveTarget].pp[i] > 1) + if (i != 4 && gBattleMons[gBattlerTarget].pp[i] > 1) { s32 ppToDeduct = (Random() & 3) + 2; - if (gBattleMons[gBattleMoveTarget].pp[i] < ppToDeduct) - ppToDeduct = gBattleMons[gBattleMoveTarget].pp[i]; + if (gBattleMons[gBattlerTarget].pp[i] < ppToDeduct) + ppToDeduct = gBattleMons[gBattlerTarget].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattleMoveTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattlerTarget]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 1, ppToDeduct) - gBattleMons[gBattleMoveTarget].pp[i] -= ppToDeduct; - gActiveBattler = gBattleMoveTarget; + gBattleMons[gBattlerTarget].pp[i] -= ppToDeduct; + gActiveBattler = gBattlerTarget; if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) @@ -8930,8 +8930,8 @@ static void atkAD_tryspiteppreduce(void) gBattlescriptCurrInstr += 5; - if (gBattleMons[gBattleMoveTarget].pp[i] == 0) - CancelMultiTurnMoves(gBattleMoveTarget); + if (gBattleMons[gBattlerTarget].pp[i] == 0) + CancelMultiTurnMoves(gBattlerTarget); } else { @@ -8956,23 +8956,23 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBattleMoveAttacker].ability != ABILITY_SOUNDPROOF) + if (gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBattleMoveAttacker].status1 = 0; - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); } else { - RecordAbilityBattle(gBattleMoveAttacker, gBattleMons[gBattleMoveAttacker].ability); + RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability); gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); + gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) @@ -8998,8 +8998,8 @@ static void atkAE_healpartystatus(void) { u8 ability; - if (gBattlerPartyIndexes[gBattleMoveAttacker] == i) - ability = gBattleMons[gBattleMoveAttacker].ability; + if (gBattlerPartyIndexes[gBattlerAttacker] == i) + ability = gBattleMons[gBattlerAttacker].ability; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[gActiveBattler] == i && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) @@ -9017,10 +9017,10 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = 4; toHeal = 0x3F; - gBattleMons[gBattleMoveAttacker].status1 = 0; - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { @@ -9032,7 +9032,7 @@ static void atkAE_healpartystatus(void) if (toHeal) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero); MarkBattlerForControllerExec(gActiveBattler); } @@ -9042,14 +9042,14 @@ static void atkAE_healpartystatus(void) static void atkAF_cursetarget(void) { - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_CURSED) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CURSED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBattleMoveTarget].status2 |= STATUS2_CURSED; - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 2; + gBattleMons[gBattlerTarget].status2 |= STATUS2_CURSED; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9059,11 +9059,11 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { - u8 targetSide = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; + u8 targetSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[targetSide].spikesAmount == 3) { - gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].flag20 = 1; gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else @@ -9076,7 +9076,7 @@ static void atkB0_trysetspikes(void) static void atkB1_setforesight(void) { - gBattleMons[gBattleMoveTarget].status2 |= STATUS2_FORESIGHT; + gBattleMons[gBattlerTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } @@ -9100,7 +9100,7 @@ static void atkB2_trysetperishsong(void) } } - PressurePPLoseOnUsingPerishSong(gBattleMoveAttacker); + PressurePPLoseOnUsingPerishSong(gBattlerAttacker); if (notAffectedCount == gBattlersCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -9112,31 +9112,31 @@ static void atkB3_rolloutdamagecalculation(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - CancelMultiTurnMoves(gBattleMoveAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { s32 i; - if (!(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit { - gDisableStructs[gBattleMoveAttacker].rolloutCounter1 = 5; - gDisableStructs[gBattleMoveAttacker].rolloutCounter2 = 5; - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMoves[gBattleMoveAttacker] = gCurrentMove; + gDisableStructs[gBattlerAttacker].rolloutCounter1 = 5; + gDisableStructs[gBattlerAttacker].rolloutCounter2 = 5; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; + gLockedMoves[gBattlerAttacker] = gCurrentMove; } - if (--gDisableStructs[gBattleMoveAttacker].rolloutCounter1 == 0) // last hit + if (--gDisableStructs[gBattlerAttacker].rolloutCounter1 == 0) // last hit { - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); } gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < (5 - gDisableStructs[gBattleMoveAttacker].rolloutCounter1); i++) + for (i = 1; i < (5 - gDisableStructs[gBattlerAttacker].rolloutCounter1); i++) gDynamicBasePower *= 2; - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_DEFENSE_CURL) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_DEFENSE_CURL) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -9145,8 +9145,8 @@ static void atkB3_rolloutdamagecalculation(void) static void atkB4_jumpifconfusedandstatmaxed(void) { - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_CONFUSION - && gBattleMons[gBattleMoveTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION + && gBattleMons[gBattlerTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -9156,19 +9156,19 @@ static void atkB5_furycuttercalc(void) { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gDisableStructs[gBattleMoveAttacker].furyCutterCounter = 0; + gDisableStructs[gBattlerAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { s32 i; - if (gDisableStructs[gBattleMoveAttacker].furyCutterCounter != 5) - gDisableStructs[gBattleMoveAttacker].furyCutterCounter++; + if (gDisableStructs[gBattlerAttacker].furyCutterCounter != 5) + gDisableStructs[gBattlerAttacker].furyCutterCounter++; gDynamicBasePower = gBattleMoves[gCurrentMove].power; - for (i = 1; i < gDisableStructs[gBattleMoveAttacker].furyCutterCounter; i++) + for (i = 1; i < gDisableStructs[gBattlerAttacker].furyCutterCounter; i++) gDynamicBasePower *= 2; gBattlescriptCurrInstr++; @@ -9178,9 +9178,9 @@ static void atkB5_furycuttercalc(void) static void atkB6_happinesstodamagecalculation(void) { if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) - gDynamicBasePower = 10 * (gBattleMons[gBattleMoveAttacker].friendship) / 25; + gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25; else // EFFECT_FRUSTRATION - gDynamicBasePower = 10 * (255 - gBattleMons[gBattleMoveAttacker].friendship) / 25; + gDynamicBasePower = 10 * (255 - gBattleMons[gBattlerAttacker].friendship) / 25; gBattlescriptCurrInstr++; } @@ -9197,14 +9197,14 @@ static void atkB7_presentdamagecalculation(void) gDynamicBasePower = 120; else { - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } if (rand < 204) gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; - else if (gBattleMons[gBattleMoveTarget].maxHP == gBattleMons[gBattleMoveTarget].hp) + else if (gBattleMons[gBattlerTarget].maxHP == gBattleMons[gBattlerTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else { @@ -9215,16 +9215,16 @@ static void atkB7_presentdamagecalculation(void) static void atkB8_setsafeguard(void) { - if (gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] & SIDE_STATUS_SAFEGUARD) + if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveAttacker)] |= SIDE_STATUS_SAFEGUARD; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].safeguardTimer = 5; - gSideTimers[GET_BATTLER_SIDE(gBattleMoveAttacker)].safeguardBank = gBattleMoveAttacker; + gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_SAFEGUARD; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardTimer = 5; + gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardBank = gBattlerAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -9274,11 +9274,11 @@ static void atkB9_magnitudedamagecalculation(void) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 2, magnitude) - for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBattleMoveTarget == gBattleMoveAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) // a valid target was found + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) // a valid target was found break; } @@ -9289,36 +9289,36 @@ static void atkBA_jumpifnopursuitswitchdmg(void) { if (gMultiHitCounter == 1) { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); } else { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gActionForBanks[gBattleMoveTarget] == ACTION_USE_MOVE - && gBattleMoveAttacker == *(gBattleStruct->moveTarget + gBattleMoveTarget) - && !(gBattleMons[gBattleMoveTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) - && gBattleMons[gBattleMoveAttacker].hp - && !gDisableStructs[gBattleMoveTarget].truantCounter - && gChosenMovesByBanks[gBattleMoveTarget] == MOVE_PURSUIT) + if (gChosenActionByBattler[gBattlerTarget] == B_ACTION_USE_MOVE + && gBattlerAttacker == *(gBattleStruct->moveTarget + gBattlerTarget) + && !(gBattleMons[gBattlerTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + && gBattleMons[gBattlerAttacker].hp + && !gDisableStructs[gBattlerTarget].truantCounter + && gChosenMoveByBattler[gBattlerTarget] == MOVE_PURSUIT) { s32 i; for (i = 0; i < gBattlersCount; i++) { - if (gBattleTurnOrder[i] == gBattleMoveTarget) + if (gBattleTurnOrder[i] == gBattlerTarget) gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; - gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattleMoveTarget); + gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattlerTarget); gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); @@ -9348,16 +9348,16 @@ static void atkBB_setsunny(void) static void atkBC_maxattackhalvehp(void) // belly drum { - u32 halfHp = gBattleMons[gBattleMoveAttacker].maxHP / 2; + u32 halfHp = gBattleMons[gBattlerAttacker].maxHP / 2; - if (!(gBattleMons[gBattleMoveAttacker].maxHP / 2)) + if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) halfHp = 1; - if (gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ATK] < 12 - && gBattleMons[gBattleMoveAttacker].hp > halfHp) + if (gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] < 12 + && gBattleMons[gBattlerAttacker].hp > halfHp) { - gBattleMons[gBattleMoveAttacker].statStages[STAT_STAGE_ATK] = 12; - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 2; + gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] = 12; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9375,7 +9375,7 @@ static void atkBD_copyfoestats(void) // psych up for (i = 0; i < BATTLE_STATS_NO; i++) { - gBattleMons[gBattleMoveAttacker].statStages[i] = gBattleMons[gBattleMoveTarget].statStages[i]; + gBattleMons[gBattlerAttacker].statStages[i] = gBattleMons[gBattlerTarget].statStages[i]; } gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter. @@ -9383,32 +9383,32 @@ static void atkBD_copyfoestats(void) // psych up static void atkBE_rapidspinfree(void) { - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_WRAPPED) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_WRAPPED) { - gBattleScripting.battler = gBattleMoveTarget; - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_WRAPPED); - gBattleMoveTarget = *(gBattleStruct->wrappedBy + gBattleMoveAttacker); + gBattleScripting.battler = gBattlerTarget; + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); + gBattlerTarget = *(gBattleStruct->wrappedBy + gBattlerAttacker); gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff1[1] = B_BUFF_MOVE; - gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBattleMoveAttacker * 2 + 0); - gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBattleMoveAttacker * 2 + 1); + gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBattlerAttacker * 2 + 0); + gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBattlerAttacker * 2 + 1); gBattleTextBuff1[4] = B_BUFF_EOS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WrapFree; } - else if (gStatuses3[gBattleMoveAttacker] & STATUS3_LEECHSEED) + else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED) { - gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_LEECHSEED); - gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_LEECHSEED_BANK); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } - else if (gSideStatuses[GetBattlerSide(gBattleMoveAttacker)] & SIDE_STATUS_SPIKES) + else if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES) { - gSideStatuses[GetBattlerSide(gBattleMoveAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimers[GetBattlerSide(gBattleMoveAttacker)].spikesAmount = 0; + gSideStatuses[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES); + gSideTimers[GetBattlerSide(gBattlerAttacker)].spikesAmount = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -9420,22 +9420,22 @@ static void atkBE_rapidspinfree(void) static void atkBF_setdefensecurlbit(void) { - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_DEFENSE_CURL; + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; } static void atkC0_recoverbasedonsunlight(void) { - gBattleMoveTarget = gBattleMoveAttacker; + gBattlerTarget = gBattlerAttacker; - if (gBattleMons[gBattleMoveAttacker].hp != gBattleMons[gBattleMoveAttacker].maxHP) + if (gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP) { if (gBattleWeather == 0 || !WEATHER_HAS_EFFECT) - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; else if (gBattleWeather & WEATHER_SUN_ANY) - gBattleMoveDamage = 20 * gBattleMons[gBattleMoveAttacker].maxHP / 30; + gBattleMoveDamage = 20 * gBattleMons[gBattlerAttacker].maxHP / 30; else // not sunny weather - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 4; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -9455,19 +9455,19 @@ static void atkC1_hiddenpowercalc(void) u32 powerBits = 0; u32 typeBits = 0; - powerBits |= ((gBattleMons[gBattleMoveAttacker].hpIV & 2) >> 1); - powerBits |= ((gBattleMons[gBattleMoveAttacker].attackIV & 2) << 0); - powerBits |= ((gBattleMons[gBattleMoveAttacker].defenseIV & 2) << 1); - powerBits |= ((gBattleMons[gBattleMoveAttacker].speedIV & 2) << 2); - powerBits |= ((gBattleMons[gBattleMoveAttacker].spAttackIV & 2) << 3); - powerBits |= ((gBattleMons[gBattleMoveAttacker].spDefenseIV & 2) << 4); + powerBits |= ((gBattleMons[gBattlerAttacker].hpIV & 2) >> 1); + powerBits |= ((gBattleMons[gBattlerAttacker].attackIV & 2) << 0); + powerBits |= ((gBattleMons[gBattlerAttacker].defenseIV & 2) << 1); + powerBits |= ((gBattleMons[gBattlerAttacker].speedIV & 2) << 2); + powerBits |= ((gBattleMons[gBattlerAttacker].spAttackIV & 2) << 3); + powerBits |= ((gBattleMons[gBattlerAttacker].spDefenseIV & 2) << 4); - typeBits |= ((gBattleMons[gBattleMoveAttacker].hpIV & 1) << 0); - typeBits |= ((gBattleMons[gBattleMoveAttacker].attackIV & 1) << 1); - typeBits |= ((gBattleMons[gBattleMoveAttacker].defenseIV & 1) << 2); - typeBits |= ((gBattleMons[gBattleMoveAttacker].speedIV & 1) << 3); - typeBits |= ((gBattleMons[gBattleMoveAttacker].spAttackIV & 1) << 4); - typeBits |= ((gBattleMons[gBattleMoveAttacker].spDefenseIV & 1) << 5); + typeBits |= ((gBattleMons[gBattlerAttacker].hpIV & 1) << 0); + typeBits |= ((gBattleMons[gBattlerAttacker].attackIV & 1) << 1); + typeBits |= ((gBattleMons[gBattlerAttacker].defenseIV & 1) << 2); + typeBits |= ((gBattleMons[gBattlerAttacker].speedIV & 1) << 3); + typeBits |= ((gBattleMons[gBattlerAttacker].spAttackIV & 1) << 4); + typeBits |= ((gBattleMons[gBattlerAttacker].spDefenseIV & 1) << 5); gDynamicBasePower = (40 * powerBits) / 63 + 30; @@ -9490,7 +9490,7 @@ static void atkC1_hiddenpowercalc(void) mov r5, r8\n\ push {r5-r7}\n\ ldr r2, =gBattleMons\n\ - ldr r0, =gBattleMoveAttacker\n\ + ldr r0, =gBattlerAttacker\n\ ldrb r1, [r0]\n\ movs r0, 0x58\n\ adds r4, r1, 0\n\ @@ -9626,11 +9626,11 @@ _080544F0:\n\ static void atkC2_selectfirstvalidtarget(void) { - for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (gBattleMoveTarget == gBattleMoveAttacker) + if (gBattlerTarget == gBattlerAttacker) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } gBattlescriptCurrInstr++; @@ -9638,22 +9638,22 @@ static void atkC2_selectfirstvalidtarget(void) static void atkC3_trysetfutureattack(void) { - if (gWishFutureKnock.futureSightCounter[gBattleMoveTarget] != 0) + if (gWishFutureKnock.futureSightCounter[gBattlerTarget] != 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)] |= SIDE_STATUS_FUTUREATTACK; - gWishFutureKnock.futureSightMove[gBattleMoveTarget] = gCurrentMove; - gWishFutureKnock.futureSightAttacker[gBattleMoveTarget] = gBattleMoveAttacker; - gWishFutureKnock.futureSightCounter[gBattleMoveTarget] = 3; - gWishFutureKnock.futureSightDmg[gBattleMoveTarget] = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveTarget], gCurrentMove, - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)], 0, - 0, gBattleMoveAttacker, gBattleMoveTarget); + gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] |= SIDE_STATUS_FUTUREATTACK; + gWishFutureKnock.futureSightMove[gBattlerTarget] = gCurrentMove; + gWishFutureKnock.futureSightAttacker[gBattlerTarget] = gBattlerAttacker; + gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3; + gWishFutureKnock.futureSightDmg[gBattlerTarget] = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, + gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)], 0, + 0, gBattlerAttacker, gBattlerTarget); - if (gProtectStructs[gBattleMoveAttacker].helpingHand) - gWishFutureKnock.futureSightDmg[gBattleMoveTarget] = gWishFutureKnock.futureSightDmg[gBattleMoveTarget] * 15 / 10; + if (gProtectStructs[gBattlerAttacker].helpingHand) + gWishFutureKnock.futureSightDmg[gBattlerTarget] = gWishFutureKnock.futureSightDmg[gBattlerTarget] * 15 / 10; if (gCurrentMove == MOVE_DOOM_DESIRE) gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -9668,12 +9668,12 @@ static void atkC4_trydobeatup(void) { struct Pokemon *party; - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - if (gBattleMons[gBattleMoveTarget].hp == 0) + if (gBattleMons[gBattlerTarget].hp == 0) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -9690,16 +9690,16 @@ static void atkC4_trydobeatup(void) } if (gBattleCommunication[0] < 6) { - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleMoveAttacker, gBattleCommunication[0]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattleCommunication[0]) gBattlescriptCurrInstr += 9; gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gBaseStats[gBattleMons[gBattleMoveTarget].species].baseDefense; + gBattleMoveDamage /= gBaseStats[gBattleMons[gBattlerTarget].species].baseDefense; gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; - if (gProtectStructs[gBattleMoveAttacker].helpingHand) + if (gProtectStructs[gBattlerAttacker].helpingHand) gBattleMoveDamage = gBattleMoveDamage * 15 / 10; gBattleCommunication[0]++; @@ -9717,13 +9717,13 @@ static void atkC5_setsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBattleMoveAttacker] |= STATUS3_ON_AIR; + gStatuses3[gBattlerAttacker] |= STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBattleMoveAttacker] |= STATUS3_UNDERGROUND; + gStatuses3[gBattlerAttacker] |= STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBattleMoveAttacker] |= STATUS3_UNDERWATER; + gStatuses3[gBattlerAttacker] |= STATUS3_UNDERWATER; break; } @@ -9736,13 +9736,13 @@ static void atkC6_clearsemiinvulnerablebit(void) { case MOVE_FLY: case MOVE_BOUNCE: - gStatuses3[gBattleMoveAttacker] &= ~STATUS3_ON_AIR; + gStatuses3[gBattlerAttacker] &= ~STATUS3_ON_AIR; break; case MOVE_DIG: - gStatuses3[gBattleMoveAttacker] &= ~STATUS3_UNDERGROUND; + gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERGROUND; break; case MOVE_DIVE: - gStatuses3[gBattleMoveAttacker] &= ~STATUS3_UNDERWATER; + gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERWATER; break; } @@ -9752,7 +9752,7 @@ static void atkC6_clearsemiinvulnerablebit(void) static void atkC7_setminimize(void) { if (gHitMarker & HITMARKER_OBEYS) - gStatuses3[gBattleMoveAttacker] |= STATUS3_MINIMIZED; + gStatuses3[gBattlerAttacker] |= STATUS3_MINIMIZED; gBattlescriptCurrInstr++; } @@ -9776,15 +9776,15 @@ static void atkC8_sethail(void) static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento { - if (gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_ATK] == 0 - && gBattleMons[gBattleMoveTarget].statStages[STAT_STAGE_SPATK] == 0 + if (gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] == 0 + && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_SPATK] == 0 && gBattleCommunication[6] != 1) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gActiveBattler].hp; BtlController_EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); @@ -9794,16 +9794,16 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento static void atkCA_setforcedtarget(void) // follow me { - gSideTimers[GetBattlerSide(gBattleMoveAttacker)].followmeTimer = 1; - gSideTimers[GetBattlerSide(gBattleMoveAttacker)].followmeTarget = gBattleMoveAttacker; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTimer = 1; + gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTarget = gBattlerAttacker; gBattlescriptCurrInstr++; } static void atkCB_setcharge(void) { - gStatuses3[gBattleMoveAttacker] |= STATUS3_CHARGED_UP; - gDisableStructs[gBattleMoveAttacker].chargeTimer1 = 2; - gDisableStructs[gBattleMoveAttacker].chargeTimer2 = 2; + gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP; + gDisableStructs[gBattlerAttacker].chargeTimer1 = 2; + gDisableStructs[gBattlerAttacker].chargeTimer2 = 2; gBattlescriptCurrInstr++; } @@ -9811,18 +9811,18 @@ static void atkCC_callterrainattack(void) // nature power { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; - gBattleMoveTarget = GetMoveTarget(gCurrentMove, 0); + gBattlerTarget = GetMoveTarget(gCurrentMove, 0); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh { - if (gBattleMons[gBattleMoveAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + if (gBattleMons[gBattlerAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) { - gBattleMons[gBattleMoveAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr += 5; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); } @@ -9834,20 +9834,20 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh static void atkCE_settorment(void) { - if (gBattleMons[gBattleMoveTarget].status2 & STATUS2_TORMENT) + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TORMENT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMons[gBattleMoveTarget].status2 |= STATUS2_TORMENT; + gBattleMons[gBattlerTarget].status2 |= STATUS2_TORMENT; gBattlescriptCurrInstr += 5; } } static void atkCF_jumpifnodamage(void) { - if (gProtectStructs[gBattleMoveAttacker].physicalDmg || gProtectStructs[gBattleMoveAttacker].specialDmg) + if (gProtectStructs[gBattlerAttacker].physicalDmg || gProtectStructs[gBattlerAttacker].specialDmg) gBattlescriptCurrInstr += 5; else gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -9855,10 +9855,10 @@ static void atkCF_jumpifnodamage(void) static void atkD0_settaunt(void) { - if (gDisableStructs[gBattleMoveTarget].tauntTimer1 == 0) + if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0) { - gDisableStructs[gBattleMoveTarget].tauntTimer1 = 2; - gDisableStructs[gBattleMoveTarget].tauntTimer2 = 2; + gDisableStructs[gBattlerTarget].tauntTimer1 = 2; + gDisableStructs[gBattlerTarget].tauntTimer2 = 2; gBattlescriptCurrInstr += 5; } else @@ -9869,14 +9869,14 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBattleMoveTarget = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && !(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - && !gProtectStructs[gBattleMoveAttacker].helpingHand - && !gProtectStructs[gBattleMoveTarget].helpingHand) + && !(gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + && !gProtectStructs[gBattlerAttacker].helpingHand + && !gProtectStructs[gBattlerTarget].helpingHand) { - gProtectStructs[gBattleMoveTarget].helpingHand = 1; + gProtectStructs[gBattlerTarget].helpingHand = 1; gBattlescriptCurrInstr += 5; } else @@ -9889,7 +9889,7 @@ static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_x4000000 - || (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_OPPONENT + || (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER @@ -9900,8 +9900,8 @@ static void atkD2_tryswapitems(void) // trick } else { - u8 sideAttacker = GetBattlerSide(gBattleMoveAttacker); - u8 sideTarget = GetBattlerSide(gBattleMoveTarget); + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); + u8 sideTarget = GetBattlerSide(gBattlerTarget); // you can't swap items if they were knocked off in regular battles if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK @@ -9909,53 +9909,53 @@ static void atkD2_tryswapitems(void) // trick | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_x2000000)) - && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattleMoveAttacker]] - || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattleMoveTarget]])) + && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]] + || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]])) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // can't swap if two pokemon don't have an item // or if either of them is an enigma berry or a mail - else if ((gBattleMons[gBattleMoveAttacker].item == 0 && gBattleMons[gBattleMoveTarget].item == 0) - || gBattleMons[gBattleMoveAttacker].item == ITEM_ENIGMA_BERRY - || gBattleMons[gBattleMoveTarget].item == ITEM_ENIGMA_BERRY - || IS_ITEM_MAIL(gBattleMons[gBattleMoveAttacker].item) - || IS_ITEM_MAIL(gBattleMons[gBattleMoveTarget].item)) + else if ((gBattleMons[gBattlerAttacker].item == 0 && gBattleMons[gBattlerTarget].item == 0) + || gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY + || gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY + || IS_ITEM_MAIL(gBattleMons[gBattlerAttacker].item) + || IS_ITEM_MAIL(gBattleMons[gBattlerTarget].item)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } // check if ability prevents swapping - else if (gBattleMons[gBattleMoveTarget].ability == ABILITY_STICKY_HOLD) + else if (gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD) { gBattlescriptCurrInstr = BattleScript_StickyHoldActivates; - gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; - RecordAbilityBattle(gBattleMoveTarget, gLastUsedAbility); + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; + RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); } // took a while, but all checks passed and items can be safely swapped else { u16 oldItemAtk, *newItemAtk; - newItemAtk = &gBattleStruct->changedItems[gBattleMoveAttacker]; - oldItemAtk = gBattleMons[gBattleMoveAttacker].item; - *newItemAtk = gBattleMons[gBattleMoveTarget].item; + newItemAtk = &gBattleStruct->changedItems[gBattlerAttacker]; + oldItemAtk = gBattleMons[gBattlerAttacker].item; + *newItemAtk = gBattleMons[gBattlerTarget].item; - gBattleMons[gBattleMoveAttacker].item = 0; - gBattleMons[gBattleMoveTarget].item = oldItemAtk; + gBattleMons[gBattlerAttacker].item = 0; + gBattleMons[gBattlerTarget].item = oldItemAtk; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk); - MarkBattlerForControllerExec(gBattleMoveAttacker); + MarkBattlerForControllerExec(gBattlerAttacker); - gActiveBattler = gBattleMoveTarget; - BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattleMoveTarget].item); - MarkBattlerForControllerExec(gBattleMoveTarget); + gActiveBattler = gBattlerTarget; + BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item); + MarkBattlerForControllerExec(gBattlerTarget); - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveTarget]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 1) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveAttacker]) + 0) = 0; - *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattleMoveAttacker]) + 1) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerAttacker]) + 0) = 0; + *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerAttacker]) + 1) = 0; gBattlescriptCurrInstr += 5; @@ -9974,11 +9974,11 @@ static void atkD2_tryswapitems(void) // trick static void atkD3_trycopyability(void) // role play { - if (gBattleMons[gBattleMoveTarget].ability != 0 - && gBattleMons[gBattleMoveTarget].ability != ABILITY_WONDER_GUARD) + if (gBattleMons[gBattlerTarget].ability != 0 + && gBattleMons[gBattlerTarget].ability != ABILITY_WONDER_GUARD) { - gBattleMons[gBattleMoveAttacker].ability = gBattleMons[gBattleMoveTarget].ability; - gLastUsedAbility = gBattleMons[gBattleMoveTarget].ability; + gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gBattlescriptCurrInstr += 5; } else @@ -9992,10 +9992,10 @@ static void atkD4_trywish(void) switch (gBattlescriptCurrInstr[1]) { case 0: // use wish - if (gWishFutureKnock.wishCounter[gBattleMoveAttacker] == 0) + if (gWishFutureKnock.wishCounter[gBattlerAttacker] == 0) { - gWishFutureKnock.wishCounter[gBattleMoveAttacker] = 2; - gWishFutureKnock.wishUserID[gBattleMoveAttacker] = gBattlerPartyIndexes[gBattleMoveAttacker]; + gWishFutureKnock.wishCounter[gBattlerAttacker] = 2; + gWishFutureKnock.wishUserID[gBattlerAttacker] = gBattlerPartyIndexes[gBattlerAttacker]; gBattlescriptCurrInstr += 6; } else @@ -10004,14 +10004,14 @@ static void atkD4_trywish(void) } break; case 1: // heal effect - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleMoveTarget, gWishFutureKnock.wishUserID[gBattleMoveTarget]) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerTarget, gWishFutureKnock.wishUserID[gBattlerTarget]) - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].maxHP / 2; + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - if (gBattleMons[gBattleMoveTarget].hp == gBattleMons[gBattleMoveTarget].maxHP) + if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2); else gBattlescriptCurrInstr += 6; @@ -10022,23 +10022,23 @@ static void atkD4_trywish(void) static void atkD5_trysetroots(void) // ingrain { - if (gStatuses3[gBattleMoveAttacker] & STATUS3_ROOTED) + if (gStatuses3[gBattlerAttacker] & STATUS3_ROOTED) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBattleMoveAttacker] |= STATUS3_ROOTED; + gStatuses3[gBattlerAttacker] |= STATUS3_ROOTED; gBattlescriptCurrInstr += 5; } } static void atkD6_doubledamagedealtifdamaged(void) { - if ((gProtectStructs[gBattleMoveAttacker].physicalDmg - && gProtectStructs[gBattleMoveAttacker].physicalBank == gBattleMoveTarget) - || (gProtectStructs[gBattleMoveAttacker].specialDmg - && gProtectStructs[gBattleMoveAttacker].specialBank == gBattleMoveTarget)) + if ((gProtectStructs[gBattlerAttacker].physicalDmg + && gProtectStructs[gBattlerAttacker].physicalBank == gBattlerTarget) + || (gProtectStructs[gBattlerAttacker].specialDmg + && gProtectStructs[gBattlerAttacker].specialBank == gBattlerTarget)) { gBattleScripting.dmgMultiplier = 2; } @@ -10048,27 +10048,27 @@ static void atkD6_doubledamagedealtifdamaged(void) static void atkD7_setyawn(void) { - if (gStatuses3[gBattleMoveTarget] & STATUS3_YAWN - || gBattleMons[gBattleMoveTarget].status1 & STATUS1_ANY) + if (gStatuses3[gBattlerTarget] & STATUS3_YAWN + || gBattleMons[gBattlerTarget].status1 & STATUS1_ANY) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBattleMoveTarget] |= 0x1000; + gStatuses3[gBattlerTarget] |= 0x1000; gBattlescriptCurrInstr += 5; } } static void atkD8_setdamagetohealthdifference(void) { - if (gBattleMons[gBattleMoveTarget].hp <= gBattleMons[gBattleMoveAttacker].hp) + if (gBattleMons[gBattlerTarget].hp <= gBattleMons[gBattlerAttacker].hp) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gBattleMoveDamage = gBattleMons[gBattleMoveTarget].hp - gBattleMons[gBattleMoveAttacker].hp; + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - gBattleMons[gBattlerAttacker].hp; gBattlescriptCurrInstr += 5; } } @@ -10078,7 +10078,7 @@ static void atkD9_scaledamagebyhealthratio(void) if (gDynamicBasePower == 0) { u8 power = gBattleMoves[gCurrentMove].power; - gDynamicBasePower = gBattleMons[gBattleMoveAttacker].hp * power / gBattleMons[gBattleMoveAttacker].maxHP; + gDynamicBasePower = gBattleMons[gBattlerAttacker].hp * power / gBattleMons[gBattlerAttacker].maxHP; if (gDynamicBasePower == 0) gDynamicBasePower = 1; } @@ -10087,19 +10087,19 @@ static void atkD9_scaledamagebyhealthratio(void) static void atkDA_tryswapabilities(void) // skill swap { - if ((gBattleMons[gBattleMoveAttacker].ability == 0 - && gBattleMons[gBattleMoveTarget].ability == 0) - || gBattleMons[gBattleMoveAttacker].ability == ABILITY_WONDER_GUARD - || gBattleMons[gBattleMoveTarget].ability == ABILITY_WONDER_GUARD + if ((gBattleMons[gBattlerAttacker].ability == 0 + && gBattleMons[gBattlerTarget].ability == 0) + || gBattleMons[gBattlerAttacker].ability == ABILITY_WONDER_GUARD + || gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - u8 abilityAtk = gBattleMons[gBattleMoveAttacker].ability; - gBattleMons[gBattleMoveAttacker].ability = gBattleMons[gBattleMoveTarget].ability; - gBattleMons[gBattleMoveTarget].ability = abilityAtk; + u8 abilityAtk = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability; + gBattleMons[gBattlerTarget].ability = abilityAtk; gBattlescriptCurrInstr += 5; } @@ -10107,7 +10107,7 @@ static void atkDA_tryswapabilities(void) // skill swap static void atkDB_tryimprision(void) { - if ((gStatuses3[gBattleMoveAttacker] & STATUS3_IMPRISONED_OTHERS)) + if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISONED_OTHERS)) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -10115,8 +10115,8 @@ static void atkDB_tryimprision(void) { u8 bank, sideAttacker; - sideAttacker = GetBattlerSide(gBattleMoveAttacker); - PressurePPLoseOnUsingImprision(gBattleMoveAttacker); + sideAttacker = GetBattlerSide(gBattlerAttacker); + PressurePPLoseOnUsingImprision(gBattlerAttacker); for (bank = 0; bank < gBattlersCount; bank++) { if (sideAttacker != GetBattlerSide(bank)) @@ -10127,8 +10127,8 @@ static void atkDB_tryimprision(void) s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBattleMoveAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] - && gBattleMons[gBattleMoveAttacker].moves[attackerMoveId] != MOVE_NONE) + if (gBattleMons[gBattlerAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i] + && gBattleMons[gBattlerAttacker].moves[attackerMoveId] != MOVE_NONE) break; } if (i != 4) @@ -10136,7 +10136,7 @@ static void atkDB_tryimprision(void) } if (attackerMoveId != 4) { - gStatuses3[gBattleMoveAttacker] |= STATUS3_IMPRISONED_OTHERS; + gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISONED_OTHERS; gBattlescriptCurrInstr += 5; break; } @@ -10149,13 +10149,13 @@ static void atkDB_tryimprision(void) static void atkDC_trysetgrudge(void) { - if (gStatuses3[gBattleMoveAttacker] & STATUS3_GRUDGE) + if (gStatuses3[gBattlerAttacker] & STATUS3_GRUDGE) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gStatuses3[gBattleMoveAttacker] |= STATUS3_GRUDGE; + gStatuses3[gBattlerAttacker] |= STATUS3_GRUDGE; gBattlescriptCurrInstr += 5; } } @@ -10165,7 +10165,7 @@ static void atkDD_weightdamagecalculation(void) s32 i; for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2) { - if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattleMoveTarget].species), 1)) + if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1)) break; } @@ -10184,14 +10184,14 @@ static void atkDE_asistattackselect(void) s32 monId, moveId; u16* movesArray = gBattleStruct->assistPossibleMoves; - if (GET_BATTLER_SIDE(gBattleMoveAttacker) != B_SIDE_PLAYER) + if (GET_BATTLER_SIDE(gBattlerAttacker) != B_SIDE_PLAYER) party = gEnemyParty; else party = gPlayerParty; for (monId = 0; monId < 6; monId++) { - if (monId == gBattlerPartyIndexes[gBattleMoveAttacker]) + if (monId == gBattlerPartyIndexes[gBattlerAttacker]) continue; if (GetMonData(&party[monId], MON_DATA_SPECIES2) == SPECIES_NONE) continue; @@ -10221,7 +10221,7 @@ static void atkDE_asistattackselect(void) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; - gBattleMoveTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gBattlescriptCurrInstr += 5; } else @@ -10232,29 +10232,29 @@ static void atkDE_asistattackselect(void) static void atkDF_trysetmagiccoat(void) { - gBattleMoveTarget = gBattleMoveAttacker; - gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; + gBattlerTarget = gBattlerAttacker; + gSpecialStatuses[gBattlerAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gProtectStructs[gBattleMoveAttacker].bounceMove = 1; + gProtectStructs[gBattlerAttacker].bounceMove = 1; gBattlescriptCurrInstr += 5; } } static void atkE0_trysetsnatch(void) // snatch { - gSpecialStatuses[gBattleMoveAttacker].flag20 = 1; + gSpecialStatuses[gBattlerAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - gProtectStructs[gBattleMoveAttacker].stealMove = 1; + gProtectStructs[gBattlerAttacker].stealMove = 1; gBattlescriptCurrInstr += 5; } } @@ -10268,15 +10268,15 @@ static void atkE1_trygetintimidatetarget(void) PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.battler].ability) - for (;gBattleMoveTarget < gBattlersCount; gBattleMoveTarget++) + for (;gBattlerTarget < gBattlersCount; gBattlerTarget++) { - if (GetBattlerSide(gBattleMoveTarget) == side) + if (GetBattlerSide(gBattlerTarget) == side) continue; - if (!(gAbsentBattlerFlags & gBitTable[gBattleMoveTarget])) + if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) break; } - if (gBattleMoveTarget >= gBattlersCount) + if (gBattlerTarget >= gBattlersCount) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -10451,18 +10451,18 @@ static void atkE8_settypebasedhalvers(void) // water and mud sport if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) { - if (!(gStatuses3[gBattleMoveAttacker] & STATUS3_MUDSPORT)) + if (!(gStatuses3[gBattlerAttacker] & STATUS3_MUDSPORT)) { - gStatuses3[gBattleMoveAttacker] |= STATUS3_MUDSPORT; + gStatuses3[gBattlerAttacker] |= STATUS3_MUDSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 0; worked = TRUE; } } else // water sport { - if (!(gStatuses3[gBattleMoveAttacker] & STATUS3_WATERSPORT)) + if (!(gStatuses3[gBattlerAttacker] & STATUS3_WATERSPORT)) { - gStatuses3[gBattleMoveAttacker] |= STATUS3_WATERSPORT; + gStatuses3[gBattlerAttacker] |= STATUS3_WATERSPORT; gBattleCommunication[MULTISTRING_CHOOSER] = 1; worked = TRUE; } @@ -10499,7 +10499,7 @@ static void atkEA_tryrecycleitem(void) { u16 *usedHeldItem; - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBattler]; if (*usedHeldItem != 0 && gBattleMons[gActiveBattler].item == 0) { @@ -10520,11 +10520,11 @@ static void atkEA_tryrecycleitem(void) static void atkEB_settypetoterrain(void) { - if (gBattleMons[gBattleMoveAttacker].type1 != sTerrainToType[gBattleTerrain] - && gBattleMons[gBattleMoveAttacker].type2 != sTerrainToType[gBattleTerrain]) + if (gBattleMons[gBattlerAttacker].type1 != sTerrainToType[gBattleTerrain] + && gBattleMons[gBattlerAttacker].type2 != sTerrainToType[gBattleTerrain]) { - gBattleMons[gBattleMoveAttacker].type1 = sTerrainToType[gBattleTerrain]; - gBattleMons[gBattleMoveAttacker].type2 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattlerAttacker].type1 = sTerrainToType[gBattleTerrain]; + gBattleMons[gBattlerAttacker].type2 = sTerrainToType[gBattleTerrain]; PREPARE_TYPE_BUFFER(gBattleTextBuff1, sTerrainToType[gBattleTerrain]) @@ -10538,19 +10538,19 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattleMoveAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) - && gActionForBanks[gActiveBattler] == 0 - && gChosenMovesByBanks[gActiveBattler] == MOVE_PURSUIT) + && gChosenActionByBattler[gActiveBattler] == 0 + && gChosenMoveByBattler[gActiveBattler] == MOVE_PURSUIT) { gActionsByTurnOrder[gActiveBattler] = 11; gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; gBattleScripting.animTurn = 1; - gBattleScripting.field_20 = gBattleMoveAttacker; - gBattleMoveAttacker = gActiveBattler; + gBattleScripting.field_20 = gBattlerAttacker; + gBattlerAttacker = gActiveBattler; } else { @@ -10560,12 +10560,12 @@ static void atkEC_pursuitrelated(void) static void atkEF_snatchsetbanks(void) { - gEffectBank = gBattleMoveAttacker; + gEffectBank = gBattlerAttacker; - if (gBattleMoveAttacker == gBattleMoveTarget) - gBattleMoveAttacker = gBattleMoveTarget = gBattleScripting.battler; + if (gBattlerAttacker == gBattlerTarget) + gBattlerAttacker = gBattlerTarget = gBattleScripting.battler; else - gBattleMoveTarget = gBattleScripting.battler; + gBattlerTarget = gBattleScripting.battler; gBattleScripting.battler = gEffectBank; gBattlescriptCurrInstr++; @@ -10573,7 +10573,7 @@ static void atkEF_snatchsetbanks(void) static void atkEE_removelightscreenreflect(void) // brick break { - u8 opposingSide = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; + u8 opposingSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer) { @@ -10600,8 +10600,8 @@ static void atkEF_handleballthrow(void) if (gBattleControllerExecFlags) return; - gActiveBattler = gBattleMoveAttacker; - gBattleMoveTarget = gBattleMoveAttacker ^ BIT_SIDE; + gActiveBattler = gBattlerAttacker; + gBattlerTarget = gBattlerAttacker ^ BIT_SIDE; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { @@ -10623,17 +10623,17 @@ static void atkEF_handleballthrow(void) if (gLastUsedItem == ITEM_SAFARI_BALL) catchRate = gBattleStruct->field_7C * 1275 / 100; else - catchRate = gBaseStats[gBattleMons[gBattleMoveTarget].species].catchRate; + catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate; if (gLastUsedItem > ITEM_SAFARI_BALL) { switch (gLastUsedItem) { case ITEM_NET_BALL: - if (gBattleMons[gBattleMoveTarget].type1 == TYPE_WATER - || gBattleMons[gBattleMoveTarget].type2 == TYPE_WATER - || gBattleMons[gBattleMoveTarget].type1 == TYPE_BUG - || gBattleMons[gBattleMoveTarget].type2 == TYPE_BUG) + if (gBattleMons[gBattlerTarget].type1 == TYPE_WATER + || gBattleMons[gBattlerTarget].type2 == TYPE_WATER + || gBattleMons[gBattlerTarget].type1 == TYPE_BUG + || gBattleMons[gBattlerTarget].type2 == TYPE_BUG) ballMultiplier = 30; else ballMultiplier = 10; @@ -10645,9 +10645,9 @@ static void atkEF_handleballthrow(void) ballMultiplier = 10; break; case ITEM_NEST_BALL: - if (gBattleMons[gBattleMoveTarget].level < 40) + if (gBattleMons[gBattlerTarget].level < 40) { - ballMultiplier = 40 - gBattleMons[gBattleMoveTarget].level; + ballMultiplier = 40 - gBattleMons[gBattlerTarget].level; if (ballMultiplier <= 9) ballMultiplier = 10; } @@ -10657,7 +10657,7 @@ static void atkEF_handleballthrow(void) } break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattleMoveTarget].species), FLAG_GET_CAUGHT)) + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT)) ballMultiplier = 30; else ballMultiplier = 10; @@ -10677,12 +10677,12 @@ static void atkEF_handleballthrow(void) ballMultiplier = sBallCatchBonuses[gLastUsedItem - 2]; odds = (catchRate * ballMultiplier / 10) - * (gBattleMons[gBattleMoveTarget].maxHP * 3 - gBattleMons[gBattleMoveTarget].hp * 2) - / (3 * gBattleMons[gBattleMoveTarget].maxHP); + * (gBattleMons[gBattlerTarget].maxHP * 3 - gBattleMons[gBattlerTarget].hp * 2) + / (3 * gBattleMons[gBattlerTarget].maxHP); - if (gBattleMons[gBattleMoveTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) + if (gBattleMons[gBattlerTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE)) odds *= 2; - if (gBattleMons[gBattleMoveTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) + if (gBattleMons[gBattlerTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) odds = (odds * 15) / 10; if (gLastUsedItem != ITEM_SAFARI_BALL) @@ -10703,7 +10703,7 @@ static void atkEF_handleballthrow(void) BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10728,7 +10728,7 @@ static void atkEF_handleballthrow(void) if (shakes == BALL_3_SHAKES_SUCCESS) // mon caught, copy of the code above { gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem); if (CalculatePlayerPartyCount() == 6) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -10746,18 +10746,18 @@ static void atkEF_handleballthrow(void) static void atkF0_givecaughtmon(void) { - if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) + if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) { if (!sub_813B21C()) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); } else { StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN))); - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); StringCopy(gStringVar3, GetBoxNamePtr(get_unknown_box_id())); gBattleCommunication[MULTISTRING_CHOOSER] = 2; } @@ -10766,9 +10766,9 @@ static void atkF0_givecaughtmon(void) gBattleCommunication[MULTISTRING_CHOOSER]++; } - gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); - gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); + gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); + gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL); gBattlescriptCurrInstr++; } @@ -10804,8 +10804,8 @@ static void atkF2_displaydexinfo(void) { FreeAllWindowBuffers(); gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species), - gBattleMons[gBattleMoveTarget].otId, - gBattleMons[gBattleMoveTarget].personality); + gBattleMons[gBattlerTarget].otId, + gBattleMons[gBattlerTarget].personality); gBattleCommunication[0]++; } break; @@ -10956,13 +10956,13 @@ static void atkF3_trygivecaughtmonnick(void) case 2: if (!gPaletteFade.active) { - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); FreeAllWindowBuffers(); DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick, - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), - GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]]), - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES), + GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]), + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL), BattleMainCB2); gBattleCommunication[MULTIUSE_STATE]++; @@ -10971,7 +10971,7 @@ static void atkF3_trygivecaughtmonnick(void) case 3: if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } break; @@ -10986,24 +10986,24 @@ static void atkF3_trygivecaughtmonnick(void) static void atkF4_subattackerhpbydmg(void) { - gBattleMons[gBattleMoveAttacker].hp -= gBattleMoveDamage; + gBattleMons[gBattlerAttacker].hp -= gBattleMoveDamage; gBattlescriptCurrInstr++; } static void atkF5_removeattackerstatus1(void) { - gBattleMons[gBattleMoveAttacker].status1 = 0; + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr++; } static void atkF6_finishaction(void) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; } static void atkF7_finishturn(void) { - gCurrentActionFuncId = ACTION_FINISHED; + gCurrentActionFuncId = B_ACTION_FINISHED; gCurrentTurnActionNumber = gBattlersCount; } diff --git a/src/battle_util.c b/src/battle_util.c index 228727585..bbb4bf41d 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -28,13 +28,13 @@ extern const u8* gSelectionBattleScripts[MAX_BATTLERS_COUNT]; extern const u8* gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gActiveBattler; -extern u8 gStringBank; +extern u8 gStringBattler; extern u16 gCurrentMove; extern u16 gLastUsedItem; extern u8 gBattlersCount; extern u32 gStatuses3[MAX_BATTLERS_COUNT]; -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern u16 gBattleWeather; extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; @@ -50,7 +50,7 @@ extern u32 gHitMarker; extern u8 gEffectBank; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBank1; -extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; +extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u8 gMoveResultFlags; extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT]; @@ -79,10 +79,10 @@ u8 GetBattleBank(u8 caseId) switch (caseId) { case BS_GET_TARGET: - ret = gBattleMoveTarget; + ret = gBattlerTarget; break; case BS_GET_ATTACKER: - ret = gBattleMoveAttacker; + ret = gBattlerAttacker; break; case BS_GET_EFFECT_BANK: ret = gEffectBank; @@ -335,17 +335,17 @@ void sub_803FA70(u8 battler) void BattleScriptPush(const u8* bsPtr) { - BATTLESCRIPTS_STACK->ptr[BATTLESCRIPTS_STACK->size++] = bsPtr; + gBattleResources->battleScriptsStack->ptr[gBattleResources->battleScriptsStack->size++] = bsPtr; } void BattleScriptPushCursor(void) { - BATTLESCRIPTS_STACK->ptr[BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr; + gBattleResources->battleScriptsStack->ptr[gBattleResources->battleScriptsStack->size++] = gBattlescriptCurrInstr; } void BattleScriptPop(void) { - gBattlescriptCurrInstr = BATTLESCRIPTS_STACK->ptr[--BATTLESCRIPTS_STACK->size]; + gBattlescriptCurrInstr = gBattleResources->battleScriptsStack->ptr[--gBattleResources->battleScriptsStack->size]; } u8 TrySetCantSelectMoveBattleScript(void) @@ -421,7 +421,7 @@ u8 TrySetCantSelectMoveBattleScript(void) else holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); - gStringBank = gActiveBattler; + gStringBattler = gActiveBattler; if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) { @@ -465,7 +465,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) else holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); - gStringBank = bank; + gStringBattler = bank; for (i = 0; i < MAX_BATTLERS_COUNT; i++) { @@ -536,10 +536,10 @@ u8 UpdateTurnCounters(void) u8 effect = 0; s32 i; - for (gBattleMoveAttacker = 0; gBattleMoveAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleMoveAttacker]; gBattleMoveAttacker++) + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerAttacker]; gBattlerAttacker++) { } - for (gBattleMoveTarget = 0; gBattleMoveTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]; gBattleMoveTarget++) + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerTarget]; gBattlerTarget++) { } @@ -575,7 +575,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].reflectBank; + gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].reflectBank; if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT) { if (--gSideTimers[sideBank].reflectTimer == 0) @@ -600,7 +600,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].lightscreenBank; + gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].lightscreenBank; if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN) { if (--gSideTimers[sideBank].lightscreenTimer == 0) @@ -626,7 +626,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].mistBank; + gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].mistBank; if (gSideTimers[sideBank].mistTimer != 0 && --gSideTimers[sideBank].mistTimer == 0) { @@ -650,7 +650,7 @@ u8 UpdateTurnCounters(void) while (gBattleStruct->turnSideTracker < 2) { sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattleMoveAttacker = gSideTimers[sideBank].safeguardBank; + gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].safeguardBank; if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD) { if (--gSideTimers[sideBank].safeguardTimer == 0) @@ -678,7 +678,7 @@ u8 UpdateTurnCounters(void) && --gWishFutureKnock.wishCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveTarget = gActiveBattler; + gBattlerTarget = gActiveBattler; BattleScriptExecute(BattleScript_WishComesTrue); effect++; } @@ -796,7 +796,7 @@ u8 TurnBasedEffects(void) gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE) { - gActiveBattler = gBattleMoveAttacker = gBattleTurnOrder[gBattleStruct->turnEffectsBank]; + gActiveBattler = gBattlerAttacker = gBattleTurnOrder[gBattleStruct->turnEffectsBank]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->turnEffectsBank++; @@ -839,12 +839,12 @@ u8 TurnBasedEffects(void) && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBattler].hp != 0) { - gBattleMoveTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattleScripting.animArg1 = gBattleMoveTarget; - gBattleScripting.animArg2 = gBattleMoveAttacker; + gBattleScripting.animArg1 = gBattlerTarget; + gBattleScripting.animArg2 = gBattlerAttacker; BattleScriptExecute(BattleScript_LeechSeedTurnDrain); effect++; } @@ -953,29 +953,29 @@ u8 TurnBasedEffects(void) case 10: // uproar if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - for (gBattleMoveAttacker = 0; gBattleMoveAttacker < gBattlersCount; gBattleMoveAttacker++) + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) { - if ((gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) - && gBattleMons[gBattleMoveAttacker].ability != ABILITY_SOUNDPROOF) + if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) + && gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); break; } } - if (gBattleMoveAttacker != gBattlersCount) + if (gBattlerAttacker != gBattlersCount) { effect = 2; // a pokemon was awaken break; } else { - gBattleMoveAttacker = gActiveBattler; + gBattlerAttacker = gActiveBattler; gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down if (WasUnableToUseMove(gActiveBattler)) { @@ -1138,16 +1138,16 @@ bool8 HandleWishPerishSongOnTurnEnd(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]); - gBattleMoveTarget = gActiveBattler; - gBattleMoveAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; + gBattlerTarget = gActiveBattler; + gBattlerAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler]; - gSpecialStatuses[gBattleMoveTarget].moveturnLostHP = 0xFFFF; + gSpecialStatuses[gBattlerTarget].moveturnLostHP = 0xFFFF; BattleScriptExecute(BattleScript_MonTookFutureAttack); if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 && gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0) { - gSideStatuses[GET_BATTLER_SIDE(gBattleMoveTarget)] &= ~(SIDE_STATUS_FUTUREATTACK); + gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] &= ~(SIDE_STATUS_FUTUREATTACK); } return TRUE; } @@ -1162,7 +1162,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) case 1: while (gBattleStruct->wishPerishSongBank < gBattlersCount) { - gActiveBattler = gBattleMoveAttacker = gBattleTurnOrder[gBattleStruct->wishPerishSongBank]; + gActiveBattler = gBattlerAttacker = gBattleTurnOrder[gBattleStruct->wishPerishSongBank]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { gBattleStruct->wishPerishSongBank++; @@ -1240,7 +1240,7 @@ bool8 HandleFaintedMonActions(void) case 1: do { - gBank1 = gBattleMoveTarget = gBattleStruct->faintedActionsBank; + gBank1 = gBattlerTarget = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 && !(gBattleStruct->field_DF & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBank]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank])) @@ -1266,7 +1266,7 @@ bool8 HandleFaintedMonActions(void) case 4: do { - gBank1 = gBattleMoveTarget = gBattleStruct->faintedActionsBank; + gBank1 = gBattlerTarget = gBattleStruct->faintedActionsBank; if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank])) { @@ -1300,7 +1300,7 @@ void TryClearRageStatuses(void) int i; for (i = 0; i < gBattlersCount; i++) { - if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMovesByBanks[i] != MOVE_RAGE) + if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMoveByBattler[i] != MOVE_RAGE) gBattleMons[i].status2 &= ~(STATUS2_RAGE); } } @@ -1316,17 +1316,17 @@ u8 AtkCanceller_UnableToUseMove(void) switch (gBattleStruct->atkCancellerTracker) { case 0: // flags clear - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[gBattleMoveAttacker] &= ~(STATUS3_GRUDGE); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_GRUDGE); gBattleStruct->atkCancellerTracker++; break; case 1: // check being asleep - if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) { - if (UproarWakeUpCheck(gBattleMoveAttacker)) + if (UproarWakeUpCheck(gBattlerAttacker)) { - gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1335,15 +1335,15 @@ u8 AtkCanceller_UnableToUseMove(void) else { u8 toSub; - if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_EARLY_BIRD) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_EARLY_BIRD) toSub = 2; else toSub = 1; - if ((gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) < toSub) - gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_SLEEP); + if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) < toSub) + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); else - gBattleMons[gBattleMoveAttacker].status1 -= toSub; - if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP) + gBattleMons[gBattlerAttacker].status1 -= toSub; + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) { if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) { @@ -1354,7 +1354,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; @@ -1365,7 +1365,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 2: // check being frozen - if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) { if (Random() % 5) { @@ -1382,7 +1382,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else // unfreeze { - gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -1392,9 +1392,9 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 3: // truant - if (gBattleMons[gBattleMoveAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattleMoveAttacker].truantCounter) + if (gBattleMons[gBattlerAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattlerAttacker].truantCounter) { - CancelMultiTurnMoves(gBattleMoveAttacker); + CancelMultiTurnMoves(gBattlerAttacker); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; @@ -1404,11 +1404,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 4: // recharge - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_RECHARGE) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE) { - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_RECHARGE); - gDisableStructs[gBattleMoveAttacker].rechargeCounter = 0; - CancelMultiTurnMoves(gBattleMoveAttacker); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gBattlerAttacker].rechargeCounter = 0; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1416,11 +1416,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 5: // flinch - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_FLINCHED) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FLINCHED) { - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_FLINCHED); - gProtectStructs[gBattleMoveAttacker].flinchImmobility = 1; - CancelMultiTurnMoves(gBattleMoveAttacker); + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_FLINCHED); + gProtectStructs[gBattlerAttacker].flinchImmobility = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1428,11 +1428,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 6: // disabled move - if (gDisableStructs[gBattleMoveAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattleMoveAttacker].disabledMove != 0) + if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != 0) { - gProtectStructs[gBattleMoveAttacker].usedDisabledMove = 1; - gBattleScripting.battler = gBattleMoveAttacker; - CancelMultiTurnMoves(gBattleMoveAttacker); + gProtectStructs[gBattlerAttacker].usedDisabledMove = 1; + gBattleScripting.battler = gBattlerAttacker; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1440,10 +1440,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 7: // taunt - if (gDisableStructs[gBattleMoveAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) + if (gDisableStructs[gBattlerAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) { - gProtectStructs[gBattleMoveAttacker].usedTauntedMove = 1; - CancelMultiTurnMoves(gBattleMoveAttacker); + gProtectStructs[gBattlerAttacker].usedTauntedMove = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1451,10 +1451,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 8: // imprisoned - if (GetImprisonedMovesCount(gBattleMoveAttacker, gCurrentMove)) + if (GetImprisonedMovesCount(gBattlerAttacker, gCurrentMove)) { - gProtectStructs[gBattleMoveAttacker].usedImprisionedMove = 1; - CancelMultiTurnMoves(gBattleMoveAttacker); + gProtectStructs[gBattlerAttacker].usedImprisionedMove = 1; + CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1462,10 +1462,10 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 9: // confusion - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_CONFUSION) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { - gBattleMons[gBattleMoveAttacker].status2--; - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_CONFUSION) + gBattleMons[gBattlerAttacker].status2--; + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { if (Random() & 1) { @@ -1475,9 +1475,9 @@ u8 AtkCanceller_UnableToUseMove(void) else // confusion dmg { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattleMoveTarget = gBattleMoveAttacker; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveAttacker], MOVE_POUND, 0, 40, 0, gBattleMoveAttacker, gBattleMoveAttacker); - gProtectStructs[gBattleMoveAttacker].confusionSelfDmg = 1; + gBattlerTarget = gBattlerAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); + gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; } gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; @@ -1492,11 +1492,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 10: // paralysis - if ((gBattleMons[gBattleMoveAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) + if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) { - gProtectStructs[gBattleMoveAttacker].prlzImmobility = 1; + gProtectStructs[gBattlerAttacker].prlzImmobility = 1; // This is removed in Emerald for some reason - //CancelMultiTurnMoves(gBattleMoveAttacker); + //CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; @@ -1504,17 +1504,17 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 11: // infatuation - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_INFATUATION) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) { - gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattleMoveAttacker].status2 & STATUS2_INFATUATION) >> 0x10); + gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) >> 0x10); if (Random() & 1) BattleScriptPushCursor(); else { BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gProtectStructs[gBattleMoveAttacker].loveImmobility = 1; - CancelMultiTurnMoves(gBattleMoveAttacker); + gProtectStructs[gBattlerAttacker].loveImmobility = 1; + CancelMultiTurnMoves(gBattlerAttacker); } gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; effect = 1; @@ -1522,22 +1522,22 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 12: // bide - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_BIDE) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) { - gBattleMons[gBattleMoveAttacker].status2 -= 0x100; - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_BIDE) + gBattleMons[gBattlerAttacker].status2 -= 0x100; + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; else { // This is removed in Emerald for some reason - //gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); - if (gTakenDmg[gBattleMoveAttacker]) + //gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (gTakenDmg[gBattlerAttacker]) { gCurrentMove = MOVE_BIDE; - *bideDmg = gTakenDmg[gBattleMoveAttacker] * 2; - gBattleMoveTarget = gTakenDmgBanks[gBattleMoveAttacker]; - if (gAbsentBattlerFlags & gBitTable[gBattleMoveTarget]) - gBattleMoveTarget = GetMoveTarget(MOVE_BIDE, 1); + *bideDmg = gTakenDmg[gBattlerAttacker] * 2; + gBattlerTarget = gTakenDmgBanks[gBattlerAttacker]; + if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) + gBattlerTarget = GetMoveTarget(MOVE_BIDE, 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } else @@ -1548,11 +1548,11 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case 13: // move thawing - if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_FREEZE) + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) { if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) { - gBattleMons[gBattleMoveAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -1569,7 +1569,7 @@ u8 AtkCanceller_UnableToUseMove(void) if (effect == 2) { - gActiveBattler = gBattleMoveAttacker; + gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); } @@ -1750,19 +1750,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA u32 pidAtk; u32 pidDef; - if (gBattleMoveAttacker >= gBattlersCount) - gBattleMoveAttacker = battler; - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) - pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; + if (gBattlerAttacker >= gBattlersCount) + gBattlerAttacker = battler; + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else - pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveAttacker]]; + pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]]; - if (gBattleMoveTarget >= gBattlersCount) - gBattleMoveTarget = battler; - if (GetBattlerSide(gBattleMoveTarget) == B_SIDE_PLAYER) - pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattleMoveTarget]]; + if (gBattlerTarget >= gBattlersCount) + gBattlerTarget = battler; + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) + pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else - pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBattleMoveTarget]]; + pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]; speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); @@ -1793,8 +1793,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - if (gBattleMoveAttacker >= gBattlersCount) - gBattleMoveAttacker = battler; + if (gBattlerAttacker >= gBattlersCount) + gBattlerAttacker = battler; switch (gLastUsedAbility) { case ABILITYEFFECT_SWITCH_IN_WEATHER: @@ -1911,7 +1911,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITYEFFECT_ENDTURN: // 1 if (gBattleMons[battler].hp != 0) { - gBattleMoveAttacker = battler; + gBattlerAttacker = battler; switch (gLastUsedAbility) { case ABILITY_RAIN_DISH: @@ -1961,7 +1961,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITY_TRUANT: - gDisableStructs[gBattleMoveAttacker].truantCounter ^= 1; + gDisableStructs[gBattlerAttacker].truantCounter ^= 1; break; } } @@ -1976,7 +1976,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } if (sSoundMovesTable[i] != 0xFFFF) { - if (gBattleMons[gBattleMoveAttacker].status2 & STATUS2_MULTIPLETURNS) + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; gBattlescriptCurrInstr = BattleScript_SoundproofProtected; effect = 1; @@ -1991,7 +1991,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_VOLT_ABSORB: if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -2002,7 +2002,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_WATER_ABSORB: if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) { - if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; @@ -2016,7 +2016,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (!(gBattleResources->flags->flags[battler] & UNKNOWN_FLAG_FLASH_FIRE)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -2027,7 +2027,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA else { gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gProtectStructs[gBattleMoveAttacker].notFirstStrike) + if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; @@ -2041,7 +2041,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA { if (gBattleMons[battler].maxHP == gBattleMons[battler].hp) { - if ((gProtectStructs[gBattleMoveAttacker].notFirstStrike)) + if ((gProtectStructs[gBattlerAttacker].notFirstStrike)) gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless; else gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless_PPLoss; @@ -2063,7 +2063,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && gBattleMons[battler].type1 != moveType && gBattleMons[battler].type2 != moveType && gBattleMons[battler].hp != 0) @@ -2078,12 +2078,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_ROUGH_SKIN: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleMoveAttacker].hp != 0 - && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { - gBattleMoveDamage = gBattleMons[gBattleMoveAttacker].maxHP / 16; + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptPushCursor(); @@ -2093,9 +2093,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_EFFECT_SPORE: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleMoveAttacker].hp != 0 - && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 10) == 0) { @@ -2116,9 +2116,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_POISON_POINT: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleMoveAttacker].hp != 0 - && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2131,9 +2131,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_STATIC: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleMoveAttacker].hp != 0 - && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { @@ -2146,10 +2146,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_FLAME_BODY: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleMoveAttacker].hp != 0 - && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; @@ -2161,19 +2161,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITY_CUTE_CHARM: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattleMoveAttacker].hp != 0 - && !gProtectStructs[gBattleMoveAttacker].confusionSelfDmg + && gBattleMons[gBattlerAttacker].hp != 0 + && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) - && gBattleMons[gBattleMoveTarget].hp != 0 + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) + && gBattleMons[gBattlerTarget].hp != 0 && (Random() % 3) == 0 - && gBattleMons[gBattleMoveAttacker].ability != ABILITY_OBLIVIOUS + && gBattleMons[gBattlerAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBattleMoveAttacker].status2 & STATUS2_INFATUATION) + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS) { - gBattleMons[gBattleMoveAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattleMoveTarget); + gBattleMons[gBattlerAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattlerTarget); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2288,7 +2288,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER; - gBattleScripting.battler = gBattleMoveTarget; + gBattleScripting.battler = gBattlerTarget; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2304,7 +2304,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect; - gBattleScripting.battler = gBattleMoveAttacker; + gBattleScripting.battler = gBattlerAttacker; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2512,7 +2512,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA void BattleScriptExecute(const u8 *BS_ptr) { gBattlescriptCurrInstr = BS_ptr; - BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc; + gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size++] = gBattleMainFunc; gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack; gCurrentActionFuncId = 0; } @@ -2521,7 +2521,7 @@ void BattleScriptPushCursorAndCallback(const u8 *BS_ptr) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BS_ptr; - BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc; + gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size++] = gBattleMainFunc; gBattleMainFunc = RunBattleScriptCommands; } @@ -2556,11 +2556,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); } - atkItem = gBattleMons[gBattleMoveAttacker].item; + atkItem = gBattleMons[gBattlerAttacker].item; if (atkItem == ITEM_ENIGMA_BERRY) { - atkHoldEffect = gEnigmaBerries[gBattleMoveAttacker].holdEffect; - atkQuality = gEnigmaBerries[gBattleMoveAttacker].holdEffectParam; + atkHoldEffect = gEnigmaBerries[gBattlerAttacker].holdEffect; + atkQuality = gEnigmaBerries[gBattlerAttacker].holdEffectParam; } else { @@ -2569,11 +2569,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } // def variables are unused - defItem = gBattleMons[gBattleMoveTarget].item; + defItem = gBattleMons[gBattlerTarget].item; if (defItem == ITEM_ENIGMA_BERRY) { - defHoldEffect = gEnigmaBerries[gBattleMoveTarget].holdEffect; - defQuality = gEnigmaBerries[gBattleMoveTarget].holdEffectParam; + defHoldEffect = gEnigmaBerries[gBattlerTarget].holdEffect; + defQuality = gEnigmaBerries[gBattlerTarget].holdEffectParam; } else { @@ -2602,8 +2602,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleScripting.battler = bank; - gStringBank = bank; - gActiveBattler = gBattleMoveAttacker = bank; + gStringBattler = bank; + gActiveBattler = gBattlerAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -2673,8 +2673,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleScripting.battler = bank; - gStringBank = bank; - gActiveBattler = gBattleMoveAttacker = bank; + gStringBattler = bank; + gActiveBattler = gBattlerAttacker = bank; BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; @@ -3001,8 +3001,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleScripting.battler = bank; - gStringBank = bank; - gActiveBattler = gBattleMoveAttacker = bank; + gStringBattler = bank; + gActiveBattler = gBattlerAttacker = bank; switch (effect) { case ITEM_STATUS_CHANGE: @@ -3149,7 +3149,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleScripting.battler = bank; - gStringBank = bank; + gStringBattler = bank; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; return effect; // unnecessary return @@ -3159,7 +3159,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) if (effect) { gBattleScripting.battler = bank; - gStringBank = bank; + gStringBattler = bank; gActiveBattler = bank; BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); @@ -3174,10 +3174,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { case HOLD_EFFECT_FLINCH: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_physical || gSpecialStatuses[gBattleMoveTarget].moveturnLostHP_special) + && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special) && (Random() % 100) < atkQuality && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED - && gBattleMons[gBattleMoveTarget].hp) + && gBattleMons[gBattlerTarget].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); @@ -3187,19 +3187,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) break; case HOLD_EFFECT_SHELL_BELL: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gSpecialStatuses[gBattleMoveTarget].moveturnLostHP != 0 - && gSpecialStatuses[gBattleMoveTarget].moveturnLostHP != 0xFFFF - && gBattleMoveAttacker != gBattleMoveTarget - && gBattleMons[gBattleMoveAttacker].hp != gBattleMons[gBattleMoveAttacker].maxHP - && gBattleMons[gBattleMoveAttacker].hp != 0) + && gSpecialStatuses[gBattlerTarget].moveturnLostHP != 0 + && gSpecialStatuses[gBattlerTarget].moveturnLostHP != 0xFFFF + && gBattlerAttacker != gBattlerTarget + && gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP + && gBattleMons[gBattlerAttacker].hp != 0) { gLastUsedItem = atkItem; - gStringBank = gBattleMoveAttacker; - gBattleScripting.battler = gBattleMoveAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBattleMoveTarget].moveturnLostHP / atkQuality) * -1; + gStringBattler = gBattlerAttacker; + gBattleScripting.battler = gBattlerAttacker; + gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].moveturnLostHP / atkQuality) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBattleMoveTarget].moveturnLostHP = 0; + gSpecialStatuses[gBattlerTarget].moveturnLostHP = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect++; @@ -3240,18 +3240,18 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) switch (moveTarget) { case MOVE_TARGET_SELECTED: - side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else { - side = GetBattlerSide(gBattleMoveAttacker); + side = GetBattlerSide(gBattlerAttacker); do { targetBank = Random() % gBattlersCount; - } while (targetBank == gBattleMoveAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); + } while (targetBank == gBattlerAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); if (gBattleMoves[move].type == TYPE_ELECTRIC - && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattleMoveAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) { targetBank ^= BIT_FLANK; @@ -3264,17 +3264,17 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleMoveAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); if (gAbsentBattlerFlags & gBitTable[targetBank]) targetBank ^= BIT_FLANK; break; case MOVE_TARGET_RANDOM: - side = GetBattlerSide(gBattleMoveAttacker) ^ BIT_SIDE; + side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_PLAYER) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { if (Random() & 1) targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); @@ -3292,15 +3292,15 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) targetBank ^= BIT_FLANK; } else - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattleMoveAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: - targetBank = gBattleMoveAttacker; + targetBank = gBattlerAttacker; break; } - *(gBattleStruct->moveTarget + gBattleMoveAttacker) = targetBank; + *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBank; return targetBank; } @@ -3323,18 +3323,18 @@ u8 IsMonDisobedient(void) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return 0; - if (GetBattlerSide(gBattleMoveAttacker) == B_SIDE_OPPONENT) + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) return 0; - if (HasObedientBitSet(gBattleMoveAttacker)) // only if species is Mew or Deoxys + if (HasObedientBitSet(gBattlerAttacker)) // only if species is Mew or Deoxys { - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattleMoveAttacker) == 2) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattlerAttacker) == 2) return 0; if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) return 0; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) return 0; - if (!IsOtherTrainer(gBattleMons[gBattleMoveAttacker].otId, gBattleMons[gBattleMoveAttacker].otName)) + if (!IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName)) return 0; if (FlagGet(FLAG_BADGE08_GET)) return 0; @@ -3349,27 +3349,27 @@ u8 IsMonDisobedient(void) obedienceLevel = 70; } - if (gBattleMons[gBattleMoveAttacker].level <= obedienceLevel) + if (gBattleMons[gBattlerAttacker].level <= obedienceLevel) return 0; rnd = (Random() & 255); - calc = (gBattleMons[gBattleMoveAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) return 0; // is not obedient if (gCurrentMove == MOVE_RAGE) - gBattleMons[gBattleMoveAttacker].status2 &= ~(STATUS2_RAGE); - if (gBattleMons[gBattleMoveAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RAGE); + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { gBattlescriptCurrInstr = BattleScript_82DB695; return 1; } rnd = (Random() & 255); - calc = (gBattleMons[gBattleMoveAttacker].level + obedienceLevel) * rnd >> 8; + calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) { - calc = CheckMoveLimitations(gBattleMoveAttacker, gBitTable[gCurrMovePos], 0xFF); + calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF); if (calc == 0xF) // all moves cannot be used { gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; @@ -3383,19 +3383,19 @@ u8 IsMonDisobedient(void) gCurrMovePos = gUnknown_020241E9 = Random() & 3; } while (gBitTable[gCurrMovePos] & calc); - gRandomMove = gBattleMons[gBattleMoveAttacker].moves[gCurrMovePos]; + gRandomMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBattleMoveTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; } } else { - obedienceLevel = gBattleMons[gBattleMoveAttacker].level - obedienceLevel; + obedienceLevel = gBattleMons[gBattlerAttacker].level - obedienceLevel; calc = (Random() & 255); - if (calc < obedienceLevel && !(gBattleMons[gBattleMoveAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattleMoveAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattleMoveAttacker].ability != ABILITY_INSOMNIA) + if (calc < obedienceLevel && !(gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattlerAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattlerAttacker].ability != ABILITY_INSOMNIA) { // try putting asleep int i; @@ -3413,8 +3413,8 @@ u8 IsMonDisobedient(void) calc -= obedienceLevel; if (calc < obedienceLevel) { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattleMoveAttacker], &gBattleMons[gBattleMoveAttacker], MOVE_POUND, 0, 40, 0, gBattleMoveAttacker, gBattleMoveAttacker); - gBattleMoveTarget = gBattleMoveAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); + gBattlerTarget = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; diff --git a/src/pokeball.c b/src/pokeball.c index 87802d6ba..ada0258db 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -17,7 +17,7 @@ extern bool8 gDoingBattleAnim; extern u8 gActiveBattler; -extern u8 gBattleMoveTarget; +extern u8 gBattlerTarget; extern u16 gBattlerPartyIndexes[]; extern u8 gBattlerSpriteIds[]; extern u8 gHealthboxSpriteIds[]; @@ -378,7 +378,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) switch (throwCaseId) { case POKEBALL_PLAYER_SENDOUT: - gBattleMoveTarget = bank; + gBattlerTarget = bank; gSprites[ballSpriteId].pos1.x = 24; gSprites[ballSpriteId].pos1.y = 68; gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; @@ -386,17 +386,17 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) case POKEBALL_OPPONENT_SENDOUT: gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(bank, BANK_X_POS); gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(bank, BANK_Y_POS) + 24; - gBattleMoveTarget = bank; + gBattlerTarget = bank; gSprites[ballSpriteId].data[0] = 0; gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; break; default: - gBattleMoveTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); notSendOut = TRUE; break; } - gSprites[ballSpriteId].sBank = gBattleMoveTarget; + gSprites[ballSpriteId].sBank = gBattlerTarget; if (!notSendOut) { DestroyTask(taskId); @@ -405,12 +405,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) // this will perform an unused ball throw animation gSprites[ballSpriteId].data[0] = 0x22; - gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattleMoveTarget, BANK_X_POS); - gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattleMoveTarget, BANK_Y_POS) - 16; + gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BANK_X_POS); + gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BANK_Y_POS) - 16; gSprites[ballSpriteId].data[5] = -40; sub_80A68D4(&gSprites[ballSpriteId]); gSprites[ballSpriteId].oam.affineParam = taskId; - gTasks[taskId].tOpponentBank = gBattleMoveTarget; + gTasks[taskId].tOpponentBank = gBattlerTarget; gTasks[taskId].func = TaskDummy; PlaySE(SE_NAGERU); } diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 4e3364486..e484b21a4 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -16,8 +16,8 @@ struct Unknown_020249B4 extern u8 gAbsentBattlerFlags; extern u8 gActiveBattler; -extern u8 gBattleMoveAttacker; -extern u8 gBattleMoveTarget; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; extern u8 gLastUsedAbility; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; @@ -55,14 +55,14 @@ u8 CountAliveMonsInBattle(u8 caseId) case BATTLE_ALIVE_ATK_SIDE: for (i = 0; i < 4; i++) { - if (GetBattlerSide(i) == GetBattlerSide(gBattleMoveAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattlerAttacker) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; case BATTLE_ALIVE_DEF_SIDE: for (i = 0; i < 4; i++) { - if (GetBattlerSide(i) == GetBattlerSide(gBattleMoveTarget) && !(gAbsentBattlerFlags & gBitTable[i])) + if (GetBattlerSide(i) == GetBattlerSide(gBattlerTarget) && !(gAbsentBattlerFlags & gBitTable[i])) retVal++; } break; diff --git a/src/pokemon_3.c b/src/pokemon_3.c index e11afa91e..6442679a6 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -27,9 +27,9 @@ extern struct BattlePokemon gBattleMons[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gActiveBattler; extern u8 gBankInMenu; -extern u8 gBattleMoveTarget; -extern u8 gBattleMoveAttacker; -extern u8 gStringBank; +extern u8 gBattlerTarget; +extern u8 gBattlerAttacker; +extern u8 gStringBattler; extern u16 gTrainerBattleOpponent_A; extern u32 gBattleTypeFlags; extern u8 gBattleMonForms[4]; @@ -210,7 +210,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) void sub_806CF24(s32 stat) { - gBattleMoveTarget = gBankInMenu; + gBattlerTarget = gBankInMenu; StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]); StringCopy(gBattleTextBuff2, gText_StatRose); BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2); @@ -233,7 +233,7 @@ u8 *sub_806CF78(u16 itemId) itemEffect = gItemEffectTable[itemId - 13]; } - gStringBank = gBankInMenu; + gStringBattler = gBankInMenu; for (i = 0; i < 3; i++) { @@ -247,7 +247,7 @@ u8 *sub_806CF78(u16 itemId) } else { - gBattleMoveAttacker = gBankInMenu; + gBattlerAttacker = gBankInMenu; BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped); } } @@ -255,7 +255,7 @@ u8 *sub_806CF78(u16 itemId) if (itemEffect[3] & 0x80) { - gBattleMoveAttacker = gBankInMenu; + gBattlerAttacker = gBankInMenu; BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist); } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 34611b509..fc576462b 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -29,7 +29,7 @@ extern u8 gActiveBattler; extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; -extern u16 gChosenMovesByBanks[MAX_BATTLERS_COUNT]; +extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u8 gUnknown_03001278; extern u8 gUnknown_03001279; @@ -221,7 +221,7 @@ void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear) } } -u8 RecordedBattle_GetBankAction(u8 bank) +u8 RecordedBattle_GetBattlerAction(u8 bank) { // trying to read past array or invalid action byte, battle is over if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF) @@ -1561,14 +1561,14 @@ void sub_818603C(u8 arg0) u8 array3[8]; u8 var; - RecordedBattle_GetBankAction(bank); + RecordedBattle_GetBattlerAction(bank); for (j = 0; j < 4; j++) { ppBonuses[j] = ((gBattleMons[bank].ppBonuses & ((3 << (j << 1)))) >> (j << 1)); } for (j = 0; j < 4; j++) { - array1[j] = RecordedBattle_GetBankAction(bank); + array1[j] = RecordedBattle_GetBattlerAction(bank); movePp.moves[j] = gBattleMons[bank].moves[array1[j]]; movePp.pp[j] = gBattleMons[bank].pp[array1[j]]; array3[j] = ppBonuses[array1[j]]; @@ -1612,7 +1612,7 @@ void sub_818603C(u8 arg0) SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP_BONUSES, &var); } - gChosenMovesByBanks[bank] = gBattleMons[bank].moves[*(gBattleStruct->chosenMovePositions + bank)]; + gChosenMoveByBattler[bank] = gBattleMons[bank].moves[*(gBattleStruct->chosenMovePositions + bank)]; } } } diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index c1e37a9ac..925b65de5 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -46,8 +46,8 @@ extern u8 GetBattlerSpriteCoord(u8 bank, u8 caseId); // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); -static bool8 LoadBankSpriteGfx(u8 bank); -static void CreateBankSprite(u8 bank); +static bool8 LoadBattlerSpriteGfx(u8 bank); +static void CreateBattlerSprite(u8 bank); static void CreateHealthboxSprite(u8 bank); static void sub_80A95F4(void); @@ -118,32 +118,32 @@ static void CB2_ReshowBattleScreenAfterMenu(void) } break; case 7: - if (!LoadBankSpriteGfx(0)) + if (!LoadBattlerSpriteGfx(0)) gBattleScripting.reshowMainState--; break; case 8: - if (!LoadBankSpriteGfx(1)) + if (!LoadBattlerSpriteGfx(1)) gBattleScripting.reshowMainState--; break; case 9: - if (!LoadBankSpriteGfx(2)) + if (!LoadBattlerSpriteGfx(2)) gBattleScripting.reshowMainState--; break; case 10: - if (!LoadBankSpriteGfx(3)) + if (!LoadBattlerSpriteGfx(3)) gBattleScripting.reshowMainState--; break; case 11: - CreateBankSprite(0); + CreateBattlerSprite(0); break; case 12: - CreateBankSprite(1); + CreateBattlerSprite(1); break; case 13: - CreateBankSprite(2); + CreateBattlerSprite(2); break; case 14: - CreateBankSprite(3); + CreateBattlerSprite(3); break; case 15: CreateHealthboxSprite(0); @@ -208,25 +208,25 @@ static void sub_80A95F4(void) regBgcnt2->charBaseBlock = 0; } -static bool8 LoadBankSpriteGfx(u8 bank) +static bool8 LoadBattlerSpriteGfx(u8 battler) { - if (bank < gBattlersCount) + if (battler < gBattlersCount) { - if (GetBattlerSide(bank) != B_SIDE_PLAYER) + if (GetBattlerSide(battler) != B_SIDE_PLAYER) { - if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); + if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battler]], battler); else - BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE); + BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE); } - else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) - DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, bank); - else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) - DecompressTrainerBackPic(BACK_PIC_WALLY, bank); - else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); + else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == 0) + DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, battler); + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == 0) + DecompressTrainerBackPic(BACK_PIC_WALLY, battler); + else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler); else - BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE); + BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE); gBattleScripting.reshowHelperState = 0; } @@ -243,111 +243,111 @@ struct MonCoords }; extern const struct MonCoords gTrainerBackPicCoords[]; -static void CreateBankSprite(u8 bank) +static void CreateBattlerSprite(u8 battler) { - if (bank < gBattlersCount) + if (battler < gBattlersCount) { u8 posY; - if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute) - posY = GetSubstituteSpriteDefault_Y(bank); + if (gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) + posY = GetSubstituteSpriteDefault_Y(battler); else - posY = GetBattlerSpriteDefault_Y(bank); + posY = GetBattlerSpriteDefault_Y(battler); - if (GetBattlerSide(bank) != B_SIDE_PLAYER) + if (GetBattlerSide(battler) != B_SIDE_PLAYER) { - if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); - gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(bank, 2), posY, sub_80A82E4(bank)); - gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBattlerSpriteIds[bank]].data[0] = bank; - gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); + sub_806A068(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); + gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler)); + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; + gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[battler]].data[0] = battler; + gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES); - StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) - gSprites[gBattlerSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]); + if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies == SPECIES_CASTFORM) + gSprites[gBattlerSpriteIds[battler]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; } - else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) + else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == 0) { sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT)); - gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, + gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, sub_80A82E4(0)); - gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; + gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[battler]].data[0] = battler; } - else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == 0) { sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(0)); - gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, + gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, 0x50, (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80, sub_80A82E4(0)); - gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBattlerSpriteIds[bank]].data[0] = bank; + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; + gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[battler]].data[0] = battler; } else { - if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) return; - sub_806A068(GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES), GetBattlerPosition(bank)); - gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(bank, 2), posY, sub_80A82E4(bank)); - gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank; - gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBattlerSpriteIds[bank]].data[0] = bank; - gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); + sub_806A068(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); + gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler)); + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; + gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[battler]].data[0] = battler; + gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES); - StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); - if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) - gSprites[gBattlerSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]); + if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies == SPECIES_CASTFORM) + gSprites[gBattlerSpriteIds[battler]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; } - gSprites[gBattlerSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible; + gSprites[gBattlerSpriteIds[battler]].invisible = gBattleSpritesDataPtr->battlerData[battler].invisible; } } -static void CreateHealthboxSprite(u8 bank) +static void CreateHealthboxSprite(u8 battler) { - if (bank < gBattlersCount) + if (battler < gBattlersCount) { u8 healthboxSpriteId; - if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == 0) healthboxSpriteId = CreateSafariPlayerHealthboxSprites(); - else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == 0) return; else - healthboxSpriteId = CreateHealthboxSprites(bank); + healthboxSpriteId = CreateBattlerHealthboxSprites(battler); - gHealthboxSpriteIds[bank] = healthboxSpriteId; - InitBattlerHealthboxCoords(bank); + gHealthboxSpriteIds[battler] = healthboxSpriteId; + InitBattlerHealthboxCoords(battler); SetHealthboxSpriteVisible(healthboxSpriteId); - if (GetBattlerSide(bank) != B_SIDE_PLAYER) - UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gEnemyParty[gBattlerPartyIndexes[bank]], HEALTHBOX_ALL); + if (GetBattlerSide(battler) != B_SIDE_PLAYER) + UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], HEALTHBOX_SAFARI_ALL_TEXT); + UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_SAFARI_ALL_TEXT); else - UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[gBattlerPartyIndexes[bank]], HEALTHBOX_ALL); + UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL); - if (GetBattlerPosition(bank) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(bank) == B_POSITION_PLAYER_RIGHT) - DummyBattleInterfaceFunc(gHealthboxSpriteIds[bank], TRUE); + if (GetBattlerPosition(battler) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT) + DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], TRUE); else - DummyBattleInterfaceFunc(gHealthboxSpriteIds[bank], FALSE); + DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], FALSE); - if (GetBattlerSide(bank) != B_SIDE_PLAYER) + if (GetBattlerSide(battler) != B_SIDE_PLAYER) { - if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) SetHealthboxSpriteInvisible(healthboxSpriteId); } else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) { - if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) SetHealthboxSpriteInvisible(healthboxSpriteId); } } diff --git a/sym_ewram.txt b/sym_ewram.txt index a35bd4bf0..d42ec2ad4 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -333,10 +333,10 @@ gLastUsedItem: @ 2024208 gLastUsedAbility: @ 202420A .space 0x1 -gBattleMoveAttacker: @ 202420B +gBattlerAttacker: @ 202420B .space 0x1 -gBattleMoveTarget: @ 202420C +gBattlerTarget: @ 202420C .space 0x1 gBank1: @ 202420D @@ -345,7 +345,7 @@ gBank1: @ 202420D gEffectBank: @ 202420E .space 0x1 -gStringBank: @ 202420F +gStringBattler: @ 202420F .space 0x1 gAbsentBattlerFlags: @ 2024210 @@ -360,7 +360,7 @@ gMultiHitCounter: @ 2024212 gBattlescriptCurrInstr: @ 2024214 .space 0x8 -gActionForBanks: @ 202421C +gChosenActionByBattler: @ 202421C .space 0x4 gSelectionBattleScripts: @ 2024220 @@ -390,7 +390,7 @@ gLockedMoves: @ 2024268 gLastHitBy: @ 2024270 .space 0x4 -gChosenMovesByBanks: @ 2024274 +gChosenMoveByBattler: @ 2024274 .space 0x8 gMoveResultFlags: @ 202427C @@ -1165,7 +1165,7 @@ gUnknown_0203AB98: @ 203AB98 .include "src/coins.o" .include "src/battle_transition.o" -gAbilitiesPerBank: @ 203ABA4 +gBattlerAbilities: @ 203ABA4 .space 0x4 gStringInfo: @ 203ABA8 -- cgit v1.2.3 From 96ab6f835388ec994c3636480f661beca0e00f24 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 13:49:33 +0100 Subject: match secret base func and fix struct --- include/global.h | 19 ++-- include/pokemon.h | 1 - src/battle_script_commands.c | 2 +- src/field_map_obj_helpers.c | 8 +- src/pokemon_2.c | 16 +-- src/secret_base.c | 234 ++++--------------------------------------- 6 files changed, 47 insertions(+), 233 deletions(-) diff --git a/include/global.h b/include/global.h index f358dafe7..c575d40cd 100644 --- a/include/global.h +++ b/include/global.h @@ -34,6 +34,8 @@ // Converts a number to Q4.12 fixed-point format #define Q_4_12(n) ((s16)((n) * 4096)) +#define PARTY_SIZE 6 + #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 @@ -295,6 +297,16 @@ struct SaveBlock2 extern struct SaveBlock2 *gSaveBlock2Ptr; +struct SecretBaseParty +{ + u32 personality[PARTY_SIZE]; + u16 moves[PARTY_SIZE * 4]; + u16 species[PARTY_SIZE]; + u16 heldItems[PARTY_SIZE]; + u8 levels[PARTY_SIZE]; + u8 EVs[PARTY_SIZE]; +}; + struct SecretBaseRecord { /*0x1A9C*/ u8 secretBaseId; @@ -310,12 +322,7 @@ struct SecretBaseRecord /*0x1AAD*/ u8 sbr_field_11; /*0x1AAE*/ u8 decorations[16]; /*0x1ABE*/ u8 decorationPos[16]; - /*0x1AD0*/ u32 partyPersonality[6]; - /*0x1AE8*/ u16 partyMoves[6 * 4]; - /*0x1B18*/ u16 partySpecies[6]; - /*0x1B24*/ u16 partyHeldItems[6]; - /*0x1B2E*/ u8 partyLevels[6]; - /*0x1B34*/ u8 partyEVs[6]; + /*0x1AD0*/ struct SecretBaseParty party; }; #include "constants/game_stat.h" diff --git a/include/pokemon.h b/include/pokemon.h index cdab96687..a3bcf695e 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -128,7 +128,6 @@ #define NUMBER_OF_MON_TYPES 0x12 -#define PARTY_SIZE 6 #define MAX_TOTAL_EVS 510 #define NUM_STATS 6 #define UNOWN_FORM_COUNT 28 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index c7976fc2a..dbd3375bc 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6226,7 +6226,7 @@ static u32 GetTrainerMoneyToGive(u16 trainerId) if (trainerId == SECRET_BASE_OPPONENT) { - moneyReward = 20 * gBattleResources->secretBase->partyLevels[0] * gBattleStruct->moneyMultiplier; + moneyReward = 20 * gBattleResources->secretBase->party.levels[0] * gBattleStruct->moneyMultiplier; } else { diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index 1e0e9b66b..de26cb034 100755 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -549,14 +549,14 @@ bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite) { if (firstFreeSlot == 16 && gUnknown_020375B8[i] == 0) firstFreeSlot = i; - + if (gUnknown_020375B8[i] == mapObject->localId) { found = TRUE; break; } } - + if (!found && firstFreeSlot != 16) { gUnknown_020375B8[firstFreeSlot] = mapObject->localId; @@ -564,13 +564,13 @@ bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite) ableToStore = TRUE; // the nonmatching problem is that ableToStore == TRUE isnt being merged with the above ableToStore = TRUE assignment. } } - + if (ableToStore == TRUE) { mapObject->mapobj_bit_12 = TRUE; mapObject->mapobj_bit_9 = TRUE; } - + sprite->data[2] = 1; return TRUE; } diff --git a/src/pokemon_2.c b/src/pokemon_2.c index db176e025..fa416798e 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -1197,26 +1197,26 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord) for (i = 0; i < PARTY_SIZE; i++) { - if (gBattleResources->secretBase->partySpecies[i]) + if (gBattleResources->secretBase->party.species[i]) { CreateMon(&gEnemyParty[i], - gBattleResources->secretBase->partySpecies[i], - gBattleResources->secretBase->partyLevels[i], + gBattleResources->secretBase->party.species[i], + gBattleResources->secretBase->party.levels[i], 15, 1, - gBattleResources->secretBase->partyPersonality[i], + gBattleResources->secretBase->party.personality[i], 2, 0); - SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->partyHeldItems[i]); + SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->party.heldItems[i]); for (j = 0; j < 6; j++) - SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->partyEVs[i]); + SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->party.EVs[i]); for (j = 0; j < 4; j++) { - SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->partyMoves[i * 4 + j]); - SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->partyMoves[i * 4 + j]].pp); + SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * 4 + j]); + SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * 4 + j]].pp); } } } diff --git a/src/secret_base.c b/src/secret_base.c index 61c2511b7..bb92bc5a9 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -13,6 +13,7 @@ #include "menu_indicators.h" #include "constants/maps.h" #include "constants/songs.h" +#include "constants/species.h" #include "sound.h" #include "overworld.h" #include "fieldmap.h" @@ -711,237 +712,45 @@ u8 sub_80E98AC(struct Pokemon *pokemon) return evTotal / 6; } -#ifdef NONMATCHING -// This function is a meme void sub_80E9914(void) { - u32 zero; - u32 *personality; u16 partyIdx; u16 moveIdx; u16 sbPartyIdx; - u16 *species; - u16 *items; - u16 *moves; - u8 *levels; - u8 *evs; + struct SecretBaseParty *party; sbPartyIdx = 0; - personality = gSaveBlock1Ptr->secretBases[0].partyPersonality; + party = &gSaveBlock1Ptr->secretBases[0].party; if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0) { - partyIdx = 0; - moves = gSaveBlock1Ptr->secretBases[0].partyMoves; - species = gSaveBlock1Ptr->secretBases[0].partySpecies; - items = gSaveBlock1Ptr->secretBases[0].partyHeldItems; - levels = gSaveBlock1Ptr->secretBases[0].partyLevels; - evs = gSaveBlock1Ptr->secretBases[0].partyEVs; - zero = 0; - for (partyIdx = 0; partyIdx < PARTY_SIZE; partyIdx ++) + for (partyIdx = 0; partyIdx < PARTY_SIZE; partyIdx++) { - for (moveIdx = 0; moveIdx < 4; moveIdx ++) + for (moveIdx = 0; moveIdx < 4; moveIdx++) { - moves[partyIdx * 4 + moveIdx] = zero; + party->moves[partyIdx * 4 + moveIdx] = 0; } - species[partyIdx] = zero; - items[partyIdx] = zero; - levels[partyIdx] = zero; - personality[partyIdx] = zero; - evs[partyIdx] = zero; - if (GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[partyIdx], MON_DATA_IS_EGG)) + party->species[partyIdx] = 0; + party->heldItems[partyIdx] = 0; + party->levels[partyIdx] = 0; + party->personality[partyIdx] = 0; + party->EVs[partyIdx] = 0; + if (GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&gPlayerParty[partyIdx], MON_DATA_IS_EGG)) { - for (moveIdx = 0; moveIdx < 4; moveIdx ++) + for (moveIdx = 0; moveIdx < 4; moveIdx++) { - moves[sbPartyIdx * 4 + moveIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_MOVE1 + moveIdx); + party->moves[sbPartyIdx * 4 + moveIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_MOVE1 + moveIdx); } - species[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES); - items[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_HELD_ITEM); - levels[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_LEVEL); - personality[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_PERSONALITY); - evs[sbPartyIdx] = sub_80E98AC(&gPlayerParty[partyIdx]); - sbPartyIdx ++; + party->species[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES); + party->heldItems[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_HELD_ITEM); + party->levels[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_LEVEL); + party->personality[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_PERSONALITY); + party->EVs[sbPartyIdx] = sub_80E98AC(&gPlayerParty[partyIdx]); + sbPartyIdx++; } } } } -#else -__attribute__((naked)) void sub_80E9914(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x24\n" - "\tmovs r0, 0\n" - "\tmov r10, r0\n" - "\tldr r0, =gSaveBlock1Ptr\n" - "\tldr r1, [r0]\n" - "\tldr r2, =0x00001ad0\n" - "\tadds r2, r1, r2\n" - "\tstr r2, [sp]\n" - "\tldr r3, =0x00001a9c\n" - "\tadds r0, r1, r3\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0\n" - "\tbne _080E993A\n" - "\tb _080E9A60\n" - "_080E993A:\n" - "\tmovs r6, 0\n" - "\tldr r7, =0x00001ae8\n" - "\tadds r7, r1, r7\n" - "\tstr r7, [sp, 0x14]\n" - "\tldr r0, =0x00001b18\n" - "\tadds r0, r1, r0\n" - "\tstr r0, [sp, 0xC]\n" - "\tldr r2, =0x00001b24\n" - "\tadds r2, r1, r2\n" - "\tstr r2, [sp, 0x10]\n" - "\tadds r3, 0x94\n" - "\tadds r3, r1, r3\n" - "\tstr r3, [sp, 0x18]\n" - "\tldr r7, =0x00001b36\n" - "\tadds r7, r1, r7\n" - "\tstr r7, [sp, 0x1C]\n" - "\tmov r9, r6\n" - "_080E995C:\n" - "\tmovs r4, 0\n" - "\tlsls r5, r6, 2\n" - "\tlsls r3, r6, 1\n" - "\tldr r0, =gPlayerParty\n" - "\tmov r8, r0\n" - "\tadds r1, r6, 0x1\n" - "\tstr r1, [sp, 0x4]\n" - "\tadds r2, r5, 0\n" - "\tldr r1, [sp, 0x14]\n" - "_080E996E:\n" - "\tadds r0, r2, r4\n" - "\tlsls r0, 1\n" - "\tadds r0, r1, r0\n" - "\tmov r7, r9\n" - "\tstrh r7, [r0]\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r4, r0, 16\n" - "\tcmp r4, 0x3\n" - "\tbls _080E996E\n" - "\tldr r1, [sp, 0xC]\n" - "\tadds r0, r1, r3\n" - "\tmov r2, r9\n" - "\tstrh r2, [r0]\n" - "\tldr r7, [sp, 0x10]\n" - "\tadds r0, r7, r3\n" - "\tstrh r2, [r0]\n" - "\tldr r1, [sp, 0x18]\n" - "\tadds r0, r1, r6\n" - "\tmov r2, r9\n" - "\tstrb r2, [r0]\n" - "\tldr r3, [sp]\n" - "\tadds r0, r3, r5\n" - "\tmov r7, r9\n" - "\tstr r7, [r0]\n" - "\tldr r1, [sp, 0x1C]\n" - "\tadds r0, r1, r6\n" - "\tstrb r7, [r0]\n" - "\tmovs r2, 0x64\n" - "\tadds r5, r6, 0\n" - "\tmuls r5, r2\n" - "\tmov r3, r8\n" - "\tadds r4, r5, r3\n" - "\tadds r0, r4, 0\n" - "\tmovs r1, 0xB\n" - "\tbl GetMonData\n" - "\tcmp r0, 0\n" - "\tbeq _080E9A54\n" - "\tadds r0, r4, 0\n" - "\tmovs r1, 0x2D\n" - "\tbl GetMonData\n" - "\tcmp r0, 0\n" - "\tbne _080E9A54\n" - "\tmovs r4, 0\n" - "\tmov r7, r10\n" - "\tlsls r7, 2\n" - "\tmov r8, r7\n" - "\tmov r0, r10\n" - "\tlsls r7, r0, 1\n" - "\tadds r0, 0x1\n" - "\tstr r0, [sp, 0x8]\n" - "\tldr r2, =gPlayerParty\n" - "_080E99DA:\n" - "\tadds r1, r4, 0\n" - "\tadds r1, 0xD\n" - "\tadds r0, r5, r2\n" - "\tstr r2, [sp, 0x20]\n" - "\tbl GetMonData\n" - "\tmov r3, r8\n" - "\tadds r1, r3, r4\n" - "\tlsls r1, 1\n" - "\tldr r3, [sp, 0x14]\n" - "\tadds r1, r3, r1\n" - "\tstrh r0, [r1]\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r4, r0, 16\n" - "\tldr r2, [sp, 0x20]\n" - "\tcmp r4, 0x3\n" - "\tbls _080E99DA\n" - "\tmovs r0, 0x64\n" - "\tadds r4, r6, 0\n" - "\tmuls r4, r0\n" - "\tldr r0, =gPlayerParty\n" - "\tadds r4, r0\n" - "\tadds r0, r4, 0\n" - "\tmovs r1, 0xB\n" - "\tbl GetMonData\n" - "\tldr r2, [sp, 0xC]\n" - "\tadds r1, r2, r7\n" - "\tstrh r0, [r1]\n" - "\tadds r0, r4, 0\n" - "\tmovs r1, 0xC\n" - "\tbl GetMonData\n" - "\tldr r3, [sp, 0x10]\n" - "\tadds r1, r3, r7\n" - "\tstrh r0, [r1]\n" - "\tadds r0, r4, 0\n" - "\tmovs r1, 0x38\n" - "\tbl GetMonData\n" - "\tldr r1, [sp, 0x18]\n" - "\tadd r1, r10\n" - "\tstrb r0, [r1]\n" - "\tadds r0, r4, 0\n" - "\tmovs r1, 0\n" - "\tbl GetMonData\n" - "\tldr r1, [sp]\n" - "\tadd r1, r8\n" - "\tstr r0, [r1]\n" - "\tadds r0, r4, 0\n" - "\tbl sub_80E98AC\n" - "\tldr r1, [sp, 0x1C]\n" - "\tadd r1, r10\n" - "\tstrb r0, [r1]\n" - "\tldr r7, [sp, 0x8]\n" - "\tlsls r0, r7, 16\n" - "\tlsrs r0, 16\n" - "\tmov r10, r0\n" - "_080E9A54:\n" - "\tldr r1, [sp, 0x4]\n" - "\tlsls r0, r1, 16\n" - "\tlsrs r6, r0, 16\n" - "\tcmp r6, 0x5\n" - "\tbhi _080E9A60\n" - "\tb _080E995C\n" - "_080E9A60:\n" - "\tadd sp, 0x24\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); -} -#endif void sub_80E9A90(void) { @@ -1357,7 +1166,6 @@ void sub_80EA354(void) gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_5; } - void sub_80EA3E4(u8 taskId) { s16 x; -- cgit v1.2.3 From b3a94a359f3412503d8bab5ef99e91d2bdd92ebb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 15:02:47 +0100 Subject: match berry fix func --- src/berry_fix_program.c | 238 ++++-------------------------------------------- 1 file changed, 17 insertions(+), 221 deletions(-) diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 7b968a221..542622e89 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -217,10 +217,9 @@ static void berry_fix_main(void) } } -#ifdef NONMATCHING static void berry_fix_gpu_set(void) { - s32 width; + s32 width, left; SetGpuReg(REG_OFFSET_BG0CNT, 0x0000); SetGpuReg(REG_OFFSET_BG1CNT, 0x0000); @@ -249,230 +248,27 @@ static void berry_fix_gpu_set(void) FillWindowPixelBuffer(3, 0); FillWindowPixelBuffer(0, 0xAA); -// This block is a meme among memes - width = (0x78 - GetStringWidth(0, sUnknown_08617E9B, 0)) / 2; - box_print(2, 0, width, 3, sUnknown_0861815B, -1, sUnknown_08617E9B); - width = (s32)(0x78 - GetStringWidth(0, sUnknown_08617E9B, 0)) / 2 + 0x78; - box_print(2, 0, width, 3, sUnknown_0861815B, -1, sUnknown_08617E8D); - width = (0x70 - GetStringWidth(0, sUnknown_08617E8D, 0)) / 2; - box_print(3, 0, width, 0, sUnknown_0861815B, -1, sUnknown_08617E8D); - width = (0xd0 - GetStringWidth(1, sUnknown_08617E78, 0)) / 2; - box_print(0, 1, width, 2, sUnknown_08618158, -1, sUnknown_08617E78); + width = GetStringWidth(0, sUnknown_08617E9B, 0); + left = (0x78 - width) / 2; + box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B); + + width = GetStringWidth(0, sUnknown_08617E8D, 0); + left = (0x78 - width) / 2 + 0x78; + box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); + + width = GetStringWidth(0, sUnknown_08617E8D, 0); + left = (0x70 - width) / 2; + box_print(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); + + width = GetStringWidth(1, sUnknown_08617E78, 0); + left = (0xD0 - width) / 2; + box_print(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78); CopyWindowToVram(2, 2); CopyWindowToVram(3, 2); CopyWindowToVram(0, 2); } -#else -__attribute__((naked)) static void berry_fix_gpu_set(void) -{ - asm(".syntax unified\n" - "\tpush {r4-r6,lr}\n" - "\tmov r6, r8\n" - "\tpush {r6}\n" - "\tsub sp, 0x10\n" - "\tmovs r0, 0x8\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0xA\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x10\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x12\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x14\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x16\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x50\n" - "\tmovs r1, 0\n" - "\tbl SetGpuReg\n" - "\tmovs r1, 0\n" - "\tstr r1, [sp, 0xC]\n" - "\tldr r4, =0x040000d4\n" - "\tadd r0, sp, 0xC\n" - "\tstr r0, [r4]\n" - "\tmovs r0, 0xC0\n" - "\tlsls r0, 19\n" - "\tstr r0, [r4, 0x4]\n" - "\tldr r0, =0x85006000\n" - "\tstr r0, [r4, 0x8]\n" - "\tldr r0, [r4, 0x8]\n" - "\tstr r1, [sp, 0xC]\n" - "\tadd r0, sp, 0xC\n" - "\tstr r0, [r4]\n" - "\tmovs r0, 0xE0\n" - "\tlsls r0, 19\n" - "\tstr r0, [r4, 0x4]\n" - "\tldr r2, =0x85000100\n" - "\tstr r2, [r4, 0x8]\n" - "\tldr r0, [r4, 0x8]\n" - "\tstr r1, [sp, 0xC]\n" - "\tadd r0, sp, 0xC\n" - "\tstr r0, [r4]\n" - "\tmovs r0, 0xA0\n" - "\tlsls r0, 19\n" - "\tstr r0, [r4, 0x4]\n" - "\tstr r2, [r4, 0x8]\n" - "\tldr r0, [r4, 0x8]\n" - "\tmovs r0, 0\n" - "\tbl ResetBgsAndClearDma3BusyFlags\n" - "\tldr r1, =gUnknown_08618108\n" - "\tmovs r0, 0\n" - "\tmovs r2, 0x2\n" - "\tbl InitBgsFromTemplates\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0\n" - "\tbl ChangeBgX\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0\n" - "\tbl ChangeBgY\n" - "\tmovs r0, 0x1\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0\n" - "\tbl ChangeBgX\n" - "\tmovs r0, 0x1\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0\n" - "\tbl ChangeBgY\n" - "\tldr r0, =gUnknown_08618110\n" - "\tbl InitWindows\n" - "\tbl DeactivateAllTextPrinters\n" - "\tldr r0, =sUnknown_08618138\n" - "\tstr r0, [r4]\n" - "\tldr r0, =0x050001e0\n" - "\tstr r0, [r4, 0x4]\n" - "\tldr r0, =0x84000008\n" - "\tstr r0, [r4, 0x8]\n" - "\tldr r0, [r4, 0x8]\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0x40\n" - "\tbl SetGpuReg\n" - "\tmovs r0, 0x2\n" - "\tmovs r1, 0\n" - "\tbl FillWindowPixelBuffer\n" - "\tmovs r0, 0x3\n" - "\tmovs r1, 0\n" - "\tbl FillWindowPixelBuffer\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0xAA\n" - "\tbl FillWindowPixelBuffer\n" - "\tldr r5, =sUnknown_08617E9B\n" - "\tmovs r0, 0\n" - "\tadds r1, r5, 0\n" - "\tmovs r2, 0\n" - "\tbl GetStringWidth\n" - "\tadds r1, r0, 0\n" - "\tmovs r4, 0x78\n" - "\tsubs r0, r4, r1\n" - "\tlsrs r1, r0, 31\n" - "\tadds r0, r1\n" - "\tasrs r0, 1\n" - "\tlsls r2, r0, 24\n" - "\tlsrs r2, 24\n" - "\tldr r6, =sUnknown_0861815B\n" - "\tstr r6, [sp]\n" - "\tmovs r0, 0x1\n" - "\tnegs r0, r0\n" - "\tmov r8, r0\n" - "\tstr r0, [sp, 0x4]\n" - "\tstr r5, [sp, 0x8]\n" - "\tmovs r0, 0x2\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0x3\n" - "\tbl box_print\n" - "\tldr r5, =sUnknown_08617E8D\n" - "\tmovs r0, 0\n" - "\tadds r1, r5, 0\n" - "\tmovs r2, 0\n" - "\tbl GetStringWidth\n" - "\tadds r1, r0, 0\n" - "\tsubs r4, r1\n" - "\tlsrs r0, r4, 31\n" - "\tadds r4, r0\n" - "\tasrs r4, 1\n" - "\tadds r0, r4, 0\n" - "\tadds r0, 0x78\n" - "\tlsls r2, r0, 24\n" - "\tlsrs r2, 24\n" - "\tstr r6, [sp]\n" - "\tmov r0, r8\n" - "\tstr r0, [sp, 0x4]\n" - "\tstr r5, [sp, 0x8]\n" - "\tmovs r0, 0x2\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0x3\n" - "\tbl box_print\n" - "\tmovs r0, 0\n" - "\tadds r1, r5, 0\n" - "\tmovs r2, 0\n" - "\tbl GetStringWidth\n" - "\tadds r1, r0, 0\n" - "\tmovs r0, 0x70\n" - "\tsubs r0, r1\n" - "\tlsrs r1, r0, 31\n" - "\tadds r0, r1\n" - "\tasrs r0, 1\n" - "\tlsls r2, r0, 24\n" - "\tlsrs r2, 24\n" - "\tstr r6, [sp]\n" - "\tmov r0, r8\n" - "\tstr r0, [sp, 0x4]\n" - "\tstr r5, [sp, 0x8]\n" - "\tmovs r0, 0x3\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0\n" - "\tbl box_print\n" - "\tldr r4, =sUnknown_08617E78\n" - "\tmovs r0, 0x1\n" - "\tadds r1, r4, 0\n" - "\tmovs r2, 0\n" - "\tbl GetStringWidth\n" - "\tadds r1, r0, 0\n" - "\tmovs r0, 0xD0\n" - "\tsubs r0, r1\n" - "\tlsrs r1, r0, 31\n" - "\tadds r0, r1\n" - "\tasrs r0, 1\n" - "\tlsls r2, r0, 24\n" - "\tlsrs r2, 24\n" - "\tldr r0, =sUnknown_08618158\n" - "\tstr r0, [sp]\n" - "\tmov r0, r8\n" - "\tstr r0, [sp, 0x4]\n" - "\tstr r4, [sp, 0x8]\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0x1\n" - "\tmovs r3, 0x2\n" - "\tbl box_print\n" - "\tmovs r0, 0x2\n" - "\tmovs r1, 0x2\n" - "\tbl CopyWindowToVram\n" - "\tmovs r0, 0x3\n" - "\tmovs r1, 0x2\n" - "\tbl CopyWindowToVram\n" - "\tmovs r0, 0\n" - "\tmovs r1, 0x2\n" - "\tbl CopyWindowToVram\n" - "\tadd sp, 0x10\n" - "\tpop {r3}\n" - "\tmov r8, r3\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool\n" - ".syntax divided"); -} -#endif - static int berry_fix_text_update(int checkval) { if (berry_fix_mb_manager->unk1 == checkval) @@ -522,7 +318,7 @@ static void berry_fix_text_print(int scene) ShowBg(1); } -static void berry_fix_bg_hide() +static void berry_fix_bg_hide(void) { HideBg(0); HideBg(1); -- cgit v1.2.3 From 593031904b1f90bd6afdf3d9f968c5eebc658823 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 19:47:55 +0100 Subject: ray changes --- src/rayquaza_scene.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index e2701cd99..25b9ccd53 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -1264,7 +1264,7 @@ static void CB2_RayquazaScene(void) UpdatePaletteFade(); } -static void VblankCB_RayquazaScene(void) +static void VBlankCB_RayquazaScene(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -1493,9 +1493,9 @@ static void sub_81D6D20(struct Sprite *sprite) } } -static void VblankCB_DuoFight(void) +static void VBlankCB_DuoFight(void) { - VblankCB_RayquazaScene(); + VBlankCB_RayquazaScene(); ScanlineEffect_InitHBlankDmaTransfer(); } @@ -1564,7 +1564,7 @@ static void Task_DuoFightAnim(u8 taskId) BlendPalettes(-1, 0x10, 0); BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); - SetVBlankCallback(VblankCB_DuoFight); + SetVBlankCallback(VBlankCB_DuoFight); PlaySE(SE_T_OOAME); } @@ -1654,7 +1654,7 @@ static void Task_HandleDuoFight(u8 taskId) DuoFightEnd(taskId, 2); return; case 380: - SetGpuReg(REG_OFFSET_BLDCNT, 0x244); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); gTasks[data[1]].func = sub_81D752C; gTasks[data[1]].data[0] = 0; gTasks[data[1]].data[2] = data[2]; @@ -1953,10 +1953,10 @@ static void Task_RayTakesFlightAnim(u8 taskId) PlayNewMapMusic(MUS_REKKUU_KOURIN); sub_81D7E10(); sub_81D7E9C(); - SetGpuReg(REG_OFFSET_BLDCNT, 0x250); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, 0x808); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(VblankCB_RayquazaScene); + SetVBlankCallback(VBlankCB_RayquazaScene); CreateTask(sub_81D81A4, 0); data[0] = 0; data[1] = 0; @@ -2152,10 +2152,10 @@ static void Task_RayDescendsAnim(u8 taskId) s16 *data = gTasks[taskId].data; sub_81D82B0(); sub_81D8358(); - SetGpuRegBits(REG_OFFSET_BLDCNT, 0x1E41); + SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(VblankCB_RayquazaScene); + SetVBlankCallback(VBlankCB_RayquazaScene); sRayScene->field_2008 = 0; sRayScene->field_200A = 0; data[0] = 0; @@ -2346,7 +2346,7 @@ static void Task_RayChargesAnim(u8 taskId) sub_81D88D0(); sub_81D68C8(); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(VblankCB_RayquazaScene); + SetVBlankCallback(VBlankCB_RayquazaScene); data[0] = 0; data[1] = 0; data[2] = CreateTask(sub_81D8AD8, 0); @@ -2508,10 +2508,10 @@ static void Task_RayChasesAwayAnim(u8 taskId) sub_81D8CC4(); sub_81D68C8(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); - SetGpuReg(REG_OFFSET_BLDCNT, 0x241); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, 0xE09); BlendPalettes(-1, 0x10, 0); - SetVBlankCallback(VblankCB_RayquazaScene); + SetVBlankCallback(VBlankCB_RayquazaScene); data[0] = 0; data[1] = 0; gTasks[taskId].func = Task_HandleRayChasesAway; -- cgit v1.2.3 From a61dc815b0f8f8fa3c1eabcb2edabd04f3ad7ce6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 19:51:41 +0100 Subject: bag arrow to item count plus 1 --- include/constants/items.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/items.h b/include/constants/items.h index 388ffba18..41d63c4a3 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -384,7 +384,7 @@ #define ITEM_OLD_SEA_MAP 376 #define ITEM_LAST_ID 376 -#define ITEM_FIELD_ARROW 377 +#define ITEM_FIELD_ARROW ITEM_LAST_ID + 1 #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY #define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY -- cgit v1.2.3 From 9b4b19fd5a800f381a149038e87b399bb6595930 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 19:59:02 +0100 Subject: rtc screen review changes --- src/reset_rtc_screen.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 16cc72166..75d994162 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -171,7 +171,7 @@ static const struct SpriteTemplate sSpriteTemplate_85104F0 = }; // code -static void SpriteCB_ResetRtcCusor0(struct Sprite *sprite) +static void SpriteCB_ResetRtcCursor0(struct Sprite *sprite) { int state = gTasks[sprite->data[0]].data[2]; if (state != sprite->data[1]) @@ -221,7 +221,7 @@ static void SpriteCB_ResetRtcCusor0(struct Sprite *sprite) } } -static void SpriteCB_ResetRtcCusor1(struct Sprite *sprite) +static void SpriteCB_ResetRtcCursor1(struct Sprite *sprite) { int state = gTasks[sprite->data[0]].data[2]; if (state != sprite->data[1]) @@ -274,12 +274,12 @@ static void CreateCursor(u8 taskId) LoadSpritePalette(&sSpritePalette_Arrow); spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0); - gSprites[spriteId].callback = SpriteCB_ResetRtcCusor0; + gSprites[spriteId].callback = SpriteCB_ResetRtcCursor0; gSprites[spriteId].data[0] = taskId; gSprites[spriteId].data[1] = -1; spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0); - gSprites[spriteId].callback = SpriteCB_ResetRtcCusor1; + gSprites[spriteId].callback = SpriteCB_ResetRtcCursor1; gSprites[spriteId].data[0] = taskId; gSprites[spriteId].data[1] = -1; } @@ -330,13 +330,13 @@ static bool32 MoveTimeUpDown(s16 *val, int minVal, int maxVal, u16 keys) { if (keys & DPAD_DOWN) { - (*val)--; + *val -= 1; if (*val < minVal) *val = maxVal; } else if (keys & DPAD_UP) { - (*val)++; + *val += 1; if (*val > maxVal) *val = minVal; } -- cgit v1.2.3