diff options
Diffstat (limited to 'asm/battle_controller_pokedude.s')
-rw-r--r-- | asm/battle_controller_pokedude.s | 7632 |
1 files changed, 0 insertions, 7632 deletions
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s deleted file mode 100644 index e685d786d..000000000 --- a/asm/battle_controller_pokedude.s +++ /dev/null @@ -1,7632 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_99 -nullsub_99: @ 81560A0 - bx lr - thumb_func_end nullsub_99 - - thumb_func_start SetControllerToPokeDude -SetControllerToPokeDude: @ 81560A4 - ldr r1, _081560C8 @ =gBattlerControllerFuncs - ldr r0, _081560CC @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _081560D0 @ =sub_81560DC - str r1, [r0] - ldr r2, _081560D4 @ =gBattleStruct - ldr r0, [r2] - adds r0, 0x96 - ldr r1, _081560D8 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x97 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_081560C8: .4byte gBattlerControllerFuncs -_081560CC: .4byte gActiveBattler -_081560D0: .4byte sub_81560DC -_081560D4: .4byte gBattleStruct -_081560D8: .4byte gSpecialVar_0x8004 - thumb_func_end SetControllerToPokeDude - - thumb_func_start sub_81560DC -sub_81560DC: @ 81560DC - push {r4,r5,lr} - ldr r2, _08156120 @ =gBattleControllerExecFlags - ldr r1, _08156124 @ =gBitTable - ldr r5, _08156128 @ =gActiveBattler - ldrb r3, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08156138 - ldr r4, _0815612C @ =gBattleBufferA - lsls r0, r3, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x38 - bhi _08156134 - bl sub_8159AB8 - lsls r0, 24 - cmp r0, 0 - bne _08156138 - ldr r1, _08156130 @ =gUnknown_8478F1C - ldrb r0, [r5] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08156138 - .align 2, 0 -_08156120: .4byte gBattleControllerExecFlags -_08156124: .4byte gBitTable -_08156128: .4byte gActiveBattler -_0815612C: .4byte gBattleBufferA -_08156130: .4byte gUnknown_8478F1C -_08156134: - bl PlayerPartnerBufferExecCompleted -_08156138: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81560DC - - thumb_func_start sub_8156140 -sub_8156140: @ 8156140 - push {lr} - bl sub_8159824 - pop {r0} - bx r0 - thumb_func_end sub_8156140 - - thumb_func_start sub_815614C -sub_815614C: @ 815614C - push {lr} - ldr r2, _08156174 @ =gSprites - ldr r1, _08156178 @ =gBattlerSpriteIds - ldr r0, _0815617C @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08156180 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08156170 - bl PlayerPartnerBufferExecCompleted -_08156170: - pop {r0} - bx r0 - .align 2, 0 -_08156174: .4byte gSprites -_08156178: .4byte gBattlerSpriteIds -_0815617C: .4byte gActiveBattler -_08156180: .4byte SpriteCallbackDummy - thumb_func_end sub_815614C - - thumb_func_start sub_8156184 -sub_8156184: @ 8156184 - push {r4-r7,lr} - ldr r2, _081561E0 @ =gSprites - ldr r0, _081561E4 @ =gBattlerSpriteIds - ldr r7, _081561E8 @ =gActiveBattler - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - lsrs r2, r0, 31 - cmp r2, 0x1 - bne _08156230 - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - bne _08156230 - ldr r6, _081561EC @ =gBattleSpritesDataPtr - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r4, r3, 1 - adds r0, r4, r3 - lsls r0, 2 - adds r1, r0, r1 - ldrb r5, [r1] - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - bne _081561F8 - ldr r0, _081561F0 @ =gBattlerPartyIndexes - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _081561F4 @ =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_80F1720 - b _08156230 - .align 2, 0 -_081561E0: .4byte gSprites -_081561E4: .4byte gBattlerSpriteIds -_081561E8: .4byte gActiveBattler -_081561EC: .4byte gBattleSpritesDataPtr -_081561F0: .4byte gBattlerPartyIndexes -_081561F4: .4byte gEnemyParty -_081561F8: - ldrb r0, [r1, 0x1] - ands r2, r0 - cmp r2, 0 - beq _08156230 - movs r0, 0x7F - ands r0, r5 - strb r0, [r1] - ldr r0, [r6] - ldrb r2, [r7] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _08156238 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - bl PlayerPartnerBufferExecCompleted -_08156230: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08156238: .4byte 0x000027f9 - thumb_func_end sub_8156184 - - thumb_func_start sub_815623C -sub_815623C: @ 815623C - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0815624E - bl PlayerPartnerBufferExecCompleted -_0815624E: - pop {r0} - bx r0 - thumb_func_end sub_815623C - - thumb_func_start sub_8156254 -sub_8156254: @ 8156254 - push {lr} - ldr r0, _08156284 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815627E - ldr r2, _08156288 @ =gMain - ldr r0, _0815628C @ =0x00000439 - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _08156290 @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_0815627E: - pop {r0} - bx r0 - .align 2, 0 -_08156284: .4byte gPaletteFade -_08156288: .4byte gMain -_0815628C: .4byte 0x00000439 -_08156290: .4byte gPreBattleCallback1 - thumb_func_end sub_8156254 - - thumb_func_start sub_8156294 -sub_8156294: @ 8156294 - push {r4,lr} - ldr r0, _081562DC @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r4, _081562E0 @ =gActiveBattler - ldrb r1, [r4] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081562D4 - ldr r0, _081562E4 @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r2, _081562E8 @ =gBattlerPartyIndexes - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _081562EC @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - bl PlayerPartnerBufferExecCompleted -_081562D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081562DC: .4byte gBattleSpritesDataPtr -_081562E0: .4byte gActiveBattler -_081562E4: .4byte c3_0802FDF4 -_081562E8: .4byte gBattlerPartyIndexes -_081562EC: .4byte gPlayerParty - thumb_func_end sub_8156294 - - thumb_func_start sub_81562F0 -sub_81562F0: @ 81562F0 - push {r4-r6,lr} - ldr r2, _08156388 @ =gSprites - ldr r0, _0815638C @ =gHealthboxSpriteIds - ldr r6, _08156390 @ =gActiveBattler - ldrb r3, [r6] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08156394 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08156380 - ldr r5, _08156398 @ =gBattleSpritesDataPtr - ldr r0, [r5] - ldr r1, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08156380 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldrb r2, [r6] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _0815639C @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, [r5] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08156374 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl InitAndLaunchSpecialAnimation -_08156374: - ldr r0, _081563A0 @ =gBattlerControllerFuncs - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _081563A4 @ =sub_8156294 - str r0, [r1] -_08156380: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08156388: .4byte gSprites -_0815638C: .4byte gHealthboxSpriteIds -_08156390: .4byte gActiveBattler -_08156394: .4byte SpriteCallbackDummy -_08156398: .4byte gBattleSpritesDataPtr -_0815639C: .4byte 0x000027f9 -_081563A0: .4byte gBattlerControllerFuncs -_081563A4: .4byte sub_8156294 - thumb_func_end sub_81562F0 - - thumb_func_start sub_81563A8 -sub_81563A8: @ 81563A8 - push {r4-r6,lr} - ldr r6, _0815645C @ =gBattleSpritesDataPtr - ldr r0, [r6] - ldr r5, _08156460 @ =gActiveBattler - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _081563DA - ldr r0, _08156464 @ =gBattlerPartyIndexes - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08156468 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_80F1720 -_081563DA: - ldr r4, _0815646C @ =gSprites - ldr r0, _08156470 @ =gUnknown_3004FFC - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08156474 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08156454 - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08156454 - adds r0, r3, r4 - bl DestroySprite - ldr r4, _08156478 @ =gHealthboxSpriteIds - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08156464 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08156468 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - bl sub_804BD94 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldrb r0, [r5] - bl CopyBattleSpriteInvisibility - ldr r1, _0815647C @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08156480 @ =sub_81562F0 - str r1, [r0] -_08156454: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815645C: .4byte gBattleSpritesDataPtr -_08156460: .4byte gActiveBattler -_08156464: .4byte gBattlerPartyIndexes -_08156468: .4byte gPlayerParty -_0815646C: .4byte gSprites -_08156470: .4byte gUnknown_3004FFC -_08156474: .4byte SpriteCallbackDummy -_08156478: .4byte gHealthboxSpriteIds -_0815647C: .4byte gBattlerControllerFuncs -_08156480: .4byte sub_81562F0 - thumb_func_end sub_81563A8 - - thumb_func_start sub_8156484 -sub_8156484: @ 8156484 - push {lr} - ldr r0, _08156498 @ =gDoingBattleAnim - ldrb r0, [r0] - cmp r0, 0 - bne _08156492 - bl PlayerPartnerBufferExecCompleted -_08156492: - pop {r0} - bx r0 - .align 2, 0 -_08156498: .4byte gDoingBattleAnim - thumb_func_end sub_8156484 - - thumb_func_start sub_815649C -sub_815649C: @ 815649C - push {r4,lr} - ldr r4, _081564DC @ =gBattleSpritesDataPtr - ldr r1, [r4] - ldr r3, _081564E0 @ =gActiveBattler - ldrb r0, [r3] - ldr r2, [r1, 0x4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _081564D4 - 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, 0x9] - bl PlayerPartnerBufferExecCompleted -_081564D4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081564DC: .4byte gBattleSpritesDataPtr -_081564E0: .4byte gActiveBattler - thumb_func_end sub_815649C - - thumb_func_start sub_81564E4 -sub_81564E4: @ 81564E4 - push {lr} - bl sub_8159998 - pop {r0} - bx r0 - thumb_func_end sub_81564E4 - - thumb_func_start sub_81564F0 -sub_81564F0: @ 81564F0 - push {lr} - ldr r0, _08156524 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08156520 - ldr r1, _08156528 @ =gBattlerControllerFuncs - ldr r2, _0815652C @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08156530 @ =sub_8156538 - str r1, [r0] - ldr r1, _08156534 @ =gUnknown_3004FFC - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask - bl FreeAllWindowBuffers - bl sub_8127968 -_08156520: - pop {r0} - bx r0 - .align 2, 0 -_08156524: .4byte gPaletteFade -_08156528: .4byte gBattlerControllerFuncs -_0815652C: .4byte gActiveBattler -_08156530: .4byte sub_8156538 -_08156534: .4byte gUnknown_3004FFC - thumb_func_end sub_81564F0 - - thumb_func_start sub_8156538 -sub_8156538: @ 8156538 - push {lr} - ldr r0, _08156568 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _0815656C @ =BattleMainCB2 - cmp r1, r0 - bne _0815658E - ldr r0, _08156570 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815658E - ldr r0, _08156574 @ =gUnknown_203B0C0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08156580 - ldr r0, _08156578 @ =gUnknown_203B0C1 - ldrb r1, [r0] - ldr r2, _0815657C @ =gUnknown_203B0DC - movs r0, 0x1 - bl BtlController_EmitChosenMonReturnValue - b _0815658A - .align 2, 0 -_08156568: .4byte gMain -_0815656C: .4byte BattleMainCB2 -_08156570: .4byte gPaletteFade -_08156574: .4byte gUnknown_203B0C0 -_08156578: .4byte gUnknown_203B0C1 -_0815657C: .4byte gUnknown_203B0DC -_08156580: - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0 - bl BtlController_EmitChosenMonReturnValue -_0815658A: - bl PlayerPartnerBufferExecCompleted -_0815658E: - pop {r0} - bx r0 - thumb_func_end sub_8156538 - - thumb_func_start sub_8156594 -sub_8156594: @ 8156594 - push {lr} - ldr r0, _081565C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081565E2 - ldr r1, _081565CC @ =gBattlerControllerFuncs - ldr r0, _081565D0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _081565D4 @ =sub_81565E8 - str r1, [r0] - bl nullsub_44 - bl FreeAllWindowBuffers - ldr r0, _081565D8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x1 - beq _081565C4 - cmp r0, 0x3 - beq _081565DC -_081565C4: - movs r0, 0x7 - b _081565DE - .align 2, 0 -_081565C8: .4byte gPaletteFade -_081565CC: .4byte gBattlerControllerFuncs -_081565D0: .4byte gActiveBattler -_081565D4: .4byte sub_81565E8 -_081565D8: .4byte gSpecialVar_0x8004 -_081565DC: - movs r0, 0x8 -_081565DE: - bl sub_810B108 -_081565E2: - pop {r0} - bx r0 - thumb_func_end sub_8156594 - - thumb_func_start sub_81565E8 -sub_81565E8: @ 81565E8 - push {lr} - ldr r0, _08156614 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08156618 @ =BattleMainCB2 - cmp r1, r0 - bne _0815660E - ldr r0, _0815661C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0815660E - ldr r0, _08156620 @ =gSpecialVar_ItemId - ldrh r1, [r0] - movs r0, 0x1 - bl BtlController_EmitOneReturnValue - bl PlayerPartnerBufferExecCompleted -_0815660E: - pop {r0} - bx r0 - .align 2, 0 -_08156614: .4byte gMain -_08156618: .4byte BattleMainCB2 -_0815661C: .4byte gPaletteFade -_08156620: .4byte gSpecialVar_ItemId - thumb_func_end sub_81565E8 - - thumb_func_start sub_8156624 -sub_8156624: @ 8156624 - push {r4-r7,lr} - ldr r4, _08156788 @ =gBattleSpritesDataPtr - ldr r0, [r4] - ldr r5, _0815678C @ =gActiveBattler - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r7, 0x88 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _08156658 - ldr r0, _08156790 @ =gBattlerPartyIndexes - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08156794 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_80F1720 -_08156658: - ldr r1, [r4] - ldrb r0, [r5] - movs r6, 0x2 - adds r2, r6, 0 - eors r2, r0 - ldr r1, [r1, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _0815668A - ldr r0, _08156790 @ =gBattlerPartyIndexes - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08156794 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_80F1720 -_0815668A: - ldr r0, [r4] - ldrb r2, [r5] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - movs r4, 0x8 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _08156780 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _08156780 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _0815671E - ldr r0, _08156798 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0815671E - ldr r1, _0815679C @ =gUnknown_3004FFC - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081567A0 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _081567A4 @ =gHealthboxSpriteIds - ldrb r0, [r5] - adds r1, r6, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08156790 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08156794 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - eors r0, r6 - bl sub_804BD94 - ldrb r0, [r5] - eors r0, r6 - adds r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_0815671E: - ldr r1, _0815679C @ =gUnknown_3004FFC - ldr r4, _0815678C @ =gActiveBattler - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081567A0 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _081567A4 @ =gHealthboxSpriteIds - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08156790 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08156794 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_804BD94 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _08156788 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _081567A8 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081567AC @ =sub_81567B0 - str r1, [r0] -_08156780: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08156788: .4byte gBattleSpritesDataPtr -_0815678C: .4byte gActiveBattler -_08156790: .4byte gBattlerPartyIndexes -_08156794: .4byte gPlayerParty -_08156798: .4byte gBattleTypeFlags -_0815679C: .4byte gUnknown_3004FFC -_081567A0: .4byte gSprites -_081567A4: .4byte gHealthboxSpriteIds -_081567A8: .4byte gBattlerControllerFuncs -_081567AC: .4byte sub_81567B0 - thumb_func_end sub_8156624 - - thumb_func_start sub_81567B0 -sub_81567B0: @ 81567B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r2, _081568B0 @ =gSprites - ldr r0, _081568B4 @ =gHealthboxSpriteIds - ldr r1, _081568B8 @ =gActiveBattler - mov r8, r1 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _081568BC @ =SpriteCallbackDummy - cmp r1, r0 - bne _081567DA - movs r4, 0x1 -_081567DA: - cmp r4, 0 - beq _081568A6 - ldr r7, _081568C0 @ =gBattleSpritesDataPtr - ldr r0, [r7] - ldr r4, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r4 - ldrb r1, [r2, 0x1] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081568A6 - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081568A6 - ldrb r1, [r2] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r7] - mov r1, r8 - ldrb r2, [r1] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, _081568C4 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _081568C8 @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r2, _081568CC @ =gBattlerPartyIndexes - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _081568D0 @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - ldr r1, _081568D4 @ =gBattlerControllerFuncs - mov r2, r8 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _081568D8 @ =sub_815649C - str r1, [r0] -_081568A6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081568B0: .4byte gSprites -_081568B4: .4byte gHealthboxSpriteIds -_081568B8: .4byte gActiveBattler -_081568BC: .4byte SpriteCallbackDummy -_081568C0: .4byte gBattleSpritesDataPtr -_081568C4: .4byte 0x000027f9 -_081568C8: .4byte c3_0802FDF4 -_081568CC: .4byte gBattlerPartyIndexes -_081568D0: .4byte gPlayerParty -_081568D4: .4byte gBattlerControllerFuncs -_081568D8: .4byte sub_815649C - thumb_func_end sub_81567B0 - - thumb_func_start sub_81568DC -sub_81568DC: @ 81568DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _081569DC @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r8, r0 - ldrb r0, [r0, 0x8] - mov r10, r0 - mov r1, r8 - ldrb r7, [r1, 0xC] - str r7, [sp, 0x8] - ldrh r2, [r1, 0xA] - str r2, [sp, 0xC] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08156922 - ldr r1, _081569E0 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r10, r0 - bne _08156922 - b _08156A38 -_08156922: - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, _081569E4 @ =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - ldr r3, _081569E8 @ =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, _081569EC @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r1, r2 - adds r4, r1 - adds r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, 0xC] - lsls r1, r3, 16 - asrs r1, 16 - adds r0, r1 - cmp r0, r2 - bcc _08156A10 - adds r0, r6, 0 - movs r1, 0x19 - mov r2, sp - bl SetMonData - adds r0, r6, 0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - ldr r0, [sp, 0xC] - subs r2, r0, r2 - ldr r4, _081569F0 @ =gActiveBattler - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081569F8 - ldr r2, _081569E0 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r2 - mov r1, r10 - ldrh r0, [r0] - cmp r1, r0 - beq _081569D6 - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _081569F8 -_081569D6: - ldr r0, _081569F4 @ =sub_8156C68 - b _08156A3A - .align 2, 0 -_081569DC: .4byte gTasks -_081569E0: .4byte gBattlerPartyIndexes -_081569E4: .4byte gPlayerParty -_081569E8: .4byte gExperienceTables -_081569EC: .4byte gBaseStats -_081569F0: .4byte gActiveBattler -_081569F4: .4byte sub_8156C68 -_081569F8: - ldr r0, _08156A08 @ =gTasks - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldr r0, _08156A0C @ =sub_8156D80 - b _08156A3C - .align 2, 0 -_08156A08: .4byte gTasks -_08156A0C: .4byte sub_8156D80 -_08156A10: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r6, 0 - movs r1, 0x19 - bl SetMonData - ldr r1, _08156A30 @ =gBattlerControllerFuncs - ldr r3, [sp, 0x8] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, _08156A34 @ =sub_8156EE8 - str r1, [r0] - mov r0, r9 - bl DestroyTask - b _08156A3E - .align 2, 0 -_08156A30: .4byte gBattlerControllerFuncs -_08156A34: .4byte sub_8156EE8 -_08156A38: - ldr r0, _08156A50 @ =sub_8156A54 -_08156A3A: - mov r1, r8 -_08156A3C: - str r0, [r1] -_08156A3E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08156A50: .4byte sub_8156A54 - thumb_func_end sub_81568DC - - thumb_func_start sub_8156A54 -sub_8156A54: @ 8156A54 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08156B0C @ =gTasks - lsls r2, r0, 2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, 3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, 0x8] - movs r0, 0xA - ldrsh r2, [r2, r0] - mov r9, r2 - mov r2, r8 - ldrb r2, [r2, 0xC] - mov r10, r2 - movs r0, 0x64 - adds r6, r1, 0 - muls r6, r0 - ldr r0, _08156B10 @ =gPlayerParty - adds r6, r0 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r6, _08156B14 @ =gExperienceTables - lsls r1, r4, 2 - ldr r2, _08156B18 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, _08156B1C @ =gHealthboxSpriteIds - add r0, r10 - ldrb r1, [r0] - mov r0, r9 - negs r0, r0 - str r0, [sp] - mov r0, r10 - bl SetBattleBarStruct - movs r0, 0x1B - bl PlaySE - ldr r0, _08156B20 @ =sub_8156B24 - mov r1, r8 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08156B0C: .4byte gTasks -_08156B10: .4byte gPlayerParty -_08156B14: .4byte gExperienceTables -_08156B18: .4byte gBaseStats -_08156B1C: .4byte gHealthboxSpriteIds -_08156B20: .4byte sub_8156B24 - thumb_func_end sub_8156A54 - - thumb_func_start sub_8156B24 -sub_8156B24: @ 8156B24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _08156B50 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r6, r0, r1 - ldrh r1, [r6, 0x1C] - movs r2, 0x1C - ldrsh r0, [r6, r2] - cmp r0, 0xC - bgt _08156B54 - adds r0, r1, 0x1 - strh r0, [r6, 0x1C] - b _08156C50 - .align 2, 0 -_08156B50: .4byte gTasks -_08156B54: - ldrb r0, [r6, 0x8] - mov r9, r0 - ldrh r2, [r6, 0xA] - mov r10, r2 - ldrb r7, [r6, 0xC] - ldr r5, _08156C1C @ =gHealthboxSpriteIds - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, 0 - movs r2, 0x1 - movs r3, 0 - bl MoveBattleBar - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - bl SetHealthboxSpriteVisible - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _08156C50 - movs r0, 0x1B - bl m4aSongNumStop - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _08156C20 @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r3, _08156C24 @ =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, _08156C28 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, r10 - lsls r0, r2, 16 - asrs r4, r0, 16 - ldr r0, [sp, 0x4] - adds r0, r4 - cmp r0, r1 - blt _08156C34 - adds r0, r5, 0 - movs r1, 0x19 - mov r2, sp - bl SetMonData - adds r0, r5, 0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - subs r2, r4, r2 - ldr r4, _08156C2C @ =gActiveBattler - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - ldr r0, _08156C30 @ =sub_8156C68 - str r0, [r6] - b _08156C50 - .align 2, 0 -_08156C1C: .4byte gHealthboxSpriteIds -_08156C20: .4byte gPlayerParty -_08156C24: .4byte gExperienceTables -_08156C28: .4byte gBaseStats -_08156C2C: .4byte gActiveBattler -_08156C30: .4byte sub_8156C68 -_08156C34: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r5, 0 - movs r1, 0x19 - bl SetMonData - ldr r1, _08156C60 @ =gBattlerControllerFuncs - lsls r0, r7, 2 - adds r0, r1 - ldr r1, _08156C64 @ =sub_8156EE8 - str r1, [r0] - mov r0, r8 - bl DestroyTask -_08156C50: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08156C60: .4byte gBattlerControllerFuncs -_08156C64: .4byte sub_8156EE8 - thumb_func_end sub_8156B24 - - thumb_func_start sub_8156C68 -sub_8156C68: @ 8156C68 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08156CBC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0xC] - ldrb r6, [r0, 0x8] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08156C9C - ldr r1, _08156CC0 @ =gBattlerPartyIndexes - movs r0, 0x2 - adds r2, r4, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _08156C9C - adds r4, r2, 0 -_08156C9C: - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r4, 0 - movs r3, 0 - bl InitAndLaunchSpecialAnimation - ldr r0, _08156CBC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08156CC4 @ =sub_8156CC8 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08156CBC: .4byte gTasks -_08156CC0: .4byte gBattlerPartyIndexes -_08156CC4: .4byte sub_8156CC8 - thumb_func_end sub_8156C68 - - thumb_func_start sub_8156CC8 -sub_8156CC8: @ 8156CC8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08156D34 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - ldrb r5, [r2, 0xC] - ldr r0, _08156D38 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08156D6A - ldrb r4, [r2, 0x8] - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, _08156D3C @ =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08156D48 - ldr r1, _08156D40 @ =gBattlerPartyIndexes - movs r0, 0x2 - adds r2, r5, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _08156D48 - ldr r0, _08156D44 @ =gHealthboxSpriteIds - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, 0 - movs r2, 0 - bl UpdateHealthboxAttribute - b _08156D5C - .align 2, 0 -_08156D34: .4byte gTasks -_08156D38: .4byte gBattleSpritesDataPtr -_08156D3C: .4byte gPlayerParty -_08156D40: .4byte gBattlerPartyIndexes -_08156D44: .4byte gHealthboxSpriteIds -_08156D48: - ldr r0, _08156D70 @ =gHealthboxSpriteIds - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x64 - muls r1, r4 - ldr r2, _08156D74 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute -_08156D5C: - ldr r0, _08156D78 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _08156D7C @ =sub_8156D80 - str r0, [r1] -_08156D6A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08156D70: .4byte gHealthboxSpriteIds -_08156D74: .4byte gPlayerParty -_08156D78: .4byte gTasks -_08156D7C: .4byte sub_8156D80 - thumb_func_end sub_8156CC8 - - thumb_func_start sub_8156D80 -sub_8156D80: @ 8156D80 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08156DBC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08156DC0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - ldrb r0, [r4, 0xC] - ldr r1, _08156DC4 @ =gBattlerControllerFuncs - lsls r0, 2 - adds r0, r1 - ldr r1, _08156DC8 @ =sub_8156EE8 - str r1, [r0] - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08156DBC: .4byte gTasks -_08156DC0: .4byte gPlayerParty -_08156DC4: .4byte gBattlerControllerFuncs -_08156DC8: .4byte sub_8156EE8 - thumb_func_end sub_8156D80 - - thumb_func_start sub_8156DCC -sub_8156DCC: @ 8156DCC - push {r4-r6,lr} - ldr r4, _08156E2C @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08156E3C - ldr r6, _08156E30 @ =gSprites - ldr r5, _08156E34 @ =gBattlerSpriteIds - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r6 - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - cmp r0, 0xA0 - ble _08156E66 - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r1, _08156E38 @ =gHealthboxSpriteIds - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted - b _08156E66 - .align 2, 0 -_08156E2C: .4byte gActiveBattler -_08156E30: .4byte gSprites -_08156E34: .4byte gBattlerSpriteIds -_08156E38: .4byte gHealthboxSpriteIds -_08156E3C: - ldr r2, _08156E6C @ =gSprites - ldr r0, _08156E70 @ =gBattlerSpriteIds - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08156E66 - ldr r0, _08156E74 @ =gHealthboxSpriteIds - adds r0, r3, r0 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted -_08156E66: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08156E6C: .4byte gSprites -_08156E70: .4byte gBattlerSpriteIds -_08156E74: .4byte gHealthboxSpriteIds - thumb_func_end sub_8156DCC - - thumb_func_start sub_8156E78 -sub_8156E78: @ 8156E78 - push {r4-r6,lr} - ldr r5, _08156EB8 @ =gActiveBattler - ldrb r0, [r5] - ldr r6, _08156EBC @ =gHealthboxSpriteIds - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl MoveBattleBar - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08156EC0 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl UpdateHpTextInHealthbox - b _08156EDA - .align 2, 0 -_08156EB8: .4byte gActiveBattler -_08156EBC: .4byte gHealthboxSpriteIds -_08156EC0: - ldr r2, _08156EE0 @ =gBattlerPartyIndexes - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _08156EE4 @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - bl PlayerPartnerBufferExecCompleted -_08156EDA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08156EE0: .4byte gBattlerPartyIndexes -_08156EE4: .4byte gPlayerParty - thumb_func_end sub_8156E78 - - thumb_func_start sub_8156EE8 -sub_8156EE8: @ 8156EE8 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _08156EFA - bl PlayerPartnerBufferExecCompleted -_08156EFA: - pop {r0} - bx r0 - thumb_func_end sub_8156EE8 - - thumb_func_start sub_8156F00 -sub_8156F00: @ 8156F00 - push {r4,lr} - ldr r1, _08156F3C @ =gBattlerSpriteIds - ldr r0, _08156F40 @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _08156F44 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _08156F4C - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08156F48 @ =gDoingBattleAnim - strb r3, [r0] - bl PlayerPartnerBufferExecCompleted - b _08156F76 - .align 2, 0 -_08156F3C: .4byte gBattlerSpriteIds -_08156F40: .4byte gActiveBattler -_08156F44: .4byte gSprites -_08156F48: .4byte gDoingBattleAnim -_08156F4C: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08156F70 - 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] -_08156F70: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_08156F76: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8156F00 - - thumb_func_start sub_8156F7C -sub_8156F7C: @ 8156F7C - push {r4-r6,lr} - ldr r0, _08156FD8 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r6, _08156FDC @ =gActiveBattler - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08156FD0 - ldr r5, _08156FE0 @ =gBattlerSpriteIds - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08156FE4 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _08156FE8 @ =gHealthboxSpriteIds - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted -_08156FD0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08156FD8: .4byte gBattleSpritesDataPtr -_08156FDC: .4byte gActiveBattler -_08156FE0: .4byte gBattlerSpriteIds -_08156FE4: .4byte gSprites -_08156FE8: .4byte gHealthboxSpriteIds - thumb_func_end sub_8156F7C - - thumb_func_start sub_8156FEC -sub_8156FEC: @ 8156FEC - push {lr} - ldr r2, _08157014 @ =gSprites - ldr r1, _08157018 @ =gBattlerSpriteIds - ldr r0, _0815701C @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08157020 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08157010 - bl PlayerPartnerBufferExecCompleted -_08157010: - pop {r0} - bx r0 - .align 2, 0 -_08157014: .4byte gSprites -_08157018: .4byte gBattlerSpriteIds -_0815701C: .4byte gActiveBattler -_08157020: .4byte SpriteCallbackDummy - thumb_func_end sub_8156FEC - - thumb_func_start sub_8157024 -sub_8157024: @ 8157024 - push {lr} - ldr r0, _0815704C @ =gBattleSpritesDataPtr - ldr r2, [r0] - ldr r0, _08157050 @ =gActiveBattler - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08157046 - bl PlayerPartnerBufferExecCompleted -_08157046: - pop {r0} - bx r0 - .align 2, 0 -_0815704C: .4byte gBattleSpritesDataPtr -_08157050: .4byte gActiveBattler - thumb_func_end sub_8157024 - - thumb_func_start sub_8157054 -sub_8157054: @ 8157054 - push {lr} - ldr r0, _0815707C @ =gBattleSpritesDataPtr - ldr r2, [r0] - ldr r0, _08157080 @ =gActiveBattler - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08157076 - bl PlayerPartnerBufferExecCompleted -_08157076: - pop {r0} - bx r0 - .align 2, 0 -_0815707C: .4byte gBattleSpritesDataPtr -_08157080: .4byte gActiveBattler - thumb_func_end sub_8157054 - - thumb_func_start PlayerPartnerBufferExecCompleted -PlayerPartnerBufferExecCompleted: @ 8157084 - push {r4,lr} - sub sp, 0x4 - ldr r1, _081570C4 @ =gBattlerControllerFuncs - ldr r4, _081570C8 @ =gActiveBattler - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081570CC @ =sub_81560DC - str r1, [r0] - ldr r0, _081570D0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081570D8 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _081570D4 @ =gBattleBufferA - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _081570EA - .align 2, 0 -_081570C4: .4byte gBattlerControllerFuncs -_081570C8: .4byte gActiveBattler -_081570CC: .4byte sub_81560DC -_081570D0: .4byte gBattleTypeFlags -_081570D4: .4byte gBattleBufferA -_081570D8: - ldr r2, _081570F4 @ =gBattleControllerExecFlags - ldr r1, _081570F8 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_081570EA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081570F4: .4byte gBattleControllerExecFlags -_081570F8: .4byte gBitTable - thumb_func_end PlayerPartnerBufferExecCompleted - - thumb_func_start CompleteOnFinishedStatusAnimation_7 -CompleteOnFinishedStatusAnimation_7: @ 81570FC - push {lr} - ldr r0, _08157124 @ =gBattleSpritesDataPtr - ldr r2, [r0] - ldr r0, _08157128 @ =gActiveBattler - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0815711E - bl PlayerPartnerBufferExecCompleted -_0815711E: - pop {r0} - bx r0 - .align 2, 0 -_08157124: .4byte gBattleSpritesDataPtr -_08157128: .4byte gActiveBattler - thumb_func_end CompleteOnFinishedStatusAnimation_7 - - thumb_func_start sub_815712C -sub_815712C: @ 815712C - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, _08157158 @ =gBattleBufferA - ldr r0, _0815715C @ =gActiveBattler - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08157164 - ldr r0, _08157160 @ =gBattlerPartyIndexes - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_81571A0 - adds r6, r0, 0 - b _08157186 - .align 2, 0 -_08157158: .4byte gBattleBufferA -_0815715C: .4byte gActiveBattler -_08157160: .4byte gBattlerPartyIndexes -_08157164: - ldrb r4, [r1] - movs r5, 0 -_08157168: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0815717E - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl sub_81571A0 - adds r6, r0 -_0815717E: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _08157168 -_08157186: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl PlayerPartnerBufferExecCompleted - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_815712C - - thumb_func_start sub_81571A0 -sub_81571A0: @ 81571A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8C - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _081571CC @ =gActiveBattler - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _081571D4 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _081571D0 @ =gPlayerParty - b _081571DC - .align 2, 0 -_081571CC: .4byte gActiveBattler -_081571D0: .4byte gPlayerParty -_081571D4: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _081571FC @ =gEnemyParty -_081571DC: - adds r6, r1, r0 - ldr r3, _08157200 @ =gBattleBufferA - ldr r2, _08157204 @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _081571F2 - b _0815773C -_081571F2: - lsls r0, 2 - ldr r1, _08157208 @ =_0815720C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081571FC: .4byte gEnemyParty -_08157200: .4byte gBattleBufferA -_08157204: .4byte gActiveBattler -_08157208: .4byte _0815720C - .align 2, 0 -_0815720C: - .4byte _081572FC - .4byte _08157508 - .4byte _0815750E - .4byte _08157514 - .4byte _08157564 - .4byte _08157564 - .4byte _08157564 - .4byte _08157564 - .4byte _08157574 - .4byte _0815759A - .4byte _0815759A - .4byte _0815759A - .4byte _0815759A - .4byte _0815773C - .4byte _0815773C - .4byte _0815773C - .4byte _0815773C - .4byte _081575AA - .4byte _081575B0 - .4byte _081575D4 - .4byte _081575DA - .4byte _081575E0 - .4byte _081575E6 - .4byte _081575EC - .4byte _081575F2 - .4byte _081575F8 - .4byte _081575FE - .4byte _08157604 - .4byte _0815760A - .4byte _08157610 - .4byte _08157616 - .4byte _0815761C - .4byte _0815765C - .4byte _08157662 - .4byte _08157668 - .4byte _0815766E - .4byte _08157674 - .4byte _0815767A - .4byte _08157680 - .4byte _08157686 - .4byte _0815768C - .4byte _081576B4 - .4byte _081576BA - .4byte _081576C0 - .4byte _081576C6 - .4byte _081576CC - .4byte _081576D2 - .4byte _081576D8 - .4byte _081576DE - .4byte _081576F4 - .4byte _081576FA - .4byte _08157700 - .4byte _08157706 - .4byte _0815770C - .4byte _08157712 - .4byte _08157718 - .4byte _0815771E - .4byte _08157724 - .4byte _0815772A - .4byte _08157730 -_081572FC: - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r4, 0 - add r0, sp, 0x24 - mov r8, r0 - movs r1, 0x3B - add r1, sp - mov r9, r1 - movs r2, 0x2B - add r2, sp - mov r10, r2 - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x88] - mov r2, sp - adds r2, 0x30 - str r2, [sp, 0x80] - adds r0, 0x12 - str r0, [sp, 0x84] - add r5, sp, 0xC -_0815733E: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - strh r0, [r5] - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r6, 0 - bl GetMonData - mov r2, r8 - adds r1, r2, r4 - strb r0, [r1] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0815733E - adds r0, r6, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x20 - bl GetMonData - mov r2, r10 - strb r0, [r2] - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r6, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r4, 0x1F - ands r0, r4 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r6, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, _081574FC @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r6, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r4 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r6, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, _08157500 @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r6, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, _08157504 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r6, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r4 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r6, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r6, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r6, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r6, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r6, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r6, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r6, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r6, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r6, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r6, 0 - movs r1, 0x2 - ldr r2, [sp, 0x88] - bl GetMonData - ldr r0, [sp, 0x80] - ldr r1, [sp, 0x88] - bl StringCopy10 - adds r0, r6, 0 - movs r1, 0x7 - ldr r2, [sp, 0x84] - bl GetMonData - mov r2, sp - movs r4, 0 -_081574EC: - adds r0, r7, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x57 - bls _081574EC - b _0815773C - .align 2, 0 -_081574FC: .4byte 0xfffffc1f -_08157500: .4byte 0xfff07fff -_08157504: .4byte 0xfffffe0f -_08157508: - adds r0, r6, 0 - movs r1, 0xB - b _081576E2 -_0815750E: - adds r0, r6, 0 - movs r1, 0xC - b _081576E2 -_08157514: - movs r4, 0 - add r2, sp, 0x58 - mov r8, r2 - add r0, sp, 0x60 - mov r9, r0 - mov r5, r8 -_08157520: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - strh r0, [r5] - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r6, 0 - bl GetMonData - mov r2, r9 - adds r1, r2, r4 - strb r0, [r1] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _08157520 - adds r0, r6, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r8 - strb r0, [r1, 0xC] - mov r2, r8 - movs r4, 0 -_08157554: - adds r0, r7, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0xF - bls _08157554 - b _0815773C -_08157564: - ldrb r0, [r2] - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r1, [r0] - adds r1, 0x9 - adds r0, r6, 0 - b _081576E2 -_08157574: - movs r4, 0 -_08157576: - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r6, 0 - bl GetMonData - adds r1, r7, r4 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0x3 - ble _08157576 - adds r0, r6, 0 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r4 - strb r0, [r1] - adds r4, 0x1 - b _0815773C -_0815759A: - ldrb r0, [r2] - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r1, [r0] - adds r1, 0x8 - adds r0, r6, 0 - b _08157734 -_081575AA: - adds r0, r6, 0 - movs r1, 0x1 - b _081575B4 -_081575B0: - adds r0, r6, 0 - movs r1, 0x19 -_081575B4: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r4, 0x3 - b _0815773C -_081575D4: - adds r0, r6, 0 - movs r1, 0x1A - b _08157734 -_081575DA: - adds r0, r6, 0 - movs r1, 0x1B - b _08157734 -_081575E0: - adds r0, r6, 0 - movs r1, 0x1C - b _08157734 -_081575E6: - adds r0, r6, 0 - movs r1, 0x1D - b _08157734 -_081575EC: - adds r0, r6, 0 - movs r1, 0x1E - b _08157734 -_081575F2: - adds r0, r6, 0 - movs r1, 0x1F - b _08157734 -_081575F8: - adds r0, r6, 0 - movs r1, 0x20 - b _08157734 -_081575FE: - adds r0, r6, 0 - movs r1, 0x22 - b _08157734 -_08157604: - adds r0, r6, 0 - movs r1, 0x23 - b _08157734 -_0815760A: - adds r0, r6, 0 - movs r1, 0x24 - b _08157734 -_08157610: - adds r0, r6, 0 - movs r1, 0x25 - b _08157734 -_08157616: - adds r0, r6, 0 - movs r1, 0x26 - b _08157734 -_0815761C: - adds r0, r6, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r6, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r6, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r6, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r6, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r6, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r4, 0x6 - b _0815773C -_0815765C: - adds r0, r6, 0 - movs r1, 0x27 - b _08157734 -_08157662: - adds r0, r6, 0 - movs r1, 0x28 - b _08157734 -_08157668: - adds r0, r6, 0 - movs r1, 0x29 - b _08157734 -_0815766E: - adds r0, r6, 0 - movs r1, 0x2A - b _08157734 -_08157674: - adds r0, r6, 0 - movs r1, 0x2B - b _08157734 -_0815767A: - adds r0, r6, 0 - movs r1, 0x2C - b _08157734 -_08157680: - adds r0, r6, 0 - movs r1, 0 - b _08157690 -_08157686: - adds r0, r6, 0 - movs r1, 0x9 - b _081576E2 -_0815768C: - adds r0, r6, 0 - movs r1, 0x37 -_08157690: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r4, 0x4 - b _0815773C -_081576B4: - adds r0, r6, 0 - movs r1, 0x38 - b _08157734 -_081576BA: - adds r0, r6, 0 - movs r1, 0x39 - b _081576E2 -_081576C0: - adds r0, r6, 0 - movs r1, 0x3A - b _081576E2 -_081576C6: - adds r0, r6, 0 - movs r1, 0x3B - b _081576E2 -_081576CC: - adds r0, r6, 0 - movs r1, 0x3C - b _081576E2 -_081576D2: - adds r0, r6, 0 - movs r1, 0x3D - b _081576E2 -_081576D8: - adds r0, r6, 0 - movs r1, 0x3E - b _081576E2 -_081576DE: - adds r0, r6, 0 - movs r1, 0x3F -_081576E2: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r4, 0x2 - b _0815773C -_081576F4: - adds r0, r6, 0 - movs r1, 0x16 - b _08157734 -_081576FA: - adds r0, r6, 0 - movs r1, 0x17 - b _08157734 -_08157700: - adds r0, r6, 0 - movs r1, 0x18 - b _08157734 -_08157706: - adds r0, r6, 0 - movs r1, 0x21 - b _08157734 -_0815770C: - adds r0, r6, 0 - movs r1, 0x2F - b _08157734 -_08157712: - adds r0, r6, 0 - movs r1, 0x30 - b _08157734 -_08157718: - adds r0, r6, 0 - movs r1, 0x32 - b _08157734 -_0815771E: - adds r0, r6, 0 - movs r1, 0x33 - b _08157734 -_08157724: - adds r0, r6, 0 - movs r1, 0x34 - b _08157734 -_0815772A: - adds r0, r6, 0 - movs r1, 0x35 - b _08157734 -_08157730: - adds r0, r6, 0 - movs r1, 0x36 -_08157734: - bl GetMonData - strb r0, [r7] - movs r4, 0x1 -_0815773C: - adds r0, r4, 0 - add sp, 0x8C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81571A0 - - thumb_func_start sub_8157750 -sub_8157750: @ 8157750 - push {lr} - bl PlayerHandleGetRawMonData - pop {r0} - bx r0 - thumb_func_end sub_8157750 - - thumb_func_start sub_815775C -sub_815775C: @ 815775C - push {r4,r5,lr} - ldr r1, _08157780 @ =gBattleBufferA - ldr r0, _08157784 @ =gActiveBattler - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0815778C - ldr r0, _08157788 @ =gBattlerPartyIndexes - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_81577B4 - b _081577AA - .align 2, 0 -_08157780: .4byte gBattleBufferA -_08157784: .4byte gActiveBattler -_08157788: .4byte gBattlerPartyIndexes -_0815778C: - ldrb r4, [r1] - movs r5, 0 -_08157790: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0815779E - adds r0, r5, 0 - bl sub_81577B4 -_0815779E: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08157790 -_081577AA: - bl PlayerPartnerBufferExecCompleted - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815775C - - thumb_func_start sub_81577B4 -sub_81577B4: @ 81577B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081577E4 @ =gActiveBattler - ldrb r0, [r0] - lsls r2, r0, 9 - ldr r1, _081577E8 @ =gBattleBufferA + 3 - adds r5, r2, r1 - mov r8, r5 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _081577F0 - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, _081577EC @ =gPlayerParty - b _081577F8 - .align 2, 0 -_081577E4: .4byte gActiveBattler -_081577E8: .4byte gBattleBufferA + 3 -_081577EC: .4byte gPlayerParty -_081577F0: - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, _0815781C @ =gEnemyParty -_081577F8: - adds r6, r1, r0 - ldr r2, _08157820 @ =gBattleBufferA - ldr r0, _08157824 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0x3B - bls _08157812 - bl _0815809A -_08157812: - lsls r0, 2 - ldr r1, _08157828 @ =_0815782C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0815781C: .4byte gEnemyParty -_08157820: .4byte gBattleBufferA -_08157824: .4byte gActiveBattler -_08157828: .4byte _0815782C - .align 2, 0 -_0815782C: - .4byte _0815791C - .4byte _08157AA4 - .4byte _08157AC0 - .4byte _08157ADC - .4byte _08157B16 - .4byte _08157B16 - .4byte _08157B16 - .4byte _08157B16 - .4byte _08157B2C - .4byte _08157B88 - .4byte _08157B88 - .4byte _08157B88 - .4byte _08157B88 - .4byte _0815809A - .4byte _0815809A - .4byte _0815809A - .4byte _0815809A - .4byte _08157BA8 - .4byte _08157BC4 - .4byte _08157BE0 - .4byte _08157BFC - .4byte _08157C18 - .4byte _08157C34 - .4byte _08157C50 - .4byte _08157C6C - .4byte _08157C88 - .4byte _08157CA4 - .4byte _08157CC0 - .4byte _08157CDC - .4byte _08157CF8 - .4byte _08157D14 - .4byte _08157D30 - .4byte _08157D94 - .4byte _08157DB0 - .4byte _08157DCC - .4byte _08157DE8 - .4byte _08157E04 - .4byte _08157E20 - .4byte _08157E3C - .4byte _08157E58 - .4byte _08157E74 - .4byte _08157E90 - .4byte _08157EAC - .4byte _08157EC8 - .4byte _08157EE4 - .4byte _08157F00 - .4byte _08157F1C - .4byte _08157F38 - .4byte _08157F54 - .4byte _08157F70 - .4byte _08157F8C - .4byte _08157FA8 - .4byte _08157FC4 - .4byte _08157FE0 - .4byte _08157FFC - .4byte _08158018 - .4byte _08158034 - .4byte _08158050 - .4byte _0815806C - .4byte _08158088 -_0815791C: - adds r0, r6, 0 - movs r1, 0xB - mov r2, r8 - bl SetMonData - mov r2, r8 - adds r2, 0x2E - adds r0, r6, 0 - movs r1, 0xC - bl SetMonData - movs r4, 0 - movs r0, 0x3B - add r0, r8 - mov r9, r0 - movs r1, 0x2B - add r1, r8 - mov r10, r1 - mov r2, r8 - adds r2, 0x44 - str r2, [sp, 0x10] - mov r0, r8 - adds r0, 0x48 - str r0, [sp, 0x14] - mov r1, r8 - adds r1, 0x4C - str r1, [sp, 0x18] - subs r2, 0x1A - str r2, [sp, 0x8] - subs r0, 0x20 - str r0, [sp, 0x4] - subs r1, 0x20 - str r1, [sp, 0xC] - subs r2, 0x28 - str r2, [sp, 0x1C] - subs r0, 0x24 - str r0, [sp, 0x20] - subs r1, 0x26 - str r1, [sp, 0x24] - adds r2, 0x6 - str r2, [sp, 0x28] - adds r0, 0x6 - str r0, [sp, 0x2C] - mov r7, r8 - adds r7, 0x24 - mov r5, r8 - adds r5, 0xC -_0815797A: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - adds r2, r5, 0 - bl SetMonData - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r6, 0 - adds r2, r7, 0 - bl SetMonData - adds r7, 0x1 - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0815797A - adds r0, r6, 0 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x20 - mov r2, r10 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x19 - ldr r2, [sp, 0x10] - bl SetMonData - mov r1, r8 - ldrb r0, [r1, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - mov r2, r8 - ldrh r0, [r2, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - mov r2, r8 - ldrb r0, [r2, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - mov r2, r8 - ldr r0, [r2, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - mov r2, r8 - ldrh r0, [r2, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - mov r2, r8 - ldrb r0, [r2, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r6, 0 - movs r1, 0 - ldr r2, [sp, 0x14] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x37 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x38 - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x39 - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3A - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3B - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3C - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3D - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3E - ldr r2, [sp, 0x28] - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3F - ldr r2, [sp, 0x2C] - bl SetMonData - b _0815809A -_08157AA4: - ldr r0, _08157AB8 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157ABC @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0xB - bl SetMonData - b _0815809A - .align 2, 0 -_08157AB8: .4byte gActiveBattler -_08157ABC: .4byte gBattleBufferA + 3 -_08157AC0: - ldr r0, _08157AD4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157AD8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0xC - bl SetMonData - b _0815809A - .align 2, 0 -_08157AD4: .4byte gActiveBattler -_08157AD8: .4byte gBattleBufferA + 3 -_08157ADC: - movs r4, 0 - movs r0, 0xC - adds r0, r5 - mov r8, r0 - adds r7, r5, 0 - adds r7, 0x8 -_08157AE8: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - adds r2, r5, 0 - bl SetMonData - adds r1, r4, 0 - adds r1, 0x11 - adds r0, r6, 0 - adds r2, r7, 0 - bl SetMonData - adds r7, 0x1 - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _08157AE8 - adds r0, r6, 0 - movs r1, 0x15 - mov r2, r8 - bl SetMonData - b _0815809A -_08157B16: - ldr r0, _08157B28 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - adds r0, r3, 0x1 - adds r0, r2, r0 - ldrb r1, [r0] - adds r1, 0x9 - b _08157B96 - .align 2, 0 -_08157B28: .4byte gActiveBattler -_08157B2C: - ldr r5, _08157B80 @ =gActiveBattler - ldrb r2, [r5] - lsls r2, 9 - ldr r4, _08157B84 @ =gBattleBufferA + 3 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x1 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x2 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r4, 0x4 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0x15 - bl SetMonData - b _0815809A - .align 2, 0 -_08157B80: .4byte gActiveBattler -_08157B84: .4byte gBattleBufferA + 3 -_08157B88: - ldr r0, _08157BA4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - adds r0, r3, 0x1 - adds r0, r2, r0 - ldrb r1, [r0] - adds r1, 0x8 -_08157B96: - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r6, 0 - bl SetMonData - b _0815809A - .align 2, 0 -_08157BA4: .4byte gActiveBattler -_08157BA8: - ldr r0, _08157BBC @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157BC0 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl SetMonData - b _0815809A - .align 2, 0 -_08157BBC: .4byte gActiveBattler -_08157BC0: .4byte gBattleBufferA + 3 -_08157BC4: - ldr r0, _08157BD8 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157BDC @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x19 - bl SetMonData - b _0815809A - .align 2, 0 -_08157BD8: .4byte gActiveBattler -_08157BDC: .4byte gBattleBufferA + 3 -_08157BE0: - ldr r0, _08157BF4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157BF8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1A - bl SetMonData - b _0815809A - .align 2, 0 -_08157BF4: .4byte gActiveBattler -_08157BF8: .4byte gBattleBufferA + 3 -_08157BFC: - ldr r0, _08157C10 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157C14 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1B - bl SetMonData - b _0815809A - .align 2, 0 -_08157C10: .4byte gActiveBattler -_08157C14: .4byte gBattleBufferA + 3 -_08157C18: - ldr r0, _08157C2C @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157C30 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1C - bl SetMonData - b _0815809A - .align 2, 0 -_08157C2C: .4byte gActiveBattler -_08157C30: .4byte gBattleBufferA + 3 -_08157C34: - ldr r0, _08157C48 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157C4C @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1D - bl SetMonData - b _0815809A - .align 2, 0 -_08157C48: .4byte gActiveBattler -_08157C4C: .4byte gBattleBufferA + 3 -_08157C50: - ldr r0, _08157C64 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157C68 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1E - bl SetMonData - b _0815809A - .align 2, 0 -_08157C64: .4byte gActiveBattler -_08157C68: .4byte gBattleBufferA + 3 -_08157C6C: - ldr r0, _08157C80 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157C84 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x1F - bl SetMonData - b _0815809A - .align 2, 0 -_08157C80: .4byte gActiveBattler -_08157C84: .4byte gBattleBufferA + 3 -_08157C88: - ldr r0, _08157C9C @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157CA0 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x20 - bl SetMonData - b _0815809A - .align 2, 0 -_08157C9C: .4byte gActiveBattler -_08157CA0: .4byte gBattleBufferA + 3 -_08157CA4: - ldr r0, _08157CB8 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157CBC @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x22 - bl SetMonData - b _0815809A - .align 2, 0 -_08157CB8: .4byte gActiveBattler -_08157CBC: .4byte gBattleBufferA + 3 -_08157CC0: - ldr r0, _08157CD4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157CD8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x23 - bl SetMonData - b _0815809A - .align 2, 0 -_08157CD4: .4byte gActiveBattler -_08157CD8: .4byte gBattleBufferA + 3 -_08157CDC: - ldr r0, _08157CF0 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157CF4 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x24 - bl SetMonData - b _0815809A - .align 2, 0 -_08157CF0: .4byte gActiveBattler -_08157CF4: .4byte gBattleBufferA + 3 -_08157CF8: - ldr r0, _08157D0C @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157D10 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x25 - bl SetMonData - b _0815809A - .align 2, 0 -_08157D0C: .4byte gActiveBattler -_08157D10: .4byte gBattleBufferA + 3 -_08157D14: - ldr r0, _08157D28 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157D2C @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x26 - bl SetMonData - b _0815809A - .align 2, 0 -_08157D28: .4byte gActiveBattler -_08157D2C: .4byte gBattleBufferA + 3 -_08157D30: - ldr r5, _08157D8C @ =gActiveBattler - ldrb r2, [r5] - lsls r2, 9 - ldr r4, _08157D90 @ =gBattleBufferA + 3 - adds r2, r4 - adds r0, r6, 0 - movs r1, 0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x1 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x2 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r4, 0x4 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r4, 0x5 - adds r2, r4 - b _08157E2A - .align 2, 0 -_08157D8C: .4byte gActiveBattler -_08157D90: .4byte gBattleBufferA + 3 -_08157D94: - ldr r0, _08157DA8 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157DAC @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x27 - bl SetMonData - b _0815809A - .align 2, 0 -_08157DA8: .4byte gActiveBattler -_08157DAC: .4byte gBattleBufferA + 3 -_08157DB0: - ldr r0, _08157DC4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157DC8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x28 - bl SetMonData - b _0815809A - .align 2, 0 -_08157DC4: .4byte gActiveBattler -_08157DC8: .4byte gBattleBufferA + 3 -_08157DCC: - ldr r0, _08157DE0 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157DE4 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x29 - bl SetMonData - b _0815809A - .align 2, 0 -_08157DE0: .4byte gActiveBattler -_08157DE4: .4byte gBattleBufferA + 3 -_08157DE8: - ldr r0, _08157DFC @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157E00 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2A - bl SetMonData - b _0815809A - .align 2, 0 -_08157DFC: .4byte gActiveBattler -_08157E00: .4byte gBattleBufferA + 3 -_08157E04: - ldr r0, _08157E18 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157E1C @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2B - bl SetMonData - b _0815809A - .align 2, 0 -_08157E18: .4byte gActiveBattler -_08157E1C: .4byte gBattleBufferA + 3 -_08157E20: - ldr r0, _08157E34 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157E38 @ =gBattleBufferA + 3 - adds r2, r0 -_08157E2A: - adds r0, r6, 0 - movs r1, 0x2C - bl SetMonData - b _0815809A - .align 2, 0 -_08157E34: .4byte gActiveBattler -_08157E38: .4byte gBattleBufferA + 3 -_08157E3C: - ldr r0, _08157E50 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157E54 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0 - bl SetMonData - b _0815809A - .align 2, 0 -_08157E50: .4byte gActiveBattler -_08157E54: .4byte gBattleBufferA + 3 -_08157E58: - ldr r0, _08157E6C @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157E70 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x9 - bl SetMonData - b _0815809A - .align 2, 0 -_08157E6C: .4byte gActiveBattler -_08157E70: .4byte gBattleBufferA + 3 -_08157E74: - ldr r0, _08157E88 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157E8C @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x37 - bl SetMonData - b _0815809A - .align 2, 0 -_08157E88: .4byte gActiveBattler -_08157E8C: .4byte gBattleBufferA + 3 -_08157E90: - ldr r0, _08157EA4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157EA8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x38 - bl SetMonData - b _0815809A - .align 2, 0 -_08157EA4: .4byte gActiveBattler -_08157EA8: .4byte gBattleBufferA + 3 -_08157EAC: - ldr r0, _08157EC0 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157EC4 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x39 - bl SetMonData - b _0815809A - .align 2, 0 -_08157EC0: .4byte gActiveBattler -_08157EC4: .4byte gBattleBufferA + 3 -_08157EC8: - ldr r0, _08157EDC @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157EE0 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x3A - bl SetMonData - b _0815809A - .align 2, 0 -_08157EDC: .4byte gActiveBattler -_08157EE0: .4byte gBattleBufferA + 3 -_08157EE4: - ldr r0, _08157EF8 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157EFC @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x3B - bl SetMonData - b _0815809A - .align 2, 0 -_08157EF8: .4byte gActiveBattler -_08157EFC: .4byte gBattleBufferA + 3 -_08157F00: - ldr r0, _08157F14 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157F18 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x3C - bl SetMonData - b _0815809A - .align 2, 0 -_08157F14: .4byte gActiveBattler -_08157F18: .4byte gBattleBufferA + 3 -_08157F1C: - ldr r0, _08157F30 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157F34 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x3D - bl SetMonData - b _0815809A - .align 2, 0 -_08157F30: .4byte gActiveBattler -_08157F34: .4byte gBattleBufferA + 3 -_08157F38: - ldr r0, _08157F4C @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157F50 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x3E - bl SetMonData - b _0815809A - .align 2, 0 -_08157F4C: .4byte gActiveBattler -_08157F50: .4byte gBattleBufferA + 3 -_08157F54: - ldr r0, _08157F68 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157F6C @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x3F - bl SetMonData - b _0815809A - .align 2, 0 -_08157F68: .4byte gActiveBattler -_08157F6C: .4byte gBattleBufferA + 3 -_08157F70: - ldr r0, _08157F84 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157F88 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x16 - bl SetMonData - b _0815809A - .align 2, 0 -_08157F84: .4byte gActiveBattler -_08157F88: .4byte gBattleBufferA + 3 -_08157F8C: - ldr r0, _08157FA0 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157FA4 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x17 - bl SetMonData - b _0815809A - .align 2, 0 -_08157FA0: .4byte gActiveBattler -_08157FA4: .4byte gBattleBufferA + 3 -_08157FA8: - ldr r0, _08157FBC @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157FC0 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x18 - bl SetMonData - b _0815809A - .align 2, 0 -_08157FBC: .4byte gActiveBattler -_08157FC0: .4byte gBattleBufferA + 3 -_08157FC4: - ldr r0, _08157FD8 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157FDC @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x21 - bl SetMonData - b _0815809A - .align 2, 0 -_08157FD8: .4byte gActiveBattler -_08157FDC: .4byte gBattleBufferA + 3 -_08157FE0: - ldr r0, _08157FF4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08157FF8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x2F - bl SetMonData - b _0815809A - .align 2, 0 -_08157FF4: .4byte gActiveBattler -_08157FF8: .4byte gBattleBufferA + 3 -_08157FFC: - ldr r0, _08158010 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08158014 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x30 - bl SetMonData - b _0815809A - .align 2, 0 -_08158010: .4byte gActiveBattler -_08158014: .4byte gBattleBufferA + 3 -_08158018: - ldr r0, _0815802C @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08158030 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x32 - bl SetMonData - b _0815809A - .align 2, 0 -_0815802C: .4byte gActiveBattler -_08158030: .4byte gBattleBufferA + 3 -_08158034: - ldr r0, _08158048 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _0815804C @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x33 - bl SetMonData - b _0815809A - .align 2, 0 -_08158048: .4byte gActiveBattler -_0815804C: .4byte gBattleBufferA + 3 -_08158050: - ldr r0, _08158064 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08158068 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x34 - bl SetMonData - b _0815809A - .align 2, 0 -_08158064: .4byte gActiveBattler -_08158068: .4byte gBattleBufferA + 3 -_0815806C: - ldr r0, _08158080 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _08158084 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x35 - bl SetMonData - b _0815809A - .align 2, 0 -_08158080: .4byte gActiveBattler -_08158084: .4byte gBattleBufferA + 3 -_08158088: - ldr r0, _081580C4 @ =gActiveBattler - ldrb r2, [r0] - lsls r2, 9 - ldr r0, _081580C8 @ =gBattleBufferA + 3 - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x36 - bl SetMonData -_0815809A: - ldr r2, _081580CC @ =gBattlerPartyIndexes - ldr r0, _081580C4 @ =gActiveBattler - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _081580D0 @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081580C4: .4byte gActiveBattler -_081580C8: .4byte gBattleBufferA + 3 -_081580CC: .4byte gBattlerPartyIndexes -_081580D0: .4byte gPlayerParty - thumb_func_end sub_81577B4 - - thumb_func_start sub_81580D4 -sub_81580D4: @ 81580D4 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_81580D4 - - thumb_func_start sub_81580E0 -sub_81580E0: @ 81580E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r6, _08158214 @ =gActiveBattler - ldrb r0, [r6] - lsls r0, 1 - ldr r1, _08158218 @ =gBattlerPartyIndexes - adds r0, r1 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r2, _0815821C @ =gEnemyParty - mov r10, r2 - add r0, r10 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r6] - lsls r0, r1, 1 - ldr r2, _08158218 @ =gBattlerPartyIndexes - adds r0, r2 - ldrh r0, [r0] - muls r0, r7 - add r0, r10 - bl BattleLoadOpponentMonSpriteGfx - ldrb r0, [r6] - bl GetBattlerSpriteDefault_Y - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _08158220 @ =gMultiuseSpriteTemplate - mov r9, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl GetBattlerSpriteCoord - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl GetBattlerSpriteSubpriority - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r4, 0 - adds r2, r5, 0 - bl CreateSprite - ldr r4, _08158224 @ =gBattlerSpriteIds - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, _08158228 @ =gSprites - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0815822C @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08158230 @ =gBattleMonForms - adds r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldrb r4, [r6] - lsls r0, r4, 1 - ldr r2, _08158218 @ =gBattlerPartyIndexes - adds r0, r2 - ldrh r0, [r0] - muls r0, r7 - add r0, r10 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl SetBattlerShadowSpriteCallback - ldr r1, _08158234 @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158238 @ =sub_8156184 - str r1, [r0] - bl PlayerPartnerBufferExecCompleted - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08158214: .4byte gActiveBattler -_08158218: .4byte gBattlerPartyIndexes -_0815821C: .4byte gEnemyParty -_08158220: .4byte gMultiuseSpriteTemplate -_08158224: .4byte gBattlerSpriteIds -_08158228: .4byte gSprites -_0815822C: .4byte 0x0000ff10 -_08158230: .4byte gBattleMonForms -_08158234: .4byte gBattlerControllerFuncs -_08158238: .4byte sub_8156184 - thumb_func_end sub_81580E0 - - thumb_func_start sub_815823C -sub_815823C: @ 815823C - push {r4,r5,lr} - ldr r5, _081582A0 @ =gActiveBattler - ldrb r0, [r5] - ldr r4, _081582A4 @ =gBattleBufferA - lsls r1, r0, 9 - adds r2, r4, 0x2 - adds r1, r2 - ldrb r1, [r1] - bl ClearTemporarySpeciesSpriteData - ldr r2, _081582A8 @ =gBattlerPartyIndexes - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _081582AC @ =gPlayerParty - adds r0, r2 - bl BattleLoadPlayerMonSpriteGfx - ldr r1, _081582B0 @ =gActionSelectionCursor - ldrb r0, [r5] - adds r0, r1 - strb r4, [r0] - ldr r1, _081582B4 @ =gMoveSelectionCursor - ldrb r0, [r5] - adds r0, r1 - strb r4, [r0] - ldrb r0, [r5] - bl sub_8159478 - ldr r1, _081582B8 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _081582BC @ =sub_81563A8 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081582A0: .4byte gActiveBattler -_081582A4: .4byte gBattleBufferA -_081582A8: .4byte gBattlerPartyIndexes -_081582AC: .4byte gPlayerParty -_081582B0: .4byte gActionSelectionCursor -_081582B4: .4byte gMoveSelectionCursor -_081582B8: .4byte gBattlerControllerFuncs -_081582BC: .4byte sub_81563A8 - thumb_func_end sub_815823C - - thumb_func_start sub_81582C0 -sub_81582C0: @ 81582C0 - push {r4-r6,lr} - ldr r0, _081582EC @ =gBattleBufferA - ldr r6, _081582F0 @ =gActiveBattler - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _081582FC - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl InitAndLaunchSpecialAnimation - ldr r0, _081582F4 @ =gBattlerControllerFuncs - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _081582F8 @ =sub_8156F7C - str r0, [r1] - b _08158332 - .align 2, 0 -_081582EC: .4byte gBattleBufferA -_081582F0: .4byte gActiveBattler -_081582F4: .4byte gBattlerControllerFuncs -_081582F8: .4byte sub_8156F7C -_081582FC: - ldr r5, _08158338 @ =gBattlerSpriteIds - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0815833C @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _08158340 @ =gHealthboxSpriteIds - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl PlayerPartnerBufferExecCompleted -_08158332: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08158338: .4byte gBattlerSpriteIds -_0815833C: .4byte gSprites -_08158340: .4byte gHealthboxSpriteIds - thumb_func_end sub_81582C0 - - thumb_func_start sub_8158344 -sub_8158344: @ 8158344 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _081583D8 @ =gActiveBattler - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _081583F0 - ldrb r1, [r7] - movs r0, 0x4 - bl DecompressTrainerBackPalette - ldrb r0, [r7] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x4 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _081583DC @ =gMultiuseSpriteTemplate - ldr r1, _081583E0 @ =gTrainerBackPicCoords - ldrb r1, [r1, 0x10] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r5, _081583E4 @ =gBattlerSpriteIds - ldrb r1, [r7] - adds r1, r5 - strb r0, [r1] - ldr r4, _081583E8 @ =gSprites - ldrb r0, [r7] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r7] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _081583EC @ =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r3, [r7] - adds r0, r3, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - b _081584E2 - .align 2, 0 -_081583D8: .4byte gActiveBattler -_081583DC: .4byte gMultiuseSpriteTemplate -_081583E0: .4byte gTrainerBackPicCoords -_081583E4: .4byte gBattlerSpriteIds -_081583E8: .4byte gSprites -_081583EC: .4byte 0x0000fffe -_081583F0: - ldrb r1, [r7] - movs r0, 0x84 - bl DecompressTrainerFrontPic - ldrb r0, [r7] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x84 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r5, _08158510 @ =gMultiuseSpriteTemplate - ldr r0, _08158514 @ =gTrainerFrontPicCoords - movs r1, 0x84 - mov r8, r1 - movs r1, 0x84 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 14 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r7] - bl GetBattlerSpriteSubpriority - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - movs r1, 0xB0 - adds r2, r4, 0 - bl CreateSprite - ldr r5, _08158518 @ =gBattlerSpriteIds - ldrb r1, [r7] - adds r1, r5 - strb r0, [r1] - ldr r4, _0815851C @ =gSprites - ldrb r0, [r7] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08158520 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r0, [r7] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldr r0, _08158524 @ =gTrainerFrontPicPaletteTable - mov r1, r8 - lsls r6, r1, 3 - adds r0, r6 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - ldrb r1, [r7] - adds r1, r5 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - ldrb r0, [r7] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1, 0x38] - ldr r0, _08158528 @ =gTrainerFrontPicTable - adds r0, r6 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - ldrb r1, [r7] - adds r1, r5 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _0815852C @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08158530 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - ldrb r0, [r7] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r8 - strh r1, [r0, 0x6] -_081584E2: - ldrb r0, [r7] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _08158534 @ =sub_8033EEC - str r1, [r0] - ldr r1, _08158538 @ =gBattlerControllerFuncs - ldr r0, _0815853C @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158540 @ =sub_815614C - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08158510: .4byte gMultiuseSpriteTemplate -_08158514: .4byte gTrainerFrontPicCoords -_08158518: .4byte gBattlerSpriteIds -_0815851C: .4byte gSprites -_08158520: .4byte 0x0000ff10 -_08158524: .4byte gTrainerFrontPicPaletteTable -_08158528: .4byte gTrainerFrontPicTable -_0815852C: .4byte 0x000003ff -_08158530: .4byte 0xfffffc00 -_08158534: .4byte sub_8033EEC -_08158538: .4byte gBattlerControllerFuncs -_0815853C: .4byte gActiveBattler -_08158540: .4byte sub_815614C - thumb_func_end sub_8158344 - - thumb_func_start sub_8158544 -sub_8158544: @ 8158544 - push {r4-r6,lr} - ldr r4, _081585EC @ =gActiveBattler - ldrb r1, [r4] - movs r0, 0x4 - bl DecompressTrainerBackPalette - ldrb r0, [r4] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x4 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _081585F0 @ =gMultiuseSpriteTemplate - ldr r1, _081585F4 @ =gTrainerBackPicCoords - ldrb r1, [r1, 0x10] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r6, _081585F8 @ =gBattlerSpriteIds - ldrb r1, [r4] - adds r1, r6 - strb r0, [r1] - ldr r5, _081585FC @ =gSprites - ldrb r3, [r4] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08158600 @ =0x0000ffa0 - strh r1, [r0, 0x24] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, 0x1C - adds r0, r5 - ldr r1, _08158604 @ =sub_8033EEC - str r1, [r0] - ldr r1, _08158608 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0815860C @ =sub_8156FEC - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081585EC: .4byte gActiveBattler -_081585F0: .4byte gMultiuseSpriteTemplate -_081585F4: .4byte gTrainerBackPicCoords -_081585F8: .4byte gBattlerSpriteIds -_081585FC: .4byte gSprites -_08158600: .4byte 0x0000ffa0 -_08158604: .4byte sub_8033EEC -_08158608: .4byte gBattlerControllerFuncs -_0815860C: .4byte sub_8156FEC - thumb_func_end sub_8158544 - - thumb_func_start sub_8158610 -sub_8158610: @ 8158610 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8158610 - - thumb_func_start sub_815861C -sub_815861C: @ 815861C - push {r4-r6,lr} - ldr r6, _08158668 @ =gBattleSpritesDataPtr - ldr r4, [r6] - ldr r5, _0815866C @ =gActiveBattler - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _08158670 - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08158650 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl InitAndLaunchSpecialAnimation -_08158650: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _0815872A - .align 2, 0 -_08158668: .4byte gBattleSpritesDataPtr -_0815866C: .4byte gActiveBattler -_08158670: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0815872A - strb r0, [r3, 0x4] - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081586FC - ldr r2, _081586E8 @ =gBattlerPartyIndexes - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _081586EC @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl PlaySE12WithPanning - ldr r2, _081586F0 @ =gSprites - ldr r3, _081586F4 @ =gBattlerSpriteIds - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _081586F8 @ =sub_8012110 - b _0815871A - .align 2, 0 -_081586E8: .4byte gBattlerPartyIndexes -_081586EC: .4byte gPlayerParty -_081586F0: .4byte gSprites -_081586F4: .4byte gBattlerSpriteIds -_081586F8: .4byte sub_8012110 -_081586FC: - movs r0, 0x10 - movs r1, 0x3F - bl PlaySE12WithPanning - ldr r2, _08158730 @ =gSprites - ldr r1, _08158734 @ =gBattlerSpriteIds - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08158738 @ =SpriteCB_FaintOpponentMon -_0815871A: - str r1, [r0] - ldr r1, _0815873C @ =gBattlerControllerFuncs - ldr r0, _08158740 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158744 @ =sub_8156DCC - str r1, [r0] -_0815872A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08158730: .4byte gSprites -_08158734: .4byte gBattlerSpriteIds -_08158738: .4byte SpriteCB_FaintOpponentMon -_0815873C: .4byte gBattlerControllerFuncs -_08158740: .4byte gActiveBattler -_08158744: .4byte sub_8156DCC - thumb_func_end sub_815861C - - thumb_func_start sub_8158748 -sub_8158748: @ 8158748 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8158748 - - thumb_func_start sub_8158754 -sub_8158754: @ 8158754 - push {r4,r5,lr} - ldr r0, _08158794 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x8] - movs r0, 0x4 - strb r0, [r1, 0x8] - ldr r1, _08158798 @ =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldr r5, _0815879C @ =gActiveBattler - ldrb r4, [r5] - movs r0, 0x1 - bl GetBattlerAtPosition - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x3 - bl InitAndLaunchSpecialAnimation - ldr r1, _081587A0 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _081587A4 @ =sub_8156484 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08158794: .4byte gBattleSpritesDataPtr -_08158798: .4byte gDoingBattleAnim -_0815879C: .4byte gActiveBattler -_081587A0: .4byte gBattlerControllerFuncs -_081587A4: .4byte sub_8156484 - thumb_func_end sub_8158754 - - thumb_func_start sub_81587A8 -sub_81587A8: @ 81587A8 - push {r4,r5,lr} - ldr r1, _081587F0 @ =gBattleBufferA - ldr r5, _081587F4 @ =gActiveBattler - ldrb r0, [r5] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _081587F8 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - strb r1, [r0, 0x8] - ldr r1, _081587FC @ =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, 0x1 - bl GetBattlerAtPosition - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x3 - bl InitAndLaunchSpecialAnimation - ldr r1, _08158800 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158804 @ =sub_8156484 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081587F0: .4byte gBattleBufferA -_081587F4: .4byte gActiveBattler -_081587F8: .4byte gBattleSpritesDataPtr -_081587FC: .4byte gDoingBattleAnim -_08158800: .4byte gBattlerControllerFuncs -_08158804: .4byte sub_8156484 - thumb_func_end sub_81587A8 - - thumb_func_start sub_8158808 -sub_8158808: @ 8158808 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8158808 - - thumb_func_start sub_8158814 -sub_8158814: @ 8158814 - push {r4-r6,lr} - ldr r0, _081588E8 @ =gBattleBufferA - mov r12, r0 - ldr r6, _081588EC @ =gActiveBattler - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _081588F0 @ =gAnimMoveTurn - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _081588F4 @ =gAnimMovePower - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _081588F8 @ =gAnimMoveDmg - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _081588FC @ =gAnimFriendship - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _08158900 @ =gWeatherMoveAnim - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _08158904 @ =gAnimDisableStructPtr - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _08158908 @ =gTransformedPersonalities - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl IsMoveWithoutAnimation - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0815890C - bl PlayerPartnerBufferExecCompleted - b _0815892A - .align 2, 0 -_081588E8: .4byte gBattleBufferA -_081588EC: .4byte gActiveBattler -_081588F0: .4byte gAnimMoveTurn -_081588F4: .4byte gAnimMovePower -_081588F8: .4byte gAnimMoveDmg -_081588FC: .4byte gAnimFriendship -_08158900: .4byte gWeatherMoveAnim -_08158904: .4byte gAnimDisableStructPtr -_08158908: .4byte gTransformedPersonalities -_0815890C: - ldr r0, _08158930 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, _08158934 @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158938 @ =sub_815893C - str r1, [r0] -_0815892A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08158930: .4byte gBattleSpritesDataPtr -_08158934: .4byte gBattlerControllerFuncs -_08158938: .4byte sub_815893C - thumb_func_end sub_8158814 - - thumb_func_start sub_815893C -sub_815893C: @ 815893C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _08158980 @ =gBattleBufferA - ldr r6, _08158984 @ =gActiveBattler - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r2, 0x2 - mov r8, r2 - add r1, r8 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r7, _08158988 @ =gBattleSpritesDataPtr - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _081589C6 - cmp r2, 0x1 - bgt _0815898C - cmp r2, 0 - beq _08158996 - b _08158A7C - .align 2, 0 -_08158980: .4byte gBattleBufferA -_08158984: .4byte gActiveBattler -_08158988: .4byte gBattleSpritesDataPtr -_0815898C: - cmp r2, 0x2 - beq _081589F0 - cmp r2, 0x3 - beq _08158A40 - b _08158A7C -_08158996: - ldr r1, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081589B2 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x5 - bl InitAndLaunchSpecialAnimation -_081589B2: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _08158A7C -_081589C6: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08158A7C - movs r0, 0 - bl sub_8035450 - adds r0, r4, 0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _08158A7C -_081589F0: - ldr r0, _08158A38 @ =gAnimScriptCallback - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08158A3C @ =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _08158A7C - movs r0, 0x1 - bl sub_8035450 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08158A24 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl InitAndLaunchSpecialAnimation -_08158A24: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08158A7C - .align 2, 0 -_08158A38: .4byte gAnimScriptCallback -_08158A3C: .4byte gAnimScriptActive -_08158A40: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08158A7C - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl PlayerPartnerBufferExecCompleted -_08158A7C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_815893C - - thumb_func_start sub_8158A88 -sub_8158A88: @ 8158A88 - push {r4,lr} - ldr r0, _08158ABC @ =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, _08158AC0 @ =gBattle_BG0_Y - strh r1, [r0] - ldr r0, _08158AC4 @ =gActiveBattler - ldrb r4, [r0] - lsls r4, 9 - ldr r0, _08158AC8 @ =gBattleBufferA + 2 - adds r4, r0 - ldrh r0, [r4] - bl BufferStringBattle - ldrh r0, [r4] - bl sub_80D89B0 - lsls r0, 24 - cmp r0, 0 - beq _08158AD0 - ldr r0, _08158ACC @ =gDisplayedStringBattle - movs r1, 0x40 - bl BattlePutTextOnWindow - b _08158AD8 - .align 2, 0 -_08158ABC: .4byte gBattle_BG0_X -_08158AC0: .4byte gBattle_BG0_Y -_08158AC4: .4byte gActiveBattler -_08158AC8: .4byte gBattleBufferA + 2 -_08158ACC: .4byte gDisplayedStringBattle -_08158AD0: - ldr r0, _08158AEC @ =gDisplayedStringBattle - movs r1, 0 - bl BattlePutTextOnWindow -_08158AD8: - ldr r1, _08158AF0 @ =gBattlerControllerFuncs - ldr r0, _08158AF4 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158AF8 @ =sub_815623C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158AEC: .4byte gDisplayedStringBattle -_08158AF0: .4byte gBattlerControllerFuncs -_08158AF4: .4byte gActiveBattler -_08158AF8: .4byte sub_815623C - thumb_func_end sub_8158A88 - - thumb_func_start sub_8158AFC -sub_8158AFC: @ 8158AFC - push {lr} - ldr r0, _08158B14 @ =gActiveBattler - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08158B18 - bl sub_8158A88 - b _08158B1C - .align 2, 0 -_08158B14: .4byte gActiveBattler -_08158B18: - bl PlayerPartnerBufferExecCompleted -_08158B1C: - pop {r0} - bx r0 - thumb_func_end sub_8158AFC - - thumb_func_start sub_8158B20 -sub_8158B20: @ 8158B20 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08158B46 - ldr r0, _08158B4C @ =gBattle_BG0_X - strh r1, [r0] - ldr r1, _08158B50 @ =gBattle_BG0_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r1, _08158B54 @ =gBattlerControllerFuncs - ldr r0, _08158B58 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158B5C @ =sub_8156140 - str r1, [r0] -_08158B46: - pop {r0} - bx r0 - .align 2, 0 -_08158B4C: .4byte gBattle_BG0_X -_08158B50: .4byte gBattle_BG0_Y -_08158B54: .4byte gBattlerControllerFuncs -_08158B58: .4byte gActiveBattler -_08158B5C: .4byte sub_8156140 - thumb_func_end sub_8158B20 - - thumb_func_start sub_8158B60 -sub_8158B60: @ 8158B60 - push {r4,lr} - ldr r4, _08158BBC @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08158BDC - ldr r1, _08158BC0 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158BC4 @ =sub_8158B20 - str r1, [r0] - ldr r0, _08158BC8 @ =gUnknown_83FDA4C - movs r1, 0 - bl BattlePutTextOnWindow - ldr r0, _08158BCC @ =gUnknown_83FE725 - movs r1, 0x2 - bl BattlePutTextOnWindow - movs r4, 0 -_08158B8E: - lsls r0, r4, 24 - lsrs r0, 24 - bl ActionSelectionDestroyCursorAt - adds r4, 0x1 - cmp r4, 0x3 - ble _08158B8E - ldr r1, _08158BD0 @ =gActionSelectionCursor - ldr r0, _08158BBC @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl ActionSelectionCreateCursorAt - ldr r0, _08158BD4 @ =gText_WhatWillPkmnDo - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _08158BD8 @ =gDisplayedStringBattle - movs r1, 0x1 - bl BattlePutTextOnWindow - b _08158BE8 - .align 2, 0 -_08158BBC: .4byte gActiveBattler -_08158BC0: .4byte gBattlerControllerFuncs -_08158BC4: .4byte sub_8158B20 -_08158BC8: .4byte gUnknown_83FDA4C -_08158BCC: .4byte gUnknown_83FE725 -_08158BD0: .4byte gActionSelectionCursor -_08158BD4: .4byte gText_WhatWillPkmnDo -_08158BD8: .4byte gDisplayedStringBattle -_08158BDC: - ldr r0, _08158BF0 @ =gBattlerControllerFuncs - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _08158BF4 @ =sub_8156140 - str r0, [r1] -_08158BE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158BF0: .4byte gBattlerControllerFuncs -_08158BF4: .4byte sub_8156140 - thumb_func_end sub_8158B60 - - thumb_func_start sub_8158BF8 -sub_8158BF8: @ 8158BF8 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8158BF8 - - thumb_func_start sub_8158C04 -sub_8158C04: @ 8158C04 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08158C2E - ldr r0, _08158C34 @ =gBattle_BG0_X - strh r1, [r0] - ldr r1, _08158C38 @ =gBattle_BG0_Y - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08158C3C @ =gBattlerControllerFuncs - ldr r0, _08158C40 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158C44 @ =sub_81564E4 - str r1, [r0] -_08158C2E: - pop {r0} - bx r0 - .align 2, 0 -_08158C34: .4byte gBattle_BG0_X -_08158C38: .4byte gBattle_BG0_Y -_08158C3C: .4byte gBattlerControllerFuncs -_08158C40: .4byte gActiveBattler -_08158C44: .4byte sub_81564E4 - thumb_func_end sub_8158C04 - - thumb_func_start sub_8158C48 -sub_8158C48: @ 8158C48 - push {r4,lr} - ldr r4, _08158C68 @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08158C74 - bl InitMoveSelectionsVarsAndStrings - ldr r0, _08158C6C @ =gBattlerControllerFuncs - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _08158C70 @ =sub_8158C04 - b _08158C7E - .align 2, 0 -_08158C68: .4byte gActiveBattler -_08158C6C: .4byte gBattlerControllerFuncs -_08158C70: .4byte sub_8158C04 -_08158C74: - ldr r0, _08158C88 @ =gBattlerControllerFuncs - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _08158C8C @ =sub_81564E4 -_08158C7E: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158C88: .4byte gBattlerControllerFuncs -_08158C8C: .4byte sub_81564E4 - thumb_func_end sub_8158C48 - - thumb_func_start sub_8158C90 -sub_8158C90: @ 8158C90 - 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, _08158CDC @ =gBattlerControllerFuncs - ldr r2, _08158CE0 @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158CE4 @ =sub_8156594 - str r1, [r0] - ldr r1, _08158CE8 @ =gBattlerInMenuId - ldrb r0, [r2] - strb r0, [r1] - movs r3, 0 - ldr r5, _08158CEC @ =gUnknown_203B0DC - ldr r4, _08158CF0 @ =gBattleBufferA -_08158CBE: - 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 _08158CBE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08158CDC: .4byte gBattlerControllerFuncs -_08158CE0: .4byte gActiveBattler -_08158CE4: .4byte sub_8156594 -_08158CE8: .4byte gBattlerInMenuId -_08158CEC: .4byte gUnknown_203B0DC -_08158CF0: .4byte gBattleBufferA - thumb_func_end sub_8158C90 - - thumb_func_start sub_8158CF4 -sub_8158CF4: @ 8158CF4 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _08158DA4 @ =TaskDummy - movs r1, 0xFF - bl CreateTask - ldr r3, _08158DA8 @ =gUnknown_3004FFC - ldr r4, _08158DAC @ =gActiveBattler - ldrb r1, [r4] - adds r1, r3 - strb r0, [r1] - ldr r5, _08158DB0 @ =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, _08158DB4 @ =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, _08158DB8 @ =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 r2, [r3] - adds r2, 0xAC - ldrb r0, [r4] - lsls r0, 9 - adds r1, r5, 0x3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r2, 0 - ldr r3, _08158DBC @ =gUnknown_203B0DC -_08158D60: - adds r0, r2, r3 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x2 - ble _08158D60 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08158DC0 @ =gBattlerControllerFuncs - ldr r2, _08158DAC @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158DC4 @ =sub_81564F0 - str r1, [r0] - ldr r1, _08158DC8 @ =gBattlerInMenuId - ldrb r0, [r2] - strb r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08158DA4: .4byte TaskDummy -_08158DA8: .4byte gUnknown_3004FFC -_08158DAC: .4byte gActiveBattler -_08158DB0: .4byte gTasks -_08158DB4: .4byte gBattleBufferA -_08158DB8: .4byte gBattleStruct -_08158DBC: .4byte gUnknown_203B0DC -_08158DC0: .4byte gBattlerControllerFuncs -_08158DC4: .4byte sub_81564F0 -_08158DC8: .4byte gBattlerInMenuId - thumb_func_end sub_8158CF4 - - thumb_func_start sub_8158DCC -sub_8158DCC: @ 8158DCC - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8158DCC - - thumb_func_start sub_8158DD8 -sub_8158DD8: @ 8158DD8 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _08158DFC @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08158E08 - ldr r1, _08158E00 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08158E04 @ =gPlayerParty - b _08158E18 - .align 2, 0 -_08158DFC: .4byte gActiveBattler -_08158E00: .4byte gBattlerPartyIndexes -_08158E04: .4byte gPlayerParty -_08158E08: - ldr r1, _08158E68 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08158E6C @ =gEnemyParty -_08158E18: - adds r5, r1, r0 - movs r0, 0 - bl LoadBattleBarGfx - ldr r3, _08158E70 @ =gBattleBufferA - ldr r7, _08158E74 @ =gActiveBattler - ldrb r1, [r7] - 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 r6, r2, 16 - ldr r0, _08158E78 @ =0x00007fff - cmp r6, r0 - beq _08158E80 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - ldrb r0, [r7] - ldr r1, _08158E7C @ =gHealthboxSpriteIds - adds r1, r0, r1 - ldrb r1, [r1] - str r6, [sp] - adds r2, r4, 0 - bl SetBattleBarStruct - b _08158EA8 - .align 2, 0 -_08158E68: .4byte gBattlerPartyIndexes -_08158E6C: .4byte gEnemyParty -_08158E70: .4byte gBattleBufferA -_08158E74: .4byte gActiveBattler -_08158E78: .4byte 0x00007fff -_08158E7C: .4byte gHealthboxSpriteIds -_08158E80: - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - ldrb r0, [r7] - ldr r4, _08158EC0 @ =gHealthboxSpriteIds - adds r1, r0, r4 - ldrb r1, [r1] - str r6, [sp] - movs r3, 0 - bl SetBattleBarStruct - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl UpdateHpTextInHealthbox -_08158EA8: - ldr r1, _08158EC4 @ =gBattlerControllerFuncs - ldr r0, _08158EC8 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158ECC @ =sub_8156E78 - str r1, [r0] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08158EC0: .4byte gHealthboxSpriteIds -_08158EC4: .4byte gBattlerControllerFuncs -_08158EC8: .4byte gActiveBattler -_08158ECC: .4byte sub_8156E78 - thumb_func_end sub_8158DD8 - - thumb_func_start sub_8158ED0 -sub_8158ED0: @ 8158ED0 - push {r4-r7,lr} - ldr r5, _08158EFC @ =gBattleBufferA - ldr r6, _08158F00 @ =gActiveBattler - 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, _08158F04 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x63 - bls _08158F08 - bl PlayerPartnerBufferExecCompleted - b _08158F54 - .align 2, 0 -_08158EFC: .4byte gBattleBufferA -_08158F00: .4byte gActiveBattler -_08158F04: .4byte gPlayerParty -_08158F08: - 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, _08158F5C @ =sub_81568DC - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08158F60 @ =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, _08158F64 @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08158F68 @ =nullsub_99 - str r1, [r0] -_08158F54: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08158F5C: .4byte sub_81568DC -_08158F60: .4byte gTasks -_08158F64: .4byte gBattlerControllerFuncs -_08158F68: .4byte nullsub_99 - thumb_func_end sub_8158ED0 - - thumb_func_start sub_8158F6C -sub_8158F6C: @ 8158F6C - push {r4,lr} - ldr r4, _08158F9C @ =gActiveBattler - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08158FF2 - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08158FA8 - ldr r1, _08158FA0 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08158FA4 @ =gPlayerParty - b _08158FB8 - .align 2, 0 -_08158F9C: .4byte gActiveBattler -_08158FA0: .4byte gBattlerPartyIndexes -_08158FA4: .4byte gPlayerParty -_08158FA8: - ldr r1, _08158FF8 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08158FFC @ =gEnemyParty -_08158FB8: - adds r2, r1, r0 - ldr r1, _08159000 @ =gHealthboxSpriteIds - ldr r4, _08159004 @ =gActiveBattler - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - adds r1, r2, 0 - movs r2, 0x9 - bl UpdateHealthboxAttribute - ldrb r2, [r4] - ldr r0, _08159008 @ =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, _0815900C @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08159010 @ =sub_8157054 - str r1, [r0] -_08158FF2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08158FF8: .4byte gBattlerPartyIndexes -_08158FFC: .4byte gEnemyParty -_08159000: .4byte gHealthboxSpriteIds -_08159004: .4byte gActiveBattler -_08159008: .4byte gBattleSpritesDataPtr -_0815900C: .4byte gBattlerControllerFuncs -_08159010: .4byte sub_8157054 - thumb_func_end sub_8158F6C - - thumb_func_start sub_8159014 -sub_8159014: @ 8159014 - push {r4,r5,lr} - ldr r5, _0815906C @ =gActiveBattler - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08159064 - ldr r4, _08159070 @ =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 InitAndLaunchChosenStatusAnimation - ldr r1, _08159074 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08159078 @ =sub_8157054 - str r1, [r0] -_08159064: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0815906C: .4byte gActiveBattler -_08159070: .4byte gBattleBufferA -_08159074: .4byte gBattlerControllerFuncs -_08159078: .4byte sub_8157054 - thumb_func_end sub_8159014 - - thumb_func_start sub_815907C -sub_815907C: @ 815907C - push {r4,lr} - sub sp, 0x4 - ldr r4, _081590A0 @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _081590AC - ldr r1, _081590A4 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _081590A8 @ =gPlayerParty - b _081590BC - .align 2, 0 -_081590A0: .4byte gActiveBattler -_081590A4: .4byte gBattlerPartyIndexes -_081590A8: .4byte gPlayerParty -_081590AC: - ldr r1, _081590F0 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _081590F4 @ =gEnemyParty -_081590BC: - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - ldr r2, _081590F8 @ =gBattleBufferA - ldr r1, _081590FC @ =gActiveBattler - ldrb r1, [r1] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - eors r0, r1 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - bl PlayerPartnerBufferExecCompleted - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081590F0: .4byte gBattlerPartyIndexes -_081590F4: .4byte gEnemyParty -_081590F8: .4byte gBattleBufferA -_081590FC: .4byte gActiveBattler - thumb_func_end sub_815907C - - thumb_func_start sub_8159100 -sub_8159100: @ 8159100 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159100 - - thumb_func_start sub_815910C -sub_815910C: @ 815910C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_815910C - - thumb_func_start sub_8159118 -sub_8159118: @ 8159118 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159118 - - thumb_func_start sub_8159124 -sub_8159124: @ 8159124 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159124 - - thumb_func_start sub_8159130 -sub_8159130: @ 8159130 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159130 - - thumb_func_start sub_815913C -sub_815913C: @ 815913C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_815913C - - thumb_func_start sub_8159148 -sub_8159148: @ 8159148 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159148 - - thumb_func_start sub_8159154 -sub_8159154: @ 8159154 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159154 - - thumb_func_start sub_8159160 -sub_8159160: @ 8159160 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159160 - - thumb_func_start sub_815916C -sub_815916C: @ 815916C - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_815916C - - thumb_func_start sub_8159178 -sub_8159178: @ 8159178 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159178 - - thumb_func_start sub_8159184 -sub_8159184: @ 8159184 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159184 - - thumb_func_start sub_8159190 -sub_8159190: @ 8159190 - push {r4,lr} - ldr r3, _081591B8 @ =gSprites - ldr r2, _081591BC @ =gBattlerSpriteIds - ldr r4, _081591C0 @ =gActiveBattler - 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 _081591C4 - bl PlayerPartnerBufferExecCompleted - b _081591EE - .align 2, 0 -_081591B8: .4byte gSprites -_081591BC: .4byte gBattlerSpriteIds -_081591C0: .4byte gActiveBattler -_081591C4: - ldr r1, _081591F4 @ =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 DoHitAnimHealthboxEffect - ldr r1, _081591F8 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _081591FC @ =sub_8156F00 - str r1, [r0] -_081591EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081591F4: .4byte gDoingBattleAnim -_081591F8: .4byte gBattlerControllerFuncs -_081591FC: .4byte sub_8156F00 - thumb_func_end sub_8159190 - - thumb_func_start sub_8159200 -sub_8159200: @ 8159200 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159200 - - thumb_func_start sub_815920C -sub_815920C: @ 815920C - push {lr} - ldr r2, _08159234 @ =gBattleBufferA - ldr r0, _08159238 @ =gActiveBattler - 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 PlaySE - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08159234: .4byte gBattleBufferA -_08159238: .4byte gActiveBattler - thumb_func_end sub_815920C - - thumb_func_start sub_815923C -sub_815923C: @ 815923C - push {lr} - ldr r2, _08159264 @ =gBattleBufferA - ldr r0, _08159268 @ =gActiveBattler - 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 PlayFanfare - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_08159264: .4byte gBattleBufferA -_08159268: .4byte gActiveBattler - thumb_func_end sub_815923C - - thumb_func_start sub_815926C -sub_815926C: @ 815926C - push {r4,lr} - ldr r4, _08159290 @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _0815929C - ldr r1, _08159294 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08159298 @ =gPlayerParty - b _081592AC - .align 2, 0 -_08159290: .4byte gActiveBattler -_08159294: .4byte gBattlerPartyIndexes -_08159298: .4byte gPlayerParty -_0815929C: - ldr r1, _081592C8 @ =gBattlerPartyIndexes - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _081592CC @ =gEnemyParty -_081592AC: - adds r0, r1, r0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl PlayCry1 - bl PlayerPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081592C8: .4byte gBattlerPartyIndexes -_081592CC: .4byte gEnemyParty - thumb_func_end sub_815926C - - thumb_func_start sub_81592D0 -sub_81592D0: @ 81592D0 - push {lr} - ldr r1, _081592F8 @ =gBattleBufferA - ldr r0, _081592FC @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _08159300 @ =gIntroSlideFlags - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_081592F8: .4byte gBattleBufferA -_081592FC: .4byte gActiveBattler -_08159300: .4byte gIntroSlideFlags - thumb_func_end sub_81592D0 - - thumb_func_start sub_8159304 -sub_8159304: @ 8159304 - push {r4-r7,lr} - ldr r6, _0815943C @ =gBattlerSpriteIds - ldr r7, _08159440 @ =gActiveBattler - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _08159444 @ =gSprites - adds r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - 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, _08159448 @ =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, _0815944C @ =StartAnimLinearTranslation - 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, _08159450 @ =sub_80335F8 - 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, _08159454 @ =0x0000d6f8 - bl AllocSpritePalette - adds r4, r0, 0 - lsls r4, 24 - ldr r0, _08159458 @ =gTrainerBackPicPaletteTable - ldr r0, [r0, 0x20] - 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, _0815945C @ =sub_81595EC - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08159460 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldr r3, _08159464 @ =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 _0815941C - ldr r0, _08159468 @ =gBattlerStatusSummaryTaskId - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _0815946C @ =Task_HidePartyStatusSummary - str r1, [r0] -_0815941C: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08159470 @ =gBattlerControllerFuncs - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _08159474 @ =nullsub_99 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815943C: .4byte gBattlerSpriteIds -_08159440: .4byte gActiveBattler -_08159444: .4byte gSprites -_08159448: .4byte 0x0000ffd8 -_0815944C: .4byte StartAnimLinearTranslation -_08159450: .4byte sub_80335F8 -_08159454: .4byte 0x0000d6f8 -_08159458: .4byte gTrainerBackPicPaletteTable -_0815945C: .4byte sub_81595EC -_08159460: .4byte gTasks -_08159464: .4byte gBattleSpritesDataPtr -_08159468: .4byte gBattlerStatusSummaryTaskId -_0815946C: .4byte Task_HidePartyStatusSummary -_08159470: .4byte gBattlerControllerFuncs -_08159474: .4byte nullsub_99 - thumb_func_end sub_8159304 - - thumb_func_start sub_8159478 -sub_8159478: @ 8159478 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _081595C0 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x2] - ldr r0, _081595C4 @ =gBattlerPartyIndexes - lsls r2, r6, 1 - adds r2, r0 - ldr r0, _081595C8 @ =gBattleBufferA - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081595CC @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _081595D0 @ =sub_8033E3C - bl CreateInvisibleSpriteWithCallback - ldr r1, _081595D4 @ =gUnknown_3004FFC - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _081595D8 @ =gMultiuseSpriteTemplate - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl GetBattlerSpriteCoord - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl GetBattlerSpriteSubpriority - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _081595DC @ =gBattlerSpriteIds - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _081595E0 @ =gSprites - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _081595E4 @ =gBattleMonForms - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _081595E8 @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl DoPokeballSendOutAnimation - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081595C0: .4byte gBattleSpritesDataPtr -_081595C4: .4byte gBattlerPartyIndexes -_081595C8: .4byte gBattleBufferA -_081595CC: .4byte gPlayerParty -_081595D0: .4byte sub_8033E3C -_081595D4: .4byte gUnknown_3004FFC -_081595D8: .4byte gMultiuseSpriteTemplate -_081595DC: .4byte gBattlerSpriteIds -_081595E0: .4byte gSprites -_081595E4: .4byte gBattleMonForms -_081595E8: .4byte SpriteCallbackDummy - thumb_func_end sub_8159478 - - thumb_func_start sub_81595EC -sub_81595EC: @ 81595EC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0815960C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x1E - bgt _08159610 - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _08159646 - .align 2, 0 -_0815960C: .4byte gTasks -_08159610: - ldr r4, _0815964C @ =gActiveBattler - ldrb r5, [r4] - ldrh r0, [r1, 0x8] - strb r0, [r4] - ldr r0, _08159650 @ =gBattleBufferA - ldrb r1, [r4] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _08159654 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r4] - bl sub_8159478 - ldr r1, _08159658 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0815965C @ =sub_8156624 - str r1, [r0] - strb r5, [r4] - adds r0, r6, 0 - bl DestroyTask -_08159646: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0815964C: .4byte gActiveBattler -_08159650: .4byte gBattleBufferA -_08159654: .4byte gBattlerPartyIndexes -_08159658: .4byte gBattlerControllerFuncs -_0815965C: .4byte sub_8156624 - thumb_func_end sub_81595EC - - thumb_func_start sub_8159660 -sub_8159660: @ 8159660 - push {r4,r5,lr} - ldr r1, _08159688 @ =gBattleBufferA - ldr r0, _0815968C @ =gActiveBattler - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08159690 - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08159690 - bl PlayerPartnerBufferExecCompleted - b _081596CE - .align 2, 0 -_08159688: .4byte gBattleBufferA -_0815968C: .4byte gActiveBattler -_08159690: - ldr r0, _081596D4 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r5, _081596D8 @ =gActiveBattler - 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 r4, r0, 9 - ldr r3, _081596DC @ =gBattleBufferA + 4 - adds r1, r4, r3 - subs r2, r3, 0x3 - adds r2, r4, r2 - ldrb r2, [r2] - subs r3, 0x2 - adds r4, r3 - ldrb r3, [r4] - bl CreatePartyStatusSummarySprites - ldr r2, _081596E0 @ =gBattlerStatusSummaryTaskId - ldrb r1, [r5] - adds r1, r2 - strb r0, [r1] - bl PlayerPartnerBufferExecCompleted -_081596CE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081596D4: .4byte gBattleSpritesDataPtr -_081596D8: .4byte gActiveBattler -_081596DC: .4byte gBattleBufferA + 4 -_081596E0: .4byte gBattlerStatusSummaryTaskId - thumb_func_end sub_8159660 - - thumb_func_start sub_81596E4 -sub_81596E4: @ 81596E4 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_81596E4 - - thumb_func_start sub_81596F0 -sub_81596F0: @ 81596F0 - push {r4,lr} - ldr r4, _08159710 @ =gActiveBattler - ldrb r0, [r4] - movs r1, 0x1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, 0 - bl EndBounceEffect - bl PlayerPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08159710: .4byte gActiveBattler - thumb_func_end sub_81596F0 - - thumb_func_start sub_8159714 -sub_8159714: @ 8159714 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_8159714 - - thumb_func_start sub_8159720 -sub_8159720: @ 8159720 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, _08159758 @ =gBattleBufferA - ldr r6, _0815975C @ =gActiveBattler - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, 24 - cmp r0, 0 - beq _08159760 - bl PlayerPartnerBufferExecCompleted - b _0815976C - .align 2, 0 -_08159758: .4byte gBattleBufferA -_0815975C: .4byte gActiveBattler -_08159760: - ldr r0, _08159774 @ =gBattlerControllerFuncs - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _08159778 @ =sub_8157024 - str r0, [r1] -_0815976C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08159774: .4byte gBattlerControllerFuncs -_08159778: .4byte sub_8157024 - thumb_func_end sub_8159720 - - thumb_func_start sub_815977C -sub_815977C: @ 815977C - push {r4,lr} - ldr r1, _081597B0 @ =gBattleBufferA - ldr r4, _081597B4 @ =gActiveBattler - ldrb r2, [r4] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - blt _081597A4 - cmp r0, 0x1 - bgt _081597A4 - adds r0, r2, 0 - movs r1, 0x1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, 0 - bl EndBounceEffect -_081597A4: - bl PlayerPartnerBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081597B0: .4byte gBattleBufferA -_081597B4: .4byte gActiveBattler - thumb_func_end sub_815977C - - thumb_func_start sub_81597B8 -sub_81597B8: @ 81597B8 - push {lr} - bl PlayerPartnerBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_81597B8 - - thumb_func_start sub_81597C4 -sub_81597C4: @ 81597C4 - push {r4,lr} - ldr r2, _08159808 @ =gBattleOutcome - ldr r1, _0815980C @ =gBattleBufferA - ldr r4, _08159810 @ =gActiveBattler - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl PlayerPartnerBufferExecCompleted - ldr r0, _08159814 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x6 - ands r0, r1 - cmp r0, 0x2 - bne _08159800 - ldr r0, _08159818 @ =gBattlerControllerFuncs - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _0815981C @ =sub_8156254 - str r0, [r1] -_08159800: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08159808: .4byte gBattleOutcome -_0815980C: .4byte gBattleBufferA -_08159810: .4byte gActiveBattler -_08159814: .4byte gBattleTypeFlags -_08159818: .4byte gBattlerControllerFuncs -_0815981C: .4byte sub_8156254 - thumb_func_end sub_81597C4 - - thumb_func_start nullsub_100 -nullsub_100: @ 8159820 - bx lr - thumb_func_end nullsub_100 - - thumb_func_start sub_8159824 -sub_8159824: @ 8159824 - push {r4-r7,lr} - ldr r1, _081598B4 @ =gUnknown_8479060 - ldr r0, _081598B8 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x96 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r7, [r0] - ldr r4, _081598BC @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _0815985C - ldrb r0, [r4] - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl DoBounceEffect - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x7 - movs r3, 0x1 - bl DoBounceEffect -_0815985C: - ldr r6, _081598C0 @ =gUnknown_3005EE0 - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r6 - ldr r1, [r0] - ldrb r0, [r1] - lsls r0, 3 - adds r0, r7 - adds r3, r0, r2 - ldrb r0, [r3, 0x4] - ldrb r1, [r1, 0x2] - cmp r0, r1 - bne _0815992C - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08159888 - movs r0, 0x5 - bl PlaySE -_08159888: - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x2] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081598D4 - cmp r0, 0x1 - bgt _081598C4 - cmp r0, 0 - beq _081598CE - b _081598F0 - .align 2, 0 -_081598B4: .4byte gUnknown_8479060 -_081598B8: .4byte gBattleStruct -_081598BC: .4byte gActiveBattler -_081598C0: .4byte gUnknown_3005EE0 -_081598C4: - cmp r0, 0x2 - beq _081598DA - cmp r0, 0x3 - beq _081598E6 - b _081598F0 -_081598CE: - movs r0, 0x1 - movs r1, 0 - b _081598DE -_081598D4: - movs r0, 0x1 - movs r1, 0x1 - b _081598DE -_081598DA: - movs r0, 0x1 - movs r1, 0x2 -_081598DE: - movs r2, 0 - bl BtlController_EmitTwoReturnValues - b _081598F0 -_081598E6: - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl BtlController_EmitTwoReturnValues -_081598F0: - bl PlayerPartnerBufferExecCompleted - ldr r3, _08159924 @ =gUnknown_3005EE0 - ldr r2, _08159928 @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r3 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r3 - ldr r2, [r0] - ldrb r0, [r2] - lsls r0, 3 - adds r0, r7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bne _08159984 - movs r0, 0 - strb r0, [r2] - b _08159984 - .align 2, 0 -_08159924: .4byte gUnknown_3005EE0 -_08159928: .4byte gActiveBattler -_0815992C: - ldr r5, _0815998C @ =gActionSelectionCursor - adds r0, r2, r5 - ldrb r0, [r0] - ldrb r2, [r3] - cmp r0, r2 - beq _08159972 - ldrb r0, [r3, 0x4] - lsrs r0, 1 - cmp r0, r1 - bne _08159972 - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl ActionSelectionDestroyCursorAt - ldrb r1, [r4] - adds r2, r1, r5 - lsls r0, r1, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r7 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl ActionSelectionCreateCursorAt -_08159972: - ldr r1, _08159990 @ =gUnknown_3005EE0 - ldr r0, _08159994 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] -_08159984: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815998C: .4byte gActionSelectionCursor -_08159990: .4byte gUnknown_3005EE0 -_08159994: .4byte gActiveBattler - thumb_func_end sub_8159824 - - thumb_func_start sub_8159998 -sub_8159998: @ 8159998 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _08159A38 @ =gUnknown_84790D8 - ldr r0, _08159A3C @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x96 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r7, [r0] - ldr r0, _08159A40 @ =gUnknown_3005EE0 - mov r8, r0 - ldr r6, _08159A44 @ =gActiveBattler - ldrb r2, [r6] - lsls r0, r2, 2 - add r0, r8 - ldr r1, [r0] - ldrb r0, [r1, 0x1] - lsls r0, 3 - adds r0, r7 - adds r3, r0, r2 - ldrb r0, [r3, 0x4] - ldrb r4, [r1, 0x2] - cmp r0, r4 - bne _08159A48 - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _081599DE - movs r0, 0x5 - bl PlaySE -_081599DE: - ldrb r0, [r6] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - movs r4, 0 - strb r4, [r0, 0x2] - ldrb r1, [r6] - lsls r0, r1, 2 - add r0, r8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 3 - adds r0, r7 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0x1 - eors r1, r0 - lsls r1, 8 - orrs r2, r1 - movs r0, 0x1 - movs r1, 0xA - bl BtlController_EmitTwoReturnValues - bl PlayerPartnerBufferExecCompleted - ldrb r0, [r6] - lsls r0, 2 - add r0, r8 - ldr r1, [r0] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - ldrb r1, [r6] - lsls r0, r1, 2 - add r0, r8 - ldr r2, [r0] - ldrb r0, [r2, 0x1] - lsls r0, 3 - adds r0, r7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08159AA0 - strb r4, [r2, 0x1] - b _08159AA0 - .align 2, 0 -_08159A38: .4byte gUnknown_84790D8 -_08159A3C: .4byte gBattleStruct -_08159A40: .4byte gUnknown_3005EE0 -_08159A44: .4byte gActiveBattler -_08159A48: - ldr r5, _08159AAC @ =gMoveSelectionCursor - adds r1, r2, r5 - ldrb r0, [r3] - ldrb r1, [r1] - cmp r0, r1 - beq _08159A8E - ldrb r0, [r3, 0x4] - lsrs r0, 1 - cmp r0, r4 - bne _08159A8E - movs r0, 0x5 - bl PlaySE - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl MoveSelectionDestroyCursorAt - ldrb r1, [r6] - adds r2, r1, r5 - lsls r0, r1, 2 - add r0, r8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 3 - adds r0, r7 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl MoveSelectionCreateCursorAt -_08159A8E: - ldr r1, _08159AB0 @ =gUnknown_3005EE0 - ldr r0, _08159AB4 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] -_08159AA0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08159AAC: .4byte gMoveSelectionCursor -_08159AB0: .4byte gUnknown_3005EE0 -_08159AB4: .4byte gActiveBattler - thumb_func_end sub_8159998 - - thumb_func_start sub_8159AB8 -sub_8159AB8: @ 8159AB8 - push {r4-r7,lr} - ldr r1, _08159B54 @ =gUnknown_8479198 - ldr r4, _08159B58 @ =gBattleStruct - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x96 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r6, [r0] - ldr r3, _08159B5C @ =gActiveBattler - ldrb r5, [r3] - lsls r1, r5, 9 - ldr r0, _08159B60 @ =gBattleBufferA + 2 - adds r7, r1, r0 - mov r12, r7 - subs r0, 0x2 - adds r1, r0 - adds r2, 0x97 - ldrb r0, [r2] - lsls r0, 3 - adds r0, r6 - ldrb r1, [r1] - adds r7, r4, 0 - adds r4, r3, 0 - ldrb r2, [r0] - cmp r1, r2 - bne _08159B70 - ldrb r2, [r0, 0x1] - cmp r5, r2 - bne _08159B70 - cmp r1, 0x10 - bne _08159B04 - ldrh r0, [r0, 0x2] - mov r1, r12 - ldrh r1, [r1] - cmp r0, r1 - bne _08159B70 -_08159B04: - ldr r0, [r7] - adds r3, r0, 0 - adds r3, 0x97 - ldrb r1, [r3] - lsls r0, r1, 3 - adds r0, r6 - ldr r2, [r0, 0x4] - cmp r2, 0 - beq _08159B6C - ldr r1, _08159B64 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - str r2, [r0] - ldr r2, _08159B68 @ =gUnknown_3005EE0 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - ldr r0, [r7] - adds r0, 0x97 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x2] - strb r0, [r1, 0x3] - ldr r1, [r7] - adds r1, 0x97 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - b _08159B72 - .align 2, 0 -_08159B54: .4byte gUnknown_8479198 -_08159B58: .4byte gBattleStruct -_08159B5C: .4byte gActiveBattler -_08159B60: .4byte gBattleBufferA + 2 -_08159B64: .4byte gBattlerControllerFuncs -_08159B68: .4byte gUnknown_3005EE0 -_08159B6C: - adds r0, r1, 0x1 - strb r0, [r3] -_08159B70: - movs r0, 0 -_08159B72: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8159AB8 - - thumb_func_start sub_8159B78 -sub_8159B78: @ 8159B78 - ldr r1, _08159B98 @ =gUnknown_3005EE0 - ldr r2, _08159B9C @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x2] - ldr r1, _08159BA0 @ =gBattlerControllerFuncs - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08159BA4 @ =sub_81560DC - str r1, [r0] - bx lr - .align 2, 0 -_08159B98: .4byte gUnknown_3005EE0 -_08159B9C: .4byte gActiveBattler -_08159BA0: .4byte gBattlerControllerFuncs -_08159BA4: .4byte sub_81560DC - thumb_func_end sub_8159B78 - - thumb_func_start sub_8159BA8 -sub_8159BA8: @ 8159BA8 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _08159BD0 @ =gUnknown_3005EE0 - ldr r2, _08159BD4 @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - adds r4, r2, 0 - cmp r0, 0x4 - bls _08159BC4 - b _08159CEE -_08159BC4: - lsls r0, 2 - ldr r1, _08159BD8 @ =_08159BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08159BD0: .4byte gUnknown_3005EE0 -_08159BD4: .4byte gActiveBattler -_08159BD8: .4byte _08159BDC - .align 2, 0 -_08159BDC: - .4byte _08159BF0 - .4byte _08159C14 - .4byte _08159C44 - .4byte _08159C64 - .4byte _08159CB4 -_08159BF0: - ldr r0, _08159C10 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08159CEE - movs r0, 0x81 - negs r0, r0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - b _08159C90 - .align 2, 0 -_08159C10: .4byte gPaletteFade -_08159C14: - ldr r0, _08159C3C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08159CEE - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - ldr r0, _08159C40 @ =gBattle_BG0_Y - ldrh r0, [r0] - strb r0, [r1, 0x4] - bl sub_80EB30C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - b _08159C9E - .align 2, 0 -_08159C3C: .4byte gPaletteFade -_08159C40: .4byte gBattle_BG0_Y -_08159C44: - ldr r1, _08159C5C @ =gBattle_BG0_Y - movs r0, 0 - strh r0, [r1] - bl sub_8159EF0 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _08159C60 @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _08159C94 - .align 2, 0 -_08159C5C: .4byte gBattle_BG0_Y -_08159C60: .4byte gDisplayedStringBattle -_08159C64: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _08159CEE - ldr r0, _08159CA8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08159CEE - movs r0, 0x5 - bl PlaySE - movs r0, 0x81 - negs r0, r0 - str r4, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 -_08159C90: - bl BeginNormalPaletteFade -_08159C94: - ldr r1, _08159CAC @ =gUnknown_3005EE0 - ldr r0, _08159CB0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 -_08159C9E: - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _08159CEE - .align 2, 0 -_08159CA8: .4byte gMain -_08159CAC: .4byte gUnknown_3005EE0 -_08159CB0: .4byte gActiveBattler -_08159CB4: - ldr r0, _08159CF8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08159CEE - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0xD - bne _08159CD8 - bl BattleStopLowHpSound - ldr r0, _08159CFC @ =0x00000137 - bl PlayBGM -_08159CD8: - ldr r1, _08159D00 @ =gBattle_BG0_Y - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - strh r0, [r1] - bl sub_80EB524 - bl sub_8159B78 -_08159CEE: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08159CF8: .4byte gPaletteFade -_08159CFC: .4byte 0x00000137 -_08159D00: .4byte gBattle_BG0_Y - thumb_func_end sub_8159BA8 - - thumb_func_start sub_8159D04 -sub_8159D04: @ 8159D04 - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, _08159D28 @ =gUnknown_3005EE0 - ldr r2, _08159D2C @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - adds r3, r1, 0 - cmp r0, 0x6 - bls _08159D1E - b _08159EDE -_08159D1E: - lsls r0, 2 - ldr r1, _08159D30 @ =_08159D34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08159D28: .4byte gUnknown_3005EE0 -_08159D2C: .4byte gActiveBattler -_08159D30: .4byte _08159D34 - .align 2, 0 -_08159D34: - .4byte _08159D50 - .4byte _08159D98 - .4byte _08159DDC - .4byte _08159DF4 - .4byte _08159E0C - .4byte _08159E64 - .4byte _08159EA4 -_08159D50: - ldr r0, _08159D90 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _08159D62 - b _08159EDE -_08159D62: - ldr r0, _08159D94 @ =gBattleStruct - ldr r4, [r0] - adds r5, r4, 0 - adds r5, 0x95 - adds r4, 0x94 - movs r0, 0 - bl GetBattlerAtPosition - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80EEFC8 - movs r0, 0x81 - negs r0, r0 - str r6, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - b _08159E80 - .align 2, 0 -_08159D90: .4byte gPaletteFade -_08159D94: .4byte gBattleStruct -_08159D98: - ldr r0, _08159DD0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _08159DAA - b _08159EDE -_08159DAA: - ldr r2, _08159DD4 @ =gBitTable - ldr r0, _08159DD8 @ =gBattleStruct - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x95 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - adds r0, 0x94 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - lsls r0, r1, 16 - str r3, [sp] - b _08159E7A - .align 2, 0 -_08159DD0: .4byte gPaletteFade -_08159DD4: .4byte gBitTable -_08159DD8: .4byte gBattleStruct -_08159DDC: - ldr r0, _08159DF0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08159DEA - b _08159EDE -_08159DEA: - bl sub_80EB30C - b _08159E84 - .align 2, 0 -_08159DF0: .4byte gPaletteFade -_08159DF4: - bl sub_8159EF0 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _08159E08 @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _08159E84 - .align 2, 0 -_08159E08: .4byte gDisplayedStringBattle -_08159E0C: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _08159EDE - ldr r0, _08159E58 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08159EDE - movs r0, 0x5 - bl PlaySE - ldr r2, _08159E5C @ =gBitTable - ldr r0, _08159E60 @ =gBattleStruct - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x95 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - adds r0, 0x94 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - lsls r0, r1, 16 - str r4, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - b _08159E80 - .align 2, 0 -_08159E58: .4byte gMain -_08159E5C: .4byte gBitTable -_08159E60: .4byte gBattleStruct -_08159E64: - ldr r0, _08159E98 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08159EDE - movs r0, 0x81 - negs r0, r0 - str r1, [sp] -_08159E7A: - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 -_08159E80: - bl BeginNormalPaletteFade -_08159E84: - ldr r1, _08159E9C @ =gUnknown_3005EE0 - ldr r0, _08159EA0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _08159EDE - .align 2, 0 -_08159E98: .4byte gPaletteFade -_08159E9C: .4byte gUnknown_3005EE0 -_08159EA0: .4byte gActiveBattler -_08159EA4: - ldr r0, _08159EE8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08159EDE - ldrb r0, [r2] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0xD - bne _08159EC8 - bl BattleStopLowHpSound - ldr r0, _08159EEC @ =0x00000137 - bl PlayBGM -_08159EC8: - movs r0, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - bl sub_80EF0E0 - bl sub_80EB524 - bl sub_8159B78 -_08159EDE: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08159EE8: .4byte gPaletteFade -_08159EEC: .4byte 0x00000137 - thumb_func_end sub_8159D04 - - thumb_func_start sub_8159EF0 -sub_8159EF0: @ 8159EF0 - push {lr} - ldr r0, _08159F10 @ =gBattleStruct - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x96 - ldrb r1, [r1] - cmp r1, 0x1 - beq _08159F18 - cmp r1, 0x1 - ble _08159F0C - cmp r1, 0x2 - beq _08159F20 - cmp r1, 0x3 - beq _08159F28 -_08159F0C: - ldr r1, _08159F14 @ =gUnknown_84791A8 - b _08159F2A - .align 2, 0 -_08159F10: .4byte gBattleStruct -_08159F14: .4byte gUnknown_84791A8 -_08159F18: - ldr r1, _08159F1C @ =gUnknown_84791B8 - b _08159F2A - .align 2, 0 -_08159F1C: .4byte gUnknown_84791B8 -_08159F20: - ldr r1, _08159F24 @ =gUnknown_84791CC - b _08159F2A - .align 2, 0 -_08159F24: .4byte gUnknown_84791CC -_08159F28: - ldr r1, _08159F3C @ =gUnknown_84791E8 -_08159F2A: - adds r0, 0x97 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_08159F3C: .4byte gUnknown_84791E8 - thumb_func_end sub_8159EF0 - - .align 2, 0 @ Don't pad with nop. |