5702 lines
88 KiB
ArmAsm
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.
|