From df4e32a307c17163e9a64e5ea615ab9eb18afc4b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 22 Oct 2017 18:43:15 +0200 Subject: player battle controller is done --- asm/battle_7.s | 34 +- asm/battle_anim_80A5C6C.s | 6526 +++++++++++++++++++++++++++++ asm/battle_anim_80A9C70.s | 2 +- asm/battle_anim_80FE840.s | 6 +- asm/battle_controller_linkopponent.s | 24 +- asm/battle_controller_linkpartner.s | 24 +- asm/battle_controller_opponent.s | 40 +- asm/battle_controller_player.s | 1822 -------- asm/battle_controller_player_partner.s | 34 +- asm/battle_controller_recorded_opponent.s | 34 +- asm/battle_controller_recorded_player.s | 36 +- asm/battle_controller_safari.s | 14 +- asm/battle_controller_wally.s | 26 +- asm/battle_link_817C95C.s | 103 +- asm/pokeball.s | 6 +- asm/pokemon_animation.s | 94 + asm/rom_80A5C6C.s | 6526 ----------------------------- 17 files changed, 6765 insertions(+), 8586 deletions(-) create mode 100644 asm/battle_anim_80A5C6C.s delete mode 100644 asm/battle_controller_player.s delete mode 100644 asm/rom_80A5C6C.s (limited to 'asm') diff --git a/asm/battle_7.s b/asm/battle_7.s index 394cb9571..d86c68dfc 100644 --- a/asm/battle_7.s +++ b/asm/battle_7.s @@ -67,8 +67,8 @@ _0805D192: .pool thumb_func_end FreeBattleSpritesData - thumb_func_start sub_805D19C -sub_805D19C: @ 805D19C + thumb_func_start ChooseMoveAndTargetInBattlePalace +ChooseMoveAndTargetInBattlePalace: @ 805D19C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -448,7 +448,7 @@ _0805D496: pop {r1} bx r1 .pool - thumb_func_end sub_805D19C + thumb_func_end ChooseMoveAndTargetInBattlePalace thumb_func_start sub_805D4A8 sub_805D4A8: @ 805D4A8 @@ -834,8 +834,8 @@ _0805D800: .pool thumb_func_end sub_805D7EC - thumb_func_start move_anim_start_t2_for_situation -move_anim_start_t2_for_situation: @ 805D808 + thumb_func_start DoStatusAnimation +DoStatusAnimation: @ 805D808 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 @@ -962,10 +962,10 @@ _0805D902: pop {r4-r6} pop {r0} bx r0 - thumb_func_end move_anim_start_t2_for_situation + thumb_func_end DoStatusAnimation - thumb_func_start move_anim_start_t3 -move_anim_start_t3: @ 805D908 + thumb_func_start DoBattleAnimationFromTable +DoBattleAnimationFromTable: @ 805D908 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1070,7 +1070,7 @@ _0805D9CC: ldr r0, =gUnknown_082C9320 adds r1, r5, 0 movs r2, 0 - bl DoBattleAnim + bl LaunchBattleAnimation ldr r0, =task0A_0803415C movs r1, 0xA bl CreateTask @@ -1105,7 +1105,7 @@ _0805DA1E: pop {r1} bx r1 .pool - thumb_func_end move_anim_start_t3 + thumb_func_end DoBattleAnimationFromTable thumb_func_start task0A_0803415C task0A_0803415C: @ 805DA48 @@ -1172,8 +1172,8 @@ _0805DABE: bx r1 thumb_func_end sub_805DAA0 - thumb_func_start move_anim_start_t4 -move_anim_start_t4: @ 805DAC4 + thumb_func_start DoSpecialBattleAnimation +DoSpecialBattleAnimation: @ 805DAC4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -1187,7 +1187,7 @@ move_anim_start_t4: @ 805DAC4 ldr r0, =gUnknown_082C937C adds r1, r3, 0 movs r2, 0 - bl DoBattleAnim + bl LaunchBattleAnimation ldr r0, =task0A_08034248 movs r1, 0xA bl CreateTask @@ -1216,7 +1216,7 @@ move_anim_start_t4: @ 805DAC4 pop {r0} bx r0 .pool - thumb_func_end move_anim_start_t4 + thumb_func_end DoSpecialBattleAnimation thumb_func_start task0A_08034248 task0A_08034248: @ 805DB34 @@ -2229,8 +2229,8 @@ _0805E3EA: .pool thumb_func_end sub_805E394 - thumb_func_start sub_805E408 -sub_805E408: @ 805E408 + thumb_func_start SetBattleSpriteInvisibilityBitToSpriteInvisibility +SetBattleSpriteInvisibilityBitToSpriteInvisibility: @ 805E408 lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleSpritesDataPtr @@ -2258,7 +2258,7 @@ sub_805E408: @ 805E408 strb r0, [r3] bx lr .pool - thumb_func_end sub_805E408 + thumb_func_end SetBattleSpriteInvisibilityBitToSpriteInvisibility thumb_func_start sub_805E448 sub_805E448: @ 805E448 diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s new file mode 100644 index 000000000..fa05e36ce --- /dev/null +++ b/asm/battle_anim_80A5C6C.s @@ -0,0 +1,6526 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A5C6C +sub_80A5C6C: @ 80A5C6C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A5C8A + cmp r4, 0x3 + bne _080A5C8A + cmp r5, 0x3 + bne _080A5C8A + movs r4, 0x1 +_080A5C8A: + cmp r4, 0x4 + bhi _080A5D00 + lsls r0, r4, 2 + ldr r1, =_080A5C9C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080A5C9C: + .4byte _080A5CB0 + .4byte _080A5CD8 + .4byte _080A5CB0 + .4byte _080A5D00 + .4byte _080A5D00 +_080A5CB0: + ldr r4, =gUnknown_08525F58 + adds r0, r5, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 22 + ldr r1, =gBattleTypeFlags + ldr r1, [r1] + movs r2, 0x1 + ands r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + b _080A5DB0 + .pool +_080A5CD8: + ldr r4, =gUnknown_08525F58 + adds r0, r5, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 22 + ldr r1, =gBattleTypeFlags + ldr r1, [r1] + movs r2, 0x1 + ands r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x1] + b _080A5DB0 + .pool +_080A5D00: + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A5D28 + ldr r0, =gContestResources + ldr r0, [r0] + ldr r2, [r0, 0x18] + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A5D24 + ldrh r1, [r2, 0x2] + b _080A5D9A + .pool +_080A5D24: + ldrh r1, [r2] + b _080A5D9A +_080A5D28: + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A5D60 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A5D98 + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + b _080A5D7E + .pool +_080A5D60: + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A5D98 + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty +_080A5D7E: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + b _080A5D9A + .pool +_080A5D98: + ldrh r1, [r1, 0x2] +_080A5D9A: + cmp r4, 0x3 + bne _080A5DA4 + adds r0, r5, 0 + movs r2, 0x1 + b _080A5DA8 +_080A5DA4: + adds r0, r5, 0 + movs r2, 0 +_080A5DA8: + bl sub_80A600C + lsls r0, 24 + lsrs r0, 24 +_080A5DB0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A5C6C + + thumb_func_start sub_80A5DB8 +sub_80A5DB8: @ 80A5DB8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A5DDA + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A5DDA + b _080A5EC8 +_080A5DDA: + cmp r5, 0xC9 + bne _080A5E90 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A5E04 + ldr r0, =gContestResources + ldr r0, [r0] + ldr r2, [r0, 0x18] + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A5E00 + ldr r2, [r2, 0x10] + b _080A5E42 + .pool +_080A5E00: + ldr r2, [r2, 0x8] + b _080A5E42 +_080A5E04: + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r4, 2 + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + bne _080A5E3C + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0 + bl GetMonData + adds r2, r0, 0 + b _080A5E42 + .pool +_080A5E3C: + ldr r0, =gTransformedPersonalities + adds r0, r1, r0 + ldr r2, [r0] +_080A5E42: + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _080A5E7C + adds r0, r5, 0 + b _080A5E86 + .pool +_080A5E7C: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_080A5E86: + ldr r1, =gUnknown_083021D8 + lsls r0, 2 + b _080A5F90 + .pool +_080A5E90: + ldr r0, =0x00000181 + cmp r5, r0 + bne _080A5EB0 + ldr r0, =gUnknown_08525F8C + ldr r1, =gBattleMonForms + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + b _080A5F94 + .pool +_080A5EB0: + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + bls _080A5EC0 + ldr r0, =gUnknown_083021D8 + b _080A5F92 + .pool +_080A5EC0: + ldr r1, =gUnknown_083021D8 + b _080A5F8E + .pool +_080A5EC8: + cmp r5, 0xC9 + bne _080A5F58 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r0, [r0] + lsls r1, r4, 2 + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + bne _080A5F04 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0 + bl GetMonData + adds r2, r0, 0 + b _080A5F0A + .pool +_080A5F04: + ldr r0, =gTransformedPersonalities + adds r0, r1, r0 + ldr r2, [r0] +_080A5F0A: + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _080A5F44 + adds r0, r5, 0 + b _080A5F4E + .pool +_080A5F44: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_080A5F4E: + ldr r1, =gMonFrontPicCoords + lsls r0, 2 + b _080A5F90 + .pool +_080A5F58: + ldr r0, =0x00000181 + cmp r5, r0 + bne _080A5F7C + ldr r0, =gCastformFrontSpriteCoords + ldr r1, =gBattleMonForms + adds r1, r4, r1 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _080A5F94 + .pool +_080A5F7C: + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + bls _080A5F8C + ldr r0, =gMonFrontPicCoords + b _080A5F92 + .pool +_080A5F8C: + ldr r1, =gMonFrontPicCoords +_080A5F8E: + lsls r0, r5, 2 +_080A5F90: + adds r0, r1 +_080A5F92: + ldrb r0, [r0, 0x1] +_080A5F94: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A5DB8 + + thumb_func_start sub_80A5FA0 +sub_80A5FA0: @ 80A5FA0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + adds r7, r4, 0 + movs r5, 0 + adds r0, r6, 0 + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A5FFE + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A5FFE + ldr r0, =0x00000181 + cmp r4, r0 + bne _080A5FE8 + ldr r0, =gUnknown_08525F88 + ldr r1, =gBattleMonForms + adds r1, r6, r1 + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + b _080A5FFE + .pool +_080A5FE8: + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bls _080A5FF8 + ldr r0, =gEnemyMonElevation + b _080A5FFC + .pool +_080A5FF8: + ldr r0, =gEnemyMonElevation + adds r0, r7, r0 +_080A5FFC: + ldrb r5, [r0] +_080A5FFE: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A5FA0 + + thumb_func_start sub_80A600C +sub_80A600C: @ 80A600C + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + adds r0, r6, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A6030 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A603E +_080A6030: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80A5DB8 + lsls r0, 24 + lsrs r4, r0, 24 + b _080A605C +_080A603E: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80A5DB8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80A5FA0 + lsls r0, 24 + lsrs r0, 24 + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_080A605C: + adds r0, r6, 0 + bl GetBankIdentity + ldr r3, =gUnknown_08525F58 + lsls r0, 24 + lsrs r0, 22 + ldr r1, =gBattleTypeFlags + ldr r1, [r1] + movs r2, 0x1 + ands r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r3 + ldrb r0, [r0, 0x1] + adds r0, r4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r7, 0 + beq _080A609C + adds r0, r6, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _080A6096 + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 +_080A6096: + cmp r4, 0x68 + bls _080A609C + movs r4, 0x68 +_080A609C: + adds r0, r4, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A600C + + thumb_func_start sub_80A60AC +sub_80A60AC: @ 80A60AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r0, 0xFD + lsls r0, 24 + adds r1, r0 + lsrs r1, 24 + cmp r1, 0x1 + bhi _080A6126 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A60E8 + ldr r0, =gContestResources + ldr r0, [r0] + ldr r2, [r0, 0x18] + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A60E4 + ldrh r1, [r2, 0x2] + b _080A610E + .pool +_080A60E4: + ldrh r1, [r2] + b _080A610E +_080A60E8: + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r4, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A610C + ldr r1, =gAnimSpeciesByBanks + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + b _080A610E + .pool +_080A610C: + ldrh r1, [r1, 0x2] +_080A610E: + cmp r5, 0x3 + bne _080A611C + adds r0, r4, 0 + movs r2, 0x1 + bl sub_80A600C + b _080A612E +_080A611C: + adds r0, r4, 0 + movs r2, 0 + bl sub_80A600C + b _080A612E +_080A6126: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A5C6C +_080A612E: + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A60AC + + thumb_func_start sub_80A6138 +sub_80A6138: @ 80A6138 + push {lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x4 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80A6138 + + thumb_func_start sub_80A614C +sub_80A614C: @ 80A614C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A6170 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 8 + movs r1, 0x80 + lsls r1, 13 + b _080A6180 +_080A6170: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 8 + movs r1, 0x88 + lsls r1, 13 +_080A6180: + adds r0, r1 + lsrs r0, 16 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A614C + + thumb_func_start sub_80A6190 +sub_80A6190: @ 80A6190 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80A5C6C + lsls r0, 24 + lsrs r6, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A6238 + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A61E4 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A621C + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + b _080A6202 + .pool +_080A61E4: + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A621C + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty +_080A6202: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + b _080A621E + .pool +_080A621C: + ldrh r4, [r1, 0x2] +_080A621E: + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A6238 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A5FA0 + subs r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 +_080A6238: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A6190 + + thumb_func_start GetAnimBankSpriteId +GetAnimBankSpriteId: @ 80A6240 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + bne _080A6268 + ldr r4, =gAnimBankAttacker + ldrb r0, [r4] + bl AnimBankSpriteExists + lsls r0, 24 + cmp r0, 0 + beq _080A62B6 + ldr r1, =gBankSpriteIds + ldrb r0, [r4] + b _080A62C6 + .pool +_080A6268: + cmp r0, 0x1 + bne _080A6288 + ldr r4, =gAnimBankTarget + ldrb r0, [r4] + bl AnimBankSpriteExists + lsls r0, 24 + cmp r0, 0 + beq _080A62B6 + ldr r1, =gBankSpriteIds + ldrb r0, [r4] + b _080A62C6 + .pool +_080A6288: + cmp r1, 0x2 + bne _080A62A4 + ldr r5, =gAnimBankAttacker + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A62B6 + b _080A62C0 + .pool +_080A62A4: + ldr r5, =gAnimBankTarget + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + bne _080A62C0 +_080A62B6: + movs r0, 0xFF + b _080A62CA + .pool +_080A62C0: + ldr r1, =gBankSpriteIds + ldrb r0, [r5] + eors r0, r4 +_080A62C6: + adds r0, r1 + ldrb r0, [r0] +_080A62CA: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end GetAnimBankSpriteId + + thumb_func_start StoreSpriteCallbackInData6 +StoreSpriteCallbackInData6: @ 80A62D4 + strh r1, [r0, 0x3A] + lsrs r1, 16 + strh r1, [r0, 0x3C] + bx lr + thumb_func_end StoreSpriteCallbackInData6 + + thumb_func_start sub_80A62DC +sub_80A62DC: @ 80A62DC + ldrh r2, [r0, 0x3A] + movs r3, 0x3C + ldrsh r1, [r0, r3] + lsls r1, 16 + orrs r2, r1 + str r2, [r0, 0x1C] + bx lr + thumb_func_end sub_80A62DC + + thumb_func_start sub_80A62EC +sub_80A62EC: @ 80A62EC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A6340 + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080A632C + ldr r2, =0xffffff00 + b _080A6334 + .pool +_080A632C: + cmp r0, 0 + bge _080A6338 + movs r2, 0x80 + lsls r2, 1 +_080A6334: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080A6338: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080A6346 +_080A6340: + adds r0, r4, 0 + bl sub_80A62DC +_080A6346: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A62EC + + thumb_func_start sub_80A634C +sub_80A634C: @ 80A634C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A63BC + movs r2, 0x2E + ldrsh r0, [r4, r2] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080A63A8 + ldr r2, =0xffffff00 + b _080A63B0 + .pool +_080A63A8: + cmp r0, 0 + bge _080A63B4 + movs r2, 0x80 + lsls r2, 1 +_080A63B0: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080A63B4: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080A63C2 +_080A63BC: + adds r0, r4, 0 + bl sub_80A62DC +_080A63C2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A634C + + thumb_func_start sub_80A63C8 +sub_80A63C8: @ 80A63C8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A6444 + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x38] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080A6410 + ldr r2, =0xffffff00 + b _080A6418 + .pool +_080A6410: + cmp r0, 0 + bge _080A641C + movs r2, 0x80 + lsls r2, 1 +_080A6418: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080A641C: + ldrh r1, [r4, 0x36] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + ble _080A6430 + ldr r2, =0xffffff00 + b _080A6438 + .pool +_080A6430: + cmp r0, 0 + bge _080A643C + movs r2, 0x80 + lsls r2, 1 +_080A6438: + adds r0, r1, r2 + strh r0, [r4, 0x36] +_080A643C: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080A644A +_080A6444: + adds r0, r4, 0 + bl sub_80A62DC +_080A644A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A63C8 + + thumb_func_start sub_80A6450 +sub_80A6450: @ 80A6450 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A64A4 + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080A6490 + ldr r2, =0xffffff00 + b _080A6498 + .pool +_080A6490: + cmp r0, 0 + bge _080A649C + movs r2, 0x80 + lsls r2, 1 +_080A6498: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080A649C: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080A64AA +_080A64A4: + adds r0, r4, 0 + bl sub_80A62DC +_080A64AA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6450 + + thumb_func_start sub_80A64B0 +sub_80A64B0: @ 80A64B0 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080A64C4 + subs r0, r2, 0x1 + strh r0, [r1, 0x2E] + b _080A64CA +_080A64C4: + adds r0, r1, 0 + bl sub_80A62DC +_080A64CA: + pop {r0} + bx r0 + thumb_func_end sub_80A64B0 + + thumb_func_start sub_80A64D0 +sub_80A64D0: @ 80A64D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A64EC + ldr r1, =sub_80A653C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A64D0 + + thumb_func_start sub_80A64EC +sub_80A64EC: @ 80A64EC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _080A6502 + ldrh r0, [r4, 0x2E] + negs r0, r0 + strh r0, [r4, 0x2E] +_080A6502: + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + subs r0, r1 + ldrh r5, [r4, 0x2E] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + cmp r0, 0 + bge _080A651C + negs r0, r0 +_080A651C: + strh r0, [r4, 0x2E] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + subs r0, r1 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x32] + strh r5, [r4, 0x30] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A64EC + + thumb_func_start sub_80A653C +sub_80A653C: @ 80A653C + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080A6560 + subs r0, r2, 0x1 + strh r0, [r1, 0x2E] + ldrh r0, [r1, 0x30] + ldrh r2, [r1, 0x24] + adds r0, r2 + strh r0, [r1, 0x24] + ldrh r0, [r1, 0x32] + ldrh r3, [r1, 0x26] + adds r0, r3 + strh r0, [r1, 0x26] + b _080A6566 +_080A6560: + adds r0, r1, 0 + bl sub_80A62DC +_080A6566: + pop {r0} + bx r0 + thumb_func_end sub_80A653C + + thumb_func_start sub_80A656C +sub_80A656C: @ 80A656C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080A659C + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r0, r1 + strh r0, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r3, [r2, 0x36] + adds r1, r3 + strh r1, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r2, 0x26] + b _080A65A2 +_080A659C: + adds r0, r2, 0 + bl sub_80A62DC +_080A65A2: + pop {r0} + bx r0 + thumb_func_end sub_80A656C + + thumb_func_start sub_80A65A8 +sub_80A65A8: @ 80A65A8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A65D8 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r4, 0x26] + b _080A65DE +_080A65D8: + adds r0, r4, 0 + bl sub_80A62DC +_080A65DE: + adds r0, r4, 0 + bl sub_80D30DC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A65A8 + + thumb_func_start sub_80A65EC +sub_80A65EC: @ 80A65EC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x34] + ldr r5, =gAnimBankTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, =sub_80A64D0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A65EC + + thumb_func_start sub_80A6630 +sub_80A6630: @ 80A6630 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080A6674 + subs r0, r1, 0x1 + strh r0, [r3, 0x2E] + ldr r2, =gSprites + movs r4, 0x34 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x30] + ldrh r4, [r0, 0x24] + adds r1, r4 + strh r1, [r0, 0x24] + movs r0, 0x34 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x32] + ldrh r2, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + b _080A667A + .pool +_080A6674: + adds r0, r3, 0 + bl sub_80A62DC +_080A667A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6630 + + thumb_func_start sub_80A6680 +sub_80A6680: @ 80A6680 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A66D0 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + ldrh r0, [r4, 0x34] + adds r1, r0 + strh r1, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + ldr r3, =gSprites + movs r0, 0x38 + ldrsh r2, [r4, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + lsls r1, 16 + asrs r1, 24 + strh r1, [r0, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x26] + b _080A66D6 + .pool +_080A66D0: + adds r0, r4, 0 + bl sub_80A62DC +_080A66D6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6680 + + thumb_func_start sub_80A66DC +sub_80A66DC: @ 80A66DC + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080A673E + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r1, r0 + strh r1, [r4, 0x32] + ldrh r1, [r4, 0x36] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r1, r0 + strh r1, [r4, 0x36] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _080A6744 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080A6744 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080A6744 +_080A673E: + adds r0, r4, 0 + bl sub_80A62DC +_080A6744: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A66DC + + thumb_func_start move_anim_8074EE0 +move_anim_8074EE0: @ 80A674C + push {r4,lr} + adds r4, r0, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end move_anim_8074EE0 + + thumb_func_start sub_80A6760 +sub_80A6760: @ 80A6760 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x34] + ldr r5, =gAnimBankAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, =sub_80A64D0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6760 + + thumb_func_start sub_80A67A4 +sub_80A67A4: @ 80A67A4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + bl ResetPaletteStructByUid + adds r0, r4, 0 + bl move_anim_8074EE0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A67A4 + + thumb_func_start sub_80A67BC +sub_80A67BC: @ 80A67BC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080A67D2 + adds r0, r2, 0 + bl sub_80A62DC +_080A67D2: + pop {r0} + bx r0 + thumb_func_end sub_80A67BC + + thumb_func_start sub_80A67D8 +sub_80A67D8: @ 80A67D8 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080A67EE + adds r0, r2, 0 + bl sub_80A62DC +_080A67EE: + pop {r0} + bx r0 + thumb_func_end sub_80A67D8 + + thumb_func_start sub_80A67F4 +sub_80A67F4: @ 80A67F4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A67F4 + + thumb_func_start sub_80A6814 +sub_80A6814: @ 80A6814 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6814 + + thumb_func_start sub_80A6838 +sub_80A6838: @ 80A6838 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, =gAnimBankAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6838 + + thumb_func_start sub_80A6864 +sub_80A6864: @ 80A6864 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + mov r8, r5 + ldr r7, =gAnimBankAttacker + ldrb r0, [r7] + movs r1, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, =gAnimBankTarget + ldrb r0, [r0] + movs r1, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bhi _080A68B0 + cmp r6, r0 + bcs _080A68A4 + lsls r0, r5, 16 + b _080A68C0 + .pool +_080A68A4: + ldrb r0, [r7] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A68BC +_080A68B0: + ldrh r1, [r4, 0x20] + lsls r0, r5, 16 + asrs r0, 16 + subs r1, r0 + strh r1, [r4, 0x20] + b _080A68C8 +_080A68BC: + mov r1, r8 + lsls r0, r1, 16 +_080A68C0: + asrs r0, 16 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] +_080A68C8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A6864 + + thumb_func_start sub_80A68D4 +sub_80A68D4: @ 80A68D4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + movs r5, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 8 + bl __divsi3 + strh r0, [r4, 0x3A] + strh r5, [r4, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A68D4 + + thumb_func_start sub_80A6900 +sub_80A6900: @ 80A6900 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6F3C + lsls r0, 24 + cmp r0, 0 + bne _080A692C + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + lsls r0, 16 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r0, 0 + b _080A692E +_080A692C: + movs r0, 0x1 +_080A692E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A6900 + + thumb_func_start sub_80A6934 +sub_80A6934: @ 80A6934 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6F3C + lsls r0, 24 + cmp r0, 0 + bne _080A6960 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + lsls r0, 16 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0 + b _080A6962 +_080A6960: + movs r0, 0x1 +_080A6962: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A6934 + + thumb_func_start oamt_add_pos2_onto_pos1 +oamt_add_pos2_onto_pos1: @ 80A6968 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + movs r2, 0 + strh r1, [r0, 0x20] + ldrh r1, [r0, 0x26] + ldrh r3, [r0, 0x22] + adds r1, r3 + strh r1, [r0, 0x22] + strh r2, [r0, 0x24] + strh r2, [r0, 0x26] + bx lr + thumb_func_end oamt_add_pos2_onto_pos1 + + thumb_func_start sub_80A6980 +sub_80A6980: @ 80A6980 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + cmp r1, 0 + bne _080A69A8 + ldr r4, =gAnimBankTarget + ldrb r0, [r4] + movs r1, 0 + bl sub_80A60AC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_80A60AC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080A69A8: + ldr r4, =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_80A6864 + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6980 + + thumb_func_start sub_80A69CC +sub_80A69CC: @ 80A69CC + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + cmp r1, 0 + bne _080A69F0 + ldr r4, =gAnimBankAttacker + ldrb r0, [r4] + movs r1, 0 + bl sub_80A60AC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + b _080A6A04 + .pool +_080A69F0: + ldr r4, =gAnimBankAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_80A60AC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 +_080A6A04: + bl sub_80A60AC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, =gBattleAnimArgs + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_80A6864 + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A69CC + + thumb_func_start GetBankSide +GetBankSide: @ 80A6A30 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gBanksByIdentity + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + bx lr + .pool + thumb_func_end GetBankSide + + thumb_func_start GetBankIdentity +GetBankIdentity: @ 80A6A44 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gBanksByIdentity + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end GetBankIdentity + + thumb_func_start GetBankByIdentity +GetBankByIdentity: @ 80A6A54 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r1, 0 + ldr r0, =gNoOfAllBanks + ldrb r2, [r0] + cmp r1, r2 + bcs _080A6A7E + ldr r4, =gBanksByIdentity + ldrb r0, [r4] + cmp r0, r3 + beq _080A6A7E +_080A6A6C: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r2 + bcs _080A6A7E + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080A6A6C +_080A6A7E: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end GetBankByIdentity + + thumb_func_start AnimBankSpriteExists +AnimBankSpriteExists: @ 80A6A90 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A6ABC + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + cmp r0, r4 + beq _080A6B0A + ldr r0, =gAnimBankTarget + ldrb r0, [r0] + cmp r0, r4 + beq _080A6B0A + b _080A6B18 + .pool +_080A6ABC: + ldr r0, =gBanksByIdentity + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080A6B18 + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A6AF0 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + b _080A6AFE + .pool +_080A6AF0: + ldr r1, =gBattlePartyID + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty +_080A6AFE: + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080A6B18 +_080A6B0A: + movs r0, 0x1 + b _080A6B1A + .pool +_080A6B18: + movs r0, 0 +_080A6B1A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end AnimBankSpriteExists + + thumb_func_start IsDoubleBattle +IsDoubleBattle: @ 80A6B20 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + bx lr + .pool + thumb_func_end IsDoubleBattle + + thumb_func_start sub_80A6B30 +sub_80A6B30: @ 80A6B30 + push {r4,lr} + adds r4, r0, 0 + bl IsContest + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080A6B64 + ldr r0, =gUnknown_0202305C + ldr r0, [r0] + str r0, [r4] + ldr r0, =gUnknown_02023060 + ldr r0, [r0] + str r0, [r4, 0x4] + movs r1, 0 + movs r0, 0xE + strb r0, [r4, 0x8] + movs r0, 0x1 + strb r0, [r4, 0x9] + strh r1, [r4, 0xA] + b _080A6B7E + .pool +_080A6B64: + ldr r0, =gUnknown_0202305C + ldr r0, [r0] + str r0, [r4] + ldr r0, =gUnknown_02023060 + ldr r0, [r0] + str r0, [r4, 0x4] + movs r0, 0x8 + strb r0, [r4, 0x8] + movs r0, 0x1 + strb r0, [r4, 0x9] + movs r0, 0x80 + lsls r0, 2 + strh r0, [r4, 0xA] +_080A6B7E: + strh r1, [r4, 0xC] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6B30 + + thumb_func_start sub_80A6B90 +sub_80A6B90: @ 80A6B90 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + bl IsContest + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080A6BC4 + ldr r0, =gUnknown_0202305C + ldr r0, [r0] + str r0, [r4] + ldr r0, =gUnknown_02023060 + ldr r0, [r0] + str r0, [r4, 0x4] + movs r1, 0 + movs r0, 0xE + strb r0, [r4, 0x8] + movs r0, 0x1 + strb r0, [r4, 0x9] + strh r1, [r4, 0xA] + b _080A6BEA + .pool +_080A6BC4: + cmp r5, 0x1 + bne _080A6BD0 + adds r0, r4, 0 + bl sub_80A6B30 + b _080A6BEC +_080A6BD0: + ldr r0, =gUnknown_0202305C + ldr r0, [r0] + str r0, [r4] + ldr r0, =gUnknown_02023060 + ldr r0, [r0] + str r0, [r4, 0x4] + movs r0, 0x9 + strb r0, [r4, 0x8] + movs r0, 0x2 + strb r0, [r4, 0x9] + movs r0, 0xC0 + lsls r0, 2 + strh r0, [r4, 0xA] +_080A6BEA: + strh r1, [r4, 0xC] +_080A6BEC: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6B90 + + thumb_func_start sub_80A6BFC +sub_80A6BFC: @ 80A6BFC + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_0202305C + ldr r0, [r0] + str r0, [r4] + ldr r0, =gUnknown_02023060 + ldr r0, [r0] + str r0, [r4, 0x4] + bl IsContest + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080A6C30 + movs r0, 0 + movs r1, 0xE + strb r1, [r4, 0x8] + movs r1, 0x1 + strb r1, [r4, 0x9] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + b _080A6C60 + .pool +_080A6C30: + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl sub_80A8364 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080A6C50 + movs r0, 0x8 + strb r0, [r4, 0x8] + strb r1, [r4, 0x9] + movs r0, 0x80 + lsls r0, 2 + b _080A6C5C + .pool +_080A6C50: + movs r0, 0x9 + strb r0, [r4, 0x8] + movs r0, 0x2 + strb r0, [r4, 0x9] + movs r0, 0xC0 + lsls r0, 2 +_080A6C5C: + strh r0, [r4, 0xA] + strh r5, [r4, 0xC] +_080A6C60: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A6BFC + + thumb_func_start sub_80A6C68 +sub_80A6C68: @ 80A6C68 + push {lr} + sub sp, 0x20 + adds r1, r0, 0 + add r0, sp, 0xC + bl sub_80A6B90 + movs r0, 0 + str r0, [sp, 0x1C] + add r0, sp, 0x1C + ldr r1, [sp, 0xC] + ldr r2, =0x05000800 + bl CpuSet + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + ldr r1, [sp, 0xC] + movs r2, 0x80 + lsls r2, 6 + add r3, sp, 0xC + ldrh r3, [r3, 0xA] + bl LoadBgTiles + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + movs r1, 0x20 + str r1, [sp] + movs r1, 0x40 + str r1, [sp, 0x4] + movs r1, 0x11 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + add r0, sp, 0xC + ldrb r0, [r0, 0x9] + bl CopyBgTilemapBufferToVram + add sp, 0x20 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6C68 + + thumb_func_start sub_80A6CC0 +sub_80A6CC0: @ 80A6CC0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r5, r0, 0 + mov r8, r1 + adds r6, r2, 0 + movs r0, 0 + str r0, [sp] + ldr r4, =gUnknown_0202305C + ldr r1, [r4] + ldr r2, =0x05000800 + mov r0, sp + bl CpuSet + ldr r1, [r4] + mov r0, r8 + bl LZDecompressWram + lsls r5, 24 + lsrs r5, 24 + ldr r1, [r4] + movs r2, 0x80 + lsls r2, 6 + lsls r6, 16 + lsrs r6, 16 + adds r0, r5, 0 + adds r3, r6, 0 + bl LoadBgTiles + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6CC0 + + thumb_func_start sub_80A6D10 +sub_80A6D10: @ 80A6D10 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x40 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A6D10 + + thumb_func_start sub_80A6D48 +sub_80A6D48: @ 80A6D48 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6D10 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl CopyBgTilemapBufferToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6D48 + + thumb_func_start sub_80A6D60 +sub_80A6D60: @ 80A6D60 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r2, 0 + ldrb r0, [r4, 0x9] + bl sub_80A6D10 + bl IsContest + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080A6D86 + ldrb r0, [r4, 0x8] + ldr r1, [r4, 0x4] + lsls r3, r5, 24 + lsrs r3, 24 + movs r2, 0 + bl sub_80A4720 +_080A6D86: + ldrb r0, [r4, 0x9] + bl CopyBgTilemapBufferToVram + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A6D60 + + thumb_func_start sub_80A6D94 +sub_80A6D94: @ 80A6D94 + push {lr} + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A6DA4 + movs r0, 0x2 + b _080A6DA6 +_080A6DA4: + movs r0, 0x1 +_080A6DA6: + pop {r1} + bx r1 + thumb_func_end sub_80A6D94 + + thumb_func_start sub_80A6DAC +sub_80A6DAC: @ 80A6DAC + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _080A6DBE + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A6DD4 +_080A6DBE: + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x1 + bl SetAnimBgAttribute + b _080A6DE8 +_080A6DD4: + movs r0, 0x3 + movs r1, 0 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0 + bl SetAnimBgAttribute +_080A6DE8: + pop {r0} + bx r0 + thumb_func_end sub_80A6DAC + + thumb_func_start sub_80A6DEC +sub_80A6DEC: @ 80A6DEC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_80A6E14 + ldr r1, =sub_80A65A8 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6DEC + + thumb_func_start sub_80A6E14 +sub_80A6E14: @ 80A6E14 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x32] + ldrh r1, [r5, 0x30] + subs r0, r1 + ldrh r4, [r5, 0x36] + ldrh r1, [r5, 0x34] + subs r4, r1 + lsls r4, 24 + lsrs r4, 16 + lsls r0, 24 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r5, r2] + bl __divsi3 + movs r6, 0 + strh r0, [r5, 0x30] + lsls r4, 16 + asrs r4, 16 + movs r0, 0x2E + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl __divsi3 + strh r0, [r5, 0x32] + strh r6, [r5, 0x36] + strh r6, [r5, 0x34] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A6E14 + + thumb_func_start obj_translate_based_on_private_1_2_3_4 +obj_translate_based_on_private_1_2_3_4: @ 80A6E54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + movs r0, 0x32 + ldrsh r1, [r7, r0] + movs r2, 0x30 + ldrsh r0, [r7, r2] + subs r1, r0 + movs r3, 0x36 + ldrsh r2, [r7, r3] + movs r3, 0x34 + ldrsh r0, [r7, r3] + subs r2, r0 + lsrs r0, r1, 31 + mov r8, r0 + lsrs r3, r2, 31 + mov r9, r3 + cmp r1, 0 + bge _080A6E80 + negs r1, r1 +_080A6E80: + lsls r0, r1, 24 + lsrs r6, r0, 16 + adds r0, r2, 0 + cmp r0, 0 + bge _080A6E8C + negs r0, r0 +_080A6E8C: + lsls r0, 24 + lsrs r5, r0, 16 + movs r0, 0x2E + ldrsh r4, [r7, r0] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r8 + cmp r2, 0 + beq _080A6EB8 + movs r0, 0x1 + orrs r6, r0 + b _080A6EBC +_080A6EB8: + ldr r0, =0x0000fffe + ands r6, r0 +_080A6EBC: + mov r3, r9 + cmp r3, 0 + beq _080A6ECC + movs r0, 0x1 + orrs r5, r0 + b _080A6ED0 + .pool +_080A6ECC: + ldr r0, =0x0000fffe + ands r5, r0 +_080A6ED0: + movs r0, 0 + strh r6, [r7, 0x30] + strh r5, [r7, 0x32] + strh r0, [r7, 0x36] + strh r0, [r7, 0x34] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end obj_translate_based_on_private_1_2_3_4 + + thumb_func_start sub_80A6EEC +sub_80A6EEC: @ 80A6EEC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, =sub_80A6F98 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6EEC + + thumb_func_start sub_80A6F14 +sub_80A6F14: @ 80A6F14 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, =sub_80A6FB4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A6F14 + + thumb_func_start sub_80A6F3C +sub_80A6F3C: @ 80A6F3C + push {r4-r6,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080A6F4C + movs r0, 0x1 + b _080A6F90 +_080A6F4C: + ldrh r1, [r2, 0x30] + ldrh r4, [r2, 0x32] + ldrh r6, [r2, 0x34] + ldrh r5, [r2, 0x36] + adds r0, r6, r1 + lsls r3, r0, 16 + lsrs r6, r3, 16 + adds r0, r5, r4 + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080A6F6E + lsrs r0, r3, 24 + negs r0, r0 + b _080A6F70 +_080A6F6E: + lsrs r0, r3, 24 +_080A6F70: + strh r0, [r2, 0x24] + movs r0, 0x1 + ands r4, r0 + cmp r4, 0 + beq _080A6F80 + lsrs r0, r5, 8 + negs r0, r0 + b _080A6F82 +_080A6F80: + lsrs r0, r5, 8 +_080A6F82: + strh r0, [r2, 0x26] + strh r6, [r2, 0x34] + strh r5, [r2, 0x36] + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + movs r0, 0 +_080A6F90: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A6F3C + + thumb_func_start sub_80A6F98 +sub_80A6F98: @ 80A6F98 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6F3C + lsls r0, 24 + cmp r0, 0 + beq _080A6FAC + adds r0, r4, 0 + bl sub_80A62DC +_080A6FAC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6F98 + + thumb_func_start sub_80A6FB4 +sub_80A6FB4: @ 80A6FB4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8039E9C + adds r0, r4, 0 + bl sub_80A6F3C + lsls r0, 24 + cmp r0, 0 + beq _080A6FCE + adds r0, r4, 0 + bl sub_80A62DC +_080A6FCE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6FB4 + + thumb_func_start sub_80A6FD4 +sub_80A6FD4: @ 80A6FD4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + cmp r0, 0 + bge _080A6FE8 + negs r0, r0 +_080A6FE8: + lsls r0, 8 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A6FD4 + + thumb_func_start sub_80A7000 +sub_80A7000: @ 80A7000 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_80A6FD4 + ldr r1, =sub_80A6F98 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7000 + + thumb_func_start sub_80A7028 +sub_80A7028: @ 80A7028 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + movs r0, 0x32 + ldrsh r1, [r7, r0] + movs r2, 0x30 + ldrsh r0, [r7, r2] + subs r1, r0 + movs r3, 0x36 + ldrsh r2, [r7, r3] + movs r3, 0x34 + ldrsh r0, [r7, r3] + subs r2, r0 + lsrs r0, r1, 31 + mov r8, r0 + lsrs r3, r2, 31 + mov r9, r3 + cmp r1, 0 + bge _080A7054 + negs r1, r1 +_080A7054: + lsls r0, r1, 20 + lsrs r6, r0, 16 + adds r0, r2, 0 + cmp r0, 0 + bge _080A7060 + negs r0, r0 +_080A7060: + lsls r0, 20 + lsrs r5, r0, 16 + movs r0, 0x2E + ldrsh r4, [r7, r0] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r8 + cmp r2, 0 + beq _080A708C + movs r0, 0x1 + orrs r6, r0 + b _080A7090 +_080A708C: + ldr r0, =0x0000fffe + ands r6, r0 +_080A7090: + mov r3, r9 + cmp r3, 0 + beq _080A70A0 + movs r0, 0x1 + orrs r5, r0 + b _080A70A4 + .pool +_080A70A0: + ldr r0, =0x0000fffe + ands r5, r0 +_080A70A4: + movs r0, 0 + strh r6, [r7, 0x30] + strh r5, [r7, 0x32] + strh r0, [r7, 0x36] + strh r0, [r7, 0x34] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7028 + + thumb_func_start sub_80A70C0 +sub_80A70C0: @ 80A70C0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_80A7028 + ldr r1, =sub_80A7144 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A70C0 + + thumb_func_start sub_80A70E8 +sub_80A70E8: @ 80A70E8 + push {r4-r6,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080A70F8 + movs r0, 0x1 + b _080A713C +_080A70F8: + ldrh r1, [r2, 0x30] + ldrh r4, [r2, 0x32] + ldrh r6, [r2, 0x34] + ldrh r5, [r2, 0x36] + adds r0, r6, r1 + lsls r3, r0, 16 + lsrs r6, r3, 16 + adds r0, r5, r4 + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080A711A + lsrs r0, r3, 20 + negs r0, r0 + b _080A711C +_080A711A: + lsrs r0, r3, 20 +_080A711C: + strh r0, [r2, 0x24] + movs r0, 0x1 + ands r4, r0 + cmp r4, 0 + beq _080A712C + lsrs r0, r5, 4 + negs r0, r0 + b _080A712E +_080A712C: + lsrs r0, r5, 4 +_080A712E: + strh r0, [r2, 0x26] + strh r6, [r2, 0x34] + strh r5, [r2, 0x36] + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + movs r0, 0 +_080A713C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A70E8 + + thumb_func_start sub_80A7144 +sub_80A7144: @ 80A7144 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A70E8 + lsls r0, 24 + cmp r0, 0 + beq _080A7158 + adds r0, r4, 0 + bl sub_80A62DC +_080A7158: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7144 + + thumb_func_start sub_80A7160 +sub_80A7160: @ 80A7160 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + cmp r0, 0 + bge _080A7174 + negs r0, r0 +_080A7174: + lsls r0, 4 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_80A7028 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7160 + + thumb_func_start sub_80A718C +sub_80A718C: @ 80A718C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_80A7160 + ldr r1, =sub_80A7144 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A718C + + thumb_func_start obj_id_set_rotscale +obj_id_set_rotscale: @ 80A71B4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r5, =0xffff0000 + lsls r2, 16 + lsrs r1, 16 + orrs r1, r2 + str r1, [sp] + ldr r0, [sp, 0x4] + ands r0, r5 + orrs r0, r3 + str r0, [sp, 0x4] + bl sub_80A7238 + lsls r0, 24 + cmp r0, 0 + beq _080A71F0 + mov r0, sp + ldrh r0, [r0] + negs r0, r0 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp] + ands r1, r5 + orrs r1, r0 + str r1, [sp] +_080A71F0: + ldr r1, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x3] + lsls r4, 26 + lsrs r4, 27 + add r5, sp, 0x8 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ObjAffineSet + ldr r0, =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 obj_id_set_rotscale + + thumb_func_start sub_80A7238 +sub_80A7238: @ 80A7238 + push {r4,lr} + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A7268 + ldr r4, =gSprites + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x32 + ldrsh r0, [r1, r2] + cmp r0, 0xC9 + beq _080A7268 + movs r0, 0x1 + b _080A726A + .pool +_080A7268: + movs r0, 0 +_080A726A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A7238 + + thumb_func_start sub_80A7270 +sub_80A7270: @ 80A7270 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r1, =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A72A6 + adds r0, r7, 0 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A72B4 +_080A72A6: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080A72B4: + ldr r1, =gSprites + lsls r4, r6, 4 + adds r0, r4, r6 + lsls r0, 2 + adds r5, r0, r1 + movs r0, 0x3 + mov r1, r8 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x1] + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A7312 + ldrb r0, [r5, 0x1] + lsls r0, 30 + cmp r0, 0 + bne _080A7312 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] +_080A7312: + ldr r1, =gSprites + adds r0, r4, r6 + lsls r0, 2 + adds r0, r1 + ldrb r3, [r0, 0x1] + movs r1, 0x3 + orrs r3, r1 + strb r3, [r0, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + bl CalcCenterToCornerVec + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7270 + + thumb_func_start sub_80A7344 +sub_80A7344: @ 80A7344 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + movs r2, 0xD + negs r2, r2 + ands r1, r2 + strb r1, [r0, 0x1] + adds r3, r0, 0 + adds r3, 0x2C + ldrb r2, [r3] + movs r1, 0x7F + ands r1, r2 + strb r1, [r3] + ldrb r3, [r0, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + bl CalcCenterToCornerVec + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7344 + + thumb_func_start sub_80A73A0 +sub_80A73A0: @ 80A73A0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r2 + ldrb r0, [r2, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r1, =gOamMatrices + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x4] + movs r3, 0x4 + ldrsh r0, [r0, r3] + cmp r0, 0 + bge _080A73CC + negs r0, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080A73CC: + lsls r0, r1, 16 + asrs r0, 19 + strh r0, [r2, 0x26] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A73A0 + + thumb_func_start sub_80A73E0 +sub_80A73E0: @ 80A73E0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 16 + lsrs r5, r2, 16 + lsls r3, 16 + lsrs r7, r3, 16 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7486 + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + cmp r6, 0 + beq _080A742E + 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 +_080A742E: + ldr r6, =0xffff0000 + lsls r0, r7, 16 + orrs r5, r0 + str r5, [sp] + ldr r0, [sp, 0x4] + ands r0, r6 + mov r1, r8 + orrs r0, r1 + str r0, [sp, 0x4] + bl sub_80A7238 + lsls r0, 24 + cmp r0, 0 + beq _080A745C + mov r0, sp + ldrh r0, [r0] + negs r0, r0 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp] + ands r1, r6 + orrs r1, r0 + str r1, [sp] +_080A745C: + ldrb r4, [r4, 0x3] + lsls r4, 26 + lsrs r4, 27 + add r5, sp, 0x8 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ObjAffineSet + ldr r0, =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] +_080A7486: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A73E0 + + thumb_func_start sub_80A749C +sub_80A749C: @ 80A749C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r3, 0 + bl sub_80A73E0 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A749C + + thumb_func_start sub_80A74DC +sub_80A74DC: @ 80A74DC + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl ArcTan2 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80A74DC + + thumb_func_start sub_80A74F4 +sub_80A74F4: @ 80A74F4 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl sub_80A74DC + lsls r0, 16 + negs r0, r0 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80A74F4 + + thumb_func_start sub_80A750C +sub_80A750C: @ 80A750C + push {r4-r7,lr} + lsls r1, 24 + lsls r0, 20 + lsrs r0, 16 + cmp r1, 0 + bne _080A7588 + ldr r2, =gPlttBufferUnfaded + ldr r1, =gPlttBufferFaded + lsls r0, 1 + adds r4, r0, r1 + adds r5, r0, r2 + movs r6, 0xF +_080A7524: + ldr r0, [r5] + lsls r2, r0, 27 + lsrs r2, 27 + lsls r1, r0, 22 + lsrs r1, 27 + adds r2, r1 + lsls r0, 17 + lsrs r0, 27 + adds r0, r2 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + ands r0, r1 + ldrb r1, [r4] + movs r3, 0x20 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4] + lsls r3, r0, 5 + ldrh r1, [r4] + ldr r7, =0xfffffc1f + adds r2, r7, 0 + ands r1, r2 + orrs r1, r3 + strh r1, [r4] + lsls r0, 2 + ldrb r1, [r4, 0x1] + movs r3, 0x7D + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x1] + adds r4, 0x2 + adds r5, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080A7524 + b _080A7598 + .pool +_080A7588: + lsls r1, r0, 1 + ldr r0, =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, =gPlttBufferFaded + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet +_080A7598: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A750C + + thumb_func_start sub_80A75AC +sub_80A75AC: @ 80A75AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + ldr r6, [sp, 0x30] + lsls r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + lsls r5, 24 + lsrs r5, 24 + str r5, [sp] + lsls r6, 24 + lsrs r6, 24 + str r6, [sp, 0x4] + movs r4, 0 + cmp r0, 0 + beq _080A7602 + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A75F6 + movs r4, 0xE + b _080A7602 +_080A75F6: + bl sub_80A6D94 + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x1 + lsls r4, r0 +_080A7602: + cmp r7, 0 + beq _080A7614 + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A7614: + mov r0, r8 + cmp r0, 0 + beq _080A7628 + ldr r0, =gAnimBankTarget + ldrb r0, [r0] + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A7628: + mov r0, r9 + cmp r0, 0 + beq _080A764E + ldr r6, =gAnimBankAttacker + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A764E + ldrb r0, [r6] + eors r0, r5 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A764E: + mov r0, r10 + cmp r0, 0 + beq _080A7674 + ldr r6, =gAnimBankTarget + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A7674 + ldrb r0, [r6] + eors r0, r5 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A7674: + ldr r0, [sp] + cmp r0, 0 + beq _080A769A + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A7694 + movs r0, 0x80 + lsls r0, 1 + b _080A7698 + .pool +_080A7694: + movs r0, 0x80 + lsls r0, 7 +_080A7698: + orrs r4, r0 +_080A769A: + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _080A76B0 + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A76B0 + movs r0, 0x80 + lsls r0, 2 + orrs r4, r0 +_080A76B0: + adds r0, r4, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A75AC + + thumb_func_start sub_80A76C4 +sub_80A76C4: @ 80A76C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + movs r4, 0 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A76F2 + cmp r5, 0 + beq _080A77A0 + movs r4, 0x80 + lsls r4, 11 + b _080A77A0 +_080A76F2: + cmp r5, 0 + beq _080A771A + movs r0, 0 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A771A + movs r0, 0 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r4, 0x1 + lsls r4, r0 +_080A771A: + cmp r6, 0 + beq _080A7746 + movs r0, 0x2 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A7746 + movs r0, 0x2 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A7746: + cmp r7, 0 + beq _080A7772 + movs r0, 0x1 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A7772 + movs r0, 0x1 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A7772: + mov r0, r8 + cmp r0, 0 + beq _080A77A0 + movs r0, 0x3 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A77A0 + movs r0, 0x3 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_080A77A0: + adds r0, r4, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A76C4 + + thumb_func_start sub_80A77AC +sub_80A77AC: @ 80A77AC + lsls r0, 24 + lsrs r0, 24 + bx lr + thumb_func_end sub_80A77AC + + thumb_func_start sub_80A77B4 +sub_80A77B4: @ 80A77B4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl GetBankByIdentity + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80A77B4 + + thumb_func_start sub_80A77C8 +sub_80A77C8: @ 80A77C8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A7806 + ldr r2, =gBattleAnimArgs + movs r3, 0x6 + ldrsh r0, [r2, r3] + movs r1, 0 + cmp r0, 0 + bne _080A77E2 + movs r1, 0x1 +_080A77E2: + movs r3, 0x4 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080A77F8 + adds r0, r4, 0 + bl sub_80A69CC + b _080A77FE + .pool +_080A77F8: + adds r0, r4, 0 + bl sub_80A6980 +_080A77FE: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080A781A +_080A7806: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _080A781A + adds r0, r4, 0 + bl move_anim_8074EE0 +_080A781A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A77C8 + + thumb_func_start sub_80A7820 +sub_80A7820: @ 80A7820 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, =gBattleAnimArgs + movs r1, 0xA + ldrsh r0, [r6, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0 + cmp r0, 0 + bne _080A7838 + movs r1, 0x1 +_080A7838: + ldrb r0, [r6, 0xA] + movs r7, 0x1 + cmp r0, 0 + bne _080A7842 + movs r7, 0x3 +_080A7842: + adds r0, r5, 0 + bl sub_80A69CC + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A785C + ldrh r0, [r6, 0x4] + negs r0, r0 + strh r0, [r6, 0x4] +_080A785C: + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldr r4, =gAnimBankTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + adds r1, r7, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, =sub_80A6EEC + str r0, [r5, 0x1C] + ldr r1, =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7820 + + thumb_func_start sub_80A78AC +sub_80A78AC: @ 80A78AC + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80A69CC + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A78CC + ldr r1, =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A78CC: + ldr r4, =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, =gAnimBankTarget + ldrb r0, [r5] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_80A68D4 + ldr r0, =sub_80A791C + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A78AC + + thumb_func_start sub_80A791C +sub_80A791C: @ 80A791C + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6900 + lsls r0, 24 + cmp r0, 0 + beq _080A7930 + adds r0, r4, 0 + bl DestroyAnimSprite +_080A7930: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A791C + + thumb_func_start sub_80A7938 +sub_80A7938: @ 80A7938 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, =gBattleAnimArgs + movs r2, 0xC + ldrsh r1, [r0, r2] + cmp r1, 0 + bne _080A7950 + movs r4, 0x1 + movs r7, 0x3 + b _080A7954 + .pool +_080A7950: + movs r4, 0 + movs r7, 0x1 +_080A7954: + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080A796C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A69CC + ldr r0, =gAnimBankAttacker + b _080A7976 + .pool +_080A796C: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A6980 + ldr r0, =gAnimBankTarget +_080A7976: + ldrb r6, [r0] + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A798E + ldr r1, =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080A798E: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80A6980 + ldr r4, =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + adds r0, r6, 0 + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r5, 0x32] + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r5, 0x36] + ldr r0, =sub_80A6EEC + str r0, [r5, 0x1C] + ldr r1, =DestroyAnimSprite + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7938 + + thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode +duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + beq _080A7A52 + movs r6, 0 + ldr r2, =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r1, r0, 2 +_080A7A04: + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r4, r0, r2 + adds r5, r4, 0 + adds r5, 0x3E + ldrb r0, [r5] + lsls r0, 31 + cmp r0, 0 + bne _080A7A48 + adds r0, r4, 0 + adds r1, r2 + movs r2, 0x44 + bl memcpy + ldrb r1, [r4, 0x1] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x1] + ldrb r0, [r5] + adds r2, 0x8 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r5] + lsls r0, r6, 16 + asrs r0, 16 + b _080A7A56 + .pool +_080A7A48: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3F + bls _080A7A04 +_080A7A52: + movs r0, 0x1 + negs r0, r0 +_080A7A56: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode + + thumb_func_start obj_delete_but_dont_free_vram +obj_delete_but_dont_free_vram: @ 80A7A5C + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r3] + bl DestroySprite + pop {r0} + bx r0 + thumb_func_end obj_delete_but_dont_free_vram + + thumb_func_start sub_80A7A74 +sub_80A7A74: @ 80A7A74 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + movs r3, 0 + ldr r2, =gBattleAnimArgs + movs r0, 0x4 + ldrsh r1, [r2, r0] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r1, r0 + ble _080A7A8E + movs r3, 0x1 +_080A7A8E: + cmp r1, r0 + bge _080A7A94 + ldr r3, =0x0000ffff +_080A7A94: + movs r0, 0x6 + ldrsh r1, [r2, r0] + movs r4, 0x2 + ldrsh r0, [r2, r4] + cmp r1, r0 + ble _080A7AA2 + movs r6, 0x1 +_080A7AA2: + cmp r1, r0 + bge _080A7AA8 + ldr r6, =0x0000ffff +_080A7AA8: + ldr r0, =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r1, 0 + strh r1, [r4, 0x8] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0xA] + strh r1, [r4, 0xC] + ldrh r0, [r2] + strh r0, [r4, 0xE] + ldrh r0, [r2, 0x2] + strh r0, [r4, 0x10] + strh r3, [r4, 0x12] + strh r6, [r4, 0x14] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x16] + ldrh r0, [r2, 0x6] + strh r0, [r4, 0x18] + ldrh r1, [r2, 0x2] + lsls r1, 8 + ldrh r0, [r2] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r0, =sub_80A7AFC + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7A74 + + thumb_func_start sub_80A7AFC +sub_80A7AFC: @ 80A7AFC + 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 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xA + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080A7B90 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A7B4C + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r1, [r4, r3] + movs r3, 0x16 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080A7B60 + ldrh r0, [r4, 0x12] + adds r0, r2, r0 + strh r0, [r4, 0xE] + b _080A7B60 + .pool +_080A7B4C: + ldrh r2, [r4, 0x10] + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r3, 0x18 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080A7B60 + ldrh r0, [r4, 0x14] + adds r0, r2, r0 + strh r0, [r4, 0x10] +_080A7B60: + ldrh r1, [r4, 0x10] + lsls r1, 8 + ldrh r0, [r4, 0xE] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0xE + ldrsh r1, [r4, r0] + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080A7B90 + movs r3, 0x10 + ldrsh r1, [r4, r3] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080A7B90 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A7B90: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A7AFC + + thumb_func_start sub_80A7B98 +sub_80A7B98: @ 80A7B98 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gBattleAnimArgs + ldrb r0, [r0] + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + bne _080A7BBC + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080A7BE2 + .pool +_080A7BBC: + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, =gSprites + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x5] + lsrs r1, 4 + lsls r1, 4 + ldr r3, =0x00000101 + adds r2, r3, 0 + adds r1, r2 + strh r1, [r0, 0x8] + bl sub_80A7BF4 +_080A7BE2: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7B98 + + thumb_func_start sub_80A7BF4 +sub_80A7BF4: @ 80A7BF4 + ldr r3, =gBattleAnimArgs + ldrh r1, [r3, 0x2] + movs r2, 0 + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0xE] + strh r2, [r0, 0x10] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0x12] + strh r2, [r0, 0x14] + ldrh r1, [r3, 0x8] + strh r1, [r0, 0x16] + ldr r1, =sub_80A7C1C + str r1, [r0] + bx lr + .pool + thumb_func_end sub_80A7BF4 + + thumb_func_start sub_80A7C1C +sub_80A7C1C: @ 80A7C1C + 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 + adds r4, r0, r1 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080A7CAC + movs r0, 0 + strh r0, [r4, 0x10] + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080A7C78 + ldrh r2, [r4, 0xC] + adds r2, 0x1 + strh r2, [r4, 0xC] + ldrh r0, [r4, 0x8] + lsls r2, 24 + lsrs r2, 24 + ldrh r3, [r4, 0xA] + movs r1, 0xF + bl BlendPalette + movs r2, 0xC + ldrsh r1, [r4, r2] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080A7CAC + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080A7CAC + .pool +_080A7C78: + ldrh r2, [r4, 0xC] + subs r2, 0x1 + strh r2, [r4, 0xC] + ldrh r0, [r4, 0x8] + lsls r2, 24 + lsrs r2, 24 + ldrh r3, [r4, 0xA] + movs r1, 0xF + bl BlendPalette + movs r0, 0xC + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080A7CAC + ldrh r0, [r4, 0x16] + subs r0, 0x1 + strh r0, [r4, 0x16] + lsls r0, 16 + cmp r0, 0 + beq _080A7CA6 + strh r1, [r4, 0x10] + strh r1, [r4, 0x14] + b _080A7CAC +_080A7CA6: + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A7CAC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A7C1C + + thumb_func_start sub_80A7CB4 +sub_80A7CB4: @ 80A7CB4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =gBattleAnimArgs + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _080A7CD8 + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _080A7CEE + .pool +_080A7CD8: + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + lsls r1, r2, 4 + ldr r2, =0x00000101 + adds r1, r2 + strh r1, [r0, 0x8] + bl sub_80A7BF4 +_080A7CEE: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7CB4 + + thumb_func_start sub_80A7CFC +sub_80A7CFC: @ 80A7CFC + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + strh r1, [r3, 0x16] + strh r1, [r3, 0x18] + strh r1, [r3, 0x1A] + strh r4, [r3, 0x26] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r3, 0x1C] + strh r0, [r3, 0x1E] + strh r1, [r3, 0x20] + adds r0, r3, 0 + adds r0, 0x22 + adds r3, 0x24 + adds r1, r3, 0 + bl sub_80A8048 + adds r0, r4, 0 + movs r1, 0 + bl sub_80A7270 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A7CFC + + thumb_func_start sub_80A7D34 +sub_80A7D34: @ 80A7D34 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, =gUnknown_02038444 + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + bl sub_80A8050 + movs r3, 0x16 + ldrsh r1, [r4, r3] + lsls r1, 3 + adds r1, r0, r1 + str r1, [r5] + movs r6, 0 + ldrsh r2, [r1, r6] + ldr r0, =0x00007ffe + cmp r2, r0 + beq _080A7DDC + cmp r2, r0 + bgt _080A7E3C + subs r0, 0x1 + cmp r2, r0 + beq _080A7DE2 + ldrb r0, [r1, 0x5] + cmp r0, 0 + bne _080A7D82 + ldrh r0, [r1] + strh r0, [r4, 0x1C] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x1E] + ldrb r0, [r1, 0x4] + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + adds r0, r1, 0 + adds r0, 0x8 + str r0, [r5] +_080A7D82: + ldr r1, [r5] + ldrh r0, [r1] + ldrh r2, [r4, 0x1C] + adds r0, r2 + strh r0, [r4, 0x1C] + ldrh r0, [r1, 0x2] + ldrh r3, [r4, 0x1E] + adds r0, r3 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x20] + ldrb r1, [r1, 0x4] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r6, 0x1C + ldrsh r1, [r4, r6] + movs r3, 0x1E + ldrsh r2, [r4, r3] + ldrh r3, [r4, 0x20] + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_80A7E6C + ldrh r0, [r4, 0x18] + adds r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + ldr r1, [r5] + ldrb r1, [r1, 0x5] + cmp r0, r1 + blt _080A7E62 + movs r0, 0 + strh r0, [r4, 0x18] + b _080A7E34 + .pool +_080A7DDC: + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x16] + b _080A7E62 +_080A7DE2: + ldrh r2, [r1, 0x2] + movs r6, 0x2 + ldrsh r0, [r1, r6] + cmp r0, 0 + beq _080A7E34 + ldrh r1, [r4, 0x1A] + movs r3, 0x1A + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080A7E02 + subs r0, r1, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + cmp r0, 0 + bne _080A7E04 + b _080A7E34 +_080A7E02: + strh r2, [r4, 0x1A] +_080A7E04: + movs r6, 0x16 + ldrsh r0, [r4, r6] + cmp r0, 0 + beq _080A7E62 + ldr r3, =gUnknown_02038444 + ldr r5, =0x00007ffd +_080A7E10: + ldrh r2, [r4, 0x16] + subs r1, r2, 0x1 + strh r1, [r4, 0x16] + ldr r0, [r3] + subs r0, 0x8 + str r0, [r3] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r0, r5 + beq _080A7E60 + lsls r0, r1, 16 + cmp r0, 0 + bne _080A7E10 + b _080A7E62 + .pool +_080A7E34: + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + b _080A7E62 +_080A7E3C: + ldr r2, =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_80A7344 + movs r0, 0 + b _080A7E64 + .pool +_080A7E60: + strh r2, [r4, 0x16] +_080A7E62: + movs r0, 0x1 +_080A7E64: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80A7D34 + + thumb_func_start sub_80A7E6C +sub_80A7E6C: @ 80A7E6C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80A7F18 + lsls r0, 16 + lsrs r0, 15 + movs r1, 0x40 + subs r5, r1, r0 + ldr r1, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrb r1, [r4, 0x3] + lsls r1, 26 + lsrs r1, 27 + lsls r0, r5, 8 + ldr r2, =gOamMatrices + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + cmp r0, 0x80 + ble _080A7EA8 + movs r0, 0x80 +_080A7EA8: + subs r0, r5, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7E6C + + thumb_func_start sub_80A7EC0 +sub_80A7EC0: @ 80A7EC0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + lsrs r0, 24 + bl sub_80A7F18 + lsls r0, 16 + lsrs r0, 15 + movs r1, 0x40 + subs r5, r1, r0 + ldr r1, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrb r1, [r4, 0x3] + lsls r1, 26 + lsrs r1, 27 + lsls r0, r5, 8 + ldr r2, =gOamMatrices + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + cmp r0, 0x80 + ble _080A7F00 + movs r0, 0x80 +_080A7F00: + subs r0, r5, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A7EC0 + + thumb_func_start sub_80A7F18 +sub_80A7F18: @ 80A7F18 + push {r4-r7,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x2E] + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r1, =gBankSpriteIds + ldr r7, =0x00000181 + ldr r0, =gBattleMonForms + adds r6, r5, r0 +_080A7F38: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, r2 + beq _080A7F42 + b _080A8034 +_080A7F42: + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A7F78 + ldr r0, =gContestResources + ldr r0, [r0] + ldr r0, [r0, 0x18] + ldrh r2, [r0] + ldr r1, =gUnknown_083021D8 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0, 0x1] + b _080A8042 + .pool +_080A7F78: + lsls r0, r4, 24 + lsrs r0, 24 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _080A7FD8 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A7FC0 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r2, r0, 16 + b _080A7FC2 + .pool +_080A7FC0: + ldrh r2, [r1, 0x2] +_080A7FC2: + cmp r2, r7 + bne _080A7FD0 + ldr r0, =gUnknown_08525F8C + b _080A8018 + .pool +_080A7FD0: + ldr r0, =gUnknown_083021D8 + b _080A8026 + .pool +_080A7FD8: + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A8010 + ldr r1, =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r2, r0, 16 + b _080A8012 + .pool +_080A8010: + ldrh r2, [r1, 0x2] +_080A8012: + cmp r2, r7 + bne _080A8024 + ldr r0, =gUnknown_08525F88 +_080A8018: + ldrb r1, [r6] + adds r1, r0 + ldrb r0, [r1] + b _080A8042 + .pool +_080A8024: + ldr r0, =gMonFrontPicCoords +_080A8026: + lsls r1, r2, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _080A8042 + .pool +_080A8034: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bhi _080A8040 + b _080A7F38 +_080A8040: + movs r0, 0x40 +_080A8042: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A7F18 + + thumb_func_start sub_80A8048 +sub_80A8048: @ 80A8048 + strh r2, [r0] + asrs r2, 16 + strh r2, [r1] + bx lr + thumb_func_end sub_80A8048 + + thumb_func_start sub_80A8050 +sub_80A8050: @ 80A8050 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + orrs r0, r1 + bx lr + thumb_func_end sub_80A8050 + + thumb_func_start sub_80A805C +sub_80A805C: @ 80A805C + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r5, r3, 0 + ldr r0, [sp, 0x14] + ldr r4, [sp, 0x18] + ldr r6, [sp, 0x1C] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r3, r8 + strh r6, [r3, 0x18] + strh r1, [r3, 0x26] + strh r2, [r3, 0x1A] + strh r5, [r3, 0x1C] + strh r0, [r3, 0x22] + strh r4, [r3, 0x24] + lsls r0, 16 + asrs r0, 16 + lsls r2, 16 + asrs r2, 16 + subs r0, r2 + adds r1, r6, 0 + bl __divsi3 + mov r1, r8 + strh r0, [r1, 0x1E] + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + subs r4, r5 + adds r0, r4, 0 + adds r1, r6, 0 + bl __divsi3 + mov r3, r8 + strh r0, [r3, 0x20] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A805C + + thumb_func_start sub_80A80C8 +sub_80A80C8: @ 80A80C8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A80DA + movs r0, 0 + b _080A8136 +_080A80DA: + subs r0, r1, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + cmp r0, 0 + beq _080A80F4 + ldrh r0, [r4, 0x1E] + ldrh r3, [r4, 0x1A] + adds r0, r3 + strh r0, [r4, 0x1A] + ldrh r0, [r4, 0x20] + ldrh r1, [r4, 0x1C] + adds r0, r1 + b _080A80FA +_080A80F4: + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x1A] + ldrh r0, [r4, 0x24] +_080A80FA: + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1A + ldrsh r1, [r4, r2] + movs r3, 0x1C + ldrsh r2, [r4, r3] + movs r3, 0 + bl obj_id_set_rotscale + movs r0, 0x18 + ldrsh r3, [r4, r0] + cmp r3, 0 + beq _080A8124 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_80A7E6C + b _080A8134 +_080A8124: + ldr r2, =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] +_080A8134: + ldrb r0, [r4, 0x18] +_080A8136: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A80C8 + + thumb_func_start sub_80A8140 +sub_80A8140: @ 80A8140 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =gAnimFriendship + ldrb r0, [r0] + movs r1, 0 + cmp r0, 0x1E + bls _080A815E + movs r1, 0x1 + cmp r0, 0x64 + bls _080A815E + movs r1, 0x3 + cmp r0, 0xC8 + bhi _080A815E + movs r1, 0x2 +_080A815E: + ldr r0, =gBattleAnimArgs + strh r1, [r0, 0xE] + adds r0, r2, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8140 + + thumb_func_start sub_80A8174 +sub_80A8174: @ 80A8174 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + ldr r6, =gAnimBankTarget + ldrb r0, [r6] + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A81B4 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_080A81B4: + ldr r0, =gAnimBankAttacker + mov r8, r0 + ldrb r0, [r0] + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A81EC + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + mov r3, r8 + ldrb r0, [r3] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_080A81EC: + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A8224 + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + ldrb r0, [r6] + eors r0, r5 + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_080A8224: + mov r1, r8 + ldrb r0, [r1] + eors r0, r5 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A825C + ldr r2, =gSprites + ldr r1, =gBankSpriteIds + mov r3, r8 + ldrb r0, [r3] + eors r0, r5 + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + ands r7, r0 + lsls r3, r7, 2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_080A825C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8174 + + thumb_func_start sub_80A8278 +sub_80A8278: @ 80A8278 + push {r4-r6,lr} + movs r5, 0 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r5, r0 + bge _080A82D2 + ldr r6, =gSprites +_080A8286: + lsls r0, r5, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _080A82C8 + adds r0, r4, 0 + bl sub_80A82E4 + ldr r3, =gBankSpriteIds + adds r3, r5, r3 + ldrb r2, [r3] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r6 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r2, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x8 + orrs r2, r1 + strb r2, [r0, 0x5] +_080A82C8: + adds r5, 0x1 + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r5, r0 + blt _080A8286 +_080A82D2: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8278 + + thumb_func_start sub_80A82E4 +sub_80A82E4: @ 80A82E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A8300 + cmp r4, 0x2 + bne _080A82FC + movs r0, 0x1E + b _080A8320 +_080A82FC: + movs r0, 0x28 + b _080A8320 +_080A8300: + adds r0, r4, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1E + cmp r0, 0 + beq _080A831E + movs r1, 0x14 + cmp r0, 0x2 + beq _080A831E + movs r1, 0x32 + cmp r0, 0x1 + bne _080A831E + movs r1, 0x28 +_080A831E: + adds r0, r1, 0 +_080A8320: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A82E4 + + thumb_func_start sub_80A8328 +sub_80A8328: @ 80A8328 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + bl GetBankIdentity + lsls r0, 24 + lsrs r4, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A8344 + movs r0, 0x2 + b _080A835C +_080A8344: + cmp r4, 0 + beq _080A834C + cmp r4, 0x3 + bne _080A8350 +_080A834C: + movs r0, 0x2 + b _080A8352 +_080A8350: + movs r0, 0x1 +_080A8352: + movs r1, 0x4 + bl sub_8118140 + lsls r0, 24 + lsrs r0, 24 +_080A835C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A8328 + + thumb_func_start sub_80A8364 +sub_80A8364: @ 80A8364 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A838A + adds r0, r4, 0 + bl GetBankIdentity + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080A8386 + cmp r0, 0x3 + bne _080A838A +_080A8386: + movs r0, 0x2 + b _080A838C +_080A838A: + movs r0, 0x1 +_080A838C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A8364 + + thumb_func_start sub_80A8394 +sub_80A8394: @ 80A8394 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r4, [sp, 0x30] + ldr r5, [sp, 0x34] + ldr r6, [sp, 0x38] + mov r8, r6 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 16 + lsrs r3, 16 + mov r10, r3 + lsls r4, 16 + lsrs r4, 16 + str r4, [sp, 0x4] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x8] + lsls r0, r7, 3 + ldr r1, =gUnknown_08525FC0 + adds r0, r1 + bl LoadSpriteSheet + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + ldr r1, =gUnknown_08525F90 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x2] + bl AllocSpritePalette + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gMonSpritesGfxPtr + ldr r0, [r4] + cmp r0, 0 + beq _080A8412 + movs r1, 0xBE + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _080A8412 + movs r0, 0x80 + lsls r0, 6 + bl AllocZeroed + ldr r1, [r4] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + str r0, [r1] +_080A8412: + mov r3, r9 + cmp r3, 0 + bne _080A84B0 + adds r0, r6, 0 + ldr r1, [sp, 0x3C] + mov r2, r8 + bl species_and_otid_get_pal + lsls r1, r5, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r3, [sp, 0x44] + cmp r3, 0x1 + beq _080A845E + ldr r0, [sp, 0x40] + lsls r1, r0, 24 + lsrs r1, 24 + movs r0, 0x5 + bl sub_80688F8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A845E + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + ldr r2, [sp, 0x40] + lsls r0, r2, 2 + adds r0, r1 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _080A8488 +_080A845E: + lsls r0, r6, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, =gMonSpritesGfxPtr + ldr r1, [r1] + movs r3, 0xBE + lsls r3, 1 + adds r1, r3 + ldr r1, [r1] + movs r2, 0x1 + b _080A850A + .pool +_080A8488: + lsls r0, r6, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + ldr r1, =gMonSpritesGfxPtr + ldr r1, [r1] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + ldr r1, [r1] + movs r2, 0x1 + str r2, [sp] + adds r2, r6, 0 + mov r3, r8 + bl LoadSpecialPokePic_2 + b _080A8540 + .pool +_080A84B0: + adds r0, r6, 0 + ldr r1, [sp, 0x3C] + mov r2, r8 + bl species_and_otid_get_pal + lsls r1, r5, 20 + movs r3, 0x80 + lsls r3, 17 + adds r1, r3 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, [sp, 0x44] + cmp r0, 0x1 + beq _080A84F6 + ldr r2, [sp, 0x40] + lsls r1, r2, 24 + lsrs r1, 24 + movs r0, 0x5 + bl sub_80688F8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080A84F6 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r1, [r0] + ldr r3, [sp, 0x40] + lsls r0, r3, 2 + adds r0, r1 + ldrh r2, [r0, 0x2] + cmp r2, 0 + beq _080A8524 +_080A84F6: + lsls r0, r6, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =gMonSpritesGfxPtr + ldr r1, [r1] + movs r2, 0xBE + lsls r2, 1 + adds r1, r2 + ldr r1, [r1] + movs r2, 0 +_080A850A: + str r2, [sp] + adds r2, r6, 0 + mov r3, r8 + bl LoadSpecialPokePic_DontHandleDeoxys + b _080A8540 + .pool +_080A8524: + lsls r0, r6, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =gMonSpritesGfxPtr + ldr r1, [r1] + movs r3, 0xBE + lsls r3, 1 + adds r1, r3 + ldr r1, [r1] + str r2, [sp] + adds r2, r6, 0 + mov r3, r8 + bl LoadSpecialPokePic_2 +_080A8540: + ldr r5, =gMonSpritesGfxPtr + ldr r0, [r5] + movs r4, 0xBE + lsls r4, 1 + adds r0, r4 + ldr r0, [r0] + ldr r2, [sp, 0xC] + lsls r1, r2, 5 + ldr r3, =0x06010000 + adds r1, r3 + movs r2, 0x80 + lsls r2, 4 + movs r3, 0x1 + bl RequestDma3Copy + ldr r0, [r5] + adds r0, r4 + ldr r0, [r0] + bl Free + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + str r1, [r0] + mov r0, r9 + cmp r0, 0 + bne _080A85A0 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + ldr r1, =gUnknown_08525F90 + adds r0, r1 + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + ldr r3, =gMonFrontPicCoords + b _080A85B2 + .pool +_080A85A0: + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + ldr r1, =gUnknown_08525F90 + adds r0, r1 + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + ldr r3, =gUnknown_083021D8 +_080A85B2: + lsls r2, r6, 2 + adds r2, r3 + ldrb r2, [r2, 0x1] + ldr r3, [sp, 0x4] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + ldr r3, [sp, 0x8] + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A85EE + ldr r3, =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x10 + adds r1, r0, r1 + ldr r2, =gUnknown_082FF6C0 + str r2, [r1] + adds r0, r3 + movs r1, 0 + bl StartSpriteAffineAnim +_080A85EE: + adds r0, r4, 0 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A8394 + + thumb_func_start sub_80A8610 +sub_80A8610: @ 80A8610 + push {lr} + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + thumb_func_end sub_80A8610 + + thumb_func_start sub_80A861C +sub_80A861C: @ 80A861C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _080A86C4 + ldr r0, =gContestResources + ldr r0, [r0] + ldr r2, [r0, 0x18] + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080A8654 + ldrh r7, [r2, 0x2] + ldr r2, [r2, 0x10] + b _080A8658 + .pool +_080A8654: + ldrh r7, [r2] + ldr r2, [r2, 0x8] +_080A8658: + cmp r7, 0xC9 + bne _080A86A4 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _080A8690 + movs r0, 0xC9 + b _080A869A +_080A8690: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_080A869A: + lsls r1, r0, 2 + ldr r0, =gUnknown_083021D8 + b _080A8864 + .pool +_080A86A4: + ldr r0, =0x00000181 + cmp r7, r0 + bne _080A86AC + b _080A8834 +_080A86AC: + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + bhi _080A877C + lsls r1, r7, 2 + ldr r0, =gUnknown_083021D8 + b _080A8864 + .pool +_080A86C4: + mov r0, r8 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _080A8790 + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r0, [r0] + mov r1, r8 + lsls r2, r1, 2 + adds r1, r2, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A871C + ldr r0, =gBattlePartyID + mov r1, r8 + lsls r4, r1, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gPlayerParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0 + bl GetMonData + adds r2, r0, 0 + b _080A8724 + .pool +_080A871C: + ldrh r7, [r1, 0x2] + ldr r0, =gTransformedPersonalities + adds r0, r2, r0 + ldr r2, [r0] +_080A8724: + cmp r7, 0xC9 + bne _080A8774 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _080A8760 + movs r0, 0xC9 + b _080A876A + .pool +_080A8760: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_080A876A: + lsls r1, r0, 2 + ldr r0, =gUnknown_083021D8 + b _080A8864 + .pool +_080A8774: + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + bls _080A8784 +_080A877C: + ldr r4, =gUnknown_083021D8 + b _080A8866 + .pool +_080A8784: + lsls r1, r7, 2 + ldr r0, =gUnknown_083021D8 + b _080A8864 + .pool +_080A8790: + ldr r0, =gBattleSpritesDataPtr + ldr r0, [r0] + ldr r0, [r0] + mov r1, r8 + lsls r2, r1, 2 + adds r1, r2, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _080A87DC + ldr r0, =gBattlePartyID + mov r1, r8 + lsls r4, r1, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0 + bl GetMonData + adds r2, r0, 0 + b _080A87E4 + .pool +_080A87DC: + ldrh r7, [r1, 0x2] + ldr r0, =gTransformedPersonalities + adds r0, r2, r0 + ldr r2, [r0] +_080A87E4: + cmp r7, 0xC9 + bne _080A882E + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _080A8820 + movs r0, 0xC9 + b _080A882A + .pool +_080A8820: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_080A882A: + lsls r1, r0, 2 + b _080A8862 +_080A882E: + ldr r0, =0x00000181 + cmp r7, r0 + bne _080A8850 +_080A8834: + ldr r0, =gBattleMonForms + add r0, r8 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, =gCastformFrontSpriteCoords + adds r4, r0, r1 + b _080A8866 + .pool +_080A8850: + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + bls _080A8860 + ldr r4, =gMonFrontPicCoords + b _080A8866 + .pool +_080A8860: + lsls r1, r7, 2 +_080A8862: + ldr r0, =gMonFrontPicCoords +_080A8864: + adds r4, r1, r0 +_080A8866: + mov r0, r9 + cmp r0, 0x6 + bhi _080A8916 + lsls r0, 2 + ldr r1, =_080A8880 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080A8880: + .4byte _080A889C + .4byte _080A88A6 + .4byte _080A88D2 + .4byte _080A88EA + .4byte _080A88AE + .4byte _080A88C0 + .4byte _080A8902 +_080A889C: + ldrb r1, [r4] + movs r0, 0xF + ands r0, r1 + lsls r0, 3 + b _080A8918 +_080A88A6: + ldrb r0, [r4] + lsrs r0, 4 + lsls r0, 3 + b _080A8918 +_080A88AE: + mov r0, r8 + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + lsrs r1, 4 + b _080A88E4 +_080A88C0: + mov r0, r8 + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + lsrs r1, 4 + b _080A88FC +_080A88D2: + mov r0, r8 + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4] + movs r1, 0xF + ands r1, r2 +_080A88E4: + lsls r1, 2 + subs r0, r1 + b _080A8918 +_080A88EA: + mov r0, r8 + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4] + movs r1, 0xF + ands r1, r2 +_080A88FC: + lsls r1, 2 + adds r0, r1 + b _080A8918 +_080A8902: + mov r0, r8 + movs r1, 0x1 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + ldrb r1, [r4, 0x1] + subs r0, r1 + b _080A8918 +_080A8916: + movs r0, 0 +_080A8918: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80A861C + + thumb_func_start sub_80A8924 +sub_80A8924: @ 80A8924 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r2 + mov r10, r3 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _080A8942 + movs r5, 0 + movs r6, 0x1 + b _080A8946 +_080A8942: + movs r5, 0x2 + movs r6, 0x3 +_080A8946: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r7, r0, 24 + bl IsDoubleBattle + lsls r0, 24 + cmp r0, 0 + beq _080A8998 + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _080A8998 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80A5C6C + lsls r0, 24 + lsrs r3, r0, 24 + mov r0, r8 + lsls r1, r0, 16 + lsls r2, r7, 16 + b _080A89A4 +_080A8998: + mov r0, r8 + lsls r1, r0, 16 + lsrs r5, r1, 16 + lsls r0, r7, 16 + lsrs r3, r0, 16 + adds r2, r0, 0 +_080A89A4: + asrs r0, r1, 16 + adds r0, r5 + asrs r0, 1 + mov r1, r9 + strh r0, [r1] + asrs r0, r2, 16 + adds r0, r3 + asrs r0, 1 + mov r1, r10 + strh r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A8924 + + thumb_func_start sub_80A89C8 +sub_80A89C8: @ 80A89C8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + lsls r6, r1, 24 + lsrs r6, 24 + ldr r0, =SpriteCallbackDummy + mov r10, r0 + bl CreateInvisibleSpriteWithCallback + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, =gSprites + mov r9, r0 + mov r0, r8 + lsls r3, r0, 4 + add r3, r8 + lsls r3, 2 + mov r0, r9 + adds r5, r3, r0 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + add r4, r9 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x44 + str r3, [sp] + bl memcpy + adds r2, r5, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r5, 0x5] + ldrb r0, [r5, 0x1] + ands r1, r0 + movs r0, 0x8 + orrs r1, r0 + strb r1, [r5, 0x1] + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 22 + ldrh r2, [r5, 0x4] + ldr r0, =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + movs r0, 0x1C + add r9, r0 + ldr r3, [sp] + add r3, r9 + mov r0, r10 + str r0, [r3] + mov r0, r8 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80A89C8 + + thumb_func_start sub_80A8A6C +sub_80A8A6C: @ 80A8A6C + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6838 + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A8AAC + ldr r2, =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x6] + negs r0, r0 + strh r0, [r2, 0x6] + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, 0 + b _080A8AB6 + .pool +_080A8AAC: + ldr r1, =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] +_080A8AB6: + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldr r1, =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, =sub_80A66DC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8A6C + + thumb_func_start sub_80A8AEC +sub_80A8AEC: @ 80A8AEC + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A8B1C + ldr r2, =gBattleAnimArgs + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + movs r1, 0x6 + ldrsh r0, [r2, r1] + negs r0, r0 + strh r0, [r2, 0x6] + adds r1, r2, 0 + b _080A8B26 + .pool +_080A8B1C: + ldr r1, =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] +_080A8B26: + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r0, =sub_80A66DC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8AEC + + thumb_func_start sub_80A8B64 +sub_80A8B64: @ 80A8B64 + push {r4,lr} + adds r4, r0, 0 + bl sub_80A6838 + ldr r0, =gAnimBankAttacker + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _080A8B90 + ldr r0, =gBattleAnimArgs + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080A8B9C + .pool +_080A8B90: + ldr r1, =gBattleAnimArgs + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080A8B9C: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, =sub_80A67D8 + str r0, [r4, 0x1C] + ldr r1, =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8B64 + + thumb_func_start sub_80A8BC4 +sub_80A8BC4: @ 80A8BC4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r5, r1, r0 + movs r0, 0 + bl GetAnimBankSpriteId + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0x8] + ldr r7, =gAnimBankAttacker + ldrb r0, [r7] + bl GetBankSide + lsls r0, 24 + movs r1, 0x8 + cmp r0, 0 + beq _080A8BF8 + movs r0, 0x8 + negs r0, r0 + adds r1, r0, 0 +_080A8BF8: + strh r1, [r5, 0xA] + strh r6, [r5, 0xC] + strh r6, [r5, 0xE] + ldr r4, =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x24] + ldrh r2, [r5, 0x8] + subs r1, r2 + strh r1, [r0, 0x24] + ldr r0, =0x00002771 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + strh r6, [r5, 0x12] + movs r1, 0x10 + ldrsh r0, [r5, r1] + adds r0, 0x10 + lsls r0, 20 + lsrs r6, r0, 16 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r4, r0, 4 + ldrb r0, [r7] + bl sub_80A82E4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + cmp r0, 0x14 + beq _080A8C54 + cmp r0, 0x28 + bne _080A8C68 +_080A8C54: + movs r0, 0x2 + b _080A8C6A + .pool +_080A8C68: + movs r0, 0x3 +_080A8C6A: + strh r0, [r5, 0x14] + lsls r0, r4, 1 + ldr r1, =gPlttBufferUnfaded + adds r0, r1 + lsls r1, r6, 1 + ldr r2, =gPlttBufferFaded + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet + ldr r0, =gBattleAnimArgs + ldrb r2, [r0, 0x2] + ldrh r3, [r0] + adds r0, r6, 0 + movs r1, 0x10 + bl BlendPalette + ldr r0, =sub_80A8CAC + str r0, [r5] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8BC4 + + thumb_func_start sub_80A8CAC +sub_80A8CAC: @ 80A8CAC + 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, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080A8D10 + cmp r0, 0x1 + bgt _080A8CD4 + cmp r0, 0 + beq _080A8CDA + b _080A8D6C + .pool +_080A8CD4: + cmp r0, 0x2 + beq _080A8D58 + b _080A8D6C +_080A8CDA: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A8D78 + ldr r2, =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0xA] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + ldrh r1, [r4, 0xE] + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080A8D6C + strh r1, [r4, 0xE] + b _080A8D4A + .pool +_080A8D10: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80A8D78 + ldr r3, =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + ldrh r2, [r4, 0xA] + subs r1, r2 + strh r1, [r0, 0x24] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bne _080A8D6C + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + strh r2, [r1, 0x24] +_080A8D4A: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _080A8D6C + .pool +_080A8D58: + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080A8D6C + ldr r0, =0x00002771 + bl FreeSpritePaletteByTag + adds r0, r5, 0 + bl DestroyAnimVisualTask +_080A8D6C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8CAC + + thumb_func_start sub_80A8D78 +sub_80A8D78: @ 80A8D78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r7, r0, 16 + asrs r0, 16 + cmp r0, 0 + blt _080A8DE8 + ldr r5, =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r3, r4, r5 + movs r0, 0x3 + ldrb r1, [r6, 0x14] + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + ldrb r1, [r6, 0x10] + lsls r1, 4 + movs r2, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + movs r0, 0x8 + strh r0, [r3, 0x2E] + mov r0, r8 + strh r0, [r3, 0x30] + strh r7, [r3, 0x32] + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x24] + strh r0, [r3, 0x24] + adds r5, 0x1C + adds r4, r5 + ldr r0, =sub_80A8DFC + str r0, [r4] + ldrh r0, [r6, 0x12] + adds r0, 0x1 + strh r0, [r6, 0x12] +_080A8DE8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8D78 + + thumb_func_start sub_80A8DFC +sub_80A8DFC: @ 80A8DFC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + subs r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080A8E26 + ldr r2, =gTasks + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x12] + subs r1, 0x1 + strh r1, [r0, 0x12] + adds r0, r3, 0 + bl obj_delete_but_dont_free_vram +_080A8E26: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8DFC + + thumb_func_start sub_80A8E30 +sub_80A8E30: @ 80A8E30 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, =gAnimBankAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_80A5C6C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _080A8E68 + movs r0, 0x5 + b _080A8E6A + .pool +_080A8E68: + ldr r0, =0x0000fff6 +_080A8E6A: + strh r0, [r5, 0x2E] + ldr r0, =0x0000ffd8 + strh r0, [r5, 0x30] + ldr r0, =sub_80A8E88 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8E30 + + thumb_func_start sub_80A8E88 +sub_80A8E88: @ 80A8E88 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r5, [r4, 0x30] + ldrh r2, [r4, 0x34] + adds r0, r5, r2 + strh r0, [r4, 0x34] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r2, 0x34 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + lsls r0, r5, 16 + asrs r0, 16 + movs r1, 0x14 + negs r1, r1 + cmp r0, r1 + bge _080A8EC4 + adds r0, r5, 0x1 + strh r0, [r4, 0x30] +_080A8EC4: + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080A8EDC + adds r0, r4, 0 + bl DestroyAnimSprite +_080A8EDC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80A8E88 + + thumb_func_start sub_80A8EE4 +sub_80A8EE4: @ 80A8EE4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gBattleAnimArgs + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, =gAnimBankTarget + ldrb r0, [r0] + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + bne _080A8F24 + ldrh r0, [r5, 0x8] + adds r0, 0x1E + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0xA] + subs r0, 0x14 + b _080A8F32 + .pool +_080A8F24: + ldrh r0, [r5, 0x8] + subs r0, 0x1E + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0xA] + subs r0, 0x50 +_080A8F32: + strh r0, [r4, 0x22] + ldr r0, =sub_80A6EEC + str r0, [r4, 0x1C] + ldr r1, =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A8EE4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s index 9b2939673..681802e12 100644 --- a/asm/battle_anim_80A9C70.s +++ b/asm/battle_anim_80A9C70.s @@ -869,7 +869,7 @@ move_anim_start_t2: @ 80AA364 strb r4, [r0] ldr r0, =gUnknown_082C92FC movs r2, 0 - bl DoBattleAnim + bl LaunchBattleAnimation ldr r0, =task0A_80788BC movs r1, 0xA bl CreateTask diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index dc927cacc..315f884cf 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -50443,8 +50443,8 @@ _081181CA: bx r1 thumb_func_end sub_8118140 - thumb_func_start battle_intro_launch -battle_intro_launch: @ 81181D4 + thumb_func_start HandleIntroSlide +HandleIntroSlide: @ 81181D4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -50521,7 +50521,7 @@ _08118258: pop {r0} bx r0 .pool - thumb_func_end battle_intro_launch + thumb_func_end HandleIntroSlide thumb_func_start sub_811828C sub_811828C: @ 811828C diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s index 1cc9191c0..1b4a01f2a 100644 --- a/asm/battle_controller_linkopponent.s +++ b/asm/battle_controller_linkopponent.s @@ -1163,7 +1163,7 @@ sub_8064D60: @ 8064D60 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08064DA0: ldr r0, =gBattleBankFunc ldrb r1, [r4] @@ -1312,7 +1312,7 @@ sub_8064E50: @ 8064E50 ldrb r0, [r0] bl SetHealthboxSpriteVisible ldrb r0, [r5] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3970,7 +3970,7 @@ _080666E4: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _080666FE: ldr r0, [r6] ldrb r1, [r5] @@ -3995,7 +3995,7 @@ _08066712: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4595,7 +4595,7 @@ LinkOpponentHandleFaintAnimation: @ 8066C40 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08066C74: ldr r0, [r6] ldrb r1, [r5] @@ -4890,7 +4890,7 @@ _08066ED2: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08066EF4: ldr r0, [r7] ldrb r1, [r6] @@ -4948,7 +4948,7 @@ _08066F32: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] @@ -5285,7 +5285,7 @@ LinkOpponentHandleStatusAnimation: @ 8067214 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 - bl move_anim_start_t2_for_situation + bl DoStatusAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5481,7 +5481,7 @@ _080673B0: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5615,7 +5615,7 @@ LinkOpponentHandleIntroSlide: @ 80674D4 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -6092,7 +6092,7 @@ LinkOpponentHandleSpriteInvisibility: @ 80678D0 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility _08067916: bl LinkOpponentBufferExecCompleted pop {r4} @@ -6129,7 +6129,7 @@ LinkOpponentHandleBattleAnimation: @ 8067930 adds r0, r2, 0 adds r1, r2, 0 adds r3, r6, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _08067980 diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s index 54b3b5f8a..e8581c396 100644 --- a/asm/battle_controller_linkpartner.s +++ b/asm/battle_controller_linkpartner.s @@ -736,7 +736,7 @@ sub_814B4E0: @ 814B4E0 cmp r1, r0 bne _0814B532 adds r0, r3, 0 - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldrb r2, [r4] @@ -751,7 +751,7 @@ sub_814B4E0: @ 814B4E0 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0814B526: ldr r0, =gBattleBankFunc ldrb r1, [r4] @@ -3554,7 +3554,7 @@ _0814CECC: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0814CEE6: ldr r0, [r6] ldrb r1, [r5] @@ -3579,7 +3579,7 @@ _0814CEFA: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3893,7 +3893,7 @@ sub_814D19C: @ 814D19C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0814D1D0: ldr r0, [r6] ldrb r1, [r5] @@ -4216,7 +4216,7 @@ _0814D46E: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0814D490: ldr r0, [r7] ldrb r1, [r6] @@ -4274,7 +4274,7 @@ _0814D4CE: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] @@ -4611,7 +4611,7 @@ sub_814D7B0: @ 814D7B0 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 - bl move_anim_start_t2_for_situation + bl DoStatusAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4807,7 +4807,7 @@ _0814D94C: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -4942,7 +4942,7 @@ dp01t_2E_4_battle_intro: @ 814DA74 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -5503,7 +5503,7 @@ sub_814DF40: @ 814DF40 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility _0814DF86: bl LinkPartnerBufferExecCompleted pop {r4} @@ -5540,7 +5540,7 @@ sub_814DFA0: @ 814DFA0 adds r0, r2, 0 adds r1, r2, 0 adds r3, r6, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _0814DFF0 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index d4df7ea94..b627404c8 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -1256,7 +1256,7 @@ sub_805FC10: @ 805FC10 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0805FC50: ldr r0, =gBattleBankFunc ldrb r1, [r4] @@ -1405,7 +1405,7 @@ sub_805FD00: @ 805FD00 ldrb r0, [r0] bl SetHealthboxSpriteVisible ldrb r0, [r5] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4131,7 +4131,7 @@ _0806162C: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08061646: ldr r0, [r6] ldrb r1, [r5] @@ -4156,7 +4156,7 @@ _0806165A: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4746,7 +4746,7 @@ OpponentHandleFaintAnimation: @ 8061B9C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08061BD0: ldr r0, [r6] ldrb r1, [r5] @@ -5029,7 +5029,7 @@ _08061E12: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08061E34: ldr r0, [r7] ldrb r1, [r6] @@ -5087,7 +5087,7 @@ _08061E72: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] @@ -5218,14 +5218,14 @@ OpponentHandleChooseMove: @ 8061FB8 ands r0, r2 cmp r0, 0 beq _08061FE4 - bl sub_805D19C + bl ChooseMoveAndTargetInBattlePalace adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA _08061FD6: - bl EmitChoiceReturnValue + bl EmitTwoReturnValues _08061FDA: bl OpponentBufferExecCompleted b _08062156 @@ -5329,7 +5329,7 @@ _0806209C: movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues b _08061FDA .pool _080620C4: @@ -5360,7 +5360,7 @@ _080620C6: movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues b _08062152 .pool _08062108: @@ -5383,7 +5383,7 @@ _08062108: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues b _08062152 .pool _0806213C: @@ -5395,7 +5395,7 @@ _0806213C: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues _08062152: bl OpponentBufferExecCompleted _08062156: @@ -5417,7 +5417,7 @@ OpponentHandleOpenBag: @ 806215C adds r0, 0xC0 ldrb r1, [r0] movs r0, 0x1 - bl EmitCmd35 + bl EmitOneReturnValue bl OpponentBufferExecCompleted pop {r0} bx r0 @@ -5532,7 +5532,7 @@ _0806225A: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitCmd34 + bl EmitChosenMonReturnValue bl OpponentBufferExecCompleted pop {r4-r7} pop {r0} @@ -5734,7 +5734,7 @@ OpponentHandleStatusAnimation: @ 8062408 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 - bl move_anim_start_t2_for_situation + bl DoStatusAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5930,7 +5930,7 @@ _080625A4: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -6064,7 +6064,7 @@ OpponentHandleIntroSlide: @ 80626C8 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -6546,7 +6546,7 @@ OpponentHandleSpriteInvisibility: @ 8062AD0 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility _08062B16: bl OpponentBufferExecCompleted pop {r4} @@ -6582,7 +6582,7 @@ OpponentHandleBattleAnimation: @ 8062B30 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _08062B7C diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s deleted file mode 100644 index efad0fb13..000000000 --- a/asm/battle_controller_player.s +++ /dev/null @@ -1,1822 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_805C114 -sub_805C114: @ 805C114 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0805C13E - ldr r0, =gBattle_BG0_X - strh r1, [r0] - ldr r1, =gBattle_BG0_Y - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattleBankFunc - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =HandleInputChooseMove - str r1, [r0] -_0805C13E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C114 - - thumb_func_start sub_805C158 -sub_805C158: @ 805C158 - push {lr} - ldr r0, =gActiveBank - ldrb r1, [r0] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r1, r0 - movs r0, 0xA6 - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0805C194 - ldr r1, =gBattlePalaceMoveSelectionRngValue - ldr r0, =gRngValue - ldr r0, [r0] - str r0, [r1] - bl sub_805D19C - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xA - bl EmitChoiceReturnValue - bl PlayerBufferExecCompleted -_0805C194: - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C158 - - thumb_func_start PlayerHandleChooseMove -PlayerHandleChooseMove: @ 805C1A8 - push {lr} - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - beq _0805C1EC - ldr r2, =gActiveBank - ldrb r0, [r2] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - movs r1, 0xA6 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strb r1, [r0] - ldr r1, =gBattleBankFunc - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805C158 - b _0805C1FC - .pool -_0805C1EC: - bl sub_805C210 - ldr r1, =gBattleBankFunc - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_805C114 -_0805C1FC: - str r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleChooseMove - - thumb_func_start sub_805C210 -sub_805C210: @ 805C210 - push {lr} - bl MoveSelectionDisplayMoveNames - ldr r1, =gMultiUsePlayerCursor - movs r0, 0xFF - strb r0, [r1] - ldr r1, =gMoveSelectionCursor - ldr r0, =gActiveBank - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl MoveSelectionCreateCursorAt - bl MoveSelectionDisplayPpString - bl MoveSelectionDisplayPpNumber - bl MoveSelectionDisplayMoveType - pop {r0} - bx r0 - .pool - thumb_func_end sub_805C210 - - thumb_func_start PlayerHandleOpenBag -PlayerHandleOpenBag: @ 805C248 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gBattleBankFunc - ldr r2, =gActiveBank - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80598A4 - str r1, [r0] - ldr r1, =gBankInMenu - ldrb r0, [r2] - strb r0, [r1] - movs r3, 0 - ldr r5, =gUnknown_0203CF00 - ldr r4, =gBattleBufferA -_0805C276: - adds r0, r3, r5 - ldrb r1, [r2] - lsls r1, 9 - adds r1, 0x1 - adds r1, r3, r1 - adds r1, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _0805C276 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleOpenBag - - thumb_func_start PlayerHandleChoosePokemon -PlayerHandleChoosePokemon: @ 805C2AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r3, 0 - ldr r0, =gUnknown_0203CF00 - mov r12, r0 - ldr r1, =gBattleBufferA - mov r8, r1 - ldr r2, =gActiveBank - ldr r7, =gBattleTypeFlags - mov r6, r12 - mov r5, r8 - adds r4, r2, 0 -_0805C2C8: - adds r0, r3, r6 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r3, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _0805C2C8 - ldr r0, [r7] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - beq _0805C330 - ldrb r3, [r2] - lsls r0, r3, 9 - mov r1, r8 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x2 - beq _0805C330 - ldr r1, =gBattlePartyID - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - mov r2, r12 - bl EmitCmd34 - bl PlayerBufferExecCompleted - b _0805C3BC - .pool -_0805C330: - ldr r0, =TaskDummy - movs r1, 0xFF - bl CreateTask - ldr r3, =gUnknown_03005D7C - ldr r4, =gActiveBank - ldrb r1, [r4] - adds r1, r3 - movs r2, 0 - mov r8, r2 - strb r0, [r1] - ldr r5, =gTasks - ldrb r2, [r4] - adds r3, r2, r3 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r5 - ldr r5, =gBattleBufferA - lsls r2, 9 - adds r6, r5, 0x1 - adds r2, r6 - ldrb r2, [r2] - movs r0, 0xF - ands r0, r2 - strh r0, [r1, 0x8] - ldr r3, =gBattleStruct - ldr r1, [r3] - adds r1, 0x49 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - lsrs r0, 4 - strb r0, [r1] - ldr r2, [r3] - adds r2, 0x8B - ldrb r0, [r4] - lsls r0, 9 - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, [r3] - adds r1, 0xB0 - ldrb r0, [r4] - lsls r0, 9 - adds r5, 0x3 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - movs r0, 0x1 - negs r0, r0 - mov r1, r8 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gBattleBankFunc - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80597CC - str r1, [r0] - ldr r1, =gBankInMenu - ldrb r0, [r4] - strb r0, [r1] -_0805C3BC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleChoosePokemon - - thumb_func_start PlayerHandleCmd23 -PlayerHandleCmd23: @ 805C3EC - push {lr} - sub sp, 0x4 - bl BattleMusicStop - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl PlayerBufferExecCompleted - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd23 - - thumb_func_start PlayerHandleHealthBarUpdate -PlayerHandleHealthBarUpdate: @ 805C410 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl LoadBattleBarGfx - ldr r3, =gBattleBufferA - ldr r0, =gActiveBank - mov r9, r0 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r3, 0x2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r3, 0x3 - adds r1, r3 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - lsls r2, 16 - asrs r7, r2, 16 - cmp r7, 0 - ble _0805C44A - ldr r1, =gUnknown_0203CD70 - ldr r0, [r1] - adds r0, r7 - str r0, [r1] -_0805C44A: - ldr r0, =0x00007fff - cmp r7, r0 - beq _0805C4B4 - ldr r6, =gBattlePartyID - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, =gHealthBoxesIds - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _0805C4F2 - .pool -_0805C4B4: - ldr r1, =gBattlePartyID - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r4, =gHealthBoxesIds - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl SetBattleBarStruct - mov r2, r9 - ldrb r0, [r2] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl UpdateHpTextInHealthbox -_0805C4F2: - ldr r1, =gBattleBankFunc - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, =bx_t1_healthbar_update - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleHealthBarUpdate - - thumb_func_start PlayerHandleExpUpdate -PlayerHandleExpUpdate: @ 805C528 - push {r4-r7,lr} - ldr r5, =gBattleBufferA - ldr r6, =gActiveBank - ldrb r0, [r6] - lsls r0, 9 - adds r1, r5, 0x1 - adds r0, r1 - ldrb r7, [r0] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x63 - bls _0805C560 - bl PlayerBufferExecCompleted - b _0805C5AC - .pool -_0805C560: - movs r0, 0x1 - bl LoadBattleBarGfx - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r6] - lsls r1, 9 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, 0x3 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r0, =sub_80591B8 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - strh r4, [r1, 0xA] - ldrb r0, [r6] - strh r0, [r1, 0xC] - ldr r1, =gBattleBankFunc - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_21 - str r1, [r0] -_0805C5AC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleExpUpdate - - thumb_func_start PlayerHandleStatusIconUpdate -PlayerHandleStatusIconUpdate: @ 805C5C4 - push {r4,lr} - ldr r4, =gActiveBank - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0805C618 - ldr r0, =gHealthBoxesIds - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, =gBattlePartyID - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, =gBattleBankFunc - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8059D60 - str r1, [r0] -_0805C618: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleStatusIconUpdate - - thumb_func_start PlayerHandleStatusAnimation -PlayerHandleStatusAnimation: @ 805C63C - push {r4,r5,lr} - ldr r5, =gActiveBank - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0805C68C - ldr r4, =gBattleBufferA - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, =gBattleBankFunc - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8059D60 - str r1, [r0] -_0805C68C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleStatusAnimation - - thumb_func_start PlayerHandleStatusXor -PlayerHandleStatusXor: @ 805C6A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r0, =gBattlePartyID - mov r8, r0 - ldr r4, =gActiveBank - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0x37 - bl GetMonData - ldr r2, =gBattleBufferA - ldrb r1, [r4] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - eors r0, r1 - mov r1, sp - strb r0, [r1] - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0x37 - mov r2, sp - bl SetMonData - bl PlayerBufferExecCompleted - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleStatusXor - - thumb_func_start PlayerHandleDataTransfer -PlayerHandleDataTransfer: @ 805C710 - push {lr} - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleDataTransfer - - thumb_func_start PlayerHandleDMA3Transfer -PlayerHandleDMA3Transfer: @ 805C71C - push {r4,r5,lr} - ldr r3, =gBattleBufferA - ldr r0, =gActiveBank - ldrb r2, [r0] - lsls r2, 9 - adds r0, r3, 0x1 - adds r0, r2, r0 - ldrb r5, [r0] - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r5, r0 - adds r0, r3, 0x3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 16 - orrs r5, r0 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldrb r4, [r0] - lsls r4, 24 - adds r0, r3, 0x5 - adds r0, r2, r0 - ldrb r1, [r0] - adds r0, r3, 0x6 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - adds r3, 0x7 - adds r2, r3 - orrs r5, r4 - lsrs r4, r1, 16 - movs r0, 0x80 - lsls r0, 5 - cmp r4, r0 - bhi _0805C78C - ldr r0, =0x040000d4 - str r2, [r0] - str r5, [r0, 0x4] - lsrs r1, 17 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _0805C7B8 - .pool -_0805C78C: - ldr r3, =0x040000d4 - str r2, [r3] - str r5, [r3, 0x4] - ldr r0, =0x80000800 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r2, r0 - adds r5, r0 - ldr r1, =0xfffff000 - adds r4, r1 - cmp r4, r0 - bhi _0805C78C - str r2, [r3] - str r5, [r3, 0x4] - lsrs r0, r4, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] -_0805C7B8: - bl PlayerBufferExecCompleted - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleDMA3Transfer - - thumb_func_start PlayerHandlePlayBGM -PlayerHandlePlayBGM: @ 805C7D0 - push {lr} - ldr r2, =gBattleBufferA - ldr r0, =gActiveBank - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayBGM - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandlePlayBGM - - thumb_func_start PlayerHandleCmd32 -PlayerHandleCmd32: @ 805C800 - push {lr} - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd32 - - thumb_func_start PlayerHandleCmd33 -PlayerHandleCmd33: @ 805C80C - push {lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl EmitChoiceReturnValue - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd33 - - thumb_func_start PlayerHandleCmd34 -PlayerHandleCmd34: @ 805C820 - push {lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl EmitCmd34 - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd34 - - thumb_func_start PlayerHandleCmd35 -PlayerHandleCmd35: @ 805C834 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl EmitCmd35 - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd35 - - thumb_func_start PlayerHandleCmd36 -PlayerHandleCmd36: @ 805C848 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl EmitCmd36 - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd36 - - thumb_func_start PlayerHandleCmd37 -PlayerHandleCmd37: @ 805C85C - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd37 - - thumb_func_start PlayerHandleCmd38 -PlayerHandleCmd38: @ 805C878 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, =gBattleBufferA - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd38 - - thumb_func_start PlayerHandleCmd39 -PlayerHandleCmd39: @ 805C8B0 - push {lr} - ldr r2, =gUnknown_02022D0C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd39 - - thumb_func_start PlayerHandleCmd40 -PlayerHandleCmd40: @ 805C8C8 - push {lr} - ldr r3, =gUnknown_02022D0C - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd40 - - thumb_func_start PlayerHandleHitAnimation -PlayerHandleHitAnimation: @ 805C8F0 - push {r4,lr} - ldr r3, =gSprites - ldr r2, =gBankSpriteIds - ldr r4, =gActiveBank - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0805C924 - bl PlayerBufferExecCompleted - b _0805C94E - .pool -_0805C924: - ldr r1, =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_80769F4 - ldr r1, =gBattleBankFunc - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, =DoHitAnimBlinkEffect - str r1, [r0] -_0805C94E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleHitAnimation - - thumb_func_start PlayerHandleCmd42 -PlayerHandleCmd42: @ 805C960 - push {lr} - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end PlayerHandleCmd42 - - thumb_func_start PlayerHandleEffectivenessSound -PlayerHandleEffectivenessSound: @ 805C96C - push {r4,lr} - ldr r4, =gActiveBank - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _0805C980 - movs r3, 0xC0 -_0805C980: - ldr r2, =gBattleBufferA - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl PlaySE12WithPanning - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleEffectivenessSound - - thumb_func_start PlayerHandlePlayFanfareOrBGM -PlayerHandlePlayFanfareOrBGM: @ 805C9B0 - push {r4,r5,lr} - ldr r4, =gBattleBufferA - ldr r5, =gActiveBank - ldrb r0, [r5] - lsls r3, r0, 9 - adds r0, r4, 0x3 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _0805C9EC - bl BattleMusicStop - ldrb r1, [r5] - lsls r1, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayBGM - b _0805CA00 - .pool -_0805C9EC: - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare -_0805CA00: - bl PlayerBufferExecCompleted - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end PlayerHandlePlayFanfareOrBGM - - thumb_func_start PlayerHandleFaintingCry -PlayerHandleFaintingCry: @ 805CA0C - push {lr} - ldr r1, =gBattlePartyID - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl PlayCry3 - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleFaintingCry - - thumb_func_start PlayerHandleIntroSlide -PlayerHandleIntroSlide: @ 805CA4C - push {lr} - ldr r1, =gBattleBufferA - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl battle_intro_launch - ldr r2, =gUnknown_020243FC - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleIntroSlide - - thumb_func_start PlayerHandleIntroTrainerBallThrow -PlayerHandleIntroTrainerBallThrow: @ 805CA80 - push {r4-r7,lr} - ldr r6, =gBankSpriteIds - ldr r7, =gActiveBank - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_80A6EEC - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_805CC00 - bl StoreSpriteCallbackInData6 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, =0x0000d6f8 - bl AllocSpritePalette - adds r4, r0, 0 - lsls r4, 24 - ldr r1, =gTrainerBackPicPaletteTable - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsrs r4, 20 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, =task05_08033660 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldr r3, =gBattleSpritesDataPtr - ldr r0, [r3] - ldrb r2, [r7] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805CBA2 - ldr r0, =gUnknown_020244B4 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, =sub_8073C30 - str r1, [r0] -_0805CBA2: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, =gBattleBankFunc - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, =nullsub_21 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleIntroTrainerBallThrow - - thumb_func_start sub_805CC00 -sub_805CC00: @ 805CC00 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0x38] - lsls r4, 24 - lsrs r4, 24 - bl FreeSpriteOamMatrix - ldrb r0, [r5, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl DestroySprite - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl BattleLoadPlayerMonSpriteGfx - ldr r0, =gBankSpriteIds - adds r4, r0 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CC00 - - thumb_func_start task05_08033660 -task05_08033660: @ 805CC68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x1E - bgt _0805CC94 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _0805CD50 - .pool -_0805CC94: - ldr r7, =gActiveBank - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _0805CCB4 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0805CCE4 -_0805CCB4: - ldr r0, =gBattleBufferA - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, =gBattlePartyID - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_805B258 - b _0805CD38 - .pool -_0805CCE4: - ldr r4, =gBattleBufferA - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, =gBattlePartyID - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_805B258 - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, =gPlayerParty - adds r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldrb r0, [r7] - movs r1, 0 - bl sub_805B258 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_0805CD38: - ldr r1, =gBattleBankFunc - ldr r2, =gActiveBank - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_8058B40 - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_0805CD50: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task05_08033660 - - thumb_func_start PlayerHandleDrawPartyStatusSummary -PlayerHandleDrawPartyStatusSummary: @ 805CD74 - push {r4-r6,lr} - ldr r1, =gBattleBufferA - ldr r0, =gActiveBank - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0805CDA4 - adds r0, r2, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0805CDA4 - bl PlayerBufferExecCompleted - b _0805CE18 - .pool -_0805CDA4: - ldr r6, =gBattleSpritesDataPtr - ldr r0, [r6] - ldr r5, =gActiveBank - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, =gBattleBufferA + 4 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl CreatePartyStatusSummarySprites - ldr r2, =gUnknown_020244B4 - ldrb r1, [r5] - adds r1, r2 - movs r3, 0 - strb r0, [r1] - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x5] - ldrb r2, [r5] - lsls r0, r2, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0805CE0C - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x5D - strb r1, [r0, 0x5] -_0805CE0C: - ldr r0, =gBattleBankFunc - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_805CE38 - str r0, [r1] -_0805CE18: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleDrawPartyStatusSummary - - thumb_func_start sub_805CE38 -sub_805CE38: @ 805CE38 - push {r4,lr} - ldr r4, =gBattleSpritesDataPtr - ldr r0, [r4] - ldr r3, =gActiveBank - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _0805CE70 - ldr r0, [r4] - ldrb r1, [r3] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x5] - bl PlayerBufferExecCompleted -_0805CE70: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_805CE38 - - thumb_func_start PlayerHandleCmd49 -PlayerHandleCmd49: @ 805CE80 - push {lr} - ldr r0, =gBattleSpritesDataPtr - ldr r1, [r0] - ldr r0, =gActiveBank - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0805CEB2 - ldr r2, =gTasks - ldr r0, =gUnknown_020244B4 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, =sub_8073C30 - str r1, [r0] -_0805CEB2: - bl PlayerBufferExecCompleted - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd49 - - thumb_func_start PlayerHandleCmd50 -PlayerHandleCmd50: @ 805CED0 - push {r4,lr} - ldr r4, =gActiveBank - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd50 - - thumb_func_start PlayerHandleSpriteInvisibility -PlayerHandleSpriteInvisibility: @ 805CEF4 - push {r4,lr} - ldr r4, =gActiveBank - ldrb r0, [r4] - bl AnimBankSpriteExists - lsls r0, 24 - cmp r0, 0 - beq _0805CF3A - ldr r3, =gSprites - ldr r0, =gBankSpriteIds - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, =gBattleBufferA - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_805E408 -_0805CF3A: - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleSpriteInvisibility - - thumb_func_start PlayerHandleBattleAnimation -PlayerHandleBattleAnimation: @ 805CF54 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, =gActiveBank - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0805CFB6 - ldr r4, =gBattleBufferA - ldrb r2, [r5] - lsls r1, r2, 9 - adds r0, r4, 0x1 - adds r0, r1, r0 - ldrb r6, [r0] - adds r0, r4, 0x2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - str r3, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - adds r3, r6, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _0805CFA4 - bl PlayerBufferExecCompleted - b _0805CFB0 - .pool -_0805CFA4: - ldr r0, =gBattleBankFunc - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, =sub_8059D90 - str r0, [r1] -_0805CFB0: - adds r0, r6, 0 - bl sub_817E32C -_0805CFB6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleBattleAnimation - - thumb_func_start PlayerHandleLinkStandbyMsg -PlayerHandleLinkStandbyMsg: @ 805CFC8 - push {r4,r5,lr} - ldr r5, =gActiveBank - ldrb r0, [r5] - lsls r0, 9 - ldr r4, =gBattleBufferA + 2 - adds r0, r4 - bl sub_81851A8 - ldrb r0, [r5] - lsls r0, 9 - subs r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0805D002 - cmp r0, 0x1 - bgt _0805CFF8 - cmp r0, 0 - beq _0805CFFE - b _0805D020 - .pool -_0805CFF8: - cmp r0, 0x2 - beq _0805D01C - b _0805D020 -_0805CFFE: - bl PrintLinkStandbyMsg -_0805D002: - ldr r4, =gActiveBank - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - b _0805D020 - .pool -_0805D01C: - bl PrintLinkStandbyMsg -_0805D020: - bl PlayerBufferExecCompleted - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end PlayerHandleLinkStandbyMsg - - thumb_func_start PlayerHandleResetActionMoveSelection -PlayerHandleResetActionMoveSelection: @ 805D02C - push {r4,lr} - ldr r1, =gBattleBufferA - ldr r4, =gActiveBank - ldrb r3, [r4] - lsls r0, r3, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _0805D074 - cmp r2, 0x1 - bgt _0805D054 - cmp r2, 0 - beq _0805D05A - b _0805D084 - .pool -_0805D054: - cmp r2, 0x2 - beq _0805D07C - b _0805D084 -_0805D05A: - ldr r0, =gActionSelectionCursor - adds r0, r3, r0 - strb r2, [r0] - ldr r1, =gMoveSelectionCursor - ldrb r0, [r4] - adds r0, r1 - strb r2, [r0] - b _0805D084 - .pool -_0805D074: - ldr r0, =gActionSelectionCursor - b _0805D07E - .pool -_0805D07C: - ldr r0, =gMoveSelectionCursor -_0805D07E: - adds r0, r3, r0 - movs r1, 0 - strb r1, [r0] -_0805D084: - bl PlayerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleResetActionMoveSelection - - thumb_func_start PlayerHandleCmd55 -PlayerHandleCmd55: @ 805D094 - push {r4,r5,lr} - ldr r5, =gActiveBank - ldrb r0, [r5] - lsls r0, 9 - ldr r4, =gBattleBufferA + 4 - adds r0, r4 - bl sub_81851A8 - ldr r2, =gBattleOutcome - ldrb r0, [r5] - lsls r0, 9 - subs r1, r4, 0x3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - ldrb r0, [r5] - lsls r0, 9 - subs r4, 0x2 - adds r0, r4 - ldrb r0, [r0] - ldr r1, =0x00000ca9 - adds r3, r1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl PlayerBufferExecCompleted - ldr r1, =gBattleBankFunc - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, =sub_80587B0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end PlayerHandleCmd55 - - thumb_func_start nullsub_22 -nullsub_22: @ 805D114 - bx lr - thumb_func_end nullsub_22 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index c7ba486a8..dd96fda80 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -645,7 +645,7 @@ _081BB2E2: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl EmitChoiceReturnValue + bl EmitTwoReturnValues strb r5, [r4] bl IsDoubleBattle lsls r0, 24 @@ -918,7 +918,7 @@ _081BB514: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl EmitChoiceReturnValue + bl EmitTwoReturnValues strb r5, [r4] ldr r0, =sub_81BB628 str r0, [r6] @@ -981,7 +981,7 @@ _081BB65C: adds r1, r4, 0 adds r2, r4, 0 movs r3, 0 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 @@ -1311,7 +1311,7 @@ sub_81BB92C: @ 81BB92C cmp r1, r0 bne _081BB97E adds r0, r3, 0 - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldrb r2, [r4] @@ -1326,7 +1326,7 @@ sub_81BB92C: @ 81BB92C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _081BB972: ldr r0, =gBattleBankFunc ldrb r1, [r4] @@ -4129,7 +4129,7 @@ _081BD318: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _081BD332: ldr r0, [r6] ldrb r1, [r5] @@ -4154,7 +4154,7 @@ _081BD346: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4517,7 +4517,7 @@ sub_81BD674: @ 81BD674 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _081BD6A8: ldr r0, [r6] ldrb r1, [r5] @@ -4828,7 +4828,7 @@ _081BD92A: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _081BD94C: ldr r0, [r7] ldrb r1, [r6] @@ -4886,7 +4886,7 @@ _081BD98A: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] @@ -5068,7 +5068,7 @@ _081BDB3C: orrs r2, r5 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl PlayerPartnerBufferExecCompleted pop {r4-r6} pop {r0} @@ -5138,7 +5138,7 @@ _081BDBD0: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitCmd34 + bl EmitChosenMonReturnValue bl PlayerPartnerBufferExecCompleted pop {r4-r6} pop {r0} @@ -5398,7 +5398,7 @@ sub_81BDE14: @ 81BDE14 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 - bl move_anim_start_t2_for_situation + bl DoStatusAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5594,7 +5594,7 @@ _081BDFB0: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5729,7 +5729,7 @@ dp01t_2E_3_battle_intro: @ 81BE0D8 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -6236,7 +6236,7 @@ sub_81BE53C: @ 81BE53C orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility _081BE582: bl PlayerPartnerBufferExecCompleted pop {r4} @@ -6272,7 +6272,7 @@ sub_81BE59C: @ 81BE59C str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _081BE5E8 diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s index 189d41771..0f5477e88 100644 --- a/asm/battle_controller_recorded_opponent.s +++ b/asm/battle_controller_recorded_opponent.s @@ -1161,7 +1161,7 @@ sub_8186EA4: @ 8186EA4 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08186EE4: ldr r0, =gBattleBankFunc ldrb r1, [r4] @@ -1310,7 +1310,7 @@ sub_8186F94: @ 8186F94 ldrb r0, [r0] bl SetHealthboxSpriteVisible ldrb r0, [r5] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3968,7 +3968,7 @@ _08188828: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08188842: ldr r0, [r6] ldrb r1, [r5] @@ -3993,7 +3993,7 @@ _08188856: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4301,7 +4301,7 @@ sub_8188AF8: @ 8188AF8 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08188B2C: ldr r0, [r6] ldrb r1, [r5] @@ -4584,7 +4584,7 @@ _08188D6E: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _08188D90: ldr r0, [r7] ldrb r1, [r6] @@ -4642,7 +4642,7 @@ _08188DCE: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] @@ -4754,7 +4754,7 @@ sub_8188EF0: @ 8188EF0 lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl RecordedOpponentBufferExecCompleted pop {r0} bx r0 @@ -4779,13 +4779,13 @@ sub_8188F20: @ 8188F20 ands r0, r1 cmp r0, 0 beq _08188F48 - bl sub_805D19C + bl ChooseMoveAndTargetInBattlePalace adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues b _08188F6C .pool _08188F48: @@ -4803,7 +4803,7 @@ _08188F48: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues _08188F6C: bl RecordedOpponentBufferExecCompleted pop {r4,r5} @@ -4839,7 +4839,7 @@ sub_8188F88: @ 8188F88 ldrb r1, [r0] movs r0, 0x1 movs r2, 0 - bl EmitCmd34 + bl EmitChosenMonReturnValue bl RecordedOpponentBufferExecCompleted pop {r4} pop {r0} @@ -5041,7 +5041,7 @@ sub_8189144: @ 8189144 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 - bl move_anim_start_t2_for_situation + bl DoStatusAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5237,7 +5237,7 @@ _081892E0: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5371,7 +5371,7 @@ sub_8189404: @ 8189404 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -5848,7 +5848,7 @@ sub_8189800: @ 8189800 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility _08189846: bl RecordedOpponentBufferExecCompleted pop {r4} @@ -5884,7 +5884,7 @@ sub_8189860: @ 8189860 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _081898AC diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s index a5702f5a0..451b6178b 100644 --- a/asm/battle_controller_recorded_player.s +++ b/asm/battle_controller_recorded_player.s @@ -1112,7 +1112,7 @@ sub_818A2B4: @ 818A2B4 cmp r1, r0 bne _0818A306 adds r0, r3, 0 - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldrb r2, [r4] @@ -1127,7 +1127,7 @@ sub_818A2B4: @ 818A2B4 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0818A2FA: ldr r0, =gBattleBankFunc ldrb r1, [r4] @@ -3930,7 +3930,7 @@ _0818BCA0: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0818BCBA: ldr r0, [r6] ldrb r1, [r5] @@ -3955,7 +3955,7 @@ _0818BCCE: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -4373,7 +4373,7 @@ sub_818C064: @ 818C064 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0818C098: ldr r0, [r6] ldrb r1, [r5] @@ -4684,7 +4684,7 @@ _0818C31A: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0818C33C: ldr r0, [r7] ldrb r1, [r6] @@ -4742,7 +4742,7 @@ _0818C37A: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] @@ -4861,7 +4861,7 @@ sub_818C49C: @ 818C49C lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl RecordedPlayerBufferExecCompleted _0818C4C6: pop {r0} @@ -4897,7 +4897,7 @@ _0818C508: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl RecordedPlayerBufferExecCompleted _0818C522: pop {r0} @@ -4923,13 +4923,13 @@ sub_818C538: @ 818C538 ands r0, r1 cmp r0, 0 beq _0818C560 - bl sub_805D19C + bl ChooseMoveAndTargetInBattlePalace adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues b _0818C584 .pool _0818C560: @@ -4947,7 +4947,7 @@ _0818C560: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues _0818C584: bl RecordedPlayerBufferExecCompleted pop {r4,r5} @@ -4983,7 +4983,7 @@ sub_818C5A0: @ 818C5A0 ldrb r1, [r0] movs r0, 0x1 movs r2, 0 - bl EmitCmd34 + bl EmitChosenMonReturnValue bl RecordedPlayerBufferExecCompleted pop {r4} pop {r0} @@ -5192,7 +5192,7 @@ sub_818C76C: @ 818C76C ldrb r2, [r3] lsls r2, 24 orrs r1, r2 - bl move_anim_start_t2_for_situation + bl DoStatusAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -5388,7 +5388,7 @@ _0818C908: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -5523,7 +5523,7 @@ dp01t_2E_2_battle_intro: @ 818CA30 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -6032,7 +6032,7 @@ sub_818CE98: @ 818CE98 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] - bl sub_805E408 + bl SetBattleSpriteInvisibilityBitToSpriteInvisibility _0818CEDE: bl RecordedPlayerBufferExecCompleted pop {r4} @@ -6068,7 +6068,7 @@ sub_818CEF8: @ 818CEF8 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _0818CF44 diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index 9745fa7c8..4093d433b 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -103,13 +103,13 @@ _0815942A: movs r1, 0x7 _0815942E: movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues b _08159440 _08159436: movs r0, 0x1 movs r1, 0x8 movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues _08159440: bl SafariBufferExecCompleted b _0815954E @@ -399,7 +399,7 @@ sub_8159698: @ 8159698 ldr r0, =gScriptItemId ldrh r1, [r0] movs r0, 0x1 - bl EmitCmd35 + bl EmitOneReturnValue bl SafariBufferExecCompleted _081596BE: pop {r0} @@ -707,7 +707,7 @@ sub_8159910: @ 8159910 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -746,7 +746,7 @@ sub_8159964: @ 8159964 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -1227,7 +1227,7 @@ dp01t_2E_6_battle_intro: @ 8159D5C adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -1329,7 +1329,7 @@ sub_8159E1C: @ 8159E1C str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _08159E5C diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s index 473582d0e..10b6d30be 100644 --- a/asm/battle_controller_wally.s +++ b/asm/battle_controller_wally.s @@ -121,7 +121,7 @@ _081684CE: movs r1, 0x9 _081684E4: movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl WallyBufferExecCompleted ldr r1, [r4] adds r1, 0x94 @@ -176,7 +176,7 @@ _08168540: movs r0, 0x1 movs r1, 0x1 movs r2, 0 - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl WallyBufferExecCompleted _08168564: pop {r4,r5} @@ -279,7 +279,7 @@ sub_8168610: @ 8168610 ldr r0, =gScriptItemId ldrh r1, [r0] movs r0, 0x1 - bl EmitCmd35 + bl EmitOneReturnValue bl WallyBufferExecCompleted _08168636: pop {r0} @@ -2952,7 +2952,7 @@ WallyHandleReturnMonToBall: @ 8169E44 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r0, =gBattleBankFunc ldrb r1, [r6] lsls r1, 2 @@ -3207,7 +3207,7 @@ WallyHandleCmd12: @ 816A084 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3246,7 +3246,7 @@ WallyHandleBallThrow: @ 816A0D8 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x4 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3452,7 +3452,7 @@ _0816A2C6: adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x5 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0816A2E2: ldr r0, [r7] ldrb r1, [r6] @@ -3507,7 +3507,7 @@ _0816A320: adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 - bl move_anim_start_t4 + bl DoSpecialBattleAnimation _0816A354: ldr r0, [r7] ldrb r1, [r6] @@ -3700,7 +3700,7 @@ _0816A504: beq _0816A550 b _0816A574 _0816A50A: - bl sub_805C210 + bl InitMoveSelectionsVarsAndStrings ldr r1, [r4] adds r1, 0x95 ldrb r0, [r1] @@ -3745,7 +3745,7 @@ _0816A550: lsls r2, 1 movs r0, 0x1 movs r1, 0xA - bl EmitChoiceReturnValue + bl EmitTwoReturnValues bl WallyBufferExecCompleted _0816A574: pop {r4} @@ -4062,7 +4062,7 @@ _0816A7C8: movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] - bl sub_80769F4 + bl DoHitAnimHealthboxEffect ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 @@ -4184,7 +4184,7 @@ WallyHandleIntroSlide: @ 816A8D8 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] - bl battle_intro_launch + bl HandleIntroSlide ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 @@ -4672,7 +4672,7 @@ WallyHandleBattleAnimation: @ 816AD20 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 - bl move_anim_start_t3 + bl DoBattleAnimationFromTable lsls r0, 24 cmp r0, 0 beq _0816AD60 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index aa887bc25..fedb50c45 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -110,7 +110,7 @@ _0817CA4C: ldr r1, =gStringInfo ldr r1, [r1] ldrh r1, [r1] - bl sub_817F33C + bl GetBankMoveSlotId lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -2572,7 +2572,7 @@ _0817E122: mov r1, r10 ldrb r0, [r1] adds r1, r7, 0 - bl sub_817F33C + bl GetBankMoveSlotId lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 @@ -4793,8 +4793,8 @@ _0817F324: .pool thumb_func_end sub_817F2A8 - thumb_func_start sub_817F33C -sub_817F33C: @ 817F33C + thumb_func_start GetBankMoveSlotId +GetBankMoveSlotId: @ 817F33C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -4835,7 +4835,7 @@ _0817F388: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_817F33C + thumb_func_end GetBankMoveSlotId thumb_func_start sub_817F394 sub_817F394: @ 817F394 @@ -4888,97 +4888,4 @@ _0817F3E6: bx r0 thumb_func_end sub_817F394 - 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 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeball.s b/asm/pokeball.s index fed227c80..0afd27932 100755 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -2685,8 +2685,8 @@ _080769EA: .pool thumb_func_end sub_80769CC - thumb_func_start sub_80769F4 -sub_80769F4: @ 80769F4 + thumb_func_start DoHitAnimHealthboxEffect +DoHitAnimHealthboxEffect: @ 80769F4 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 @@ -2714,7 +2714,7 @@ sub_80769F4: @ 80769F4 pop {r0} bx r0 .pool - thumb_func_end sub_80769F4 + thumb_func_end DoHitAnimHealthboxEffect thumb_func_start oamc_804BEB4 oamc_804BEB4: @ 8076A38 diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s index a29ecb729..870e658f7 100644 --- a/asm/pokemon_animation.s +++ b/asm/pokemon_animation.s @@ -4,6 +4,100 @@ .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 diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s deleted file mode 100644 index fa05e36ce..000000000 --- a/asm/rom_80A5C6C.s +++ /dev/null @@ -1,6526 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A5C6C -sub_80A5C6C: @ 80A5C6C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A5C8A - cmp r4, 0x3 - bne _080A5C8A - cmp r5, 0x3 - bne _080A5C8A - movs r4, 0x1 -_080A5C8A: - cmp r4, 0x4 - bhi _080A5D00 - lsls r0, r4, 2 - ldr r1, =_080A5C9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080A5C9C: - .4byte _080A5CB0 - .4byte _080A5CD8 - .4byte _080A5CB0 - .4byte _080A5D00 - .4byte _080A5D00 -_080A5CB0: - ldr r4, =gUnknown_08525F58 - adds r0, r5, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 22 - ldr r1, =gBattleTypeFlags - ldr r1, [r1] - movs r2, 0x1 - ands r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - b _080A5DB0 - .pool -_080A5CD8: - ldr r4, =gUnknown_08525F58 - adds r0, r5, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 22 - ldr r1, =gBattleTypeFlags - ldr r1, [r1] - movs r2, 0x1 - ands r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1] - b _080A5DB0 - .pool -_080A5D00: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A5D28 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A5D24 - ldrh r1, [r2, 0x2] - b _080A5D9A - .pool -_080A5D24: - ldrh r1, [r2] - b _080A5D9A -_080A5D28: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A5D60 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A5D98 - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _080A5D7E - .pool -_080A5D60: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A5D98 - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_080A5D7E: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - b _080A5D9A - .pool -_080A5D98: - ldrh r1, [r1, 0x2] -_080A5D9A: - cmp r4, 0x3 - bne _080A5DA4 - adds r0, r5, 0 - movs r2, 0x1 - b _080A5DA8 -_080A5DA4: - adds r0, r5, 0 - movs r2, 0 -_080A5DA8: - bl sub_80A600C - lsls r0, 24 - lsrs r0, 24 -_080A5DB0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A5C6C - - thumb_func_start sub_80A5DB8 -sub_80A5DB8: @ 80A5DB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A5DDA - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A5DDA - b _080A5EC8 -_080A5DDA: - cmp r5, 0xC9 - bne _080A5E90 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A5E04 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A5E00 - ldr r2, [r2, 0x10] - b _080A5E42 - .pool -_080A5E00: - ldr r2, [r2, 0x8] - b _080A5E42 -_080A5E04: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - bne _080A5E3C - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0 - bl GetMonData - adds r2, r0, 0 - b _080A5E42 - .pool -_080A5E3C: - ldr r0, =gTransformedPersonalities - adds r0, r1, r0 - ldr r2, [r0] -_080A5E42: - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080A5E7C - adds r0, r5, 0 - b _080A5E86 - .pool -_080A5E7C: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_080A5E86: - ldr r1, =gUnknown_083021D8 - lsls r0, 2 - b _080A5F90 - .pool -_080A5E90: - ldr r0, =0x00000181 - cmp r5, r0 - bne _080A5EB0 - ldr r0, =gUnknown_08525F8C - ldr r1, =gBattleMonForms - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, r0 - ldrb r0, [r1] - b _080A5F94 - .pool -_080A5EB0: - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - bls _080A5EC0 - ldr r0, =gUnknown_083021D8 - b _080A5F92 - .pool -_080A5EC0: - ldr r1, =gUnknown_083021D8 - b _080A5F8E - .pool -_080A5EC8: - cmp r5, 0xC9 - bne _080A5F58 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - bne _080A5F04 - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0 - bl GetMonData - adds r2, r0, 0 - b _080A5F0A - .pool -_080A5F04: - ldr r0, =gTransformedPersonalities - adds r0, r1, r0 - ldr r2, [r0] -_080A5F0A: - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080A5F44 - adds r0, r5, 0 - b _080A5F4E - .pool -_080A5F44: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_080A5F4E: - ldr r1, =gMonFrontPicCoords - lsls r0, 2 - b _080A5F90 - .pool -_080A5F58: - ldr r0, =0x00000181 - cmp r5, r0 - bne _080A5F7C - ldr r0, =gCastformFrontSpriteCoords - ldr r1, =gBattleMonForms - adds r1, r4, r1 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _080A5F94 - .pool -_080A5F7C: - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - bls _080A5F8C - ldr r0, =gMonFrontPicCoords - b _080A5F92 - .pool -_080A5F8C: - ldr r1, =gMonFrontPicCoords -_080A5F8E: - lsls r0, r5, 2 -_080A5F90: - adds r0, r1 -_080A5F92: - ldrb r0, [r0, 0x1] -_080A5F94: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A5DB8 - - thumb_func_start sub_80A5FA0 -sub_80A5FA0: @ 80A5FA0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - adds r7, r4, 0 - movs r5, 0 - adds r0, r6, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5FFE - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A5FFE - ldr r0, =0x00000181 - cmp r4, r0 - bne _080A5FE8 - ldr r0, =gUnknown_08525F88 - ldr r1, =gBattleMonForms - adds r1, r6, r1 - ldrb r1, [r1] - adds r1, r0 - ldrb r5, [r1] - b _080A5FFE - .pool -_080A5FE8: - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _080A5FF8 - ldr r0, =gEnemyMonElevation - b _080A5FFC - .pool -_080A5FF8: - ldr r0, =gEnemyMonElevation - adds r0, r7, r0 -_080A5FFC: - ldrb r5, [r0] -_080A5FFE: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A5FA0 - - thumb_func_start sub_80A600C -sub_80A600C: @ 80A600C - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - adds r0, r6, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A6030 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A603E -_080A6030: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80A5DB8 - lsls r0, 24 - lsrs r4, r0, 24 - b _080A605C -_080A603E: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80A5DB8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80A5FA0 - lsls r0, 24 - lsrs r0, 24 - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 -_080A605C: - adds r0, r6, 0 - bl GetBankIdentity - ldr r3, =gUnknown_08525F58 - lsls r0, 24 - lsrs r0, 22 - ldr r1, =gBattleTypeFlags - ldr r1, [r1] - movs r2, 0x1 - ands r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0, 0x1] - adds r0, r4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, 0 - beq _080A609C - adds r0, r6, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A6096 - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 -_080A6096: - cmp r4, 0x68 - bls _080A609C - movs r4, 0x68 -_080A609C: - adds r0, r4, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A600C - - thumb_func_start sub_80A60AC -sub_80A60AC: @ 80A60AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r0, 0xFD - lsls r0, 24 - adds r1, r0 - lsrs r1, 24 - cmp r1, 0x1 - bhi _080A6126 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A60E8 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A60E4 - ldrh r1, [r2, 0x2] - b _080A610E - .pool -_080A60E4: - ldrh r1, [r2] - b _080A610E -_080A60E8: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A610C - ldr r1, =gAnimSpeciesByBanks - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - b _080A610E - .pool -_080A610C: - ldrh r1, [r1, 0x2] -_080A610E: - cmp r5, 0x3 - bne _080A611C - adds r0, r4, 0 - movs r2, 0x1 - bl sub_80A600C - b _080A612E -_080A611C: - adds r0, r4, 0 - movs r2, 0 - bl sub_80A600C - b _080A612E -_080A6126: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A5C6C -_080A612E: - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A60AC - - thumb_func_start sub_80A6138 -sub_80A6138: @ 80A6138 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x4 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80A6138 - - thumb_func_start sub_80A614C -sub_80A614C: @ 80A614C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A6170 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 8 - movs r1, 0x80 - lsls r1, 13 - b _080A6180 -_080A6170: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 8 - movs r1, 0x88 - lsls r1, 13 -_080A6180: - adds r0, r1 - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A614C - - thumb_func_start sub_80A6190 -sub_80A6190: @ 80A6190 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r6, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A6238 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A61E4 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A621C - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _080A6202 - .pool -_080A61E4: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A621C - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_080A6202: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - b _080A621E - .pool -_080A621C: - ldrh r4, [r1, 0x2] -_080A621E: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A6238 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A5FA0 - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 -_080A6238: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A6190 - - thumb_func_start GetAnimBankSpriteId -GetAnimBankSpriteId: @ 80A6240 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - bne _080A6268 - ldr r4, =gAnimBankAttacker - ldrb r0, [r4] - bl AnimBankSpriteExists - lsls r0, 24 - cmp r0, 0 - beq _080A62B6 - ldr r1, =gBankSpriteIds - ldrb r0, [r4] - b _080A62C6 - .pool -_080A6268: - cmp r0, 0x1 - bne _080A6288 - ldr r4, =gAnimBankTarget - ldrb r0, [r4] - bl AnimBankSpriteExists - lsls r0, 24 - cmp r0, 0 - beq _080A62B6 - ldr r1, =gBankSpriteIds - ldrb r0, [r4] - b _080A62C6 - .pool -_080A6288: - cmp r1, 0x2 - bne _080A62A4 - ldr r5, =gAnimBankAttacker - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A62B6 - b _080A62C0 - .pool -_080A62A4: - ldr r5, =gAnimBankTarget - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _080A62C0 -_080A62B6: - movs r0, 0xFF - b _080A62CA - .pool -_080A62C0: - ldr r1, =gBankSpriteIds - ldrb r0, [r5] - eors r0, r4 -_080A62C6: - adds r0, r1 - ldrb r0, [r0] -_080A62CA: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end GetAnimBankSpriteId - - thumb_func_start StoreSpriteCallbackInData6 -StoreSpriteCallbackInData6: @ 80A62D4 - strh r1, [r0, 0x3A] - lsrs r1, 16 - strh r1, [r0, 0x3C] - bx lr - thumb_func_end StoreSpriteCallbackInData6 - - thumb_func_start sub_80A62DC -sub_80A62DC: @ 80A62DC - ldrh r2, [r0, 0x3A] - movs r3, 0x3C - ldrsh r1, [r0, r3] - lsls r1, 16 - orrs r2, r1 - str r2, [r0, 0x1C] - bx lr - thumb_func_end sub_80A62DC - - thumb_func_start sub_80A62EC -sub_80A62EC: @ 80A62EC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A6340 - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080A632C - ldr r2, =0xffffff00 - b _080A6334 - .pool -_080A632C: - cmp r0, 0 - bge _080A6338 - movs r2, 0x80 - lsls r2, 1 -_080A6334: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080A6338: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080A6346 -_080A6340: - adds r0, r4, 0 - bl sub_80A62DC -_080A6346: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A62EC - - thumb_func_start sub_80A634C -sub_80A634C: @ 80A634C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A63BC - movs r2, 0x2E - ldrsh r0, [r4, r2] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080A63A8 - ldr r2, =0xffffff00 - b _080A63B0 - .pool -_080A63A8: - cmp r0, 0 - bge _080A63B4 - movs r2, 0x80 - lsls r2, 1 -_080A63B0: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080A63B4: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080A63C2 -_080A63BC: - adds r0, r4, 0 - bl sub_80A62DC -_080A63C2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A634C - - thumb_func_start sub_80A63C8 -sub_80A63C8: @ 80A63C8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A6444 - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x38] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080A6410 - ldr r2, =0xffffff00 - b _080A6418 - .pool -_080A6410: - cmp r0, 0 - bge _080A641C - movs r2, 0x80 - lsls r2, 1 -_080A6418: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080A641C: - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - ble _080A6430 - ldr r2, =0xffffff00 - b _080A6438 - .pool -_080A6430: - cmp r0, 0 - bge _080A643C - movs r2, 0x80 - lsls r2, 1 -_080A6438: - adds r0, r1, r2 - strh r0, [r4, 0x36] -_080A643C: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080A644A -_080A6444: - adds r0, r4, 0 - bl sub_80A62DC -_080A644A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A63C8 - - thumb_func_start sub_80A6450 -sub_80A6450: @ 80A6450 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A64A4 - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080A6490 - ldr r2, =0xffffff00 - b _080A6498 - .pool -_080A6490: - cmp r0, 0 - bge _080A649C - movs r2, 0x80 - lsls r2, 1 -_080A6498: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080A649C: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080A64AA -_080A64A4: - adds r0, r4, 0 - bl sub_80A62DC -_080A64AA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6450 - - thumb_func_start sub_80A64B0 -sub_80A64B0: @ 80A64B0 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _080A64C4 - subs r0, r2, 0x1 - strh r0, [r1, 0x2E] - b _080A64CA -_080A64C4: - adds r0, r1, 0 - bl sub_80A62DC -_080A64CA: - pop {r0} - bx r0 - thumb_func_end sub_80A64B0 - - thumb_func_start sub_80A64D0 -sub_80A64D0: @ 80A64D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A64EC - ldr r1, =sub_80A653C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A64D0 - - thumb_func_start sub_80A64EC -sub_80A64EC: @ 80A64EC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _080A6502 - ldrh r0, [r4, 0x2E] - negs r0, r0 - strh r0, [r4, 0x2E] -_080A6502: - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - subs r0, r1 - ldrh r5, [r4, 0x2E] - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - cmp r0, 0 - bge _080A651C - negs r0, r0 -_080A651C: - strh r0, [r4, 0x2E] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - subs r0, r1 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x32] - strh r5, [r4, 0x30] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A64EC - - thumb_func_start sub_80A653C -sub_80A653C: @ 80A653C - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _080A6560 - subs r0, r2, 0x1 - strh r0, [r1, 0x2E] - ldrh r0, [r1, 0x30] - ldrh r2, [r1, 0x24] - adds r0, r2 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - ldrh r3, [r1, 0x26] - adds r0, r3 - strh r0, [r1, 0x26] - b _080A6566 -_080A6560: - adds r0, r1, 0 - bl sub_80A62DC -_080A6566: - pop {r0} - bx r0 - thumb_func_end sub_80A653C - - thumb_func_start sub_80A656C -sub_80A656C: @ 80A656C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080A659C - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r0, r1 - strh r0, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r3, [r2, 0x36] - adds r1, r3 - strh r1, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - b _080A65A2 -_080A659C: - adds r0, r2, 0 - bl sub_80A62DC -_080A65A2: - pop {r0} - bx r0 - thumb_func_end sub_80A656C - - thumb_func_start sub_80A65A8 -sub_80A65A8: @ 80A65A8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A65D8 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - b _080A65DE -_080A65D8: - adds r0, r4, 0 - bl sub_80A62DC -_080A65DE: - adds r0, r4, 0 - bl sub_80D30DC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A65A8 - - thumb_func_start sub_80A65EC -sub_80A65EC: @ 80A65EC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x34] - ldr r5, =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, =sub_80A64D0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A65EC - - thumb_func_start sub_80A6630 -sub_80A6630: @ 80A6630 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080A6674 - subs r0, r1, 0x1 - strh r0, [r3, 0x2E] - ldr r2, =gSprites - movs r4, 0x34 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x30] - ldrh r4, [r0, 0x24] - adds r1, r4 - strh r1, [r0, 0x24] - movs r0, 0x34 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x32] - ldrh r2, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - b _080A667A - .pool -_080A6674: - adds r0, r3, 0 - bl sub_80A62DC -_080A667A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6630 - - thumb_func_start sub_80A6680 -sub_80A6680: @ 80A6680 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A66D0 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r1, r0 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldr r3, =gSprites - movs r0, 0x38 - ldrsh r2, [r4, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - lsls r1, 16 - asrs r1, 24 - strh r1, [r0, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] - b _080A66D6 - .pool -_080A66D0: - adds r0, r4, 0 - bl sub_80A62DC -_080A66D6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6680 - - thumb_func_start sub_80A66DC -sub_80A66DC: @ 80A66DC - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080A673E - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r1, r0 - strh r1, [r4, 0x32] - ldrh r1, [r4, 0x36] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080A6744 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A6744 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080A6744 -_080A673E: - adds r0, r4, 0 - bl sub_80A62DC -_080A6744: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A66DC - - thumb_func_start move_anim_8074EE0 -move_anim_8074EE0: @ 80A674C - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end move_anim_8074EE0 - - thumb_func_start sub_80A6760 -sub_80A6760: @ 80A6760 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x34] - ldr r5, =gAnimBankAttacker - ldrb r0, [r5] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, =sub_80A64D0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6760 - - thumb_func_start sub_80A67A4 -sub_80A67A4: @ 80A67A4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - bl ResetPaletteStructByUid - adds r0, r4, 0 - bl move_anim_8074EE0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A67A4 - - thumb_func_start sub_80A67BC -sub_80A67BC: @ 80A67BC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080A67D2 - adds r0, r2, 0 - bl sub_80A62DC -_080A67D2: - pop {r0} - bx r0 - thumb_func_end sub_80A67BC - - thumb_func_start sub_80A67D8 -sub_80A67D8: @ 80A67D8 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080A67EE - adds r0, r2, 0 - bl sub_80A62DC -_080A67EE: - pop {r0} - bx r0 - thumb_func_end sub_80A67D8 - - thumb_func_start sub_80A67F4 -sub_80A67F4: @ 80A67F4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A67F4 - - thumb_func_start sub_80A6814 -sub_80A6814: @ 80A6814 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6814 - - thumb_func_start sub_80A6838 -sub_80A6838: @ 80A6838 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6838 - - thumb_func_start sub_80A6864 -sub_80A6864: @ 80A6864 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - mov r8, r5 - ldr r7, =gAnimBankAttacker - ldrb r0, [r7] - movs r1, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gAnimBankTarget - ldrb r0, [r0] - movs r1, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bhi _080A68B0 - cmp r6, r0 - bcs _080A68A4 - lsls r0, r5, 16 - b _080A68C0 - .pool -_080A68A4: - ldrb r0, [r7] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A68BC -_080A68B0: - ldrh r1, [r4, 0x20] - lsls r0, r5, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r4, 0x20] - b _080A68C8 -_080A68BC: - mov r1, r8 - lsls r0, r1, 16 -_080A68C0: - asrs r0, 16 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] -_080A68C8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A6864 - - thumb_func_start sub_80A68D4 -sub_80A68D4: @ 80A68D4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - movs r5, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - strh r0, [r4, 0x3A] - strh r5, [r4, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A68D4 - - thumb_func_start sub_80A6900 -sub_80A6900: @ 80A6900 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6F3C - lsls r0, 24 - cmp r0, 0 - bne _080A692C - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - lsls r0, 16 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r0, 0 - b _080A692E -_080A692C: - movs r0, 0x1 -_080A692E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A6900 - - thumb_func_start sub_80A6934 -sub_80A6934: @ 80A6934 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6F3C - lsls r0, 24 - cmp r0, 0 - bne _080A6960 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - lsls r0, 16 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0 - b _080A6962 -_080A6960: - movs r0, 0x1 -_080A6962: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A6934 - - thumb_func_start oamt_add_pos2_onto_pos1 -oamt_add_pos2_onto_pos1: @ 80A6968 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - movs r2, 0 - strh r1, [r0, 0x20] - ldrh r1, [r0, 0x26] - ldrh r3, [r0, 0x22] - adds r1, r3 - strh r1, [r0, 0x22] - strh r2, [r0, 0x24] - strh r2, [r0, 0x26] - bx lr - thumb_func_end oamt_add_pos2_onto_pos1 - - thumb_func_start sub_80A6980 -sub_80A6980: @ 80A6980 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - cmp r1, 0 - bne _080A69A8 - ldr r4, =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0 - bl sub_80A60AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_80A60AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080A69A8: - ldr r4, =gBattleAnimArgs - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_80A6864 - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6980 - - thumb_func_start sub_80A69CC -sub_80A69CC: @ 80A69CC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - cmp r1, 0 - bne _080A69F0 - ldr r4, =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0 - bl sub_80A60AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - b _080A6A04 - .pool -_080A69F0: - ldr r4, =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl sub_80A60AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 -_080A6A04: - bl sub_80A60AC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, =gBattleAnimArgs - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_80A6864 - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A69CC - - thumb_func_start GetBankSide -GetBankSide: @ 80A6A30 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gBanksByIdentity - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end GetBankSide - - thumb_func_start GetBankIdentity -GetBankIdentity: @ 80A6A44 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gBanksByIdentity - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end GetBankIdentity - - thumb_func_start GetBankByIdentity -GetBankByIdentity: @ 80A6A54 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r1, 0 - ldr r0, =gNoOfAllBanks - ldrb r2, [r0] - cmp r1, r2 - bcs _080A6A7E - ldr r4, =gBanksByIdentity - ldrb r0, [r4] - cmp r0, r3 - beq _080A6A7E -_080A6A6C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - bcs _080A6A7E - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _080A6A6C -_080A6A7E: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetBankByIdentity - - thumb_func_start AnimBankSpriteExists -AnimBankSpriteExists: @ 80A6A90 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A6ABC - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - cmp r0, r4 - beq _080A6B0A - ldr r0, =gAnimBankTarget - ldrb r0, [r0] - cmp r0, r4 - beq _080A6B0A - b _080A6B18 - .pool -_080A6ABC: - ldr r0, =gBanksByIdentity - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080A6B18 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A6AF0 - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _080A6AFE - .pool -_080A6AF0: - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_080A6AFE: - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080A6B18 -_080A6B0A: - movs r0, 0x1 - b _080A6B1A - .pool -_080A6B18: - movs r0, 0 -_080A6B1A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end AnimBankSpriteExists - - thumb_func_start IsDoubleBattle -IsDoubleBattle: @ 80A6B20 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end IsDoubleBattle - - thumb_func_start sub_80A6B30 -sub_80A6B30: @ 80A6B30 - push {r4,lr} - adds r4, r0, 0 - bl IsContest - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080A6B64 - ldr r0, =gUnknown_0202305C - ldr r0, [r0] - str r0, [r4] - ldr r0, =gUnknown_02023060 - ldr r0, [r0] - str r0, [r4, 0x4] - movs r1, 0 - movs r0, 0xE - strb r0, [r4, 0x8] - movs r0, 0x1 - strb r0, [r4, 0x9] - strh r1, [r4, 0xA] - b _080A6B7E - .pool -_080A6B64: - ldr r0, =gUnknown_0202305C - ldr r0, [r0] - str r0, [r4] - ldr r0, =gUnknown_02023060 - ldr r0, [r0] - str r0, [r4, 0x4] - movs r0, 0x8 - strb r0, [r4, 0x8] - movs r0, 0x1 - strb r0, [r4, 0x9] - movs r0, 0x80 - lsls r0, 2 - strh r0, [r4, 0xA] -_080A6B7E: - strh r1, [r4, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6B30 - - thumb_func_start sub_80A6B90 -sub_80A6B90: @ 80A6B90 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl IsContest - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080A6BC4 - ldr r0, =gUnknown_0202305C - ldr r0, [r0] - str r0, [r4] - ldr r0, =gUnknown_02023060 - ldr r0, [r0] - str r0, [r4, 0x4] - movs r1, 0 - movs r0, 0xE - strb r0, [r4, 0x8] - movs r0, 0x1 - strb r0, [r4, 0x9] - strh r1, [r4, 0xA] - b _080A6BEA - .pool -_080A6BC4: - cmp r5, 0x1 - bne _080A6BD0 - adds r0, r4, 0 - bl sub_80A6B30 - b _080A6BEC -_080A6BD0: - ldr r0, =gUnknown_0202305C - ldr r0, [r0] - str r0, [r4] - ldr r0, =gUnknown_02023060 - ldr r0, [r0] - str r0, [r4, 0x4] - movs r0, 0x9 - strb r0, [r4, 0x8] - movs r0, 0x2 - strb r0, [r4, 0x9] - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r4, 0xA] -_080A6BEA: - strh r1, [r4, 0xC] -_080A6BEC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6B90 - - thumb_func_start sub_80A6BFC -sub_80A6BFC: @ 80A6BFC - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_0202305C - ldr r0, [r0] - str r0, [r4] - ldr r0, =gUnknown_02023060 - ldr r0, [r0] - str r0, [r4, 0x4] - bl IsContest - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080A6C30 - movs r0, 0 - movs r1, 0xE - strb r1, [r4, 0x8] - movs r1, 0x1 - strb r1, [r4, 0x9] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - b _080A6C60 - .pool -_080A6C30: - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl sub_80A8364 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080A6C50 - movs r0, 0x8 - strb r0, [r4, 0x8] - strb r1, [r4, 0x9] - movs r0, 0x80 - lsls r0, 2 - b _080A6C5C - .pool -_080A6C50: - movs r0, 0x9 - strb r0, [r4, 0x8] - movs r0, 0x2 - strb r0, [r4, 0x9] - movs r0, 0xC0 - lsls r0, 2 -_080A6C5C: - strh r0, [r4, 0xA] - strh r5, [r4, 0xC] -_080A6C60: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A6BFC - - thumb_func_start sub_80A6C68 -sub_80A6C68: @ 80A6C68 - push {lr} - sub sp, 0x20 - adds r1, r0, 0 - add r0, sp, 0xC - bl sub_80A6B90 - movs r0, 0 - str r0, [sp, 0x1C] - add r0, sp, 0x1C - ldr r1, [sp, 0xC] - ldr r2, =0x05000800 - bl CpuSet - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - ldr r1, [sp, 0xC] - movs r2, 0x80 - lsls r2, 6 - add r3, sp, 0xC - ldrh r3, [r3, 0xA] - bl LoadBgTiles - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - movs r1, 0x20 - str r1, [sp] - movs r1, 0x40 - str r1, [sp, 0x4] - movs r1, 0x11 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - add r0, sp, 0xC - ldrb r0, [r0, 0x9] - bl CopyBgTilemapBufferToVram - add sp, 0x20 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6C68 - - thumb_func_start sub_80A6CC0 -sub_80A6CC0: @ 80A6CC0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r5, r0, 0 - mov r8, r1 - adds r6, r2, 0 - movs r0, 0 - str r0, [sp] - ldr r4, =gUnknown_0202305C - ldr r1, [r4] - ldr r2, =0x05000800 - mov r0, sp - bl CpuSet - ldr r1, [r4] - mov r0, r8 - bl LZDecompressWram - lsls r5, 24 - lsrs r5, 24 - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 6 - lsls r6, 16 - lsrs r6, 16 - adds r0, r5, 0 - adds r3, r6, 0 - bl LoadBgTiles - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6CC0 - - thumb_func_start sub_80A6D10 -sub_80A6D10: @ 80A6D10 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x40 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A6D10 - - thumb_func_start sub_80A6D48 -sub_80A6D48: @ 80A6D48 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6D10 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl CopyBgTilemapBufferToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6D48 - - thumb_func_start sub_80A6D60 -sub_80A6D60: @ 80A6D60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r2, 0 - ldrb r0, [r4, 0x9] - bl sub_80A6D10 - bl IsContest - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6D86 - ldrb r0, [r4, 0x8] - ldr r1, [r4, 0x4] - lsls r3, r5, 24 - lsrs r3, 24 - movs r2, 0 - bl sub_80A4720 -_080A6D86: - ldrb r0, [r4, 0x9] - bl CopyBgTilemapBufferToVram - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A6D60 - - thumb_func_start sub_80A6D94 -sub_80A6D94: @ 80A6D94 - push {lr} - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A6DA4 - movs r0, 0x2 - b _080A6DA6 -_080A6DA4: - movs r0, 0x1 -_080A6DA6: - pop {r1} - bx r1 - thumb_func_end sub_80A6D94 - - thumb_func_start sub_80A6DAC -sub_80A6DAC: @ 80A6DAC - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _080A6DBE - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A6DD4 -_080A6DBE: - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl SetAnimBgAttribute - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x1 - bl SetAnimBgAttribute - b _080A6DE8 -_080A6DD4: - movs r0, 0x3 - movs r1, 0 - movs r2, 0x1 - bl SetAnimBgAttribute - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl SetAnimBgAttribute -_080A6DE8: - pop {r0} - bx r0 - thumb_func_end sub_80A6DAC - - thumb_func_start sub_80A6DEC -sub_80A6DEC: @ 80A6DEC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_80A6E14 - ldr r1, =sub_80A65A8 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6DEC - - thumb_func_start sub_80A6E14 -sub_80A6E14: @ 80A6E14 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r0, r1 - ldrh r4, [r5, 0x36] - ldrh r1, [r5, 0x34] - subs r4, r1 - lsls r4, 24 - lsrs r4, 16 - lsls r0, 24 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r5, r2] - bl __divsi3 - movs r6, 0 - strh r0, [r5, 0x30] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2E - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl __divsi3 - strh r0, [r5, 0x32] - strh r6, [r5, 0x36] - strh r6, [r5, 0x34] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6E14 - - thumb_func_start obj_translate_based_on_private_1_2_3_4 -obj_translate_based_on_private_1_2_3_4: @ 80A6E54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - movs r0, 0x32 - ldrsh r1, [r7, r0] - movs r2, 0x30 - ldrsh r0, [r7, r2] - subs r1, r0 - movs r3, 0x36 - ldrsh r2, [r7, r3] - movs r3, 0x34 - ldrsh r0, [r7, r3] - subs r2, r0 - lsrs r0, r1, 31 - mov r8, r0 - lsrs r3, r2, 31 - mov r9, r3 - cmp r1, 0 - bge _080A6E80 - negs r1, r1 -_080A6E80: - lsls r0, r1, 24 - lsrs r6, r0, 16 - adds r0, r2, 0 - cmp r0, 0 - bge _080A6E8C - negs r0, r0 -_080A6E8C: - lsls r0, 24 - lsrs r5, r0, 16 - movs r0, 0x2E - ldrsh r4, [r7, r0] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r8 - cmp r2, 0 - beq _080A6EB8 - movs r0, 0x1 - orrs r6, r0 - b _080A6EBC -_080A6EB8: - ldr r0, =0x0000fffe - ands r6, r0 -_080A6EBC: - mov r3, r9 - cmp r3, 0 - beq _080A6ECC - movs r0, 0x1 - orrs r5, r0 - b _080A6ED0 - .pool -_080A6ECC: - ldr r0, =0x0000fffe - ands r5, r0 -_080A6ED0: - movs r0, 0 - strh r6, [r7, 0x30] - strh r5, [r7, 0x32] - strh r0, [r7, 0x36] - strh r0, [r7, 0x34] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end obj_translate_based_on_private_1_2_3_4 - - thumb_func_start sub_80A6EEC -sub_80A6EEC: @ 80A6EEC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, =sub_80A6F98 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6EEC - - thumb_func_start sub_80A6F14 -sub_80A6F14: @ 80A6F14 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, =sub_80A6FB4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A6F14 - - thumb_func_start sub_80A6F3C -sub_80A6F3C: @ 80A6F3C - push {r4-r6,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080A6F4C - movs r0, 0x1 - b _080A6F90 -_080A6F4C: - ldrh r1, [r2, 0x30] - ldrh r4, [r2, 0x32] - ldrh r6, [r2, 0x34] - ldrh r5, [r2, 0x36] - adds r0, r6, r1 - lsls r3, r0, 16 - lsrs r6, r3, 16 - adds r0, r5, r4 - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080A6F6E - lsrs r0, r3, 24 - negs r0, r0 - b _080A6F70 -_080A6F6E: - lsrs r0, r3, 24 -_080A6F70: - strh r0, [r2, 0x24] - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - beq _080A6F80 - lsrs r0, r5, 8 - negs r0, r0 - b _080A6F82 -_080A6F80: - lsrs r0, r5, 8 -_080A6F82: - strh r0, [r2, 0x26] - strh r6, [r2, 0x34] - strh r5, [r2, 0x36] - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0 -_080A6F90: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A6F3C - - thumb_func_start sub_80A6F98 -sub_80A6F98: @ 80A6F98 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6F3C - lsls r0, 24 - cmp r0, 0 - beq _080A6FAC - adds r0, r4, 0 - bl sub_80A62DC -_080A6FAC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6F98 - - thumb_func_start sub_80A6FB4 -sub_80A6FB4: @ 80A6FB4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8039E9C - adds r0, r4, 0 - bl sub_80A6F3C - lsls r0, 24 - cmp r0, 0 - beq _080A6FCE - adds r0, r4, 0 - bl sub_80A62DC -_080A6FCE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6FB4 - - thumb_func_start sub_80A6FD4 -sub_80A6FD4: @ 80A6FD4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - cmp r0, 0 - bge _080A6FE8 - negs r0, r0 -_080A6FE8: - lsls r0, 8 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6FD4 - - thumb_func_start sub_80A7000 -sub_80A7000: @ 80A7000 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_80A6FD4 - ldr r1, =sub_80A6F98 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7000 - - thumb_func_start sub_80A7028 -sub_80A7028: @ 80A7028 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - movs r0, 0x32 - ldrsh r1, [r7, r0] - movs r2, 0x30 - ldrsh r0, [r7, r2] - subs r1, r0 - movs r3, 0x36 - ldrsh r2, [r7, r3] - movs r3, 0x34 - ldrsh r0, [r7, r3] - subs r2, r0 - lsrs r0, r1, 31 - mov r8, r0 - lsrs r3, r2, 31 - mov r9, r3 - cmp r1, 0 - bge _080A7054 - negs r1, r1 -_080A7054: - lsls r0, r1, 20 - lsrs r6, r0, 16 - adds r0, r2, 0 - cmp r0, 0 - bge _080A7060 - negs r0, r0 -_080A7060: - lsls r0, 20 - lsrs r5, r0, 16 - movs r0, 0x2E - ldrsh r4, [r7, r0] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r8 - cmp r2, 0 - beq _080A708C - movs r0, 0x1 - orrs r6, r0 - b _080A7090 -_080A708C: - ldr r0, =0x0000fffe - ands r6, r0 -_080A7090: - mov r3, r9 - cmp r3, 0 - beq _080A70A0 - movs r0, 0x1 - orrs r5, r0 - b _080A70A4 - .pool -_080A70A0: - ldr r0, =0x0000fffe - ands r5, r0 -_080A70A4: - movs r0, 0 - strh r6, [r7, 0x30] - strh r5, [r7, 0x32] - strh r0, [r7, 0x36] - strh r0, [r7, 0x34] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7028 - - thumb_func_start sub_80A70C0 -sub_80A70C0: @ 80A70C0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_80A7028 - ldr r1, =sub_80A7144 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A70C0 - - thumb_func_start sub_80A70E8 -sub_80A70E8: @ 80A70E8 - push {r4-r6,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080A70F8 - movs r0, 0x1 - b _080A713C -_080A70F8: - ldrh r1, [r2, 0x30] - ldrh r4, [r2, 0x32] - ldrh r6, [r2, 0x34] - ldrh r5, [r2, 0x36] - adds r0, r6, r1 - lsls r3, r0, 16 - lsrs r6, r3, 16 - adds r0, r5, r4 - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080A711A - lsrs r0, r3, 20 - negs r0, r0 - b _080A711C -_080A711A: - lsrs r0, r3, 20 -_080A711C: - strh r0, [r2, 0x24] - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - beq _080A712C - lsrs r0, r5, 4 - negs r0, r0 - b _080A712E -_080A712C: - lsrs r0, r5, 4 -_080A712E: - strh r0, [r2, 0x26] - strh r6, [r2, 0x34] - strh r5, [r2, 0x36] - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0 -_080A713C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A70E8 - - thumb_func_start sub_80A7144 -sub_80A7144: @ 80A7144 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A70E8 - lsls r0, 24 - cmp r0, 0 - beq _080A7158 - adds r0, r4, 0 - bl sub_80A62DC -_080A7158: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7144 - - thumb_func_start sub_80A7160 -sub_80A7160: @ 80A7160 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - cmp r0, 0 - bge _080A7174 - negs r0, r0 -_080A7174: - lsls r0, 4 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80A7028 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7160 - - thumb_func_start sub_80A718C -sub_80A718C: @ 80A718C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_80A7160 - ldr r1, =sub_80A7144 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A718C - - thumb_func_start obj_id_set_rotscale -obj_id_set_rotscale: @ 80A71B4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r5, =0xffff0000 - lsls r2, 16 - lsrs r1, 16 - orrs r1, r2 - str r1, [sp] - ldr r0, [sp, 0x4] - ands r0, r5 - orrs r0, r3 - str r0, [sp, 0x4] - bl sub_80A7238 - lsls r0, 24 - cmp r0, 0 - beq _080A71F0 - mov r0, sp - ldrh r0, [r0] - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - ands r1, r5 - orrs r1, r0 - str r1, [sp] -_080A71F0: - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x3] - lsls r4, 26 - lsrs r4, 27 - add r5, sp, 0x8 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - ldr r0, =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 obj_id_set_rotscale - - thumb_func_start sub_80A7238 -sub_80A7238: @ 80A7238 - push {r4,lr} - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A7268 - ldr r4, =gSprites - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0xC9 - beq _080A7268 - movs r0, 0x1 - b _080A726A - .pool -_080A7268: - movs r0, 0 -_080A726A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A7238 - - thumb_func_start sub_80A7270 -sub_80A7270: @ 80A7270 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r1, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A72A6 - adds r0, r7, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A72B4 -_080A72A6: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080A72B4: - ldr r1, =gSprites - lsls r4, r6, 4 - adds r0, r4, r6 - lsls r0, 2 - adds r5, r0, r1 - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x1] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A7312 - ldrb r0, [r5, 0x1] - lsls r0, 30 - cmp r0, 0 - bne _080A7312 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_080A7312: - ldr r1, =gSprites - adds r0, r4, r6 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x1] - movs r1, 0x3 - orrs r3, r1 - strb r3, [r0, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - bl CalcCenterToCornerVec - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7270 - - thumb_func_start sub_80A7344 -sub_80A7344: @ 80A7344 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - movs r2, 0xD - negs r2, r2 - ands r1, r2 - strb r1, [r0, 0x1] - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x7F - ands r1, r2 - strb r1, [r3] - ldrb r3, [r0, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - bl CalcCenterToCornerVec - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7344 - - thumb_func_start sub_80A73A0 -sub_80A73A0: @ 80A73A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r0, 27 - ldr r1, =gOamMatrices - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x4] - movs r3, 0x4 - ldrsh r0, [r0, r3] - cmp r0, 0 - bge _080A73CC - negs r0, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080A73CC: - lsls r0, r1, 16 - asrs r0, 19 - strh r0, [r2, 0x26] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A73A0 - - thumb_func_start sub_80A73E0 -sub_80A73E0: @ 80A73E0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 16 - lsrs r7, r3, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7486 - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - cmp r6, 0 - beq _080A742E - 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 -_080A742E: - ldr r6, =0xffff0000 - lsls r0, r7, 16 - orrs r5, r0 - str r5, [sp] - ldr r0, [sp, 0x4] - ands r0, r6 - mov r1, r8 - orrs r0, r1 - str r0, [sp, 0x4] - bl sub_80A7238 - lsls r0, 24 - cmp r0, 0 - beq _080A745C - mov r0, sp - ldrh r0, [r0] - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - ands r1, r6 - orrs r1, r0 - str r1, [sp] -_080A745C: - ldrb r4, [r4, 0x3] - lsls r4, 26 - lsrs r4, 27 - add r5, sp, 0x8 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - ldr r0, =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] -_080A7486: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A73E0 - - thumb_func_start sub_80A749C -sub_80A749C: @ 80A749C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_80A73E0 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A749C - - thumb_func_start sub_80A74DC -sub_80A74DC: @ 80A74DC - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl ArcTan2 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80A74DC - - thumb_func_start sub_80A74F4 -sub_80A74F4: @ 80A74F4 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl sub_80A74DC - lsls r0, 16 - negs r0, r0 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80A74F4 - - thumb_func_start sub_80A750C -sub_80A750C: @ 80A750C - push {r4-r7,lr} - lsls r1, 24 - lsls r0, 20 - lsrs r0, 16 - cmp r1, 0 - bne _080A7588 - ldr r2, =gPlttBufferUnfaded - ldr r1, =gPlttBufferFaded - lsls r0, 1 - adds r4, r0, r1 - adds r5, r0, r2 - movs r6, 0xF -_080A7524: - ldr r0, [r5] - lsls r2, r0, 27 - lsrs r2, 27 - lsls r1, r0, 22 - lsrs r1, 27 - adds r2, r1 - lsls r0, 17 - lsrs r0, 27 - adds r0, r2 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - ands r0, r1 - ldrb r1, [r4] - movs r3, 0x20 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] - lsls r3, r0, 5 - ldrh r1, [r4] - ldr r7, =0xfffffc1f - adds r2, r7, 0 - ands r1, r2 - orrs r1, r3 - strh r1, [r4] - lsls r0, 2 - ldrb r1, [r4, 0x1] - movs r3, 0x7D - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x1] - adds r4, 0x2 - adds r5, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080A7524 - b _080A7598 - .pool -_080A7588: - lsls r1, r0, 1 - ldr r0, =gPlttBufferUnfaded - adds r0, r1, r0 - ldr r2, =gPlttBufferFaded - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet -_080A7598: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A750C - - thumb_func_start sub_80A75AC -sub_80A75AC: @ 80A75AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - lsls r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - lsls r5, 24 - lsrs r5, 24 - str r5, [sp] - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x4] - movs r4, 0 - cmp r0, 0 - beq _080A7602 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A75F6 - movs r4, 0xE - b _080A7602 -_080A75F6: - bl sub_80A6D94 - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x1 - lsls r4, r0 -_080A7602: - cmp r7, 0 - beq _080A7614 - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A7614: - mov r0, r8 - cmp r0, 0 - beq _080A7628 - ldr r0, =gAnimBankTarget - ldrb r0, [r0] - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A7628: - mov r0, r9 - cmp r0, 0 - beq _080A764E - ldr r6, =gAnimBankAttacker - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A764E - ldrb r0, [r6] - eors r0, r5 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A764E: - mov r0, r10 - cmp r0, 0 - beq _080A7674 - ldr r6, =gAnimBankTarget - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A7674 - ldrb r0, [r6] - eors r0, r5 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A7674: - ldr r0, [sp] - cmp r0, 0 - beq _080A769A - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A7694 - movs r0, 0x80 - lsls r0, 1 - b _080A7698 - .pool -_080A7694: - movs r0, 0x80 - lsls r0, 7 -_080A7698: - orrs r4, r0 -_080A769A: - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _080A76B0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A76B0 - movs r0, 0x80 - lsls r0, 2 - orrs r4, r0 -_080A76B0: - adds r0, r4, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A75AC - - thumb_func_start sub_80A76C4 -sub_80A76C4: @ 80A76C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r4, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A76F2 - cmp r5, 0 - beq _080A77A0 - movs r4, 0x80 - lsls r4, 11 - b _080A77A0 -_080A76F2: - cmp r5, 0 - beq _080A771A - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A771A - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r4, 0x1 - lsls r4, r0 -_080A771A: - cmp r6, 0 - beq _080A7746 - movs r0, 0x2 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A7746 - movs r0, 0x2 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A7746: - cmp r7, 0 - beq _080A7772 - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A7772 - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A7772: - mov r0, r8 - cmp r0, 0 - beq _080A77A0 - movs r0, 0x3 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A77A0 - movs r0, 0x3 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_080A77A0: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A76C4 - - thumb_func_start sub_80A77AC -sub_80A77AC: @ 80A77AC - lsls r0, 24 - lsrs r0, 24 - bx lr - thumb_func_end sub_80A77AC - - thumb_func_start sub_80A77B4 -sub_80A77B4: @ 80A77B4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80A77B4 - - thumb_func_start sub_80A77C8 -sub_80A77C8: @ 80A77C8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A7806 - ldr r2, =gBattleAnimArgs - movs r3, 0x6 - ldrsh r0, [r2, r3] - movs r1, 0 - cmp r0, 0 - bne _080A77E2 - movs r1, 0x1 -_080A77E2: - movs r3, 0x4 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080A77F8 - adds r0, r4, 0 - bl sub_80A69CC - b _080A77FE - .pool -_080A77F8: - adds r0, r4, 0 - bl sub_80A6980 -_080A77FE: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080A781A -_080A7806: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _080A781A - adds r0, r4, 0 - bl move_anim_8074EE0 -_080A781A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A77C8 - - thumb_func_start sub_80A7820 -sub_80A7820: @ 80A7820 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, =gBattleAnimArgs - movs r1, 0xA - ldrsh r0, [r6, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _080A7838 - movs r1, 0x1 -_080A7838: - ldrb r0, [r6, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _080A7842 - movs r7, 0x3 -_080A7842: - adds r0, r5, 0 - bl sub_80A69CC - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A785C - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_080A785C: - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r4, =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, =sub_80A6EEC - str r0, [r5, 0x1C] - ldr r1, =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7820 - - thumb_func_start sub_80A78AC -sub_80A78AC: @ 80A78AC - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80A69CC - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A78CC - ldr r1, =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A78CC: - ldr r4, =gBattleAnimArgs - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80A68D4 - ldr r0, =sub_80A791C - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A78AC - - thumb_func_start sub_80A791C -sub_80A791C: @ 80A791C - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6900 - lsls r0, 24 - cmp r0, 0 - beq _080A7930 - adds r0, r4, 0 - bl DestroyAnimSprite -_080A7930: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A791C - - thumb_func_start sub_80A7938 -sub_80A7938: @ 80A7938 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, =gBattleAnimArgs - movs r2, 0xC - ldrsh r1, [r0, r2] - cmp r1, 0 - bne _080A7950 - movs r4, 0x1 - movs r7, 0x3 - b _080A7954 - .pool -_080A7950: - movs r4, 0 - movs r7, 0x1 -_080A7954: - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A796C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A69CC - ldr r0, =gAnimBankAttacker - b _080A7976 - .pool -_080A796C: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A6980 - ldr r0, =gAnimBankTarget -_080A7976: - ldrb r6, [r0] - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A798E - ldr r1, =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080A798E: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A6980 - ldr r4, =gBattleAnimArgs - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - adds r0, r6, 0 - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r5, 0x32] - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r5, 0x36] - ldr r0, =sub_80A6EEC - str r0, [r5, 0x1C] - ldr r1, =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData6 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7938 - - thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode -duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _080A7A52 - movs r6, 0 - ldr r2, =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r1, r0, 2 -_080A7A04: - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r4, r0, r2 - adds r5, r4, 0 - adds r5, 0x3E - ldrb r0, [r5] - lsls r0, 31 - cmp r0, 0 - bne _080A7A48 - adds r0, r4, 0 - adds r1, r2 - movs r2, 0x44 - bl memcpy - ldrb r1, [r4, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x1] - ldrb r0, [r5] - adds r2, 0x8 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r5] - lsls r0, r6, 16 - asrs r0, 16 - b _080A7A56 - .pool -_080A7A48: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3F - bls _080A7A04 -_080A7A52: - movs r0, 0x1 - negs r0, r0 -_080A7A56: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode - - thumb_func_start obj_delete_but_dont_free_vram -obj_delete_but_dont_free_vram: @ 80A7A5C - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - bl DestroySprite - pop {r0} - bx r0 - thumb_func_end obj_delete_but_dont_free_vram - - thumb_func_start sub_80A7A74 -sub_80A7A74: @ 80A7A74 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - movs r3, 0 - ldr r2, =gBattleAnimArgs - movs r0, 0x4 - ldrsh r1, [r2, r0] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r1, r0 - ble _080A7A8E - movs r3, 0x1 -_080A7A8E: - cmp r1, r0 - bge _080A7A94 - ldr r3, =0x0000ffff -_080A7A94: - movs r0, 0x6 - ldrsh r1, [r2, r0] - movs r4, 0x2 - ldrsh r0, [r2, r4] - cmp r1, r0 - ble _080A7AA2 - movs r6, 0x1 -_080A7AA2: - cmp r1, r0 - bge _080A7AA8 - ldr r6, =0x0000ffff -_080A7AA8: - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r1, 0 - strh r1, [r4, 0x8] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0xA] - strh r1, [r4, 0xC] - ldrh r0, [r2] - strh r0, [r4, 0xE] - ldrh r0, [r2, 0x2] - strh r0, [r4, 0x10] - strh r3, [r4, 0x12] - strh r6, [r4, 0x14] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x16] - ldrh r0, [r2, 0x6] - strh r0, [r4, 0x18] - ldrh r1, [r2, 0x2] - lsls r1, 8 - ldrh r0, [r2] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldr r0, =sub_80A7AFC - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7A74 - - thumb_func_start sub_80A7AFC -sub_80A7AFC: @ 80A7AFC - 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 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080A7B90 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A7B4C - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r1, [r4, r3] - movs r3, 0x16 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _080A7B60 - ldrh r0, [r4, 0x12] - adds r0, r2, r0 - strh r0, [r4, 0xE] - b _080A7B60 - .pool -_080A7B4C: - ldrh r2, [r4, 0x10] - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r3, 0x18 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _080A7B60 - ldrh r0, [r4, 0x14] - adds r0, r2, r0 - strh r0, [r4, 0x10] -_080A7B60: - ldrh r1, [r4, 0x10] - lsls r1, 8 - ldrh r0, [r4, 0xE] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - movs r0, 0xE - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080A7B90 - movs r3, 0x10 - ldrsh r1, [r4, r3] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080A7B90 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A7B90: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A7AFC - - thumb_func_start sub_80A7B98 -sub_80A7B98: @ 80A7B98 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gBattleAnimArgs - ldrb r0, [r0] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _080A7BBC - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080A7BE2 - .pool -_080A7BBC: - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, =gSprites - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - lsls r1, 4 - ldr r3, =0x00000101 - adds r2, r3, 0 - adds r1, r2 - strh r1, [r0, 0x8] - bl sub_80A7BF4 -_080A7BE2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7B98 - - thumb_func_start sub_80A7BF4 -sub_80A7BF4: @ 80A7BF4 - ldr r3, =gBattleAnimArgs - ldrh r1, [r3, 0x2] - movs r2, 0 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0xE] - strh r2, [r0, 0x10] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0x12] - strh r2, [r0, 0x14] - ldrh r1, [r3, 0x8] - strh r1, [r0, 0x16] - ldr r1, =sub_80A7C1C - str r1, [r0] - bx lr - .pool - thumb_func_end sub_80A7BF4 - - thumb_func_start sub_80A7C1C -sub_80A7C1C: @ 80A7C1C - 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 - adds r4, r0, r1 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080A7CAC - movs r0, 0 - strh r0, [r4, 0x10] - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A7C78 - ldrh r2, [r4, 0xC] - adds r2, 0x1 - strh r2, [r4, 0xC] - ldrh r0, [r4, 0x8] - lsls r2, 24 - lsrs r2, 24 - ldrh r3, [r4, 0xA] - movs r1, 0xF - bl BlendPalette - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080A7CAC - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080A7CAC - .pool -_080A7C78: - ldrh r2, [r4, 0xC] - subs r2, 0x1 - strh r2, [r4, 0xC] - ldrh r0, [r4, 0x8] - lsls r2, 24 - lsrs r2, 24 - ldrh r3, [r4, 0xA] - movs r1, 0xF - bl BlendPalette - movs r0, 0xC - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080A7CAC - ldrh r0, [r4, 0x16] - subs r0, 0x1 - strh r0, [r4, 0x16] - lsls r0, 16 - cmp r0, 0 - beq _080A7CA6 - strh r1, [r4, 0x10] - strh r1, [r4, 0x14] - b _080A7CAC -_080A7CA6: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A7CAC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A7C1C - - thumb_func_start sub_80A7CB4 -sub_80A7CB4: @ 80A7CB4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gBattleAnimArgs - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080A7CD8 - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080A7CEE - .pool -_080A7CD8: - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - lsls r1, r2, 4 - ldr r2, =0x00000101 - adds r1, r2 - strh r1, [r0, 0x8] - bl sub_80A7BF4 -_080A7CEE: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7CB4 - - thumb_func_start sub_80A7CFC -sub_80A7CFC: @ 80A7CFC - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - strh r1, [r3, 0x16] - strh r1, [r3, 0x18] - strh r1, [r3, 0x1A] - strh r4, [r3, 0x26] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r3, 0x1C] - strh r0, [r3, 0x1E] - strh r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x22 - adds r3, 0x24 - adds r1, r3, 0 - bl sub_80A8048 - adds r0, r4, 0 - movs r1, 0 - bl sub_80A7270 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7CFC - - thumb_func_start sub_80A7D34 -sub_80A7D34: @ 80A7D34 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_02038444 - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - bl sub_80A8050 - movs r3, 0x16 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r1, r0, r1 - str r1, [r5] - movs r6, 0 - ldrsh r2, [r1, r6] - ldr r0, =0x00007ffe - cmp r2, r0 - beq _080A7DDC - cmp r2, r0 - bgt _080A7E3C - subs r0, 0x1 - cmp r2, r0 - beq _080A7DE2 - ldrb r0, [r1, 0x5] - cmp r0, 0 - bne _080A7D82 - ldrh r0, [r1] - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x1E] - ldrb r0, [r1, 0x4] - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - adds r0, r1, 0 - adds r0, 0x8 - str r0, [r5] -_080A7D82: - ldr r1, [r5] - ldrh r0, [r1] - ldrh r2, [r4, 0x1C] - adds r0, r2 - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x2] - ldrh r3, [r4, 0x1E] - adds r0, r3 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x20] - ldrb r1, [r1, 0x4] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1C - ldrsh r1, [r4, r6] - movs r3, 0x1E - ldrsh r2, [r4, r3] - ldrh r3, [r4, 0x20] - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_80A7E6C - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - ldr r1, [r5] - ldrb r1, [r1, 0x5] - cmp r0, r1 - blt _080A7E62 - movs r0, 0 - strh r0, [r4, 0x18] - b _080A7E34 - .pool -_080A7DDC: - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x16] - b _080A7E62 -_080A7DE2: - ldrh r2, [r1, 0x2] - movs r6, 0x2 - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _080A7E34 - ldrh r1, [r4, 0x1A] - movs r3, 0x1A - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080A7E02 - subs r0, r1, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - cmp r0, 0 - bne _080A7E04 - b _080A7E34 -_080A7E02: - strh r2, [r4, 0x1A] -_080A7E04: - movs r6, 0x16 - ldrsh r0, [r4, r6] - cmp r0, 0 - beq _080A7E62 - ldr r3, =gUnknown_02038444 - ldr r5, =0x00007ffd -_080A7E10: - ldrh r2, [r4, 0x16] - subs r1, r2, 0x1 - strh r1, [r4, 0x16] - ldr r0, [r3] - subs r0, 0x8 - str r0, [r3] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r0, r5 - beq _080A7E60 - lsls r0, r1, 16 - cmp r0, 0 - bne _080A7E10 - b _080A7E62 - .pool -_080A7E34: - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - b _080A7E62 -_080A7E3C: - ldr r2, =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_80A7344 - movs r0, 0 - b _080A7E64 - .pool -_080A7E60: - strh r2, [r4, 0x16] -_080A7E62: - movs r0, 0x1 -_080A7E64: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80A7D34 - - thumb_func_start sub_80A7E6C -sub_80A7E6C: @ 80A7E6C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80A7F18 - lsls r0, 16 - lsrs r0, 15 - movs r1, 0x40 - subs r5, r1, r0 - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrb r1, [r4, 0x3] - lsls r1, 26 - lsrs r1, 27 - lsls r0, r5, 8 - ldr r2, =gOamMatrices - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - cmp r0, 0x80 - ble _080A7EA8 - movs r0, 0x80 -_080A7EA8: - subs r0, r5, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7E6C - - thumb_func_start sub_80A7EC0 -sub_80A7EC0: @ 80A7EC0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r0, 24 - bl sub_80A7F18 - lsls r0, 16 - lsrs r0, 15 - movs r1, 0x40 - subs r5, r1, r0 - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrb r1, [r4, 0x3] - lsls r1, 26 - lsrs r1, 27 - lsls r0, r5, 8 - ldr r2, =gOamMatrices - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - cmp r0, 0x80 - ble _080A7F00 - movs r0, 0x80 -_080A7F00: - subs r0, r5, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A7EC0 - - thumb_func_start sub_80A7F18 -sub_80A7F18: @ 80A7F18 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, =gBankSpriteIds - ldr r7, =0x00000181 - ldr r0, =gBattleMonForms - adds r6, r5, r0 -_080A7F38: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, r2 - beq _080A7F42 - b _080A8034 -_080A7F42: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A7F78 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r0, [r0, 0x18] - ldrh r2, [r0] - ldr r1, =gUnknown_083021D8 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - b _080A8042 - .pool -_080A7F78: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A7FD8 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A7FC0 - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r2, r0, 16 - b _080A7FC2 - .pool -_080A7FC0: - ldrh r2, [r1, 0x2] -_080A7FC2: - cmp r2, r7 - bne _080A7FD0 - ldr r0, =gUnknown_08525F8C - b _080A8018 - .pool -_080A7FD0: - ldr r0, =gUnknown_083021D8 - b _080A8026 - .pool -_080A7FD8: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A8010 - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r2, r0, 16 - b _080A8012 - .pool -_080A8010: - ldrh r2, [r1, 0x2] -_080A8012: - cmp r2, r7 - bne _080A8024 - ldr r0, =gUnknown_08525F88 -_080A8018: - ldrb r1, [r6] - adds r1, r0 - ldrb r0, [r1] - b _080A8042 - .pool -_080A8024: - ldr r0, =gMonFrontPicCoords -_080A8026: - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _080A8042 - .pool -_080A8034: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bhi _080A8040 - b _080A7F38 -_080A8040: - movs r0, 0x40 -_080A8042: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A7F18 - - thumb_func_start sub_80A8048 -sub_80A8048: @ 80A8048 - strh r2, [r0] - asrs r2, 16 - strh r2, [r1] - bx lr - thumb_func_end sub_80A8048 - - thumb_func_start sub_80A8050 -sub_80A8050: @ 80A8050 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - orrs r0, r1 - bx lr - thumb_func_end sub_80A8050 - - thumb_func_start sub_80A805C -sub_80A805C: @ 80A805C - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r5, r3, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - ldr r6, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r3, r8 - strh r6, [r3, 0x18] - strh r1, [r3, 0x26] - strh r2, [r3, 0x1A] - strh r5, [r3, 0x1C] - strh r0, [r3, 0x22] - strh r4, [r3, 0x24] - lsls r0, 16 - asrs r0, 16 - lsls r2, 16 - asrs r2, 16 - subs r0, r2 - adds r1, r6, 0 - bl __divsi3 - mov r1, r8 - strh r0, [r1, 0x1E] - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - subs r4, r5 - adds r0, r4, 0 - adds r1, r6, 0 - bl __divsi3 - mov r3, r8 - strh r0, [r3, 0x20] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A805C - - thumb_func_start sub_80A80C8 -sub_80A80C8: @ 80A80C8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A80DA - movs r0, 0 - b _080A8136 -_080A80DA: - subs r0, r1, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - cmp r0, 0 - beq _080A80F4 - ldrh r0, [r4, 0x1E] - ldrh r3, [r4, 0x1A] - adds r0, r3 - strh r0, [r4, 0x1A] - ldrh r0, [r4, 0x20] - ldrh r1, [r4, 0x1C] - adds r0, r1 - b _080A80FA -_080A80F4: - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x1A] - ldrh r0, [r4, 0x24] -_080A80FA: - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1A - ldrsh r1, [r4, r2] - movs r3, 0x1C - ldrsh r2, [r4, r3] - movs r3, 0 - bl obj_id_set_rotscale - movs r0, 0x18 - ldrsh r3, [r4, r0] - cmp r3, 0 - beq _080A8124 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_80A7E6C - b _080A8134 -_080A8124: - ldr r2, =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] -_080A8134: - ldrb r0, [r4, 0x18] -_080A8136: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A80C8 - - thumb_func_start sub_80A8140 -sub_80A8140: @ 80A8140 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gAnimFriendship - ldrb r0, [r0] - movs r1, 0 - cmp r0, 0x1E - bls _080A815E - movs r1, 0x1 - cmp r0, 0x64 - bls _080A815E - movs r1, 0x3 - cmp r0, 0xC8 - bhi _080A815E - movs r1, 0x2 -_080A815E: - ldr r0, =gBattleAnimArgs - strh r1, [r0, 0xE] - adds r0, r2, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8140 - - thumb_func_start sub_80A8174 -sub_80A8174: @ 80A8174 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldr r6, =gAnimBankTarget - ldrb r0, [r6] - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A81B4 - ldr r2, =gSprites - ldr r1, =gBankSpriteIds - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_080A81B4: - ldr r0, =gAnimBankAttacker - mov r8, r0 - ldrb r0, [r0] - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A81EC - ldr r2, =gSprites - ldr r1, =gBankSpriteIds - mov r3, r8 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_080A81EC: - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A8224 - ldr r2, =gSprites - ldr r1, =gBankSpriteIds - ldrb r0, [r6] - eors r0, r5 - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_080A8224: - mov r1, r8 - ldrb r0, [r1] - eors r0, r5 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A825C - ldr r2, =gSprites - ldr r1, =gBankSpriteIds - mov r3, r8 - ldrb r0, [r3] - eors r0, r5 - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - ands r7, r0 - lsls r3, r7, 2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_080A825C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8174 - - thumb_func_start sub_80A8278 -sub_80A8278: @ 80A8278 - push {r4-r6,lr} - movs r5, 0 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - bge _080A82D2 - ldr r6, =gSprites -_080A8286: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080A82C8 - adds r0, r4, 0 - bl sub_80A82E4 - ldr r3, =gBankSpriteIds - adds r3, r5, r3 - ldrb r2, [r3] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r6 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r2, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x8 - orrs r2, r1 - strb r2, [r0, 0x5] -_080A82C8: - adds r5, 0x1 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - blt _080A8286 -_080A82D2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8278 - - thumb_func_start sub_80A82E4 -sub_80A82E4: @ 80A82E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A8300 - cmp r4, 0x2 - bne _080A82FC - movs r0, 0x1E - b _080A8320 -_080A82FC: - movs r0, 0x28 - b _080A8320 -_080A8300: - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1E - cmp r0, 0 - beq _080A831E - movs r1, 0x14 - cmp r0, 0x2 - beq _080A831E - movs r1, 0x32 - cmp r0, 0x1 - bne _080A831E - movs r1, 0x28 -_080A831E: - adds r0, r1, 0 -_080A8320: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A82E4 - - thumb_func_start sub_80A8328 -sub_80A8328: @ 80A8328 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - bl GetBankIdentity - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A8344 - movs r0, 0x2 - b _080A835C -_080A8344: - cmp r4, 0 - beq _080A834C - cmp r4, 0x3 - bne _080A8350 -_080A834C: - movs r0, 0x2 - b _080A8352 -_080A8350: - movs r0, 0x1 -_080A8352: - movs r1, 0x4 - bl sub_8118140 - lsls r0, 24 - lsrs r0, 24 -_080A835C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A8328 - - thumb_func_start sub_80A8364 -sub_80A8364: @ 80A8364 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A838A - adds r0, r4, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080A8386 - cmp r0, 0x3 - bne _080A838A -_080A8386: - movs r0, 0x2 - b _080A838C -_080A838A: - movs r0, 0x1 -_080A838C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A8364 - - thumb_func_start sub_80A8394 -sub_80A8394: @ 80A8394 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r4, [sp, 0x30] - ldr r5, [sp, 0x34] - ldr r6, [sp, 0x38] - mov r8, r6 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x4] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x8] - lsls r0, r7, 3 - ldr r1, =gUnknown_08525FC0 - adds r0, r1 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - ldr r1, =gUnknown_08525F90 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x2] - bl AllocSpritePalette - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gMonSpritesGfxPtr - ldr r0, [r4] - cmp r0, 0 - beq _080A8412 - movs r1, 0xBE - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _080A8412 - movs r0, 0x80 - lsls r0, 6 - bl AllocZeroed - ldr r1, [r4] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - str r0, [r1] -_080A8412: - mov r3, r9 - cmp r3, 0 - bne _080A84B0 - adds r0, r6, 0 - ldr r1, [sp, 0x3C] - mov r2, r8 - bl species_and_otid_get_pal - lsls r1, r5, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r3, [sp, 0x44] - cmp r3, 0x1 - beq _080A845E - ldr r0, [sp, 0x40] - lsls r1, r0, 24 - lsrs r1, 24 - movs r0, 0x5 - bl sub_80688F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A845E - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - ldr r2, [sp, 0x40] - lsls r0, r2, 2 - adds r0, r1 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _080A8488 -_080A845E: - lsls r0, r6, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - movs r3, 0xBE - lsls r3, 1 - adds r1, r3 - ldr r1, [r1] - movs r2, 0x1 - b _080A850A - .pool -_080A8488: - lsls r0, r6, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - ldr r1, [r1] - movs r2, 0x1 - str r2, [sp] - adds r2, r6, 0 - mov r3, r8 - bl LoadSpecialPokePic_2 - b _080A8540 - .pool -_080A84B0: - adds r0, r6, 0 - ldr r1, [sp, 0x3C] - mov r2, r8 - bl species_and_otid_get_pal - lsls r1, r5, 20 - movs r3, 0x80 - lsls r3, 17 - adds r1, r3 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, [sp, 0x44] - cmp r0, 0x1 - beq _080A84F6 - ldr r2, [sp, 0x40] - lsls r1, r2, 24 - lsrs r1, 24 - movs r0, 0x5 - bl sub_80688F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A84F6 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - ldr r3, [sp, 0x40] - lsls r0, r3, 2 - adds r0, r1 - ldrh r2, [r0, 0x2] - cmp r2, 0 - beq _080A8524 -_080A84F6: - lsls r0, r6, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 1 - adds r1, r2 - ldr r1, [r1] - movs r2, 0 -_080A850A: - str r2, [sp] - adds r2, r6, 0 - mov r3, r8 - bl LoadSpecialPokePic_DontHandleDeoxys - b _080A8540 - .pool -_080A8524: - lsls r0, r6, 3 - ldr r1, =gMonBackPicTable - adds r0, r1 - ldr r1, =gMonSpritesGfxPtr - ldr r1, [r1] - movs r3, 0xBE - lsls r3, 1 - adds r1, r3 - ldr r1, [r1] - str r2, [sp] - adds r2, r6, 0 - mov r3, r8 - bl LoadSpecialPokePic_2 -_080A8540: - ldr r5, =gMonSpritesGfxPtr - ldr r0, [r5] - movs r4, 0xBE - lsls r4, 1 - adds r0, r4 - ldr r0, [r0] - ldr r2, [sp, 0xC] - lsls r1, r2, 5 - ldr r3, =0x06010000 - adds r1, r3 - movs r2, 0x80 - lsls r2, 4 - movs r3, 0x1 - bl RequestDma3Copy - ldr r0, [r5] - adds r0, r4 - ldr r0, [r0] - bl Free - ldr r0, [r5] - adds r0, r4 - movs r1, 0 - str r1, [r0] - mov r0, r9 - cmp r0, 0 - bne _080A85A0 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - ldr r1, =gUnknown_08525F90 - adds r0, r1 - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - ldr r3, =gMonFrontPicCoords - b _080A85B2 - .pool -_080A85A0: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - ldr r1, =gUnknown_08525F90 - adds r0, r1 - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - ldr r3, =gUnknown_083021D8 -_080A85B2: - lsls r2, r6, 2 - adds r2, r3 - ldrb r2, [r2, 0x1] - ldr r3, [sp, 0x4] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - ldr r3, [sp, 0x8] - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A85EE - ldr r3, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x10 - adds r1, r0, r1 - ldr r2, =gUnknown_082FF6C0 - str r2, [r1] - adds r0, r3 - movs r1, 0 - bl StartSpriteAffineAnim -_080A85EE: - adds r0, r4, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A8394 - - thumb_func_start sub_80A8610 -sub_80A8610: @ 80A8610 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - thumb_func_end sub_80A8610 - - thumb_func_start sub_80A861C -sub_80A861C: @ 80A861C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080A86C4 - ldr r0, =gContestResources - ldr r0, [r0] - ldr r2, [r0, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A8654 - ldrh r7, [r2, 0x2] - ldr r2, [r2, 0x10] - b _080A8658 - .pool -_080A8654: - ldrh r7, [r2] - ldr r2, [r2, 0x8] -_080A8658: - cmp r7, 0xC9 - bne _080A86A4 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080A8690 - movs r0, 0xC9 - b _080A869A -_080A8690: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_080A869A: - lsls r1, r0, 2 - ldr r0, =gUnknown_083021D8 - b _080A8864 - .pool -_080A86A4: - ldr r0, =0x00000181 - cmp r7, r0 - bne _080A86AC - b _080A8834 -_080A86AC: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - bhi _080A877C - lsls r1, r7, 2 - ldr r0, =gUnknown_083021D8 - b _080A8864 - .pool -_080A86C4: - mov r0, r8 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A8790 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - mov r1, r8 - lsls r2, r1, 2 - adds r1, r2, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A871C - ldr r0, =gBattlePartyID - mov r1, r8 - lsls r4, r1, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0 - bl GetMonData - adds r2, r0, 0 - b _080A8724 - .pool -_080A871C: - ldrh r7, [r1, 0x2] - ldr r0, =gTransformedPersonalities - adds r0, r2, r0 - ldr r2, [r0] -_080A8724: - cmp r7, 0xC9 - bne _080A8774 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080A8760 - movs r0, 0xC9 - b _080A876A - .pool -_080A8760: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_080A876A: - lsls r1, r0, 2 - ldr r0, =gUnknown_083021D8 - b _080A8864 - .pool -_080A8774: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - bls _080A8784 -_080A877C: - ldr r4, =gUnknown_083021D8 - b _080A8866 - .pool -_080A8784: - lsls r1, r7, 2 - ldr r0, =gUnknown_083021D8 - b _080A8864 - .pool -_080A8790: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - mov r1, r8 - lsls r2, r1, 2 - adds r1, r2, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A87DC - ldr r0, =gBattlePartyID - mov r1, r8 - lsls r4, r1, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0 - bl GetMonData - adds r2, r0, 0 - b _080A87E4 - .pool -_080A87DC: - ldrh r7, [r1, 0x2] - ldr r0, =gTransformedPersonalities - adds r0, r2, r0 - ldr r2, [r0] -_080A87E4: - cmp r7, 0xC9 - bne _080A882E - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080A8820 - movs r0, 0xC9 - b _080A882A - .pool -_080A8820: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_080A882A: - lsls r1, r0, 2 - b _080A8862 -_080A882E: - ldr r0, =0x00000181 - cmp r7, r0 - bne _080A8850 -_080A8834: - ldr r0, =gBattleMonForms - add r0, r8 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, =gCastformFrontSpriteCoords - adds r4, r0, r1 - b _080A8866 - .pool -_080A8850: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - bls _080A8860 - ldr r4, =gMonFrontPicCoords - b _080A8866 - .pool -_080A8860: - lsls r1, r7, 2 -_080A8862: - ldr r0, =gMonFrontPicCoords -_080A8864: - adds r4, r1, r0 -_080A8866: - mov r0, r9 - cmp r0, 0x6 - bhi _080A8916 - lsls r0, 2 - ldr r1, =_080A8880 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080A8880: - .4byte _080A889C - .4byte _080A88A6 - .4byte _080A88D2 - .4byte _080A88EA - .4byte _080A88AE - .4byte _080A88C0 - .4byte _080A8902 -_080A889C: - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - lsls r0, 3 - b _080A8918 -_080A88A6: - ldrb r0, [r4] - lsrs r0, 4 - lsls r0, 3 - b _080A8918 -_080A88AE: - mov r0, r8 - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - lsrs r1, 4 - b _080A88E4 -_080A88C0: - mov r0, r8 - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - lsrs r1, 4 - b _080A88FC -_080A88D2: - mov r0, r8 - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4] - movs r1, 0xF - ands r1, r2 -_080A88E4: - lsls r1, 2 - subs r0, r1 - b _080A8918 -_080A88EA: - mov r0, r8 - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4] - movs r1, 0xF - ands r1, r2 -_080A88FC: - lsls r1, 2 - adds r0, r1 - b _080A8918 -_080A8902: - mov r0, r8 - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - ldrb r1, [r4, 0x1] - subs r0, r1 - b _080A8918 -_080A8916: - movs r0, 0 -_080A8918: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A861C - - thumb_func_start sub_80A8924 -sub_80A8924: @ 80A8924 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r2 - mov r10, r3 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _080A8942 - movs r5, 0 - movs r6, 0x1 - b _080A8946 -_080A8942: - movs r5, 0x2 - movs r6, 0x3 -_080A8946: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r7, r0, 24 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080A8998 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080A8998 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r3, r0, 24 - mov r0, r8 - lsls r1, r0, 16 - lsls r2, r7, 16 - b _080A89A4 -_080A8998: - mov r0, r8 - lsls r1, r0, 16 - lsrs r5, r1, 16 - lsls r0, r7, 16 - lsrs r3, r0, 16 - adds r2, r0, 0 -_080A89A4: - asrs r0, r1, 16 - adds r0, r5 - asrs r0, 1 - mov r1, r9 - strh r0, [r1] - asrs r0, r2, 16 - adds r0, r3 - asrs r0, 1 - mov r1, r10 - strh r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A8924 - - thumb_func_start sub_80A89C8 -sub_80A89C8: @ 80A89C8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r6, r1, 24 - lsrs r6, 24 - ldr r0, =SpriteCallbackDummy - mov r10, r0 - bl CreateInvisibleSpriteWithCallback - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, =gSprites - mov r9, r0 - mov r0, r8 - lsls r3, r0, 4 - add r3, r8 - lsls r3, 2 - mov r0, r9 - adds r5, r3, r0 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - add r4, r9 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x44 - str r3, [sp] - bl memcpy - adds r2, r5, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r5, 0x5] - ldrb r0, [r5, 0x1] - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldrh r2, [r5, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r0, 0x1C - add r9, r0 - ldr r3, [sp] - add r3, r9 - mov r0, r10 - str r0, [r3] - mov r0, r8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A89C8 - - thumb_func_start sub_80A8A6C -sub_80A8A6C: @ 80A8A6C - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6838 - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A8AAC - ldr r2, =gBattleAnimArgs - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, 0 - b _080A8AB6 - .pool -_080A8AAC: - ldr r1, =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] -_080A8AB6: - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldr r1, =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, =sub_80A66DC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8A6C - - thumb_func_start sub_80A8AEC -sub_80A8AEC: @ 80A8AEC - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A8B1C - ldr r2, =gBattleAnimArgs - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - movs r1, 0x6 - ldrsh r0, [r2, r1] - negs r0, r0 - strh r0, [r2, 0x6] - adds r1, r2, 0 - b _080A8B26 - .pool -_080A8B1C: - ldr r1, =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] -_080A8B26: - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - ldr r0, =sub_80A66DC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8AEC - - thumb_func_start sub_80A8B64 -sub_80A8B64: @ 80A8B64 - push {r4,lr} - adds r4, r0, 0 - bl sub_80A6838 - ldr r0, =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A8B90 - ldr r0, =gBattleAnimArgs - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080A8B9C - .pool -_080A8B90: - ldr r1, =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080A8B9C: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, =sub_80A67D8 - str r0, [r4, 0x1C] - ldr r1, =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8B64 - - thumb_func_start sub_80A8BC4 -sub_80A8BC4: @ 80A8BC4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks - adds r5, r1, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0x8] - ldr r7, =gAnimBankAttacker - ldrb r0, [r7] - bl GetBankSide - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _080A8BF8 - movs r0, 0x8 - negs r0, r0 - adds r1, r0, 0 -_080A8BF8: - strh r1, [r5, 0xA] - strh r6, [r5, 0xC] - strh r6, [r5, 0xE] - ldr r4, =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x24] - ldrh r2, [r5, 0x8] - subs r1, r2 - strh r1, [r0, 0x24] - ldr r0, =0x00002771 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - strh r6, [r5, 0x12] - movs r1, 0x10 - ldrsh r0, [r5, r1] - adds r0, 0x10 - lsls r0, 20 - lsrs r6, r0, 16 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r4, r0, 4 - ldrb r0, [r7] - bl sub_80A82E4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - cmp r0, 0x14 - beq _080A8C54 - cmp r0, 0x28 - bne _080A8C68 -_080A8C54: - movs r0, 0x2 - b _080A8C6A - .pool -_080A8C68: - movs r0, 0x3 -_080A8C6A: - strh r0, [r5, 0x14] - lsls r0, r4, 1 - ldr r1, =gPlttBufferUnfaded - adds r0, r1 - lsls r1, r6, 1 - ldr r2, =gPlttBufferFaded - adds r1, r2 - ldr r2, =0x04000008 - bl CpuSet - ldr r0, =gBattleAnimArgs - ldrb r2, [r0, 0x2] - ldrh r3, [r0] - adds r0, r6, 0 - movs r1, 0x10 - bl BlendPalette - ldr r0, =sub_80A8CAC - str r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8BC4 - - thumb_func_start sub_80A8CAC -sub_80A8CAC: @ 80A8CAC - 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, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080A8D10 - cmp r0, 0x1 - bgt _080A8CD4 - cmp r0, 0 - beq _080A8CDA - b _080A8D6C - .pool -_080A8CD4: - cmp r0, 0x2 - beq _080A8D58 - b _080A8D6C -_080A8CDA: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A8D78 - ldr r2, =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0xA] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - ldrh r1, [r4, 0xE] - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080A8D6C - strh r1, [r4, 0xE] - b _080A8D4A - .pool -_080A8D10: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80A8D78 - ldr r3, =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - ldrh r2, [r4, 0xA] - subs r1, r2 - strh r1, [r0, 0x24] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _080A8D6C - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - strh r2, [r1, 0x24] -_080A8D4A: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _080A8D6C - .pool -_080A8D58: - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080A8D6C - ldr r0, =0x00002771 - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080A8D6C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8CAC - - thumb_func_start sub_80A8D78 -sub_80A8D78: @ 80A8D78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r7, r0, 16 - asrs r0, 16 - cmp r0, 0 - blt _080A8DE8 - ldr r5, =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r3, r4, r5 - movs r0, 0x3 - ldrb r1, [r6, 0x14] - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldrb r1, [r6, 0x10] - lsls r1, 4 - movs r2, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - movs r0, 0x8 - strh r0, [r3, 0x2E] - mov r0, r8 - strh r0, [r3, 0x30] - strh r7, [r3, 0x32] - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x24] - strh r0, [r3, 0x24] - adds r5, 0x1C - adds r4, r5 - ldr r0, =sub_80A8DFC - str r0, [r4] - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] -_080A8DE8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8D78 - - thumb_func_start sub_80A8DFC -sub_80A8DFC: @ 80A8DFC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - subs r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080A8E26 - ldr r2, =gTasks - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x12] - subs r1, 0x1 - strh r1, [r0, 0x12] - adds r0, r3, 0 - bl obj_delete_but_dont_free_vram -_080A8E26: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8DFC - - thumb_func_start sub_80A8E30 -sub_80A8E30: @ 80A8E30 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A8E68 - movs r0, 0x5 - b _080A8E6A - .pool -_080A8E68: - ldr r0, =0x0000fff6 -_080A8E6A: - strh r0, [r5, 0x2E] - ldr r0, =0x0000ffd8 - strh r0, [r5, 0x30] - ldr r0, =sub_80A8E88 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8E30 - - thumb_func_start sub_80A8E88 -sub_80A8E88: @ 80A8E88 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r5, [r4, 0x30] - ldrh r2, [r4, 0x34] - adds r0, r5, r2 - strh r0, [r4, 0x34] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x34 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, r5, 16 - asrs r0, 16 - movs r1, 0x14 - negs r1, r1 - cmp r0, r1 - bge _080A8EC4 - adds r0, r5, 0x1 - strh r0, [r4, 0x30] -_080A8EC4: - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080A8EDC - adds r0, r4, 0 - bl DestroyAnimSprite -_080A8EDC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A8E88 - - thumb_func_start sub_80A8EE4 -sub_80A8EE4: @ 80A8EE4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gBattleAnimArgs - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, =gAnimBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A8F24 - ldrh r0, [r5, 0x8] - adds r0, 0x1E - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0xA] - subs r0, 0x14 - b _080A8F32 - .pool -_080A8F24: - ldrh r0, [r5, 0x8] - subs r0, 0x1E - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0xA] - subs r0, 0x50 -_080A8F32: - strh r0, [r4, 0x22] - ldr r0, =sub_80A6EEC - str r0, [r4, 0x1C] - ldr r1, =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData6 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A8EE4 - - .align 2, 0 @ Don't pad with nop. -- cgit v1.2.3