mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-26 13:32:49 -04:00
11338 lines
196 KiB
ArmAsm
11338 lines
196 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start nullsub_21
|
|
nullsub_21: @ 0x08057068
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end nullsub_21
|
|
|
|
thumb_func_start SetControllerToPlayer
|
|
SetControllerToPlayer: @ 0x0805706C
|
|
ldr r1, _08057088
|
|
ldr r0, _0805708C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08057090
|
|
str r1, [r0]
|
|
ldr r0, _08057094
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r0, _08057098
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08057088: .4byte 0x03005AC0
|
|
_0805708C: .4byte 0x02023D08
|
|
_08057090: .4byte 0x08057115
|
|
_08057094: .4byte 0x0202415D
|
|
_08057098: .4byte 0x02024170
|
|
thumb_func_end SetControllerToPlayer
|
|
|
|
thumb_func_start PlayerBufferExecCompleted
|
|
PlayerBufferExecCompleted: @ 0x0805709C
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r1, _080570DC
|
|
ldr r4, _080570E0
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080570E4
|
|
str r1, [r0]
|
|
ldr r0, _080570E8
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080570F0
|
|
bl GetMultiplayerId
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
movs r1, #4
|
|
mov r2, sp
|
|
bl PrepareBufferDataTransferLink
|
|
ldr r1, _080570EC
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
strb r1, [r0]
|
|
b _08057102
|
|
.align 2, 0
|
|
_080570DC: .4byte 0x03005AC0
|
|
_080570E0: .4byte 0x02023D08
|
|
_080570E4: .4byte 0x08057115
|
|
_080570E8: .4byte 0x02022C90
|
|
_080570EC: .4byte 0x02022D08
|
|
_080570F0:
|
|
ldr r2, _0805710C
|
|
ldr r1, _08057110
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
bics r0, r1
|
|
str r0, [r2]
|
|
_08057102:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805710C: .4byte 0x02023D0C
|
|
_08057110: .4byte 0x082FACB4
|
|
thumb_func_end PlayerBufferExecCompleted
|
|
|
|
thumb_func_start PlayerBufferRunCommand
|
|
PlayerBufferRunCommand: @ 0x08057114
|
|
push {lr}
|
|
ldr r2, _08057148
|
|
ldr r1, _0805714C
|
|
ldr r0, _08057150
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08057160
|
|
ldr r0, _08057154
|
|
lsls r1, r3, #9
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x38
|
|
bhi _0805715C
|
|
ldr r0, _08057158
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
bl _call_via_r0
|
|
b _08057160
|
|
.align 2, 0
|
|
_08057148: .4byte 0x02023D0C
|
|
_0805714C: .4byte 0x082FACB4
|
|
_08057150: .4byte 0x02023D08
|
|
_08057154: .4byte 0x02022D08
|
|
_08057158: .4byte 0x082ECE9C
|
|
_0805715C:
|
|
bl PlayerBufferExecCompleted
|
|
_08057160:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerBufferRunCommand
|
|
|
|
thumb_func_start CompleteOnBankSpritePosX_0
|
|
CompleteOnBankSpritePosX_0: @ 0x08057164
|
|
push {lr}
|
|
ldr r2, _0805718C
|
|
ldr r1, _08057190
|
|
ldr r0, _08057194
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0x24
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0
|
|
bne _08057186
|
|
bl PlayerBufferExecCompleted
|
|
_08057186:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805718C: .4byte 0x020205AC
|
|
_08057190: .4byte 0x02023E88
|
|
_08057194: .4byte 0x02023D08
|
|
thumb_func_end CompleteOnBankSpritePosX_0
|
|
|
|
thumb_func_start sub_08057198
|
|
sub_08057198: @ 0x08057198
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r3, _080571E8
|
|
ldr r4, _080571EC
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, #9
|
|
adds r1, r3, #2
|
|
adds r1, r2, r1
|
|
ldrb r5, [r1]
|
|
adds r3, #3
|
|
adds r2, r2, r3
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #8
|
|
orrs r5, r1
|
|
movs r1, #1
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl DoBounceEffect
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl DoBounceEffect
|
|
ldr r0, _080571F0
|
|
ldrh r1, [r0, #0x30]
|
|
movs r0, #0xf0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080571FC
|
|
ldr r0, _080571F4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x13]
|
|
cmp r0, #2
|
|
bne _080571FC
|
|
ldr r1, _080571F8
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
b _08057200
|
|
.align 2, 0
|
|
_080571E8: .4byte 0x02022D08
|
|
_080571EC: .4byte 0x02023D08
|
|
_080571F0: .4byte 0x03002360
|
|
_080571F4: .4byte 0x03005AF0
|
|
_080571F8: .4byte 0x02024170
|
|
_080571FC:
|
|
ldr r1, _08057230
|
|
movs r0, #0
|
|
_08057200:
|
|
strb r0, [r1]
|
|
ldr r0, _08057234
|
|
ldrh r2, [r0, #0x2e]
|
|
movs r3, #1
|
|
adds r0, r3, #0
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057268
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _08057238
|
|
ldr r0, _0805723C
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _08057250
|
|
cmp r0, #1
|
|
bgt _08057240
|
|
cmp r0, #0
|
|
beq _0805724A
|
|
b _080573D2
|
|
.align 2, 0
|
|
_08057230: .4byte 0x02024170
|
|
_08057234: .4byte 0x03002360
|
|
_08057238: .4byte 0x02024150
|
|
_0805723C: .4byte 0x02023D08
|
|
_08057240:
|
|
cmp r0, #2
|
|
beq _08057256
|
|
cmp r0, #3
|
|
beq _0805725C
|
|
b _080573D2
|
|
_0805724A:
|
|
movs r0, #1
|
|
movs r1, #0
|
|
b _080573CC
|
|
_08057250:
|
|
movs r0, #1
|
|
movs r1, #1
|
|
b _080573CC
|
|
_08057256:
|
|
movs r0, #1
|
|
movs r1, #2
|
|
b _080573CC
|
|
_0805725C:
|
|
movs r0, #1
|
|
movs r1, #3
|
|
movs r2, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
b _080573D2
|
|
_08057268:
|
|
movs r0, #0x20
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080572A8
|
|
ldr r5, _080572A0
|
|
ldr r4, _080572A4
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08057284
|
|
b _080573F8
|
|
_08057284:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
bl ActionSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, #1
|
|
b _08057342
|
|
.align 2, 0
|
|
_080572A0: .4byte 0x02024150
|
|
_080572A4: .4byte 0x02023D08
|
|
_080572A8:
|
|
movs r0, #0x10
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080572E8
|
|
ldr r5, _080572E0
|
|
ldr r4, _080572E4
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080572C4
|
|
b _080573F8
|
|
_080572C4:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
bl ActionSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, #1
|
|
b _08057342
|
|
.align 2, 0
|
|
_080572E0: .4byte 0x02024150
|
|
_080572E4: .4byte 0x02023D08
|
|
_080572E8:
|
|
movs r7, #0x40
|
|
adds r0, r7, #0
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057310
|
|
ldr r5, _08057308
|
|
ldr r4, _0805730C
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080573F8
|
|
b _0805732A
|
|
.align 2, 0
|
|
_08057308: .4byte 0x02024150
|
|
_0805730C: .4byte 0x02023D08
|
|
_08057310:
|
|
movs r0, #0x80
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0805735C
|
|
ldr r5, _08057354
|
|
ldr r4, _08057358
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080573F8
|
|
_0805732A:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
bl ActionSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, #2
|
|
_08057342:
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl SetCB2ToReshowScreenAfterMenu
|
|
b _080573F8
|
|
.align 2, 0
|
|
_08057354: .4byte 0x02024150
|
|
_08057358: .4byte 0x02023D08
|
|
_0805735C:
|
|
movs r0, #2
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _0805736A
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x3b
|
|
bls _080573EC
|
|
_0805736A:
|
|
ldr r4, _080573D8
|
|
ldr r0, [r4]
|
|
ands r0, r3
|
|
cmp r0, #0
|
|
beq _080573F8
|
|
ldr r6, _080573DC
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #2
|
|
bne _080573F8
|
|
movs r0, #0
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _080573E0
|
|
ldrb r1, [r1]
|
|
ldr r2, _080573E4
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x16
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _080573F8
|
|
ldr r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, #0
|
|
bne _080573F8
|
|
ldr r0, _080573E8
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #1
|
|
bne _080573C2
|
|
cmp r5, #0xc
|
|
bhi _080573F8
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl AddBagItem
|
|
_080573C2:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
movs r0, #1
|
|
movs r1, #0xc
|
|
_080573CC:
|
|
movs r2, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
_080573D2:
|
|
bl PlayerBufferExecCompleted
|
|
b _080573F8
|
|
.align 2, 0
|
|
_080573D8: .4byte 0x02022C90
|
|
_080573DC: .4byte 0x02023D08
|
|
_080573E0: .4byte 0x02023EB4
|
|
_080573E4: .4byte 0x082FACB4
|
|
_080573E8: .4byte 0x02022D08
|
|
_080573EC:
|
|
movs r0, #8
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080573F8
|
|
bl SwapHpBarsWithHpText
|
|
_080573F8:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_08057198
|
|
|
|
thumb_func_start sub_08057400
|
|
sub_08057400: @ 0x08057400
|
|
push {r4, lr}
|
|
ldr r4, _08057428
|
|
ldrb r0, [r4]
|
|
movs r1, #1
|
|
bl EndBounceEffect
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl EndBounceEffect
|
|
ldr r1, _0805742C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08057430
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057428: .4byte 0x02023D08
|
|
_0805742C: .4byte 0x03005AC0
|
|
_08057430: .4byte 0x08057435
|
|
thumb_func_end sub_08057400
|
|
|
|
thumb_func_start HandleInputChooseTarget
|
|
HandleInputChooseTarget: @ 0x08057434
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
ldr r1, _08057494
|
|
mov r0, sp
|
|
movs r2, #4
|
|
bl memcpy
|
|
ldr r0, _08057498
|
|
ldrb r0, [r0]
|
|
movs r1, #1
|
|
movs r2, #0xf
|
|
movs r3, #1
|
|
bl DoBounceEffect
|
|
movs r4, #0
|
|
ldr r0, _0805749C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08057476
|
|
_0805745A:
|
|
ldr r0, _08057498
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _0805746C
|
|
lsls r0, r4, #0x18
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #1
|
|
bl EndBounceEffect
|
|
_0805746C:
|
|
adds r4, #1
|
|
ldr r0, _0805749C
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0805745A
|
|
_08057476:
|
|
ldr r2, _080574A0
|
|
ldrh r1, [r2, #0x2c]
|
|
movs r0, #0xf0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080574AC
|
|
ldr r0, _080574A4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x13]
|
|
cmp r0, #2
|
|
bne _080574AC
|
|
ldr r1, _080574A8
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
b _080574B0
|
|
.align 2, 0
|
|
_08057494: .4byte 0x082ECF80
|
|
_08057498: .4byte 0x03005AD4
|
|
_0805749C: .4byte 0x02023D10
|
|
_080574A0: .4byte 0x03002360
|
|
_080574A4: .4byte 0x03005AF0
|
|
_080574A8: .4byte 0x02024170
|
|
_080574AC:
|
|
ldr r1, _08057504
|
|
movs r0, #0
|
|
_080574B0:
|
|
strb r0, [r1]
|
|
ldrh r2, [r2, #0x2e]
|
|
movs r0, #1
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057520
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r2, _08057508
|
|
ldr r1, _0805750C
|
|
ldr r4, _08057510
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _08057514
|
|
str r1, [r0]
|
|
ldr r1, _08057518
|
|
ldr r0, _0805751C
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
bl BtlController_EmitTwoReturnValues
|
|
ldrb r0, [r4]
|
|
movs r1, #1
|
|
bl EndBounceEffect
|
|
bl PlayerBufferExecCompleted
|
|
b _080577D8
|
|
.align 2, 0
|
|
_08057504: .4byte 0x02024170
|
|
_08057508: .4byte 0x020205AC
|
|
_0805750C: .4byte 0x02023E88
|
|
_08057510: .4byte 0x03005AD4
|
|
_08057514: .4byte 0x08039771
|
|
_08057518: .4byte 0x02024154
|
|
_0805751C: .4byte 0x02023D08
|
|
_08057520:
|
|
movs r0, #2
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _0805752E
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x3b
|
|
bls _0805759C
|
|
_0805752E:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r2, _08057580
|
|
ldr r1, _08057584
|
|
ldr r5, _08057588
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _0805758C
|
|
str r1, [r0]
|
|
ldr r1, _08057590
|
|
ldr r4, _08057594
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08057598
|
|
str r1, [r0]
|
|
ldrb r0, [r4]
|
|
movs r1, #1
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl DoBounceEffect
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl DoBounceEffect
|
|
ldrb r0, [r5]
|
|
movs r1, #1
|
|
bl EndBounceEffect
|
|
b _080577D8
|
|
.align 2, 0
|
|
_08057580: .4byte 0x020205AC
|
|
_08057584: .4byte 0x02023E88
|
|
_08057588: .4byte 0x03005AD4
|
|
_0805758C: .4byte 0x08039771
|
|
_08057590: .4byte 0x03005AC0
|
|
_08057594: .4byte 0x02023D08
|
|
_08057598: .4byte 0x0805780D
|
|
_0805759C:
|
|
movs r0, #0x60
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _080575A6
|
|
b _080576C0
|
|
_080575A6:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r2, _080575D8
|
|
ldr r1, _080575DC
|
|
ldr r3, _080575E0
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _080575E4
|
|
str r1, [r0]
|
|
adds r5, r3, #0
|
|
_080575C8:
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
movs r4, #0
|
|
mov r0, sp
|
|
b _080575F2
|
|
.align 2, 0
|
|
_080575D8: .4byte 0x020205AC
|
|
_080575DC: .4byte 0x02023E88
|
|
_080575E0: .4byte 0x03005AD4
|
|
_080575E4: .4byte 0x08039771
|
|
_080575E8:
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
bgt _080575F8
|
|
mov r2, sp
|
|
adds r0, r2, r4
|
|
_080575F2:
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080575E8
|
|
_080575F8:
|
|
subs r4, #1
|
|
cmp r4, #0
|
|
bge _08057600
|
|
movs r4, #4
|
|
_08057600:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r5]
|
|
ldr r1, _08057634
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _080575F8
|
|
movs r4, #0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _0805767E
|
|
cmp r0, #1
|
|
bgt _08057638
|
|
cmp r0, #0
|
|
beq _08057642
|
|
b _08057680
|
|
.align 2, 0
|
|
_08057634: .4byte 0x02023D10
|
|
_08057638:
|
|
cmp r0, #2
|
|
beq _08057642
|
|
cmp r0, #3
|
|
beq _0805767E
|
|
b _08057680
|
|
_08057642:
|
|
ldr r2, _080576A0
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
bne _0805767E
|
|
ldr r1, _080576A4
|
|
ldrb r2, [r2]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080576A8
|
|
adds r0, r0, r1
|
|
ldr r1, _080576AC
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
adds r1, #0xd
|
|
bl GetMonData
|
|
ldr r2, _080576B0
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1, #6]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057680
|
|
_0805767E:
|
|
adds r4, #1
|
|
_08057680:
|
|
ldr r0, _080576B4
|
|
ldrb r1, [r0]
|
|
ldr r2, _080576B8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
ldr r0, _080576BC
|
|
cmp r1, #0
|
|
beq _08057698
|
|
movs r4, #0
|
|
_08057698:
|
|
cmp r4, #0
|
|
beq _080575C8
|
|
b _080577C0
|
|
.align 2, 0
|
|
_080576A0: .4byte 0x02023D08
|
|
_080576A4: .4byte 0x02023D12
|
|
_080576A8: .4byte 0x02024190
|
|
_080576AC: .4byte 0x02024154
|
|
_080576B0: .4byte 0x082ED220
|
|
_080576B4: .4byte 0x02023EB4
|
|
_080576B8: .4byte 0x082FACB4
|
|
_080576BC: .4byte 0x03005AD4
|
|
_080576C0:
|
|
movs r0, #0x90
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _080576CA
|
|
b _080577D8
|
|
_080576CA:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r2, _080576FC
|
|
ldr r1, _08057700
|
|
ldr r3, _08057704
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _08057708
|
|
str r1, [r0]
|
|
adds r5, r3, #0
|
|
_080576EC:
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
movs r4, #0
|
|
mov r0, sp
|
|
b _08057716
|
|
.align 2, 0
|
|
_080576FC: .4byte 0x020205AC
|
|
_08057700: .4byte 0x02023E88
|
|
_08057704: .4byte 0x03005AD4
|
|
_08057708: .4byte 0x08039771
|
|
_0805770C:
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
bgt _0805771C
|
|
mov r2, sp
|
|
adds r0, r2, r4
|
|
_08057716:
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _0805770C
|
|
_0805771C:
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
ble _08057724
|
|
movs r4, #0
|
|
_08057724:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
bl GetBattlerAtPosition
|
|
strb r0, [r5]
|
|
ldr r1, _08057758
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _0805771C
|
|
movs r4, #0
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _080577A2
|
|
cmp r0, #1
|
|
bgt _0805775C
|
|
cmp r0, #0
|
|
beq _08057766
|
|
b _080577A4
|
|
.align 2, 0
|
|
_08057758: .4byte 0x02023D10
|
|
_0805775C:
|
|
cmp r0, #2
|
|
beq _08057766
|
|
cmp r0, #3
|
|
beq _080577A2
|
|
b _080577A4
|
|
_08057766:
|
|
ldr r2, _080577E0
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r5]
|
|
cmp r0, r1
|
|
bne _080577A2
|
|
ldr r1, _080577E4
|
|
ldrb r2, [r2]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080577E8
|
|
adds r0, r0, r1
|
|
ldr r1, _080577EC
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
adds r1, #0xd
|
|
bl GetMonData
|
|
ldr r2, _080577F0
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1, #6]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080577A4
|
|
_080577A2:
|
|
adds r4, #1
|
|
_080577A4:
|
|
ldr r0, _080577F4
|
|
ldrb r1, [r0]
|
|
ldr r2, _080577F8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
ldr r0, _080577FC
|
|
cmp r1, #0
|
|
beq _080577BC
|
|
movs r4, #0
|
|
_080577BC:
|
|
cmp r4, #0
|
|
beq _080576EC
|
|
_080577C0:
|
|
ldr r2, _08057800
|
|
ldr r1, _08057804
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _08057808
|
|
str r1, [r0]
|
|
_080577D8:
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080577E0: .4byte 0x02023D08
|
|
_080577E4: .4byte 0x02023D12
|
|
_080577E8: .4byte 0x02024190
|
|
_080577EC: .4byte 0x02024154
|
|
_080577F0: .4byte 0x082ED220
|
|
_080577F4: .4byte 0x02023EB4
|
|
_080577F8: .4byte 0x082FACB4
|
|
_080577FC: .4byte 0x03005AD4
|
|
_08057800: .4byte 0x020205AC
|
|
_08057804: .4byte 0x02023E88
|
|
_08057808: .4byte 0x0803971D
|
|
thumb_func_end HandleInputChooseTarget
|
|
|
|
thumb_func_start HandleInputChooseMove
|
|
HandleInputChooseMove: @ 0x0805780C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r0, #0
|
|
mov r8, r0
|
|
ldr r3, _08057840
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #9
|
|
ldr r1, _08057844
|
|
adds r6, r0, r1
|
|
ldr r2, _08057848
|
|
ldrh r1, [r2, #0x2c]
|
|
movs r0, #0xf0
|
|
ands r0, r1
|
|
adds r7, r3, #0
|
|
cmp r0, #0
|
|
beq _08057854
|
|
ldr r0, _0805784C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x13]
|
|
cmp r0, #2
|
|
bne _08057854
|
|
ldr r1, _08057850
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
b _08057858
|
|
.align 2, 0
|
|
_08057840: .4byte 0x02023D08
|
|
_08057844: .4byte 0x02022D0C
|
|
_08057848: .4byte 0x03002360
|
|
_0805784C: .4byte 0x03005AF0
|
|
_08057850: .4byte 0x02024170
|
|
_08057854:
|
|
ldr r1, _0805789C
|
|
movs r0, #0
|
|
_08057858:
|
|
strb r0, [r1]
|
|
ldrh r2, [r2, #0x2e]
|
|
movs r5, #1
|
|
adds r0, r5, #0
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08057868
|
|
b _08057A14
|
|
_08057868:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _080578A0
|
|
ldr r0, _080578A4
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r1, r6, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, #0xae
|
|
bne _080578A8
|
|
ldrb r0, [r6, #0x12]
|
|
movs r4, #0
|
|
cmp r0, #7
|
|
beq _080578B6
|
|
ldrb r1, [r6, #0x13]
|
|
movs r0, #7
|
|
eors r1, r0
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
asrs r4, r0, #0x1f
|
|
movs r0, #0x10
|
|
ands r4, r0
|
|
b _080578B6
|
|
.align 2, 0
|
|
_0805789C: .4byte 0x02024170
|
|
_080578A0: .4byte 0x02024154
|
|
_080578A4: .4byte 0x02023D08
|
|
_080578A8:
|
|
ldr r2, _080578C8
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r4, [r0, #6]
|
|
_080578B6:
|
|
movs r0, #0x10
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _080578D4
|
|
ldr r0, _080578CC
|
|
ldr r1, _080578D0
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _080578EE
|
|
.align 2, 0
|
|
_080578C8: .4byte 0x082ED220
|
|
_080578CC: .4byte 0x03005AD4
|
|
_080578D0: .4byte 0x02023D08
|
|
_080578D4:
|
|
ldr r0, _0805791C
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
movs r2, #1
|
|
movs r0, #1
|
|
ands r0, r1
|
|
eors r0, r2
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08057920
|
|
strb r0, [r1]
|
|
_080578EE:
|
|
ldr r5, _08057924
|
|
ldr r0, _0805791C
|
|
ldrb r3, [r0]
|
|
lsls r2, r3, #9
|
|
adds r1, r5, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r7, r0, #0
|
|
cmp r1, #0
|
|
bne _08057928
|
|
movs r0, #2
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0805796A
|
|
adds r0, r5, #2
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0805796A
|
|
movs r0, #1
|
|
add r8, r0
|
|
b _0805796A
|
|
.align 2, 0
|
|
_0805791C: .4byte 0x02023D08
|
|
_08057920: .4byte 0x03005AD4
|
|
_08057924: .4byte 0x02022D08
|
|
_08057928:
|
|
movs r0, #0x7d
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _08057934
|
|
movs r0, #1
|
|
add r8, r0
|
|
_08057934:
|
|
ldr r0, _08057984
|
|
adds r0, r3, r0
|
|
adds r1, r6, #0
|
|
adds r1, #8
|
|
ldrb r0, [r0]
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
beq _08057972
|
|
movs r0, #0x12
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
bne _0805796A
|
|
movs r0, #0
|
|
bl CountAliveMonsInBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bhi _0805796A
|
|
ldrb r0, [r7]
|
|
bl GetDefaultMoveTarget
|
|
ldr r1, _08057988
|
|
strb r0, [r1]
|
|
movs r0, #0
|
|
mov r8, r0
|
|
_0805796A:
|
|
ldr r7, _0805798C
|
|
mov r0, r8
|
|
cmp r0, #0
|
|
bne _08057990
|
|
_08057972:
|
|
ldr r1, _08057984
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
ldr r0, _08057988
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
b _08057A2C
|
|
.align 2, 0
|
|
_08057984: .4byte 0x02024154
|
|
_08057988: .4byte 0x03005AD4
|
|
_0805798C: .4byte 0x02023D08
|
|
_08057990:
|
|
ldr r1, _080579AC
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080579B0
|
|
str r1, [r0]
|
|
movs r0, #0x12
|
|
ands r4, r0
|
|
cmp r4, #0
|
|
beq _080579B8
|
|
ldr r1, _080579B4
|
|
ldrb r0, [r7]
|
|
b _080579E8
|
|
.align 2, 0
|
|
_080579AC: .4byte 0x03005AC0
|
|
_080579B0: .4byte 0x08057435
|
|
_080579B4: .4byte 0x03005AD4
|
|
_080579B8:
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _080579D8
|
|
ldrb r1, [r1]
|
|
ldr r2, _080579DC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x16
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _080579E0
|
|
movs r0, #3
|
|
b _080579E2
|
|
.align 2, 0
|
|
_080579D8: .4byte 0x02023EB4
|
|
_080579DC: .4byte 0x082FACB4
|
|
_080579E0:
|
|
movs r0, #1
|
|
_080579E2:
|
|
bl GetBattlerAtPosition
|
|
ldr r1, _08057A04
|
|
_080579E8:
|
|
strb r0, [r1]
|
|
ldr r2, _08057A08
|
|
ldr r1, _08057A0C
|
|
ldr r0, _08057A04
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _08057A10
|
|
b _08057BAC
|
|
.align 2, 0
|
|
_08057A04: .4byte 0x03005AD4
|
|
_08057A08: .4byte 0x020205AC
|
|
_08057A0C: .4byte 0x02023E88
|
|
_08057A10: .4byte 0x0803971D
|
|
_08057A14:
|
|
movs r6, #2
|
|
adds r0, r6, #0
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08057A24
|
|
ldrb r0, [r1]
|
|
cmp r0, #0x3b
|
|
bls _08057A40
|
|
_08057A24:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r2, _08057A3C
|
|
_08057A2C:
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
bl BtlController_EmitTwoReturnValues
|
|
bl PlayerBufferExecCompleted
|
|
b _08057BAE
|
|
.align 2, 0
|
|
_08057A3C: .4byte 0x0000FFFF
|
|
_08057A40:
|
|
movs r0, #0x20
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057A70
|
|
ldr r4, _08057A6C
|
|
ldrb r0, [r7]
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08057A5A
|
|
b _08057BAE
|
|
_08057A5A:
|
|
ldrb r0, [r2]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r7]
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
movs r2, #1
|
|
eors r0, r2
|
|
b _08057B18
|
|
.align 2, 0
|
|
_08057A6C: .4byte 0x02024154
|
|
_08057A70:
|
|
movs r0, #0x10
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057AB4
|
|
ldr r4, _08057AAC
|
|
ldrb r0, [r7]
|
|
adds r3, r0, r4
|
|
ldrb r2, [r3]
|
|
movs r6, #1
|
|
adds r0, r5, #0
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057A8C
|
|
b _08057BAE
|
|
_08057A8C:
|
|
ldr r1, _08057AB0
|
|
adds r0, r6, #0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
blo _08057A9A
|
|
b _08057BAE
|
|
_08057A9A:
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r7]
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
eors r0, r6
|
|
b _08057B18
|
|
.align 2, 0
|
|
_08057AAC: .4byte 0x02024154
|
|
_08057AB0: .4byte 0x03005AD8
|
|
_08057AB4:
|
|
movs r0, #0x40
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057AE4
|
|
ldr r4, _08057AE0
|
|
ldrb r0, [r7]
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2]
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057BAE
|
|
ldrb r0, [r2]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r7]
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
movs r2, #2
|
|
eors r0, r2
|
|
b _08057B18
|
|
.align 2, 0
|
|
_08057AE0: .4byte 0x02024154
|
|
_08057AE4:
|
|
movs r0, #0x80
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057B40
|
|
ldr r4, _08057B38
|
|
ldrb r0, [r7]
|
|
adds r3, r0, r4
|
|
ldrb r2, [r3]
|
|
movs r5, #2
|
|
adds r0, r6, #0
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08057BAE
|
|
ldr r1, _08057B3C
|
|
adds r0, r5, #0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhs _08057BAE
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r7]
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
eors r0, r5
|
|
_08057B18:
|
|
strb r0, [r1]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
bl MoveSelectionDisplayPpNumber
|
|
bl ActionSelectionCreateCursorAt
|
|
b _08057BAE
|
|
.align 2, 0
|
|
_08057B38: .4byte 0x02024154
|
|
_08057B3C: .4byte 0x03005AD8
|
|
_08057B40:
|
|
movs r0, #4
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _08057BAE
|
|
ldr r0, _08057B78
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bls _08057BAE
|
|
ldr r0, _08057B7C
|
|
ldr r5, [r0]
|
|
ands r5, r6
|
|
cmp r5, #0
|
|
bne _08057BAE
|
|
ldr r4, _08057B80
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, #0x1d
|
|
bl MoveSelectionCreateCursorAt
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08057B88
|
|
ldr r0, _08057B84
|
|
strb r5, [r0]
|
|
b _08057B90
|
|
.align 2, 0
|
|
_08057B78: .4byte 0x03005AD8
|
|
_08057B7C: .4byte 0x02022C90
|
|
_08057B80: .4byte 0x02024154
|
|
_08057B84: .4byte 0x03005AD4
|
|
_08057B88:
|
|
ldr r1, _08057BB8
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
adds r0, r1, #0
|
|
_08057B90:
|
|
ldrb r0, [r0]
|
|
movs r1, #0x1b
|
|
bl MoveSelectionCreateCursorAt
|
|
ldr r0, _08057BBC
|
|
movs r1, #0xb
|
|
bl sub_0814FA04
|
|
ldr r1, _08057BC0
|
|
ldr r0, _08057BC4
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08057BC8
|
|
_08057BAC:
|
|
str r1, [r0]
|
|
_08057BAE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057BB8: .4byte 0x03005AD4
|
|
_08057BBC: .4byte 0x085ABBD8
|
|
_08057BC0: .4byte 0x03005AC0
|
|
_08057BC4: .4byte 0x02023D08
|
|
_08057BC8: .4byte 0x08057D49
|
|
thumb_func_end HandleInputChooseMove
|
|
|
|
thumb_func_start sub_08057BCC
|
|
sub_08057BCC: @ 0x08057BCC
|
|
push {r4, r5, r6, r7, lr}
|
|
movs r7, #0
|
|
ldr r4, _08057D30
|
|
ldrh r1, [r4, #0x2e]
|
|
movs r6, #1
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057BE6
|
|
movs r0, #5
|
|
bl PlaySE
|
|
movs r7, #1
|
|
_08057BE6:
|
|
ldrh r1, [r4, #0x2e]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057C08
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _08057D34
|
|
movs r0, #0
|
|
strh r0, [r1]
|
|
ldr r1, _08057D38
|
|
movs r2, #0xa0
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
movs r7, #0xff
|
|
_08057C08:
|
|
ldrh r1, [r4, #0x2e]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057C48
|
|
ldr r5, _08057D3C
|
|
ldr r4, _08057D40
|
|
ldrb r0, [r4]
|
|
adds r2, r0, r5
|
|
ldrb r1, [r2]
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057C48
|
|
ldrb r0, [r2]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, #1
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
_08057C48:
|
|
ldr r0, _08057D30
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057C96
|
|
ldr r5, _08057D3C
|
|
ldr r4, _08057D40
|
|
ldrb r0, [r4]
|
|
adds r3, r0, r5
|
|
ldrb r2, [r3]
|
|
movs r6, #1
|
|
movs r0, #1
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08057C96
|
|
ldr r1, _08057D44
|
|
adds r0, r6, #0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhs _08057C96
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
eors r0, r6
|
|
strb r0, [r1]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
_08057C96:
|
|
ldr r0, _08057D30
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057CD8
|
|
ldr r5, _08057D3C
|
|
ldr r4, _08057D40
|
|
ldrb r0, [r4]
|
|
adds r2, r0, r5
|
|
ldrb r1, [r2]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057CD8
|
|
ldrb r0, [r2]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
movs r2, #2
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
_08057CD8:
|
|
ldr r0, _08057D30
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057D26
|
|
ldr r5, _08057D3C
|
|
ldr r4, _08057D40
|
|
ldrb r0, [r4]
|
|
adds r3, r0, r5
|
|
ldrb r2, [r3]
|
|
movs r6, #2
|
|
movs r0, #2
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08057D26
|
|
ldr r1, _08057D44
|
|
adds r0, r6, #0
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhs _08057D26
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1]
|
|
eors r0, r6
|
|
strb r0, [r1]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
_08057D26:
|
|
adds r0, r7, #0
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057D30: .4byte 0x03002360
|
|
_08057D34: .4byte 0x02022AC8
|
|
_08057D38: .4byte 0x02022ACA
|
|
_08057D3C: .4byte 0x02024154
|
|
_08057D40: .4byte 0x02023D08
|
|
_08057D44: .4byte 0x03005AD8
|
|
thumb_func_end sub_08057BCC
|
|
|
|
thumb_func_start HandleMoveSwitching
|
|
HandleMoveSwitching: @ 0x08057D48
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x24
|
|
ldr r0, _080580E0
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #5
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08057D62
|
|
b _08058110
|
|
_08057D62:
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r0, _080580E4
|
|
mov sl, r0
|
|
ldr r1, _080580E8
|
|
mov r8, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r1, r0
|
|
ldr r5, _080580EC
|
|
ldrb r0, [r2]
|
|
ldrb r3, [r5]
|
|
cmp r0, r3
|
|
bne _08057D80
|
|
b _080580B8
|
|
_08057D80:
|
|
lsls r1, r1, #9
|
|
ldr r0, _080580F0
|
|
adds r1, r1, r0
|
|
mov sb, r1
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #1
|
|
add r1, sb
|
|
ldrh r6, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
strh r6, [r0]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
add r0, sl
|
|
ldrb r1, [r0]
|
|
mov r7, sb
|
|
adds r7, #8
|
|
adds r1, r7, r1
|
|
ldrb r6, [r1]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
strb r6, [r0]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
add r0, sl
|
|
ldrb r1, [r0]
|
|
mov r2, sb
|
|
adds r2, #0xc
|
|
adds r1, r2, r1
|
|
ldrb r6, [r1]
|
|
ldrb r0, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
adds r2, r2, r0
|
|
strb r6, [r2]
|
|
mov r3, r8
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, #3
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r2, _080580F4
|
|
adds r6, r0, r2
|
|
ldrb r4, [r6, #0x18]
|
|
lsls r3, r4, #0x18
|
|
lsrs r2, r3, #0x1c
|
|
ldr r0, _080580F8
|
|
mov ip, r0
|
|
add r1, sl
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldr r0, [r0]
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _08057E3A
|
|
lsrs r1, r3, #0x1c
|
|
bics r1, r0
|
|
lsls r1, r1, #4
|
|
movs r2, #0xf
|
|
adds r0, r2, #0
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
strb r0, [r6, #0x18]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
ldr r3, _080580F4
|
|
adds r1, r1, r3
|
|
ldrb r4, [r1, #0x18]
|
|
lsrs r3, r4, #4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
add r0, ip
|
|
ldr r0, [r0]
|
|
orrs r0, r3
|
|
lsls r0, r0, #4
|
|
ands r2, r4
|
|
orrs r2, r0
|
|
strb r2, [r1, #0x18]
|
|
_08057E3A:
|
|
bl MoveSelectionDisplayMoveNames
|
|
movs r6, #0
|
|
mov ip, r7
|
|
mov r5, sp
|
|
adds r5, #0x18
|
|
str r5, [sp, #0x1c]
|
|
ldr r2, _080580FC
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
adds r0, r0, r2
|
|
adds r4, r0, #0
|
|
adds r4, #0x3b
|
|
mov r7, r8
|
|
mov sl, r2
|
|
movs r5, #3
|
|
_08057E5E:
|
|
mov r1, sp
|
|
adds r3, r1, r6
|
|
ldrb r1, [r4]
|
|
lsls r2, r6, #1
|
|
adds r0, r5, #0
|
|
lsls r0, r2
|
|
ands r1, r0
|
|
asrs r1, r2
|
|
strb r1, [r3]
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08057E5E
|
|
ldr r1, _080580E4
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
ldr r2, [sp, #0x1c]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
mov r3, sp
|
|
adds r2, r3, r0
|
|
ldr r1, _080580EC
|
|
ldrb r0, [r1]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
movs r3, #0
|
|
strb r0, [r2]
|
|
ldrb r0, [r1]
|
|
mov r5, sp
|
|
adds r1, r5, r0
|
|
ldr r2, [sp, #0x1c]
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
strb r3, [r2]
|
|
movs r6, #0
|
|
ldr r2, [sp, #0x1c]
|
|
_08057EAE:
|
|
mov r3, sp
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r6, #1
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08057EAE
|
|
ldrb r1, [r7]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
add r0, sl
|
|
adds r0, #0x3b
|
|
ldr r5, [sp, #0x1c]
|
|
ldrb r1, [r5]
|
|
strb r1, [r0]
|
|
movs r6, #0
|
|
adds r4, r7, #0
|
|
movs r3, #0x58
|
|
movs r0, #0x24
|
|
add r0, sl
|
|
mov r8, r0
|
|
mov r2, sb
|
|
mov r7, sl
|
|
adds r7, #0xc
|
|
mov r5, ip
|
|
_08057EE8:
|
|
lsls r1, r6, #1
|
|
ldrb r0, [r4]
|
|
muls r0, r3, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r7
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r1, r0, #0
|
|
muls r1, r3, r1
|
|
adds r1, r6, r1
|
|
add r1, r8
|
|
adds r0, r5, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, #2
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08057EE8
|
|
ldr r2, _080580E8
|
|
ldrb r1, [r2]
|
|
movs r0, #0x58
|
|
muls r0, r1, r0
|
|
mov r1, sl
|
|
adds r1, #0x50
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08057F2A
|
|
b _080580B8
|
|
_08057F2A:
|
|
movs r6, #0
|
|
mov r1, sp
|
|
adds r1, #4
|
|
str r1, [sp, #0x20]
|
|
add r3, sp, #0xc
|
|
mov sl, r3
|
|
ldr r5, _08058100
|
|
mov sb, r5
|
|
mov r8, r2
|
|
movs r7, #0x64
|
|
ldr r5, _08058104
|
|
adds r4, r1, #0
|
|
_08057F42:
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
muls r0, r7, r0
|
|
adds r0, r0, r5
|
|
adds r1, r6, #0
|
|
adds r1, #0xd
|
|
bl GetMonData
|
|
strh r0, [r4]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
add r0, sb
|
|
ldrh r0, [r0]
|
|
muls r0, r7, r0
|
|
adds r0, r0, r5
|
|
adds r1, r6, #0
|
|
adds r1, #0x11
|
|
bl GetMonData
|
|
mov r3, sl
|
|
adds r1, r3, r6
|
|
strb r0, [r1]
|
|
adds r4, #2
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08057F42
|
|
ldr r1, _08058100
|
|
ldr r0, _080580E8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08058104
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
ldr r5, [sp, #0x1c]
|
|
strb r0, [r5]
|
|
movs r6, #0
|
|
movs r5, #3
|
|
ldr r4, [sp, #0x1c]
|
|
_08057FA2:
|
|
mov r0, sp
|
|
adds r3, r0, r6
|
|
lsls r2, r6, #1
|
|
adds r1, r5, #0
|
|
lsls r1, r2
|
|
ldrb r0, [r4]
|
|
ands r0, r1
|
|
asrs r0, r2
|
|
strb r0, [r3]
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08057FA2
|
|
ldr r4, _080580E4
|
|
ldr r3, _080580E8
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #1
|
|
ldr r2, [sp, #0x20]
|
|
adds r1, r2, r1
|
|
ldrh r6, [r1]
|
|
ldr r2, _080580EC
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
ldr r5, [sp, #0x20]
|
|
adds r0, r5, r0
|
|
ldrh r0, [r0]
|
|
movs r5, #0
|
|
strh r0, [r1]
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
ldr r1, [sp, #0x20]
|
|
adds r0, r1, r0
|
|
strh r6, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
add r1, sl
|
|
ldrb r6, [r1]
|
|
ldrb r0, [r2]
|
|
add r0, sl
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
add r0, sl
|
|
strb r6, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp, #0x1c]
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
mov r3, sp
|
|
adds r1, r3, r0
|
|
ldrb r0, [r2]
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r2]
|
|
adds r1, r3, r0
|
|
ldr r2, [sp, #0x1c]
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
strb r5, [r2]
|
|
movs r6, #0
|
|
ldr r2, [sp, #0x1c]
|
|
_0805802E:
|
|
mov r3, sp
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r6, #1
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _0805802E
|
|
movs r6, #0
|
|
ldr r5, _08058100
|
|
mov sl, r5
|
|
ldr r0, _080580E8
|
|
mov sb, r0
|
|
movs r1, #0x64
|
|
mov r8, r1
|
|
ldr r7, _08058104
|
|
ldr r5, [sp, #0x20]
|
|
adds r5, #8
|
|
ldr r4, [sp, #0x20]
|
|
_0805805A:
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
add r0, sl
|
|
ldrh r0, [r0]
|
|
mov r3, r8
|
|
muls r3, r0, r3
|
|
adds r0, r3, #0
|
|
adds r0, r0, r7
|
|
adds r1, r6, #0
|
|
adds r1, #0xd
|
|
adds r2, r4, #0
|
|
bl SetMonData
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, sl
|
|
ldrh r0, [r0]
|
|
mov r2, r8
|
|
muls r2, r0, r2
|
|
adds r0, r2, #0
|
|
adds r0, r0, r7
|
|
adds r1, r6, #0
|
|
adds r1, #0x11
|
|
adds r2, r5, #0
|
|
bl SetMonData
|
|
adds r5, #1
|
|
adds r4, #2
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _0805805A
|
|
ldr r1, _08058100
|
|
ldr r0, _080580E8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08058104
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
ldr r2, [sp, #0x1c]
|
|
bl SetMonData
|
|
_080580B8:
|
|
ldr r1, _08058108
|
|
ldr r2, _080580E8
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805810C
|
|
str r1, [r0]
|
|
ldr r3, _080580E4
|
|
ldrb r0, [r2]
|
|
adds r0, r0, r3
|
|
ldr r1, _080580EC
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
ldrb r0, [r2]
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
b _08058142
|
|
.align 2, 0
|
|
_080580E0: .4byte 0x03002360
|
|
_080580E4: .4byte 0x02024154
|
|
_080580E8: .4byte 0x02023D08
|
|
_080580EC: .4byte 0x03005AD4
|
|
_080580F0: .4byte 0x02022D0C
|
|
_080580F4: .4byte 0x02023F60
|
|
_080580F8: .4byte 0x082FACB4
|
|
_080580FC: .4byte 0x02023D28
|
|
_08058100: .4byte 0x02023D12
|
|
_08058104: .4byte 0x02024190
|
|
_08058108: .4byte 0x03005AC0
|
|
_0805810C: .4byte 0x0805780D
|
|
_08058110:
|
|
movs r0, #6
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08058164
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r0, _08058150
|
|
ldrb r0, [r0]
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldr r1, _08058154
|
|
ldr r4, _08058158
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
ldr r1, _0805815C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08058160
|
|
str r1, [r0]
|
|
_08058142:
|
|
bl PlayerHandleTwoReturnValues
|
|
bl MoveSelectionDisplayPpNumber
|
|
bl ActionSelectionCreateCursorAt
|
|
b _080582F8
|
|
.align 2, 0
|
|
_08058150: .4byte 0x03005AD4
|
|
_08058154: .4byte 0x02024154
|
|
_08058158: .4byte 0x02023D08
|
|
_0805815C: .4byte 0x03005AC0
|
|
_08058160: .4byte 0x0805780D
|
|
_08058164:
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080581B4
|
|
ldr r3, _08058194
|
|
ldrb r2, [r3]
|
|
movs r0, #1
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _0805817A
|
|
b _080582F8
|
|
_0805817A:
|
|
ldr r0, _08058198
|
|
ldr r1, _0805819C
|
|
ldrb r1, [r1]
|
|
adds r1, r1, r0
|
|
ldrb r5, [r1]
|
|
cmp r2, r5
|
|
bne _080581A0
|
|
_08058188:
|
|
ldrb r0, [r1]
|
|
movs r1, #0x1d
|
|
bl MoveSelectionCreateCursorAt
|
|
b _080581A6
|
|
.align 2, 0
|
|
_08058194: .4byte 0x03005AD4
|
|
_08058198: .4byte 0x02024154
|
|
_0805819C: .4byte 0x02023D08
|
|
_080581A0:
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
_080581A6:
|
|
ldr r4, _080581B0
|
|
ldrb r0, [r4]
|
|
movs r1, #1
|
|
b _0805823C
|
|
.align 2, 0
|
|
_080581B0: .4byte 0x03005AD4
|
|
_080581B4:
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080581F8
|
|
ldr r3, _080581E8
|
|
ldrb r2, [r3]
|
|
movs r0, #1
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080581CA
|
|
b _080582F8
|
|
_080581CA:
|
|
ldr r1, _080581EC
|
|
movs r0, #1
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
blo _080581D8
|
|
b _080582F8
|
|
_080581D8:
|
|
ldr r0, _080581F0
|
|
ldr r1, _080581F4
|
|
ldrb r1, [r1]
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r2, r0
|
|
beq _08058188
|
|
b _080581A0
|
|
.align 2, 0
|
|
_080581E8: .4byte 0x03005AD4
|
|
_080581EC: .4byte 0x03005AD8
|
|
_080581F0: .4byte 0x02024154
|
|
_080581F4: .4byte 0x02023D08
|
|
_080581F8:
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805826C
|
|
ldr r3, _08058224
|
|
ldrb r2, [r3]
|
|
movs r0, #2
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _080582F8
|
|
ldr r0, _08058228
|
|
ldr r1, _0805822C
|
|
ldrb r1, [r1]
|
|
adds r1, r1, r0
|
|
ldrb r5, [r1]
|
|
cmp r2, r5
|
|
bne _08058230
|
|
ldrb r0, [r1]
|
|
movs r1, #0x1d
|
|
bl MoveSelectionCreateCursorAt
|
|
b _08058236
|
|
.align 2, 0
|
|
_08058224: .4byte 0x03005AD4
|
|
_08058228: .4byte 0x02024154
|
|
_0805822C: .4byte 0x02023D08
|
|
_08058230:
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
_08058236:
|
|
ldr r4, _08058260
|
|
ldrb r0, [r4]
|
|
movs r1, #2
|
|
_0805823C:
|
|
eors r0, r1
|
|
strb r0, [r4]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _08058264
|
|
ldr r0, _08058268
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _080582DA
|
|
ldrb r0, [r4]
|
|
movs r1, #0x1b
|
|
bl MoveSelectionCreateCursorAt
|
|
b _080582F8
|
|
.align 2, 0
|
|
_08058260: .4byte 0x03005AD4
|
|
_08058264: .4byte 0x02024154
|
|
_08058268: .4byte 0x02023D08
|
|
_0805826C:
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080582F8
|
|
ldr r3, _080582A4
|
|
ldrb r2, [r3]
|
|
movs r0, #2
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _080582F8
|
|
ldr r1, _080582A8
|
|
movs r0, #2
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bhs _080582F8
|
|
ldr r0, _080582AC
|
|
ldr r1, _080582B0
|
|
ldrb r1, [r1]
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r2, r0
|
|
bne _080582B4
|
|
ldrb r0, [r1]
|
|
movs r1, #0x1d
|
|
bl MoveSelectionCreateCursorAt
|
|
b _080582BA
|
|
.align 2, 0
|
|
_080582A4: .4byte 0x03005AD4
|
|
_080582A8: .4byte 0x03005AD8
|
|
_080582AC: .4byte 0x02024154
|
|
_080582B0: .4byte 0x02023D08
|
|
_080582B4:
|
|
ldrb r0, [r3]
|
|
bl MoveSelectionDestroyCursorAt
|
|
_080582BA:
|
|
ldr r4, _080582E4
|
|
ldrb r0, [r4]
|
|
movs r1, #2
|
|
eors r0, r1
|
|
strb r0, [r4]
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _080582E8
|
|
ldr r0, _080582EC
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080582F0
|
|
_080582DA:
|
|
adds r0, r1, #0
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
b _080582F8
|
|
.align 2, 0
|
|
_080582E4: .4byte 0x03005AD4
|
|
_080582E8: .4byte 0x02024154
|
|
_080582EC: .4byte 0x02023D08
|
|
_080582F0:
|
|
ldrb r0, [r4]
|
|
movs r1, #0x1b
|
|
bl MoveSelectionCreateCursorAt
|
|
_080582F8:
|
|
add sp, #0x24
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end HandleMoveSwitching
|
|
|
|
thumb_func_start sub_08058308
|
|
sub_08058308: @ 0x08058308
|
|
push {lr}
|
|
ldr r0, _08058350
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0805836C
|
|
ldr r0, _08058354
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _080583A8
|
|
movs r0, #0x5a
|
|
bl m4aSongNumStop
|
|
ldr r3, _08058358
|
|
ldr r0, _0805835C
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08058360
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
ldr r0, _08058364
|
|
bl SetMainCallback2
|
|
ldr r0, _08058368
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08058348
|
|
bl TryPutLinkBattleTvShowOnAir
|
|
_08058348:
|
|
bl FreeAllWindowBuffers
|
|
b _080583A8
|
|
.align 2, 0
|
|
_08058350: .4byte 0x0300319C
|
|
_08058354: .4byte 0x030031C4
|
|
_08058358: .4byte 0x03002360
|
|
_0805835C: .4byte 0x00000439
|
|
_08058360: .4byte 0x03005A60
|
|
_08058364: .4byte 0x08038A19
|
|
_08058368: .4byte 0x02023FDE
|
|
_0805836C:
|
|
bl IsLinkTaskFinished
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080583A8
|
|
movs r0, #0x5a
|
|
bl m4aSongNumStop
|
|
ldr r3, _080583AC
|
|
ldr r0, _080583B0
|
|
adds r2, r3, r0
|
|
ldrb r1, [r2]
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080583B4
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
ldr r0, _080583B8
|
|
bl SetMainCallback2
|
|
ldr r0, _080583BC
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _080583A4
|
|
bl TryPutLinkBattleTvShowOnAir
|
|
_080583A4:
|
|
bl FreeAllWindowBuffers
|
|
_080583A8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080583AC: .4byte 0x03002360
|
|
_080583B0: .4byte 0x00000439
|
|
_080583B4: .4byte 0x03005A60
|
|
_080583B8: .4byte 0x08038A19
|
|
_080583BC: .4byte 0x02023FDE
|
|
thumb_func_end sub_08058308
|
|
|
|
thumb_func_start sub_080583C0
|
|
sub_080583C0: @ 0x080583C0
|
|
push {lr}
|
|
ldr r0, _080583F4
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058442
|
|
ldr r0, _080583F8
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08058420
|
|
bl IsLinkTaskFinished
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08058442
|
|
ldr r0, _080583FC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08058400
|
|
bl sub_0800A7F8
|
|
b _08058404
|
|
.align 2, 0
|
|
_080583F4: .4byte 0x02037C74
|
|
_080583F8: .4byte 0x02022C90
|
|
_080583FC: .4byte 0x0300319C
|
|
_08058400:
|
|
bl sub_0800A8D4
|
|
_08058404:
|
|
ldr r1, _08058414
|
|
ldr r0, _08058418
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805841C
|
|
str r1, [r0]
|
|
b _08058442
|
|
.align 2, 0
|
|
_08058414: .4byte 0x03005AC0
|
|
_08058418: .4byte 0x02023D08
|
|
_0805841C: .4byte 0x08058309
|
|
_08058420:
|
|
movs r0, #0x5a
|
|
bl m4aSongNumStop
|
|
ldr r2, _08058448
|
|
ldr r0, _0805844C
|
|
adds r3, r2, r0
|
|
ldrb r1, [r3]
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, _08058450
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r0, [r2, #8]
|
|
bl SetMainCallback2
|
|
_08058442:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058448: .4byte 0x03002360
|
|
_0805844C: .4byte 0x00000439
|
|
_08058450: .4byte 0x03005A60
|
|
thumb_func_end sub_080583C0
|
|
|
|
thumb_func_start PlayerHandleIntroSlide
|
|
PlayerHandleIntroSlide: @ 0x08058454
|
|
push {lr}
|
|
ldr r2, _0805847C
|
|
ldr r1, _08058480
|
|
ldr r0, _08058484
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _08058488
|
|
cmp r1, r0
|
|
bne _08058478
|
|
bl PlayerBufferExecCompleted
|
|
_08058478:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805847C: .4byte 0x020205AC
|
|
_08058480: .4byte 0x02023E88
|
|
_08058484: .4byte 0x02023D08
|
|
_08058488: .4byte 0x08007141
|
|
thumb_func_end PlayerHandleIntroSlide
|
|
|
|
thumb_func_start PlayerHandleChosenMonReturnValue
|
|
PlayerHandleChosenMonReturnValue: @ 0x0805848C
|
|
push {lr}
|
|
ldr r2, _080584B4
|
|
ldr r1, _080584B8
|
|
ldr r0, _080584BC
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _080584C0
|
|
cmp r1, r0
|
|
bne _080584B0
|
|
bl PlayerBufferExecCompleted
|
|
_080584B0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080584B4: .4byte 0x020205AC
|
|
_080584B8: .4byte 0x02023E88
|
|
_080584BC: .4byte 0x02023D08
|
|
_080584C0: .4byte 0x08007141
|
|
thumb_func_end PlayerHandleChosenMonReturnValue
|
|
|
|
thumb_func_start sub_080584C4
|
|
sub_080584C4: @ 0x080584C4
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _08058520
|
|
ldr r5, _08058524
|
|
ldr r4, _08058528
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r6, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _0805852C
|
|
cmp r1, r0
|
|
bne _08058518
|
|
ldr r0, _08058530
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
bl sub_0805DBFC
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
bl DestroySprite
|
|
bl PlayerBufferExecCompleted
|
|
_08058518:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058520: .4byte 0x020205AC
|
|
_08058524: .4byte 0x02023E88
|
|
_08058528: .4byte 0x02023D08
|
|
_0805852C: .4byte 0x08007141
|
|
_08058530: .4byte 0x03005AF0
|
|
thumb_func_end sub_080584C4
|
|
|
|
thumb_func_start sub_08058534
|
|
sub_08058534: @ 0x08058534
|
|
push {r4, lr}
|
|
ldr r4, _08058574
|
|
ldr r1, [r4]
|
|
ldr r3, _08058578
|
|
ldrb r0, [r3]
|
|
ldr r2, [r1, #4]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1, #9]
|
|
subs r0, #1
|
|
strb r0, [r1, #9]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _0805856C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #9]
|
|
bl PlayerBufferExecCompleted
|
|
_0805856C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058574: .4byte 0x02024174
|
|
_08058578: .4byte 0x02023D08
|
|
thumb_func_end sub_08058534
|
|
|
|
thumb_func_start sub_0805857C
|
|
sub_0805857C: @ 0x0805857C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
movs r7, #0
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080585A8
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080585E0
|
|
ldr r0, _080585CC
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080585E0
|
|
_080585A8:
|
|
ldr r2, _080585D0
|
|
ldr r1, _080585D4
|
|
ldr r3, _080585D8
|
|
ldrb r0, [r3]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _080585DC
|
|
mov sl, r3
|
|
cmp r1, r0
|
|
bne _0805861A
|
|
b _0805861E
|
|
.align 2, 0
|
|
_080585CC: .4byte 0x02022C90
|
|
_080585D0: .4byte 0x020205AC
|
|
_080585D4: .4byte 0x03005AD0
|
|
_080585D8: .4byte 0x02023D08
|
|
_080585DC: .4byte 0x08007141
|
|
_080585E0:
|
|
ldr r3, _08058728
|
|
ldr r6, _0805872C
|
|
ldr r2, _08058730
|
|
ldrb r4, [r2]
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r5, r3, #0
|
|
adds r5, #0x1c
|
|
adds r0, r0, r5
|
|
ldr r3, [r0]
|
|
ldr r0, _08058734
|
|
mov sl, r2
|
|
cmp r3, r0
|
|
bne _0805861A
|
|
movs r0, #2
|
|
eors r4, r0
|
|
adds r0, r4, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _0805861A
|
|
movs r7, #1
|
|
_0805861A:
|
|
cmp r7, #0
|
|
beq _08058718
|
|
_0805861E:
|
|
ldr r0, _08058738
|
|
mov sb, r0
|
|
ldr r0, [r0]
|
|
mov r6, sl
|
|
ldrb r2, [r6]
|
|
ldr r3, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r3
|
|
ldrb r1, [r4, #1]
|
|
movs r5, #1
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08058718
|
|
movs r1, #2
|
|
mov r8, r1
|
|
mov r1, r8
|
|
eors r1, r2
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #1]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08058718
|
|
ldrb r1, [r4]
|
|
movs r3, #0x7f
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
ldrb r2, [r6]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r4, #2
|
|
rsbs r4, r4, #0
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
mov r0, sb
|
|
ldr r2, [r0]
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
ands r3, r1
|
|
strb r3, [r0]
|
|
mov r1, sb
|
|
ldr r2, [r1]
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
ands r4, r1
|
|
strb r4, [r0, #1]
|
|
ldr r4, _0805873C
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
ldr r7, _08058740
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _08058744
|
|
adds r0, r0, r4
|
|
bl HandleLowHpMusicChange
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080586F4
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
eors r1, r0
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r7
|
|
ldrh r0, [r0]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
bl HandleLowHpMusicChange
|
|
_080586F4:
|
|
mov r2, sb
|
|
ldr r0, [r2]
|
|
mov r2, sl
|
|
ldrb r1, [r2]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #3
|
|
strb r1, [r0, #9]
|
|
ldr r1, _08058748
|
|
mov r2, sl
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805874C
|
|
str r1, [r0]
|
|
_08058718:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058728: .4byte 0x020205AC
|
|
_0805872C: .4byte 0x03005AD0
|
|
_08058730: .4byte 0x02023D08
|
|
_08058734: .4byte 0x08007141
|
|
_08058738: .4byte 0x02024174
|
|
_0805873C: .4byte 0x000027F9
|
|
_08058740: .4byte 0x02023D12
|
|
_08058744: .4byte 0x02024190
|
|
_08058748: .4byte 0x03005AC0
|
|
_0805874C: .4byte 0x08058535
|
|
thumb_func_end sub_0805857C
|
|
|
|
thumb_func_start sub_08058750
|
|
sub_08058750: @ 0x08058750
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
movs r0, #0
|
|
mov sb, r0
|
|
mov r8, r0
|
|
ldr r4, _080588FC
|
|
ldr r0, [r4]
|
|
ldr r7, _08058900
|
|
ldrb r2, [r7]
|
|
ldr r1, [r0, #4]
|
|
lsls r3, r2, #1
|
|
adds r0, r3, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r5, #0x88
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058790
|
|
ldr r0, _08058904
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _08058908
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_08172CD4
|
|
_08058790:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r7]
|
|
movs r6, #2
|
|
adds r2, r6, #0
|
|
eors r2, r0
|
|
ldr r1, [r1, #4]
|
|
lsls r3, r2, #1
|
|
adds r0, r3, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080587C2
|
|
ldr r0, _08058904
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _08058908
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_08172CD4
|
|
_080587C2:
|
|
ldr r0, [r4]
|
|
ldrb r2, [r7]
|
|
ldr r3, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r3
|
|
ldrb r1, [r4]
|
|
movs r5, #8
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058892
|
|
adds r1, r6, #0
|
|
eors r1, r2
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058892
|
|
ldrb r1, [r4, #1]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058878
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08058848
|
|
ldr r0, _0805890C
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058848
|
|
ldr r4, _08058910
|
|
ldrb r0, [r7]
|
|
adds r1, r6, #0
|
|
eors r1, r0
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _08058904
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _08058908
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
bl sub_08076320
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
_08058848:
|
|
ldr r5, _08058910
|
|
ldr r4, _08058900
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldr r2, _08058904
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _08058908
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r4]
|
|
bl sub_08076320
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
_08058878:
|
|
ldr r0, _080588FC
|
|
ldr r2, [r0]
|
|
ldr r0, _08058900
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, #1]
|
|
_08058892:
|
|
ldr r5, _080588FC
|
|
ldr r0, [r5]
|
|
ldr r4, _08058900
|
|
ldrb r2, [r4]
|
|
ldr r3, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0xc0
|
|
ands r0, r1
|
|
cmp r0, #0x80
|
|
bne _08058942
|
|
movs r1, #2
|
|
eors r1, r2
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058942
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08058942
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058924
|
|
ldr r0, _0805890C
|
|
ldr r0, [r0]
|
|
movs r1, #0x42
|
|
ands r0, r1
|
|
cmp r0, #0x42
|
|
bne _08058918
|
|
ldr r0, _08058914
|
|
bl m4aMPlayContinue
|
|
b _08058924
|
|
.align 2, 0
|
|
_080588FC: .4byte 0x02024174
|
|
_08058900: .4byte 0x02023D08
|
|
_08058904: .4byte 0x02023D12
|
|
_08058908: .4byte 0x02024190
|
|
_0805890C: .4byte 0x02022C90
|
|
_08058910: .4byte 0x03005AD0
|
|
_08058914: .4byte 0x030074D0
|
|
_08058918:
|
|
ldr r0, _08058998
|
|
ldr r1, _0805899C
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
bl m4aMPlayVolumeControl
|
|
_08058924:
|
|
ldr r0, _080589A0
|
|
ldr r2, [r0]
|
|
ldr r0, _080589A4
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #1]
|
|
movs r2, #0x20
|
|
orrs r1, r2
|
|
strb r1, [r0, #1]
|
|
movs r0, #1
|
|
mov sb, r0
|
|
_08058942:
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08058962
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080589BC
|
|
ldr r0, _080589A8
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080589BC
|
|
_08058962:
|
|
ldr r2, _080589AC
|
|
ldr r0, _080589B0
|
|
ldr r1, _080589A4
|
|
ldrb r4, [r1]
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r3, [r0]
|
|
ldr r0, _080589B4
|
|
cmp r3, r0
|
|
bne _08058A1A
|
|
ldr r0, _080589B8
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r3
|
|
bne _08058A1A
|
|
b _08058A16
|
|
.align 2, 0
|
|
_08058998: .4byte 0x030074D0
|
|
_0805899C: .4byte 0x0000FFFF
|
|
_080589A0: .4byte 0x02024174
|
|
_080589A4: .4byte 0x02023D08
|
|
_080589A8: .4byte 0x02022C90
|
|
_080589AC: .4byte 0x020205AC
|
|
_080589B0: .4byte 0x03005ADC
|
|
_080589B4: .4byte 0x08007141
|
|
_080589B8: .4byte 0x02023E88
|
|
_080589BC:
|
|
ldr r2, _08058AC8
|
|
ldr r7, _08058ACC
|
|
ldr r0, _08058AD0
|
|
ldrb r3, [r0]
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, _08058AD4
|
|
cmp r4, r0
|
|
bne _08058A1A
|
|
ldr r6, _08058AD8
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r5, [r0]
|
|
cmp r5, r4
|
|
bne _08058A1A
|
|
movs r0, #2
|
|
eors r3, r0
|
|
adds r0, r3, r7
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r4, [r0]
|
|
cmp r4, r5
|
|
bne _08058A1A
|
|
adds r0, r3, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _08058A1A
|
|
_08058A16:
|
|
movs r0, #1
|
|
mov r8, r0
|
|
_08058A1A:
|
|
mov r0, sb
|
|
cmp r0, #0
|
|
beq _08058ABA
|
|
mov r0, r8
|
|
cmp r0, #0
|
|
beq _08058ABA
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08058A58
|
|
ldr r0, _08058ADC
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058A58
|
|
ldr r2, _08058ACC
|
|
ldr r0, _08058AD0
|
|
ldrb r1, [r0]
|
|
movs r0, #2
|
|
eors r0, r1
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _08058AC8
|
|
adds r0, r0, r1
|
|
bl DestroySprite
|
|
_08058A58:
|
|
ldr r1, _08058ACC
|
|
ldr r4, _08058AD0
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _08058AC8
|
|
adds r0, r0, r1
|
|
bl DestroySprite
|
|
ldr r3, _08058AE0
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, #8]
|
|
ldrb r1, [r2, #9]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2, #9]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #0x21
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r0, [r3]
|
|
ldrb r2, [r4]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #0x7f
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r1, _08058AE4
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08058AE8
|
|
str r1, [r0]
|
|
_08058ABA:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058AC8: .4byte 0x020205AC
|
|
_08058ACC: .4byte 0x03005ADC
|
|
_08058AD0: .4byte 0x02023D08
|
|
_08058AD4: .4byte 0x08007141
|
|
_08058AD8: .4byte 0x02023E88
|
|
_08058ADC: .4byte 0x02022C90
|
|
_08058AE0: .4byte 0x02024174
|
|
_08058AE4: .4byte 0x03005AC0
|
|
_08058AE8: .4byte 0x0805857D
|
|
thumb_func_end sub_08058750
|
|
|
|
thumb_func_start sub_08058AEC
|
|
sub_08058AEC: @ 0x08058AEC
|
|
push {r4, r5, r6, lr}
|
|
ldr r2, _08058BAC
|
|
ldr r0, _08058BB0
|
|
ldr r6, _08058BB4
|
|
ldrb r3, [r6]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r4, [r0]
|
|
ldr r0, _08058BB8
|
|
cmp r4, r0
|
|
bne _08058BA4
|
|
ldr r5, _08058BBC
|
|
ldr r0, [r5]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #1]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08058BA4
|
|
ldr r0, _08058BC0
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _08058BA4
|
|
adds r0, r3, #0
|
|
bl CopyBattleSpriteInvisibility
|
|
ldr r0, [r5]
|
|
ldrb r2, [r6]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, #0x7f
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
ldrb r2, [r6]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #2
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldr r4, _08058BC4
|
|
adds r0, r4, #0
|
|
bl FreeSpriteTilesByTag
|
|
adds r0, r4, #0
|
|
bl FreeSpritePaletteByTag
|
|
ldr r0, [r5]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08058B98
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #6
|
|
bl InitAndLaunchSpecialAnimation
|
|
_08058B98:
|
|
ldr r0, _08058BC8
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _08058BCC
|
|
str r0, [r1]
|
|
_08058BA4:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058BAC: .4byte 0x020205AC
|
|
_08058BB0: .4byte 0x03005AD0
|
|
_08058BB4: .4byte 0x02023D08
|
|
_08058BB8: .4byte 0x08007141
|
|
_08058BBC: .4byte 0x02024174
|
|
_08058BC0: .4byte 0x02023E88
|
|
_08058BC4: .4byte 0x000027F9
|
|
_08058BC8: .4byte 0x03005AC0
|
|
_08058BCC: .4byte 0x08058BD1
|
|
thumb_func_end sub_08058AEC
|
|
|
|
thumb_func_start sub_08058BD0
|
|
sub_08058BD0: @ 0x08058BD0
|
|
push {r4, lr}
|
|
ldr r0, _08058C24
|
|
ldr r0, [r0]
|
|
ldr r4, _08058C28
|
|
ldrb r1, [r4]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058C1E
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08058C1E
|
|
ldr r0, _08058C2C
|
|
ldr r1, _08058C30
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
bl m4aMPlayVolumeControl
|
|
ldr r2, _08058C34
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _08058C38
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
bl PlayerBufferExecCompleted
|
|
_08058C1E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058C24: .4byte 0x02024174
|
|
_08058C28: .4byte 0x02023D08
|
|
_08058C2C: .4byte 0x030074D0
|
|
_08058C30: .4byte 0x0000FFFF
|
|
_08058C34: .4byte 0x02023D12
|
|
_08058C38: .4byte 0x02024190
|
|
thumb_func_end sub_08058BD0
|
|
|
|
thumb_func_start sub_08058C3C
|
|
sub_08058C3C: @ 0x08058C3C
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _08058CE8
|
|
ldr r0, [r6]
|
|
ldr r5, _08058CEC
|
|
ldrb r2, [r5]
|
|
ldr r1, [r0, #4]
|
|
lsls r3, r2, #1
|
|
adds r0, r3, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0x88
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058C6E
|
|
ldr r0, _08058CF0
|
|
adds r0, r3, r0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _08058CF4
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_08172CD4
|
|
_08058C6E:
|
|
ldr r4, _08058CF8
|
|
ldr r0, _08058CFC
|
|
ldrb r2, [r5]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r3, r0, #2
|
|
adds r0, r4, #0
|
|
adds r0, #0x1c
|
|
adds r0, r3, r0
|
|
ldr r1, [r0]
|
|
ldr r0, _08058D00
|
|
cmp r1, r0
|
|
bne _08058CE2
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08058CE2
|
|
adds r0, r3, r4
|
|
bl DestroySprite
|
|
ldr r4, _08058D04
|
|
ldrb r1, [r5]
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, _08058CF0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _08058CF4
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r0, [r5]
|
|
bl sub_08076320
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
ldr r1, _08058D08
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08058D0C
|
|
str r1, [r0]
|
|
_08058CE2:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058CE8: .4byte 0x02024174
|
|
_08058CEC: .4byte 0x02023D08
|
|
_08058CF0: .4byte 0x02023D12
|
|
_08058CF4: .4byte 0x02024190
|
|
_08058CF8: .4byte 0x020205AC
|
|
_08058CFC: .4byte 0x03005ADC
|
|
_08058D00: .4byte 0x08007141
|
|
_08058D04: .4byte 0x03005AD0
|
|
_08058D08: .4byte 0x03005AC0
|
|
_08058D0C: .4byte 0x08058AED
|
|
thumb_func_end sub_08058C3C
|
|
|
|
thumb_func_start c3_0802FDF4
|
|
c3_0802FDF4: @ 0x08058D10
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08058D32
|
|
ldr r0, _08058D38
|
|
ldr r1, _08058D3C
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
bl m4aMPlayVolumeControl
|
|
adds r0, r4, #0
|
|
bl DestroyTask
|
|
_08058D32:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058D38: .4byte 0x030074D0
|
|
_08058D3C: .4byte 0x0000FFFF
|
|
thumb_func_end c3_0802FDF4
|
|
|
|
thumb_func_start MoveSelectionDisplayMoveType
|
|
MoveSelectionDisplayMoveType: @ 0x08058D40
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _08058D80
|
|
ldrb r0, [r5]
|
|
ldr r6, _08058D84
|
|
adds r1, r0, r6
|
|
ldrb r1, [r1]
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl MoveBattleBar
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
lsls r4, r4, #0x10
|
|
asrs r1, r4, #0x10
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
beq _08058D88
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
movs r2, #0
|
|
bl sub_080726F4
|
|
b _08058DA2
|
|
.align 2, 0
|
|
_08058D80: .4byte 0x02023D08
|
|
_08058D84: .4byte 0x03005AD0
|
|
_08058D88:
|
|
ldr r2, _08058DA8
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _08058DAC
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
bl PlayerBufferExecCompleted
|
|
_08058DA2:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058DA8: .4byte 0x02023D12
|
|
_08058DAC: .4byte 0x02024190
|
|
thumb_func_end MoveSelectionDisplayMoveType
|
|
|
|
thumb_func_start PlayerHandleCmd42
|
|
PlayerHandleCmd42: @ 0x08058DB0
|
|
push {lr}
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _08058DC2
|
|
bl PlayerBufferExecCompleted
|
|
_08058DC2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandleCmd42
|
|
|
|
thumb_func_start sub_08058DC8
|
|
sub_08058DC8: @ 0x08058DC8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x10
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov sb, r0
|
|
ldr r1, _08058EC8
|
|
lsls r0, r0, #2
|
|
add r0, sb
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
mov r8, r0
|
|
ldrb r0, [r0, #8]
|
|
mov sl, r0
|
|
mov r1, r8
|
|
ldrb r7, [r1, #0xc]
|
|
str r7, [sp, #8]
|
|
ldrh r2, [r1, #0xa]
|
|
str r2, [sp, #0xc]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _08058E0E
|
|
ldr r1, _08058ECC
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp sl, r0
|
|
bne _08058E0E
|
|
b _08058F24
|
|
_08058E0E:
|
|
movs r0, #0x64
|
|
mov r1, sl
|
|
muls r1, r0, r1
|
|
ldr r0, _08058ED0
|
|
adds r6, r1, r0
|
|
adds r0, r6, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
adds r0, r6, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
str r0, [sp, #4]
|
|
ldr r3, _08058ED4
|
|
adds r4, #1
|
|
lsls r4, r4, #2
|
|
ldr r2, _08058ED8
|
|
lsls r1, r5, #3
|
|
subs r1, r1, r5
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r2, [r1, #0x13]
|
|
movs r1, #0xca
|
|
lsls r1, r1, #1
|
|
muls r1, r2, r1
|
|
adds r4, r4, r1
|
|
adds r4, r4, r3
|
|
ldr r2, [r4]
|
|
str r2, [sp]
|
|
ldr r3, [sp, #0xc]
|
|
lsls r1, r3, #0x10
|
|
asrs r1, r1, #0x10
|
|
adds r0, r0, r1
|
|
cmp r0, r2
|
|
blo _08058EFC
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r6, #0
|
|
bl CalculateMonStats
|
|
ldr r2, [sp]
|
|
add r0, sp, #4
|
|
ldrh r0, [r0]
|
|
subs r2, r2, r0
|
|
ldr r0, [sp, #0xc]
|
|
subs r2, r0, r2
|
|
ldr r4, _08058EDC
|
|
ldrb r5, [r4]
|
|
strb r7, [r4]
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
bl BtlController_EmitTwoReturnValues
|
|
strb r5, [r4]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _08058EE4
|
|
ldr r2, _08058ECC
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r2
|
|
mov r1, sl
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
beq _08058EC2
|
|
movs r0, #2
|
|
eors r7, r0
|
|
lsls r0, r7, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _08058EE4
|
|
_08058EC2:
|
|
ldr r0, _08058EE0
|
|
b _08058F26
|
|
.align 2, 0
|
|
_08058EC8: .4byte 0x03005B60
|
|
_08058ECC: .4byte 0x02023D12
|
|
_08058ED0: .4byte 0x02024190
|
|
_08058ED4: .4byte 0x082F00B4
|
|
_08058ED8: .4byte 0x082F0D54
|
|
_08058EDC: .4byte 0x02023D08
|
|
_08058EE0: .4byte 0x08059155
|
|
_08058EE4:
|
|
ldr r0, _08058EF4
|
|
mov r2, sb
|
|
lsls r1, r2, #2
|
|
add r1, sb
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldr r0, _08058EF8
|
|
b _08058F28
|
|
.align 2, 0
|
|
_08058EF4: .4byte 0x03005B60
|
|
_08058EF8: .4byte 0x0805926D
|
|
_08058EFC:
|
|
str r0, [sp, #4]
|
|
add r2, sp, #4
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
ldr r1, _08058F1C
|
|
ldr r3, [sp, #8]
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08058F20
|
|
str r1, [r0]
|
|
mov r0, sb
|
|
bl DestroyTask
|
|
b _08058F2A
|
|
.align 2, 0
|
|
_08058F1C: .4byte 0x03005AC0
|
|
_08058F20: .4byte 0x08058DB1
|
|
_08058F24:
|
|
ldr r0, _08058F3C
|
|
_08058F26:
|
|
mov r1, r8
|
|
_08058F28:
|
|
str r0, [r1]
|
|
_08058F2A:
|
|
add sp, #0x10
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058F3C: .4byte 0x08058F41
|
|
thumb_func_end sub_08058DC8
|
|
|
|
thumb_func_start sub_08058F40
|
|
sub_08058F40: @ 0x08058F40
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sl
|
|
mov r5, sb
|
|
mov r4, r8
|
|
push {r4, r5, r6}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r1, _08058FF8
|
|
lsls r2, r0, #2
|
|
mov r8, r2
|
|
add r8, r0
|
|
mov r0, r8
|
|
lsls r0, r0, #3
|
|
mov r8, r0
|
|
add r8, r1
|
|
mov r2, r8
|
|
ldrb r1, [r2, #8]
|
|
movs r0, #0xa
|
|
ldrsh r2, [r2, r0]
|
|
mov sb, r2
|
|
mov r2, r8
|
|
ldrb r2, [r2, #0xc]
|
|
mov sl, r2
|
|
movs r0, #0x64
|
|
adds r6, r1, #0
|
|
muls r6, r0, r6
|
|
ldr r0, _08058FFC
|
|
adds r6, r6, r0
|
|
adds r0, r6, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r6, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
adds r0, r6, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
adds r3, r0, #0
|
|
ldr r6, _08059000
|
|
lsls r1, r4, #2
|
|
ldr r2, _08059004
|
|
lsls r0, r5, #3
|
|
subs r0, r0, r5
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r2, [r0, #0x13]
|
|
movs r0, #0xca
|
|
lsls r0, r0, #1
|
|
muls r0, r2, r0
|
|
adds r1, r1, r0
|
|
adds r1, r1, r6
|
|
ldr r1, [r1]
|
|
subs r3, r3, r1
|
|
adds r4, #1
|
|
lsls r4, r4, #2
|
|
adds r4, r4, r0
|
|
adds r4, r4, r6
|
|
ldr r2, [r4]
|
|
subs r2, r2, r1
|
|
ldr r0, _08059008
|
|
add r0, sl
|
|
ldrb r1, [r0]
|
|
mov r0, sb
|
|
rsbs r0, r0, #0
|
|
str r0, [sp]
|
|
mov r0, sl
|
|
bl SetBattleBarStruct
|
|
movs r0, #0x21
|
|
bl PlaySE
|
|
ldr r0, _0805900C
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
add sp, #4
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058FF8: .4byte 0x03005B60
|
|
_08058FFC: .4byte 0x02024190
|
|
_08059000: .4byte 0x082F00B4
|
|
_08059004: .4byte 0x082F0D54
|
|
_08059008: .4byte 0x03005AD0
|
|
_0805900C: .4byte 0x08059011
|
|
thumb_func_end sub_08058F40
|
|
|
|
thumb_func_start sub_08059010
|
|
sub_08059010: @ 0x08059010
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
ldr r1, _0805903C
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
lsls r0, r0, #3
|
|
adds r6, r0, r1
|
|
ldrh r1, [r6, #0x1c]
|
|
movs r2, #0x1c
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, #0xc
|
|
bgt _08059040
|
|
adds r0, r1, #1
|
|
strh r0, [r6, #0x1c]
|
|
b _0805913C
|
|
.align 2, 0
|
|
_0805903C: .4byte 0x03005B60
|
|
_08059040:
|
|
ldrb r0, [r6, #8]
|
|
mov sb, r0
|
|
ldrh r2, [r6, #0xa]
|
|
mov sl, r2
|
|
ldrb r7, [r6, #0xc]
|
|
ldr r5, _08059108
|
|
adds r5, r7, r5
|
|
ldrb r1, [r5]
|
|
adds r0, r7, #0
|
|
movs r2, #1
|
|
movs r3, #0
|
|
bl MoveBattleBar
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
ldrb r0, [r5]
|
|
bl SetHealthboxSpriteVisible
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x10
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r4, r0
|
|
bne _0805913C
|
|
movs r0, #0x21
|
|
bl m4aSongNumStop
|
|
movs r0, #0x64
|
|
mov r1, sb
|
|
muls r1, r0, r1
|
|
ldr r0, _0805910C
|
|
adds r5, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r5, #0
|
|
movs r1, #0x19
|
|
bl GetMonData
|
|
str r0, [sp, #4]
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldr r3, _08059110
|
|
adds r4, #1
|
|
lsls r4, r4, #2
|
|
ldr r2, _08059114
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1, #0x13]
|
|
movs r0, #0xca
|
|
lsls r0, r0, #1
|
|
muls r0, r1, r0
|
|
adds r4, r4, r0
|
|
adds r4, r4, r3
|
|
ldr r1, [r4]
|
|
str r1, [sp]
|
|
mov r2, sl
|
|
lsls r0, r2, #0x10
|
|
asrs r4, r0, #0x10
|
|
ldr r0, [sp, #4]
|
|
adds r0, r0, r4
|
|
cmp r0, r1
|
|
blt _08059120
|
|
adds r0, r5, #0
|
|
movs r1, #0x19
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r5, #0
|
|
bl CalculateMonStats
|
|
ldr r2, [sp]
|
|
add r0, sp, #4
|
|
ldrh r0, [r0]
|
|
subs r2, r2, r0
|
|
subs r2, r4, r2
|
|
ldr r4, _08059118
|
|
ldrb r5, [r4]
|
|
strb r7, [r4]
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #1
|
|
movs r1, #0xb
|
|
bl BtlController_EmitTwoReturnValues
|
|
strb r5, [r4]
|
|
ldr r0, _0805911C
|
|
str r0, [r6]
|
|
b _0805913C
|
|
.align 2, 0
|
|
_08059108: .4byte 0x03005AD0
|
|
_0805910C: .4byte 0x02024190
|
|
_08059110: .4byte 0x082F00B4
|
|
_08059114: .4byte 0x082F0D54
|
|
_08059118: .4byte 0x02023D08
|
|
_0805911C: .4byte 0x08059155
|
|
_08059120:
|
|
str r0, [sp, #4]
|
|
add r2, sp, #4
|
|
adds r0, r5, #0
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
ldr r1, _0805914C
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _08059150
|
|
str r1, [r0]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_0805913C:
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805914C: .4byte 0x03005AC0
|
|
_08059150: .4byte 0x08058DB1
|
|
thumb_func_end sub_08059010
|
|
|
|
thumb_func_start Task_LaunchLvlUpAnim
|
|
Task_LaunchLvlUpAnim: @ 0x08059154
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r1, _080591A8
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrb r4, [r0, #0xc]
|
|
ldrb r6, [r0, #8]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _08059188
|
|
ldr r1, _080591AC
|
|
movs r0, #2
|
|
adds r2, r4, #0
|
|
eors r2, r0
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r6, r0
|
|
bne _08059188
|
|
adds r4, r2, #0
|
|
_08059188:
|
|
adds r0, r4, #0
|
|
adds r1, r4, #0
|
|
adds r2, r4, #0
|
|
movs r3, #0
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r0, _080591A8
|
|
lsls r1, r5, #2
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldr r0, _080591B0
|
|
str r0, [r1]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080591A8: .4byte 0x03005B60
|
|
_080591AC: .4byte 0x02023D12
|
|
_080591B0: .4byte 0x080591B5
|
|
thumb_func_end Task_LaunchLvlUpAnim
|
|
|
|
thumb_func_start Task_UpdateLvlInHealthbox
|
|
Task_UpdateLvlInHealthbox: @ 0x080591B4
|
|
push {r4, r5, r6, r7, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
ldr r1, _08059220
|
|
lsls r0, r6, #2
|
|
adds r0, r0, r6
|
|
lsls r0, r0, #3
|
|
adds r2, r0, r1
|
|
ldrb r5, [r2, #0xc]
|
|
ldr r0, _08059224
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r5, #1
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08059256
|
|
ldrb r4, [r2, #8]
|
|
movs r0, #0x64
|
|
adds r1, r4, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _08059228
|
|
adds r7, r1, r0
|
|
adds r0, r7, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bne _08059234
|
|
ldr r1, _0805922C
|
|
movs r0, #2
|
|
adds r2, r5, #0
|
|
eors r2, r0
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _08059234
|
|
ldr r0, _08059230
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r7, #0
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
b _08059248
|
|
.align 2, 0
|
|
_08059220: .4byte 0x03005B60
|
|
_08059224: .4byte 0x02024174
|
|
_08059228: .4byte 0x02024190
|
|
_0805922C: .4byte 0x02023D12
|
|
_08059230: .4byte 0x03005AD0
|
|
_08059234:
|
|
ldr r0, _0805925C
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
movs r1, #0x64
|
|
muls r1, r4, r1
|
|
ldr r2, _08059260
|
|
adds r1, r1, r2
|
|
movs r2, #0
|
|
bl UpdateHealthboxAttribute
|
|
_08059248:
|
|
ldr r0, _08059264
|
|
lsls r1, r6, #2
|
|
adds r1, r1, r6
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldr r0, _08059268
|
|
str r0, [r1]
|
|
_08059256:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805925C: .4byte 0x03005AD0
|
|
_08059260: .4byte 0x02024190
|
|
_08059264: .4byte 0x03005B60
|
|
_08059268: .4byte 0x0805926D
|
|
thumb_func_end Task_UpdateLvlInHealthbox
|
|
|
|
thumb_func_start MoveSelectionDisplayPpString
|
|
MoveSelectionDisplayPpString: @ 0x0805926C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
ldr r0, _080592A8
|
|
lsls r4, r5, #2
|
|
adds r4, r4, r5
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r0
|
|
ldrb r1, [r4, #8]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080592AC
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
ldrb r0, [r4, #0xc]
|
|
ldr r1, _080592B0
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080592B4
|
|
str r1, [r0]
|
|
adds r0, r5, #0
|
|
bl DestroyTask
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080592A8: .4byte 0x03005B60
|
|
_080592AC: .4byte 0x02024190
|
|
_080592B0: .4byte 0x03005AC0
|
|
_080592B4: .4byte 0x08058DB1
|
|
thumb_func_end MoveSelectionDisplayPpString
|
|
|
|
thumb_func_start sub_080592B8
|
|
sub_080592B8: @ 0x080592B8
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _0805933C
|
|
ldr r5, _08059340
|
|
ldr r4, _08059344
|
|
ldrb r2, [r4]
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
movs r3, #0x22
|
|
ldrsh r1, [r0, r3]
|
|
movs r3, #0x26
|
|
ldrsh r0, [r0, r3]
|
|
adds r1, r1, r0
|
|
cmp r1, #0xa0
|
|
ble _08059334
|
|
ldr r1, _08059348
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805934C
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
bl sub_0805DB50
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0, #3]
|
|
lsls r0, r0, #0x1a
|
|
lsrs r0, r0, #0x1b
|
|
bl FreeOamMatrix
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
bl DestroySprite
|
|
ldr r1, _08059350
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl PlayerBufferExecCompleted
|
|
_08059334:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805933C: .4byte 0x020205AC
|
|
_08059340: .4byte 0x02023E88
|
|
_08059344: .4byte 0x02023D08
|
|
_08059348: .4byte 0x02023D12
|
|
_0805934C: .4byte 0x02024190
|
|
_08059350: .4byte 0x03005AD0
|
|
thumb_func_end sub_080592B8
|
|
|
|
thumb_func_start sub_08059354
|
|
sub_08059354: @ 0x08059354
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _080593B0
|
|
ldr r0, [r0]
|
|
ldr r6, _080593B4
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080593A8
|
|
ldr r5, _080593B8
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _080593BC
|
|
adds r0, r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
bl DestroySprite
|
|
ldr r1, _080593C0
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl PlayerBufferExecCompleted
|
|
_080593A8:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080593B0: .4byte 0x02024174
|
|
_080593B4: .4byte 0x02023D08
|
|
_080593B8: .4byte 0x02023E88
|
|
_080593BC: .4byte 0x020205AC
|
|
_080593C0: .4byte 0x03005AD0
|
|
thumb_func_end sub_08059354
|
|
|
|
thumb_func_start PlayerHandleDataTransfer
|
|
PlayerHandleDataTransfer: @ 0x080593C4
|
|
push {lr}
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _080593D6
|
|
bl PlayerBufferExecCompleted
|
|
_080593D6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandleDataTransfer
|
|
|
|
thumb_func_start OpenPartyMenuToChooseMon
|
|
OpenPartyMenuToChooseMon: @ 0x080593DC
|
|
push {r4, lr}
|
|
ldr r0, _08059420
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805941A
|
|
ldr r1, _08059424
|
|
ldr r2, _08059428
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805942C
|
|
str r1, [r0]
|
|
ldr r3, _08059430
|
|
ldr r1, _08059434
|
|
ldrb r0, [r2]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r3
|
|
ldrb r4, [r1, #8]
|
|
bl DestroyTask
|
|
bl FreeAllWindowBuffers
|
|
adds r0, r4, #0
|
|
bl OpenPartyMenuInBattle
|
|
_0805941A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059420: .4byte 0x02037C74
|
|
_08059424: .4byte 0x03005AC0
|
|
_08059428: .4byte 0x02023D08
|
|
_0805942C: .4byte 0x08059439
|
|
_08059430: .4byte 0x03005B60
|
|
_08059434: .4byte 0x03005ADC
|
|
thumb_func_end OpenPartyMenuToChooseMon
|
|
|
|
thumb_func_start WaitForMonSelection
|
|
WaitForMonSelection: @ 0x08059438
|
|
push {lr}
|
|
ldr r0, _08059468
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _0805946C
|
|
cmp r1, r0
|
|
bne _080594A8
|
|
ldr r0, _08059470
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080594A8
|
|
ldr r0, _08059474
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08059480
|
|
ldr r0, _08059478
|
|
ldrb r1, [r0]
|
|
ldr r2, _0805947C
|
|
movs r0, #1
|
|
bl BtlController_EmitChosenMonReturnValue
|
|
b _0805948A
|
|
.align 2, 0
|
|
_08059468: .4byte 0x03002360
|
|
_0805946C: .4byte 0x080380FD
|
|
_08059470: .4byte 0x02037C74
|
|
_08059474: .4byte 0x0203CBB4
|
|
_08059478: .4byte 0x0203CBB5
|
|
_0805947C: .4byte 0x0203CBCC
|
|
_08059480:
|
|
movs r0, #1
|
|
movs r1, #6
|
|
movs r2, #0
|
|
bl BtlController_EmitChosenMonReturnValue
|
|
_0805948A:
|
|
ldr r1, _080594AC
|
|
ldr r0, _080594B0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
bne _080594A4
|
|
bl PrintLinkStandbyMsg
|
|
_080594A4:
|
|
bl PlayerBufferExecCompleted
|
|
_080594A8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080594AC: .4byte 0x02022D08
|
|
_080594B0: .4byte 0x02023D08
|
|
thumb_func_end WaitForMonSelection
|
|
|
|
thumb_func_start OpenBagAndChooseItem
|
|
OpenBagAndChooseItem: @ 0x080594B4
|
|
push {lr}
|
|
ldr r0, _080594E0
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080594DC
|
|
ldr r1, _080594E4
|
|
ldr r0, _080594E8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _080594EC
|
|
str r1, [r0]
|
|
bl nullsub_35
|
|
bl FreeAllWindowBuffers
|
|
bl sub_081AA928
|
|
_080594DC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080594E0: .4byte 0x02037C74
|
|
_080594E4: .4byte 0x03005AC0
|
|
_080594E8: .4byte 0x02023D08
|
|
_080594EC: .4byte 0x080594F1
|
|
thumb_func_end OpenBagAndChooseItem
|
|
|
|
thumb_func_start CompleteWhenChoseItem
|
|
CompleteWhenChoseItem: @ 0x080594F0
|
|
push {lr}
|
|
ldr r0, _0805951C
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _08059520
|
|
cmp r1, r0
|
|
bne _08059516
|
|
ldr r0, _08059524
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08059516
|
|
ldr r0, _08059528
|
|
ldrh r1, [r0]
|
|
movs r0, #1
|
|
bl BtlController_EmitOneReturnValue
|
|
bl PlayerBufferExecCompleted
|
|
_08059516:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805951C: .4byte 0x03002360
|
|
_08059520: .4byte 0x080380FD
|
|
_08059524: .4byte 0x02037C74
|
|
_08059528: .4byte 0x0203CB48
|
|
thumb_func_end CompleteWhenChoseItem
|
|
|
|
thumb_func_start PlayerHandleOneReturnValue_Duplicate
|
|
PlayerHandleOneReturnValue_Duplicate: @ 0x0805952C
|
|
push {lr}
|
|
ldr r0, _0805955C
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08059552
|
|
ldr r0, _08059560
|
|
ldr r2, [r0]
|
|
ldr r0, _08059564
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08059556
|
|
_08059552:
|
|
bl PlayerBufferExecCompleted
|
|
_08059556:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805955C: .4byte 0x0202415D
|
|
_08059560: .4byte 0x02024174
|
|
_08059564: .4byte 0x02023D08
|
|
thumb_func_end PlayerHandleOneReturnValue_Duplicate
|
|
|
|
thumb_func_start PlayerHandleHitAnimation
|
|
PlayerHandleHitAnimation: @ 0x08059568
|
|
push {r4, lr}
|
|
ldr r1, _080595A4
|
|
ldr r0, _080595A8
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, _080595AC
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, r0, r2
|
|
movs r1, #0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0x20
|
|
bne _080595B4
|
|
movs r3, #0
|
|
movs r0, #0
|
|
strh r0, [r4, #0x30]
|
|
adds r2, r4, #0
|
|
adds r2, #0x3e
|
|
ldrb r1, [r2]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080595B0
|
|
strb r3, [r0]
|
|
bl PlayerBufferExecCompleted
|
|
b _080595DE
|
|
.align 2, 0
|
|
_080595A4: .4byte 0x02023E88
|
|
_080595A8: .4byte 0x02023D08
|
|
_080595AC: .4byte 0x020205AC
|
|
_080595B0: .4byte 0x0202415D
|
|
_080595B4:
|
|
ldrh r0, [r4, #0x30]
|
|
movs r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080595D8
|
|
adds r3, r4, #0
|
|
adds r3, #0x3e
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, #0x1d
|
|
lsrs r0, r0, #0x1f
|
|
movs r1, #1
|
|
eors r1, r0
|
|
lsls r1, r1, #2
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080595D8:
|
|
ldrh r0, [r4, #0x30]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x30]
|
|
_080595DE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleHitAnimation
|
|
|
|
thumb_func_start PlayerHandleUnknownYesNoInput
|
|
PlayerHandleUnknownYesNoInput: @ 0x080595E4
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r0, _08059674
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08059612
|
|
ldr r4, _08059678
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
beq _08059612
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
movs r0, #0
|
|
bl BattleCreateYesNoCursorAt
|
|
_08059612:
|
|
ldr r0, _08059674
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805963C
|
|
ldr r4, _08059678
|
|
ldrb r0, [r4]
|
|
cmp r0, #0
|
|
bne _0805963C
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #1
|
|
strb r0, [r4]
|
|
movs r0, #1
|
|
bl BattleCreateYesNoCursorAt
|
|
_0805963C:
|
|
ldr r0, _08059674
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r2, #1
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805968A
|
|
str r2, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r0, _08059678
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0805967C
|
|
movs r0, #1
|
|
movs r1, #0xe
|
|
movs r2, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
b _08059686
|
|
.align 2, 0
|
|
_08059674: .4byte 0x03002360
|
|
_08059678: .4byte 0x03005AD4
|
|
_0805967C:
|
|
movs r0, #1
|
|
movs r1, #0xd
|
|
movs r2, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
_08059686:
|
|
bl PlayerBufferExecCompleted
|
|
_0805968A:
|
|
ldr r0, _080596B8
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080596B0
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
movs r0, #5
|
|
bl PlaySE
|
|
bl PlayerBufferExecCompleted
|
|
_080596B0:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080596B8: .4byte 0x03002360
|
|
thumb_func_end PlayerHandleUnknownYesNoInput
|
|
|
|
thumb_func_start MoveSelectionDisplayMoveNames
|
|
MoveSelectionDisplayMoveNames: @ 0x080596BC
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _08059720
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #9
|
|
ldr r3, _08059724
|
|
ldr r2, _08059728
|
|
movs r0, #0
|
|
strb r0, [r2]
|
|
movs r5, #0
|
|
ldr r0, _0805972C
|
|
mov r8, r0
|
|
adds r4, r1, r3
|
|
adds r7, r2, #0
|
|
movs r6, #0xc0
|
|
lsls r6, r6, #0x12
|
|
_080596DE:
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl MoveSelectionDestroyCursorAt
|
|
ldrh r1, [r4]
|
|
lsls r1, r1, #3
|
|
ldr r0, _08059730
|
|
adds r1, r1, r0
|
|
mov r0, r8
|
|
bl StringCopy
|
|
lsrs r1, r6, #0x18
|
|
mov r0, r8
|
|
bl sub_0814FA04
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
beq _08059708
|
|
ldrb r0, [r7]
|
|
adds r0, #1
|
|
strb r0, [r7]
|
|
_08059708:
|
|
adds r4, #2
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
adds r6, r6, r0
|
|
adds r5, #1
|
|
cmp r5, #3
|
|
ble _080596DE
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059720: .4byte 0x02023D08
|
|
_08059724: .4byte 0x02022D0C
|
|
_08059728: .4byte 0x03005AD8
|
|
_0805972C: .4byte 0x02022AE0
|
|
_08059730: .4byte 0x082EACC4
|
|
thumb_func_end MoveSelectionDisplayMoveNames
|
|
|
|
thumb_func_start PlayerHandleTwoReturnValues
|
|
PlayerHandleTwoReturnValues: @ 0x08059734
|
|
push {r4, lr}
|
|
ldr r4, _08059760
|
|
ldr r1, _08059764
|
|
adds r0, r4, #0
|
|
bl StringCopy
|
|
adds r0, r4, #0
|
|
movs r1, #7
|
|
bl sub_0814FA04
|
|
ldr r1, _08059768
|
|
adds r0, r4, #0
|
|
bl StringCopy
|
|
adds r0, r4, #0
|
|
movs r1, #8
|
|
bl sub_0814FA04
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059760: .4byte 0x02022AE0
|
|
_08059764: .4byte 0x085ABB9B
|
|
_08059768: .4byte 0x085ABBA1
|
|
thumb_func_end PlayerHandleTwoReturnValues
|
|
|
|
thumb_func_start MoveSelectionDisplayPpNumber
|
|
MoveSelectionDisplayPpNumber: @ 0x0805976C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r5, _080597D0
|
|
ldr r7, _080597D4
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #9
|
|
adds r1, r5, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _080597C8
|
|
bl SetPpNumbersPaletteInMoveSelection
|
|
ldrb r1, [r7]
|
|
lsls r4, r1, #9
|
|
adds r0, r5, #4
|
|
adds r4, r4, r0
|
|
ldr r6, _080597D8
|
|
ldr r5, _080597DC
|
|
adds r1, r1, r5
|
|
adds r0, r4, #0
|
|
adds r0, #8
|
|
ldrb r1, [r1]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, #0
|
|
movs r2, #1
|
|
movs r3, #2
|
|
bl ConvertIntToDecimalStringN
|
|
movs r1, #0xba
|
|
strb r1, [r0]
|
|
adds r0, #1
|
|
ldrb r1, [r7]
|
|
adds r1, r1, r5
|
|
adds r4, #0xc
|
|
ldrb r1, [r1]
|
|
adds r4, r4, r1
|
|
ldrb r1, [r4]
|
|
movs r2, #1
|
|
movs r3, #2
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r6, #0
|
|
movs r1, #9
|
|
bl sub_0814FA04
|
|
_080597C8:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080597D0: .4byte 0x02022D08
|
|
_080597D4: .4byte 0x02023D08
|
|
_080597D8: .4byte 0x02022AE0
|
|
_080597DC: .4byte 0x02024154
|
|
thumb_func_end MoveSelectionDisplayPpNumber
|
|
|
|
thumb_func_start ActionSelectionCreateCursorAt
|
|
ActionSelectionCreateCursorAt: @ 0x080597E0
|
|
push {r4, lr}
|
|
ldr r0, _08059824
|
|
ldrb r1, [r0]
|
|
lsls r2, r1, #9
|
|
ldr r0, _08059828
|
|
adds r2, r2, r0
|
|
ldr r4, _0805982C
|
|
ldr r3, _08059830
|
|
ldr r0, _08059834
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r2, r2, r0
|
|
ldrh r1, [r2]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _08059838
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl StringCopy
|
|
adds r0, r4, #0
|
|
movs r1, #0xa
|
|
bl sub_0814FA04
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059824: .4byte 0x02023D08
|
|
_08059828: .4byte 0x02022D0C
|
|
_0805982C: .4byte 0x02022AE0
|
|
_08059830: .4byte 0x082ED220
|
|
_08059834: .4byte 0x02024154
|
|
_08059838: .4byte 0x082EBC88
|
|
thumb_func_end ActionSelectionCreateCursorAt
|
|
|
|
thumb_func_start MoveSelectionCreateCursorAt
|
|
MoveSelectionCreateCursorAt: @ 0x0805983C
|
|
push {lr}
|
|
sub sp, #0x10
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
add r2, sp, #0xc
|
|
adds r0, r1, #1
|
|
strh r0, [r2]
|
|
adds r0, r2, #0
|
|
adds r1, #2
|
|
strh r1, [r0, #2]
|
|
movs r1, #1
|
|
adds r2, r3, #0
|
|
ands r2, r1
|
|
lsls r2, r2, #3
|
|
adds r2, #1
|
|
movs r0, #2
|
|
ands r3, r0
|
|
adds r3, #0x37
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end MoveSelectionCreateCursorAt
|
|
|
|
thumb_func_start MoveSelectionDestroyCursorAt
|
|
MoveSelectionDestroyCursorAt: @ 0x08059884
|
|
push {lr}
|
|
sub sp, #0x10
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
add r0, sp, #0xc
|
|
ldr r1, _080598C4
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
movs r1, #1
|
|
adds r2, r3, #0
|
|
ands r2, r1
|
|
lsls r2, r2, #3
|
|
adds r2, #1
|
|
movs r0, #2
|
|
ands r3, r0
|
|
adds r3, #0x37
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080598C4: .4byte 0x00001016
|
|
thumb_func_end MoveSelectionDestroyCursorAt
|
|
|
|
thumb_func_start SetCB2ToReshowScreenAfterMenu
|
|
SetCB2ToReshowScreenAfterMenu: @ 0x080598C8
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
add r0, sp, #0xc
|
|
movs r4, #1
|
|
strh r4, [r0]
|
|
movs r1, #2
|
|
strh r1, [r0, #2]
|
|
adds r0, r3, #0
|
|
ands r0, r4
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r0
|
|
lsls r2, r2, #0x19
|
|
movs r0, #0x90
|
|
lsls r0, r0, #0x15
|
|
adds r2, r2, r0
|
|
lsrs r2, r2, #0x18
|
|
ands r3, r1
|
|
adds r3, #0x23
|
|
str r4, [sp]
|
|
str r1, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetCB2ToReshowScreenAfterMenu
|
|
|
|
thumb_func_start ActionSelectionDestroyCursorAt
|
|
ActionSelectionDestroyCursorAt: @ 0x08059910
|
|
push {lr}
|
|
sub sp, #0x10
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
add r0, sp, #0xc
|
|
ldr r1, _08059958
|
|
strh r1, [r0]
|
|
strh r1, [r0, #2]
|
|
movs r1, #1
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
lsls r2, r0, #1
|
|
adds r2, r2, r0
|
|
lsls r2, r2, #0x19
|
|
movs r0, #0x90
|
|
lsls r0, r0, #0x15
|
|
adds r2, r2, r0
|
|
lsrs r2, r2, #0x18
|
|
movs r0, #2
|
|
ands r3, r0
|
|
adds r3, #0x23
|
|
str r1, [sp]
|
|
str r0, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #0
|
|
add r1, sp, #0xc
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, #0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059958: .4byte 0x00001016
|
|
thumb_func_end ActionSelectionDestroyCursorAt
|
|
|
|
thumb_func_start SetCB2ToReshowScreenAfterMenu2
|
|
SetCB2ToReshowScreenAfterMenu2: @ 0x0805995C
|
|
push {lr}
|
|
ldr r0, _08059968
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059968: .4byte 0x080A8BC1
|
|
thumb_func_end SetCB2ToReshowScreenAfterMenu2
|
|
|
|
thumb_func_start sub_0805996C
|
|
sub_0805996C: @ 0x0805996C
|
|
push {lr}
|
|
ldr r0, _08059978
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059978: .4byte 0x080A8BC1
|
|
thumb_func_end sub_0805996C
|
|
|
|
thumb_func_start sub_0805997C
|
|
sub_0805997C: @ 0x0805997C
|
|
push {lr}
|
|
ldr r0, _080599A4
|
|
ldr r2, [r0]
|
|
ldr r0, _080599A8
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805999E
|
|
bl PlayerBufferExecCompleted
|
|
_0805999E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080599A4: .4byte 0x02024174
|
|
_080599A8: .4byte 0x02023D08
|
|
thumb_func_end sub_0805997C
|
|
|
|
thumb_func_start sub_080599AC
|
|
sub_080599AC: @ 0x080599AC
|
|
push {lr}
|
|
ldr r0, _080599D4
|
|
ldr r2, [r0]
|
|
ldr r0, _080599D8
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080599CE
|
|
bl PlayerBufferExecCompleted
|
|
_080599CE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080599D4: .4byte 0x02024174
|
|
_080599D8: .4byte 0x02023D08
|
|
thumb_func_end sub_080599AC
|
|
|
|
thumb_func_start PrintLinkStandbyMsg
|
|
PrintLinkStandbyMsg: @ 0x080599DC
|
|
push {lr}
|
|
ldr r0, _08059A00
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080599FC
|
|
ldr r0, _08059A04
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r0, _08059A08
|
|
strh r1, [r0]
|
|
ldr r0, _08059A0C
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
_080599FC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08059A00: .4byte 0x02022C90
|
|
_08059A04: .4byte 0x02022AC8
|
|
_08059A08: .4byte 0x02022ACA
|
|
_08059A0C: .4byte 0x085ABB62
|
|
thumb_func_end PrintLinkStandbyMsg
|
|
|
|
thumb_func_start PlayerHandleGetMonData
|
|
PlayerHandleGetMonData: @ 0x08059A10
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0x100
|
|
movs r6, #0
|
|
ldr r1, _08059A3C
|
|
ldr r0, _08059A40
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _08059A48
|
|
ldr r0, _08059A44
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, sp
|
|
bl CopyPlayerMonData
|
|
adds r6, r0, #0
|
|
b _08059A6A
|
|
.align 2, 0
|
|
_08059A3C: .4byte 0x02022D08
|
|
_08059A40: .4byte 0x02023D08
|
|
_08059A44: .4byte 0x02023D12
|
|
_08059A48:
|
|
ldrb r4, [r1]
|
|
movs r5, #0
|
|
_08059A4C:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _08059A62
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r2, sp
|
|
adds r1, r2, r6
|
|
bl CopyPlayerMonData
|
|
adds r6, r6, r0
|
|
_08059A62:
|
|
lsrs r4, r4, #1
|
|
adds r5, #1
|
|
cmp r5, #5
|
|
ble _08059A4C
|
|
_08059A6A:
|
|
lsls r1, r6, #0x10
|
|
lsrs r1, r1, #0x10
|
|
movs r0, #1
|
|
mov r2, sp
|
|
bl BtlController_EmitDataTransfer
|
|
bl PlayerBufferExecCompleted
|
|
add sp, #0x100
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandleGetMonData
|
|
|
|
thumb_func_start CopyPlayerMonData
|
|
CopyPlayerMonData: @ 0x08059A84
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x90
|
|
adds r7, r1, #0
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
movs r6, #0
|
|
ldr r2, _08059AB8
|
|
ldr r3, _08059ABC
|
|
ldrb r0, [r3]
|
|
lsls r0, r0, #9
|
|
adds r1, r2, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x3b
|
|
bls _08059AAE
|
|
bl _0805A21A
|
|
_08059AAE:
|
|
lsls r0, r0, #2
|
|
ldr r1, _08059AC0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08059AB8: .4byte 0x02022D08
|
|
_08059ABC: .4byte 0x02023D08
|
|
_08059AC0: .4byte 0x08059AC4
|
|
_08059AC4: @ jump table
|
|
.4byte _08059BB4 @ case 0
|
|
.4byte _08059DD8 @ case 1
|
|
.4byte _08059DE8 @ case 2
|
|
.4byte _08059DF8 @ case 3
|
|
.4byte _08059E60 @ case 4
|
|
.4byte _08059E60 @ case 5
|
|
.4byte _08059E60 @ case 6
|
|
.4byte _08059E60 @ case 7
|
|
.4byte _08059E7C @ case 8
|
|
.4byte _08059EB8 @ case 9
|
|
.4byte _08059EB8 @ case 10
|
|
.4byte _08059EB8 @ case 11
|
|
.4byte _08059EB8 @ case 12
|
|
.4byte _0805A21A @ case 13
|
|
.4byte _0805A21A @ case 14
|
|
.4byte _0805A21A @ case 15
|
|
.4byte _0805A21A @ case 16
|
|
.4byte _08059ED4 @ case 17
|
|
.4byte _08059EE4 @ case 18
|
|
.4byte _08059F14 @ case 19
|
|
.4byte _08059F24 @ case 20
|
|
.4byte _08059F34 @ case 21
|
|
.4byte _08059F44 @ case 22
|
|
.4byte _08059F54 @ case 23
|
|
.4byte _08059F64 @ case 24
|
|
.4byte _08059F74 @ case 25
|
|
.4byte _08059F84 @ case 26
|
|
.4byte _08059F94 @ case 27
|
|
.4byte _08059FA4 @ case 28
|
|
.4byte _08059FB4 @ case 29
|
|
.4byte _08059FC4 @ case 30
|
|
.4byte _08059FD4 @ case 31
|
|
.4byte _0805A024 @ case 32
|
|
.4byte _0805A034 @ case 33
|
|
.4byte _0805A044 @ case 34
|
|
.4byte _0805A054 @ case 35
|
|
.4byte _0805A064 @ case 36
|
|
.4byte _0805A074 @ case 37
|
|
.4byte _0805A084 @ case 38
|
|
.4byte _0805A094 @ case 39
|
|
.4byte _0805A0A4 @ case 40
|
|
.4byte _0805A0D8 @ case 41
|
|
.4byte _0805A0E8 @ case 42
|
|
.4byte _0805A0F8 @ case 43
|
|
.4byte _0805A108 @ case 44
|
|
.4byte _0805A118 @ case 45
|
|
.4byte _0805A128 @ case 46
|
|
.4byte _0805A138 @ case 47
|
|
.4byte _0805A148 @ case 48
|
|
.4byte _0805A168 @ case 49
|
|
.4byte _0805A178 @ case 50
|
|
.4byte _0805A188 @ case 51
|
|
.4byte _0805A198 @ case 52
|
|
.4byte _0805A1A8 @ case 53
|
|
.4byte _0805A1B8 @ case 54
|
|
.4byte _0805A1C8 @ case 55
|
|
.4byte _0805A1D8 @ case 56
|
|
.4byte _0805A1E8 @ case 57
|
|
.4byte _0805A1F8 @ case 58
|
|
.4byte _0805A208 @ case 59
|
|
_08059BB4:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08059DC8
|
|
adds r4, 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 sb, r0
|
|
movs r1, #0x3b
|
|
add r1, sp
|
|
mov sl, 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, #5
|
|
str r2, [sp, #0x84]
|
|
adds r0, #0x12
|
|
str r0, [sp, #0x88]
|
|
mov r8, r4
|
|
add r4, sp, #0xc
|
|
_08059C00:
|
|
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, sb
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
adds r4, #2
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08059C00
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _08059DC8
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
mov r1, sl
|
|
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
|
|
rsbs r1, r1, #0
|
|
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, r0, #5
|
|
ldrh r2, [r3, #0x14]
|
|
ldr r1, _08059DCC
|
|
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, r0, #2
|
|
ldrb r2, [r3, #0x15]
|
|
movs r1, #0x7d
|
|
rsbs r1, r1, #0
|
|
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, r1, #0xf
|
|
ldr r0, [sp, #0x14]
|
|
ldr r2, _08059DD0
|
|
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, r0, #4
|
|
ldrh r2, [r3, #0x16]
|
|
ldr r1, _08059DD4
|
|
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, r0, #1
|
|
ldrb r2, [r3, #0x17]
|
|
movs r1, #0x3f
|
|
rsbs r1, r1, #0
|
|
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, #2]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3c
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #4]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3d
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #6]
|
|
adds r0, r4, #0
|
|
movs r1, #0x3e
|
|
bl GetMonData
|
|
mov r1, sp
|
|
strh r0, [r1, #8]
|
|
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, #1
|
|
ands r0, r1
|
|
lsls r0, r0, #6
|
|
ldrb r2, [r3, #0x17]
|
|
movs r1, #0x41
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, #0x17]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2e
|
|
bl GetMonData
|
|
mov r3, sp
|
|
lsls r0, 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, #1
|
|
bl GetMonData
|
|
str r0, [sp, #0x54]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
ldr r2, [sp, #0x8c]
|
|
bl GetMonData
|
|
ldr r0, [sp, #0x84]
|
|
ldr r1, [sp, #0x8c]
|
|
bl StringCopy10
|
|
adds r0, r4, #0
|
|
movs r1, #7
|
|
ldr r2, [sp, #0x88]
|
|
bl GetMonData
|
|
mov r2, sp
|
|
movs r6, #0
|
|
_08059DB8:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, #1
|
|
cmp r6, #0x57
|
|
bls _08059DB8
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_08059DC8: .4byte 0x02024190
|
|
_08059DCC: .4byte 0xFFFFFC1F
|
|
_08059DD0: .4byte 0xFFF07FFF
|
|
_08059DD4: .4byte 0xFFFFFE0F
|
|
_08059DD8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059DE4
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
b _0805A152
|
|
.align 2, 0
|
|
_08059DE4: .4byte 0x02024190
|
|
_08059DE8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059DF4
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
b _0805A152
|
|
.align 2, 0
|
|
_08059DF4: .4byte 0x02024190
|
|
_08059DF8:
|
|
movs r6, #0
|
|
add r2, sp, #0x58
|
|
mov sb, r2
|
|
add r0, sp, #0x60
|
|
mov sl, r0
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _08059E5C
|
|
adds r4, r1, r0
|
|
mov r8, sb
|
|
_08059E0E:
|
|
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, sl
|
|
adds r1, r2, r6
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
add r8, r0
|
|
adds r6, #1
|
|
cmp r6, #3
|
|
ble _08059E0E
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059E5C
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
mov r1, sb
|
|
strb r0, [r1, #0xc]
|
|
mov r2, sb
|
|
movs r6, #0
|
|
_08059E4C:
|
|
adds r0, r7, r6
|
|
adds r1, r2, r6
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, #1
|
|
cmp r6, #0xf
|
|
bls _08059E4C
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_08059E5C: .4byte 0x02024190
|
|
_08059E60:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059E78
|
|
adds r0, r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #9
|
|
adds r2, #1
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, #9
|
|
b _0805A152
|
|
.align 2, 0
|
|
_08059E78: .4byte 0x02024190
|
|
_08059E7C:
|
|
movs r6, #0
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r2, _08059EB4
|
|
mov r8, r2
|
|
_08059E88:
|
|
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, #1
|
|
cmp r6, #3
|
|
ble _08059E88
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059EB4
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
bl GetMonData
|
|
adds r1, r7, r6
|
|
strb r0, [r1]
|
|
adds r6, #1
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_08059EB4: .4byte 0x02024190
|
|
_08059EB8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059ED0
|
|
adds r0, r0, r1
|
|
ldrb r1, [r3]
|
|
lsls r1, r1, #9
|
|
adds r2, #1
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
adds r1, #8
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059ED0: .4byte 0x02024190
|
|
_08059ED4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059EE0
|
|
adds r0, r0, r1
|
|
movs r1, #1
|
|
b _08059EEE
|
|
.align 2, 0
|
|
_08059EE0: .4byte 0x02024190
|
|
_08059EE4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F10
|
|
adds r0, r0, r1
|
|
movs r1, #0x19
|
|
_08059EEE:
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
strb r1, [r7]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
lsrs r0, r0, #8
|
|
strb r0, [r7, #1]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r1
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r7, #2]
|
|
movs r6, #3
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_08059F10: .4byte 0x02024190
|
|
_08059F14:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F20
|
|
adds r0, r0, r1
|
|
movs r1, #0x1a
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F20: .4byte 0x02024190
|
|
_08059F24:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F30
|
|
adds r0, r0, r1
|
|
movs r1, #0x1b
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F30: .4byte 0x02024190
|
|
_08059F34:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F40
|
|
adds r0, r0, r1
|
|
movs r1, #0x1c
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F40: .4byte 0x02024190
|
|
_08059F44:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F50
|
|
adds r0, r0, r1
|
|
movs r1, #0x1d
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F50: .4byte 0x02024190
|
|
_08059F54:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F60
|
|
adds r0, r0, r1
|
|
movs r1, #0x1e
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F60: .4byte 0x02024190
|
|
_08059F64:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F70
|
|
adds r0, r0, r1
|
|
movs r1, #0x1f
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F70: .4byte 0x02024190
|
|
_08059F74:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F80
|
|
adds r0, r0, r1
|
|
movs r1, #0x20
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F80: .4byte 0x02024190
|
|
_08059F84:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059F90
|
|
adds r0, r0, r1
|
|
movs r1, #0x22
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059F90: .4byte 0x02024190
|
|
_08059F94:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059FA0
|
|
adds r0, r0, r1
|
|
movs r1, #0x23
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059FA0: .4byte 0x02024190
|
|
_08059FA4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059FB0
|
|
adds r0, r0, r1
|
|
movs r1, #0x24
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059FB0: .4byte 0x02024190
|
|
_08059FB4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059FC0
|
|
adds r0, r0, r1
|
|
movs r1, #0x25
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059FC0: .4byte 0x02024190
|
|
_08059FC4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _08059FD0
|
|
adds r0, r0, r1
|
|
movs r1, #0x26
|
|
b _0805A212
|
|
.align 2, 0
|
|
_08059FD0: .4byte 0x02024190
|
|
_08059FD4:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805A020
|
|
adds r4, 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, #1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl GetMonData
|
|
strb r0, [r7, #2]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
bl GetMonData
|
|
strb r0, [r7, #3]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
bl GetMonData
|
|
strb r0, [r7, #4]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2c
|
|
bl GetMonData
|
|
strb r0, [r7, #5]
|
|
movs r6, #6
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_0805A020: .4byte 0x02024190
|
|
_0805A024:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A030
|
|
adds r0, r0, r1
|
|
movs r1, #0x27
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A030: .4byte 0x02024190
|
|
_0805A034:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A040
|
|
adds r0, r0, r1
|
|
movs r1, #0x28
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A040: .4byte 0x02024190
|
|
_0805A044:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A050
|
|
adds r0, r0, r1
|
|
movs r1, #0x29
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A050: .4byte 0x02024190
|
|
_0805A054:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A060
|
|
adds r0, r0, r1
|
|
movs r1, #0x2a
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A060: .4byte 0x02024190
|
|
_0805A064:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A070
|
|
adds r0, r0, r1
|
|
movs r1, #0x2b
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A070: .4byte 0x02024190
|
|
_0805A074:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A080
|
|
adds r0, r0, r1
|
|
movs r1, #0x2c
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A080: .4byte 0x02024190
|
|
_0805A084:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A090
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
b _0805A0AE
|
|
.align 2, 0
|
|
_0805A090: .4byte 0x02024190
|
|
_0805A094:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A0A0
|
|
adds r0, r0, r1
|
|
movs r1, #9
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A0A0: .4byte 0x02024190
|
|
_0805A0A4:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A0D4
|
|
adds r0, r0, r1
|
|
movs r1, #0x37
|
|
_0805A0AE:
|
|
bl GetMonData
|
|
adds r1, r0, #0
|
|
strb r1, [r7]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #8
|
|
ands r0, r1
|
|
lsrs r0, r0, #8
|
|
strb r0, [r7, #1]
|
|
movs r0, #0xff
|
|
lsls r0, r0, #0x10
|
|
ands r0, r1
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r7, #2]
|
|
lsrs r0, r1, #0x18
|
|
strb r0, [r7, #3]
|
|
movs r6, #4
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_0805A0D4: .4byte 0x02024190
|
|
_0805A0D8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A0E4
|
|
adds r0, r0, r1
|
|
movs r1, #0x38
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A0E4: .4byte 0x02024190
|
|
_0805A0E8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A0F4
|
|
adds r0, r0, r1
|
|
movs r1, #0x39
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A0F4: .4byte 0x02024190
|
|
_0805A0F8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A104
|
|
adds r0, r0, r1
|
|
movs r1, #0x3a
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A104: .4byte 0x02024190
|
|
_0805A108:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A114
|
|
adds r0, r0, r1
|
|
movs r1, #0x3b
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A114: .4byte 0x02024190
|
|
_0805A118:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A124
|
|
adds r0, r0, r1
|
|
movs r1, #0x3c
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A124: .4byte 0x02024190
|
|
_0805A128:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A134
|
|
adds r0, r0, r1
|
|
movs r1, #0x3d
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A134: .4byte 0x02024190
|
|
_0805A138:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A144
|
|
adds r0, r0, r1
|
|
movs r1, #0x3e
|
|
b _0805A152
|
|
.align 2, 0
|
|
_0805A144: .4byte 0x02024190
|
|
_0805A148:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A164
|
|
adds r0, r0, r1
|
|
movs r1, #0x3f
|
|
_0805A152:
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
strb r0, [r7]
|
|
lsrs r0, r0, #8
|
|
strb r0, [r7, #1]
|
|
movs r6, #2
|
|
b _0805A21A
|
|
.align 2, 0
|
|
_0805A164: .4byte 0x02024190
|
|
_0805A168:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A174
|
|
adds r0, r0, r1
|
|
movs r1, #0x16
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A174: .4byte 0x02024190
|
|
_0805A178:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A184
|
|
adds r0, r0, r1
|
|
movs r1, #0x17
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A184: .4byte 0x02024190
|
|
_0805A188:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A194
|
|
adds r0, r0, r1
|
|
movs r1, #0x18
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A194: .4byte 0x02024190
|
|
_0805A198:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A1A4
|
|
adds r0, r0, r1
|
|
movs r1, #0x21
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A1A4: .4byte 0x02024190
|
|
_0805A1A8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A1B4
|
|
adds r0, r0, r1
|
|
movs r1, #0x2f
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A1B4: .4byte 0x02024190
|
|
_0805A1B8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A1C4
|
|
adds r0, r0, r1
|
|
movs r1, #0x30
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A1C4: .4byte 0x02024190
|
|
_0805A1C8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A1D4
|
|
adds r0, r0, r1
|
|
movs r1, #0x32
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A1D4: .4byte 0x02024190
|
|
_0805A1D8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A1E4
|
|
adds r0, r0, r1
|
|
movs r1, #0x33
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A1E4: .4byte 0x02024190
|
|
_0805A1E8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A1F4
|
|
adds r0, r0, r1
|
|
movs r1, #0x34
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A1F4: .4byte 0x02024190
|
|
_0805A1F8:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A204
|
|
adds r0, r0, r1
|
|
movs r1, #0x35
|
|
b _0805A212
|
|
.align 2, 0
|
|
_0805A204: .4byte 0x02024190
|
|
_0805A208:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A22C
|
|
adds r0, r0, r1
|
|
movs r1, #0x36
|
|
_0805A212:
|
|
bl GetMonData
|
|
strb r0, [r7]
|
|
movs r6, #1
|
|
_0805A21A:
|
|
adds r0, r6, #0
|
|
add sp, #0x90
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A22C: .4byte 0x02024190
|
|
thumb_func_end CopyPlayerMonData
|
|
|
|
thumb_func_start PlayerHandleGetRawMonData
|
|
PlayerHandleGetRawMonData: @ 0x0805A230
|
|
push {r4, r5, r6, r7, lr}
|
|
sub sp, #0x58
|
|
ldr r2, _0805A2A8
|
|
ldr r5, _0805A2AC
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
adds r4, r2, #0
|
|
muls r4, r0, r4
|
|
ldr r3, _0805A2B0
|
|
lsls r1, r1, #9
|
|
adds r0, r3, #1
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
ldr r0, _0805A2B4
|
|
adds r0, r2, r0
|
|
adds r6, r4, r0
|
|
mov r0, sp
|
|
adds r4, r0, r2
|
|
movs r2, #0
|
|
adds r0, r3, #2
|
|
adds r1, r1, r0
|
|
adds r7, r5, #0
|
|
mov ip, r3
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bhs _0805A286
|
|
adds r3, r0, #0
|
|
_0805A26C:
|
|
adds r1, r4, r2
|
|
adds r0, r6, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
blo _0805A26C
|
|
_0805A286:
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #9
|
|
mov r1, ip
|
|
adds r1, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
adds r2, r4, #0
|
|
bl BtlController_EmitDataTransfer
|
|
bl PlayerBufferExecCompleted
|
|
add sp, #0x58
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805A2A8: .4byte 0x02023D12
|
|
_0805A2AC: .4byte 0x02023D08
|
|
_0805A2B0: .4byte 0x02022D08
|
|
_0805A2B4: .4byte 0x02024190
|
|
thumb_func_end PlayerHandleGetRawMonData
|
|
|
|
thumb_func_start PlayerHandleSetMonData
|
|
PlayerHandleSetMonData: @ 0x0805A2B8
|
|
push {r4, r5, lr}
|
|
ldr r1, _0805A2DC
|
|
ldr r0, _0805A2E0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _0805A2E8
|
|
ldr r0, _0805A2E4
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
bl SetPlayerMonData
|
|
b _0805A306
|
|
.align 2, 0
|
|
_0805A2DC: .4byte 0x02022D08
|
|
_0805A2E0: .4byte 0x02023D08
|
|
_0805A2E4: .4byte 0x02023D12
|
|
_0805A2E8:
|
|
ldrb r4, [r1]
|
|
movs r5, #0
|
|
_0805A2EC:
|
|
movs r0, #1
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _0805A2FA
|
|
adds r0, r5, #0
|
|
bl SetPlayerMonData
|
|
_0805A2FA:
|
|
lsrs r4, r4, #1
|
|
adds r0, r5, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #5
|
|
bls _0805A2EC
|
|
_0805A306:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleSetMonData
|
|
|
|
thumb_func_start SetPlayerMonData
|
|
SetPlayerMonData: @ 0x0805A310
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x34
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _0805A348
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
ldr r2, _0805A34C
|
|
adds r3, r0, r2
|
|
adds r6, r3, #0
|
|
subs r1, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
adds r7, r2, #0
|
|
cmp r0, #0x3b
|
|
bls _0805A33C
|
|
bl _0805ACD6
|
|
_0805A33C:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805A350
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0805A348: .4byte 0x02023D08
|
|
_0805A34C: .4byte 0x02022D0B
|
|
_0805A350: .4byte 0x0805A354
|
|
_0805A354: @ jump table
|
|
.4byte _0805A444 @ case 0
|
|
.4byte _0805A5DC @ case 1
|
|
.4byte _0805A5FC @ case 2
|
|
.4byte _0805A61C @ case 3
|
|
.4byte _0805A674 @ case 4
|
|
.4byte _0805A674 @ case 5
|
|
.4byte _0805A674 @ case 6
|
|
.4byte _0805A674 @ case 7
|
|
.4byte _0805A69C @ case 8
|
|
.4byte _0805A700 @ case 9
|
|
.4byte _0805A700 @ case 10
|
|
.4byte _0805A700 @ case 11
|
|
.4byte _0805A700 @ case 12
|
|
.4byte _0805ACD6 @ case 13
|
|
.4byte _0805ACD6 @ case 14
|
|
.4byte _0805ACD6 @ case 15
|
|
.4byte _0805ACD6 @ case 16
|
|
.4byte _0805A730 @ case 17
|
|
.4byte _0805A750 @ case 18
|
|
.4byte _0805A770 @ case 19
|
|
.4byte _0805A790 @ case 20
|
|
.4byte _0805A7B0 @ case 21
|
|
.4byte _0805A7D0 @ case 22
|
|
.4byte _0805A7F0 @ case 23
|
|
.4byte _0805A810 @ case 24
|
|
.4byte _0805A830 @ case 25
|
|
.4byte _0805A850 @ case 26
|
|
.4byte _0805A870 @ case 27
|
|
.4byte _0805A890 @ case 28
|
|
.4byte _0805A8B0 @ case 29
|
|
.4byte _0805A8D0 @ case 30
|
|
.4byte _0805A8F0 @ case 31
|
|
.4byte _0805A960 @ case 32
|
|
.4byte _0805A980 @ case 33
|
|
.4byte _0805A9A0 @ case 34
|
|
.4byte _0805A9C0 @ case 35
|
|
.4byte _0805A9E0 @ case 36
|
|
.4byte _0805AA00 @ case 37
|
|
.4byte _0805AA20 @ case 38
|
|
.4byte _0805AA40 @ case 39
|
|
.4byte _0805AA60 @ case 40
|
|
.4byte _0805AA80 @ case 41
|
|
.4byte _0805AAA0 @ case 42
|
|
.4byte _0805AAC0 @ case 43
|
|
.4byte _0805AAE0 @ case 44
|
|
.4byte _0805AB00 @ case 45
|
|
.4byte _0805AB20 @ case 46
|
|
.4byte _0805AB40 @ case 47
|
|
.4byte _0805AB60 @ case 48
|
|
.4byte _0805AB80 @ case 49
|
|
.4byte _0805ABA0 @ case 50
|
|
.4byte _0805ABC0 @ case 51
|
|
.4byte _0805ABE0 @ case 52
|
|
.4byte _0805AC00 @ case 53
|
|
.4byte _0805AC20 @ case 54
|
|
.4byte _0805AC40 @ case 55
|
|
.4byte _0805AC60 @ case 56
|
|
.4byte _0805AC80 @ case 57
|
|
.4byte _0805ACA0 @ case 58
|
|
.4byte _0805ACC0 @ case 59
|
|
_0805A444:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805A5D8
|
|
adds r4, 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, r0, r6
|
|
mov sl, r0
|
|
adds r0, r6, #0
|
|
adds r0, #0x2b
|
|
str r0, [sp, #0x20]
|
|
adds r0, #0x19
|
|
str r0, [sp, #0x28]
|
|
adds r0, #4
|
|
str r0, [sp, #0x2c]
|
|
adds r0, #4
|
|
str r0, [sp, #0x30]
|
|
subs r0, #0x22
|
|
str r0, [sp, #0x1c]
|
|
subs r0, #2
|
|
str r0, [sp, #0x18]
|
|
adds r0, #4
|
|
str r0, [sp, #0x24]
|
|
adds r0, r6, #2
|
|
str r0, [sp, #4]
|
|
adds r0, r6, #4
|
|
str r0, [sp, #8]
|
|
adds r0, r6, #6
|
|
str r0, [sp, #0xc]
|
|
adds r0, #2
|
|
str r0, [sp, #0x10]
|
|
adds r0, #2
|
|
str r0, [sp, #0x14]
|
|
mov sb, r4
|
|
adds r7, r6, #0
|
|
adds r7, #0x24
|
|
adds r4, r6, #0
|
|
adds r4, #0xc
|
|
_0805A4AA:
|
|
mov r1, r8
|
|
adds r1, #0xd
|
|
mov r0, sb
|
|
adds r2, r4, #0
|
|
bl SetMonData
|
|
mov r1, r8
|
|
adds r1, #0x11
|
|
mov r0, sb
|
|
adds r2, r7, #0
|
|
bl SetMonData
|
|
adds r7, #1
|
|
adds r4, #2
|
|
movs r0, #1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, #3
|
|
ble _0805A4AA
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805A5D8
|
|
adds r4, r4, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
mov r2, sl
|
|
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, r0, #0x1b
|
|
lsrs r0, r0, #0x1b
|
|
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, r0, #0x16
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrb r0, [r6, #0x15]
|
|
lsls r0, r0, #0x19
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldr r0, [r6, #0x14]
|
|
lsls r0, r0, #0xc
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrh r0, [r6, #0x16]
|
|
lsls r0, r0, #0x17
|
|
lsrs r0, r0, #0x1b
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
mov r2, sp
|
|
bl SetMonData
|
|
mov r1, sp
|
|
ldrb r0, [r6, #0x17]
|
|
lsls r0, r0, #0x1a
|
|
lsrs r0, r0, #0x1b
|
|
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, #4]
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
movs r1, #0x3c
|
|
ldr r2, [sp, #8]
|
|
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 _0805ACD6
|
|
.align 2, 0
|
|
_0805A5D8: .4byte 0x02024190
|
|
_0805A5DC:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A5F4
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A5F8
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0xb
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A5F4: .4byte 0x02024190
|
|
_0805A5F8: .4byte 0x02023D08
|
|
_0805A5FC:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A614
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A618
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0xc
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A614: .4byte 0x02024190
|
|
_0805A618: .4byte 0x02023D08
|
|
_0805A61C:
|
|
movs r0, #0
|
|
mov r8, r0
|
|
movs r0, #0xc
|
|
adds r0, r0, r3
|
|
mov sb, r0
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0805A670
|
|
adds r7, r1, r0
|
|
adds r6, r3, #0
|
|
adds r6, #8
|
|
adds r4, r3, #0
|
|
_0805A636:
|
|
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, #1
|
|
adds r4, #2
|
|
movs r0, #1
|
|
add r8, r0
|
|
mov r0, r8
|
|
cmp r0, #3
|
|
ble _0805A636
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A670
|
|
adds r0, r0, r1
|
|
movs r1, #0x15
|
|
mov r2, sb
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A670: .4byte 0x02024190
|
|
_0805A674:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A690
|
|
adds r0, r0, r1
|
|
ldr r3, _0805A694
|
|
ldr r1, _0805A698
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r1, r3, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, #9
|
|
b _0805A718
|
|
.align 2, 0
|
|
_0805A690: .4byte 0x02024190
|
|
_0805A694: .4byte 0x02022D08
|
|
_0805A698: .4byte 0x02023D08
|
|
_0805A69C:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805A6F8
|
|
adds r4, r4, r0
|
|
ldr r5, _0805A6FC
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
adds r0, r4, #0
|
|
movs r1, #0x11
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #1
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x12
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #2
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x13
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #3
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x14
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #4
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A6F8: .4byte 0x02024190
|
|
_0805A6FC: .4byte 0x02023D08
|
|
_0805A700:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A724
|
|
adds r0, r0, r1
|
|
ldr r3, _0805A728
|
|
ldr r1, _0805A72C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r1, r3, #1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
adds r1, #8
|
|
_0805A718:
|
|
adds r3, #3
|
|
adds r2, r2, r3
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A724: .4byte 0x02024190
|
|
_0805A728: .4byte 0x02022D08
|
|
_0805A72C: .4byte 0x02023D08
|
|
_0805A730:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A748
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A74C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #1
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A748: .4byte 0x02024190
|
|
_0805A74C: .4byte 0x02023D08
|
|
_0805A750:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A768
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A76C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x19
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A768: .4byte 0x02024190
|
|
_0805A76C: .4byte 0x02023D08
|
|
_0805A770:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A788
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A78C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1a
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A788: .4byte 0x02024190
|
|
_0805A78C: .4byte 0x02023D08
|
|
_0805A790:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A7A8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A7AC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1b
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A7A8: .4byte 0x02024190
|
|
_0805A7AC: .4byte 0x02023D08
|
|
_0805A7B0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A7C8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A7CC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1c
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A7C8: .4byte 0x02024190
|
|
_0805A7CC: .4byte 0x02023D08
|
|
_0805A7D0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A7E8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A7EC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1d
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A7E8: .4byte 0x02024190
|
|
_0805A7EC: .4byte 0x02023D08
|
|
_0805A7F0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A808
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A80C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1e
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A808: .4byte 0x02024190
|
|
_0805A80C: .4byte 0x02023D08
|
|
_0805A810:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A828
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A82C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x1f
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A828: .4byte 0x02024190
|
|
_0805A82C: .4byte 0x02023D08
|
|
_0805A830:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A848
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A84C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x20
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A848: .4byte 0x02024190
|
|
_0805A84C: .4byte 0x02023D08
|
|
_0805A850:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A868
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A86C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x22
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A868: .4byte 0x02024190
|
|
_0805A86C: .4byte 0x02023D08
|
|
_0805A870:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A888
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A88C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x23
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A888: .4byte 0x02024190
|
|
_0805A88C: .4byte 0x02023D08
|
|
_0805A890:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A8A8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A8AC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x24
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A8A8: .4byte 0x02024190
|
|
_0805A8AC: .4byte 0x02023D08
|
|
_0805A8B0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A8C8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A8CC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x25
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A8C8: .4byte 0x02024190
|
|
_0805A8CC: .4byte 0x02023D08
|
|
_0805A8D0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A8E8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A8EC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x26
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A8E8: .4byte 0x02024190
|
|
_0805A8EC: .4byte 0x02023D08
|
|
_0805A8F0:
|
|
movs r0, #0x64
|
|
adds r4, r5, #0
|
|
muls r4, r0, r4
|
|
ldr r0, _0805A958
|
|
adds r4, r4, r0
|
|
ldr r5, _0805A95C
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
adds r0, r4, #0
|
|
movs r1, #0x27
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #1
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x28
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #2
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x29
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #3
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x2a
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #4
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
bl SetMonData
|
|
ldrb r2, [r5]
|
|
lsls r2, r2, #9
|
|
adds r0, r7, #5
|
|
adds r2, r2, r0
|
|
adds r0, r4, #0
|
|
b _0805AA10
|
|
.align 2, 0
|
|
_0805A958: .4byte 0x02024190
|
|
_0805A95C: .4byte 0x02023D08
|
|
_0805A960:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A978
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A97C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x27
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A978: .4byte 0x02024190
|
|
_0805A97C: .4byte 0x02023D08
|
|
_0805A980:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A998
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A99C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x28
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A998: .4byte 0x02024190
|
|
_0805A99C: .4byte 0x02023D08
|
|
_0805A9A0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A9B8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A9BC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x29
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A9B8: .4byte 0x02024190
|
|
_0805A9BC: .4byte 0x02023D08
|
|
_0805A9C0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A9D8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A9DC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x2a
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A9D8: .4byte 0x02024190
|
|
_0805A9DC: .4byte 0x02023D08
|
|
_0805A9E0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805A9F8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805A9FC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x2b
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805A9F8: .4byte 0x02024190
|
|
_0805A9FC: .4byte 0x02023D08
|
|
_0805AA00:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AA18
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AA1C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
_0805AA10:
|
|
movs r1, #0x2c
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AA18: .4byte 0x02024190
|
|
_0805AA1C: .4byte 0x02023D08
|
|
_0805AA20:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AA38
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AA3C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AA38: .4byte 0x02024190
|
|
_0805AA3C: .4byte 0x02023D08
|
|
_0805AA40:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AA58
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AA5C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #9
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AA58: .4byte 0x02024190
|
|
_0805AA5C: .4byte 0x02023D08
|
|
_0805AA60:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AA78
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AA7C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x37
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AA78: .4byte 0x02024190
|
|
_0805AA7C: .4byte 0x02023D08
|
|
_0805AA80:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AA98
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AA9C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x38
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AA98: .4byte 0x02024190
|
|
_0805AA9C: .4byte 0x02023D08
|
|
_0805AAA0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AAB8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AABC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x39
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AAB8: .4byte 0x02024190
|
|
_0805AABC: .4byte 0x02023D08
|
|
_0805AAC0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AAD8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AADC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3a
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AAD8: .4byte 0x02024190
|
|
_0805AADC: .4byte 0x02023D08
|
|
_0805AAE0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AAF8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AAFC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3b
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AAF8: .4byte 0x02024190
|
|
_0805AAFC: .4byte 0x02023D08
|
|
_0805AB00:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AB18
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AB1C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3c
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AB18: .4byte 0x02024190
|
|
_0805AB1C: .4byte 0x02023D08
|
|
_0805AB20:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AB38
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AB3C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3d
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AB38: .4byte 0x02024190
|
|
_0805AB3C: .4byte 0x02023D08
|
|
_0805AB40:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AB58
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AB5C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3e
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AB58: .4byte 0x02024190
|
|
_0805AB5C: .4byte 0x02023D08
|
|
_0805AB60:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AB78
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AB7C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x3f
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AB78: .4byte 0x02024190
|
|
_0805AB7C: .4byte 0x02023D08
|
|
_0805AB80:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AB98
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AB9C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x16
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AB98: .4byte 0x02024190
|
|
_0805AB9C: .4byte 0x02023D08
|
|
_0805ABA0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805ABB8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805ABBC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x17
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805ABB8: .4byte 0x02024190
|
|
_0805ABBC: .4byte 0x02023D08
|
|
_0805ABC0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805ABD8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805ABDC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x18
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805ABD8: .4byte 0x02024190
|
|
_0805ABDC: .4byte 0x02023D08
|
|
_0805ABE0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805ABF8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805ABFC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x21
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805ABF8: .4byte 0x02024190
|
|
_0805ABFC: .4byte 0x02023D08
|
|
_0805AC00:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AC18
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AC1C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x2f
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AC18: .4byte 0x02024190
|
|
_0805AC1C: .4byte 0x02023D08
|
|
_0805AC20:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AC38
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AC3C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x30
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AC38: .4byte 0x02024190
|
|
_0805AC3C: .4byte 0x02023D08
|
|
_0805AC40:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AC58
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AC5C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x32
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AC58: .4byte 0x02024190
|
|
_0805AC5C: .4byte 0x02023D08
|
|
_0805AC60:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AC78
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AC7C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x33
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AC78: .4byte 0x02024190
|
|
_0805AC7C: .4byte 0x02023D08
|
|
_0805AC80:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AC98
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AC9C
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x34
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805AC98: .4byte 0x02024190
|
|
_0805AC9C: .4byte 0x02023D08
|
|
_0805ACA0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805ACB8
|
|
adds r0, r0, r1
|
|
ldr r1, _0805ACBC
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x35
|
|
bl SetMonData
|
|
b _0805ACD6
|
|
.align 2, 0
|
|
_0805ACB8: .4byte 0x02024190
|
|
_0805ACBC: .4byte 0x02023D08
|
|
_0805ACC0:
|
|
movs r0, #0x64
|
|
muls r0, r5, r0
|
|
ldr r1, _0805AD00
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AD04
|
|
ldrb r2, [r1]
|
|
lsls r2, r2, #9
|
|
adds r2, r2, r7
|
|
movs r1, #0x36
|
|
bl SetMonData
|
|
_0805ACD6:
|
|
ldr r2, _0805AD08
|
|
ldr r0, _0805AD04
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _0805AD00
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
add sp, #0x34
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AD00: .4byte 0x02024190
|
|
_0805AD04: .4byte 0x02023D08
|
|
_0805AD08: .4byte 0x02023D12
|
|
thumb_func_end SetPlayerMonData
|
|
|
|
thumb_func_start PlayerHandleSetRawMonData
|
|
PlayerHandleSetRawMonData: @ 0x0805AD0C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r1, _0805AD70
|
|
ldr r7, _0805AD74
|
|
ldrb r2, [r7]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
adds r3, r1, #0
|
|
muls r3, r0, r3
|
|
ldr r4, _0805AD78
|
|
lsls r2, r2, #9
|
|
adds r0, r4, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, _0805AD7C
|
|
adds r0, r0, r1
|
|
adds r5, r3, r0
|
|
movs r3, #0
|
|
adds r0, r4, #2
|
|
adds r2, r2, r0
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bhs _0805AD64
|
|
adds r6, r4, #0
|
|
adds r2, r7, #0
|
|
adds r4, r0, #0
|
|
_0805AD42:
|
|
adds r1, r5, r3
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #9
|
|
adds r0, #3
|
|
adds r0, r3, r0
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
blo _0805AD42
|
|
_0805AD64:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AD70: .4byte 0x02023D12
|
|
_0805AD74: .4byte 0x02023D08
|
|
_0805AD78: .4byte 0x02022D08
|
|
_0805AD7C: .4byte 0x02024190
|
|
thumb_func_end PlayerHandleSetRawMonData
|
|
|
|
thumb_func_start PlayerHandleLoadMonSprite
|
|
PlayerHandleLoadMonSprite: @ 0x0805AD80
|
|
push {r4, lr}
|
|
ldr r2, _0805ADCC
|
|
ldr r4, _0805ADD0
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _0805ADD4
|
|
adds r0, r0, r2
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldr r2, _0805ADD8
|
|
ldr r0, _0805ADDC
|
|
ldrb r3, [r4]
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
lsls r3, r3, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #5]
|
|
ldr r1, _0805ADE0
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805ADE4
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805ADCC: .4byte 0x02023D12
|
|
_0805ADD0: .4byte 0x02023D08
|
|
_0805ADD4: .4byte 0x02024190
|
|
_0805ADD8: .4byte 0x020205AC
|
|
_0805ADDC: .4byte 0x02023E88
|
|
_0805ADE0: .4byte 0x03005AC0
|
|
_0805ADE4: .4byte 0x08057165
|
|
thumb_func_end PlayerHandleLoadMonSprite
|
|
|
|
thumb_func_start PlayerHandleSwitchInAnim
|
|
PlayerHandleSwitchInAnim: @ 0x0805ADE8
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _0805AE54
|
|
ldrb r0, [r5]
|
|
ldr r4, _0805AE58
|
|
lsls r1, r0, #9
|
|
adds r6, r4, #2
|
|
adds r1, r1, r6
|
|
ldrb r1, [r1]
|
|
bl ClearTemporarySpeciesSpriteData
|
|
ldr r2, _0805AE5C
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r2
|
|
lsls r0, r0, #9
|
|
adds r4, #1
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
movs r4, #0
|
|
strh r0, [r1]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _0805AE60
|
|
adds r0, r0, r2
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldr r1, _0805AE64
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
strb r4, [r0]
|
|
ldr r1, _0805AE68
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r1
|
|
strb r4, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r1, r0, #9
|
|
adds r1, r1, r6
|
|
ldrb r1, [r1]
|
|
bl sub_0805AE74
|
|
ldr r1, _0805AE6C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AE70
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AE54: .4byte 0x02023D08
|
|
_0805AE58: .4byte 0x02022D08
|
|
_0805AE5C: .4byte 0x02023D12
|
|
_0805AE60: .4byte 0x02024190
|
|
_0805AE64: .4byte 0x02024150
|
|
_0805AE68: .4byte 0x02024154
|
|
_0805AE6C: .4byte 0x03005AC0
|
|
_0805AE70: .4byte 0x08058C3D
|
|
thumb_func_end PlayerHandleSwitchInAnim
|
|
|
|
thumb_func_start sub_0805AE74
|
|
sub_0805AE74: @ 0x0805AE74
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sl
|
|
mov r5, sb
|
|
mov r4, r8
|
|
push {r4, r5, r6}
|
|
adds r6, r0, #0
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r6, #0
|
|
bl ClearTemporarySpeciesSpriteData
|
|
ldr r0, _0805AFC8
|
|
lsls r2, r6, #1
|
|
adds r2, r2, r0
|
|
ldr r0, _0805AFCC
|
|
lsls r1, r6, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
strh r0, [r2]
|
|
ldrh r1, [r2]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805AFD0
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
ldr r0, _0805AFD4
|
|
bl CreateInvisibleSpriteWithCallback
|
|
ldr r1, _0805AFD8
|
|
mov sb, r1
|
|
add sb, r6
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
adds r0, r6, #0
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
mov r0, r8
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _0805AFDC
|
|
mov sl, r0
|
|
adds r0, r6, #0
|
|
movs r1, #2
|
|
bl GetBattlerSpriteCoord
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
adds r0, r6, #0
|
|
bl GetBattlerSpriteDefault_Y
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r6, #0
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r0, sl
|
|
adds r1, r5, #0
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _0805AFE0
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
ldr r5, _0805AFE4
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrb r1, [r4]
|
|
strh r1, [r0, #0x30]
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r6, [r0, #0x32]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r6, [r0, #0x2e]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
lsls r3, r6, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #5]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _0805AFE8
|
|
adds r6, r6, r1
|
|
ldrb r1, [r6]
|
|
bl StartSpriteAnim
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
adds r0, #0x3e
|
|
ldrb r1, [r0]
|
|
movs r2, #4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _0805AFEC
|
|
str r1, [r0]
|
|
movs r0, #0
|
|
movs r1, #0xff
|
|
bl DoPokeballSendOutAnimation
|
|
mov r1, sb
|
|
ldrb r2, [r1]
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
strh r0, [r1, #0x2e]
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AFC8: .4byte 0x02023D12
|
|
_0805AFCC: .4byte 0x02022D08
|
|
_0805AFD0: .4byte 0x02024190
|
|
_0805AFD4: .4byte 0x0805D331
|
|
_0805AFD8: .4byte 0x03005ADC
|
|
_0805AFDC: .4byte 0x02024640
|
|
_0805AFE0: .4byte 0x02023E88
|
|
_0805AFE4: .4byte 0x020205AC
|
|
_0805AFE8: .4byte 0x02024188
|
|
_0805AFEC: .4byte 0x08007141
|
|
thumb_func_end sub_0805AE74
|
|
|
|
thumb_func_start PlayerHandleReturnMonToBall
|
|
PlayerHandleReturnMonToBall: @ 0x0805AFF0
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _0805B024
|
|
ldr r6, _0805B028
|
|
ldrb r2, [r6]
|
|
lsls r0, r2, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r3, [r0]
|
|
cmp r3, #0
|
|
bne _0805B038
|
|
ldr r0, _0805B02C
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
strb r3, [r0, #4]
|
|
ldr r1, _0805B030
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B034
|
|
str r1, [r0]
|
|
b _0805B06E
|
|
.align 2, 0
|
|
_0805B024: .4byte 0x02022D08
|
|
_0805B028: .4byte 0x02023D08
|
|
_0805B02C: .4byte 0x02024174
|
|
_0805B030: .4byte 0x03005AC0
|
|
_0805B034: .4byte 0x0805B081
|
|
_0805B038:
|
|
ldr r5, _0805B074
|
|
adds r0, r2, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _0805B078
|
|
adds r0, r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
bl DestroySprite
|
|
ldr r1, _0805B07C
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
bl PlayerBufferExecCompleted
|
|
_0805B06E:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B074: .4byte 0x02023E88
|
|
_0805B078: .4byte 0x020205AC
|
|
_0805B07C: .4byte 0x03005AD0
|
|
thumb_func_end PlayerHandleReturnMonToBall
|
|
|
|
thumb_func_start sub_0805B080
|
|
sub_0805B080: @ 0x0805B080
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _0805B0A0
|
|
ldr r4, [r6]
|
|
ldr r5, _0805B0A4
|
|
ldrb r2, [r5]
|
|
ldr r1, [r4, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, #4]
|
|
cmp r0, #0
|
|
beq _0805B0A8
|
|
cmp r0, #1
|
|
beq _0805B0D6
|
|
b _0805B0FE
|
|
.align 2, 0
|
|
_0805B0A0: .4byte 0x02024174
|
|
_0805B0A4: .4byte 0x02023D08
|
|
_0805B0A8:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805B0C2
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_0805B0C2:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #1
|
|
strb r1, [r0, #4]
|
|
b _0805B0FE
|
|
_0805B0D6:
|
|
ldrb r1, [r3]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805B0FE
|
|
strb r0, [r3, #4]
|
|
ldrb r2, [r5]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #1
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r1, _0805B104
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B108
|
|
str r1, [r0]
|
|
_0805B0FE:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B104: .4byte 0x03005AC0
|
|
_0805B108: .4byte 0x08059355
|
|
thumb_func_end sub_0805B080
|
|
|
|
thumb_func_start PlayerHandleDrawTrainerPic
|
|
PlayerHandleDrawTrainerPic: @ 0x0805B10C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
ldr r0, _0805B16C
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805B1D0
|
|
bl GetMultiplayerId
|
|
ldr r5, _0805B170
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
movs r4, #0xff
|
|
ldrb r0, [r1]
|
|
cmp r0, #4
|
|
beq _0805B154
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #5
|
|
bne _0805B174
|
|
_0805B154:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #0x13]
|
|
adds r4, r0, #2
|
|
b _0805B1D6
|
|
.align 2, 0
|
|
_0805B16C: .4byte 0x02022C90
|
|
_0805B170: .4byte 0x020226A0
|
|
_0805B174:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #2
|
|
beq _0805B1A6
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrh r0, [r1]
|
|
ands r4, r0
|
|
cmp r4, #1
|
|
bne _0805B1BC
|
|
_0805B1A6:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #0x13]
|
|
adds r4, r0, #4
|
|
b _0805B1D6
|
|
_0805B1BC:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r4, [r1, #0x13]
|
|
b _0805B1D6
|
|
_0805B1D0:
|
|
ldr r0, _0805B21C
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, #8]
|
|
_0805B1D6:
|
|
ldr r0, _0805B220
|
|
ldr r1, [r0]
|
|
movs r2, #0x40
|
|
ands r1, r2
|
|
adds r5, r0, #0
|
|
cmp r1, #0
|
|
beq _0805B258
|
|
ldr r0, _0805B224
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
movs r1, #2
|
|
ands r1, r0
|
|
movs r0, #0x20
|
|
mov sb, r0
|
|
cmp r1, #0
|
|
beq _0805B1FC
|
|
movs r1, #0x5a
|
|
mov sb, r1
|
|
_0805B1FC:
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805B234
|
|
ldr r0, _0805B228
|
|
ldrh r1, [r0]
|
|
ldr r0, _0805B22C
|
|
cmp r1, r0
|
|
beq _0805B234
|
|
movs r0, #0x5a
|
|
mov sb, r0
|
|
ldr r1, _0805B230
|
|
b _0805B25E
|
|
.align 2, 0
|
|
_0805B21C: .4byte 0x03005AF0
|
|
_0805B220: .4byte 0x02022C90
|
|
_0805B224: .4byte 0x02023D08
|
|
_0805B228: .4byte 0x0203886E
|
|
_0805B22C: .4byte 0x00000C03
|
|
_0805B230: .4byte 0x082D8D70
|
|
_0805B234:
|
|
ldr r1, _0805B250
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #0x12
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #0xf
|
|
adds r0, r0, r1
|
|
lsrs r7, r0, #0x10
|
|
ldr r5, _0805B254
|
|
b _0805B272
|
|
.align 2, 0
|
|
_0805B250: .4byte 0x082D95BC
|
|
_0805B254: .4byte 0x02022C90
|
|
_0805B258:
|
|
movs r0, #0x50
|
|
mov sb, r0
|
|
ldr r1, _0805B384
|
|
_0805B25E:
|
|
lsls r0, r4, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #0x12
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #0xf
|
|
adds r0, r0, r1
|
|
lsrs r7, r0, #0x10
|
|
_0805B272:
|
|
ldr r0, [r5]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805B280
|
|
b _0805B3B0
|
|
_0805B280:
|
|
ldr r0, _0805B388
|
|
ldrh r1, [r0]
|
|
ldr r0, _0805B38C
|
|
cmp r1, r0
|
|
bne _0805B28C
|
|
b _0805B3B0
|
|
_0805B28C:
|
|
ldr r0, _0805B390
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
bl PlayerGenderToFrontTrainerPicId
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
adds r5, r4, #0
|
|
ldr r6, _0805B394
|
|
ldrb r1, [r6]
|
|
adds r0, r5, #0
|
|
bl DecompressTrainerFrontPic
|
|
ldrb r0, [r6]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r5, #0
|
|
bl SetMultiuseSpriteTemplateToTrainerFront
|
|
ldr r0, _0805B398
|
|
mov r8, r0
|
|
lsls r4, r7, #0x10
|
|
asrs r4, r4, #0x10
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
mov r0, r8
|
|
mov r1, sb
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r4, _0805B39C
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, _0805B3A0
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r0
|
|
ldrh r0, [r5, #4]
|
|
bl IndexOfSpritePaletteTag
|
|
ldr r5, _0805B3A4
|
|
ldrb r1, [r6]
|
|
adds r1, r1, r4
|
|
ldrb r1, [r1]
|
|
lsls r2, r1, #4
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r5
|
|
lsls r0, r0, #4
|
|
ldrb r3, [r2, #5]
|
|
movs r1, #0xf
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, #5]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #0xf0
|
|
strh r1, [r0, #0x24]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #0x30
|
|
strh r1, [r0, #0x26]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _0805B3A8
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B3AC
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r2, [r1, #1]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1, #1]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
adds r0, #0x3f
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0805B446
|
|
.align 2, 0
|
|
_0805B384: .4byte 0x082D95BC
|
|
_0805B388: .4byte 0x0203886E
|
|
_0805B38C: .4byte 0x00000C03
|
|
_0805B390: .4byte 0x03005AF0
|
|
_0805B394: .4byte 0x02023D08
|
|
_0805B398: .4byte 0x02024640
|
|
_0805B39C: .4byte 0x02023E88
|
|
_0805B3A0: .4byte 0x082D91CC
|
|
_0805B3A4: .4byte 0x020205AC
|
|
_0805B3A8: .4byte 0x0000FFFE
|
|
_0805B3AC: .4byte 0x0805D3C9
|
|
_0805B3B0:
|
|
ldr r5, _0805B460
|
|
ldrb r1, [r5]
|
|
adds r0, r4, #0
|
|
bl DecompressTrainerBackPic
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r4, #0
|
|
bl SetMultiuseSpriteTemplateToTrainerBack
|
|
ldr r6, _0805B464
|
|
mov r8, sb
|
|
lsls r4, r7, #0x10
|
|
asrs r4, r4, #0x10
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSpriteSubpriority
|
|
adds r3, r0, #0
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
adds r0, r6, #0
|
|
mov r1, r8
|
|
adds r2, r4, #0
|
|
bl CreateSprite
|
|
ldr r6, _0805B468
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, _0805B46C
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
lsls r3, r3, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #5]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #0xf0
|
|
strh r1, [r0, #0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _0805B470
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, #0x1c
|
|
adds r0, r0, r4
|
|
ldr r1, _0805B474
|
|
str r1, [r0]
|
|
_0805B446:
|
|
ldr r1, _0805B478
|
|
ldr r0, _0805B460
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B47C
|
|
str r1, [r0]
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B460: .4byte 0x02023D08
|
|
_0805B464: .4byte 0x02024640
|
|
_0805B468: .4byte 0x02023E88
|
|
_0805B46C: .4byte 0x020205AC
|
|
_0805B470: .4byte 0x0000FFFE
|
|
_0805B474: .4byte 0x0805D3C9
|
|
_0805B478: .4byte 0x03005AC0
|
|
_0805B47C: .4byte 0x08058455
|
|
thumb_func_end PlayerHandleDrawTrainerPic
|
|
|
|
thumb_func_start PlayerHandleTrainerSlide
|
|
PlayerHandleTrainerSlide: @ 0x0805B480
|
|
push {r4, r5, r6, lr}
|
|
ldr r0, _0805B4D8
|
|
ldr r0, [r0]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805B53C
|
|
bl GetMultiplayerId
|
|
ldr r5, _0805B4DC
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
movs r4, #0xff
|
|
ldrb r0, [r1]
|
|
cmp r0, #4
|
|
beq _0805B4C2
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #5
|
|
bne _0805B4E0
|
|
_0805B4C2:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #0x13]
|
|
adds r4, r0, #2
|
|
b _0805B542
|
|
.align 2, 0
|
|
_0805B4D8: .4byte 0x02022C90
|
|
_0805B4DC: .4byte 0x020226A0
|
|
_0805B4E0:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r4, #0
|
|
ands r0, r1
|
|
cmp r0, #2
|
|
beq _0805B512
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrh r0, [r1]
|
|
ands r4, r0
|
|
cmp r4, #1
|
|
bne _0805B528
|
|
_0805B512:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #0x13]
|
|
adds r4, r0, #4
|
|
b _0805B542
|
|
_0805B528:
|
|
bl GetMultiplayerId
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
lsls r1, r0, #3
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r4, [r1, #0x13]
|
|
b _0805B542
|
|
_0805B53C:
|
|
ldr r0, _0805B5EC
|
|
ldr r0, [r0]
|
|
ldrb r4, [r0, #8]
|
|
_0805B542:
|
|
ldr r5, _0805B5F0
|
|
ldrb r1, [r5]
|
|
adds r0, r4, #0
|
|
bl DecompressTrainerBackPic
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r4, #0
|
|
bl SetMultiuseSpriteTemplateToTrainerBack
|
|
ldr r0, _0805B5F4
|
|
ldr r1, _0805B5F8
|
|
lsls r4, r4, #2
|
|
adds r4, r4, r1
|
|
ldrb r1, [r4]
|
|
movs r2, #8
|
|
subs r2, r2, r1
|
|
lsls r2, r2, #0x12
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #0xf
|
|
adds r2, r2, r1
|
|
asrs r2, r2, #0x10
|
|
movs r1, #0x50
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
ldr r6, _0805B5FC
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r6
|
|
strb r0, [r1]
|
|
ldr r4, _0805B600
|
|
ldrb r3, [r5]
|
|
adds r0, r3, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r4
|
|
lsls r3, r3, #4
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
strb r0, [r1, #5]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _0805B604
|
|
strh r1, [r0, #0x24]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #2
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r4, #0x1c
|
|
adds r0, r0, r4
|
|
ldr r1, _0805B608
|
|
str r1, [r0]
|
|
ldr r1, _0805B60C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B610
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B5EC: .4byte 0x03005AF0
|
|
_0805B5F0: .4byte 0x02023D08
|
|
_0805B5F4: .4byte 0x02024640
|
|
_0805B5F8: .4byte 0x082D95BC
|
|
_0805B5FC: .4byte 0x02023E88
|
|
_0805B600: .4byte 0x020205AC
|
|
_0805B604: .4byte 0x0000FFA0
|
|
_0805B608: .4byte 0x0805D3C9
|
|
_0805B60C: .4byte 0x03005AC0
|
|
_0805B610: .4byte 0x0805848D
|
|
thumb_func_end PlayerHandleTrainerSlide
|
|
|
|
thumb_func_start PlayerHandleTrainerSlideBack
|
|
PlayerHandleTrainerSlideBack: @ 0x0805B614
|
|
push {r4, r5, r6, lr}
|
|
ldr r5, _0805B6B4
|
|
ldr r6, _0805B6B8
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r4, _0805B6BC
|
|
adds r0, r0, r4
|
|
bl SetSpritePrimaryCoordsFromSecondaryCoords
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #0x32
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _0805B6C0
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldrh r1, [r0, #0x22]
|
|
strh r1, [r0, #0x36]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r4, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B6C4
|
|
str r1, [r0]
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
ldr r1, _0805B6C8
|
|
bl StoreSpriteCallbackInData6
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #1
|
|
bl StartSpriteAnim
|
|
ldr r1, _0805B6CC
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B6D0
|
|
str r1, [r0]
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B6B4: .4byte 0x02023E88
|
|
_0805B6B8: .4byte 0x02023D08
|
|
_0805B6BC: .4byte 0x020205AC
|
|
_0805B6C0: .4byte 0x0000FFD8
|
|
_0805B6C4: .4byte 0x080A67B5
|
|
_0805B6C8: .4byte 0x08007141
|
|
_0805B6CC: .4byte 0x03005AC0
|
|
_0805B6D0: .4byte 0x080584C5
|
|
thumb_func_end PlayerHandleTrainerSlideBack
|
|
|
|
thumb_func_start PlayerHandleFaintAnimation
|
|
PlayerHandleFaintAnimation: @ 0x0805B6D4
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _0805B720
|
|
ldr r4, [r6]
|
|
ldr r5, _0805B724
|
|
ldrb r2, [r5]
|
|
ldr r0, [r4, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r3, r1, r0
|
|
ldrb r0, [r3, #4]
|
|
cmp r0, #0
|
|
bne _0805B728
|
|
ldr r1, [r4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805B708
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_0805B708:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #4]
|
|
adds r1, #1
|
|
strb r1, [r0, #4]
|
|
b _0805B79E
|
|
.align 2, 0
|
|
_0805B720: .4byte 0x02024174
|
|
_0805B724: .4byte 0x02023D08
|
|
_0805B728:
|
|
ldrb r1, [r3]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _0805B79E
|
|
strb r4, [r3, #4]
|
|
ldr r2, _0805B7A4
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r2
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _0805B7A8
|
|
adds r0, r0, r2
|
|
bl HandleLowHpMusicChange
|
|
movs r1, #0x40
|
|
rsbs r1, r1, #0
|
|
movs r0, #0x10
|
|
bl PlaySE12WithPanning
|
|
ldr r2, _0805B7AC
|
|
ldr r3, _0805B7B0
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strh r4, [r0, #0x30]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #5
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r5]
|
|
adds r0, r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _0805B7B4
|
|
str r1, [r0]
|
|
ldr r1, _0805B7B8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B7BC
|
|
str r1, [r0]
|
|
_0805B79E:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B7A4: .4byte 0x02023D12
|
|
_0805B7A8: .4byte 0x02024190
|
|
_0805B7AC: .4byte 0x020205AC
|
|
_0805B7B0: .4byte 0x02023E88
|
|
_0805B7B4: .4byte 0x08039845
|
|
_0805B7B8: .4byte 0x03005AC0
|
|
_0805B7BC: .4byte 0x080592B9
|
|
thumb_func_end PlayerHandleFaintAnimation
|
|
|
|
thumb_func_start PlayerHandlePaletteFade
|
|
PlayerHandlePaletteFade: @ 0x0805B7C0
|
|
push {lr}
|
|
sub sp, #4
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
bl PlayerBufferExecCompleted
|
|
add sp, #4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandlePaletteFade
|
|
|
|
thumb_func_start PlayerHandleSuccessBallThrowAnim
|
|
PlayerHandleSuccessBallThrowAnim: @ 0x0805B7E0
|
|
push {r4, r5, lr}
|
|
ldr r0, _0805B820
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #8]
|
|
movs r0, #4
|
|
strb r0, [r1, #8]
|
|
ldr r1, _0805B824
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
ldr r5, _0805B828
|
|
ldrb r4, [r5]
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
adds r0, r4, #0
|
|
adds r1, r4, #0
|
|
movs r3, #3
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r1, _0805B82C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B830
|
|
str r1, [r0]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B820: .4byte 0x02024174
|
|
_0805B824: .4byte 0x0202415D
|
|
_0805B828: .4byte 0x02023D08
|
|
_0805B82C: .4byte 0x03005AC0
|
|
_0805B830: .4byte 0x0805952D
|
|
thumb_func_end PlayerHandleSuccessBallThrowAnim
|
|
|
|
thumb_func_start PlayerHandleBallThrowAnim
|
|
PlayerHandleBallThrowAnim: @ 0x0805B834
|
|
push {r4, r5, lr}
|
|
ldr r1, _0805B87C
|
|
ldr r5, _0805B880
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r0, _0805B884
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #8]
|
|
strb r1, [r0, #8]
|
|
ldr r1, _0805B888
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
ldrb r4, [r5]
|
|
movs r0, #1
|
|
bl GetBattlerAtPosition
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
adds r0, r4, #0
|
|
adds r1, r4, #0
|
|
movs r3, #3
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r1, _0805B88C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805B890
|
|
str r1, [r0]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B87C: .4byte 0x02022D08
|
|
_0805B880: .4byte 0x02023D08
|
|
_0805B884: .4byte 0x02024174
|
|
_0805B888: .4byte 0x0202415D
|
|
_0805B88C: .4byte 0x03005AC0
|
|
_0805B890: .4byte 0x0805952D
|
|
thumb_func_end PlayerHandleBallThrowAnim
|
|
|
|
thumb_func_start PlayerHandlePause
|
|
PlayerHandlePause: @ 0x0805B894
|
|
push {lr}
|
|
ldr r1, _0805B8BC
|
|
ldr r0, _0805B8C0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0805B8B2
|
|
_0805B8A8:
|
|
subs r0, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805B8A8
|
|
_0805B8B2:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B8BC: .4byte 0x02022D08
|
|
_0805B8C0: .4byte 0x02023D08
|
|
thumb_func_end PlayerHandlePause
|
|
|
|
thumb_func_start PlayerHandleMoveAnimation
|
|
PlayerHandleMoveAnimation: @ 0x0805B8C4
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r5, _0805B9B4
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805B8DA
|
|
b _0805BA00
|
|
_0805B8DA:
|
|
ldr r0, _0805B9B8
|
|
mov ip, r0
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
adds r0, #1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
mov r0, ip
|
|
adds r0, #2
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r6, r0
|
|
ldr r0, _0805B9BC
|
|
mov r8, r0
|
|
mov r0, ip
|
|
adds r0, #3
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r3, _0805B9C0
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
mov r0, ip
|
|
adds r0, #4
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, ip
|
|
adds r0, #5
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
strh r2, [r3]
|
|
ldr r3, _0805B9C4
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
mov r0, ip
|
|
adds r0, #6
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, ip
|
|
adds r0, #7
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
mov r0, ip
|
|
adds r0, #8
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x10
|
|
orrs r2, r0
|
|
mov r0, ip
|
|
adds r0, #9
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
orrs r2, r0
|
|
str r2, [r3]
|
|
ldr r2, _0805B9C8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
mov r1, ip
|
|
adds r1, #0xa
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r4, _0805B9CC
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
mov r0, ip
|
|
adds r0, #0xc
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
mov r0, ip
|
|
adds r0, #0xd
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
strh r2, [r4]
|
|
ldr r7, _0805B9D0
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
mov r0, ip
|
|
adds r0, #0x10
|
|
adds r1, r1, r0
|
|
str r1, [r7]
|
|
ldr r2, _0805B9D4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r6, #0
|
|
bl IsMoveWithoutAnimation
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _0805B9D8
|
|
bl PlayerBufferExecCompleted
|
|
b _0805BA00
|
|
.align 2, 0
|
|
_0805B9B4: .4byte 0x02023D08
|
|
_0805B9B8: .4byte 0x02022D08
|
|
_0805B9BC: .4byte 0x020380D2
|
|
_0805B9C0: .4byte 0x020380A8
|
|
_0805B9C4: .4byte 0x020380A4
|
|
_0805B9C8: .4byte 0x020380BA
|
|
_0805B9CC: .4byte 0x020380BC
|
|
_0805B9D0: .4byte 0x020380A0
|
|
_0805B9D4: .4byte 0x02024160
|
|
_0805B9D8:
|
|
ldr r0, _0805BA0C
|
|
ldr r0, [r0]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r3, [r0, #4]
|
|
ldr r1, _0805BA10
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BA14
|
|
str r1, [r0]
|
|
ldrh r1, [r4]
|
|
ldr r2, [r7]
|
|
adds r0, r6, #0
|
|
bl BattleTv_SetDataBasedOnMove
|
|
_0805BA00:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BA0C: .4byte 0x02024174
|
|
_0805BA10: .4byte 0x03005AC0
|
|
_0805BA14: .4byte 0x0805BA19
|
|
thumb_func_end PlayerHandleMoveAnimation
|
|
|
|
thumb_func_start PlayerDoMoveAnimation
|
|
PlayerDoMoveAnimation: @ 0x0805BA18
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldr r2, _0805BA64
|
|
ldr r6, _0805BA68
|
|
ldrb r3, [r6]
|
|
lsls r1, r3, #9
|
|
adds r0, r2, #1
|
|
mov sl, r0
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r5, r2, #2
|
|
mov sb, r5
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
adds r2, #0xb
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
ldr r7, _0805BA6C
|
|
ldr r5, [r7]
|
|
ldr r1, [r5, #4]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0, #4]
|
|
cmp r2, #1
|
|
beq _0805BAB0
|
|
cmp r2, #1
|
|
bgt _0805BA70
|
|
cmp r2, #0
|
|
beq _0805BA7A
|
|
b _0805BB8C
|
|
.align 2, 0
|
|
_0805BA64: .4byte 0x02022D08
|
|
_0805BA68: .4byte 0x02023D08
|
|
_0805BA6C: .4byte 0x02024174
|
|
_0805BA70:
|
|
cmp r2, #2
|
|
beq _0805BADA
|
|
cmp r2, #3
|
|
beq _0805BB50
|
|
b _0805BB8C
|
|
_0805BA7A:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, #2
|
|
adds r1, r0, r1
|
|
ldrb r2, [r1]
|
|
movs r0, #0xc
|
|
ands r0, r2
|
|
cmp r0, #4
|
|
bne _0805BA9C
|
|
movs r0, #8
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrb r2, [r6]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #5
|
|
bl InitAndLaunchSpecialAnimation
|
|
_0805BA9C:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #1
|
|
strb r1, [r0, #4]
|
|
b _0805BB8C
|
|
_0805BAB0:
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0805BB8C
|
|
movs r0, #0
|
|
bl sub_0805E7B8
|
|
adds r0, r4, #0
|
|
bl DoMoveAnim
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #2
|
|
strb r1, [r0, #4]
|
|
b _0805BB8C
|
|
_0805BADA:
|
|
ldr r0, _0805BB40
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
ldr r0, _0805BB44
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _0805BB8C
|
|
movs r0, #1
|
|
bl sub_0805E7B8
|
|
ldr r0, [r7]
|
|
ldrb r2, [r6]
|
|
ldr r1, [r0]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805BB28
|
|
mov r0, r8
|
|
cmp r0, #1
|
|
bhi _0805BB28
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
movs r3, #6
|
|
bl InitAndLaunchSpecialAnimation
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r0, [r0]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, #9
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0805BB28:
|
|
ldr r0, _0805BB48
|
|
ldr r2, [r0]
|
|
ldr r0, _0805BB4C
|
|
ldrb r1, [r0]
|
|
ldr r2, [r2, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #3
|
|
strb r1, [r0, #4]
|
|
b _0805BB8C
|
|
.align 2, 0
|
|
_0805BB40: .4byte 0x02038098
|
|
_0805BB44: .4byte 0x0203809D
|
|
_0805BB48: .4byte 0x02024174
|
|
_0805BB4C: .4byte 0x02023D08
|
|
_0805BB50:
|
|
ldrb r1, [r0]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _0805BB8C
|
|
bl CopyAllBattleSpritesInvisibilities
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, #9
|
|
mov r3, sl
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
add r2, sb
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #8
|
|
orrs r1, r2
|
|
bl TrySetBehindSubstituteSpriteBit
|
|
ldr r0, [r7]
|
|
ldrb r1, [r6]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r4, [r0, #4]
|
|
bl PlayerBufferExecCompleted
|
|
_0805BB8C:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerDoMoveAnimation
|
|
|
|
thumb_func_start PlayerHandlePrintString
|
|
PlayerHandlePrintString: @ 0x0805BB9C
|
|
push {r4, r5, lr}
|
|
ldr r0, _0805BBE0
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r0, _0805BBE4
|
|
strh r1, [r0]
|
|
ldr r5, _0805BBE8
|
|
ldrb r4, [r5]
|
|
lsls r4, r4, #9
|
|
ldr r0, _0805BBEC
|
|
adds r4, r4, r0
|
|
ldrh r0, [r4]
|
|
bl BufferStringBattle
|
|
ldr r0, _0805BBF0
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _0805BBF4
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BBF8
|
|
str r1, [r0]
|
|
ldrh r0, [r4]
|
|
bl BattleTv_SetDataBasedOnString
|
|
ldrb r0, [r5]
|
|
ldrh r1, [r4]
|
|
bl BattleArena_DeductMindPoints
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BBE0: .4byte 0x02022AC8
|
|
_0805BBE4: .4byte 0x02022ACA
|
|
_0805BBE8: .4byte 0x02023D08
|
|
_0805BBEC: .4byte 0x02022D0A
|
|
_0805BBF0: .4byte 0x02022AE0
|
|
_0805BBF4: .4byte 0x03005AC0
|
|
_0805BBF8: .4byte 0x080593C5
|
|
thumb_func_end PlayerHandlePrintString
|
|
|
|
thumb_func_start PlayerHandlePrintSelectionString
|
|
PlayerHandlePrintSelectionString: @ 0x0805BBFC
|
|
push {lr}
|
|
ldr r0, _0805BC14
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805BC18
|
|
bl PlayerHandlePrintString
|
|
b _0805BC1C
|
|
.align 2, 0
|
|
_0805BC14: .4byte 0x02023D08
|
|
_0805BC18:
|
|
bl PlayerBufferExecCompleted
|
|
_0805BC1C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandlePrintSelectionString
|
|
|
|
thumb_func_start sub_0805BC20
|
|
sub_0805BC20: @ 0x0805BC20
|
|
push {lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
bne _0805BC46
|
|
ldr r0, _0805BC4C
|
|
strh r1, [r0]
|
|
ldr r1, _0805BC50
|
|
movs r0, #0xa0
|
|
strh r0, [r1]
|
|
ldr r1, _0805BC54
|
|
ldr r0, _0805BC58
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BC5C
|
|
str r1, [r0]
|
|
_0805BC46:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BC4C: .4byte 0x02022AC8
|
|
_0805BC50: .4byte 0x02022ACA
|
|
_0805BC54: .4byte 0x03005AC0
|
|
_0805BC58: .4byte 0x02023D08
|
|
_0805BC5C: .4byte 0x08057199
|
|
thumb_func_end sub_0805BC20
|
|
|
|
thumb_func_start PlayerHandleChooseAction
|
|
PlayerHandleChooseAction: @ 0x0805BC60
|
|
push {r4, lr}
|
|
ldr r1, _0805BCB0
|
|
ldr r0, _0805BCB4
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BCB8
|
|
str r1, [r0]
|
|
bl BattleTv_ClearExplosionFaintCause
|
|
ldr r0, _0805BCBC
|
|
movs r1, #2
|
|
bl sub_0814FA04
|
|
movs r4, #0
|
|
_0805BC7E:
|
|
lsls r0, r4, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl ActionSelectionDestroyCursorAt
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
ble _0805BC7E
|
|
ldr r1, _0805BCC0
|
|
ldr r0, _0805BCB4
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl SetCB2ToReshowScreenAfterMenu
|
|
ldr r0, _0805BCC4
|
|
bl TryGetStatusString
|
|
ldr r0, _0805BCC8
|
|
movs r1, #1
|
|
bl sub_0814FA04
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BCB0: .4byte 0x03005AC0
|
|
_0805BCB4: .4byte 0x02023D08
|
|
_0805BCB8: .4byte 0x0805BC21
|
|
_0805BCBC: .4byte 0x085ABB72
|
|
_0805BCC0: .4byte 0x02024150
|
|
_0805BCC4: .4byte 0x085ABB43
|
|
_0805BCC8: .4byte 0x02022AE0
|
|
thumb_func_end PlayerHandleChooseAction
|
|
|
|
thumb_func_start PlayerHandleUnknownYesNoBox
|
|
PlayerHandleUnknownYesNoBox: @ 0x0805BCCC
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r4, _0805BD10
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805BD24
|
|
str r0, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r0, _0805BD14
|
|
movs r1, #0xc
|
|
bl sub_0814FA04
|
|
ldr r1, _0805BD18
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
bl BattleCreateYesNoCursorAt
|
|
ldr r1, _0805BD1C
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BD20
|
|
str r1, [r0]
|
|
b _0805BD28
|
|
.align 2, 0
|
|
_0805BD10: .4byte 0x02023D08
|
|
_0805BD14: .4byte 0x085ABBC9
|
|
_0805BD18: .4byte 0x03005AD4
|
|
_0805BD1C: .4byte 0x03005AC0
|
|
_0805BD20: .4byte 0x080595E5
|
|
_0805BD24:
|
|
bl PlayerBufferExecCompleted
|
|
_0805BD28:
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleUnknownYesNoBox
|
|
|
|
thumb_func_start HandleChooseMoveAfterDma3
|
|
HandleChooseMoveAfterDma3: @ 0x0805BD30
|
|
push {lr}
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
bne _0805BD5A
|
|
ldr r0, _0805BD60
|
|
strh r1, [r0]
|
|
ldr r1, _0805BD64
|
|
movs r2, #0xa0
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r1, _0805BD68
|
|
ldr r0, _0805BD6C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BD70
|
|
str r1, [r0]
|
|
_0805BD5A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BD60: .4byte 0x02022AC8
|
|
_0805BD64: .4byte 0x02022ACA
|
|
_0805BD68: .4byte 0x03005AC0
|
|
_0805BD6C: .4byte 0x02023D08
|
|
_0805BD70: .4byte 0x0805780D
|
|
thumb_func_end HandleChooseMoveAfterDma3
|
|
|
|
thumb_func_start PlayerChooseMoveInBattlePalace
|
|
PlayerChooseMoveInBattlePalace: @ 0x0805BD74
|
|
push {lr}
|
|
ldr r0, _0805BDB4
|
|
ldrb r1, [r0]
|
|
ldr r0, _0805BDB8
|
|
ldr r0, [r0]
|
|
adds r1, r1, r0
|
|
movs r0, #0xa6
|
|
lsls r0, r0, #2
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
subs r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805BDB0
|
|
ldr r1, _0805BDBC
|
|
ldr r0, _0805BDC0
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bl ChooseMoveAndTargetInBattlePalace
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x10
|
|
lsrs r2, r2, #0x10
|
|
movs r0, #1
|
|
movs r1, #0xa
|
|
bl BtlController_EmitTwoReturnValues
|
|
bl PlayerBufferExecCompleted
|
|
_0805BDB0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BDB4: .4byte 0x02023D08
|
|
_0805BDB8: .4byte 0x02024140
|
|
_0805BDBC: .4byte 0x0203B9FC
|
|
_0805BDC0: .4byte 0x03005AE0
|
|
thumb_func_end PlayerChooseMoveInBattlePalace
|
|
|
|
thumb_func_start PlayerHandleChooseMove
|
|
PlayerHandleChooseMove: @ 0x0805BDC4
|
|
push {lr}
|
|
ldr r0, _0805BDF4
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xa
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805BE08
|
|
ldr r2, _0805BDF8
|
|
ldrb r0, [r2]
|
|
ldr r1, _0805BDFC
|
|
ldr r1, [r1]
|
|
adds r0, r0, r1
|
|
movs r1, #0xa6
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
movs r1, #8
|
|
strb r1, [r0]
|
|
ldr r1, _0805BE00
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BE04
|
|
b _0805BE18
|
|
.align 2, 0
|
|
_0805BDF4: .4byte 0x02022C90
|
|
_0805BDF8: .4byte 0x02023D08
|
|
_0805BDFC: .4byte 0x02024140
|
|
_0805BE00: .4byte 0x03005AC0
|
|
_0805BE04: .4byte 0x0805BD75
|
|
_0805BE08:
|
|
bl InitMoveSelectionsVarsAndStrings
|
|
ldr r1, _0805BE20
|
|
ldr r0, _0805BE24
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BE28
|
|
_0805BE18:
|
|
str r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BE20: .4byte 0x03005AC0
|
|
_0805BE24: .4byte 0x02023D08
|
|
_0805BE28: .4byte 0x0805BD31
|
|
thumb_func_end PlayerHandleChooseMove
|
|
|
|
thumb_func_start InitMoveSelectionsVarsAndStrings
|
|
InitMoveSelectionsVarsAndStrings: @ 0x0805BE2C
|
|
push {lr}
|
|
bl MoveSelectionDisplayMoveNames
|
|
ldr r1, _0805BE58
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
ldr r1, _0805BE5C
|
|
ldr r0, _0805BE60
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
bl MoveSelectionCreateCursorAt
|
|
bl PlayerHandleTwoReturnValues
|
|
bl MoveSelectionDisplayPpNumber
|
|
bl ActionSelectionCreateCursorAt
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BE58: .4byte 0x03005AD4
|
|
_0805BE5C: .4byte 0x02024154
|
|
_0805BE60: .4byte 0x02023D08
|
|
thumb_func_end InitMoveSelectionsVarsAndStrings
|
|
|
|
thumb_func_start PlayerHandleChooseItem
|
|
PlayerHandleChooseItem: @ 0x0805BE64
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _0805BEB0
|
|
ldr r2, _0805BEB4
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805BEB8
|
|
str r1, [r0]
|
|
ldr r1, _0805BEBC
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r3, #0
|
|
ldr r5, _0805BEC0
|
|
ldr r4, _0805BEC4
|
|
_0805BE92:
|
|
adds r0, r3, r5
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #9
|
|
adds r1, #1
|
|
adds r1, r3, r1
|
|
adds r1, r1, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, #1
|
|
cmp r3, #2
|
|
ble _0805BE92
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BEB0: .4byte 0x03005AC0
|
|
_0805BEB4: .4byte 0x02023D08
|
|
_0805BEB8: .4byte 0x080594B5
|
|
_0805BEBC: .4byte 0x0202415C
|
|
_0805BEC0: .4byte 0x0203CBCC
|
|
_0805BEC4: .4byte 0x02022D08
|
|
thumb_func_end PlayerHandleChooseItem
|
|
|
|
thumb_func_start PlayerHandleChoosePokemon
|
|
PlayerHandleChoosePokemon: @ 0x0805BEC8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, #4
|
|
movs r3, #0
|
|
ldr r0, _0805BF38
|
|
mov ip, r0
|
|
ldr r1, _0805BF3C
|
|
mov r8, r1
|
|
ldr r2, _0805BF40
|
|
ldr r7, _0805BF44
|
|
mov r6, ip
|
|
mov r5, r8
|
|
adds r4, r2, #0
|
|
_0805BEE4:
|
|
adds r0, r3, r6
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #9
|
|
adds r1, #4
|
|
adds r1, r3, r1
|
|
adds r1, r1, r5
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, #1
|
|
cmp r3, #2
|
|
ble _0805BEE4
|
|
ldr r0, [r7]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xb
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805BF4C
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, #9
|
|
mov r1, r8
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #2
|
|
beq _0805BF4C
|
|
ldr r1, _0805BF48
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
adds r1, #1
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
movs r0, #1
|
|
mov r2, ip
|
|
bl BtlController_EmitChosenMonReturnValue
|
|
bl PlayerBufferExecCompleted
|
|
b _0805BFD8
|
|
.align 2, 0
|
|
_0805BF38: .4byte 0x0203CBCC
|
|
_0805BF3C: .4byte 0x02022D08
|
|
_0805BF40: .4byte 0x02023D08
|
|
_0805BF44: .4byte 0x02022C90
|
|
_0805BF48: .4byte 0x02023D12
|
|
_0805BF4C:
|
|
ldr r0, _0805BFE4
|
|
movs r1, #0xff
|
|
bl CreateTask
|
|
ldr r3, _0805BFE8
|
|
ldr r4, _0805BFEC
|
|
ldrb r1, [r4]
|
|
adds r1, r1, r3
|
|
movs r2, #0
|
|
mov r8, r2
|
|
strb r0, [r1]
|
|
ldr r5, _0805BFF0
|
|
ldrb r2, [r4]
|
|
adds r3, r2, r3
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldr r5, _0805BFF4
|
|
lsls r2, r2, #9
|
|
adds r6, r5, #1
|
|
adds r2, r2, r6
|
|
ldrb r2, [r2]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
strh r0, [r1, #8]
|
|
ldr r3, _0805BFF8
|
|
ldr r1, [r3]
|
|
adds r1, #0x49
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
lsrs r0, r0, #4
|
|
strb r0, [r1]
|
|
ldr r2, [r3]
|
|
adds r2, #0x8b
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r1, r5, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r1, [r3]
|
|
adds r1, #0xb0
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #9
|
|
adds r5, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _0805BFFC
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C000
|
|
str r1, [r0]
|
|
ldr r1, _0805C004
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
_0805BFD8:
|
|
add sp, #4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BFE4: .4byte 0x080A8A41
|
|
_0805BFE8: .4byte 0x03005ADC
|
|
_0805BFEC: .4byte 0x02023D08
|
|
_0805BFF0: .4byte 0x03005B60
|
|
_0805BFF4: .4byte 0x02022D08
|
|
_0805BFF8: .4byte 0x02024140
|
|
_0805BFFC: .4byte 0x03005AC0
|
|
_0805C000: .4byte 0x080593DD
|
|
_0805C004: .4byte 0x0202415C
|
|
thumb_func_end PlayerHandleChoosePokemon
|
|
|
|
thumb_func_start PlayerHandleCmd23
|
|
PlayerHandleCmd23: @ 0x0805C008
|
|
push {lr}
|
|
sub sp, #4
|
|
bl BattleStopLowHpSound
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r1, #2
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
bl PlayerBufferExecCompleted
|
|
add sp, #4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PlayerHandleCmd23
|
|
|
|
thumb_func_start PlayerHandleHealthBarUpdate
|
|
PlayerHandleHealthBarUpdate: @ 0x0805C02C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #4
|
|
movs r0, #0
|
|
bl LoadBattleBarGfx
|
|
ldr r3, _0805C0B4
|
|
ldr r0, _0805C0B8
|
|
mov sb, r0
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #9
|
|
adds r0, r3, #2
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
adds r3, #3
|
|
adds r1, r1, r3
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r2, r0
|
|
lsls r2, r2, #0x10
|
|
asrs r7, r2, #0x10
|
|
cmp r7, #0
|
|
ble _0805C066
|
|
ldr r1, _0805C0BC
|
|
ldr r0, [r1]
|
|
adds r0, r0, r7
|
|
str r0, [r1]
|
|
_0805C066:
|
|
ldr r0, _0805C0C0
|
|
cmp r7, r0
|
|
beq _0805C0D0
|
|
ldr r6, _0805C0C4
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _0805C0C8
|
|
adds r0, r0, r4
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
mov r8, r0
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
ldrh r0, [r0]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0x39
|
|
bl GetMonData
|
|
adds r3, r0, #0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
ldr r1, _0805C0CC
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
mov r2, r8
|
|
bl SetBattleBarStruct
|
|
b _0805C10E
|
|
.align 2, 0
|
|
_0805C0B4: .4byte 0x02022D08
|
|
_0805C0B8: .4byte 0x02023D08
|
|
_0805C0BC: .4byte 0x0203CA3C
|
|
_0805C0C0: .4byte 0x00007FFF
|
|
_0805C0C4: .4byte 0x02023D12
|
|
_0805C0C8: .4byte 0x02024190
|
|
_0805C0CC: .4byte 0x03005AD0
|
|
_0805C0D0:
|
|
ldr r1, _0805C12C
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805C130
|
|
adds r0, r0, r1
|
|
movs r1, #0x3a
|
|
bl GetMonData
|
|
adds r2, r0, #0
|
|
mov r1, sb
|
|
ldrb r0, [r1]
|
|
ldr r4, _0805C134
|
|
adds r1, r0, r4
|
|
ldrb r1, [r1]
|
|
str r7, [sp]
|
|
movs r3, #0
|
|
bl SetBattleBarStruct
|
|
mov r2, sb
|
|
ldrb r0, [r2]
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl sub_080726F4
|
|
_0805C10E:
|
|
ldr r1, _0805C138
|
|
ldr r0, _0805C13C
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C140
|
|
str r1, [r0]
|
|
add sp, #4
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C12C: .4byte 0x02023D12
|
|
_0805C130: .4byte 0x02024190
|
|
_0805C134: .4byte 0x03005AD0
|
|
_0805C138: .4byte 0x03005AC0
|
|
_0805C13C: .4byte 0x02023D08
|
|
_0805C140: .4byte 0x08058D41
|
|
thumb_func_end PlayerHandleHealthBarUpdate
|
|
|
|
thumb_func_start PlayerHandleExpUpdate
|
|
PlayerHandleExpUpdate: @ 0x0805C144
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r5, _0805C170
|
|
ldr r6, _0805C174
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #9
|
|
adds r1, r5, #1
|
|
adds r0, r0, r1
|
|
ldrb r7, [r0]
|
|
movs r0, #0x64
|
|
adds r1, r7, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0805C178
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0x38
|
|
bl GetMonData
|
|
cmp r0, #0x63
|
|
bls _0805C17C
|
|
bl PlayerBufferExecCompleted
|
|
b _0805C1C8
|
|
.align 2, 0
|
|
_0805C170: .4byte 0x02022D08
|
|
_0805C174: .4byte 0x02023D08
|
|
_0805C178: .4byte 0x02024190
|
|
_0805C17C:
|
|
movs r0, #1
|
|
bl LoadBattleBarGfx
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
ldrb r1, [r6]
|
|
lsls r1, r1, #9
|
|
adds r0, r5, #2
|
|
adds r0, r1, r0
|
|
ldrb r4, [r0]
|
|
adds r0, r5, #3
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r4, r0
|
|
ldr r0, _0805C1D0
|
|
movs r1, #0xa
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0805C1D4
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r7, [r1, #8]
|
|
strh r4, [r1, #0xa]
|
|
ldrb r0, [r6]
|
|
strh r0, [r1, #0xc]
|
|
ldr r1, _0805C1D8
|
|
ldrb r0, [r6]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C1DC
|
|
str r1, [r0]
|
|
_0805C1C8:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C1D0: .4byte 0x08058DC9
|
|
_0805C1D4: .4byte 0x03005B60
|
|
_0805C1D8: .4byte 0x03005AC0
|
|
_0805C1DC: .4byte 0x08057069
|
|
thumb_func_end PlayerHandleExpUpdate
|
|
|
|
thumb_func_start PlayerHandleStatusIconUpdate
|
|
PlayerHandleStatusIconUpdate: @ 0x0805C1E0
|
|
push {r4, lr}
|
|
ldr r4, _0805C23C
|
|
ldrb r0, [r4]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805C234
|
|
ldr r0, _0805C240
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
ldr r2, _0805C244
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r2
|
|
ldrh r2, [r1]
|
|
movs r1, #0x64
|
|
muls r1, r2, r1
|
|
ldr r2, _0805C248
|
|
adds r1, r1, r2
|
|
movs r2, #9
|
|
bl UpdateHealthboxAttribute
|
|
ldrb r2, [r4]
|
|
ldr r0, _0805C24C
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, #0x11
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r1, _0805C250
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C254
|
|
str r1, [r0]
|
|
_0805C234:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C23C: .4byte 0x02023D08
|
|
_0805C240: .4byte 0x03005AD0
|
|
_0805C244: .4byte 0x02023D12
|
|
_0805C248: .4byte 0x02024190
|
|
_0805C24C: .4byte 0x02024174
|
|
_0805C250: .4byte 0x03005AC0
|
|
_0805C254: .4byte 0x0805997D
|
|
thumb_func_end PlayerHandleStatusIconUpdate
|
|
|
|
thumb_func_start PlayerHandleStatusAnimation
|
|
PlayerHandleStatusAnimation: @ 0x0805C258
|
|
push {r4, r5, lr}
|
|
ldr r5, _0805C2B0
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805C2A8
|
|
ldr r4, _0805C2B4
|
|
ldrb r3, [r5]
|
|
lsls r3, r3, #9
|
|
adds r0, r4, #1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
adds r2, r4, #3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #8
|
|
orrs r1, r2
|
|
adds r2, r4, #4
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #0x10
|
|
orrs r1, r2
|
|
adds r4, #5
|
|
adds r3, r3, r4
|
|
ldrb r2, [r3]
|
|
lsls r2, r2, #0x18
|
|
orrs r1, r2
|
|
bl InitAndLaunchChosenStatusAnimation
|
|
ldr r1, _0805C2B8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C2BC
|
|
str r1, [r0]
|
|
_0805C2A8:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C2B0: .4byte 0x02023D08
|
|
_0805C2B4: .4byte 0x02022D08
|
|
_0805C2B8: .4byte 0x03005AC0
|
|
_0805C2BC: .4byte 0x0805997D
|
|
thumb_func_end PlayerHandleStatusAnimation
|
|
|
|
thumb_func_start PlayerHandleStatusXor
|
|
PlayerHandleStatusXor: @ 0x0805C2C0
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, #4
|
|
ldr r0, _0805C31C
|
|
mov r8, r0
|
|
ldr r4, _0805C320
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
movs r6, #0x64
|
|
muls r0, r6, r0
|
|
ldr r5, _0805C324
|
|
adds r0, r0, r5
|
|
movs r1, #0x37
|
|
bl GetMonData
|
|
ldr r2, _0805C328
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #9
|
|
adds r2, #1
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
eors r0, r1
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #1
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x37
|
|
mov r2, sp
|
|
bl SetMonData
|
|
bl PlayerBufferExecCompleted
|
|
add sp, #4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C31C: .4byte 0x02023D12
|
|
_0805C320: .4byte 0x02023D08
|
|
_0805C324: .4byte 0x02024190
|
|
_0805C328: .4byte 0x02022D08
|
|
thumb_func_end PlayerHandleStatusXor
|
|
|
|
thumb_func_start sub_0805C32C
|
|
sub_0805C32C: @ 0x0805C32C
|
|
push {lr}
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_0805C32C
|
|
|
|
thumb_func_start PlayerHandleDMA3Transfer
|
|
PlayerHandleDMA3Transfer: @ 0x0805C338
|
|
push {r4, r5, lr}
|
|
ldr r3, _0805C39C
|
|
ldr r0, _0805C3A0
|
|
ldrb r2, [r0]
|
|
lsls r2, r2, #9
|
|
adds r0, r3, #1
|
|
adds r0, r2, r0
|
|
ldrb r5, [r0]
|
|
adds r0, r3, #2
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r5, r0
|
|
adds r0, r3, #3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x10
|
|
orrs r5, r0
|
|
adds r0, r3, #4
|
|
adds r0, r2, r0
|
|
ldrb r4, [r0]
|
|
lsls r4, r4, #0x18
|
|
adds r0, r3, #5
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r3, #6
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
orrs r1, r0
|
|
lsls r1, r1, #0x10
|
|
adds r3, #7
|
|
adds r2, r2, r3
|
|
orrs r5, r4
|
|
lsrs r4, r1, #0x10
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
cmp r4, r0
|
|
bhi _0805C3A8
|
|
ldr r0, _0805C3A4
|
|
str r2, [r0]
|
|
str r5, [r0, #4]
|
|
lsrs r1, r1, #0x11
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0x18
|
|
orrs r1, r2
|
|
str r1, [r0, #8]
|
|
ldr r0, [r0, #8]
|
|
b _0805C3D4
|
|
.align 2, 0
|
|
_0805C39C: .4byte 0x02022D08
|
|
_0805C3A0: .4byte 0x02023D08
|
|
_0805C3A4: .4byte 0x040000D4
|
|
_0805C3A8:
|
|
ldr r3, _0805C3E0
|
|
str r2, [r3]
|
|
str r5, [r3, #4]
|
|
ldr r0, _0805C3E4
|
|
str r0, [r3, #8]
|
|
ldr r0, [r3, #8]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
adds r2, r2, r0
|
|
adds r5, r5, r0
|
|
ldr r1, _0805C3E8
|
|
adds r4, r4, r1
|
|
cmp r4, r0
|
|
bhi _0805C3A8
|
|
str r2, [r3]
|
|
str r5, [r3, #4]
|
|
lsrs r0, r4, #1
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x18
|
|
orrs r0, r1
|
|
str r0, [r3, #8]
|
|
ldr r0, [r3, #8]
|
|
_0805C3D4:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C3E0: .4byte 0x040000D4
|
|
_0805C3E4: .4byte 0x80000800
|
|
_0805C3E8: .4byte 0xFFFFF000
|
|
thumb_func_end PlayerHandleDMA3Transfer
|
|
|
|
thumb_func_start PlayerHandlePlayBGM
|
|
PlayerHandlePlayBGM: @ 0x0805C3EC
|
|
push {lr}
|
|
ldr r2, _0805C414
|
|
ldr r0, _0805C418
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #9
|
|
adds r0, r2, #1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
bl PlayBGM
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C414: .4byte 0x02022D08
|
|
_0805C418: .4byte 0x02023D08
|
|
thumb_func_end PlayerHandlePlayBGM
|
|
|
|
thumb_func_start PlayerHandleCmd32
|
|
PlayerHandleCmd32: @ 0x0805C41C
|
|
push {lr}
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandleCmd32
|
|
|
|
thumb_func_start sub_0805C428
|
|
sub_0805C428: @ 0x0805C428
|
|
push {lr}
|
|
movs r0, #1
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl BtlController_EmitTwoReturnValues
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_0805C428
|
|
|
|
thumb_func_start sub_0805C43C
|
|
sub_0805C43C: @ 0x0805C43C
|
|
push {lr}
|
|
movs r0, #1
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl BtlController_EmitChosenMonReturnValue
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_0805C43C
|
|
|
|
thumb_func_start sub_0805C450
|
|
sub_0805C450: @ 0x0805C450
|
|
push {lr}
|
|
movs r0, #1
|
|
movs r1, #0
|
|
bl BtlController_EmitOneReturnValue
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_0805C450
|
|
|
|
thumb_func_start PlayerHandleOneReturnValue
|
|
PlayerHandleOneReturnValue: @ 0x0805C464
|
|
push {lr}
|
|
movs r0, #1
|
|
movs r1, #0
|
|
bl BtlController_EmitOneReturnValue_Duplicate
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandleOneReturnValue
|
|
|
|
thumb_func_start PlayerHandleCmd37
|
|
PlayerHandleCmd37: @ 0x0805C478
|
|
push {lr}
|
|
ldr r2, _0805C490
|
|
ldrb r1, [r2]
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C490: .4byte 0x020229C0
|
|
thumb_func_end PlayerHandleCmd37
|
|
|
|
thumb_func_start PlayerHandleCmd38
|
|
PlayerHandleCmd38: @ 0x0805C494
|
|
push {lr}
|
|
ldr r3, _0805C4C0
|
|
ldr r1, _0805C4C4
|
|
ldr r0, _0805C4C8
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, #0x7f
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C4C0: .4byte 0x020229C0
|
|
_0805C4C4: .4byte 0x02022D08
|
|
_0805C4C8: .4byte 0x02023D08
|
|
thumb_func_end PlayerHandleCmd38
|
|
|
|
thumb_func_start PlayerHandleCmd39
|
|
PlayerHandleCmd39: @ 0x0805C4CC
|
|
push {lr}
|
|
ldr r2, _0805C4E0
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C4E0: .4byte 0x020229C0
|
|
thumb_func_end PlayerHandleCmd39
|
|
|
|
thumb_func_start PlayerHandleCmd40
|
|
PlayerHandleCmd40: @ 0x0805C4E4
|
|
push {lr}
|
|
ldr r3, _0805C508
|
|
ldr r1, [r3]
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x1f
|
|
movs r0, #1
|
|
eors r1, r0
|
|
lsls r1, r1, #7
|
|
ldrb r2, [r3]
|
|
movs r0, #0x7f
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C508: .4byte 0x020229C0
|
|
thumb_func_end PlayerHandleCmd40
|
|
|
|
thumb_func_start sub_0805C50C
|
|
sub_0805C50C: @ 0x0805C50C
|
|
push {r4, lr}
|
|
ldr r3, _0805C534
|
|
ldr r2, _0805C538
|
|
ldr r4, _0805C53C
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
adds r0, #0x3e
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1d
|
|
cmp r0, #0
|
|
bge _0805C540
|
|
bl PlayerBufferExecCompleted
|
|
b _0805C56A
|
|
.align 2, 0
|
|
_0805C534: .4byte 0x020205AC
|
|
_0805C538: .4byte 0x02023E88
|
|
_0805C53C: .4byte 0x02023D08
|
|
_0805C540:
|
|
ldr r1, _0805C570
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
movs r1, #0
|
|
strh r1, [r0, #0x30]
|
|
ldrb r0, [r4]
|
|
bl DoHitAnimHealthboxEffect
|
|
ldr r1, _0805C574
|
|
ldrb r0, [r4]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C578
|
|
str r1, [r0]
|
|
_0805C56A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C570: .4byte 0x0202415D
|
|
_0805C574: .4byte 0x03005AC0
|
|
_0805C578: .4byte 0x08059569
|
|
thumb_func_end sub_0805C50C
|
|
|
|
thumb_func_start sub_0805C57C
|
|
sub_0805C57C: @ 0x0805C57C
|
|
push {lr}
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end sub_0805C57C
|
|
|
|
thumb_func_start PlayerHandlePlaySE
|
|
PlayerHandlePlaySE: @ 0x0805C588
|
|
push {r4, lr}
|
|
ldr r4, _0805C5C4
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
movs r3, #0x3f
|
|
cmp r0, #0
|
|
bne _0805C59C
|
|
movs r3, #0xc0
|
|
_0805C59C:
|
|
ldr r2, _0805C5C8
|
|
ldrb r1, [r4]
|
|
lsls r1, r1, #9
|
|
adds r0, r2, #1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
lsls r1, r3, #0x18
|
|
asrs r1, r1, #0x18
|
|
bl PlaySE12WithPanning
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C5C4: .4byte 0x02023D08
|
|
_0805C5C8: .4byte 0x02022D08
|
|
thumb_func_end PlayerHandlePlaySE
|
|
|
|
thumb_func_start PlayerHandlePlayFanfareOrBGM
|
|
PlayerHandlePlayFanfareOrBGM: @ 0x0805C5CC
|
|
push {r4, r5, lr}
|
|
ldr r4, _0805C600
|
|
ldr r5, _0805C604
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, #9
|
|
adds r0, r4, #3
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0805C608
|
|
bl BattleStopLowHpSound
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #9
|
|
adds r0, r4, #1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
adds r2, r4, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
bl PlayBGM
|
|
b _0805C61C
|
|
.align 2, 0
|
|
_0805C600: .4byte 0x02022D08
|
|
_0805C604: .4byte 0x02023D08
|
|
_0805C608:
|
|
adds r0, r4, #1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #2
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #8
|
|
orrs r0, r1
|
|
bl PlayFanfare
|
|
_0805C61C:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandlePlayFanfareOrBGM
|
|
|
|
thumb_func_start PlayerHandleFaintingCry
|
|
PlayerHandleFaintingCry: @ 0x0805C628
|
|
push {lr}
|
|
ldr r1, _0805C65C
|
|
ldr r0, _0805C660
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805C664
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x19
|
|
rsbs r1, r1, #0
|
|
movs r2, #5
|
|
bl PlayCry3
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C65C: .4byte 0x02023D12
|
|
_0805C660: .4byte 0x02023D08
|
|
_0805C664: .4byte 0x02024190
|
|
thumb_func_end PlayerHandleFaintingCry
|
|
|
|
thumb_func_start sub_0805C668
|
|
sub_0805C668: @ 0x0805C668
|
|
push {lr}
|
|
ldr r1, _0805C690
|
|
ldr r0, _0805C694
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
bl HandleIntroSlide
|
|
ldr r2, _0805C698
|
|
ldrh r0, [r2]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C690: .4byte 0x02022D08
|
|
_0805C694: .4byte 0x02023D08
|
|
_0805C698: .4byte 0x020240A0
|
|
thumb_func_end sub_0805C668
|
|
|
|
thumb_func_start PlayerHandleIntroTrainerBallThrow
|
|
PlayerHandleIntroTrainerBallThrow: @ 0x0805C69C
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r6, _0805C7DC
|
|
ldr r7, _0805C7E0
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r5, _0805C7E4
|
|
adds r0, r0, r5
|
|
bl SetSpritePrimaryCoordsFromSecondaryCoords
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #0x32
|
|
strh r1, [r0, #0x2e]
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _0805C7E8
|
|
strh r1, [r0, #0x32]
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0, #0x22]
|
|
strh r1, [r0, #0x36]
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r5, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C7EC
|
|
str r1, [r0]
|
|
ldrb r2, [r7]
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
strh r2, [r0, #0x38]
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
ldr r1, _0805C7F0
|
|
bl StoreSpriteCallbackInData6
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r5
|
|
movs r1, #1
|
|
bl StartSpriteAnim
|
|
ldr r0, _0805C7F4
|
|
bl AllocSpritePalette
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
ldr r1, _0805C7F8
|
|
ldr r0, _0805C7FC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
lsrs r4, r4, #0x14
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r1, r4, r2
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
ldrb r0, [r7]
|
|
adds r0, r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r5
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1, #5]
|
|
ldr r0, _0805C800
|
|
movs r1, #5
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r4, _0805C804
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r4
|
|
ldrb r0, [r7]
|
|
strh r0, [r1, #8]
|
|
ldr r3, _0805C808
|
|
ldr r0, [r3]
|
|
ldrb r2, [r7]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805C7BE
|
|
ldr r0, _0805C80C
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r4
|
|
ldr r1, _0805C810
|
|
str r1, [r0]
|
|
_0805C7BE:
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, #8]
|
|
ldrb r0, [r2, #9]
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #9]
|
|
ldr r1, _0805C814
|
|
ldrb r0, [r7]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C818
|
|
str r1, [r0]
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C7DC: .4byte 0x02023E88
|
|
_0805C7E0: .4byte 0x02023D08
|
|
_0805C7E4: .4byte 0x020205AC
|
|
_0805C7E8: .4byte 0x0000FFD8
|
|
_0805C7EC: .4byte 0x080A67B5
|
|
_0805C7F0: .4byte 0x0805C81D
|
|
_0805C7F4: .4byte 0x0000D6F8
|
|
_0805C7F8: .4byte 0x082D961C
|
|
_0805C7FC: .4byte 0x03005AF0
|
|
_0805C800: .4byte 0x0805C885
|
|
_0805C804: .4byte 0x03005B60
|
|
_0805C808: .4byte 0x02024174
|
|
_0805C80C: .4byte 0x02024158
|
|
_0805C810: .4byte 0x0807352D
|
|
_0805C814: .4byte 0x03005AC0
|
|
_0805C818: .4byte 0x08057069
|
|
thumb_func_end PlayerHandleIntroTrainerBallThrow
|
|
|
|
thumb_func_start sub_0805C81C
|
|
sub_0805C81C: @ 0x0805C81C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrh r4, [r5, #0x38]
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
bl FreeSpriteOamMatrix
|
|
ldrb r0, [r5, #5]
|
|
lsrs r0, r0, #4
|
|
bl GetSpritePaletteTagByPaletteNum
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r5, #0
|
|
bl DestroySprite
|
|
ldr r1, _0805C874
|
|
lsls r0, r4, #1
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0805C878
|
|
adds r0, r0, r1
|
|
adds r1, r4, #0
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldr r0, _0805C87C
|
|
adds r4, r4, r0
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
ldr r1, _0805C880
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
bl StartSpriteAnim
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C874: .4byte 0x02023D12
|
|
_0805C878: .4byte 0x02024190
|
|
_0805C87C: .4byte 0x02023E88
|
|
_0805C880: .4byte 0x020205AC
|
|
thumb_func_end sub_0805C81C
|
|
|
|
thumb_func_start task05_08033660
|
|
task05_08033660: @ 0x0805C884
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
ldr r1, _0805C8AC
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
lsls r0, r0, #3
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1, #0xa]
|
|
movs r3, #0xa
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0x1e
|
|
bgt _0805C8B0
|
|
adds r0, r2, #1
|
|
strh r0, [r1, #0xa]
|
|
b _0805C96C
|
|
.align 2, 0
|
|
_0805C8AC: .4byte 0x03005B60
|
|
_0805C8B0:
|
|
ldr r7, _0805C8F0
|
|
ldrb r0, [r7]
|
|
mov sb, r0
|
|
ldrh r0, [r1, #8]
|
|
strb r0, [r7]
|
|
bl IsDoubleBattle
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805C8D0
|
|
ldr r0, _0805C8F4
|
|
ldr r0, [r0]
|
|
movs r1, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805C900
|
|
_0805C8D0:
|
|
ldr r0, _0805C8F8
|
|
ldrb r1, [r7]
|
|
lsls r2, r1, #9
|
|
adds r0, #1
|
|
adds r2, r2, r0
|
|
ldr r0, _0805C8FC
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_0805AE74
|
|
b _0805C954
|
|
.align 2, 0
|
|
_0805C8F0: .4byte 0x02023D08
|
|
_0805C8F4: .4byte 0x02022C90
|
|
_0805C8F8: .4byte 0x02022D08
|
|
_0805C8FC: .4byte 0x02023D12
|
|
_0805C900:
|
|
ldr r4, _0805C978
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #9
|
|
adds r4, #1
|
|
adds r1, r1, r4
|
|
ldr r5, _0805C97C
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_0805AE74
|
|
ldrb r0, [r7]
|
|
movs r6, #2
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
ldrb r0, [r7]
|
|
lsls r1, r0, #9
|
|
adds r1, r1, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
strb r0, [r1]
|
|
ldrb r1, [r7]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r5
|
|
ldrh r2, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r2, r0
|
|
ldr r2, _0805C980
|
|
adds r0, r0, r2
|
|
bl BattleLoadPlayerMonSpriteGfx
|
|
ldrb r0, [r7]
|
|
movs r1, #0
|
|
bl sub_0805AE74
|
|
ldrb r0, [r7]
|
|
eors r0, r6
|
|
strb r0, [r7]
|
|
_0805C954:
|
|
ldr r1, _0805C984
|
|
ldr r2, _0805C988
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805C98C
|
|
str r1, [r0]
|
|
mov r3, sb
|
|
strb r3, [r2]
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_0805C96C:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C978: .4byte 0x02022D08
|
|
_0805C97C: .4byte 0x02023D12
|
|
_0805C980: .4byte 0x02024190
|
|
_0805C984: .4byte 0x03005AC0
|
|
_0805C988: .4byte 0x02023D08
|
|
_0805C98C: .4byte 0x08058751
|
|
thumb_func_end task05_08033660
|
|
|
|
thumb_func_start PlayerHandleDrawPartyStatusSummary
|
|
PlayerHandleDrawPartyStatusSummary: @ 0x0805C990
|
|
push {r4, r5, r6, lr}
|
|
ldr r1, _0805C9B8
|
|
ldr r0, _0805C9BC
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0805C9C0
|
|
adds r0, r2, #0
|
|
bl GetBattlerSide
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805C9C0
|
|
bl PlayerBufferExecCompleted
|
|
b _0805CA34
|
|
.align 2, 0
|
|
_0805C9B8: .4byte 0x02022D08
|
|
_0805C9BC: .4byte 0x02023D08
|
|
_0805C9C0:
|
|
ldr r6, _0805CA3C
|
|
ldr r0, [r6]
|
|
ldr r5, _0805CA40
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r3, r0, #9
|
|
ldr r4, _0805CA44
|
|
adds r1, r3, r4
|
|
subs r2, r4, #3
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2]
|
|
subs r4, #2
|
|
adds r3, r3, r4
|
|
ldrb r3, [r3]
|
|
bl CreatePartyStatusSummarySprites
|
|
ldr r2, _0805CA48
|
|
ldrb r1, [r5]
|
|
adds r1, r1, r2
|
|
movs r3, #0
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
ldrb r1, [r5]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strb r3, [r0, #5]
|
|
ldrb r2, [r5]
|
|
lsls r0, r2, #9
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0805CA28
|
|
ldr r0, [r6]
|
|
ldr r1, [r0, #4]
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
movs r1, #0x5d
|
|
strb r1, [r0, #5]
|
|
_0805CA28:
|
|
ldr r0, _0805CA4C
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _0805CA50
|
|
str r0, [r1]
|
|
_0805CA34:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CA3C: .4byte 0x02024174
|
|
_0805CA40: .4byte 0x02023D08
|
|
_0805CA44: .4byte 0x02022D0C
|
|
_0805CA48: .4byte 0x02024158
|
|
_0805CA4C: .4byte 0x03005AC0
|
|
_0805CA50: .4byte 0x0805CA55
|
|
thumb_func_end PlayerHandleDrawPartyStatusSummary
|
|
|
|
thumb_func_start sub_0805CA54
|
|
sub_0805CA54: @ 0x0805CA54
|
|
push {r4, lr}
|
|
ldr r4, _0805CA94
|
|
ldr r0, [r4]
|
|
ldr r3, _0805CA98
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #5]
|
|
adds r2, r1, #1
|
|
strb r2, [r0, #5]
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
cmp r1, #0x5c
|
|
bls _0805CA8C
|
|
ldr r0, [r4]
|
|
ldrb r1, [r3]
|
|
ldr r2, [r0, #4]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
movs r1, #0
|
|
strb r1, [r0, #5]
|
|
bl PlayerBufferExecCompleted
|
|
_0805CA8C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CA94: .4byte 0x02024174
|
|
_0805CA98: .4byte 0x02023D08
|
|
thumb_func_end sub_0805CA54
|
|
|
|
thumb_func_start PlayerHandleHidePartyStatusSummary
|
|
PlayerHandleHidePartyStatusSummary: @ 0x0805CA9C
|
|
push {lr}
|
|
ldr r0, _0805CAD8
|
|
ldr r1, [r0]
|
|
ldr r0, _0805CADC
|
|
ldrb r3, [r0]
|
|
ldr r1, [r1, #4]
|
|
lsls r0, r3, #1
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805CACE
|
|
ldr r2, _0805CAE0
|
|
ldr r0, _0805CAE4
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r2
|
|
ldr r1, _0805CAE8
|
|
str r1, [r0]
|
|
_0805CACE:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CAD8: .4byte 0x02024174
|
|
_0805CADC: .4byte 0x02023D08
|
|
_0805CAE0: .4byte 0x03005B60
|
|
_0805CAE4: .4byte 0x02024158
|
|
_0805CAE8: .4byte 0x0807352D
|
|
thumb_func_end PlayerHandleHidePartyStatusSummary
|
|
|
|
thumb_func_start PlayerHandleEndBounceEffect
|
|
PlayerHandleEndBounceEffect: @ 0x0805CAEC
|
|
push {r4, lr}
|
|
ldr r4, _0805CB0C
|
|
ldrb r0, [r4]
|
|
movs r1, #1
|
|
bl EndBounceEffect
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl EndBounceEffect
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CB0C: .4byte 0x02023D08
|
|
thumb_func_end PlayerHandleEndBounceEffect
|
|
|
|
thumb_func_start PlayerHandleSpriteInvisibility
|
|
PlayerHandleSpriteInvisibility: @ 0x0805CB10
|
|
push {r4, lr}
|
|
ldr r4, _0805CB60
|
|
ldrb r0, [r4]
|
|
bl IsBattlerSpritePresent
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805CB56
|
|
ldr r3, _0805CB64
|
|
ldr r0, _0805CB68
|
|
ldrb r1, [r4]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, #4
|
|
adds r2, r2, r0
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r3
|
|
ldr r0, _0805CB6C
|
|
lsls r1, r1, #9
|
|
adds r0, #1
|
|
adds r1, r1, r0
|
|
adds r2, #0x3e
|
|
movs r0, #1
|
|
ldrb r1, [r1]
|
|
ands r1, r0
|
|
lsls r1, r1, #2
|
|
ldrb r3, [r2]
|
|
movs r0, #5
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4]
|
|
bl CopyBattleSpriteInvisibility
|
|
_0805CB56:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CB60: .4byte 0x02023D08
|
|
_0805CB64: .4byte 0x020205AC
|
|
_0805CB68: .4byte 0x02023E88
|
|
_0805CB6C: .4byte 0x02022D08
|
|
thumb_func_end PlayerHandleSpriteInvisibility
|
|
|
|
thumb_func_start PlayerHandleBattleAnimation
|
|
PlayerHandleBattleAnimation: @ 0x0805CB70
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
ldr r5, _0805CBB8
|
|
ldrb r0, [r5]
|
|
bl mplay_80342A4
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0805CBD2
|
|
ldr r4, _0805CBBC
|
|
ldrb r2, [r5]
|
|
lsls r1, r2, #9
|
|
adds r0, r4, #1
|
|
adds r0, r1, r0
|
|
ldrb r6, [r0]
|
|
adds r0, r4, #2
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
adds r4, #3
|
|
adds r1, r1, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, r0, #8
|
|
orrs r3, r0
|
|
str r3, [sp]
|
|
adds r0, r2, #0
|
|
adds r1, r2, #0
|
|
adds r3, r6, #0
|
|
bl TryHandleLaunchBattleTableAnimation
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0805CBC0
|
|
bl PlayerBufferExecCompleted
|
|
b _0805CBCC
|
|
.align 2, 0
|
|
_0805CBB8: .4byte 0x02023D08
|
|
_0805CBBC: .4byte 0x02022D08
|
|
_0805CBC0:
|
|
ldr r0, _0805CBDC
|
|
ldrb r1, [r5]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, _0805CBE0
|
|
str r0, [r1]
|
|
_0805CBCC:
|
|
adds r0, r6, #0
|
|
bl BattleTv_SetDataBasedOnAnimation
|
|
_0805CBD2:
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CBDC: .4byte 0x03005AC0
|
|
_0805CBE0: .4byte 0x080599AD
|
|
thumb_func_end PlayerHandleBattleAnimation
|
|
|
|
thumb_func_start PlayerHandleLinkStandbyMsg
|
|
PlayerHandleLinkStandbyMsg: @ 0x0805CBE4
|
|
push {r4, r5, lr}
|
|
ldr r5, _0805CC0C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
ldr r4, _0805CC10
|
|
adds r0, r0, r4
|
|
bl sub_08185008
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
subs r4, #1
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _0805CC1E
|
|
cmp r0, #1
|
|
bgt _0805CC14
|
|
cmp r0, #0
|
|
beq _0805CC1A
|
|
b _0805CC3C
|
|
.align 2, 0
|
|
_0805CC0C: .4byte 0x02023D08
|
|
_0805CC10: .4byte 0x02022D0A
|
|
_0805CC14:
|
|
cmp r0, #2
|
|
beq _0805CC38
|
|
b _0805CC3C
|
|
_0805CC1A:
|
|
bl PrintLinkStandbyMsg
|
|
_0805CC1E:
|
|
ldr r4, _0805CC34
|
|
ldrb r0, [r4]
|
|
movs r1, #1
|
|
bl EndBounceEffect
|
|
ldrb r0, [r4]
|
|
movs r1, #0
|
|
bl EndBounceEffect
|
|
b _0805CC3C
|
|
.align 2, 0
|
|
_0805CC34: .4byte 0x02023D08
|
|
_0805CC38:
|
|
bl PrintLinkStandbyMsg
|
|
_0805CC3C:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end PlayerHandleLinkStandbyMsg
|
|
|
|
thumb_func_start PlayerHandleResetActionMoveSelection
|
|
PlayerHandleResetActionMoveSelection: @ 0x0805CC48
|
|
push {r4, lr}
|
|
ldr r1, _0805CC68
|
|
ldr r4, _0805CC6C
|
|
ldrb r3, [r4]
|
|
lsls r0, r3, #9
|
|
adds r1, #1
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
cmp r2, #1
|
|
beq _0805CC90
|
|
cmp r2, #1
|
|
bgt _0805CC70
|
|
cmp r2, #0
|
|
beq _0805CC76
|
|
b _0805CCA0
|
|
.align 2, 0
|
|
_0805CC68: .4byte 0x02022D08
|
|
_0805CC6C: .4byte 0x02023D08
|
|
_0805CC70:
|
|
cmp r2, #2
|
|
beq _0805CC98
|
|
b _0805CCA0
|
|
_0805CC76:
|
|
ldr r0, _0805CC88
|
|
adds r0, r3, r0
|
|
strb r2, [r0]
|
|
ldr r1, _0805CC8C
|
|
ldrb r0, [r4]
|
|
adds r0, r0, r1
|
|
strb r2, [r0]
|
|
b _0805CCA0
|
|
.align 2, 0
|
|
_0805CC88: .4byte 0x02024150
|
|
_0805CC8C: .4byte 0x02024154
|
|
_0805CC90:
|
|
ldr r0, _0805CC94
|
|
b _0805CC9A
|
|
.align 2, 0
|
|
_0805CC94: .4byte 0x02024150
|
|
_0805CC98:
|
|
ldr r0, _0805CCAC
|
|
_0805CC9A:
|
|
adds r0, r3, r0
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
_0805CCA0:
|
|
bl PlayerBufferExecCompleted
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CCAC: .4byte 0x02024154
|
|
thumb_func_end PlayerHandleResetActionMoveSelection
|
|
|
|
thumb_func_start PlayerHandleCmd55
|
|
PlayerHandleCmd55: @ 0x0805CCB0
|
|
push {r4, r5, lr}
|
|
ldr r5, _0805CD14
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
ldr r4, _0805CD18
|
|
adds r0, r0, r4
|
|
bl sub_08185008
|
|
ldr r2, _0805CD1C
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
subs r1, r4, #3
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
ldr r0, _0805CD20
|
|
ldr r3, [r0]
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #9
|
|
subs r4, #2
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r1, _0805CD24
|
|
adds r3, r3, r1
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #3
|
|
ldrb r2, [r3]
|
|
movs r0, #9
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, #5
|
|
bl FadeOutMapMusic
|
|
movs r0, #3
|
|
bl BeginFastPaletteFade
|
|
bl PlayerBufferExecCompleted
|
|
ldr r1, _0805CD28
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, _0805CD2C
|
|
str r1, [r0]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CD14: .4byte 0x02023D08
|
|
_0805CD18: .4byte 0x02022D0C
|
|
_0805CD1C: .4byte 0x02023FDE
|
|
_0805CD20: .4byte 0x03005AF0
|
|
_0805CD24: .4byte 0x00000CA9
|
|
_0805CD28: .4byte 0x03005AC0
|
|
_0805CD2C: .4byte 0x080583C1
|
|
thumb_func_end PlayerHandleCmd55
|
|
|
|
thumb_func_start PlayerCmdEnd
|
|
PlayerCmdEnd: @ 0x0805CD30
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end PlayerCmdEnd
|
|
|