mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
2321 lines
40 KiB
ArmAsm
2321 lines
40 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.extern UNK_020F96DC
|
|
.extern gSystem
|
|
.extern UNK_020FA6E8
|
|
|
|
.section .rodata
|
|
|
|
.global UNK_020F5880
|
|
UNK_020F5880: ; 0x020F5880
|
|
.byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_02050E48
|
|
sub_02050E48: ; 0x02050E48
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r7, r0, #0x0
|
|
add r5, r1, #0x0
|
|
ldr r0, [sp, #0x24]
|
|
mov r1, #0x30
|
|
str r2, [sp, #0x0]
|
|
str r3, [sp, #0x4]
|
|
ldr r6, [r5, #0xc]
|
|
bl Heap_AllocAtEnd
|
|
mov r1, #0x0
|
|
mov r2, #0x30
|
|
add r4, r0, #0x0
|
|
bl MI_CpuFill8
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetProfile
|
|
add r1, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl sub_0207C2A4
|
|
add r0, r6, #0x0
|
|
bl SaveArray_IsNatDexEnabled
|
|
str r0, [r4, #0x1c]
|
|
add r0, r6, #0x0
|
|
bl sub_02079C70
|
|
str r0, [r4, #0x2c]
|
|
add r0, r6, #0x0
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r4, #0x4]
|
|
ldr r0, [sp, #0x0]
|
|
str r0, [r4, #0x0]
|
|
mov r0, #0x1
|
|
strb r0, [r4, #0x11]
|
|
ldr r0, [sp, #0x4]
|
|
strb r0, [r4, #0x14]
|
|
ldr r0, [r4, #0x0]
|
|
bl Party_GetCount
|
|
strb r0, [r4, #0x13]
|
|
mov r0, #0x0
|
|
strh r0, [r4, #0x18]
|
|
ldr r0, [sp, #0x20]
|
|
strb r0, [r4, #0x12]
|
|
add r0, r6, #0x0
|
|
bl sub_0202A918
|
|
str r0, [r4, #0x20]
|
|
ldr r1, _02050ECC ; =UNK_020F5880
|
|
add r0, r4, #0x0
|
|
bl sub_0207B000
|
|
ldr r1, _02050ED0 ; =UNK_020FA6E8
|
|
add r0, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl sub_020373D4
|
|
str r4, [r7, #0x0]
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02050ECC: .word UNK_020F5880
|
|
_02050ED0: .word UNK_020FA6E8
|
|
|
|
thumb_func_start sub_02050ED4
|
|
sub_02050ED4: ; 0x02050ED4
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, r1, #0x0
|
|
mov r1, #0x40
|
|
bl Heap_Alloc
|
|
mov r1, #0x0
|
|
mov r2, #0x40
|
|
add r4, r0, #0x0
|
|
bl MI_CpuFill8
|
|
ldr r0, [r5, #0x24]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
str r0, [r4, #0xc]
|
|
ldr r0, [r5, #0x24]
|
|
add r0, #0xac
|
|
ldr r0, [r0, #0x0]
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r0, [r0, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_Bag_Get
|
|
str r0, [r4, #0x4]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x21
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x2
|
|
add r0, #0x20
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r5, #0x24]
|
|
add r0, #0xac
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _02050F64
|
|
mov r1, #0x1
|
|
bl sub_02023B0C
|
|
add r1, r4, #0x0
|
|
add r1, #0x32
|
|
ldrb r1, [r1, #0x0]
|
|
mov r2, #0xf
|
|
lsl r0, r0, #0x18
|
|
bic r1, r2
|
|
lsr r2, r0, #0x18
|
|
mov r0, #0xf
|
|
and r0, r2
|
|
orr r1, r0
|
|
add r0, r4, #0x0
|
|
add r0, #0x32
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x32
|
|
ldrb r0, [r0, #0x0]
|
|
mov r1, #0xf0
|
|
bic r0, r1
|
|
add r1, r4, #0x0
|
|
add r1, #0x32
|
|
ldrb r1, [r1, #0x0]
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x1c
|
|
lsl r1, r1, #0x1c
|
|
lsr r1, r1, #0x18
|
|
b _02050F84
|
|
_02050F64:
|
|
add r0, r4, #0x0
|
|
add r0, #0x32
|
|
ldrb r1, [r0, #0x0]
|
|
mov r0, #0xf
|
|
bic r1, r0
|
|
mov r0, #0x3
|
|
orr r1, r0
|
|
add r0, r4, #0x0
|
|
add r0, #0x32
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x32
|
|
ldrb r1, [r0, #0x0]
|
|
mov r0, #0xf0
|
|
bic r1, r0
|
|
mov r0, #0x30
|
|
_02050F84:
|
|
orr r1, r0
|
|
add r0, r4, #0x0
|
|
add r0, #0x32
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x64
|
|
add r0, #0x33
|
|
strb r1, [r0, #0x0]
|
|
add r0, r5, #0x0
|
|
add r0, #0x3c
|
|
ldrb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x22
|
|
strb r1, [r0, #0x0]
|
|
mov r2, #0x0
|
|
_02050FA2:
|
|
add r0, r5, r2
|
|
add r0, #0x3d
|
|
ldrb r1, [r0, #0x0]
|
|
add r0, r4, r2
|
|
add r0, #0x2c
|
|
add r2, r2, #0x1
|
|
strb r1, [r0, #0x0]
|
|
cmp r2, #0x6
|
|
blt _02050FA2
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, _02050FC4 ; =UNK_020F96DC
|
|
add r2, r4, #0x0
|
|
bl sub_020373D4
|
|
str r4, [r5, #0x4]
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02050FC4: .word UNK_020F96DC
|
|
|
|
thumb_func_start sub_02050FC8
|
|
sub_02050FC8: ; 0x02050FC8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0x0
|
|
beq _02050FDA
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_02050FDA:
|
|
ldr r0, [r4, #0x4]
|
|
add r1, r4, #0x0
|
|
add r0, #0x2c
|
|
add r1, #0x3d
|
|
mov r2, #0x6
|
|
bl MI_CpuCopy8
|
|
ldr r0, [r4, #0x4]
|
|
add r0, #0x22
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x6
|
|
beq _02050FFC
|
|
cmp r0, #0x7
|
|
bne _02051002
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x38]
|
|
b _02051006
|
|
_02050FFC:
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x38]
|
|
b _02051006
|
|
_02051002:
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x38]
|
|
_02051006:
|
|
ldr r0, [r4, #0x4]
|
|
add r0, #0x22
|
|
ldrb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r4, #0x4]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x4]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02051020
|
|
sub_02051020: ; 0x02051020
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0x0
|
|
beq _02051032
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_02051032:
|
|
ldr r0, [r4, #0x0]
|
|
ldrb r1, [r0, #0x14]
|
|
add r0, r4, #0x0
|
|
add r0, #0x3c
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r4, #0x0]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x0]
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0205104C
|
|
sub_0205104C: ; 0x0205104C
|
|
push {r3, lr}
|
|
ldr r0, [r0, #0x24]
|
|
bl sub_020464A4
|
|
cmp r0, #0x0
|
|
beq _02051066
|
|
mov r0, #0x1
|
|
bl ov05_021D7CA4
|
|
bl sub_0204CC9C
|
|
mov r0, #0x1
|
|
pop {r3, pc}
|
|
_02051066:
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0205106C
|
|
sub_0205106C: ; 0x0205106C
|
|
push {r3-r5, lr}
|
|
bl sub_02030F20
|
|
add r5, r0, #0x0
|
|
mov r4, #0x0
|
|
cmp r5, #0x0
|
|
ble _0205108E
|
|
_0205107A:
|
|
add r0, r4, #0x0
|
|
bl sub_020315FC
|
|
cmp r0, #0x5e
|
|
bne _02051088
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
_02051088:
|
|
add r4, r4, #0x1
|
|
cmp r4, r5
|
|
blt _0205107A
|
|
_0205108E:
|
|
mov r0, #0x0
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051094
|
|
sub_02051094: ; 0x02051094
|
|
push {r3-r5, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
ldr r1, [r4, #0x34]
|
|
cmp r1, #0x2c
|
|
bls _020510AE
|
|
b _020517B8
|
|
_020510AE:
|
|
add r1, r1, r1
|
|
add r1, pc
|
|
ldrh r1, [r1, #0x6]
|
|
lsl r1, r1, #0x10
|
|
asr r1, r1, #0x10
|
|
add pc, r1
|
|
_020510BA: ; jump table (using 16-bit offset)
|
|
.short _02051114 - _020510BA - 2; case 0
|
|
.short _02051136 - _020510BA - 2; case 1
|
|
.short _02051150 - _020510BA - 2; case 2
|
|
.short _0205116A - _020510BA - 2; case 3
|
|
.short _020511A6 - _020510BA - 2; case 4
|
|
.short _020511F6 - _020510BA - 2; case 5
|
|
.short _020517B8 - _020510BA - 2; case 6
|
|
.short _020511E4 - _020510BA - 2; case 7
|
|
.short _0205120C - _020510BA - 2; case 8
|
|
.short _02051232 - _020510BA - 2; case 9
|
|
.short _0205123E - _020510BA - 2; case 10
|
|
.short _0205126A - _020510BA - 2; case 11
|
|
.short _02051288 - _020510BA - 2; case 12
|
|
.short _0205129C - _020510BA - 2; case 13
|
|
.short _020512A8 - _020510BA - 2; case 14
|
|
.short _020512CA - _020510BA - 2; case 15
|
|
.short _020512E0 - _020510BA - 2; case 16
|
|
.short _0205130E - _020510BA - 2; case 17
|
|
.short _02051334 - _020510BA - 2; case 18
|
|
.short _02051346 - _020510BA - 2; case 19
|
|
.short _0205138A - _020510BA - 2; case 20
|
|
.short _0205136A - _020510BA - 2; case 21
|
|
.short _020513A6 - _020510BA - 2; case 22
|
|
.short _020513B6 - _020510BA - 2; case 23
|
|
.short _020513D4 - _020510BA - 2; case 24
|
|
.short _020513F2 - _020510BA - 2; case 25
|
|
.short _02051406 - _020510BA - 2; case 26
|
|
.short _02051472 - _020510BA - 2; case 27
|
|
.short _020514A8 - _020510BA - 2; case 28
|
|
.short _020514BE - _020510BA - 2; case 29
|
|
.short _02051508 - _020510BA - 2; case 30
|
|
.short _02051540 - _020510BA - 2; case 31
|
|
.short _02051566 - _020510BA - 2; case 32
|
|
.short _02051686 - _020510BA - 2; case 33
|
|
.short _020516B6 - _020510BA - 2; case 34
|
|
.short _020516CE - _020510BA - 2; case 35
|
|
.short _020515BA - _020510BA - 2; case 36
|
|
.short _020515F8 - _020510BA - 2; case 37
|
|
.short _02051614 - _020510BA - 2; case 38
|
|
.short _020516DE - _020510BA - 2; case 39
|
|
.short _020517B8 - _020510BA - 2; case 40
|
|
.short _02051702 - _020510BA - 2; case 41
|
|
.short _02051744 - _020510BA - 2; case 42
|
|
.short _02051766 - _020510BA - 2; case 43
|
|
.short _02051798 - _020510BA - 2; case 44
|
|
_02051114:
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
sub r1, r0, #0x1
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _020511DC
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x34]
|
|
bl sub_0204ECC0
|
|
b _020517B8
|
|
_02051136:
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x1
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051150:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _020511DC
|
|
mov r0, #0x5d
|
|
bl sub_02031588
|
|
mov r0, #0x3
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205116A:
|
|
mov r0, #0x5d
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _0205118A
|
|
mov r0, #0x7
|
|
str r0, [r4, #0x34]
|
|
ldr r0, [r4, #0x24]
|
|
ldr r0, [r0, #0x34]
|
|
bl sub_02058768
|
|
ldr r1, [r4, #0x50]
|
|
ldr r2, [r4, #0x8]
|
|
mov r0, #0x1
|
|
blx r2
|
|
b _020517B8
|
|
_0205118A:
|
|
ldr r0, _020514A4 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _020511DC
|
|
mov r0, #0x4
|
|
str r0, [r4, #0x34]
|
|
mov r0, #0x5c
|
|
bl sub_02031588
|
|
mov r0, #0x5
|
|
add r4, #0x43
|
|
strb r0, [r4, #0x0]
|
|
b _020517B8
|
|
_020511A6:
|
|
mov r0, #0x5d
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _020511C4
|
|
mov r0, #0x7
|
|
str r0, [r4, #0x34]
|
|
ldr r0, [r4, #0x24]
|
|
ldr r0, [r0, #0x34]
|
|
bl sub_02058768
|
|
ldr r1, [r4, #0x50]
|
|
ldr r2, [r4, #0x8]
|
|
mov r0, #0x1
|
|
blx r2
|
|
_020511C4:
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
sub r1, r0, #0x1
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _020511DE
|
|
_020511DC:
|
|
b _020517B8
|
|
_020511DE:
|
|
mov r0, #0x8
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020511E4:
|
|
add r0, r4, #0x0
|
|
bl sub_02051998
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
add sp, #0x8
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
_020511F6:
|
|
add r0, r4, #0x0
|
|
bl sub_02051998
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
bl sub_0204F7FC
|
|
add sp, #0x8
|
|
mov r0, #0x1
|
|
pop {r3-r5, pc}
|
|
_0205120C:
|
|
mov r0, #0x5d
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _02051224
|
|
mov r0, #0x5
|
|
str r0, [r4, #0x34]
|
|
ldr r1, [r4, #0x50]
|
|
ldr r2, [r4, #0x8]
|
|
mov r0, #0x1
|
|
blx r2
|
|
b _020517B8
|
|
_02051224:
|
|
ldr r1, [r4, #0x50]
|
|
ldr r2, [r4, #0x8]
|
|
mov r0, #0x0
|
|
blx r2
|
|
mov r0, #0x5
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051232:
|
|
mov r0, #0xa
|
|
str r0, [r4, #0x34]
|
|
mov r0, #0x5
|
|
add r4, #0x44
|
|
strb r0, [r4, #0x0]
|
|
b _020517B8
|
|
_0205123E:
|
|
add r1, r4, #0x0
|
|
add r1, #0x44
|
|
ldrb r1, [r1, #0x0]
|
|
cmp r1, #0x0
|
|
beq _02051256
|
|
add r0, r4, #0x0
|
|
add r0, #0x44
|
|
ldrb r0, [r0, #0x0]
|
|
add r4, #0x44
|
|
sub r0, r0, #0x1
|
|
strb r0, [r4, #0x0]
|
|
b _020517B8
|
|
_02051256:
|
|
ldr r0, [r0, #0x38]
|
|
bl PlayerAvatar_GetMapObject
|
|
bl sub_0205AE28
|
|
cmp r0, #0x0
|
|
beq _020512FA
|
|
mov r0, #0xb
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205126A:
|
|
bl sub_0204ECC0
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0xd
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0xc
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051288:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _020512FA
|
|
mov r0, #0xd
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205129C:
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0xe
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020512A8:
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
sub r1, r0, #0x1
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _020512FA
|
|
bl sub_0204ECC0
|
|
mov r0, #0xf
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020512CA:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
bl sub_02051810
|
|
add r0, r4, #0x0
|
|
mov r1, #0xb
|
|
bl sub_02050ED4
|
|
mov r0, #0x10
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020512E0:
|
|
ldr r1, [r4, #0x24]
|
|
add r0, r4, #0x0
|
|
bl sub_02050FC8
|
|
cmp r0, #0x0
|
|
beq _020512FA
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0x0
|
|
beq _020512FC
|
|
cmp r0, #0x1
|
|
beq _02051302
|
|
cmp r0, #0x2
|
|
beq _02051308
|
|
_020512FA:
|
|
b _020517B8
|
|
_020512FC:
|
|
mov r0, #0x14
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051302:
|
|
mov r0, #0x13
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051308:
|
|
mov r0, #0x11
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205130E:
|
|
ldr r0, [r4, #0x24]
|
|
ldr r0, [r0, #0xc]
|
|
bl SaveArray_Party_Get
|
|
add r2, r0, #0x0
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x4]
|
|
add r3, r4, #0x0
|
|
add r3, #0x3c
|
|
ldrb r3, [r3, #0x0]
|
|
ldr r1, [r4, #0x24]
|
|
add r0, r4, #0x0
|
|
bl sub_02050E48
|
|
mov r0, #0x12
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051334:
|
|
ldr r1, [r4, #0x24]
|
|
add r0, r4, #0x0
|
|
bl sub_02051020
|
|
cmp r0, #0x0
|
|
beq _02051410
|
|
mov r0, #0xf
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051346:
|
|
ldr r0, [r4, #0x24]
|
|
bl FieldSystem_LoadFieldOverlay
|
|
add r0, r4, #0x0
|
|
add r0, #0x88
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
beq _02051364
|
|
add r0, r4, #0x0
|
|
mov r1, #0x5
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x15
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051364:
|
|
mov r0, #0x1a
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205136A:
|
|
add r0, r4, #0x0
|
|
add r0, #0x3d
|
|
bl sub_02033564
|
|
add r0, r4, #0x0
|
|
bl sub_0205104C
|
|
cmp r0, #0x0
|
|
beq _02051410
|
|
add r0, r4, #0x0
|
|
mov r1, #0x5
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205138A:
|
|
ldr r0, [r4, #0x24]
|
|
bl FieldSystem_LoadFieldOverlay
|
|
add r0, r4, #0x0
|
|
add r0, #0x88
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
beq _020513A0
|
|
mov r0, #0x16
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020513A0:
|
|
mov r0, #0x1a
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020513A6:
|
|
add r0, r4, #0x0
|
|
bl sub_0205104C
|
|
cmp r0, #0x0
|
|
beq _02051410
|
|
mov r0, #0x8
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020513B6:
|
|
add r0, r4, #0x0
|
|
add r0, #0x44
|
|
ldrb r0, [r0, #0x0]
|
|
sub r1, r0, #0x1
|
|
add r0, r4, #0x0
|
|
add r0, #0x44
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x44
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _02051410
|
|
mov r0, #0x18
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020513D4:
|
|
bl sub_0204ECC0
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x13
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x19
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020513F2:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _02051410
|
|
mov r0, #0xd
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051406:
|
|
add r0, r4, #0x0
|
|
bl sub_0205104C
|
|
cmp r0, #0x0
|
|
bne _02051412
|
|
_02051410:
|
|
b _020517B8
|
|
_02051412:
|
|
bl sub_0205106C
|
|
cmp r0, #0x0
|
|
beq _02051420
|
|
mov r0, #0x5
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051420:
|
|
ldr r0, [r4, #0x38]
|
|
cmp r0, #0x0
|
|
beq _0205142A
|
|
mov r1, #0x1
|
|
b _0205142C
|
|
_0205142A:
|
|
mov r1, #0x0
|
|
_0205142C:
|
|
add r0, r4, #0x0
|
|
add r0, #0x82
|
|
strb r1, [r0, #0x0]
|
|
add r1, r4, #0x0
|
|
add r1, #0x82
|
|
ldrb r1, [r1, #0x0]
|
|
add r0, r4, #0x0
|
|
bl sub_020519F0
|
|
mov r0, #0x0
|
|
bl sub_02031588
|
|
ldr r0, [r4, #0x28]
|
|
ldr r2, [r4, #0x74]
|
|
mov r1, #0x0
|
|
bl BufferPlayersName
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0xe
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r2, [r4, #0xc]
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x1b
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051472:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _02051574
|
|
bl sub_0205106C
|
|
cmp r0, #0x0
|
|
beq _0205148E
|
|
mov r0, #0x5
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205148E:
|
|
mov r0, #0x0
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _02051574
|
|
add r0, r4, #0x0
|
|
bl sub_02051A38
|
|
mov r0, #0x1c
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
.balign 4
|
|
_020514A4: .word gSystem
|
|
_020514A8:
|
|
add r0, r4, #0x0
|
|
bl sub_02051A80
|
|
cmp r0, #0x0
|
|
beq _02051574
|
|
mov r0, #0x1
|
|
bl sub_02031588
|
|
mov r0, #0x1d
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020514BE:
|
|
mov r0, #0x1
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _02051574
|
|
add r0, r4, #0x0
|
|
bl sub_02051A90
|
|
add r1, r4, #0x0
|
|
add r1, #0x83
|
|
strb r0, [r1, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x82
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _02051502
|
|
add r0, r4, #0x0
|
|
add r0, #0x83
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _02051502
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x14
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x1e
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051502:
|
|
mov r0, #0x2a
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051508:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _02051574
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x89
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x11
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x84
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x1f
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051540:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _02051574
|
|
add r0, r4, #0x0
|
|
bl sub_02051AF0
|
|
add r1, r4, #0x0
|
|
add r1, #0x84
|
|
ldrb r1, [r1, #0x0]
|
|
add r0, r4, #0x0
|
|
bl sub_02051B68
|
|
mov r0, #0x20
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051566:
|
|
add r0, r4, #0x0
|
|
bl sub_02051D54
|
|
cmp r0, #0x1
|
|
beq _02051576
|
|
cmp r0, #0x2
|
|
beq _0205158C
|
|
_02051574:
|
|
b _020517B8
|
|
_02051576:
|
|
add r0, r4, #0x0
|
|
bl sub_02051E24
|
|
mov r0, #0x81
|
|
ldrsb r1, [r4, r0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x84
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x24
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205158C:
|
|
add r0, r4, #0x0
|
|
bl sub_02051E24
|
|
add r0, r4, #0x0
|
|
mov r1, #0xff
|
|
add r0, #0x84
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0xf
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x2
|
|
bl sub_02031588
|
|
mov r0, #0x27
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020515BA:
|
|
add r1, r4, #0x0
|
|
add r1, #0x84
|
|
ldrb r1, [r1, #0x0]
|
|
ldr r0, [r4, #0x50]
|
|
bl Party_GetMonByIndex
|
|
bl sub_020690E4
|
|
add r2, r0, #0x0
|
|
ldr r0, [r4, #0x28]
|
|
mov r1, #0x1
|
|
bl BufferBoxMonSpeciesName
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x12
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r2, [r4, #0xc]
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x25
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020515F8:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _0205168E
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
bl sub_02051C88
|
|
mov r0, #0x26
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051614:
|
|
add r0, r4, #0x0
|
|
bl sub_02051D54
|
|
cmp r0, #0x1
|
|
beq _02051642
|
|
cmp r0, #0x2
|
|
bne _0205168E
|
|
add r0, r4, #0x0
|
|
bl sub_02051E24
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0x11
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x1f
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051642:
|
|
mov r0, #0x81
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, #0x1
|
|
bne _0205167A
|
|
add r0, r4, #0x0
|
|
bl sub_02051E24
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0xe
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x10]
|
|
ldr r2, [r4, #0xc]
|
|
bl StringExpandPlaceholders
|
|
ldr r1, [r4, #0x10]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
mov r0, #0x2
|
|
bl sub_02031588
|
|
mov r0, #0x27
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_0205167A:
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
mov r0, #0x21
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051686:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0x0
|
|
bne _02051690
|
|
_0205168E:
|
|
b _020517B8
|
|
_02051690:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
bl sub_02051810
|
|
mov r0, #0x1
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x4]
|
|
add r3, r4, #0x0
|
|
add r3, #0x84
|
|
ldrb r3, [r3, #0x0]
|
|
ldr r1, [r4, #0x24]
|
|
ldr r2, [r4, #0x50]
|
|
add r0, r4, #0x0
|
|
bl sub_02050E48
|
|
mov r0, #0x22
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020516B6:
|
|
ldr r1, [r4, #0x24]
|
|
add r0, r4, #0x0
|
|
bl sub_02051020
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
ldr r0, [r4, #0x24]
|
|
bl FieldSystem_LoadFieldOverlay
|
|
mov r0, #0x23
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020516CE:
|
|
add r0, r4, #0x0
|
|
bl sub_0205104C
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
mov r0, #0x24
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_020516DE:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
mov r0, #0x2
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
add r0, r4, #0x0
|
|
bl sub_02051AA4
|
|
mov r0, #0x29
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051702:
|
|
add r0, r4, #0x0
|
|
bl sub_02051AE0
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
add r0, r4, #0x0
|
|
add r0, #0x84
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0xff
|
|
bne _02051722
|
|
mov r0, #0x4
|
|
bl sub_02031588
|
|
mov r0, #0x2c
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051722:
|
|
add r0, r4, #0x0
|
|
add r0, #0x85
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0xff
|
|
bne _02051732
|
|
mov r0, #0x2a
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051732:
|
|
add r0, r4, #0x0
|
|
bl sub_02051B1C
|
|
mov r0, #0x5d
|
|
bl sub_02031588
|
|
mov r0, #0x2
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051744:
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r2, [r4, #0xc]
|
|
mov r1, #0xf
|
|
bl ReadMsgDataIntoString
|
|
ldr r1, [r4, #0xc]
|
|
add r0, r4, #0x0
|
|
bl sub_020517C0
|
|
str r0, [r4, #0x30]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x2b
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051766:
|
|
ldr r0, [r4, #0x30]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
add r1, r0, #0x1
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x43
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3c
|
|
bls _020517B8
|
|
mov r0, #0x4
|
|
bl sub_02031588
|
|
mov r0, #0x2c
|
|
str r0, [r4, #0x34]
|
|
b _020517B8
|
|
_02051798:
|
|
mov r0, #0x4
|
|
bl sub_020315D8
|
|
cmp r0, #0x0
|
|
beq _020517B8
|
|
add r0, r4, #0x0
|
|
add r0, #0x14
|
|
mov r1, #0x0
|
|
bl ClearFrameAndWindow2
|
|
mov r0, #0x0
|
|
ldr r2, [r4, #0x8]
|
|
add r1, r0, #0x0
|
|
blx r2
|
|
mov r0, #0x5
|
|
str r0, [r4, #0x34]
|
|
_020517B8:
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020517C0
|
|
sub_020517C0: ; 0x020517C0
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
add r4, r5, #0x0
|
|
add r4, #0x14
|
|
add r0, r4, #0x0
|
|
add r6, r1, #0x0
|
|
bl WindowIsInUse
|
|
cmp r0, #0x0
|
|
bne _020517F2
|
|
ldr r0, [r5, #0x24]
|
|
add r1, r4, #0x0
|
|
ldr r0, [r0, #0x8]
|
|
mov r2, #0x3
|
|
bl sub_020545B8
|
|
ldr r0, [r5, #0x24]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r1, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl sub_02054608
|
|
b _020517F8
|
|
_020517F2:
|
|
add r0, r4, #0x0
|
|
bl sub_0205464C
|
|
_020517F8:
|
|
ldr r0, [r5, #0x24]
|
|
ldr r0, [r0, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r2, r0, #0x0
|
|
add r0, r4, #0x0
|
|
add r1, r6, #0x0
|
|
mov r3, #0x1
|
|
bl sub_02054658
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051810
|
|
sub_02051810: ; 0x02051810
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, #0x14
|
|
add r4, r1, #0x0
|
|
bl WindowIsInUse
|
|
cmp r0, #0x0
|
|
beq _02051846
|
|
cmp r4, #0x0
|
|
beq _02051836
|
|
add r0, r5, #0x0
|
|
add r0, #0x14
|
|
mov r1, #0x0
|
|
bl ClearFrameAndWindow2
|
|
add r0, r5, #0x0
|
|
add r0, #0x14
|
|
bl ClearWindowTilemapAndCopyToVram
|
|
_02051836:
|
|
add r0, r5, #0x0
|
|
add r0, #0x14
|
|
bl RemoveWindow
|
|
add r0, r5, #0x0
|
|
add r0, #0x14
|
|
bl InitWindow
|
|
_02051846:
|
|
add r0, r5, #0x0
|
|
add r0, #0x54
|
|
bl WindowIsInUse
|
|
cmp r0, #0x0
|
|
beq _02051862
|
|
add r0, r5, #0x0
|
|
add r0, #0x54
|
|
bl RemoveWindow
|
|
add r0, r5, #0x0
|
|
add r0, #0x54
|
|
bl InitWindow
|
|
_02051862:
|
|
add r0, r5, #0x0
|
|
add r0, #0x64
|
|
bl WindowIsInUse
|
|
cmp r0, #0x0
|
|
beq _0205187E
|
|
add r0, r5, #0x0
|
|
add r0, #0x64
|
|
bl RemoveWindow
|
|
add r5, #0x64
|
|
add r0, r5, #0x0
|
|
bl InitWindow
|
|
_0205187E:
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02051880
|
|
sub_02051880: ; 0x02051880
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x10]
|
|
add r6, r1, #0x0
|
|
cmp r0, #0x0
|
|
beq _0205188E
|
|
b _02051992
|
|
_0205188E:
|
|
mov r0, #0xb
|
|
mov r1, #0x8c
|
|
bl Heap_AllocAtEnd
|
|
add r4, r0, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0x8c
|
|
bl MI_CpuFill8
|
|
add r0, r4, #0x0
|
|
mov r1, #0x5
|
|
add r0, #0x43
|
|
strb r1, [r0, #0x0]
|
|
str r5, [r4, #0x24]
|
|
str r6, [r4, #0x8]
|
|
mov r0, #0xb
|
|
bl MessageFormat_New
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
mov r1, #0x1a
|
|
mov r2, #0x9
|
|
mov r3, #0xb
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r4, #0x2c]
|
|
mov r0, #0xc8
|
|
mov r1, #0xb
|
|
bl String_New
|
|
str r0, [r4, #0xc]
|
|
mov r0, #0xc8
|
|
mov r1, #0xb
|
|
bl String_New
|
|
str r0, [r4, #0x10]
|
|
add r0, r4, #0x0
|
|
add r0, #0x14
|
|
bl InitWindow
|
|
add r0, r4, #0x0
|
|
add r0, #0x54
|
|
bl InitWindow
|
|
add r0, r4, #0x0
|
|
add r0, #0x64
|
|
bl InitWindow
|
|
mov r0, #0xb
|
|
bl ListMenuCursorNew
|
|
str r0, [r4, #0x78]
|
|
bl sub_02033534
|
|
add r1, r4, #0x0
|
|
add r1, #0x88
|
|
strb r0, [r1, #0x0]
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x4c]
|
|
str r1, [r4, #0x48]
|
|
add r0, r4, #0x0
|
|
str r1, [r4, #0x50]
|
|
add r0, #0x89
|
|
strb r1, [r0, #0x0]
|
|
bl sub_02031190
|
|
add r1, r4, #0x0
|
|
add r1, #0x86
|
|
strh r0, [r1, #0x0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x86
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x1
|
|
eor r0, r1
|
|
bl sub_0202DFA4
|
|
str r0, [r4, #0x74]
|
|
add r0, r4, #0x0
|
|
add r0, #0x88
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
beq _02051938
|
|
cmp r0, #0x4
|
|
beq _0205196E
|
|
b _02051974
|
|
_02051938:
|
|
bl sub_02051E54
|
|
add r6, r0, #0x0
|
|
mov r0, #0xb
|
|
add r1, r6, #0x0
|
|
bl Heap_AllocAtEnd
|
|
str r0, [r4, #0x4c]
|
|
mov r0, #0xb
|
|
add r1, r6, #0x0
|
|
bl Heap_AllocAtEnd
|
|
str r0, [r4, #0x48]
|
|
mov r0, #0xb
|
|
bl SaveArray_Party_Alloc
|
|
mov r1, #0x3
|
|
str r0, [r4, #0x50]
|
|
bl Party_InitWithMaxSize
|
|
add r0, r4, #0x0
|
|
mov r1, #0x5
|
|
add r0, #0x44
|
|
strb r1, [r0, #0x0]
|
|
mov r0, #0x17
|
|
str r0, [r4, #0x34]
|
|
b _02051988
|
|
_0205196E:
|
|
mov r0, #0x9
|
|
str r0, [r4, #0x34]
|
|
b _02051988
|
|
_02051974:
|
|
ldr r0, [r4, #0x24]
|
|
add r0, #0xac
|
|
ldr r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
beq _02051984
|
|
mov r0, #0x9
|
|
str r0, [r4, #0x34]
|
|
b _02051988
|
|
_02051984:
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x34]
|
|
_02051988:
|
|
ldr r1, _02051994 ; =sub_02051094
|
|
add r0, r5, #0x0
|
|
add r2, r4, #0x0
|
|
bl FieldSystem_CreateTask
|
|
_02051992:
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_02051994: .word sub_02051094
|
|
|
|
thumb_func_start sub_02051998
|
|
sub_02051998: ; 0x02051998
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x50]
|
|
cmp r0, #0x0
|
|
beq _020519A6
|
|
bl Heap_Free
|
|
_020519A6:
|
|
ldr r0, [r4, #0x4c]
|
|
cmp r0, #0x0
|
|
beq _020519B0
|
|
bl Heap_Free
|
|
_020519B0:
|
|
ldr r0, [r4, #0x48]
|
|
cmp r0, #0x0
|
|
beq _020519BA
|
|
bl Heap_Free
|
|
_020519BA:
|
|
ldr r0, [r4, #0x2c]
|
|
bl DestroyMsgData
|
|
ldr r0, [r4, #0x28]
|
|
bl MessageFormat_Delete
|
|
ldr r0, [r4, #0xc]
|
|
bl String_Delete
|
|
ldr r0, [r4, #0x10]
|
|
bl String_Delete
|
|
ldr r0, [r4, #0x78]
|
|
bl DestroyListMenuCursorObj
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl sub_02051810
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020519E4
|
|
sub_020519E4: ; 0x020519E4
|
|
ldr r3, _020519EC ; =TaskManager_GetEnvironment
|
|
ldr r0, [r0, #0x10]
|
|
bx r3
|
|
nop
|
|
_020519EC: .word TaskManager_GetEnvironment
|
|
|
|
thumb_func_start sub_020519F0
|
|
sub_020519F0: ; 0x020519F0
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
ldr r0, [r7, #0x24]
|
|
add r5, r1, #0x0
|
|
ldr r0, [r0, #0xc]
|
|
bl SaveArray_Party_Get
|
|
str r0, [sp, #0x0]
|
|
ldr r4, [r7, #0x4c]
|
|
bl sub_020690C4
|
|
add r6, r0, #0x0
|
|
lsl r0, r6, #0x1
|
|
add r0, r6, r0
|
|
str r5, [r4, r0]
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
beq _02051A34
|
|
mov r5, #0x0
|
|
_02051A16:
|
|
add r1, r7, r5
|
|
add r1, #0x3d
|
|
ldrb r1, [r1, #0x0]
|
|
ldr r0, [sp, #0x0]
|
|
sub r1, r1, #0x1
|
|
bl Party_GetMonByIndex
|
|
add r1, r4, #0x0
|
|
add r2, r6, #0x0
|
|
bl MI_CpuCopy8
|
|
add r5, r5, #0x1
|
|
add r4, r4, r6
|
|
cmp r5, #0x3
|
|
blt _02051A16
|
|
_02051A34:
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051A38
|
|
sub_02051A38: ; 0x02051A38
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, #0x89
|
|
ldrb r1, [r0, #0x0]
|
|
mov r0, #0x1
|
|
tst r1, r0
|
|
bne _02051A7C
|
|
ldr r4, [r5, #0x4c]
|
|
bl sub_02051E54
|
|
add r2, r0, #0x0
|
|
add r0, r5, #0x0
|
|
add r0, #0x86
|
|
ldrh r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _02051A62
|
|
mov r0, #0x6a
|
|
add r1, r4, #0x0
|
|
bl sub_02030B3C
|
|
b _02051A6A
|
|
_02051A62:
|
|
mov r0, #0x6a
|
|
add r1, r4, #0x0
|
|
bl sub_02030A78
|
|
_02051A6A:
|
|
cmp r0, #0x0
|
|
beq _02051A7C
|
|
add r1, r5, #0x0
|
|
add r1, #0x89
|
|
ldrb r2, [r1, #0x0]
|
|
mov r1, #0x1
|
|
add r5, #0x89
|
|
orr r1, r2
|
|
strb r1, [r5, #0x0]
|
|
_02051A7C:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051A80
|
|
sub_02051A80: ; 0x02051A80
|
|
add r0, #0x89
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
bne _02051A8C
|
|
mov r0, #0x1
|
|
bx lr
|
|
_02051A8C:
|
|
mov r0, #0x0
|
|
bx lr
|
|
|
|
thumb_func_start sub_02051A90
|
|
sub_02051A90: ; 0x02051A90
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
bl sub_020690C4
|
|
lsl r1, r0, #0x1
|
|
ldr r2, [r4, #0x48]
|
|
add r0, r0, r1
|
|
ldr r0, [r2, r0]
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051AA4
|
|
sub_02051AA4: ; 0x02051AA4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, #0x86
|
|
ldrh r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _02051ABE
|
|
add r1, r4, #0x0
|
|
mov r0, #0x6b
|
|
add r1, #0x84
|
|
mov r2, #0x1
|
|
bl sub_02030BC4
|
|
b _02051ACA
|
|
_02051ABE:
|
|
add r1, r4, #0x0
|
|
mov r0, #0x6b
|
|
add r1, #0x84
|
|
mov r2, #0x1
|
|
bl sub_02030ADC
|
|
_02051ACA:
|
|
cmp r0, #0x0
|
|
beq _02051ADC
|
|
add r1, r4, #0x0
|
|
add r1, #0x89
|
|
ldrb r2, [r1, #0x0]
|
|
mov r1, #0x1
|
|
add r4, #0x89
|
|
orr r1, r2
|
|
strb r1, [r4, #0x0]
|
|
_02051ADC:
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051AE0
|
|
sub_02051AE0: ; 0x02051AE0
|
|
add r0, #0x89
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x3
|
|
bne _02051AEC
|
|
mov r0, #0x1
|
|
bx lr
|
|
_02051AEC:
|
|
mov r0, #0x0
|
|
bx lr
|
|
|
|
thumb_func_start sub_02051AF0
|
|
sub_02051AF0: ; 0x02051AF0
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
bl sub_020690C4
|
|
add r6, r0, #0x0
|
|
ldr r0, [r5, #0x50]
|
|
mov r1, #0x3
|
|
bl Party_InitWithMaxSize
|
|
mov r4, #0x0
|
|
_02051B04:
|
|
add r1, r4, #0x0
|
|
ldr r2, [r5, #0x48]
|
|
mul r1, r6
|
|
ldr r0, [r5, #0x50]
|
|
add r1, r2, r1
|
|
bl Party_AddMon
|
|
add r4, r4, #0x1
|
|
cmp r4, #0x3
|
|
blt _02051B04
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051B1C
|
|
sub_02051B1C: ; 0x02051B1C
|
|
push {r4-r6, lr}
|
|
add r6, r0, #0x0
|
|
bl sub_020690C4
|
|
add r4, r0, #0x0
|
|
add r0, r6, #0x0
|
|
add r0, #0x84
|
|
ldrb r0, [r0, #0x0]
|
|
ldr r2, [r6, #0x48]
|
|
ldr r3, [r6, #0x4c]
|
|
add r1, r0, #0x0
|
|
mul r1, r4
|
|
add r0, r2, r1
|
|
add r1, r6, #0x0
|
|
add r1, #0x85
|
|
ldrb r1, [r1, #0x0]
|
|
add r2, r1, #0x0
|
|
mul r2, r4
|
|
add r1, r3, r2
|
|
add r2, r4, #0x0
|
|
bl MI_CpuCopy8
|
|
ldr r0, [r6, #0x50]
|
|
mov r1, #0x3
|
|
bl Party_InitWithMaxSize
|
|
mov r5, #0x0
|
|
_02051B52:
|
|
add r1, r5, #0x0
|
|
ldr r2, [r6, #0x4c]
|
|
mul r1, r4
|
|
ldr r0, [r6, #0x50]
|
|
add r1, r2, r1
|
|
bl Party_AddMon
|
|
add r5, r5, #0x1
|
|
cmp r5, #0x3
|
|
blt _02051B52
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_02051B68
|
|
sub_02051B68: ; 0x02051B68
|
|
push {r4-r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r0, #0x0
|
|
str r0, [sp, #0x20]
|
|
add r0, #0x54
|
|
str r1, [sp, #0x14]
|
|
str r0, [sp, #0x20]
|
|
bl WindowIsInUse
|
|
cmp r0, #0x0
|
|
bne _02051C34
|
|
ldr r2, _02051C84 ; =0x0000016A
|
|
mov r0, #0x1
|
|
mov r1, #0x1a
|
|
mov r3, #0x4
|
|
bl NewMsgDataFromNarc
|
|
str r0, [sp, #0x18]
|
|
bl sub_020690C4
|
|
str r0, [sp, #0x1c]
|
|
mov r0, #0x9
|
|
str r0, [sp, #0x0]
|
|
mov r1, #0xa
|
|
str r1, [sp, #0x4]
|
|
mov r0, #0x8
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0xd
|
|
str r0, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
ldr r1, [sp, #0x20]
|
|
ldr r0, [r0, #0x8]
|
|
mov r2, #0x3
|
|
mov r3, #0x15
|
|
bl AddWindowParameterized
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x4
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x24]
|
|
mov r1, #0x3
|
|
ldr r0, [r0, #0x8]
|
|
mov r2, #0x1
|
|
mov r3, #0xb
|
|
bl LoadUserFrameGfx1
|
|
ldr r0, [sp, #0x20]
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r7, #0x0
|
|
add r6, r7, #0x0
|
|
add r4, r7, #0x0
|
|
_02051BD6:
|
|
ldr r0, [r5, #0x48]
|
|
mov r1, #0x5
|
|
add r0, r0, r6
|
|
mov r2, #0x0
|
|
bl GetMonData
|
|
add r1, r0, #0x0
|
|
ldr r0, [sp, #0x18]
|
|
ldr r2, [r5, #0xc]
|
|
bl ReadMsgDataIntoString
|
|
str r4, [sp, #0x0]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [r5, #0xc]
|
|
mov r1, #0x0
|
|
mov r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [sp, #0x1c]
|
|
add r7, r7, #0x1
|
|
add r6, r6, r0
|
|
add r4, #0x10
|
|
cmp r7, #0x3
|
|
blt _02051BD6
|
|
ldr r0, [r5, #0x2c]
|
|
ldr r2, [r5, #0xc]
|
|
mov r1, #0x15
|
|
bl ReadMsgDataIntoString
|
|
lsl r0, r7, #0x4
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x4]
|
|
mov r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
ldr r0, [sp, #0x20]
|
|
ldr r2, [r5, #0xc]
|
|
mov r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [sp, #0x18]
|
|
bl DestroyMsgData
|
|
_02051C34:
|
|
mov r0, #0x10
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x20]
|
|
mov r2, #0x0
|
|
ldrb r0, [r0, #0x8]
|
|
mov r1, #0xf
|
|
add r3, r2, #0x0
|
|
lsl r0, r0, #0x13
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0x20]
|
|
bl FillWindowPixelRect
|
|
ldr r3, [sp, #0x14]
|
|
add r1, r5, #0x0
|
|
ldr r0, [r5, #0x78]
|
|
add r1, #0x54
|
|
mov r2, #0x0
|
|
lsl r3, r3, #0x4
|
|
bl ListMenuUpdateCursorObj
|
|
add r0, r5, #0x0
|
|
add r0, #0x54
|
|
mov r1, #0x0
|
|
mov r2, #0x1
|
|
mov r3, #0xb
|
|
bl DrawFrameAndWindow1
|
|
add r1, r5, #0x0
|
|
ldr r0, [sp, #0x14]
|
|
add r1, #0x81
|
|
strb r0, [r1, #0x0]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x4
|
|
add r0, #0x80
|
|
strb r1, [r0, #0x0]
|
|
ldr r0, [sp, #0x20]
|
|
str r0, [r5, #0x7c]
|
|
add sp, #0x24
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02051C84: .word 0x0000016A
|
|
|
|
thumb_func_start sub_02051C88
|
|
sub_02051C88: ; 0x02051C88
|
|
push {r3-r7, lr}
|
|
sub sp, #0x18
|
|
add r5, r0, #0x0
|
|
add r7, r5, #0x0
|
|
add r7, #0x64
|
|
add r0, r7, #0x0
|
|
str r1, [sp, #0x14]
|
|
bl WindowIsInUse
|
|
cmp r0, #0x0
|
|
bne _02051D0A
|
|
mov r0, #0xb
|
|
str r0, [sp, #0x0]
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x6
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0xd
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0x5a
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
add r1, r7, #0x0
|
|
ldr r0, [r0, #0x8]
|
|
mov r2, #0x3
|
|
mov r3, #0x14
|
|
bl AddWindowParameterized
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x0]
|
|
mov r0, #0x4
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x24]
|
|
mov r1, #0x3
|
|
ldr r0, [r0, #0x8]
|
|
mov r2, #0x1
|
|
mov r3, #0xb
|
|
bl LoadUserFrameGfx1
|
|
add r0, r7, #0x0
|
|
mov r1, #0xf
|
|
bl FillWindowPixelBuffer
|
|
mov r6, #0x0
|
|
add r4, r6, #0x0
|
|
_02051CE0:
|
|
add r1, r6, #0x0
|
|
ldr r0, [r5, #0x2c]
|
|
ldr r2, [r5, #0xc]
|
|
add r1, #0x16
|
|
bl ReadMsgDataIntoString
|
|
str r4, [sp, #0x0]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x8]
|
|
ldr r2, [r5, #0xc]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x0
|
|
mov r3, #0x10
|
|
bl AddTextPrinterParameterized
|
|
add r6, r6, #0x1
|
|
add r4, #0x10
|
|
cmp r6, #0x3
|
|
blt _02051CE0
|
|
_02051D0A:
|
|
add r0, r5, #0x0
|
|
mov r1, #0x3
|
|
add r0, #0x80
|
|
strb r1, [r0, #0x0]
|
|
add r1, r5, #0x0
|
|
ldr r0, [sp, #0x14]
|
|
str r7, [r5, #0x7c]
|
|
add r1, #0x81
|
|
strb r0, [r1, #0x0]
|
|
mov r0, #0x10
|
|
str r0, [sp, #0x0]
|
|
ldrb r0, [r7, #0x8]
|
|
mov r2, #0x0
|
|
mov r1, #0xf
|
|
lsl r0, r0, #0x13
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x4]
|
|
add r0, r7, #0x0
|
|
add r3, r2, #0x0
|
|
bl FillWindowPixelRect
|
|
ldr r3, [sp, #0x14]
|
|
ldr r0, [r5, #0x78]
|
|
ldr r1, [r5, #0x7c]
|
|
mov r2, #0x0
|
|
lsl r3, r3, #0x4
|
|
bl ListMenuUpdateCursorObj
|
|
ldr r0, [r5, #0x7c]
|
|
mov r1, #0x0
|
|
mov r2, #0x1
|
|
mov r3, #0xb
|
|
bl DrawFrameAndWindow1
|
|
add sp, #0x18
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051D54
|
|
sub_02051D54: ; 0x02051D54
|
|
push {r4, lr}
|
|
sub sp, #0x8
|
|
add r4, r0, #0x0
|
|
ldr r0, _02051E1C ; =gSystem
|
|
mov r1, #0x40
|
|
ldr r0, [r0, #0x48]
|
|
tst r1, r0
|
|
beq _02051D7E
|
|
mov r0, #0x81
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
bne _02051D74
|
|
add r0, r4, #0x0
|
|
add r0, #0x80
|
|
ldrb r0, [r0, #0x0]
|
|
b _02051D74
|
|
_02051D74:
|
|
sub r1, r0, #0x1
|
|
add r0, r4, #0x0
|
|
add r0, #0x81
|
|
strb r1, [r0, #0x0]
|
|
b _02051DE0
|
|
_02051D7E:
|
|
mov r1, #0x80
|
|
tst r1, r0
|
|
beq _02051DA2
|
|
mov r0, #0x81
|
|
ldrsb r1, [r4, r0]
|
|
add r0, r4, #0x0
|
|
add r0, #0x80
|
|
ldrb r0, [r0, #0x0]
|
|
sub r0, r0, #0x1
|
|
cmp r1, r0
|
|
bne _02051D98
|
|
mov r1, #0x0
|
|
b _02051D9A
|
|
_02051D98:
|
|
add r1, r1, #0x1
|
|
_02051D9A:
|
|
add r0, r4, #0x0
|
|
add r0, #0x81
|
|
strb r1, [r0, #0x0]
|
|
b _02051DE0
|
|
_02051DA2:
|
|
mov r1, #0x1
|
|
tst r1, r0
|
|
beq _02051DC8
|
|
ldr r0, _02051E20 ; =0x000005DC
|
|
bl PlaySE
|
|
mov r0, #0x81
|
|
ldrsb r1, [r4, r0]
|
|
add r4, #0x80
|
|
ldrb r0, [r4, #0x0]
|
|
sub r0, r0, #0x1
|
|
cmp r1, r0
|
|
bge _02051DC2
|
|
add sp, #0x8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02051DC2:
|
|
add sp, #0x8
|
|
mov r0, #0x2
|
|
pop {r4, pc}
|
|
_02051DC8:
|
|
mov r1, #0x2
|
|
tst r0, r1
|
|
beq _02051DDA
|
|
ldr r0, _02051E20 ; =0x000005DC
|
|
bl PlaySE
|
|
add sp, #0x8
|
|
mov r0, #0x2
|
|
pop {r4, pc}
|
|
_02051DDA:
|
|
add sp, #0x8
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
_02051DE0:
|
|
ldr r0, _02051E20 ; =0x000005DC
|
|
bl PlaySE
|
|
ldr r0, [r4, #0x7c]
|
|
mov r1, #0x10
|
|
str r1, [sp, #0x0]
|
|
ldrb r1, [r0, #0x8]
|
|
mov r2, #0x0
|
|
add r3, r2, #0x0
|
|
lsl r1, r1, #0x13
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #0x4]
|
|
mov r1, #0xf
|
|
bl FillWindowPixelRect
|
|
mov r3, #0x81
|
|
ldrsb r3, [r4, r3]
|
|
ldr r0, [r4, #0x78]
|
|
ldr r1, [r4, #0x7c]
|
|
mov r2, #0x0
|
|
lsl r3, r3, #0x4
|
|
bl ListMenuUpdateCursorObj
|
|
ldr r0, [r4, #0x7c]
|
|
bl CopyWindowPixelsToVram_TextMode
|
|
mov r0, #0x0
|
|
add sp, #0x8
|
|
pop {r4, pc}
|
|
nop
|
|
_02051E1C: .word gSystem
|
|
_02051E20: .word 0x000005DC
|
|
|
|
thumb_func_start sub_02051E24
|
|
sub_02051E24: ; 0x02051E24
|
|
ldr r3, _02051E2C ; =ClearFrameAndWindow1
|
|
ldr r0, [r0, #0x7c]
|
|
mov r1, #0x1
|
|
bx r3
|
|
.balign 4
|
|
_02051E2C: .word ClearFrameAndWindow1
|
|
|
|
thumb_func_start sub_02051E30
|
|
sub_02051E30: ; 0x02051E30
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r3, #0x0
|
|
bl sub_020519E4
|
|
add r1, r0, #0x0
|
|
add r1, #0x86
|
|
ldrh r1, [r1, #0x0]
|
|
cmp r1, r4
|
|
beq _02051E52
|
|
add r1, r0, #0x0
|
|
add r1, #0x89
|
|
ldrb r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
add r0, #0x89
|
|
orr r1, r2
|
|
strb r1, [r0, #0x0]
|
|
_02051E52:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02051E54
|
|
sub_02051E54: ; 0x02051E54
|
|
push {r3, lr}
|
|
bl sub_020690C4
|
|
lsl r1, r0, #0x1
|
|
add r0, r0, r1
|
|
add r0, r0, #0x4
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051E64
|
|
sub_02051E64: ; 0x02051E64
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
add r0, r1, #0x0
|
|
bl sub_020519E4
|
|
add r1, r0, #0x0
|
|
add r1, #0x86
|
|
ldrh r1, [r1, #0x0]
|
|
cmp r1, r4
|
|
beq _02051E7C
|
|
ldr r0, [r0, #0x48]
|
|
pop {r4, pc}
|
|
_02051E7C:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02051E80
|
|
sub_02051E80: ; 0x02051E80
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
add r0, r3, #0x0
|
|
add r4, r2, #0x0
|
|
bl sub_020519E4
|
|
add r1, r0, #0x0
|
|
add r1, #0x86
|
|
ldrh r1, [r1, #0x0]
|
|
cmp r1, r5
|
|
beq _02051EAC
|
|
ldrb r2, [r4, #0x0]
|
|
add r1, r0, #0x0
|
|
add r1, #0x85
|
|
strb r2, [r1, #0x0]
|
|
add r1, r0, #0x0
|
|
add r1, #0x89
|
|
ldrb r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
add r0, #0x89
|
|
orr r1, r2
|
|
strb r1, [r0, #0x0]
|
|
_02051EAC:
|
|
pop {r3-r5, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02051EB0
|
|
sub_02051EB0: ; 0x02051EB0
|
|
push {r4-r6, lr}
|
|
add r4, r0, #0x0
|
|
bl TaskManager_GetFieldSystem
|
|
add r5, r0, #0x0
|
|
add r0, r4, #0x0
|
|
bl TaskManager_GetEnvironment
|
|
add r4, r0, #0x0
|
|
mov r1, #0x0
|
|
ldr r0, [r4, #0x24]
|
|
add r2, r1, #0x0
|
|
bl sub_02050BF8
|
|
add r6, r0, #0x0
|
|
ldr r0, [r4, #0x28]
|
|
cmp r0, #0x7
|
|
bls _02051ED6
|
|
b _02052036
|
|
_02051ED6:
|
|
add r0, r0, r0
|
|
add r0, pc
|
|
ldrh r0, [r0, #0x6]
|
|
lsl r0, r0, #0x10
|
|
asr r0, r0, #0x10
|
|
add pc, r0
|
|
_02051EE2: ; jump table (using 16-bit offset)
|
|
.short _02051EF2 - _02051EE2 - 2; case 0
|
|
.short _02051F7C - _02051EE2 - 2; case 1
|
|
.short _02051FCC - _02051EE2 - 2; case 2
|
|
.short _02051FDC - _02051EE2 - 2; case 3
|
|
.short _02051FEC - _02051EE2 - 2; case 4
|
|
.short _02051FFE - _02051EE2 - 2; case 5
|
|
.short _0205200C - _02051EE2 - 2; case 6
|
|
.short _02052028 - _02051EE2 - 2; case 7
|
|
_02051EF2:
|
|
mov r0, #0x4
|
|
bl MessageFormat_New
|
|
str r0, [r4, #0x18]
|
|
mov r0, #0x0
|
|
mov r1, #0x1a
|
|
mov r2, #0x9
|
|
mov r3, #0x4
|
|
bl NewMsgDataFromNarc
|
|
str r0, [r4, #0x1c]
|
|
mov r0, #0xc8
|
|
mov r1, #0x4
|
|
bl String_New
|
|
str r0, [r4, #0x0]
|
|
mov r0, #0xc8
|
|
mov r1, #0x4
|
|
bl String_New
|
|
str r0, [r4, #0x4]
|
|
ldrb r1, [r6, #0x3]
|
|
ldr r0, [r4, #0x1c]
|
|
ldr r2, [r4, #0x0]
|
|
add r1, r1, #0x2
|
|
bl ReadMsgDataIntoString
|
|
ldr r0, [r4, #0x24]
|
|
bl sub_0202DFA4
|
|
add r2, r0, #0x0
|
|
ldr r0, [r4, #0x18]
|
|
mov r1, #0x0
|
|
bl BufferPlayersName
|
|
ldr r0, [r4, #0x18]
|
|
ldr r1, [r4, #0x4]
|
|
ldr r2, [r4, #0x0]
|
|
bl StringExpandPlaceholders
|
|
add r1, r4, #0x0
|
|
ldr r0, [r5, #0x8]
|
|
add r1, #0x8
|
|
mov r2, #0x3
|
|
bl sub_020545B8
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r1, r0, #0x0
|
|
add r0, r4, #0x0
|
|
add r0, #0x8
|
|
bl sub_02054608
|
|
ldr r0, [r5, #0xc]
|
|
bl Save_PlayerData_GetOptionsAddr
|
|
add r2, r0, #0x0
|
|
add r0, r4, #0x0
|
|
ldr r1, [r4, #0x4]
|
|
add r0, #0x8
|
|
mov r3, #0x1
|
|
bl sub_02054658
|
|
str r0, [r4, #0x20]
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_02051F7C:
|
|
ldr r0, [r4, #0x20]
|
|
lsl r0, r0, #0x18
|
|
lsr r0, r0, #0x18
|
|
bl sub_020546C8
|
|
cmp r0, #0x0
|
|
beq _0205203A
|
|
ldr r0, _02052040 ; =gSystem
|
|
ldr r1, [r0, #0x48]
|
|
mov r0, #0x1
|
|
tst r0, r1
|
|
beq _0205203A
|
|
ldr r0, [r4, #0x1c]
|
|
bl DestroyMsgData
|
|
ldr r0, [r4, #0x18]
|
|
bl MessageFormat_Delete
|
|
ldr r0, [r4, #0x0]
|
|
bl String_Delete
|
|
ldr r0, [r4, #0x4]
|
|
bl String_Delete
|
|
add r0, r4, #0x0
|
|
add r0, #0x8
|
|
mov r1, #0x0
|
|
bl ClearFrameAndWindow2
|
|
add r0, r4, #0x0
|
|
add r0, #0x8
|
|
bl RemoveWindow
|
|
mov r0, #0x0
|
|
bl ov05_021D7CA4
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_02051FCC:
|
|
bl IsPaletteFadeFinished
|
|
cmp r0, #0x0
|
|
beq _0205203A
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_02051FDC:
|
|
add r0, r5, #0x0
|
|
add r1, r6, #0x0
|
|
bl sub_02038680
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_02051FEC:
|
|
add r0, r5, #0x0
|
|
bl FieldSystem_ApplicationIsRunning
|
|
cmp r0, #0x0
|
|
bne _0205203A
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_02051FFE:
|
|
add r0, r5, #0x0
|
|
bl FieldSystem_LoadFieldOverlay
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_0205200C:
|
|
add r0, r5, #0x0
|
|
bl sub_020464A4
|
|
cmp r0, #0x0
|
|
bne _0205203A
|
|
mov r0, #0x1
|
|
bl ov05_021D7CA4
|
|
bl sub_0204CC9C
|
|
ldr r0, [r4, #0x28]
|
|
add r0, r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
b _0205203A
|
|
_02052028:
|
|
bl sub_0204F7FC
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_02052036:
|
|
mov r0, #0x1
|
|
pop {r4-r6, pc}
|
|
_0205203A:
|
|
mov r0, #0x0
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_02052040: .word gSystem
|
|
|
|
thumb_func_start sub_02052044
|
|
sub_02052044: ; 0x02052044
|
|
push {r3-r7, lr}
|
|
str r0, [sp, #0x0]
|
|
bl sub_02031190
|
|
add r5, r0, #0x0
|
|
bl sub_0204E4D4
|
|
add r7, r0, #0x0
|
|
add r0, r5, #0x0
|
|
bl sub_0204E50C
|
|
add r6, r0, #0x0
|
|
mov r4, #0x0
|
|
bl sub_02030F20
|
|
cmp r0, #0x0
|
|
ble _020520A6
|
|
_02052066:
|
|
cmp r4, r5
|
|
beq _0205209C
|
|
add r0, r4, #0x0
|
|
bl sub_0204E3EC
|
|
cmp r7, r0
|
|
bne _0205209C
|
|
add r0, r4, #0x0
|
|
bl sub_0204E440
|
|
cmp r6, r0
|
|
bne _0205209C
|
|
mov r0, #0xb
|
|
mov r1, #0x2c
|
|
bl Heap_AllocAtEnd
|
|
add r2, r0, #0x0
|
|
str r4, [r2, #0x24]
|
|
mov r0, #0x0
|
|
str r0, [r2, #0x28]
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, _020520A8 ; =sub_02051EB0
|
|
bl FieldSystem_CreateTask
|
|
bl sub_02037760
|
|
pop {r3-r7, pc}
|
|
_0205209C:
|
|
add r4, r4, #0x1
|
|
bl sub_02030F20
|
|
cmp r4, r0
|
|
blt _02052066
|
|
_020520A6:
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_020520A8: .word sub_02051EB0
|