mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 04:04:17 +01:00
0dc73b0b3a
The files are separated based on the pokenav resources substruct ID they use.
1394 lines
21 KiB
ArmAsm
1394 lines
21 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
@ File centered around AllocSubstruct(9)
|
|
|
|
thumb_func_start sub_81CF9BC
|
|
sub_81CF9BC: @ 81CF9BC
|
|
push {r4,lr}
|
|
movs r0, 0x9
|
|
movs r1, 0x20
|
|
bl AllocSubstruct
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _081CF9FC
|
|
ldr r1, =0x000006ac
|
|
movs r0, 0x12
|
|
bl AllocSubstruct
|
|
str r0, [r4, 0x1C]
|
|
cmp r0, 0
|
|
beq _081CF9FC
|
|
ldr r0, =sub_81CFA68
|
|
str r0, [r4]
|
|
ldr r0, =sub_81CFB74
|
|
movs r1, 0x1
|
|
bl CreateLoopedTask
|
|
str r0, [r4, 0x4]
|
|
movs r0, 0
|
|
str r0, [r4, 0x14]
|
|
movs r0, 0x1
|
|
b _081CF9FE
|
|
.pool
|
|
_081CF9FC:
|
|
movs r0, 0
|
|
_081CF9FE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CF9BC
|
|
|
|
thumb_func_start sub_81CFA04
|
|
sub_81CFA04: @ 81CFA04
|
|
push {r4,lr}
|
|
movs r0, 0x9
|
|
movs r1, 0x20
|
|
bl AllocSubstruct
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _081CFA2C
|
|
movs r0, 0x12
|
|
bl GetSubstructPtr
|
|
str r0, [r4, 0x1C]
|
|
ldr r0, =sub_81CFA88
|
|
str r0, [r4]
|
|
movs r0, 0x1
|
|
str r0, [r4, 0x14]
|
|
b _081CFA2E
|
|
.pool
|
|
_081CFA2C:
|
|
movs r0, 0
|
|
_081CFA2E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFA04
|
|
|
|
thumb_func_start sub_81CFA34
|
|
sub_81CFA34: @ 81CFA34
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
ldr r1, [r0]
|
|
bl _call_via_r1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFA34
|
|
|
|
thumb_func_start sub_81CFA48
|
|
sub_81CFA48: @ 81CFA48
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
bne _081CFA5C
|
|
movs r0, 0x12
|
|
bl FreePokenavSubstruct
|
|
_081CFA5C:
|
|
movs r0, 0x9
|
|
bl FreePokenavSubstruct
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81CFA48
|
|
|
|
thumb_func_start sub_81CFA68
|
|
sub_81CFA68: @ 81CFA68
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x4]
|
|
bl IsLoopedTaskActive
|
|
cmp r0, 0
|
|
bne _081CFA7A
|
|
ldr r0, =sub_81CFA88
|
|
str r0, [r4]
|
|
_081CFA7A:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81CFA68
|
|
|
|
thumb_func_start sub_81CFA88
|
|
sub_81CFA88: @ 81CFA88
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, =gMain
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081CFAA0
|
|
movs r0, 0x1
|
|
b _081CFAFE
|
|
.pool
|
|
_081CFAA0:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081CFAAC
|
|
movs r0, 0x2
|
|
b _081CFAFE
|
|
_081CFAAC:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081CFABA
|
|
movs r0, 0x3
|
|
b _081CFAFE
|
|
_081CFABA:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _081CFACA
|
|
movs r0, 0x4
|
|
b _081CFAFE
|
|
_081CFACA:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081CFAE0
|
|
str r2, [r4, 0x18]
|
|
ldr r0, =sub_81CFB08
|
|
str r0, [r4]
|
|
movs r0, 0x5
|
|
b _081CFAFE
|
|
.pool
|
|
_081CFAE0:
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081CFAEE
|
|
movs r0, 0
|
|
b _081CFAFE
|
|
_081CFAEE:
|
|
bl GetSelectedMatchCall
|
|
ldr r1, [r4, 0x1C]
|
|
strh r0, [r1, 0x2]
|
|
str r5, [r4, 0x18]
|
|
ldr r0, =sub_81CFB10
|
|
str r0, [r4]
|
|
movs r0, 0x6
|
|
_081CFAFE:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81CFA88
|
|
|
|
thumb_func_start sub_81CFB08
|
|
sub_81CFB08: @ 81CFB08
|
|
ldr r0, =0x000186a5
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_81CFB08
|
|
|
|
thumb_func_start sub_81CFB10
|
|
sub_81CFB10: @ 81CFB10
|
|
ldr r0, =0x000186ad
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_81CFB10
|
|
|
|
thumb_func_start sub_81CFB18
|
|
sub_81CFB18: @ 81CFB18
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0, 0x14]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFB18
|
|
|
|
thumb_func_start sub_81CFB28
|
|
sub_81CFB28: @ 81CFB28
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0, 0x1C]
|
|
adds r0, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFB28
|
|
|
|
thumb_func_start sub_81CFB38
|
|
sub_81CFB38: @ 81CFB38
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0, 0x1C]
|
|
ldrh r0, [r0]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFB38
|
|
|
|
thumb_func_start sub_81CFB48
|
|
sub_81CFB48: @ 81CFB48
|
|
push {r4,lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
adds r4, r0, 0
|
|
bl GetSelectedMatchCall
|
|
ldr r1, [r4, 0x1C]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x6]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFB48
|
|
|
|
thumb_func_start sub_81CFB64
|
|
sub_81CFB64: @ 81CFB64
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0, 0x1C]
|
|
ldrh r0, [r0, 0x2]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFB64
|
|
|
|
thumb_func_start sub_81CFB74
|
|
sub_81CFB74: @ 81CFB74
|
|
push {lr}
|
|
ldr r2, =gUnknown_086235D8
|
|
lsls r1, r0, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81CFB74
|
|
|
|
thumb_func_start sub_81CFB8C
|
|
sub_81CFB8C: @ 81CFB8C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
adds r6, r0, 0
|
|
ldr r0, [r6, 0x1C]
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, [r6, 0x1C]
|
|
strh r1, [r0, 0x2]
|
|
ldr r1, =0xffffff00
|
|
ldr r0, [sp]
|
|
ands r0, r1
|
|
movs r1, 0xE
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
movs r5, 0
|
|
_081CFBB0:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _081CFC10
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _081CFC0A
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _081CFC0A
|
|
adds r0, r4, 0
|
|
movs r1, 0x52
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
beq _081CFC0A
|
|
lsls r1, r5, 24
|
|
lsrs r1, 16
|
|
ldr r2, =0xffff00ff
|
|
ldr r0, [sp]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
lsls r2, r3, 16
|
|
ldr r1, =0x0000ffff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl sub_81CFCEC
|
|
_081CFC0A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _081CFBB0
|
|
_081CFC10:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81CFB8C
|
|
|
|
thumb_func_start sub_81CFC2C
|
|
sub_81CFC2C: @ 81CFC2C
|
|
push {lr}
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
movs r1, 0
|
|
str r1, [r0, 0x10]
|
|
str r1, [r0, 0xC]
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFC2C
|
|
|
|
thumb_func_start sub_81CFC40
|
|
sub_81CFC40: @ 81CFC40
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r0, 0x9
|
|
bl GetSubstructPtr
|
|
mov r8, r0
|
|
ldr r7, [r0, 0xC]
|
|
ldr r6, [r0, 0x10]
|
|
movs r0, 0
|
|
mov r9, r0
|
|
cmp r7, 0xD
|
|
bgt _081CFCD4
|
|
b _081CFCC8
|
|
_081CFC60:
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl CheckBoxMonSanityAt
|
|
cmp r0, 0
|
|
beq _081CFCA6
|
|
lsls r0, r7, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r6, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x52
|
|
bl GetBoxMonDataAt
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
beq _081CFCA6
|
|
ldr r1, =0xffffff00
|
|
ldr r0, [sp]
|
|
ands r0, r1
|
|
orrs r0, r5
|
|
lsls r2, r4, 8
|
|
ldr r1, =0xffff00ff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
lsls r2, r3, 16
|
|
ldr r1, =0x0000ffff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
mov r1, sp
|
|
bl sub_81CFCEC
|
|
_081CFCA6:
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
adds r6, 0x1
|
|
mov r0, r9
|
|
cmp r0, 0xE
|
|
ble _081CFCC8
|
|
mov r1, r8
|
|
str r7, [r1, 0xC]
|
|
str r6, [r1, 0x10]
|
|
movs r0, 0x3
|
|
b _081CFCDC
|
|
.pool
|
|
_081CFCC8:
|
|
cmp r6, 0x1D
|
|
ble _081CFC60
|
|
movs r6, 0
|
|
adds r7, 0x1
|
|
cmp r7, 0xD
|
|
ble _081CFCC8
|
|
_081CFCD4:
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
str r0, [r1, 0x14]
|
|
movs r0, 0x4
|
|
_081CFCDC:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFC40
|
|
|
|
thumb_func_start sub_81CFCEC
|
|
sub_81CFCEC: @ 81CFCEC
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
movs r1, 0
|
|
ldr r0, [r5, 0x1C]
|
|
ldrh r2, [r0]
|
|
lsrs r3, r2, 1
|
|
cmp r2, r3
|
|
beq _081CFD1C
|
|
adds r6, r0, 0
|
|
ldrh r4, [r7, 0x2]
|
|
_081CFD02:
|
|
lsls r0, r3, 2
|
|
adds r0, r6, r0
|
|
ldrh r0, [r0, 0x6]
|
|
cmp r4, r0
|
|
bls _081CFD10
|
|
adds r2, r3, 0
|
|
b _081CFD12
|
|
_081CFD10:
|
|
adds r1, r3, 0x1
|
|
_081CFD12:
|
|
subs r0, r2, r1
|
|
lsrs r0, 1
|
|
adds r3, r1, r0
|
|
cmp r2, r3
|
|
bne _081CFD02
|
|
_081CFD1C:
|
|
ldr r0, [r5, 0x1C]
|
|
ldrh r2, [r0]
|
|
lsls r6, r3, 2
|
|
cmp r2, r3
|
|
bls _081CFD40
|
|
lsls r0, r2, 2
|
|
subs r4, r0, 0x4
|
|
_081CFD2A:
|
|
ldr r0, [r5, 0x1C]
|
|
lsls r1, r2, 2
|
|
adds r0, 0x4
|
|
adds r1, r0, r1
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
subs r4, 0x4
|
|
subs r2, 0x1
|
|
cmp r2, r3
|
|
bhi _081CFD2A
|
|
_081CFD40:
|
|
ldr r0, [r5, 0x1C]
|
|
adds r0, 0x4
|
|
adds r0, r6
|
|
ldr r1, [r7]
|
|
str r1, [r0]
|
|
ldr r1, [r5, 0x1C]
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81CFCEC
|
|
|
|
thumb_func_start sub_81CFD58
|
|
sub_81CFD58: @ 81CFD58
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
_081CFD5C:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _081CFD8A
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _081CFD8A
|
|
adds r0, r4, 0
|
|
movs r1, 0x53
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _081CFDB2
|
|
_081CFD8A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _081CFD5C
|
|
movs r5, 0
|
|
_081CFD92:
|
|
movs r4, 0
|
|
lsls r6, r5, 24
|
|
_081CFD96:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl CheckBoxMonSanityAt
|
|
cmp r0, 0
|
|
beq _081CFDBC
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
lsrs r0, r6, 24
|
|
movs r2, 0x53
|
|
bl GetBoxMonDataAt
|
|
cmp r0, 0
|
|
beq _081CFDBC
|
|
_081CFDB2:
|
|
movs r0, 0x1
|
|
b _081CFDCA
|
|
.pool
|
|
_081CFDBC:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1D
|
|
ble _081CFD96
|
|
adds r5, 0x1
|
|
cmp r5, 0xD
|
|
ble _081CFD92
|
|
movs r0, 0
|
|
_081CFDCA:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFD58
|
|
|
|
thumb_func_start sub_81CFDD0
|
|
sub_81CFDD0: @ 81CFDD0
|
|
push {r4,lr}
|
|
movs r1, 0x81
|
|
lsls r1, 4
|
|
movs r0, 0xA
|
|
bl AllocSubstruct
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _081CFE00
|
|
ldr r0, =sub_81CFEB8
|
|
movs r1, 0x1
|
|
bl CreateLoopedTask
|
|
str r0, [r4, 0x4]
|
|
ldr r0, =sub_81CFE84
|
|
str r0, [r4]
|
|
movs r0, 0
|
|
str r0, [r4, 0xC]
|
|
movs r0, 0x1
|
|
b _081CFE02
|
|
.pool
|
|
_081CFE00:
|
|
movs r0, 0
|
|
_081CFE02:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFDD0
|
|
|
|
thumb_func_start sub_81CFE08
|
|
sub_81CFE08: @ 81CFE08
|
|
push {r4,lr}
|
|
movs r1, 0x81
|
|
lsls r1, 4
|
|
movs r0, 0xA
|
|
bl AllocSubstruct
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _081CFE38
|
|
ldr r0, =sub_81CFEB8
|
|
movs r1, 0x1
|
|
bl CreateLoopedTask
|
|
str r0, [r4, 0x4]
|
|
ldr r0, =sub_81CFE84
|
|
str r0, [r4]
|
|
movs r0, 0x1
|
|
str r0, [r4, 0xC]
|
|
b _081CFE3A
|
|
.pool
|
|
_081CFE38:
|
|
movs r0, 0
|
|
_081CFE3A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFE08
|
|
|
|
thumb_func_start sub_81CFE40
|
|
sub_81CFE40: @ 81CFE40
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_086237B8
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldr r0, [r4]
|
|
movs r1, 0x1
|
|
bl CreateLoopedTask
|
|
str r0, [r5, 0x4]
|
|
ldr r0, =sub_81CFE84
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81CFE40
|
|
|
|
thumb_func_start sub_81CFE70
|
|
sub_81CFE70: @ 81CFE70
|
|
push {lr}
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFE70
|
|
|
|
thumb_func_start sub_81CFE84
|
|
sub_81CFE84: @ 81CFE84
|
|
push {lr}
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
ldr r0, [r0, 0x4]
|
|
bl IsLoopedTaskActive
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFE84
|
|
|
|
thumb_func_start sub_81CFE98
|
|
sub_81CFE98: @ 81CFE98
|
|
push {r4,lr}
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r4, r0, 0
|
|
bl sub_81C8234
|
|
ldrb r0, [r4, 0x8]
|
|
bl RemoveWindow
|
|
movs r0, 0xA
|
|
bl FreePokenavSubstruct
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81CFE98
|
|
|
|
thumb_func_start sub_81CFEB8
|
|
sub_81CFEB8: @ 81CFEB8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r5, r0, 0
|
|
cmp r4, 0x5
|
|
bls _081CFECC
|
|
b _081CFFF2
|
|
_081CFECC:
|
|
lsls r0, r4, 2
|
|
ldr r1, =_081CFEDC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081CFEDC:
|
|
.4byte _081CFEF4
|
|
.4byte _081CFF48
|
|
.4byte _081CFF76
|
|
.4byte _081CFF94
|
|
.4byte _081CFFA4
|
|
.4byte _081CFFDE
|
|
_081CFEF4:
|
|
ldr r0, =gUnknown_086237B0
|
|
movs r1, 0x2
|
|
bl InitBgTemplates
|
|
ldr r1, =gUnknown_08623604
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, =gUnknown_086236CC
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r0, =gUnknown_086235E4
|
|
movs r1, 0x10
|
|
movs r2, 0x20
|
|
bl CopyPaletteIntoBufferUnfaded
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
_081CFF32:
|
|
movs r0, 0
|
|
b _081CFFF4
|
|
.pool
|
|
_081CFF48:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081CFFEE
|
|
bl sub_81CFB18
|
|
cmp r0, 0
|
|
beq _081CFFEE
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
b _081CFF32
|
|
_081CFF76:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081CFFEE
|
|
ldr r0, =gUnknown_08623790
|
|
movs r1, 0x20
|
|
movs r2, 0x20
|
|
bl CopyPaletteIntoBufferUnfaded
|
|
bl sub_81D0304
|
|
b _081CFF32
|
|
.pool
|
|
_081CFF94:
|
|
bl sub_81C8224
|
|
cmp r0, 0
|
|
bne _081CFFEE
|
|
adds r0, r5, 0
|
|
bl sub_81D024C
|
|
b _081CFF32
|
|
_081CFFA4:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _081CFFEE
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
movs r0, 0x9
|
|
bl sub_81C7BA4
|
|
movs r0, 0x1
|
|
bl sub_81C7AC0
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, 0
|
|
bne _081CFF32
|
|
movs r0, 0x2
|
|
bl LoadLeftHeaderGfxForIndex
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl sub_81C7FA0
|
|
b _081CFF32
|
|
_081CFFDE:
|
|
bl IsPaletteFadeActive
|
|
cmp r0, 0
|
|
bne _081CFFEE
|
|
bl sub_81C8010
|
|
cmp r0, 0
|
|
beq _081CFFF2
|
|
_081CFFEE:
|
|
movs r0, 0x2
|
|
b _081CFFF4
|
|
_081CFFF2:
|
|
movs r0, 0x4
|
|
_081CFFF4:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFEB8
|
|
|
|
thumb_func_start sub_81CFFFC
|
|
sub_81CFFFC: @ 81CFFFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r5, r0, 0
|
|
cmp r4, 0x1
|
|
beq _081D004A
|
|
cmp r4, 0x1
|
|
bgt _081D0016
|
|
cmp r4, 0
|
|
beq _081D0020
|
|
b _081D006A
|
|
_081D0016:
|
|
cmp r4, 0x2
|
|
beq _081D0052
|
|
cmp r4, 0x3
|
|
beq _081D005C
|
|
b _081D006A
|
|
_081D0020:
|
|
bl MatchCall_MoveCursorUp
|
|
cmp r0, 0x1
|
|
beq _081D0038
|
|
cmp r0, 0x1
|
|
bgt _081D0032
|
|
cmp r0, 0
|
|
beq _081D006A
|
|
b _081D0058
|
|
_081D0032:
|
|
cmp r0, 0x2
|
|
beq _081D0042
|
|
b _081D0058
|
|
_081D0038:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x7
|
|
b _081D006C
|
|
_081D0042:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
b _081D0058
|
|
_081D004A:
|
|
bl sub_81C8630
|
|
cmp r0, 0
|
|
bne _081D0066
|
|
_081D0052:
|
|
adds r0, r5, 0
|
|
bl sub_81D0288
|
|
_081D0058:
|
|
movs r0, 0
|
|
b _081D006C
|
|
_081D005C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081D006A
|
|
_081D0066:
|
|
movs r0, 0x2
|
|
b _081D006C
|
|
_081D006A:
|
|
movs r0, 0x4
|
|
_081D006C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81CFFFC
|
|
|
|
thumb_func_start sub_81D0074
|
|
sub_81D0074: @ 81D0074
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r5, r0, 0
|
|
cmp r4, 0x1
|
|
beq _081D00C2
|
|
cmp r4, 0x1
|
|
bgt _081D008E
|
|
cmp r4, 0
|
|
beq _081D0098
|
|
b _081D00E2
|
|
_081D008E:
|
|
cmp r4, 0x2
|
|
beq _081D00CA
|
|
cmp r4, 0x3
|
|
beq _081D00D4
|
|
b _081D00E2
|
|
_081D0098:
|
|
bl MatchCall_MoveCursorDown
|
|
cmp r0, 0x1
|
|
beq _081D00B0
|
|
cmp r0, 0x1
|
|
bgt _081D00AA
|
|
cmp r0, 0
|
|
beq _081D00E2
|
|
b _081D00D0
|
|
_081D00AA:
|
|
cmp r0, 0x2
|
|
beq _081D00BA
|
|
b _081D00D0
|
|
_081D00B0:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x7
|
|
b _081D00E4
|
|
_081D00BA:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
b _081D00D0
|
|
_081D00C2:
|
|
bl sub_81C8630
|
|
cmp r0, 0
|
|
bne _081D00DE
|
|
_081D00CA:
|
|
adds r0, r5, 0
|
|
bl sub_81D0288
|
|
_081D00D0:
|
|
movs r0, 0
|
|
b _081D00E4
|
|
_081D00D4:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081D00E2
|
|
_081D00DE:
|
|
movs r0, 0x2
|
|
b _081D00E4
|
|
_081D00E2:
|
|
movs r0, 0x4
|
|
_081D00E4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81D0074
|
|
|
|
thumb_func_start sub_81D00EC
|
|
sub_81D00EC: @ 81D00EC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r5, r0, 0
|
|
cmp r4, 0x1
|
|
beq _081D013A
|
|
cmp r4, 0x1
|
|
bgt _081D0106
|
|
cmp r4, 0
|
|
beq _081D0110
|
|
b _081D015A
|
|
_081D0106:
|
|
cmp r4, 0x2
|
|
beq _081D0142
|
|
cmp r4, 0x3
|
|
beq _081D014C
|
|
b _081D015A
|
|
_081D0110:
|
|
bl MatchCall_PageUp
|
|
cmp r0, 0x1
|
|
beq _081D0128
|
|
cmp r0, 0x1
|
|
bgt _081D0122
|
|
cmp r0, 0
|
|
beq _081D015A
|
|
b _081D0148
|
|
_081D0122:
|
|
cmp r0, 0x2
|
|
beq _081D0132
|
|
b _081D0148
|
|
_081D0128:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x7
|
|
b _081D015C
|
|
_081D0132:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
b _081D0148
|
|
_081D013A:
|
|
bl sub_81C8630
|
|
cmp r0, 0
|
|
bne _081D0156
|
|
_081D0142:
|
|
adds r0, r5, 0
|
|
bl sub_81D0288
|
|
_081D0148:
|
|
movs r0, 0
|
|
b _081D015C
|
|
_081D014C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081D015A
|
|
_081D0156:
|
|
movs r0, 0x2
|
|
b _081D015C
|
|
_081D015A:
|
|
movs r0, 0x4
|
|
_081D015C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81D00EC
|
|
|
|
thumb_func_start sub_81D0164
|
|
sub_81D0164: @ 81D0164
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0xA
|
|
bl GetSubstructPtr
|
|
adds r5, r0, 0
|
|
cmp r4, 0x1
|
|
beq _081D01B2
|
|
cmp r4, 0x1
|
|
bgt _081D017E
|
|
cmp r4, 0
|
|
beq _081D0188
|
|
b _081D01D2
|
|
_081D017E:
|
|
cmp r4, 0x2
|
|
beq _081D01BA
|
|
cmp r4, 0x3
|
|
beq _081D01C4
|
|
b _081D01D2
|
|
_081D0188:
|
|
bl MatchCall_PageDown
|
|
cmp r0, 0x1
|
|
beq _081D01A0
|
|
cmp r0, 0x1
|
|
bgt _081D019A
|
|
cmp r0, 0
|
|
beq _081D01D2
|
|
b _081D01C0
|
|
_081D019A:
|
|
cmp r0, 0x2
|
|
beq _081D01AA
|
|
b _081D01C0
|
|
_081D01A0:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x7
|
|
b _081D01D4
|
|
_081D01AA:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
b _081D01C0
|
|
_081D01B2:
|
|
bl sub_81C8630
|
|
cmp r0, 0
|
|
bne _081D01CE
|
|
_081D01BA:
|
|
adds r0, r5, 0
|
|
bl sub_81D0288
|
|
_081D01C0:
|
|
movs r0, 0
|
|
b _081D01D4
|
|
_081D01C4:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081D01D2
|
|
_081D01CE:
|
|
movs r0, 0x2
|
|
b _081D01D4
|
|
_081D01D2:
|
|
movs r0, 0x4
|
|
_081D01D4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81D0164
|
|
|
|
thumb_func_start sub_81D01DC
|
|
sub_81D01DC: @ 81D01DC
|
|
push {lr}
|
|
cmp r0, 0
|
|
beq _081D01E8
|
|
cmp r0, 0x1
|
|
beq _081D01FC
|
|
b _081D0214
|
|
_081D01E8:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0
|
|
bl sub_81C7AC0
|
|
bl sub_81C78A0
|
|
movs r0, 0
|
|
b _081D0216
|
|
_081D01FC:
|
|
bl IsPaletteFadeActive
|
|
cmp r0, 0
|
|
bne _081D020C
|
|
bl MainMenuLoopedTaskIsBusy
|
|
cmp r0, 0
|
|
beq _081D0210
|
|
_081D020C:
|
|
movs r0, 0x2
|
|
b _081D0216
|
|
_081D0210:
|
|
bl sub_81C7FDC
|
|
_081D0214:
|
|
movs r0, 0x4
|
|
_081D0216:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81D01DC
|
|
|
|
thumb_func_start sub_81D021C
|
|
sub_81D021C: @ 81D021C
|
|
push {lr}
|
|
cmp r0, 0
|
|
beq _081D0228
|
|
cmp r0, 0x1
|
|
beq _081D0238
|
|
b _081D0244
|
|
_081D0228:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0
|
|
bl sub_81C7AC0
|
|
movs r0, 0
|
|
b _081D0246
|
|
_081D0238:
|
|
bl IsPaletteFadeActive
|
|
cmp r0, 0
|
|
beq _081D0244
|
|
movs r0, 0x2
|
|
b _081D0246
|
|
_081D0244:
|
|
movs r0, 0x4
|
|
_081D0246:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81D021C
|
|
|
|
thumb_func_start sub_81D024C
|
|
sub_81D024C: @ 81D024C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_086237D4
|
|
bl AddWindow
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl PutWindowTilemap
|
|
bl sub_81CFB38
|
|
adds r2, r0, 0
|
|
ldrh r0, [r4, 0x8]
|
|
movs r1, 0
|
|
bl sub_81D02B0
|
|
ldrb r0, [r4, 0x8]
|
|
movs r1, 0x1
|
|
bl CopyWindowToVram
|
|
adds r0, r4, 0
|
|
bl sub_81D0288
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81D024C
|
|
|
|
thumb_func_start sub_81D0288
|
|
sub_81D0288: @ 81D0288
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl GetSelectedMatchCall
|
|
adds r4, r0, 0
|
|
bl sub_81CFB38
|
|
adds r2, r0, 0
|
|
ldrh r0, [r5, 0x8]
|
|
adds r4, 0x1
|
|
adds r1, r4, 0
|
|
bl sub_81D02B0
|
|
ldrb r0, [r5, 0x8]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81D0288
|
|
|
|
thumb_func_start sub_81D02B0
|
|
sub_81D02B0: @ 81D02B0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x1C
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
add r0, sp, 0xC
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
movs r1, 0xBA
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0x1
|
|
add r1, sp, 0xC
|
|
movs r2, 0x38
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
add r2, sp, 0xC
|
|
bl AddTextPrinterParameterized
|
|
add sp, 0x1C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81D02B0
|
|
|
|
thumb_func_start sub_81D0304
|
|
sub_81D0304: @ 81D0304
|
|
push {r4,lr}
|
|
sub sp, 0x18
|
|
bl sub_81CFB28
|
|
str r0, [sp]
|
|
bl sub_81CFB38
|
|
mov r1, sp
|
|
movs r4, 0
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x8]
|
|
bl sub_81CFB64
|
|
mov r1, sp
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0xD
|
|
strb r0, [r1, 0x9]
|
|
movs r0, 0x11
|
|
strb r0, [r1, 0xA]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
strb r2, [r0, 0xB]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0xC]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0xD]
|
|
mov r0, sp
|
|
strb r2, [r0, 0xE]
|
|
ldr r0, =sub_81D035C
|
|
str r0, [sp, 0x10]
|
|
str r4, [sp, 0x14]
|
|
ldr r0, =gUnknown_086237B4
|
|
movs r2, 0
|
|
bl sub_81C81D4
|
|
add sp, 0x18
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81D0304
|
|
|
|
thumb_func_start sub_81D035C
|
|
sub_81D035C: @ 81D035C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r1, 0
|
|
adds r7, r0, 0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0xE
|
|
bne _081D03A4
|
|
ldrb r1, [r7, 0x1]
|
|
movs r0, 0x64
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl GetMonGender
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
bl GetLevelFromMonExp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r2, =gStringVar3
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl GetMonData
|
|
b _081D03CC
|
|
.pool
|
|
_081D03A4:
|
|
ldrb r0, [r7]
|
|
ldrb r1, [r7, 0x1]
|
|
bl GetBoxedMonPtr
|
|
adds r4, r0, 0
|
|
bl GetBoxMonGender
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
bl GetLevelFromBoxMonExp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r2, =gStringVar3
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl GetBoxMonData
|
|
_081D03CC:
|
|
ldr r4, =gStringVar3
|
|
adds r0, r4, 0
|
|
bl StringGetEnd10
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
movs r3, 0x3C
|
|
bl sub_81DB494
|
|
adds r6, r0, 0
|
|
cmp r5, 0
|
|
beq _081D03F8
|
|
cmp r5, 0xFE
|
|
beq _081D0400
|
|
ldr r1, =gUnknown_086237F4
|
|
b _081D0402
|
|
.pool
|
|
_081D03F8:
|
|
ldr r1, =gUnknown_086237DC
|
|
b _081D0402
|
|
.pool
|
|
_081D0400:
|
|
ldr r1, =gUnknown_086237E8
|
|
_081D0402:
|
|
ldr r4, =gStringVar1
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
movs r1, 0xBA
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
movs r1, 0xF9
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
movs r3, 0x36
|
|
bl sub_81DB494
|
|
adds r6, r0, 0
|
|
ldrh r1, [r7, 0x2]
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl ConvertIntToDecimalStringN
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81D035C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|