mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 20:24:18 +01:00
1753 lines
26 KiB
ArmAsm
1753 lines
26 KiB
ArmAsm
|
.include "asm/macros.inc"
|
||
|
.include "constants/constants.inc"
|
||
|
|
||
|
.syntax unified
|
||
|
|
||
|
@ File centered around AllocSubstruct(0xB)
|
||
|
|
||
|
thumb_func_start sub_81CCFD8
|
||
|
sub_81CCFD8: @ 81CCFD8
|
||
|
push {r4,lr}
|
||
|
ldr r1, =0x0000678c
|
||
|
movs r0, 0xB
|
||
|
bl AllocSubstruct
|
||
|
adds r4, r0, 0
|
||
|
cmp r4, 0
|
||
|
beq _081CD01C
|
||
|
ldr r1, =0x00006428
|
||
|
adds r0, r4, r1
|
||
|
bl sub_81D1ED4
|
||
|
bl sub_81CD970
|
||
|
ldr r1, =gKeyRepeatStartDelay
|
||
|
movs r0, 0x14
|
||
|
strh r0, [r1]
|
||
|
ldr r0, =0x00006304
|
||
|
adds r1, r4, r0
|
||
|
ldr r0, =sub_81CD08C
|
||
|
str r0, [r1]
|
||
|
movs r0, 0x1
|
||
|
b _081CD01E
|
||
|
.pool
|
||
|
_081CD01C:
|
||
|
movs r0, 0
|
||
|
_081CD01E:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CCFD8
|
||
|
|
||
|
thumb_func_start sub_81CD024
|
||
|
sub_81CD024: @ 81CD024
|
||
|
push {r4,lr}
|
||
|
ldr r1, =0x0000678c
|
||
|
movs r0, 0xB
|
||
|
bl AllocSubstruct
|
||
|
adds r4, r0, 0
|
||
|
cmp r4, 0
|
||
|
beq _081CD068
|
||
|
ldr r1, =0x00006428
|
||
|
adds r0, r4, r1
|
||
|
bl sub_81D1ED4
|
||
|
bl sub_81CD9F8
|
||
|
ldr r1, =gKeyRepeatStartDelay
|
||
|
movs r0, 0x14
|
||
|
strh r0, [r1]
|
||
|
ldr r0, =0x00006304
|
||
|
adds r1, r4, r0
|
||
|
ldr r0, =sub_81CD08C
|
||
|
str r0, [r1]
|
||
|
movs r0, 0x1
|
||
|
b _081CD06A
|
||
|
.pool
|
||
|
_081CD068:
|
||
|
movs r0, 0
|
||
|
_081CD06A:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CD024
|
||
|
|
||
|
thumb_func_start sub_81CD070
|
||
|
sub_81CD070: @ 81CD070
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
ldr r2, =0x00006304
|
||
|
adds r1, r0, r2
|
||
|
ldr r1, [r1]
|
||
|
bl _call_via_r1
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD070
|
||
|
|
||
|
thumb_func_start sub_81CD08C
|
||
|
sub_81CD08C: @ 81CD08C
|
||
|
push {r4,r5,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81CD1E4
|
||
|
lsls r0, 24
|
||
|
lsrs r2, r0, 24
|
||
|
cmp r2, 0
|
||
|
bne _081CD100
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x2E]
|
||
|
movs r0, 0x2
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
bne _081CD0D0
|
||
|
movs r0, 0x1
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081CD100
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r4, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0
|
||
|
bne _081CD0F0
|
||
|
ldrh r1, [r5, 0x2]
|
||
|
ldrh r0, [r5]
|
||
|
subs r0, 0x1
|
||
|
cmp r1, r0
|
||
|
bne _081CD100
|
||
|
_081CD0D0:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
ldr r0, =0x00006304
|
||
|
adds r1, r4, r0
|
||
|
ldr r0, =sub_81CD19C
|
||
|
str r0, [r1]
|
||
|
movs r2, 0x2
|
||
|
b _081CD100
|
||
|
.pool
|
||
|
_081CD0F0:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
movs r2, 0x5
|
||
|
ldr r0, =0x00006304
|
||
|
adds r1, r4, r0
|
||
|
ldr r0, =sub_81CD110
|
||
|
str r0, [r1]
|
||
|
_081CD100:
|
||
|
adds r0, r2, 0
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD08C
|
||
|
|
||
|
thumb_func_start sub_81CD110
|
||
|
sub_81CD110: @ 81CD110
|
||
|
push {r4-r6,lr}
|
||
|
sub sp, 0x4
|
||
|
adds r6, r0, 0
|
||
|
movs r4, 0
|
||
|
bl sub_811FBA4
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081CD18A
|
||
|
bl sub_81CEF14
|
||
|
ldr r1, =0x00006786
|
||
|
adds r5, r6, r1
|
||
|
movs r1, 0
|
||
|
ldrsb r1, [r5, r1]
|
||
|
ldr r2, =0x00006783
|
||
|
adds r4, r6, r2
|
||
|
adds r1, r4, r1
|
||
|
strb r0, [r1]
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r1, [r0, 0x2]
|
||
|
lsls r1, 2
|
||
|
adds r0, r1
|
||
|
ldrb r2, [r0, 0x4]
|
||
|
ldrb r3, [r0, 0x5]
|
||
|
movs r0, 0
|
||
|
ldrsb r0, [r5, r0]
|
||
|
adds r4, r0
|
||
|
ldrb r1, [r4]
|
||
|
mov r0, sp
|
||
|
strb r1, [r0]
|
||
|
cmp r2, 0xE
|
||
|
bne _081CD174
|
||
|
movs r0, 0x64
|
||
|
muls r0, r3
|
||
|
ldr r1, =gPlayerParty
|
||
|
adds r0, r1
|
||
|
movs r1, 0x8
|
||
|
mov r2, sp
|
||
|
bl SetMonData
|
||
|
b _081CD180
|
||
|
.pool
|
||
|
_081CD174:
|
||
|
adds r0, r2, 0
|
||
|
adds r1, r3, 0
|
||
|
movs r2, 0x8
|
||
|
mov r3, sp
|
||
|
bl SetBoxMonDataAt
|
||
|
_081CD180:
|
||
|
ldr r0, =0x00006304
|
||
|
adds r1, r6, r0
|
||
|
ldr r0, =sub_81CD08C
|
||
|
str r0, [r1]
|
||
|
movs r4, 0x6
|
||
|
_081CD18A:
|
||
|
adds r0, r4, 0
|
||
|
add sp, 0x4
|
||
|
pop {r4-r6}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD110
|
||
|
|
||
|
thumb_func_start sub_81CD19C
|
||
|
sub_81CD19C: @ 81CD19C
|
||
|
push {lr}
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0
|
||
|
beq _081CD1B4
|
||
|
ldr r0, =0x000186aa
|
||
|
b _081CD1B6
|
||
|
.pool
|
||
|
_081CD1B4:
|
||
|
ldr r0, =0x000186a2
|
||
|
_081CD1B6:
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD19C
|
||
|
|
||
|
thumb_func_start sub_81CD1C0
|
||
|
sub_81CD1C0: @ 81CD1C0
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0
|
||
|
bne _081CD1DA
|
||
|
movs r0, 0x12
|
||
|
bl FreePokenavSubstruct
|
||
|
_081CD1DA:
|
||
|
movs r0, 0xB
|
||
|
bl FreePokenavSubstruct
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81CD1C0
|
||
|
|
||
|
thumb_func_start sub_81CD1E4
|
||
|
sub_81CD1E4: @ 81CD1E4
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r2, r0, 0
|
||
|
movs r3, 0
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x2C]
|
||
|
movs r0, 0x40
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081CD220
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r4, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0
|
||
|
beq _081CD210
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
cmp r0, 0
|
||
|
beq _081CD24E
|
||
|
_081CD210:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
movs r0, 0x1
|
||
|
b _081CD246
|
||
|
.pool
|
||
|
_081CD220:
|
||
|
movs r0, 0x80
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081CD24E
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r4, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0
|
||
|
beq _081CD23E
|
||
|
ldrh r1, [r2, 0x2]
|
||
|
ldrh r0, [r2]
|
||
|
subs r0, 0x1
|
||
|
cmp r1, r0
|
||
|
bge _081CD24E
|
||
|
_081CD23E:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
movs r0, 0
|
||
|
_081CD246:
|
||
|
bl sub_81CD258
|
||
|
lsls r0, 24
|
||
|
lsrs r3, r0, 24
|
||
|
_081CD24E:
|
||
|
adds r0, r3, 0
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CD1E4
|
||
|
|
||
|
thumb_func_start sub_81CD258
|
||
|
sub_81CD258: @ 81CD258
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r8
|
||
|
push {r7}
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
mov r8, r0
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
mov r0, r8
|
||
|
cmp r0, 0
|
||
|
beq _081CD284
|
||
|
ldr r1, =0x00006788
|
||
|
adds r0, r4, r1
|
||
|
b _081CD288
|
||
|
.pool
|
||
|
_081CD284:
|
||
|
ldr r2, =0x00006787
|
||
|
adds r0, r4, r2
|
||
|
_081CD288:
|
||
|
ldrb r0, [r0]
|
||
|
lsls r0, 24
|
||
|
asrs r0, 24
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
adds r7, r0, 0
|
||
|
ldr r1, =0x00006428
|
||
|
adds r0, r4, r1
|
||
|
ldr r2, =0x00006786
|
||
|
adds r1, r4, r2
|
||
|
movs r2, 0
|
||
|
ldrsb r2, [r1, r2]
|
||
|
lsls r1, r2, 2
|
||
|
adds r1, r2
|
||
|
lsls r1, 2
|
||
|
ldr r3, =0x0000643c
|
||
|
adds r1, r3
|
||
|
adds r1, r4, r1
|
||
|
lsls r2, r7, 2
|
||
|
adds r2, r7
|
||
|
lsls r2, 2
|
||
|
adds r2, r3
|
||
|
adds r2, r4, r2
|
||
|
bl sub_81D1F84
|
||
|
ldrh r6, [r5, 0x2]
|
||
|
bl sub_81CDD5C
|
||
|
cmp r0, 0
|
||
|
beq _081CD2D8
|
||
|
ldrh r1, [r5]
|
||
|
b _081CD2DC
|
||
|
.pool
|
||
|
_081CD2D8:
|
||
|
ldrh r1, [r5]
|
||
|
subs r1, 0x1
|
||
|
_081CD2DC:
|
||
|
eors r1, r6
|
||
|
negs r0, r1
|
||
|
orrs r0, r1
|
||
|
lsrs r0, 31
|
||
|
adds r6, r0, 0
|
||
|
mov r0, r8
|
||
|
cmp r0, 0
|
||
|
beq _081CD332
|
||
|
ldr r1, =0x00006787
|
||
|
adds r2, r4, r1
|
||
|
ldrb r0, [r2]
|
||
|
adds r1, 0x1
|
||
|
adds r3, r4, r1
|
||
|
strb r0, [r3]
|
||
|
ldr r0, =0x00006786
|
||
|
adds r1, r4, r0
|
||
|
ldrb r0, [r1]
|
||
|
strb r0, [r2]
|
||
|
strb r7, [r1]
|
||
|
ldrb r1, [r3]
|
||
|
ldr r2, =0x00006789
|
||
|
adds r0, r4, r2
|
||
|
strb r1, [r0]
|
||
|
ldrh r0, [r5, 0x2]
|
||
|
cmp r0, 0
|
||
|
bne _081CD312
|
||
|
ldrh r0, [r5]
|
||
|
_081CD312:
|
||
|
subs r1, r0, 0x1
|
||
|
strh r1, [r5, 0x2]
|
||
|
lsls r0, r1, 16
|
||
|
cmp r0, 0
|
||
|
beq _081CD32C
|
||
|
subs r1, 0x1
|
||
|
b _081CD384
|
||
|
.pool
|
||
|
_081CD32C:
|
||
|
ldrh r0, [r5]
|
||
|
subs r1, r0, 0x1
|
||
|
b _081CD384
|
||
|
_081CD332:
|
||
|
ldr r0, =0x00006788
|
||
|
adds r2, r4, r0
|
||
|
ldrb r0, [r2]
|
||
|
ldr r1, =0x00006787
|
||
|
adds r3, r4, r1
|
||
|
strb r0, [r3]
|
||
|
ldr r0, =0x00006786
|
||
|
adds r1, r4, r0
|
||
|
ldrb r0, [r1]
|
||
|
strb r0, [r2]
|
||
|
strb r7, [r1]
|
||
|
ldrb r1, [r3]
|
||
|
ldr r2, =0x00006789
|
||
|
adds r0, r4, r2
|
||
|
strb r1, [r0]
|
||
|
ldrh r1, [r5, 0x2]
|
||
|
ldrh r0, [r5]
|
||
|
subs r0, 0x1
|
||
|
cmp r1, r0
|
||
|
bge _081CD370
|
||
|
adds r0, r1, 0x1
|
||
|
b _081CD372
|
||
|
.pool
|
||
|
_081CD370:
|
||
|
movs r0, 0
|
||
|
_081CD372:
|
||
|
strh r0, [r5, 0x2]
|
||
|
ldrh r1, [r5, 0x2]
|
||
|
ldrh r0, [r5]
|
||
|
subs r0, 0x1
|
||
|
cmp r1, r0
|
||
|
bge _081CD382
|
||
|
adds r1, 0x1
|
||
|
b _081CD384
|
||
|
_081CD382:
|
||
|
movs r1, 0
|
||
|
_081CD384:
|
||
|
ldr r2, =0x00006302
|
||
|
adds r0, r4, r2
|
||
|
strh r1, [r0]
|
||
|
ldrh r4, [r5, 0x2]
|
||
|
bl sub_81CDD5C
|
||
|
cmp r0, 0
|
||
|
beq _081CD39C
|
||
|
ldrh r1, [r5]
|
||
|
b _081CD3A0
|
||
|
.pool
|
||
|
_081CD39C:
|
||
|
ldrh r1, [r5]
|
||
|
subs r1, 0x1
|
||
|
_081CD3A0:
|
||
|
eors r1, r4
|
||
|
negs r0, r1
|
||
|
orrs r0, r1
|
||
|
lsrs r0, 31
|
||
|
cmp r6, 0
|
||
|
bne _081CD3B0
|
||
|
movs r0, 0x3
|
||
|
b _081CD3BA
|
||
|
_081CD3B0:
|
||
|
cmp r0, 0
|
||
|
beq _081CD3B8
|
||
|
movs r0, 0x1
|
||
|
b _081CD3BA
|
||
|
_081CD3B8:
|
||
|
movs r0, 0x4
|
||
|
_081CD3BA:
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r7}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CD258
|
||
|
|
||
|
thumb_func_start sub_81CD3C4
|
||
|
sub_81CD3C4: @ 81CD3C4
|
||
|
push {r4,lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r2, r0, 0
|
||
|
ldr r1, =0x0000678a
|
||
|
adds r0, r4, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0x9
|
||
|
bls _081CD3E2
|
||
|
b _081CD530
|
||
|
_081CD3E2:
|
||
|
lsls r0, 2
|
||
|
ldr r1, =_081CD3F4
|
||
|
adds r0, r1
|
||
|
ldr r0, [r0]
|
||
|
mov pc, r0
|
||
|
.pool
|
||
|
.align 2, 0
|
||
|
_081CD3F4:
|
||
|
.4byte _081CD41C
|
||
|
.4byte _081CD428
|
||
|
.4byte _081CD434
|
||
|
.4byte _081CD440
|
||
|
.4byte _081CD490
|
||
|
.4byte _081CD4A8
|
||
|
.4byte _081CD4C0
|
||
|
.4byte _081CD4D8
|
||
|
.4byte _081CD4F0
|
||
|
.4byte _081CD508
|
||
|
_081CD41C:
|
||
|
movs r1, 0x2
|
||
|
ldrsh r0, [r2, r1]
|
||
|
movs r1, 0
|
||
|
bl sub_81CD824
|
||
|
b _081CD530
|
||
|
_081CD428:
|
||
|
movs r1, 0x2
|
||
|
ldrsh r0, [r2, r1]
|
||
|
movs r1, 0
|
||
|
bl sub_81CDA1C
|
||
|
b _081CD530
|
||
|
_081CD434:
|
||
|
movs r1, 0x2
|
||
|
ldrsh r0, [r2, r1]
|
||
|
movs r1, 0
|
||
|
bl sub_81CDB98
|
||
|
b _081CD530
|
||
|
_081CD440:
|
||
|
ldrh r0, [r2]
|
||
|
cmp r0, 0x1
|
||
|
bne _081CD468
|
||
|
ldr r2, =0x00006786
|
||
|
adds r0, r4, r2
|
||
|
movs r1, 0
|
||
|
strb r1, [r0]
|
||
|
adds r2, 0x1
|
||
|
adds r0, r4, r2
|
||
|
strb r1, [r0]
|
||
|
adds r2, 0x1
|
||
|
adds r0, r4, r2
|
||
|
strb r1, [r0]
|
||
|
adds r2, 0x2
|
||
|
adds r0, r4, r2
|
||
|
strb r1, [r0]
|
||
|
movs r0, 0x1
|
||
|
b _081CD53C
|
||
|
.pool
|
||
|
_081CD468:
|
||
|
ldr r0, =0x00006786
|
||
|
adds r1, r4, r0
|
||
|
movs r0, 0
|
||
|
strb r0, [r1]
|
||
|
ldr r2, =0x00006787
|
||
|
adds r1, r4, r2
|
||
|
movs r0, 0x1
|
||
|
strb r0, [r1]
|
||
|
ldr r0, =0x00006788
|
||
|
adds r1, r4, r0
|
||
|
movs r0, 0x2
|
||
|
strb r0, [r1]
|
||
|
b _081CD530
|
||
|
.pool
|
||
|
_081CD490:
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
adds r0, 0x1
|
||
|
ldrh r2, [r2]
|
||
|
cmp r0, r2
|
||
|
blt _081CD49C
|
||
|
movs r0, 0
|
||
|
_081CD49C:
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
movs r1, 0x1
|
||
|
bl sub_81CD824
|
||
|
b _081CD530
|
||
|
_081CD4A8:
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
adds r0, 0x1
|
||
|
ldrh r2, [r2]
|
||
|
cmp r0, r2
|
||
|
blt _081CD4B4
|
||
|
movs r0, 0
|
||
|
_081CD4B4:
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
movs r1, 0x1
|
||
|
bl sub_81CDA1C
|
||
|
b _081CD530
|
||
|
_081CD4C0:
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
adds r0, 0x1
|
||
|
ldrh r2, [r2]
|
||
|
cmp r0, r2
|
||
|
blt _081CD4CC
|
||
|
movs r0, 0
|
||
|
_081CD4CC:
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
movs r1, 0x1
|
||
|
bl sub_81CDB98
|
||
|
b _081CD530
|
||
|
_081CD4D8:
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
subs r0, 0x1
|
||
|
cmp r0, 0
|
||
|
bge _081CD4E4
|
||
|
ldrh r0, [r2]
|
||
|
subs r0, 0x1
|
||
|
_081CD4E4:
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
movs r1, 0x2
|
||
|
bl sub_81CD824
|
||
|
b _081CD530
|
||
|
_081CD4F0:
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
subs r0, 0x1
|
||
|
cmp r0, 0
|
||
|
bge _081CD4FC
|
||
|
ldrh r0, [r2]
|
||
|
subs r0, 0x1
|
||
|
_081CD4FC:
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
movs r1, 0x2
|
||
|
bl sub_81CDA1C
|
||
|
b _081CD530
|
||
|
_081CD508:
|
||
|
ldrh r0, [r2, 0x2]
|
||
|
subs r0, 0x1
|
||
|
cmp r0, 0
|
||
|
bge _081CD514
|
||
|
ldrh r0, [r2]
|
||
|
subs r0, 0x1
|
||
|
_081CD514:
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
movs r1, 0x2
|
||
|
bl sub_81CDB98
|
||
|
ldr r2, =0x0000678a
|
||
|
adds r1, r4, r2
|
||
|
movs r0, 0
|
||
|
strb r0, [r1]
|
||
|
movs r0, 0x1
|
||
|
b _081CD53C
|
||
|
.pool
|
||
|
_081CD530:
|
||
|
ldr r0, =0x0000678a
|
||
|
adds r1, r4, r0
|
||
|
ldrb r0, [r1]
|
||
|
adds r0, 0x1
|
||
|
strb r0, [r1]
|
||
|
movs r0, 0
|
||
|
_081CD53C:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD3C4
|
||
|
|
||
|
thumb_func_start sub_81CD548
|
||
|
sub_81CD548: @ 81CD548
|
||
|
push {r4,r5,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
adds r5, r4, 0
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r1, r0, 0
|
||
|
cmp r4, 0x1
|
||
|
beq _081CD588
|
||
|
cmp r4, 0x1
|
||
|
bgt _081CD566
|
||
|
cmp r4, 0
|
||
|
beq _081CD56C
|
||
|
b _081CD5C4
|
||
|
_081CD566:
|
||
|
cmp r5, 0x2
|
||
|
beq _081CD5A4
|
||
|
b _081CD5C4
|
||
|
_081CD56C:
|
||
|
ldr r2, =0x00006302
|
||
|
adds r0, r1, r2
|
||
|
movs r2, 0
|
||
|
ldrsh r0, [r0, r2]
|
||
|
ldr r2, =0x00006789
|
||
|
adds r1, r2
|
||
|
ldrb r1, [r1]
|
||
|
bl sub_81CD824
|
||
|
b _081CD5C4
|
||
|
.pool
|
||
|
_081CD588:
|
||
|
ldr r2, =0x00006302
|
||
|
adds r0, r1, r2
|
||
|
movs r2, 0
|
||
|
ldrsh r0, [r0, r2]
|
||
|
ldr r2, =0x00006789
|
||
|
adds r1, r2
|
||
|
ldrb r1, [r1]
|
||
|
bl sub_81CDA1C
|
||
|
b _081CD5C4
|
||
|
.pool
|
||
|
_081CD5A4:
|
||
|
ldr r2, =0x00006302
|
||
|
adds r0, r1, r2
|
||
|
movs r2, 0
|
||
|
ldrsh r0, [r0, r2]
|
||
|
ldr r2, =0x00006789
|
||
|
adds r1, r2
|
||
|
ldrb r1, [r1]
|
||
|
bl sub_81CDB98
|
||
|
movs r0, 0x1
|
||
|
b _081CD5C6
|
||
|
.pool
|
||
|
_081CD5C4:
|
||
|
movs r0, 0
|
||
|
_081CD5C6:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CD548
|
||
|
|
||
|
thumb_func_start sub_81CD5CC
|
||
|
sub_81CD5CC: @ 81CD5CC
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r2, 16
|
||
|
lsrs r2, 16
|
||
|
b _081CD5E4
|
||
|
_081CD5D6:
|
||
|
strb r3, [r4]
|
||
|
adds r1, 0x1
|
||
|
adds r4, 0x1
|
||
|
lsls r0, r2, 16
|
||
|
ldr r2, =0xffff0000
|
||
|
adds r0, r2
|
||
|
lsrs r2, r0, 16
|
||
|
_081CD5E4:
|
||
|
ldrb r3, [r1]
|
||
|
adds r0, r3, 0
|
||
|
cmp r0, 0xFF
|
||
|
bne _081CD5D6
|
||
|
adds r1, r2, 0
|
||
|
lsls r0, r1, 16
|
||
|
ldr r2, =0xffff0000
|
||
|
adds r0, r2
|
||
|
lsrs r2, r0, 16
|
||
|
lsls r1, 16
|
||
|
cmp r1, 0
|
||
|
ble _081CD612
|
||
|
movs r3, 0
|
||
|
_081CD5FE:
|
||
|
strb r3, [r4]
|
||
|
adds r4, 0x1
|
||
|
adds r1, r2, 0
|
||
|
lsls r0, r1, 16
|
||
|
ldr r2, =0xffff0000
|
||
|
adds r0, r2
|
||
|
lsrs r2, r0, 16
|
||
|
lsls r1, 16
|
||
|
cmp r1, 0
|
||
|
bgt _081CD5FE
|
||
|
_081CD612:
|
||
|
movs r0, 0xFF
|
||
|
strb r0, [r4]
|
||
|
adds r0, r4, 0
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD5CC
|
||
|
|
||
|
thumb_func_start sub_81CD624
|
||
|
sub_81CD624: @ 81CD624
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r10
|
||
|
mov r6, r9
|
||
|
mov r5, r8
|
||
|
push {r5-r7}
|
||
|
adds r5, r0, 0
|
||
|
adds r4, r1, 0
|
||
|
lsls r4, 16
|
||
|
lsrs r4, 16
|
||
|
lsls r2, 24
|
||
|
lsrs r2, 24
|
||
|
mov r10, r2
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
lsls r4, 2
|
||
|
adds r0, r4
|
||
|
ldrb r4, [r0, 0x4]
|
||
|
mov r8, r4
|
||
|
ldrb r6, [r0, 0x5]
|
||
|
mov r9, r6
|
||
|
movs r0, 0xFC
|
||
|
strb r0, [r5]
|
||
|
adds r5, 0x1
|
||
|
movs r0, 0x4
|
||
|
strb r0, [r5]
|
||
|
adds r5, 0x1
|
||
|
movs r0, 0x8
|
||
|
strb r0, [r5]
|
||
|
adds r5, 0x1
|
||
|
movs r0, 0
|
||
|
strb r0, [r5]
|
||
|
adds r5, 0x1
|
||
|
movs r0, 0x9
|
||
|
strb r0, [r5]
|
||
|
adds r5, 0x1
|
||
|
adds r0, r4, 0
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0x2D
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
cmp r0, 0
|
||
|
beq _081CD690
|
||
|
ldr r1, =gText_EggNickname
|
||
|
adds r0, r5, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0xC
|
||
|
bl StringCopyPadded
|
||
|
b _081CD80E
|
||
|
.pool
|
||
|
_081CD690:
|
||
|
adds r0, r4, 0
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0x2
|
||
|
adds r3, r5, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
adds r0, r5, 0
|
||
|
bl StringGetEnd10
|
||
|
adds r0, r4, 0
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0xB
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
lsls r0, 16
|
||
|
lsrs r7, r0, 16
|
||
|
cmp r4, 0xE
|
||
|
bne _081CD6E0
|
||
|
movs r0, 0x64
|
||
|
adds r4, r6, 0
|
||
|
muls r4, r0
|
||
|
ldr r0, =gPlayerParty
|
||
|
adds r4, r0
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x38
|
||
|
bl GetMonData
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
mov r8, r0
|
||
|
adds r0, r4, 0
|
||
|
bl GetMonGender
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
b _081CD6FE
|
||
|
.pool
|
||
|
_081CD6E0:
|
||
|
mov r0, r8
|
||
|
mov r1, r9
|
||
|
bl GetBoxedMonPtr
|
||
|
adds r4, r0, 0
|
||
|
bl GetBoxMonGender
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
adds r0, r4, 0
|
||
|
bl GetLevelFromBoxMonExp
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
mov r8, r0
|
||
|
_081CD6FE:
|
||
|
cmp r7, 0x1D
|
||
|
beq _081CD706
|
||
|
cmp r7, 0x20
|
||
|
bne _081CD71C
|
||
|
_081CD706:
|
||
|
movs r0, 0xB
|
||
|
adds r1, r7, 0
|
||
|
muls r1, r0
|
||
|
ldr r0, =gSpeciesNames
|
||
|
adds r1, r0
|
||
|
adds r0, r5, 0
|
||
|
bl StringCompare
|
||
|
cmp r0, 0
|
||
|
bne _081CD71C
|
||
|
movs r6, 0xFF
|
||
|
_081CD71C:
|
||
|
adds r3, r5, 0
|
||
|
b _081CD726
|
||
|
.pool
|
||
|
_081CD724:
|
||
|
adds r3, 0x1
|
||
|
_081CD726:
|
||
|
ldrb r0, [r3]
|
||
|
cmp r0, 0xFF
|
||
|
bne _081CD724
|
||
|
movs r1, 0xFC
|
||
|
strb r1, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x12
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x3C
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
cmp r6, 0
|
||
|
beq _081CD74A
|
||
|
cmp r6, 0xFE
|
||
|
beq _081CD76E
|
||
|
movs r0, 0x77
|
||
|
b _081CD790
|
||
|
_081CD74A:
|
||
|
strb r1, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x1
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x4
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
strb r1, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x3
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x5
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0xB5
|
||
|
b _081CD790
|
||
|
_081CD76E:
|
||
|
strb r1, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x1
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x6
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
strb r1, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x3
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x7
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0xB6
|
||
|
_081CD790:
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0xFC
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x4
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x8
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r5, 0
|
||
|
strb r5, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x9
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0xBA
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0xF9
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
movs r0, 0x5
|
||
|
strb r0, [r3]
|
||
|
adds r3, 0x1
|
||
|
adds r4, r3, 0
|
||
|
adds r0, r4, 0
|
||
|
mov r1, r8
|
||
|
movs r2, 0
|
||
|
movs r3, 0x3
|
||
|
bl ConvertIntToDecimalStringN
|
||
|
adds r3, r0, 0
|
||
|
subs r4, r3, r4
|
||
|
lsls r4, 16
|
||
|
lsrs r4, 16
|
||
|
strb r5, [r3]
|
||
|
adds r3, 0x1
|
||
|
mov r0, r10
|
||
|
cmp r0, 0
|
||
|
bne _081CD808
|
||
|
movs r0, 0x3
|
||
|
subs r0, r4
|
||
|
lsls r0, 16
|
||
|
ldr r1, =0xffff0000
|
||
|
adds r0, r1
|
||
|
lsrs r4, r0, 16
|
||
|
ldr r0, =0x0000ffff
|
||
|
cmp r4, r0
|
||
|
beq _081CD808
|
||
|
movs r2, 0
|
||
|
adds r1, r0, 0
|
||
|
_081CD7FA:
|
||
|
strb r2, [r3]
|
||
|
adds r3, 0x1
|
||
|
subs r0, r4, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r4, r0, 16
|
||
|
cmp r4, r1
|
||
|
bne _081CD7FA
|
||
|
_081CD808:
|
||
|
movs r0, 0xFF
|
||
|
strb r0, [r3]
|
||
|
adds r0, r3, 0
|
||
|
_081CD80E:
|
||
|
pop {r3-r5}
|
||
|
mov r8, r3
|
||
|
mov r9, r4
|
||
|
mov r10, r5
|
||
|
pop {r4-r7}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD624
|
||
|
|
||
|
thumb_func_start sub_81CD824
|
||
|
sub_81CD824: @ 81CD824
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r8
|
||
|
push {r7}
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
mov r8, r0
|
||
|
lsls r1, 24
|
||
|
lsrs r6, r1, 24
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r7, r0, 0
|
||
|
mov r1, r8
|
||
|
lsls r0, r1, 16
|
||
|
asrs r4, r0, 16
|
||
|
bl sub_81CDD5C
|
||
|
cmp r0, 0
|
||
|
beq _081CD85A
|
||
|
ldrh r2, [r7]
|
||
|
cmp r4, r2
|
||
|
bne _081CD862
|
||
|
b _081CD900
|
||
|
_081CD85A:
|
||
|
ldrh r0, [r7]
|
||
|
subs r0, 0x1
|
||
|
cmp r4, r0
|
||
|
beq _081CD900
|
||
|
_081CD862:
|
||
|
lsls r0, r6, 6
|
||
|
ldr r1, =0x00006368
|
||
|
adds r0, r1
|
||
|
adds r0, r5, r0
|
||
|
mov r2, r8
|
||
|
lsls r4, r2, 16
|
||
|
lsrs r1, r4, 16
|
||
|
movs r2, 0
|
||
|
bl sub_81CD624
|
||
|
asrs r4, 14
|
||
|
adds r4, r7, r4
|
||
|
ldrb r3, [r4, 0x4]
|
||
|
lsls r0, r6, 1
|
||
|
adds r0, r6
|
||
|
lsls r4, r0, 3
|
||
|
ldr r1, =0x00006320
|
||
|
adds r0, r5, r1
|
||
|
adds r0, r4
|
||
|
movs r2, 0
|
||
|
movs r1, 0xFC
|
||
|
strb r1, [r0]
|
||
|
ldr r1, =0x00006321
|
||
|
adds r0, r5, r1
|
||
|
adds r0, r4
|
||
|
movs r1, 0x4
|
||
|
strb r1, [r0]
|
||
|
ldr r1, =0x00006322
|
||
|
adds r0, r5, r1
|
||
|
adds r0, r4
|
||
|
movs r1, 0x8
|
||
|
strb r1, [r0]
|
||
|
ldr r1, =0x00006323
|
||
|
adds r0, r5, r1
|
||
|
adds r0, r4
|
||
|
strb r2, [r0]
|
||
|
ldr r2, =0x00006324
|
||
|
adds r0, r5, r2
|
||
|
adds r0, r4
|
||
|
movs r1, 0x9
|
||
|
strb r1, [r0]
|
||
|
cmp r3, 0xE
|
||
|
bne _081CD8E4
|
||
|
adds r0, r4, r5
|
||
|
ldr r1, =0x00006325
|
||
|
adds r0, r1
|
||
|
ldr r1, =gText_InParty
|
||
|
b _081CD8F4
|
||
|
.pool
|
||
|
_081CD8E4:
|
||
|
adds r4, r5
|
||
|
ldr r2, =0x00006325
|
||
|
adds r4, r2
|
||
|
adds r0, r3, 0
|
||
|
bl GetBoxNamePtr
|
||
|
adds r1, r0, 0
|
||
|
adds r0, r4, 0
|
||
|
_081CD8F4:
|
||
|
movs r2, 0x8
|
||
|
bl sub_81CD5CC
|
||
|
b _081CD95C
|
||
|
.pool
|
||
|
_081CD900:
|
||
|
movs r1, 0
|
||
|
lsls r4, r6, 6
|
||
|
lsls r0, r6, 1
|
||
|
mov r8, r0
|
||
|
adds r3, r4, 0
|
||
|
ldr r0, =0x00006368
|
||
|
adds r2, r5, r0
|
||
|
movs r7, 0
|
||
|
_081CD910:
|
||
|
adds r0, r1, r3
|
||
|
adds r0, r2, r0
|
||
|
strb r7, [r0]
|
||
|
adds r0, r1, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r1, r0, 16
|
||
|
cmp r1, 0xB
|
||
|
bls _081CD910
|
||
|
adds r1, r4
|
||
|
ldr r2, =0x00006368
|
||
|
adds r0, r5, r2
|
||
|
adds r0, r1
|
||
|
movs r1, 0xFF
|
||
|
strb r1, [r0]
|
||
|
movs r1, 0
|
||
|
mov r2, r8
|
||
|
adds r0, r2, r6
|
||
|
lsls r3, r0, 3
|
||
|
ldr r0, =0x00006320
|
||
|
adds r2, r5, r0
|
||
|
movs r4, 0
|
||
|
_081CD93A:
|
||
|
adds r0, r1, r3
|
||
|
adds r0, r2, r0
|
||
|
strb r4, [r0]
|
||
|
adds r0, r1, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r1, r0, 16
|
||
|
cmp r1, 0x7
|
||
|
bls _081CD93A
|
||
|
mov r2, r8
|
||
|
adds r0, r2, r6
|
||
|
lsls r0, 3
|
||
|
adds r0, r1, r0
|
||
|
ldr r2, =0x00006320
|
||
|
adds r1, r5, r2
|
||
|
adds r1, r0
|
||
|
movs r0, 0xFF
|
||
|
strb r0, [r1]
|
||
|
_081CD95C:
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD824
|
||
|
|
||
|
thumb_func_start sub_81CD970
|
||
|
sub_81CD970: @ 81CD970
|
||
|
push {r4-r7,lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r7, r0, 0
|
||
|
ldr r1, =0x000006ac
|
||
|
movs r0, 0x12
|
||
|
bl AllocSubstruct
|
||
|
adds r6, r0, 0
|
||
|
movs r0, 0xC6
|
||
|
lsls r0, 7
|
||
|
adds r1, r7, r0
|
||
|
movs r0, 0
|
||
|
strb r0, [r1]
|
||
|
movs r4, 0
|
||
|
movs r5, 0
|
||
|
b _081CD9C4
|
||
|
.pool
|
||
|
_081CD998:
|
||
|
movs r0, 0x64
|
||
|
muls r0, r4
|
||
|
ldr r1, =gPlayerParty
|
||
|
adds r0, r1
|
||
|
movs r1, 0x2D
|
||
|
bl GetMonData
|
||
|
adds r2, r0, 0
|
||
|
cmp r2, 0
|
||
|
bne _081CD9BE
|
||
|
lsls r1, r5, 2
|
||
|
adds r1, r6, r1
|
||
|
movs r0, 0xE
|
||
|
strb r0, [r1, 0x4]
|
||
|
strb r4, [r1, 0x5]
|
||
|
strh r2, [r1, 0x6]
|
||
|
adds r0, r5, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r5, r0, 16
|
||
|
_081CD9BE:
|
||
|
adds r0, r4, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r4, r0, 16
|
||
|
_081CD9C4:
|
||
|
bl CalculatePlayerPartyCount
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
cmp r4, r0
|
||
|
bcc _081CD998
|
||
|
lsls r0, r5, 2
|
||
|
adds r0, r6, r0
|
||
|
movs r1, 0
|
||
|
strb r1, [r0, 0x4]
|
||
|
strb r1, [r0, 0x5]
|
||
|
movs r2, 0
|
||
|
strh r1, [r0, 0x6]
|
||
|
strh r1, [r6, 0x2]
|
||
|
adds r0, r5, 0x1
|
||
|
strh r0, [r6]
|
||
|
ldr r1, =0x0000678a
|
||
|
adds r0, r7, r1
|
||
|
strb r2, [r0]
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD970
|
||
|
|
||
|
thumb_func_start sub_81CD9F8
|
||
|
sub_81CD9F8: @ 81CD9F8
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r2, r0, r1
|
||
|
movs r3, 0
|
||
|
movs r1, 0x1
|
||
|
strb r1, [r2]
|
||
|
ldr r1, =0x0000678a
|
||
|
adds r0, r1
|
||
|
strb r3, [r0]
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81CD9F8
|
||
|
|
||
|
thumb_func_start sub_81CDA1C
|
||
|
sub_81CDA1C: @ 81CDA1C
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r9
|
||
|
mov r6, r8
|
||
|
push {r6,r7}
|
||
|
lsls r0, 16
|
||
|
lsrs r6, r0, 16
|
||
|
lsls r1, 24
|
||
|
lsrs r1, 24
|
||
|
mov r9, r1
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
mov r8, r0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r4, r0, 0
|
||
|
lsls r0, r6, 16
|
||
|
asrs r5, r0, 16
|
||
|
bl sub_81CDD5C
|
||
|
cmp r0, 0
|
||
|
beq _081CDA52
|
||
|
ldrh r0, [r4]
|
||
|
cmp r5, r0
|
||
|
bne _081CDA5A
|
||
|
b _081CDB48
|
||
|
_081CDA52:
|
||
|
ldrh r0, [r4]
|
||
|
subs r0, 0x1
|
||
|
cmp r5, r0
|
||
|
beq _081CDB48
|
||
|
_081CDA5A:
|
||
|
lsls r0, r6, 16
|
||
|
asrs r0, 14
|
||
|
adds r0, r4, r0
|
||
|
ldrb r6, [r0, 0x4]
|
||
|
ldrb r7, [r0, 0x5]
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x16
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
mov r1, r9
|
||
|
lsls r5, r1, 2
|
||
|
adds r4, r5, r1
|
||
|
ldr r1, =0x00006428
|
||
|
add r1, r8
|
||
|
adds r1, r4
|
||
|
strb r0, [r1]
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x2F
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
ldr r1, =0x00006429
|
||
|
add r1, r8
|
||
|
adds r1, r4
|
||
|
strb r0, [r1]
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x21
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
ldr r1, =0x0000642a
|
||
|
add r1, r8
|
||
|
adds r1, r4
|
||
|
strb r0, [r1]
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x18
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
ldr r1, =0x0000642b
|
||
|
add r1, r8
|
||
|
adds r1, r4
|
||
|
strb r0, [r1]
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x17
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
ldr r1, =0x0000642c
|
||
|
add r1, r8
|
||
|
adds r1, r4
|
||
|
strb r0, [r1]
|
||
|
movs r0, 0xCF
|
||
|
lsls r0, 7
|
||
|
add r0, r8
|
||
|
mov r2, r9
|
||
|
adds r4, r0, r2
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x30
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
cmp r0, 0xFF
|
||
|
beq _081CDB10
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x30
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
movs r1, 0x1D
|
||
|
bl __udivsi3
|
||
|
b _081CDB12
|
||
|
.pool
|
||
|
_081CDB10:
|
||
|
movs r0, 0x9
|
||
|
_081CDB12:
|
||
|
strb r0, [r4]
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r7, 0
|
||
|
movs r2, 0x8
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
ldr r1, =0x00006783
|
||
|
add r1, r8
|
||
|
add r1, r9
|
||
|
strb r0, [r1]
|
||
|
mov r0, r9
|
||
|
adds r1, r5, r0
|
||
|
ldr r2, =0x00006428
|
||
|
adds r0, r1, r2
|
||
|
add r0, r8
|
||
|
lsls r1, 2
|
||
|
adds r2, 0x14
|
||
|
adds r1, r2
|
||
|
add r1, r8
|
||
|
bl sub_81D2754
|
||
|
b _081CDB80
|
||
|
.pool
|
||
|
_081CDB48:
|
||
|
movs r2, 0
|
||
|
mov r0, r9
|
||
|
lsls r5, r0, 2
|
||
|
add r5, r9
|
||
|
ldr r4, =0x00006428
|
||
|
add r4, r8
|
||
|
lsls r3, r5, 2
|
||
|
mov r9, r2
|
||
|
ldr r7, =0x0000643c
|
||
|
movs r6, 0x9B
|
||
|
_081CDB5C:
|
||
|
adds r0, r2, r5
|
||
|
adds r0, r4, r0
|
||
|
mov r1, r9
|
||
|
strb r1, [r0]
|
||
|
lsls r0, r2, 2
|
||
|
adds r0, r3
|
||
|
add r0, r8
|
||
|
adds r1, r0, r7
|
||
|
strh r6, [r1]
|
||
|
ldr r1, =0x0000643e
|
||
|
adds r0, r1
|
||
|
movs r1, 0x5B
|
||
|
strh r1, [r0]
|
||
|
adds r0, r2, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r2, r0, 16
|
||
|
cmp r2, 0x4
|
||
|
bls _081CDB5C
|
||
|
_081CDB80:
|
||
|
pop {r3,r4}
|
||
|
mov r8, r3
|
||
|
mov r9, r4
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDA1C
|
||
|
|
||
|
thumb_func_start sub_81CDB98
|
||
|
sub_81CDB98: @ 81CDB98
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r9
|
||
|
mov r6, r8
|
||
|
push {r6,r7}
|
||
|
sub sp, 0x4
|
||
|
lsls r0, 16
|
||
|
lsrs r6, r0, 16
|
||
|
lsls r1, 24
|
||
|
lsrs r1, 24
|
||
|
mov r9, r1
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r7, r0, 0
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
adds r4, r0, 0
|
||
|
lsls r0, r6, 16
|
||
|
asrs r5, r0, 16
|
||
|
bl sub_81CDD5C
|
||
|
cmp r0, 0
|
||
|
beq _081CDBCC
|
||
|
ldrh r0, [r4]
|
||
|
b _081CDBD0
|
||
|
_081CDBCC:
|
||
|
ldrh r0, [r4]
|
||
|
subs r0, 0x1
|
||
|
_081CDBD0:
|
||
|
cmp r5, r0
|
||
|
beq _081CDC3E
|
||
|
lsls r0, r6, 16
|
||
|
asrs r0, 14
|
||
|
adds r0, r4, r0
|
||
|
ldrb r5, [r0, 0x4]
|
||
|
ldrb r6, [r0, 0x5]
|
||
|
adds r0, r5, 0
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0x41
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 16
|
||
|
lsrs r4, 16
|
||
|
adds r0, r5, 0
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0x1
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
mov r8, r0
|
||
|
adds r0, r5, 0
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0
|
||
|
bl GetBoxOrPartyMonData
|
||
|
adds r5, r0, 0
|
||
|
lsls r0, r4, 3
|
||
|
ldr r1, =gMonFrontPicTable
|
||
|
adds r0, r1
|
||
|
mov r2, r9
|
||
|
lsls r1, r2, 13
|
||
|
movs r2, 0xC0
|
||
|
lsls r2, 2
|
||
|
adds r1, r2
|
||
|
adds r1, r7, r1
|
||
|
movs r2, 0x1
|
||
|
str r2, [sp]
|
||
|
adds r2, r4, 0
|
||
|
adds r3, r5, 0
|
||
|
bl LoadSpecialPokePic
|
||
|
adds r0, r4, 0
|
||
|
mov r1, r8
|
||
|
adds r2, r5, 0
|
||
|
bl GetFrontSpritePalFromSpeciesAndPersonality
|
||
|
mov r2, r9
|
||
|
lsls r1, r2, 7
|
||
|
adds r1, r7, r1
|
||
|
bl LZ77UnCompWram
|
||
|
_081CDC3E:
|
||
|
add sp, 0x4
|
||
|
pop {r3,r4}
|
||
|
mov r8, r3
|
||
|
mov r9, r4
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDB98
|
||
|
|
||
|
thumb_func_start sub_81CDC50
|
||
|
sub_81CDC50: @ 81CDC50
|
||
|
push {lr}
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r0, [r0]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CDC50
|
||
|
|
||
|
thumb_func_start sub_81CDC60
|
||
|
sub_81CDC60: @ 81CDC60
|
||
|
push {lr}
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r0, [r0, 0x2]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CDC60
|
||
|
|
||
|
thumb_func_start sub_81CDC70
|
||
|
sub_81CDC70: @ 81CDC70
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, =0x00006428
|
||
|
adds r0, r1
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDC70
|
||
|
|
||
|
thumb_func_start sub_81CDC84
|
||
|
sub_81CDC84: @ 81CDC84
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, =0x00006786
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDC84
|
||
|
|
||
|
thumb_func_start sub_81CDC9C
|
||
|
sub_81CDC9C: @ 81CDC9C
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, =0x00006302
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDC9C
|
||
|
|
||
|
thumb_func_start sub_81CDCB4
|
||
|
sub_81CDCB4: @ 81CDCB4
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
lsls r4, 13
|
||
|
movs r1, 0xC0
|
||
|
lsls r1, 2
|
||
|
adds r4, r1
|
||
|
adds r0, r4
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CDCB4
|
||
|
|
||
|
thumb_func_start sub_81CDCD4
|
||
|
sub_81CDCD4: @ 81CDCD4
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
lsls r4, 7
|
||
|
adds r0, r4
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CDCD4
|
||
|
|
||
|
thumb_func_start sub_81CDCEC
|
||
|
sub_81CDCEC: @ 81CDCEC
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, =0x00006789
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDCEC
|
||
|
|
||
|
thumb_func_start sub_81CDD04
|
||
|
sub_81CDD04: @ 81CDD04
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
lsls r4, 6
|
||
|
ldr r1, =0x00006368
|
||
|
adds r4, r1
|
||
|
adds r0, r4
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDD04
|
||
|
|
||
|
thumb_func_start sub_81CDD24
|
||
|
sub_81CDD24: @ 81CDD24
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
lsls r1, r4, 1
|
||
|
adds r1, r4
|
||
|
lsls r1, 3
|
||
|
ldr r2, =0x00006320
|
||
|
adds r1, r2
|
||
|
adds r0, r1
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDD24
|
||
|
|
||
|
thumb_func_start sub_81CDD48
|
||
|
sub_81CDD48: @ 81CDD48
|
||
|
push {lr}
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r1, [r0, 0x2]
|
||
|
lsls r1, 2
|
||
|
adds r0, r1
|
||
|
ldrh r0, [r0, 0x6]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CDD48
|
||
|
|
||
|
thumb_func_start sub_81CDD5C
|
||
|
sub_81CDD5C: @ 81CDD5C
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0x1
|
||
|
beq _081CDD74
|
||
|
movs r0, 0
|
||
|
b _081CDD76
|
||
|
_081CDD74:
|
||
|
movs r0, 0x1
|
||
|
_081CDD76:
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81CDD5C
|
||
|
|
||
|
thumb_func_start sub_81CDD7C
|
||
|
sub_81CDD7C: @ 81CDD7C
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
adds r2, r0, 0
|
||
|
movs r1, 0xC6
|
||
|
lsls r1, 7
|
||
|
adds r0, r2, r1
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0x1
|
||
|
beq _081CDD96
|
||
|
movs r0, 0
|
||
|
b _081CDDA6
|
||
|
_081CDD96:
|
||
|
ldr r3, =0x00006786
|
||
|
adds r0, r2, r3
|
||
|
movs r1, 0
|
||
|
ldrsb r1, [r0, r1]
|
||
|
subs r3, 0x3
|
||
|
adds r0, r2, r3
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
_081CDDA6:
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDD7C
|
||
|
|
||
|
thumb_func_start sub_81CDDB0
|
||
|
sub_81CDDB0: @ 81CDDB0
|
||
|
push {lr}
|
||
|
movs r0, 0xB
|
||
|
bl GetSubstructPtr
|
||
|
ldr r2, =0x00006786
|
||
|
adds r1, r0, r2
|
||
|
ldrb r1, [r1]
|
||
|
lsls r1, 24
|
||
|
asrs r1, 24
|
||
|
subs r2, 0x6
|
||
|
adds r0, r2
|
||
|
adds r0, r1
|
||
|
ldrb r0, [r0]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81CDDB0
|
||
|
|
||
|
.align 2, 0 @ Don't pad with nop.
|