summaryrefslogtreecommitdiff
path: root/asm/battle_controller_pokedude.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_controller_pokedude.s')
-rw-r--r--asm/battle_controller_pokedude.s7632
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.