sovereignx/asm/battle_controller_player.s

5702 lines
88 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start PlayerHandleGetMonData
PlayerHandleGetMonData: @ 8059DF4
push {r4-r6,lr}
sub sp, 0x100
movs r6, 0
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _08059E2C
ldr r0, =gBattlePartyID
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
mov r1, sp
bl dp01_getattr_by_ch1_for_player_pokemon_
adds r6, r0, 0
b _08059E4E
.pool
_08059E2C:
ldrb r4, [r1]
movs r5, 0
_08059E30:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _08059E46
lsls r0, r5, 24
lsrs r0, 24
mov r2, sp
adds r1, r2, r6
bl dp01_getattr_by_ch1_for_player_pokemon_
adds r6, r0
_08059E46:
lsrs r4, 1
adds r5, 0x1
cmp r5, 0x5
ble _08059E30
_08059E4E:
lsls r1, r6, 16
lsrs r1, 16
movs r0, 0x1
mov r2, sp
bl EmitDataTransfer
bl PlayerBufferExecCompleted
add sp, 0x100
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end PlayerHandleGetMonData
thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
dp01_getattr_by_ch1_for_player_pokemon_: @ 8059E68
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x90
adds r7, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r2, =gBattleBufferA
ldr r3, =gActiveBank
ldrb r0, [r3]
lsls r0, 9
adds r1, r2, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3B
bls _08059E92
bl _0805A5FE
_08059E92:
lsls r0, 2
ldr r1, =_08059EA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08059EA8:
.4byte _08059F98
.4byte _0805A1BC
.4byte _0805A1CC
.4byte _0805A1DC
.4byte _0805A244
.4byte _0805A244
.4byte _0805A244
.4byte _0805A244
.4byte _0805A260
.4byte _0805A29C
.4byte _0805A29C
.4byte _0805A29C
.4byte _0805A29C
.4byte _0805A5FE
.4byte _0805A5FE
.4byte _0805A5FE
.4byte _0805A5FE
.4byte _0805A2B8
.4byte _0805A2C8
.4byte _0805A2F8
.4byte _0805A308
.4byte _0805A318
.4byte _0805A328
.4byte _0805A338
.4byte _0805A348
.4byte _0805A358
.4byte _0805A368
.4byte _0805A378
.4byte _0805A388
.4byte _0805A398
.4byte _0805A3A8
.4byte _0805A3B8
.4byte _0805A408
.4byte _0805A418
.4byte _0805A428
.4byte _0805A438
.4byte _0805A448
.4byte _0805A458
.4byte _0805A468
.4byte _0805A478
.4byte _0805A488
.4byte _0805A4BC
.4byte _0805A4CC
.4byte _0805A4DC
.4byte _0805A4EC
.4byte _0805A4FC
.4byte _0805A50C
.4byte _0805A51C
.4byte _0805A52C
.4byte _0805A54C
.4byte _0805A55C
.4byte _0805A56C
.4byte _0805A57C
.4byte _0805A58C
.4byte _0805A59C
.4byte _0805A5AC
.4byte _0805A5BC
.4byte _0805A5CC
.4byte _0805A5DC
.4byte _0805A5EC
_08059F98:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
add r0, sp, 0x24
mov r9, r0
movs r1, 0x3B
add r1, sp
mov r10, r1
mov r2, sp
adds r2, 0x2B
str r2, [sp, 0x80]
mov r0, sp
adds r0, 0x2A
str r0, [sp, 0x7C]
mov r1, sp
adds r1, 0x68
str r1, [sp, 0x8C]
adds r2, 0x5
str r2, [sp, 0x84]
adds r0, 0x12
str r0, [sp, 0x88]
mov r8, r4
add r4, sp, 0xC
_08059FE4:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _08059FE4
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
ldrb r2, [r3, 0x14]
movs r1, 0x20
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
lsls r0, 5
ldrh r2, [r3, 0x14]
ldr r1, =0xfffffc1f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
mov r3, sp
ands r0, r5
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, r4, 0
movs r1, 0x2A
bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
ldr r0, [sp, 0x14]
ldr r2, =0xfff07fff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
ldrh r2, [r3, 0x16]
ldr r1, =0xfffffe0f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
mov r3, sp
ands r0, r5
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, r4, 0
movs r1, 0
bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 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, r4, 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, r4, 0
movs r1, 0x1
bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
bl GetMonData
mov r2, sp
movs r6, 0
_0805A19C:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0x57
bls _0805A19C
b _0805A5FE
.pool
_0805A1BC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xB
b _0805A536
.pool
_0805A1CC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xC
b _0805A536
.pool
_0805A1DC:
movs r6, 0
add r2, sp, 0x58
mov r9, r2
add r0, sp, 0x60
mov r10, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
mov r8, r9
_0805A1F2:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
movs r0, 0x2
add r8, r0
adds r6, 0x1
cmp r6, 0x3
ble _0805A1F2
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
movs r6, 0
_0805A230:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0xF
bls _0805A230
b _0805A5FE
.pool
_0805A244:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x9
b _0805A536
.pool
_0805A260:
movs r6, 0
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r2, =gPlayerParty
mov r8, r2
_0805A26C:
adds r1, r6, 0
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
cmp r6, 0x3
ble _0805A26C
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
b _0805A5FE
.pool
_0805A29C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x8
b _0805A5F6
.pool
_0805A2B8:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1
b _0805A2D2
.pool
_0805A2C8:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x19
_0805A2D2:
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 r6, 0x3
b _0805A5FE
.pool
_0805A2F8:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1A
b _0805A5F6
.pool
_0805A308:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1B
b _0805A5F6
.pool
_0805A318:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1C
b _0805A5F6
.pool
_0805A328:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1D
b _0805A5F6
.pool
_0805A338:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1E
b _0805A5F6
.pool
_0805A348:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x1F
b _0805A5F6
.pool
_0805A358:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x20
b _0805A5F6
.pool
_0805A368:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x22
b _0805A5F6
.pool
_0805A378:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x23
b _0805A5F6
.pool
_0805A388:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x24
b _0805A5F6
.pool
_0805A398:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x25
b _0805A5F6
.pool
_0805A3A8:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x26
b _0805A5F6
.pool
_0805A3B8:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _0805A5FE
.pool
_0805A408:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x27
b _0805A5F6
.pool
_0805A418:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x28
b _0805A5F6
.pool
_0805A428:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x29
b _0805A5F6
.pool
_0805A438:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2A
b _0805A5F6
.pool
_0805A448:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2B
b _0805A5F6
.pool
_0805A458:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2C
b _0805A5F6
.pool
_0805A468:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0
b _0805A492
.pool
_0805A478:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x9
b _0805A536
.pool
_0805A488:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x37
_0805A492:
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 r6, 0x4
b _0805A5FE
.pool
_0805A4BC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x38
b _0805A5F6
.pool
_0805A4CC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x39
b _0805A536
.pool
_0805A4DC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3A
b _0805A536
.pool
_0805A4EC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3B
b _0805A536
.pool
_0805A4FC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3C
b _0805A536
.pool
_0805A50C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3D
b _0805A536
.pool
_0805A51C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3E
b _0805A536
.pool
_0805A52C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3F
_0805A536:
bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
lsrs r0, 8
strb r0, [r7, 0x1]
movs r6, 0x2
b _0805A5FE
.pool
_0805A54C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x16
b _0805A5F6
.pool
_0805A55C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x17
b _0805A5F6
.pool
_0805A56C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x18
b _0805A5F6
.pool
_0805A57C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x21
b _0805A5F6
.pool
_0805A58C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x2F
b _0805A5F6
.pool
_0805A59C:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x30
b _0805A5F6
.pool
_0805A5AC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x32
b _0805A5F6
.pool
_0805A5BC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x33
b _0805A5F6
.pool
_0805A5CC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x34
b _0805A5F6
.pool
_0805A5DC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x35
b _0805A5F6
.pool
_0805A5EC:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x36
_0805A5F6:
bl GetMonData
strb r0, [r7]
movs r6, 0x1
_0805A5FE:
adds r0, r6, 0
add sp, 0x90
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
thumb_func_start PlayerHandleGetRawMonData
PlayerHandleGetRawMonData: @ 805A614
push {r4-r7,lr}
sub sp, 0x58
ldr r2, =gBattlePartyID
ldr r5, =gActiveBank
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
adds r4, r2, 0
muls r4, r0
ldr r3, =gBattleBufferA
lsls r1, 9
adds r0, r3, 0x1
adds r0, r1, r0
ldrb r2, [r0]
ldr r0, =gPlayerParty
adds r0, r2, r0
adds r6, r4, r0
mov r0, sp
adds r4, r0, r2
movs r2, 0
adds r0, r3, 0x2
adds r1, r0
adds r7, r5, 0
mov r12, r3
ldrb r1, [r1]
cmp r2, r1
bcs _0805A66A
adds r3, r0, 0
_0805A650:
adds r1, r4, r2
adds r0, r6, r2
ldrb r0, [r0]
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
ldrb r0, [r5]
lsls r0, 9
adds r0, r3
ldrb r0, [r0]
cmp r2, r0
bcc _0805A650
_0805A66A:
ldrb r0, [r7]
lsls r0, 9
mov r1, r12
adds r1, 0x2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
adds r2, r4, 0
bl EmitDataTransfer
bl PlayerBufferExecCompleted
add sp, 0x58
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleGetRawMonData
thumb_func_start PlayerHandleSetMonData
PlayerHandleSetMonData: @ 805A69C
push {r4,r5,lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _0805A6CC
ldr r0, =gBattlePartyID
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
bl dp01_setattr_by_ch1_for_player_pokemon
b _0805A6EA
.pool
_0805A6CC:
ldrb r4, [r1]
movs r5, 0
_0805A6D0:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0805A6DE
adds r0, r5, 0
bl dp01_setattr_by_ch1_for_player_pokemon
_0805A6DE:
lsrs r4, 1
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _0805A6D0
_0805A6EA:
bl PlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end PlayerHandleSetMonData
thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
dp01_setattr_by_ch1_for_player_pokemon: @ 805A6F4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x34
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
ldr r2, =gBattleBufferA + 3
adds r3, r0, r2
adds r6, r3, 0
subs r1, r2, 0x2
adds r0, r1
ldrb r0, [r0]
adds r7, r2, 0
cmp r0, 0x3B
bls _0805A720
bl _0805B0BA
_0805A720:
lsls r0, 2
ldr r1, =_0805A738
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0805A738:
.4byte _0805A828
.4byte _0805A9C0
.4byte _0805A9E0
.4byte _0805AA00
.4byte _0805AA58
.4byte _0805AA58
.4byte _0805AA58
.4byte _0805AA58
.4byte _0805AA80
.4byte _0805AAE4
.4byte _0805AAE4
.4byte _0805AAE4
.4byte _0805AAE4
.4byte _0805B0BA
.4byte _0805B0BA
.4byte _0805B0BA
.4byte _0805B0BA
.4byte _0805AB14
.4byte _0805AB34
.4byte _0805AB54
.4byte _0805AB74
.4byte _0805AB94
.4byte _0805ABB4
.4byte _0805ABD4
.4byte _0805ABF4
.4byte _0805AC14
.4byte _0805AC34
.4byte _0805AC54
.4byte _0805AC74
.4byte _0805AC94
.4byte _0805ACB4
.4byte _0805ACD4
.4byte _0805AD44
.4byte _0805AD64
.4byte _0805AD84
.4byte _0805ADA4
.4byte _0805ADC4
.4byte _0805ADE4
.4byte _0805AE04
.4byte _0805AE24
.4byte _0805AE44
.4byte _0805AE64
.4byte _0805AE84
.4byte _0805AEA4
.4byte _0805AEC4
.4byte _0805AEE4
.4byte _0805AF04
.4byte _0805AF24
.4byte _0805AF44
.4byte _0805AF64
.4byte _0805AF84
.4byte _0805AFA4
.4byte _0805AFC4
.4byte _0805AFE4
.4byte _0805B004
.4byte _0805B024
.4byte _0805B044
.4byte _0805B064
.4byte _0805B084
.4byte _0805B0A4
_0805A828:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
adds r0, r6
mov r10, r0
adds r0, r6, 0
adds r0, 0x2B
str r0, [sp, 0x20]
adds r0, 0x19
str r0, [sp, 0x28]
adds r0, 0x4
str r0, [sp, 0x2C]
adds r0, 0x4
str r0, [sp, 0x30]
subs r0, 0x22
str r0, [sp, 0x1C]
subs r0, 0x2
str r0, [sp, 0x18]
adds r0, 0x4
str r0, [sp, 0x24]
adds r0, r6, 0x2
str r0, [sp, 0x4]
adds r0, r6, 0x4
str r0, [sp, 0x8]
adds r0, r6, 0x6
str r0, [sp, 0xC]
adds r0, 0x2
str r0, [sp, 0x10]
adds r0, 0x2
str r0, [sp, 0x14]
mov r9, r4
adds r7, r6, 0
adds r7, 0x24
adds r4, r6, 0
adds r4, 0xC
_0805A88E:
mov r1, r8
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _0805A88E
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
mov r1, sp
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
bl SetMonData
b _0805B0BA
.pool
_0805A9C0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0xB
bl SetMonData
b _0805B0BA
.pool
_0805A9E0:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0xC
bl SetMonData
b _0805B0BA
.pool
_0805AA00:
movs r0, 0
mov r8, r0
movs r0, 0xC
adds r0, r3
mov r9, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r7, r1, r0
adds r6, r3, 0
adds r6, 0x8
adds r4, r3, 0
_0805AA1A:
mov r1, r8
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _0805AA1A
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x15
mov r2, r9
bl SetMonData
b _0805B0BA
.pool
_0805AA58:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r3, =gBattleBufferA
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x9
b _0805AAFC
.pool
_0805AA80:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
ldr r5, =gActiveBank
ldrb r2, [r5]
lsls r2, 9
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
bl SetMonData
b _0805B0BA
.pool
_0805AAE4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r3, =gBattleBufferA
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x8
_0805AAFC:
adds r3, 0x3
adds r2, r3
bl SetMonData
b _0805B0BA
.pool
_0805AB14:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1
bl SetMonData
b _0805B0BA
.pool
_0805AB34:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x19
bl SetMonData
b _0805B0BA
.pool
_0805AB54:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1A
bl SetMonData
b _0805B0BA
.pool
_0805AB74:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1B
bl SetMonData
b _0805B0BA
.pool
_0805AB94:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1C
bl SetMonData
b _0805B0BA
.pool
_0805ABB4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1D
bl SetMonData
b _0805B0BA
.pool
_0805ABD4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1E
bl SetMonData
b _0805B0BA
.pool
_0805ABF4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1F
bl SetMonData
b _0805B0BA
.pool
_0805AC14:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x20
bl SetMonData
b _0805B0BA
.pool
_0805AC34:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x22
bl SetMonData
b _0805B0BA
.pool
_0805AC54:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x23
bl SetMonData
b _0805B0BA
.pool
_0805AC74:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x24
bl SetMonData
b _0805B0BA
.pool
_0805AC94:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x25
bl SetMonData
b _0805B0BA
.pool
_0805ACB4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x26
bl SetMonData
b _0805B0BA
.pool
_0805ACD4:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, =gPlayerParty
adds r4, r0
ldr r5, =gActiveBank
ldrb r2, [r5]
lsls r2, 9
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
adds r2, r0
adds r0, r4, 0
b _0805ADF4
.pool
_0805AD44:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x27
bl SetMonData
b _0805B0BA
.pool
_0805AD64:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x28
bl SetMonData
b _0805B0BA
.pool
_0805AD84:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x29
bl SetMonData
b _0805B0BA
.pool
_0805ADA4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2A
bl SetMonData
b _0805B0BA
.pool
_0805ADC4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2B
bl SetMonData
b _0805B0BA
.pool
_0805ADE4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
_0805ADF4:
movs r1, 0x2C
bl SetMonData
b _0805B0BA
.pool
_0805AE04:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0
bl SetMonData
b _0805B0BA
.pool
_0805AE24:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x9
bl SetMonData
b _0805B0BA
.pool
_0805AE44:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x37
bl SetMonData
b _0805B0BA
.pool
_0805AE64:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x38
bl SetMonData
b _0805B0BA
.pool
_0805AE84:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x39
bl SetMonData
b _0805B0BA
.pool
_0805AEA4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3A
bl SetMonData
b _0805B0BA
.pool
_0805AEC4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3B
bl SetMonData
b _0805B0BA
.pool
_0805AEE4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3C
bl SetMonData
b _0805B0BA
.pool
_0805AF04:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3D
bl SetMonData
b _0805B0BA
.pool
_0805AF24:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3E
bl SetMonData
b _0805B0BA
.pool
_0805AF44:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3F
bl SetMonData
b _0805B0BA
.pool
_0805AF64:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x16
bl SetMonData
b _0805B0BA
.pool
_0805AF84:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x17
bl SetMonData
b _0805B0BA
.pool
_0805AFA4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x18
bl SetMonData
b _0805B0BA
.pool
_0805AFC4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x21
bl SetMonData
b _0805B0BA
.pool
_0805AFE4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2F
bl SetMonData
b _0805B0BA
.pool
_0805B004:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x30
bl SetMonData
b _0805B0BA
.pool
_0805B024:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x32
bl SetMonData
b _0805B0BA
.pool
_0805B044:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x33
bl SetMonData
b _0805B0BA
.pool
_0805B064:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x34
bl SetMonData
b _0805B0BA
.pool
_0805B084:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x35
bl SetMonData
b _0805B0BA
.pool
_0805B0A4:
movs r0, 0x64
muls r0, r5
ldr r1, =gPlayerParty
adds r0, r1
ldr r1, =gActiveBank
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x36
bl SetMonData
_0805B0BA:
ldr r2, =gBattlePartyID
ldr r0, =gActiveBank
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805E990
add sp, 0x34
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
thumb_func_start PlayerHandleSetRawMonData
PlayerHandleSetRawMonData: @ 805B0F0
push {r4-r7,lr}
ldr r1, =gBattlePartyID
ldr r7, =gActiveBank
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
adds r3, r1, 0
muls r3, r0
ldr r4, =gBattleBufferA
lsls r2, 9
adds r0, r4, 0x1
adds r0, r2, r0
ldrb r0, [r0]
ldr r1, =gPlayerParty
adds r0, r1
adds r5, r3, r0
movs r3, 0
adds r0, r4, 0x2
adds r2, r0
ldrb r2, [r2]
cmp r3, r2
bcs _0805B148
adds r6, r4, 0
adds r2, r7, 0
adds r4, r0, 0
_0805B126:
adds r1, r5, r3
ldrb r0, [r2]
lsls r0, 9
adds r0, 0x3
adds r0, r3, r0
adds r0, r6
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r2]
lsls r0, 9
adds r0, r4
ldrb r0, [r0]
cmp r3, r0
bcc _0805B126
_0805B148:
bl PlayerBufferExecCompleted
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleSetRawMonData
thumb_func_start PlayerHandleLoadMonSprite
PlayerHandleLoadMonSprite: @ 805B164
push {r4,lr}
ldr r2, =gBattlePartyID
ldr r4, =gActiveBank
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl BattleLoadPlayerMonSpriteGfx
ldr r2, =gSprites
ldr r0, =gBankSpriteIds
ldrb r3, [r4]
adds r0, r3, r0
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =CompleteOnBankSpritePosX_0
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleLoadMonSprite
thumb_func_start PlayerHandleSwitchInAnim
PlayerHandleSwitchInAnim: @ 805B1CC
push {r4-r6,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
ldr r4, =gBattleBufferA
lsls r1, r0, 9
adds r6, r4, 0x2
adds r1, r6
ldrb r1, [r1]
bl sub_805EF84
ldr r2, =gBattlePartyID
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, =gPlayerParty
adds r0, r2
bl BattleLoadPlayerMonSpriteGfx
ldr r1, =gActionSelectionCursor
ldrb r0, [r5]
adds r0, r1
strb r4, [r0]
ldr r1, =gMoveSelectionCursor
ldrb r0, [r5]
adds r0, r1
strb r4, [r0]
ldrb r0, [r5]
lsls r1, r0, 9
adds r1, r6
ldrb r1, [r1]
bl sub_805B258
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805902C
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleSwitchInAnim
thumb_func_start sub_805B258
sub_805B258: @ 805B258
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
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl sub_805EF84
ldr r0, =gBattlePartyID
lsls r2, r6, 1
adds r2, r0
ldr r0, =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, =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, =sub_805D714
bl CreateInvisibleSpriteWithCallback
ldr r1, =gUnknown_03005D7C
mov r9, r1
add r9, r6
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_806A068
ldr r0, =gUnknown_0202499C
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
bl sub_80A5C6C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r6, 0
bl sub_80A6138
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
bl sub_80A82E4
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, =gBankSpriteIds
adds r4, r6, r4
strb r0, [r4]
ldr r5, =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]
mov r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r6, [r0, 0x32]
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, =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, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
bl sub_80753E8
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
.pool
thumb_func_end sub_805B258
thumb_func_start PlayerHandleReturnMonToBall
PlayerHandleReturnMonToBall: @ 805B3D4
push {r4-r6,lr}
ldr r1, =gBattleBufferA
ldr r6, =gActiveBank
ldrb r2, [r6]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r3, [r0]
cmp r3, 0
bne _0805B41C
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
strb r3, [r0, 0x4]
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805B464
str r1, [r0]
b _0805B452
.pool
_0805B41C:
ldr r5, =gBankSpriteIds
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =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, =gHealthBoxesIds
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl PlayerBufferExecCompleted
_0805B452:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleReturnMonToBall
thumb_func_start sub_805B464
sub_805B464: @ 805B464
push {r4-r6,lr}
ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
ldr r1, [r4, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrb r0, [r3, 0x4]
cmp r0, 0
beq _0805B48C
cmp r0, 0x1
beq _0805B4BA
b _0805B4E2
.pool
_0805B48C:
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0805B4A6
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0805B4A6:
ldr r0, [r6]
ldrb r1, [r5]
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 _0805B4E2
_0805B4BA:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0805B4E2
strb r0, [r3, 0x4]
ldrb r2, [r5]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x1
bl move_anim_start_t4
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_8059744
str r1, [r0]
_0805B4E2:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_805B464
thumb_func_start PlayerHandleDrawTrainerPic
PlayerHandleDrawTrainerPic: @ 805B4F0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0805B5B4
bl GetMultiplayerId
ldr r5, =gLinkPlayers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
movs r4, 0xFF
ldrb r0, [r1]
cmp r0, 0x4
beq _0805B538
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrh r1, [r1]
adds r0, r4, 0
ands r0, r1
cmp r0, 0x5
bne _0805B558
_0805B538:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrb r0, [r1, 0x13]
adds r4, r0, 0x2
b _0805B5BA
.pool
_0805B558:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrh r1, [r1]
adds r0, r4, 0
ands r0, r1
cmp r0, 0x2
beq _0805B58A
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrh r0, [r1]
ands r4, r0
cmp r4, 0x1
bne _0805B5A0
_0805B58A:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrb r0, [r1, 0x13]
adds r4, r0, 0x4
b _0805B5BA
_0805B5A0:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrb r4, [r1, 0x13]
b _0805B5BA
_0805B5B4:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r4, [r0, 0x8]
_0805B5BA:
ldr r0, =gBattleTypeFlags
ldr r1, [r0]
movs r2, 0x40
ands r1, r2
adds r5, r0, 0
cmp r1, 0
beq _0805B63C
ldr r0, =gActiveBank
ldrb r0, [r0]
bl GetBankIdentity
movs r1, 0x2
ands r1, r0
movs r0, 0x20
mov r9, r0
cmp r1, 0
beq _0805B5E0
movs r1, 0x5A
mov r9, r1
_0805B5E0:
ldr r0, [r5]
movs r1, 0x80
lsls r1, 15
ands r0, r1
cmp r0, 0
beq _0805B618
ldr r0, =gPartnerTrainerId
ldrh r1, [r0]
ldr r0, =0x00000c03
cmp r1, r0
beq _0805B618
movs r0, 0x5A
mov r9, r0
ldr r1, =gTrainerFrontPicCoords
b _0805B642
.pool
_0805B618:
ldr r1, =gTrainerBackPicCoords
lsls r0, r4, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x8
subs r0, r1
lsls r0, 18
movs r1, 0xA0
lsls r1, 15
adds r0, r1
lsrs r7, r0, 16
ldr r5, =gBattleTypeFlags
b _0805B656
.pool
_0805B63C:
movs r0, 0x50
mov r9, r0
ldr r1, =gTrainerBackPicCoords
_0805B642:
lsls r0, r4, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x8
subs r0, r1
lsls r0, 18
movs r1, 0xA0
lsls r1, 15
adds r0, r1
lsrs r7, r0, 16
_0805B656:
ldr r0, [r5]
movs r1, 0x80
lsls r1, 15
ands r0, r1
cmp r0, 0
bne _0805B664
b _0805B794
_0805B664:
ldr r0, =gPartnerTrainerId
ldrh r1, [r0]
ldr r0, =0x00000c03
cmp r1, r0
bne _0805B670
b _0805B794
_0805B670:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bl sub_806F000
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
ldr r6, =gActiveBank
ldrb r1, [r6]
adds r0, r5, 0
bl sub_805DF38
ldrb r0, [r6]
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl sub_806A1C0
ldr r0, =gUnknown_0202499C
mov r8, r0
lsls r4, r7, 16
asrs r4, 16
ldrb r0, [r6]
bl sub_80A82E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r8
mov r1, r9
adds r2, r4, 0
bl CreateSprite
ldr r4, =gBankSpriteIds
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
ldr r0, =gTrainerFrontPicPaletteTable
lsls r5, 3
adds r5, r0
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
ldr r5, =gSprites
ldrb r1, [r6]
adds r1, r4
ldrb r1, [r1]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
adds r2, r5
lsls r0, 4
ldrb r3, [r2, 0x5]
movs r1, 0xF
ands r1, r3
orrs r1, r0
strb r1, [r2, 0x5]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0xF0
strh r1, [r0, 0x24]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x30
strh r1, [r0, 0x26]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =0x0000fffe
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_805D7AC
str r1, [r0]
ldrb r0, [r6]
adds r0, r4
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
b _0805B82A
.pool
_0805B794:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_806A12C
ldr r6, =gUnknown_0202499C
mov r8, r9
lsls r4, r7, 16
asrs r4, 16
ldrb r0, [r5]
bl sub_80A82E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r6, 0
mov r1, r8
adds r2, r4, 0
bl CreateSprite
ldr r6, =gBankSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
ldr r4, =gSprites
ldrb r3, [r5]
adds r0, r3, r6
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]
ldrb r0, [r5]
adds r0, r6
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, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000fffe
strh r1, [r0, 0x2E]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, =sub_805D7AC
str r1, [r0]
_0805B82A:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =CompleteOnBankSpriteCallbackDummy
str r1, [r0]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleDrawTrainerPic
thumb_func_start PlayerHandleTrainerSlide
PlayerHandleTrainerSlide: @ 805B864
push {r4-r6,lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0805B920
bl GetMultiplayerId
ldr r5, =gLinkPlayers
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
movs r4, 0xFF
ldrb r0, [r1]
cmp r0, 0x4
beq _0805B8A6
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrh r1, [r1]
adds r0, r4, 0
ands r0, r1
cmp r0, 0x5
bne _0805B8C4
_0805B8A6:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrb r0, [r1, 0x13]
adds r4, r0, 0x2
b _0805B926
.pool
_0805B8C4:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrh r1, [r1]
adds r0, r4, 0
ands r0, r1
cmp r0, 0x2
beq _0805B8F6
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrh r0, [r1]
ands r4, r0
cmp r4, 0x1
bne _0805B90C
_0805B8F6:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrb r0, [r1, 0x13]
adds r4, r0, 0x4
b _0805B926
_0805B90C:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r5
ldrb r4, [r1, 0x13]
b _0805B926
_0805B920:
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r4, [r0, 0x8]
_0805B926:
ldr r5, =gActiveBank
ldrb r1, [r5]
adds r0, r4, 0
bl LoadBackTrainerBankSpriteGfx
ldrb r0, [r5]
bl GetBankIdentity
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_806A12C
ldr r0, =gUnknown_0202499C
ldr r1, =gTrainerBackPicCoords
lsls r4, 2
adds r4, r1
ldrb r1, [r4]
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, =gBankSpriteIds
ldrb r1, [r5]
adds r1, r6
strb r0, [r1]
ldr r4, =gSprites
ldrb r3, [r5]
adds r0, r3, r6
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]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000ffa0
strh r1, [r0, 0x24]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, =sub_805D7AC
str r1, [r0]
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =CompleteOnBankSpriteCallbackDummy2
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleTrainerSlide
thumb_func_start PlayerHandleTrainerSlideBack
PlayerHandleTrainerSlideBack: @ 805B9F8
push {r4-r6,lr}
ldr r5, =gBankSpriteIds
ldr r6, =gActiveBank
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl oamt_add_pos2_onto_pos1
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x32
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =0x0000ffd8
strh r1, [r0, 0x32]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_80A6EEC
str r1, [r0]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, =SpriteCallbackDummy
bl StoreSpriteCallbackInData6
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x1
bl StartSpriteAnim
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80588B4
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleTrainerSlideBack
thumb_func_start PlayerHandleFaintAnimation
PlayerHandleFaintAnimation: @ 805BAB8
push {r4-r6,lr}
ldr r6, =gBattleSpritesDataPtr
ldr r4, [r6]
ldr r5, =gActiveBank
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 _0805BB0C
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0805BAEC
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0805BAEC:
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 _0805BB82
.pool
_0805BB0C:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0805BB82
strb r4, [r3, 0x4]
ldr r2, =gBattlePartyID
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl sub_805E990
movs r1, 0x40
negs r1, r1
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, =gSprites
ldr r3, =gBankSpriteIds
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, =sub_8039C00
str r1, [r0]
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80596A8
str r1, [r0]
_0805BB82:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleFaintAnimation
thumb_func_start PlayerHandleCmd11
PlayerHandleCmd11: @ 805BBA4
push {lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r1, 0x2
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
bl PlayerBufferExecCompleted
add sp, 0x4
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd11
thumb_func_start PlayerHandleCmd12
PlayerHandleCmd12: @ 805BBC4
push {r4,r5,lr}
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x8]
movs r0, 0x4
strb r0, [r1, 0x8]
ldr r1, =gDoingBattleAnim
movs r0, 0x1
strb r0, [r1]
ldr r5, =gActiveBank
ldrb r4, [r5]
movs r0, 0x1
bl GetBankByIdentity
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r4, 0
movs r3, 0x3
bl move_anim_start_t4
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805991C
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd12
thumb_func_start PlayerHandleBallThrow
PlayerHandleBallThrow: @ 805BC18
push {r4,r5,lr}
ldr r1, =gBattleBufferA
ldr r5, =gActiveBank
ldrb r0, [r5]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x8]
strb r1, [r0, 0x8]
ldr r1, =gDoingBattleAnim
movs r0, 0x1
strb r0, [r1]
ldrb r4, [r5]
movs r0, 0x1
bl GetBankByIdentity
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r4, 0
movs r3, 0x3
bl move_anim_start_t4
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805991C
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleBallThrow
thumb_func_start PlayerHandlePause
PlayerHandlePause: @ 805BC78
push {lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0805BC96
_0805BC8C:
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0805BC8C
_0805BC96:
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandlePause
thumb_func_start PlayerHandleMoveAnimation
PlayerHandleMoveAnimation: @ 805BCA8
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r5, =gActiveBank
ldrb r0, [r5]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
beq _0805BCBE
b _0805BDE4
_0805BCBE:
ldr r0, =gBattleBufferA
mov r12, r0
ldrb r1, [r5]
lsls r1, 9
adds r0, 0x1
adds r0, r1, r0
ldrb r6, [r0]
mov r0, r12
adds r0, 0x2
adds r0, r1, r0
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
adds r1, r0
ldrb r0, [r1]
mov r1, r8
strb r0, [r1]
ldr r3, =gAnimMovePower
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
adds r0, 0x4
adds r0, r1, r0
ldrb r2, [r0]
mov r0, r12
adds r0, 0x5
adds r1, r0
ldrb r0, [r1]
lsls r0, 8
orrs r2, r0
strh r2, [r3]
ldr r3, =gAnimMoveDmg
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
adds r0, 0x6
adds r0, r1, r0
ldrb r2, [r0]
mov r0, r12
adds r0, 0x7
adds r0, r1, r0
ldrb r0, [r0]
lsls r0, 8
orrs r2, r0
mov r0, r12
adds r0, 0x8
adds r0, r1, r0
ldrb r0, [r0]
lsls r0, 16
orrs r2, r0
mov r0, r12
adds r0, 0x9
adds r1, r0
ldrb r0, [r1]
lsls r0, 24
orrs r2, r0
str r2, [r3]
ldr r2, =gAnimFriendship
ldrb r0, [r5]
lsls r0, 9
mov r1, r12
adds r1, 0xA
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r4, =gWeatherMoveAnim
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
adds r0, 0xC
adds r0, r1, r0
ldrb r2, [r0]
mov r0, r12
adds r0, 0xD
adds r1, r0
ldrb r0, [r1]
lsls r0, 8
orrs r2, r0
strh r2, [r4]
ldr r7, =gAnimDisableStructPtr
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
adds r0, 0x10
adds r1, r0
str r1, [r7]
ldr r2, =gUnknown_020244BC
ldrb r0, [r5]
lsls r0, 2
adds r0, r2
ldr r1, [r1]
str r1, [r0]
mov r0, r8
ldrb r1, [r0]
adds r0, r6, 0
bl sub_805DB8C
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _0805BDBC
bl PlayerBufferExecCompleted
b _0805BDE4
.pool
_0805BDBC:
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x4]
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =bx_move_anim_1
str r1, [r0]
ldrh r1, [r4]
ldr r2, [r7]
adds r0, r6, 0
bl sub_817E0FC
_0805BDE4:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleMoveAnimation
thumb_func_start bx_move_anim_1
bx_move_anim_1: @ 805BDFC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r2, =gBattleBufferA
ldr r6, =gActiveBank
ldrb r3, [r6]
lsls r1, r3, 9
adds r0, r2, 0x1
mov r10, r0
adds r0, r1, r0
ldrb r4, [r0]
adds r5, r2, 0x2
mov r9, r5
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, 8
orrs r4, r0
adds r2, 0xB
adds r1, r2
ldrb r1, [r1]
mov r8, r1
ldr r7, =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 _0805BE94
cmp r2, 0x1
bgt _0805BE54
cmp r2, 0
beq _0805BE5E
b _0805BF70
.pool
_0805BE54:
cmp r2, 0x2
beq _0805BEBE
cmp r2, 0x3
beq _0805BF34
b _0805BF70
_0805BE5E:
ldr r1, [r5]
lsls r0, r3, 2
adds r1, r0, r1
ldrb r2, [r1]
movs r0, 0xC
ands r0, r2
cmp r0, 0x4
bne _0805BE80
movs r0, 0x8
orrs r0, r2
strb r0, [r1]
ldrb r2, [r6]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0805BE80:
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 _0805BF70
_0805BE94:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0805BF70
movs r0, 0
bl sub_805EB9C
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 _0805BF70
_0805BEBE:
ldr r0, =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _0805BF70
movs r0, 0x1
bl sub_805EB9C
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 _0805BF0C
mov r0, r8
cmp r0, 0x1
bhi _0805BF0C
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl move_anim_start_t4
ldr r0, [r7]
ldrb r1, [r6]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x9
negs r0, r0
ands r0, r2
strb r0, [r1]
_0805BF0C:
ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x4]
b _0805BF70
.pool
_0805BF34:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0805BF70
bl sub_805E394
ldrb r0, [r6]
lsls r2, r0, 9
mov r3, r10
adds r1, r2, r3
ldrb r1, [r1]
add r2, r9
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
bl sub_805E94C
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 PlayerBufferExecCompleted
_0805BF70:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end bx_move_anim_1
thumb_func_start PlayerHandlePrintString
PlayerHandlePrintString: @ 805BF80
push {r4,r5,lr}
ldr r0, =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG0_Y
strh r1, [r0]
ldr r5, =gActiveBank
ldrb r4, [r5]
lsls r4, 9
ldr r0, =gBattleBufferA + 2
adds r4, r0
ldrh r0, [r4]
bl BufferStringBattle
ldr r0, =gDisplayedStringBattle
movs r1, 0
bl sub_814F9EC
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =CompleteOnInactiveTextPrinter2
str r1, [r0]
ldrh r0, [r4]
bl sub_817C95C
ldrb r0, [r5]
ldrh r1, [r4]
bl sub_81A57E4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandlePrintString
thumb_func_start PlayerHandlePrintStringPlayerOnly
PlayerHandlePrintStringPlayerOnly: @ 805BFE0
push {lr}
ldr r0, =gActiveBank
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0805BFFC
bl PlayerHandlePrintString
b _0805C000
.pool
_0805BFFC:
bl PlayerBufferExecCompleted
_0805C000:
pop {r0}
bx r0
thumb_func_end PlayerHandlePrintStringPlayerOnly
thumb_func_start sub_805C004
sub_805C004: @ 805C004
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _0805C02A
ldr r0, =gBattle_BG0_X
strh r1, [r0]
ldr r1, =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =HandleInputChooseAction
str r1, [r0]
_0805C02A:
pop {r0}
bx r0
.pool
thumb_func_end sub_805C004
thumb_func_start PlayerHandleChooseAction
PlayerHandleChooseAction: @ 805C044
push {r4,lr}
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805C004
str r1, [r0]
bl sub_817F2A8
ldr r0, =gText_BattleMenu
movs r1, 0x2
bl sub_814F9EC
movs r4, 0
_0805C062:
lsls r0, r4, 24
lsrs r0, 24
bl ActionSelectionDestroyCursorAt
adds r4, 0x1
cmp r4, 0x3
ble _0805C062
ldr r1, =gActionSelectionCursor
ldr r0, =gActiveBank
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl ActionSelectionCreateCursorAt
ldr r0, =gText_WhatWillPkmnDo
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, =gDisplayedStringBattle
movs r1, 0x1
bl sub_814F9EC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleChooseAction
thumb_func_start PlayerHandleCmd19
PlayerHandleCmd19: @ 805C0B0
push {r4,lr}
sub sp, 0x4
ldr r4, =gActiveBank
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0805C108
str r0, [sp]
movs r0, 0x18
movs r1, 0x8
movs r2, 0x1D
movs r3, 0xD
bl sub_8056A3C
ldr r0, =gText_BattleYesNoChoice
movs r1, 0xC
bl sub_814F9EC
ldr r1, =gMultiUsePlayerCursor
movs r0, 0x1
strb r0, [r1]
movs r0, 0x1
bl BattleCreateYesNoCursorAt
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80599D4
str r1, [r0]
b _0805C10C
.pool
_0805C108:
bl PlayerBufferExecCompleted
_0805C10C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd19
thumb_func_start sub_805C114
sub_805C114: @ 805C114
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _0805C13E
ldr r0, =gBattle_BG0_X
strh r1, [r0]
ldr r1, =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =HandleInputChooseMove
str r1, [r0]
_0805C13E:
pop {r0}
bx r0
.pool
thumb_func_end sub_805C114
thumb_func_start sub_805C158
sub_805C158: @ 805C158
push {lr}
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r0, =gBattleStruct
ldr r0, [r0]
adds r1, r0
movs r0, 0xA6
lsls r0, 2
adds r1, r0
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
lsls r0, 24
cmp r0, 0
bne _0805C194
ldr r1, =gBattlePalaceMoveSelectionRngValue
ldr r0, =gRngValue
ldr r0, [r0]
str r0, [r1]
bl sub_805D19C
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r1, 0xA
bl EmitCmd33
bl PlayerBufferExecCompleted
_0805C194:
pop {r0}
bx r0
.pool
thumb_func_end sub_805C158
thumb_func_start PlayerHandleChooseMove
PlayerHandleChooseMove: @ 805C1A8
push {lr}
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 10
ands r0, r1
cmp r0, 0
beq _0805C1EC
ldr r2, =gActiveBank
ldrb r0, [r2]
ldr r1, =gBattleStruct
ldr r1, [r1]
adds r0, r1
movs r1, 0xA6
lsls r1, 2
adds r0, r1
movs r1, 0x8
strb r1, [r0]
ldr r1, =gBattleBankFunc
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805C158
b _0805C1FC
.pool
_0805C1EC:
bl sub_805C210
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =sub_805C114
_0805C1FC:
str r1, [r0]
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleChooseMove
thumb_func_start sub_805C210
sub_805C210: @ 805C210
push {lr}
bl MoveSelectionDisplayMoveNames
ldr r1, =gMultiUsePlayerCursor
movs r0, 0xFF
strb r0, [r1]
ldr r1, =gMoveSelectionCursor
ldr r0, =gActiveBank
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl MoveSelectionCreateCursorAt
bl MoveSelectionDisplayPpString
bl MoveSelectionDisplayPpNumber
bl MoveSelectionDisplayMoveType
pop {r0}
bx r0
.pool
thumb_func_end sub_805C210
thumb_func_start PlayerHandleOpenBag
PlayerHandleOpenBag: @ 805C248
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gBattleBankFunc
ldr r2, =gActiveBank
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80598A4
str r1, [r0]
ldr r1, =gBankInMenu
ldrb r0, [r2]
strb r0, [r1]
movs r3, 0
ldr r5, =gUnknown_0203CF00
ldr r4, =gBattleBufferA
_0805C276:
adds r0, r3, r5
ldrb r1, [r2]
lsls r1, 9
adds r1, 0x1
adds r1, r3, r1
adds r1, r4
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0x2
ble _0805C276
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleOpenBag
thumb_func_start PlayerHandleChoosePokemon
PlayerHandleChoosePokemon: @ 805C2AC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r3, 0
ldr r0, =gUnknown_0203CF00
mov r12, r0
ldr r1, =gBattleBufferA
mov r8, r1
ldr r2, =gActiveBank
ldr r7, =gBattleTypeFlags
mov r6, r12
mov r5, r8
adds r4, r2, 0
_0805C2C8:
adds r0, r3, r6
ldrb r1, [r4]
lsls r1, 9
adds r1, 0x4
adds r1, r3, r1
adds r1, r5
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0x2
ble _0805C2C8
ldr r0, [r7]
movs r1, 0x80
lsls r1, 11
ands r0, r1
cmp r0, 0
beq _0805C330
ldrb r3, [r2]
lsls r0, r3, 9
mov r1, r8
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
movs r0, 0xF
ands r0, r1
cmp r0, 0x2
beq _0805C330
ldr r1, =gBattlePartyID
lsls r0, r3, 1
adds r0, r1
ldrb r1, [r0]
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
movs r0, 0x1
mov r2, r12
bl EmitCmd34
bl PlayerBufferExecCompleted
b _0805C3BC
.pool
_0805C330:
ldr r0, =TaskDummy
movs r1, 0xFF
bl CreateTask
ldr r3, =gUnknown_03005D7C
ldr r4, =gActiveBank
ldrb r1, [r4]
adds r1, r3
movs r2, 0
mov r8, r2
strb r0, [r1]
ldr r5, =gTasks
ldrb r2, [r4]
adds r3, r2, r3
ldrb r0, [r3]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r5
ldr r5, =gBattleBufferA
lsls r2, 9
adds r6, r5, 0x1
adds r2, r6
ldrb r2, [r2]
movs r0, 0xF
ands r0, r2
strh r0, [r1, 0x8]
ldr r3, =gBattleStruct
ldr r1, [r3]
adds r1, 0x49
ldrb r0, [r4]
lsls r0, 9
adds r0, r6
ldrb r0, [r0]
lsrs r0, 4
strb r0, [r1]
ldr r2, [r3]
adds r2, 0x8B
ldrb r0, [r4]
lsls r0, 9
adds r1, r5, 0x2
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r1, [r3]
adds r1, 0xB0
ldrb r0, [r4]
lsls r0, 9
adds r5, 0x3
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
movs r0, 0x1
negs r0, r0
mov r1, r8
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80597CC
str r1, [r0]
ldr r1, =gBankInMenu
ldrb r0, [r4]
strb r0, [r1]
_0805C3BC:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleChoosePokemon
thumb_func_start PlayerHandleCmd23
PlayerHandleCmd23: @ 805C3EC
push {lr}
sub sp, 0x4
bl BattleMusicStop
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r1, 0x2
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
bl PlayerBufferExecCompleted
add sp, 0x4
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd23
thumb_func_start PlayerHandleHealthBarUpdate
PlayerHandleHealthBarUpdate: @ 805C410
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0
bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
ldrb r1, [r0]
lsls r1, 9
adds r0, r3, 0x2
adds r0, r1, r0
ldrb r2, [r0]
adds r3, 0x3
adds r1, r3
ldrb r0, [r1]
lsls r0, 8
orrs r2, r0
lsls r2, 16
asrs r7, r2, 16
cmp r7, 0
ble _0805C44A
ldr r1, =gUnknown_0203CD70
ldr r0, [r1]
adds r0, r7
str r0, [r1]
_0805C44A:
ldr r0, =0x00007fff
cmp r7, r0
beq _0805C4B4
ldr r6, =gBattlePartyID
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r4, =gPlayerParty
adds r0, r4
movs r1, 0x3A
bl GetMonData
mov r8, r0
mov r2, r9
ldrb r0, [r2]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
muls r0, r5
adds r0, r4
movs r1, 0x39
bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r1, =gHealthBoxesIds
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
bl SetBattleBarStruct
b _0805C4F2
.pool
_0805C4B4:
ldr r1, =gBattlePartyID
mov r2, r9
ldrb r0, [r2]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0x3A
bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r4, =gHealthBoxesIds
adds r1, r0, r4
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
bl SetBattleBarStruct
mov r2, r9
ldrb r0, [r2]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
movs r2, 0
bl UpdateHpTextInHealthbox
_0805C4F2:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =bx_t1_healthbar_update
str r1, [r0]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleHealthBarUpdate
thumb_func_start PlayerHandleExpUpdate
PlayerHandleExpUpdate: @ 805C528
push {r4-r7,lr}
ldr r5, =gBattleBufferA
ldr r6, =gActiveBank
ldrb r0, [r6]
lsls r0, 9
adds r1, r5, 0x1
adds r0, r1
ldrb r7, [r0]
movs r0, 0x64
adds r1, r7, 0
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
cmp r0, 0x63
bls _0805C560
bl PlayerBufferExecCompleted
b _0805C5AC
.pool
_0805C560:
movs r0, 0x1
bl LoadBattleBarGfx
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
ldrb r1, [r6]
lsls r1, 9
adds r0, r5, 0x2
adds r0, r1, r0
ldrb r4, [r0]
adds r0, r5, 0x3
adds r1, r0
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
ldr r0, =sub_80591B8
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r7, [r1, 0x8]
strh r4, [r1, 0xA]
ldrb r0, [r6]
strh r0, [r1, 0xC]
ldr r1, =gBattleBankFunc
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, =nullsub_21
str r1, [r0]
_0805C5AC:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleExpUpdate
thumb_func_start PlayerHandleStatusIconUpdate
PlayerHandleStatusIconUpdate: @ 805C5C4
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0805C618
ldr r0, =gHealthBoxesIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, =gBattlePartyID
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x9
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =sub_8059D60
str r1, [r0]
_0805C618:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleStatusIconUpdate
thumb_func_start PlayerHandleStatusAnimation
PlayerHandleStatusAnimation: @ 805C63C
push {r4,r5,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0805C68C
ldr r4, =gBattleBufferA
ldrb r3, [r5]
lsls r3, 9
adds r0, r4, 0x1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, 0x2
adds r1, r3, r1
ldrb r1, [r1]
adds r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
adds r2, r4, 0x4
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 16
orrs r1, r2
adds r4, 0x5
adds r3, r4
ldrb r2, [r3]
lsls r2, 24
orrs r1, r2
bl move_anim_start_t2_for_situation
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_8059D60
str r1, [r0]
_0805C68C:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleStatusAnimation
thumb_func_start PlayerHandleStatusXor
PlayerHandleStatusXor: @ 805C6A4
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
ldr r0, =gBattlePartyID
mov r8, r0
ldr r4, =gActiveBank
ldrb r0, [r4]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
adds r0, r5
movs r1, 0x37
bl GetMonData
ldr r2, =gBattleBufferA
ldrb r1, [r4]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
eors r0, r1
mov r1, sp
strb r0, [r1]
ldrb r0, [r4]
lsls r0, 1
add r0, r8
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0x37
mov r2, sp
bl SetMonData
bl PlayerBufferExecCompleted
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleStatusXor
thumb_func_start PlayerHandleDataTransfer
PlayerHandleDataTransfer: @ 805C710
push {lr}
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleDataTransfer
thumb_func_start PlayerHandleDMA3Transfer
PlayerHandleDMA3Transfer: @ 805C71C
push {r4,r5,lr}
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r2, 9
adds r0, r3, 0x1
adds r0, r2, r0
ldrb r5, [r0]
adds r0, r3, 0x2
adds r0, r2, r0
ldrb r0, [r0]
lsls r0, 8
orrs r5, r0
adds r0, r3, 0x3
adds r0, r2, r0
ldrb r0, [r0]
lsls r0, 16
orrs r5, r0
adds r0, r3, 0x4
adds r0, r2, r0
ldrb r4, [r0]
lsls r4, 24
adds r0, r3, 0x5
adds r0, r2, r0
ldrb r1, [r0]
adds r0, r3, 0x6
adds r0, r2, r0
ldrb r0, [r0]
lsls r0, 8
orrs r1, r0
lsls r1, 16
adds r3, 0x7
adds r2, r3
orrs r5, r4
lsrs r4, r1, 16
movs r0, 0x80
lsls r0, 5
cmp r4, r0
bhi _0805C78C
ldr r0, =0x040000d4
str r2, [r0]
str r5, [r0, 0x4]
lsrs r1, 17
movs r2, 0x80
lsls r2, 24
orrs r1, r2
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
b _0805C7B8
.pool
_0805C78C:
ldr r3, =0x040000d4
str r2, [r3]
str r5, [r3, 0x4]
ldr r0, =0x80000800
str r0, [r3, 0x8]
ldr r0, [r3, 0x8]
movs r0, 0x80
lsls r0, 5
adds r2, r0
adds r5, r0
ldr r1, =0xfffff000
adds r4, r1
cmp r4, r0
bhi _0805C78C
str r2, [r3]
str r5, [r3, 0x4]
lsrs r0, r4, 1
movs r1, 0x80
lsls r1, 24
orrs r0, r1
str r0, [r3, 0x8]
ldr r0, [r3, 0x8]
_0805C7B8:
bl PlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleDMA3Transfer
thumb_func_start PlayerHandlePlayBGM
PlayerHandlePlayBGM: @ 805C7D0
push {lr}
ldr r2, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r1, [r0]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayBGM
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandlePlayBGM
thumb_func_start PlayerHandleCmd32
PlayerHandleCmd32: @ 805C800
push {lr}
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd32
thumb_func_start PlayerHandleCmd33
PlayerHandleCmd33: @ 805C80C
push {lr}
movs r0, 0x1
movs r1, 0
movs r2, 0
bl EmitCmd33
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd33
thumb_func_start PlayerHandleCmd34
PlayerHandleCmd34: @ 805C820
push {lr}
movs r0, 0x1
movs r1, 0
movs r2, 0
bl EmitCmd34
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd34
thumb_func_start PlayerHandleCmd35
PlayerHandleCmd35: @ 805C834
push {lr}
movs r0, 0x1
movs r1, 0
bl EmitCmd35
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd35
thumb_func_start PlayerHandleCmd36
PlayerHandleCmd36: @ 805C848
push {lr}
movs r0, 0x1
movs r1, 0
bl EmitCmd36
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd36
thumb_func_start PlayerHandleCmd37
PlayerHandleCmd37: @ 805C85C
push {lr}
ldr r2, =gUnknown_02022D0C
ldrb r1, [r2]
movs r0, 0x80
negs r0, r0
ands r0, r1
strb r0, [r2]
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd37
thumb_func_start PlayerHandleCmd38
PlayerHandleCmd38: @ 805C878
push {lr}
ldr r3, =gUnknown_02022D0C
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
movs r1, 0x7F
ands r1, r0
ldrb r2, [r3]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd38
thumb_func_start PlayerHandleCmd39
PlayerHandleCmd39: @ 805C8B0
push {lr}
ldr r2, =gUnknown_02022D0C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd39
thumb_func_start PlayerHandleCmd40
PlayerHandleCmd40: @ 805C8C8
push {lr}
ldr r3, =gUnknown_02022D0C
ldr r1, [r3]
lsls r1, 24
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 7
ldrb r2, [r3]
movs r0, 0x7F
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd40
thumb_func_start PlayerHandleHitAnimation
PlayerHandleHitAnimation: @ 805C8F0
push {r4,lr}
ldr r3, =gSprites
ldr r2, =gBankSpriteIds
ldr r4, =gActiveBank
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _0805C924
bl PlayerBufferExecCompleted
b _0805C94E
.pool
_0805C924:
ldr r1, =gDoingBattleAnim
movs r0, 0x1
strb r0, [r1]
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x30]
ldrb r0, [r4]
bl sub_80769F4
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =DoHitAnimBlinkEffect
str r1, [r0]
_0805C94E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleHitAnimation
thumb_func_start PlayerHandleCmd42
PlayerHandleCmd42: @ 805C960
push {lr}
bl PlayerBufferExecCompleted
pop {r0}
bx r0
thumb_func_end PlayerHandleCmd42
thumb_func_start PlayerHandleEffectivenessSound
PlayerHandleEffectivenessSound: @ 805C96C
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
bne _0805C980
movs r3, 0xC0
_0805C980:
ldr r2, =gBattleBufferA
ldrb r1, [r4]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
lsls r1, r3, 24
asrs r1, 24
bl PlaySE12WithPanning
bl PlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleEffectivenessSound
thumb_func_start PlayerHandlePlayFanfareOrBGM
PlayerHandlePlayFanfareOrBGM: @ 805C9B0
push {r4,r5,lr}
ldr r4, =gBattleBufferA
ldr r5, =gActiveBank
ldrb r0, [r5]
lsls r3, r0, 9
adds r0, r4, 0x3
adds r0, r3, r0
ldrb r0, [r0]
cmp r0, 0
beq _0805C9EC
bl BattleMusicStop
ldrb r1, [r5]
lsls r1, 9
adds r0, r4, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, r4, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayBGM
b _0805CA00
.pool
_0805C9EC:
adds r0, r4, 0x1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, 0x2
adds r1, r3, r1
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayFanfare
_0805CA00:
bl PlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end PlayerHandlePlayFanfareOrBGM
thumb_func_start PlayerHandleFaintingCry
PlayerHandleFaintingCry: @ 805CA0C
push {lr}
ldr r1, =gBattlePartyID
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
negs r1, r1
movs r2, 0x5
bl PlayCry3
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleFaintingCry
thumb_func_start PlayerHandleIntroSlide
PlayerHandleIntroSlide: @ 805CA4C
push {lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
bl battle_intro_launch
ldr r2, =gUnknown_020243FC
ldrh r0, [r2]
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleIntroSlide
thumb_func_start PlayerHandleIntroTrainerBallThrow
PlayerHandleIntroTrainerBallThrow: @ 805CA80
push {r4-r7,lr}
ldr r6, =gBankSpriteIds
ldr r7, =gActiveBank
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, =gSprites
adds r0, r5
bl oamt_add_pos2_onto_pos1
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x32
strh r1, [r0, 0x2E]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =0x0000ffd8
strh r1, [r0, 0x32]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_80A6EEC
str r1, [r0]
ldrb r2, [r7]
adds r0, r2, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x38]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, =sub_805CC00
bl StoreSpriteCallbackInData6
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x1
bl StartSpriteAnim
ldr r0, =0x0000d6f8
bl AllocSpritePalette
adds r4, r0, 0
lsls r4, 24
ldr r1, =gTrainerBackPicPaletteTable
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
lsls r0, 3
adds r0, r1
ldr r0, [r0]
lsrs r4, 20
movs r2, 0x80
lsls r2, 1
adds r1, r4, r2
movs r2, 0x20
bl LoadCompressedPalette
ldrb r0, [r7]
adds r0, r6
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r4
strb r0, [r1, 0x5]
ldr r0, =task05_08033660
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r4, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
ldrb r0, [r7]
strh r0, [r1, 0x8]
ldr r3, =gBattleSpritesDataPtr
ldr r0, [r3]
ldrb r2, [r7]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0805CBA2
ldr r0, =gUnknown_020244B4
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
ldr r1, =sub_8073C30
str r1, [r0]
_0805CBA2:
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r0, [r2, 0x9]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
ldr r1, =gBattleBankFunc
ldrb r0, [r7]
lsls r0, 2
adds r0, r1
ldr r1, =nullsub_21
str r1, [r0]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleIntroTrainerBallThrow
thumb_func_start sub_805CC00
sub_805CC00: @ 805CC00
push {r4,r5,lr}
adds r5, r0, 0
ldrh r4, [r5, 0x38]
lsls r4, 24
lsrs r4, 24
bl FreeSpriteOamMatrix
ldrb r0, [r5, 0x5]
lsrs r0, 4
bl GetSpritePaletteTagByPaletteNum
lsls r0, 16
lsrs r0, 16
bl FreeSpritePaletteByTag
adds r0, r5, 0
bl DestroySprite
ldr r1, =gBattlePartyID
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
adds r1, r4, 0
bl BattleLoadPlayerMonSpriteGfx
ldr r0, =gBankSpriteIds
adds r4, r0
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r0, r1
movs r1, 0
bl StartSpriteAnim
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_805CC00
thumb_func_start task05_08033660
task05_08033660: @ 805CC68
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0xA]
movs r3, 0xA
ldrsh r0, [r1, r3]
cmp r0, 0x1E
bgt _0805CC94
adds r0, r2, 0x1
strh r0, [r1, 0xA]
b _0805CD50
.pool
_0805CC94:
ldr r7, =gActiveBank
ldrb r0, [r7]
mov r9, r0
ldrh r0, [r1, 0x8]
strb r0, [r7]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805CCB4
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _0805CCE4
_0805CCB4:
ldr r0, =gBattleBufferA
ldrb r1, [r7]
lsls r2, r1, 9
adds r0, 0x1
adds r2, r0
ldr r0, =gBattlePartyID
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strb r0, [r2]
ldrb r0, [r7]
movs r1, 0
bl sub_805B258
b _0805CD38
.pool
_0805CCE4:
ldr r4, =gBattleBufferA
ldrb r0, [r7]
lsls r1, r0, 9
adds r4, 0x1
adds r1, r4
ldr r5, =gBattlePartyID
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0
bl sub_805B258
ldrb r0, [r7]
movs r6, 0x2
eors r0, r6
strb r0, [r7]
ldrb r0, [r7]
lsls r1, r0, 9
adds r1, r4
lsls r0, 1
adds r0, r5
ldrh r0, [r0]
strb r0, [r1]
ldrb r1, [r7]
lsls r0, r1, 1
adds r0, r5
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, =gPlayerParty
adds r0, r2
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7]
movs r1, 0
bl sub_805B258
ldrb r0, [r7]
eors r0, r6
strb r0, [r7]
_0805CD38:
ldr r1, =gBattleBankFunc
ldr r2, =gActiveBank
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, =sub_8058B40
str r1, [r0]
mov r3, r9
strb r3, [r2]
mov r0, r8
bl DestroyTask
_0805CD50:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end task05_08033660
thumb_func_start PlayerHandleDrawPartyStatusSummary
PlayerHandleDrawPartyStatusSummary: @ 805CD74
push {r4-r6,lr}
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0805CDA4
adds r0, r2, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0805CDA4
bl PlayerBufferExecCompleted
b _0805CE18
.pool
_0805CDA4:
ldr r6, =gBattleSpritesDataPtr
ldr r0, [r6]
ldr r5, =gActiveBank
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
ldrb r0, [r5]
lsls r3, r0, 9
ldr r4, =gBattleBufferA + 4
adds r1, r3, r4
subs r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
movs r3, 0
strb r0, [r1]
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x5]
ldrb r2, [r5]
lsls r0, r2, 9
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0805CE0C
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x5D
strb r1, [r0, 0x5]
_0805CE0C:
ldr r0, =gBattleBankFunc
ldrb r1, [r5]
lsls r1, 2
adds r1, r0
ldr r0, =sub_805CE38
str r0, [r1]
_0805CE18:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleDrawPartyStatusSummary
thumb_func_start sub_805CE38
sub_805CE38: @ 805CE38
push {r4,lr}
ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r3, =gActiveBank
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x5]
adds r2, r1, 0x1
strb r2, [r0, 0x5]
lsls r1, 24
lsrs r1, 24
cmp r1, 0x5C
bls _0805CE70
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strb r1, [r0, 0x5]
bl PlayerBufferExecCompleted
_0805CE70:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_805CE38
thumb_func_start PlayerHandleCmd49
PlayerHandleCmd49: @ 805CE80
push {lr}
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gActiveBank
ldrb r3, [r0]
ldr r1, [r1, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0805CEB2
ldr r2, =gTasks
ldr r0, =gUnknown_020244B4
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, =sub_8073C30
str r1, [r0]
_0805CEB2:
bl PlayerBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd49
thumb_func_start PlayerHandleCmd50
PlayerHandleCmd50: @ 805CED0
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
movs r1, 0x1
bl dp11b_obj_free
ldrb r0, [r4]
movs r1, 0
bl dp11b_obj_free
bl PlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd50
thumb_func_start PlayerHandleSpriteInvisibility
PlayerHandleSpriteInvisibility: @ 805CEF4
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _0805CF3A
ldr r3, =gSprites
ldr r0, =gBankSpriteIds
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldr r0, =gBattleBufferA
lsls r1, 9
adds r0, 0x1
adds r1, r0
adds r2, 0x3E
movs r0, 0x1
ldrb r1, [r1]
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4]
bl sub_805E408
_0805CF3A:
bl PlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleSpriteInvisibility
thumb_func_start PlayerHandleBattleAnimation
PlayerHandleBattleAnimation: @ 805CF54
push {r4-r6,lr}
sub sp, 0x4
ldr r5, =gActiveBank
ldrb r0, [r5]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0805CFB6
ldr r4, =gBattleBufferA
ldrb r2, [r5]
lsls r1, r2, 9
adds r0, r4, 0x1
adds r0, r1, r0
ldrb r6, [r0]
adds r0, r4, 0x2
adds r0, r1, r0
ldrb r3, [r0]
adds r4, 0x3
adds r1, r4
ldrb r0, [r1]
lsls r0, 8
orrs r3, r0
str r3, [sp]
adds r0, r2, 0
adds r1, r2, 0
adds r3, r6, 0
bl move_anim_start_t3
lsls r0, 24
cmp r0, 0
beq _0805CFA4
bl PlayerBufferExecCompleted
b _0805CFB0
.pool
_0805CFA4:
ldr r0, =gBattleBankFunc
ldrb r1, [r5]
lsls r1, 2
adds r1, r0
ldr r0, =sub_8059D90
str r0, [r1]
_0805CFB0:
adds r0, r6, 0
bl sub_817E32C
_0805CFB6:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleBattleAnimation
thumb_func_start PlayerHandleLinkStandbyMsg
PlayerHandleLinkStandbyMsg: @ 805CFC8
push {r4,r5,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
lsls r0, 9
ldr r4, =gBattleBufferA + 2
adds r0, r4
bl sub_81851A8
ldrb r0, [r5]
lsls r0, 9
subs r4, 0x1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _0805D002
cmp r0, 0x1
bgt _0805CFF8
cmp r0, 0
beq _0805CFFE
b _0805D020
.pool
_0805CFF8:
cmp r0, 0x2
beq _0805D01C
b _0805D020
_0805CFFE:
bl PrintLinkStandbyMsg
_0805D002:
ldr r4, =gActiveBank
ldrb r0, [r4]
movs r1, 0x1
bl dp11b_obj_free
ldrb r0, [r4]
movs r1, 0
bl dp11b_obj_free
b _0805D020
.pool
_0805D01C:
bl PrintLinkStandbyMsg
_0805D020:
bl PlayerBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end PlayerHandleLinkStandbyMsg
thumb_func_start PlayerHandleResetActionMoveSelection
PlayerHandleResetActionMoveSelection: @ 805D02C
push {r4,lr}
ldr r1, =gBattleBufferA
ldr r4, =gActiveBank
ldrb r3, [r4]
lsls r0, r3, 9
adds r1, 0x1
adds r0, r1
ldrb r2, [r0]
cmp r2, 0x1
beq _0805D074
cmp r2, 0x1
bgt _0805D054
cmp r2, 0
beq _0805D05A
b _0805D084
.pool
_0805D054:
cmp r2, 0x2
beq _0805D07C
b _0805D084
_0805D05A:
ldr r0, =gActionSelectionCursor
adds r0, r3, r0
strb r2, [r0]
ldr r1, =gMoveSelectionCursor
ldrb r0, [r4]
adds r0, r1
strb r2, [r0]
b _0805D084
.pool
_0805D074:
ldr r0, =gActionSelectionCursor
b _0805D07E
.pool
_0805D07C:
ldr r0, =gMoveSelectionCursor
_0805D07E:
adds r0, r3, r0
movs r1, 0
strb r1, [r0]
_0805D084:
bl PlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleResetActionMoveSelection
thumb_func_start PlayerHandleCmd55
PlayerHandleCmd55: @ 805D094
push {r4,r5,lr}
ldr r5, =gActiveBank
ldrb r0, [r5]
lsls r0, 9
ldr r4, =gBattleBufferA + 4
adds r0, r4
bl sub_81851A8
ldr r2, =gBattleOutcome
ldrb r0, [r5]
lsls r0, 9
subs r1, r4, 0x3
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r0, =gSaveBlock2Ptr
ldr r3, [r0]
ldrb r0, [r5]
lsls r0, 9
subs r4, 0x2
adds r0, r4
ldrb r0, [r0]
ldr r1, =0x00000ca9
adds r3, r1
movs r1, 0x1
ands r1, r0
lsls r1, 3
ldrb r2, [r3]
movs r0, 0x9
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r0, 0x5
bl FadeOutMapMusic
movs r0, 0x3
bl BeginFastPaletteFade
bl PlayerBufferExecCompleted
ldr r1, =gBattleBankFunc
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, =sub_80587B0
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end PlayerHandleCmd55
thumb_func_start nullsub_22
nullsub_22: @ 805D114
bx lr
thumb_func_end nullsub_22
.align 2, 0 @ Don't pad with nop.