mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-18 04:27:38 +01:00
2186 lines
33 KiB
ArmAsm
2186 lines
33 KiB
ArmAsm
|
.include "asm/macros.inc"
|
||
|
.include "constants/constants.inc"
|
||
|
|
||
|
.syntax unified
|
||
|
|
||
|
thumb_func_start sub_81D0450
|
||
|
sub_81D0450: @ 81D0450
|
||
|
push {r4,lr}
|
||
|
movs r0, 0xD
|
||
|
movs r1, 0x9C
|
||
|
bl AllocSubstruct
|
||
|
adds r4, r0, 0
|
||
|
cmp r4, 0
|
||
|
beq _081D0498
|
||
|
movs r0, 0x12
|
||
|
bl GetSubstructPtr
|
||
|
str r0, [r4, 0x8]
|
||
|
cmp r0, 0
|
||
|
beq _081D0498
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0814
|
||
|
adds r1, r4, 0
|
||
|
adds r1, 0x98
|
||
|
ldr r0, =sub_81D04C4
|
||
|
str r0, [r1]
|
||
|
ldr r1, =gKeyRepeatContinueDelay
|
||
|
movs r0, 0x3
|
||
|
strh r0, [r1]
|
||
|
ldr r1, =gKeyRepeatStartDelay
|
||
|
movs r0, 0xA
|
||
|
strh r0, [r1]
|
||
|
movs r0, 0x1
|
||
|
b _081D049A
|
||
|
.pool
|
||
|
_081D0498:
|
||
|
movs r0, 0
|
||
|
_081D049A:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0450
|
||
|
|
||
|
thumb_func_start sub_81D04A0
|
||
|
sub_81D04A0: @ 81D04A0
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
adds r1, r0, 0
|
||
|
adds r1, 0x98
|
||
|
ldr r1, [r1]
|
||
|
bl _call_via_r1
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D04A0
|
||
|
|
||
|
thumb_func_start sub_81D04B8
|
||
|
sub_81D04B8: @ 81D04B8
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl FreePokenavSubstruct
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D04B8
|
||
|
|
||
|
thumb_func_start sub_81D04C4
|
||
|
sub_81D04C4: @ 81D04C4
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r2, =gMain
|
||
|
ldrh r1, [r2, 0x30]
|
||
|
movs r0, 0x40
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D04E4
|
||
|
ldr r3, [r4, 0x8]
|
||
|
ldrh r0, [r3, 0x2]
|
||
|
cmp r0, 0
|
||
|
beq _081D04E4
|
||
|
subs r0, 0x1
|
||
|
b _081D04FC
|
||
|
.pool
|
||
|
_081D04E4:
|
||
|
ldrh r1, [r2, 0x30]
|
||
|
movs r0, 0x80
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D050C
|
||
|
ldr r3, [r4, 0x8]
|
||
|
ldrh r1, [r3, 0x2]
|
||
|
ldrh r0, [r3]
|
||
|
subs r0, 0x1
|
||
|
cmp r1, r0
|
||
|
bge _081D050C
|
||
|
adds r0, r1, 0x1
|
||
|
_081D04FC:
|
||
|
movs r1, 0
|
||
|
strh r0, [r3, 0x2]
|
||
|
strh r1, [r4, 0xC]
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0814
|
||
|
movs r0, 0x1
|
||
|
b _081D053E
|
||
|
_081D050C:
|
||
|
ldrh r2, [r2, 0x2E]
|
||
|
movs r0, 0x1
|
||
|
ands r0, r2
|
||
|
cmp r0, 0
|
||
|
beq _081D0528
|
||
|
adds r1, r4, 0
|
||
|
adds r1, 0x98
|
||
|
ldr r0, =sub_81D0548
|
||
|
str r0, [r1]
|
||
|
movs r0, 0x2
|
||
|
b _081D053E
|
||
|
.pool
|
||
|
_081D0528:
|
||
|
movs r0, 0x2
|
||
|
ands r0, r2
|
||
|
cmp r0, 0
|
||
|
bne _081D0534
|
||
|
movs r0, 0
|
||
|
b _081D053E
|
||
|
_081D0534:
|
||
|
adds r1, r4, 0
|
||
|
adds r1, 0x98
|
||
|
ldr r0, =sub_81D05D4
|
||
|
str r0, [r1]
|
||
|
movs r0, 0x5
|
||
|
_081D053E:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81D04C4
|
||
|
|
||
|
thumb_func_start sub_81D0548
|
||
|
sub_81D0548: @ 81D0548
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x30]
|
||
|
movs r0, 0x40
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D0562
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D05DC
|
||
|
cmp r0, 0
|
||
|
bne _081D05A4
|
||
|
_081D0562:
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x30]
|
||
|
movs r0, 0x80
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D0578
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D061C
|
||
|
cmp r0, 0
|
||
|
bne _081D05A4
|
||
|
_081D0578:
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x30]
|
||
|
movs r0, 0x20
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D058E
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0664
|
||
|
cmp r0, 0
|
||
|
bne _081D05A4
|
||
|
_081D058E:
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x30]
|
||
|
movs r0, 0x10
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D05AC
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0688
|
||
|
cmp r0, 0
|
||
|
beq _081D05AC
|
||
|
_081D05A4:
|
||
|
movs r0, 0x3
|
||
|
b _081D05CA
|
||
|
.pool
|
||
|
_081D05AC:
|
||
|
ldr r0, =gMain
|
||
|
ldrh r1, [r0, 0x2E]
|
||
|
movs r0, 0x2
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
bne _081D05C0
|
||
|
movs r0, 0
|
||
|
b _081D05CA
|
||
|
.pool
|
||
|
_081D05C0:
|
||
|
adds r1, r4, 0
|
||
|
adds r1, 0x98
|
||
|
ldr r0, =sub_81D04C4
|
||
|
str r0, [r1]
|
||
|
movs r0, 0x4
|
||
|
_081D05CA:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81D0548
|
||
|
|
||
|
thumb_func_start sub_81D05D4
|
||
|
sub_81D05D4: @ 81D05D4
|
||
|
ldr r0, =0x000186ae
|
||
|
bx lr
|
||
|
.pool
|
||
|
thumb_func_end sub_81D05D4
|
||
|
|
||
|
thumb_func_start sub_81D05DC
|
||
|
sub_81D05DC: @ 81D05DC
|
||
|
push {r4,lr}
|
||
|
adds r1, r0, 0
|
||
|
ldrh r0, [r1, 0xC]
|
||
|
adds r2, r0, 0
|
||
|
cmp r2, 0x18
|
||
|
bhi _081D05F0
|
||
|
cmp r2, 0x8
|
||
|
bls _081D0612
|
||
|
subs r0, 0x9
|
||
|
b _081D060C
|
||
|
_081D05F0:
|
||
|
ldrh r3, [r1, 0x10]
|
||
|
adds r2, r3, 0
|
||
|
cmp r2, 0
|
||
|
beq _081D0612
|
||
|
ldrh r0, [r1, 0xC]
|
||
|
subs r0, 0x1B
|
||
|
ldrh r4, [r1, 0xE]
|
||
|
adds r0, r4
|
||
|
strh r0, [r1, 0xC]
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
cmp r0, r2
|
||
|
bcc _081D060E
|
||
|
subs r0, r3, 0x1
|
||
|
_081D060C:
|
||
|
strh r0, [r1, 0xC]
|
||
|
_081D060E:
|
||
|
movs r0, 0x1
|
||
|
b _081D0614
|
||
|
_081D0612:
|
||
|
movs r0, 0
|
||
|
_081D0614:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D05DC
|
||
|
|
||
|
thumb_func_start sub_81D061C
|
||
|
sub_81D061C: @ 81D061C
|
||
|
push {lr}
|
||
|
adds r2, r0, 0
|
||
|
ldrh r0, [r2, 0xC]
|
||
|
adds r1, r0, 0
|
||
|
cmp r1, 0x18
|
||
|
bhi _081D065C
|
||
|
ldrh r3, [r2, 0xE]
|
||
|
cmp r1, r3
|
||
|
bcs _081D0640
|
||
|
adds r0, 0x9
|
||
|
strh r0, [r2, 0xC]
|
||
|
ldrh r1, [r2, 0x10]
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
cmp r0, r1
|
||
|
bcc _081D0658
|
||
|
subs r0, r1, 0x1
|
||
|
b _081D0656
|
||
|
_081D0640:
|
||
|
ldrh r0, [r2, 0x12]
|
||
|
cmp r0, 0
|
||
|
beq _081D065C
|
||
|
ldrh r1, [r2, 0xC]
|
||
|
ldrh r0, [r2, 0xE]
|
||
|
subs r0, r1, r0
|
||
|
ldrh r1, [r2, 0x12]
|
||
|
cmp r0, r1
|
||
|
blt _081D0654
|
||
|
subs r0, r1, 0x1
|
||
|
_081D0654:
|
||
|
adds r0, 0x1B
|
||
|
_081D0656:
|
||
|
strh r0, [r2, 0xC]
|
||
|
_081D0658:
|
||
|
movs r0, 0x1
|
||
|
b _081D065E
|
||
|
_081D065C:
|
||
|
movs r0, 0
|
||
|
_081D065E:
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D061C
|
||
|
|
||
|
thumb_func_start sub_81D0664
|
||
|
sub_81D0664: @ 81D0664
|
||
|
push {r4,r5,lr}
|
||
|
adds r5, r0, 0
|
||
|
ldrh r4, [r5, 0xC]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x9
|
||
|
bl __umodsi3
|
||
|
lsls r0, 16
|
||
|
cmp r0, 0
|
||
|
bne _081D067C
|
||
|
movs r0, 0
|
||
|
b _081D0682
|
||
|
_081D067C:
|
||
|
subs r0, r4, 0x1
|
||
|
strh r0, [r5, 0xC]
|
||
|
movs r0, 0x1
|
||
|
_081D0682:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0664
|
||
|
|
||
|
thumb_func_start sub_81D0688
|
||
|
sub_81D0688: @ 81D0688
|
||
|
push {r4,r5,lr}
|
||
|
adds r5, r0, 0
|
||
|
ldrh r4, [r5, 0xC]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x9
|
||
|
bl __umodsi3
|
||
|
lsls r0, 16
|
||
|
lsrs r1, r0, 16
|
||
|
cmp r1, 0x7
|
||
|
bgt _081D06BC
|
||
|
cmp r4, 0x1A
|
||
|
bhi _081D06AC
|
||
|
ldrh r0, [r5, 0x10]
|
||
|
subs r0, 0x1
|
||
|
cmp r4, r0
|
||
|
bge _081D06BC
|
||
|
b _081D06B4
|
||
|
_081D06AC:
|
||
|
ldrh r0, [r5, 0x12]
|
||
|
subs r0, 0x1
|
||
|
cmp r1, r0
|
||
|
bge _081D06BC
|
||
|
_081D06B4:
|
||
|
adds r0, r4, 0x1
|
||
|
strh r0, [r5, 0xC]
|
||
|
movs r0, 0x1
|
||
|
b _081D06BE
|
||
|
_081D06BC:
|
||
|
movs r0, 0
|
||
|
_081D06BE:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0688
|
||
|
|
||
|
thumb_func_start sub_81D06C4
|
||
|
sub_81D06C4: @ 81D06C4
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldr r0, [r0, 0x8]
|
||
|
ldrh r0, [r0, 0x2]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D06C4
|
||
|
|
||
|
thumb_func_start sub_81D06D4
|
||
|
sub_81D06D4: @ 81D06D4
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldr r0, [r0, 0x8]
|
||
|
ldrh r0, [r0]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D06D4
|
||
|
|
||
|
thumb_func_start sub_81D06E4
|
||
|
sub_81D06E4: @ 81D06E4
|
||
|
push {r4-r7,lr}
|
||
|
adds r5, r0, 0
|
||
|
adds r7, r1, 0
|
||
|
adds r6, r2, 0
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, [r0, 0x8]
|
||
|
ldrh r0, [r1, 0x2]
|
||
|
lsls r0, 2
|
||
|
adds r0, 0x4
|
||
|
adds r1, r0
|
||
|
ldrb r0, [r1]
|
||
|
cmp r0, 0xE
|
||
|
bne _081D0730
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
movs r0, 0x64
|
||
|
adds r4, r1, 0
|
||
|
muls r4, r0
|
||
|
ldr r0, =gPlayerParty
|
||
|
adds r4, r0
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x2
|
||
|
adds r2, r5, 0
|
||
|
bl GetMonData
|
||
|
adds r0, r4, 0
|
||
|
bl GetLevelFromMonExp
|
||
|
strb r0, [r7]
|
||
|
adds r0, r4, 0
|
||
|
bl GetMonGender
|
||
|
strb r0, [r6]
|
||
|
b _081D0752
|
||
|
.pool
|
||
|
_081D0730:
|
||
|
ldrb r0, [r1]
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
bl GetBoxedMonPtr
|
||
|
adds r4, r0, 0
|
||
|
bl GetBoxMonGender
|
||
|
strb r0, [r6]
|
||
|
adds r0, r4, 0
|
||
|
bl GetLevelFromBoxMonExp
|
||
|
strb r0, [r7]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x2
|
||
|
adds r2, r5, 0
|
||
|
bl GetBoxMonData
|
||
|
_081D0752:
|
||
|
adds r0, r5, 0
|
||
|
bl StringGetEnd10
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D06E4
|
||
|
|
||
|
thumb_func_start sub_81D0760
|
||
|
sub_81D0760: @ 81D0760
|
||
|
push {r4-r7,lr}
|
||
|
adds r5, r0, 0
|
||
|
adds r6, r1, 0
|
||
|
adds r7, r2, 0
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, [r0, 0x8]
|
||
|
ldrh r0, [r1, 0x2]
|
||
|
lsls r0, 2
|
||
|
adds r0, 0x4
|
||
|
adds r1, r0
|
||
|
ldrb r0, [r1]
|
||
|
cmp r0, 0xE
|
||
|
bne _081D07AC
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
movs r0, 0x64
|
||
|
adds r4, r1, 0
|
||
|
muls r4, r0
|
||
|
ldr r0, =gPlayerParty
|
||
|
adds r4, r0
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0xB
|
||
|
bl GetMonData
|
||
|
strh r0, [r5]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0
|
||
|
bl GetMonData
|
||
|
str r0, [r6]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x1
|
||
|
bl GetMonData
|
||
|
b _081D07D0
|
||
|
.pool
|
||
|
_081D07AC:
|
||
|
ldrb r0, [r1]
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
bl GetBoxedMonPtr
|
||
|
adds r4, r0, 0
|
||
|
movs r1, 0xB
|
||
|
bl GetBoxMonData
|
||
|
strh r0, [r5]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0
|
||
|
bl GetBoxMonData
|
||
|
str r0, [r6]
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x1
|
||
|
bl GetBoxMonData
|
||
|
_081D07D0:
|
||
|
str r0, [r7]
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D0760
|
||
|
|
||
|
thumb_func_start sub_81D07D8
|
||
|
sub_81D07D8: @ 81D07D8
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldr r1, [r0, 0x8]
|
||
|
ldrh r0, [r1, 0x2]
|
||
|
lsls r0, 2
|
||
|
adds r0, 0x4
|
||
|
adds r1, r0
|
||
|
ldrb r0, [r1]
|
||
|
cmp r0, 0xE
|
||
|
beq _081D07FA
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
movs r2, 0x52
|
||
|
bl GetBoxMonDataAt
|
||
|
b _081D080A
|
||
|
_081D07FA:
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gPlayerParty
|
||
|
adds r0, r1
|
||
|
movs r1, 0x52
|
||
|
bl GetMonData
|
||
|
_081D080A:
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81D07D8
|
||
|
|
||
|
thumb_func_start sub_81D0814
|
||
|
sub_81D0814: @ 81D0814
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r10
|
||
|
mov r6, r9
|
||
|
mov r5, r8
|
||
|
push {r5-r7}
|
||
|
adds r5, r0, 0
|
||
|
ldr r0, [r5, 0x8]
|
||
|
ldrh r1, [r0, 0x2]
|
||
|
lsls r1, 2
|
||
|
adds r1, 0x4
|
||
|
adds r1, r0, r1
|
||
|
ldrb r0, [r1]
|
||
|
cmp r0, 0xE
|
||
|
bne _081D0848
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gPlayerParty
|
||
|
adds r0, r1
|
||
|
movs r1, 0x53
|
||
|
bl GetMonData
|
||
|
b _081D0852
|
||
|
.pool
|
||
|
_081D0848:
|
||
|
ldrb r0, [r1]
|
||
|
ldrb r1, [r1, 0x1]
|
||
|
movs r2, 0x53
|
||
|
bl GetBoxMonDataAt
|
||
|
_081D0852:
|
||
|
mov r12, r0
|
||
|
movs r0, 0
|
||
|
strh r0, [r5, 0x10]
|
||
|
strh r0, [r5, 0x12]
|
||
|
movs r6, 0
|
||
|
ldr r0, =gUnknown_086237F8
|
||
|
mov r9, r0
|
||
|
mov r10, r9
|
||
|
_081D0862:
|
||
|
lsls r2, r6, 2
|
||
|
mov r3, r9
|
||
|
adds r1, r2, r3
|
||
|
movs r0, 0x1
|
||
|
ldrb r3, [r1]
|
||
|
lsls r0, r3
|
||
|
subs r4, r0, 0x1
|
||
|
mov r0, r12
|
||
|
ands r4, r0
|
||
|
ldrb r0, [r1, 0x3]
|
||
|
adds r7, r2, 0
|
||
|
cmp r0, 0
|
||
|
bne _081D08AC
|
||
|
movs r3, 0
|
||
|
adds r6, 0x1
|
||
|
mov r8, r6
|
||
|
cmp r3, r4
|
||
|
bge _081D08D6
|
||
|
adds r6, r5, 0
|
||
|
adds r6, 0x14
|
||
|
mov r1, r10
|
||
|
adds r0, r7, r1
|
||
|
ldrb r2, [r0, 0x2]
|
||
|
_081D0890:
|
||
|
ldrh r0, [r5, 0x10]
|
||
|
adds r1, r0, 0x1
|
||
|
strh r1, [r5, 0x10]
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 14
|
||
|
adds r0, r6, r0
|
||
|
adds r1, r2, r3
|
||
|
str r1, [r0]
|
||
|
adds r3, 0x1
|
||
|
cmp r3, r4
|
||
|
blt _081D0890
|
||
|
b _081D08D6
|
||
|
.pool
|
||
|
_081D08AC:
|
||
|
movs r3, 0
|
||
|
adds r6, 0x1
|
||
|
mov r8, r6
|
||
|
cmp r3, r4
|
||
|
bge _081D08D6
|
||
|
adds r6, r5, 0
|
||
|
adds r6, 0x78
|
||
|
mov r1, r10
|
||
|
adds r0, r7, r1
|
||
|
ldrb r2, [r0, 0x2]
|
||
|
_081D08C0:
|
||
|
ldrh r0, [r5, 0x12]
|
||
|
adds r1, r0, 0x1
|
||
|
strh r1, [r5, 0x12]
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 14
|
||
|
adds r0, r6, r0
|
||
|
adds r1, r2, r3
|
||
|
str r1, [r0]
|
||
|
adds r3, 0x1
|
||
|
cmp r3, r4
|
||
|
blt _081D08C0
|
||
|
_081D08D6:
|
||
|
mov r3, r9
|
||
|
adds r0, r7, r3
|
||
|
mov r1, r12
|
||
|
ldrb r0, [r0]
|
||
|
lsrs r1, r0
|
||
|
mov r12, r1
|
||
|
mov r6, r8
|
||
|
cmp r6, 0x10
|
||
|
bls _081D0862
|
||
|
ldrh r0, [r5, 0x10]
|
||
|
cmp r0, 0
|
||
|
beq _081D0900
|
||
|
subs r0, 0x1
|
||
|
movs r1, 0x9
|
||
|
bl __divsi3
|
||
|
lsls r1, r0, 3
|
||
|
adds r1, r0
|
||
|
movs r0, 0
|
||
|
strh r1, [r5, 0xE]
|
||
|
b _081D0904
|
||
|
_081D0900:
|
||
|
strh r0, [r5, 0xE]
|
||
|
movs r0, 0x1B
|
||
|
_081D0904:
|
||
|
strh r0, [r5, 0xC]
|
||
|
pop {r3-r5}
|
||
|
mov r8, r3
|
||
|
mov r9, r4
|
||
|
mov r10, r5
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D0814
|
||
|
|
||
|
thumb_func_start sub_81D0914
|
||
|
sub_81D0914: @ 81D0914
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r1, [r0, 0x10]
|
||
|
str r1, [r4]
|
||
|
adds r0, 0x14
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0914
|
||
|
|
||
|
thumb_func_start sub_81D092C
|
||
|
sub_81D092C: @ 81D092C
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r1, [r0, 0x12]
|
||
|
str r1, [r4]
|
||
|
adds r0, 0x78
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D092C
|
||
|
|
||
|
thumb_func_start sub_81D0944
|
||
|
sub_81D0944: @ 81D0944
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
ldrh r0, [r0, 0xC]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0944
|
||
|
|
||
|
thumb_func_start sub_81D0954
|
||
|
sub_81D0954: @ 81D0954
|
||
|
push {lr}
|
||
|
movs r0, 0xD
|
||
|
bl GetSubstructPtr
|
||
|
adds r1, r0, 0
|
||
|
ldrh r0, [r1, 0xC]
|
||
|
cmp r0, 0x18
|
||
|
ble _081D096C
|
||
|
subs r0, 0x1B
|
||
|
lsls r0, 2
|
||
|
adds r1, 0x78
|
||
|
b _081D0970
|
||
|
_081D096C:
|
||
|
lsls r0, 2
|
||
|
adds r1, 0x14
|
||
|
_081D0970:
|
||
|
adds r1, r0
|
||
|
ldr r0, [r1]
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0954
|
||
|
|
||
|
thumb_func_start sub_81D0978
|
||
|
sub_81D0978: @ 81D0978
|
||
|
push {r4,lr}
|
||
|
ldr r1, =0x0000101c
|
||
|
movs r0, 0xE
|
||
|
bl AllocSubstruct
|
||
|
adds r4, r0, 0
|
||
|
cmp r4, 0
|
||
|
beq _081D09A8
|
||
|
ldr r0, =sub_81D0A6C
|
||
|
movs r1, 0x1
|
||
|
bl CreateLoopedTask
|
||
|
str r0, [r4, 0x4]
|
||
|
ldr r0, =sub_81D0A58
|
||
|
str r0, [r4]
|
||
|
movs r0, 0x1
|
||
|
b _081D09AA
|
||
|
.pool
|
||
|
_081D09A8:
|
||
|
movs r0, 0
|
||
|
_081D09AA:
|
||
|
pop {r4}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0978
|
||
|
|
||
|
thumb_func_start sub_81D09B0
|
||
|
sub_81D09B0: @ 81D09B0
|
||
|
push {r4,r5,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
ldr r0, =gUnknown_08624BA0
|
||
|
lsls r4, 2
|
||
|
adds r4, r0
|
||
|
ldr r0, [r4]
|
||
|
movs r1, 0x1
|
||
|
bl CreateLoopedTask
|
||
|
str r0, [r5, 0x4]
|
||
|
ldr r0, =sub_81D0A58
|
||
|
str r0, [r5]
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D09B0
|
||
|
|
||
|
thumb_func_start sub_81D09E0
|
||
|
sub_81D09E0: @ 81D09E0
|
||
|
push {lr}
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
ldr r0, [r0]
|
||
|
bl _call_via_r0
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D09E0
|
||
|
|
||
|
thumb_func_start sub_81D09F4
|
||
|
sub_81D09F4: @ 81D09F4
|
||
|
push {r4,lr}
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r4, r0, 0
|
||
|
ldrb r0, [r4, 0xA]
|
||
|
bl RemoveWindow
|
||
|
ldrb r0, [r4, 0x8]
|
||
|
bl RemoveWindow
|
||
|
ldrb r0, [r4, 0xC]
|
||
|
bl RemoveWindow
|
||
|
ldrb r0, [r4, 0xE]
|
||
|
bl RemoveWindow
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D1178
|
||
|
movs r0, 0x9
|
||
|
bl FreeSpriteTilesByTag
|
||
|
movs r0, 0xF
|
||
|
bl FreeSpritePaletteByTag
|
||
|
movs r0, 0x10
|
||
|
bl FreeSpritePaletteByTag
|
||
|
movs r0, 0x11
|
||
|
bl FreeSpritePaletteByTag
|
||
|
movs r0, 0x12
|
||
|
bl FreeSpritePaletteByTag
|
||
|
movs r0, 0x13
|
||
|
bl FreeSpritePaletteByTag
|
||
|
ldr r0, [r4, 0x14]
|
||
|
bl FreeSpriteOamMatrix
|
||
|
ldr r0, [r4, 0x14]
|
||
|
bl DestroySprite
|
||
|
movs r0, 0xE
|
||
|
bl FreePokenavSubstruct
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D09F4
|
||
|
|
||
|
thumb_func_start sub_81D0A58
|
||
|
sub_81D0A58: @ 81D0A58
|
||
|
push {lr}
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
ldr r0, [r0, 0x4]
|
||
|
bl IsLoopedTaskActive
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0A58
|
||
|
|
||
|
thumb_func_start sub_81D0A6C
|
||
|
sub_81D0A6C: @ 81D0A6C
|
||
|
push {r4,r5,lr}
|
||
|
sub sp, 0x8
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
cmp r4, 0x9
|
||
|
bls _081D0A80
|
||
|
b _081D0C48
|
||
|
_081D0A80:
|
||
|
lsls r0, r4, 2
|
||
|
ldr r1, =_081D0A90
|
||
|
adds r0, r1
|
||
|
ldr r0, [r0]
|
||
|
mov pc, r0
|
||
|
.pool
|
||
|
.align 2, 0
|
||
|
_081D0A90:
|
||
|
.4byte _081D0AB8
|
||
|
.4byte _081D0B04
|
||
|
.4byte _081D0B74
|
||
|
.4byte _081D0B88
|
||
|
.4byte _081D0B9C
|
||
|
.4byte _081D0BB0
|
||
|
.4byte _081D0BC4
|
||
|
.4byte _081D0BD8
|
||
|
.4byte _081D0BE8
|
||
|
.4byte _081D0C3C
|
||
|
_081D0AB8:
|
||
|
ldr r0, =gUnknown_08624B98
|
||
|
movs r1, 0x2
|
||
|
bl InitBgTemplates
|
||
|
ldr r1, =gUnknown_08DDE030
|
||
|
movs r0, 0
|
||
|
str r0, [sp]
|
||
|
movs r0, 0x2
|
||
|
movs r2, 0
|
||
|
movs r3, 0
|
||
|
bl decompress_and_copy_tile_data_to_vram
|
||
|
adds r1, r5, 0
|
||
|
adds r1, 0x1C
|
||
|
movs r0, 0x2
|
||
|
bl SetBgTilemapBuffer
|
||
|
ldr r1, =gUnknown_08DDE12C
|
||
|
movs r0, 0x2
|
||
|
movs r2, 0
|
||
|
movs r3, 0
|
||
|
bl CopyToBgTilemapBuffer
|
||
|
ldr r0, =gUnknown_08DDE010
|
||
|
movs r1, 0x10
|
||
|
movs r2, 0x20
|
||
|
bl CopyPaletteIntoBufferUnfaded
|
||
|
b _081D0BBA
|
||
|
.pool
|
||
|
_081D0B04:
|
||
|
bl free_temp_tile_data_buffers_if_possible
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
cmp r4, 0
|
||
|
beq _081D0B12
|
||
|
b _081D0C44
|
||
|
_081D0B12:
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0x1
|
||
|
bl sub_8199DF0
|
||
|
ldr r1, =gUnknown_086240B8
|
||
|
str r4, [sp]
|
||
|
movs r0, 0x1
|
||
|
movs r2, 0
|
||
|
movs r3, 0x1
|
||
|
bl decompress_and_copy_tile_data_to_vram
|
||
|
ldr r0, =0x0000081c
|
||
|
adds r1, r5, r0
|
||
|
movs r0, 0x1
|
||
|
bl SetBgTilemapBuffer
|
||
|
movs r0, 0x20
|
||
|
str r0, [sp]
|
||
|
movs r0, 0x14
|
||
|
str r0, [sp, 0x4]
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0
|
||
|
bl FillBgTilemapBufferRect_Palette0
|
||
|
ldr r0, =gUnknown_08623FF8
|
||
|
movs r1, 0x20
|
||
|
movs r2, 0xA0
|
||
|
bl CopyPaletteIntoBufferUnfaded
|
||
|
ldr r0, =gUnknown_08624098
|
||
|
movs r1, 0xA0
|
||
|
movs r2, 0x20
|
||
|
bl CopyPaletteIntoBufferUnfaded
|
||
|
movs r0, 0x1
|
||
|
b _081D0BBC
|
||
|
.pool
|
||
|
_081D0B74:
|
||
|
bl free_temp_tile_data_buffers_if_possible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0C44
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D0E60
|
||
|
movs r0, 0
|
||
|
b _081D0C4A
|
||
|
_081D0B88:
|
||
|
bl free_temp_tile_data_buffers_if_possible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0C44
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D0FCC
|
||
|
movs r0, 0
|
||
|
b _081D0C4A
|
||
|
_081D0B9C:
|
||
|
bl free_temp_tile_data_buffers_if_possible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0C44
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D10A4
|
||
|
movs r0, 0
|
||
|
b _081D0C4A
|
||
|
_081D0BB0:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0C44
|
||
|
_081D0BBA:
|
||
|
movs r0, 0x2
|
||
|
_081D0BBC:
|
||
|
bl CopyBgTilemapBufferToVram
|
||
|
movs r0, 0
|
||
|
b _081D0C4A
|
||
|
_081D0BC4:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0C44
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1148
|
||
|
movs r0, 0x1
|
||
|
b _081D0C4A
|
||
|
_081D0BD8:
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D12D8
|
||
|
movs r0, 0xA
|
||
|
bl sub_81C7BA4
|
||
|
movs r0, 0
|
||
|
b _081D0C4A
|
||
|
_081D0BE8:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0C44
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D13FC
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
bl ChangeBgX
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
bl ChangeBgY
|
||
|
movs r0, 0x2
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
bl ChangeBgX
|
||
|
movs r0, 0x2
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
bl ChangeBgY
|
||
|
movs r0, 0x1
|
||
|
bl ShowBg
|
||
|
movs r0, 0x2
|
||
|
bl ShowBg
|
||
|
movs r0, 0x3
|
||
|
bl HideBg
|
||
|
movs r0, 0x1
|
||
|
bl sub_81C7AC0
|
||
|
movs r0, 0
|
||
|
b _081D0C4A
|
||
|
_081D0C3C:
|
||
|
bl IsPaletteFadeActive
|
||
|
cmp r0, 0
|
||
|
beq _081D0C48
|
||
|
_081D0C44:
|
||
|
movs r0, 0x2
|
||
|
b _081D0C4A
|
||
|
_081D0C48:
|
||
|
movs r0, 0x4
|
||
|
_081D0C4A:
|
||
|
add sp, 0x8
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0A6C
|
||
|
|
||
|
thumb_func_start sub_81D0C54
|
||
|
sub_81D0C54: @ 81D0C54
|
||
|
push {lr}
|
||
|
cmp r0, 0
|
||
|
beq _081D0C60
|
||
|
cmp r0, 0x1
|
||
|
beq _081D0C70
|
||
|
b _081D0C7C
|
||
|
_081D0C60:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
movs r0, 0
|
||
|
bl sub_81C7AC0
|
||
|
movs r0, 0
|
||
|
b _081D0C7E
|
||
|
_081D0C70:
|
||
|
bl IsPaletteFadeActive
|
||
|
cmp r0, 0
|
||
|
beq _081D0C7C
|
||
|
movs r0, 0x2
|
||
|
b _081D0C7E
|
||
|
_081D0C7C:
|
||
|
movs r0, 0x4
|
||
|
_081D0C7E:
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0C54
|
||
|
|
||
|
thumb_func_start sub_81D0C84
|
||
|
sub_81D0C84: @ 81D0C84
|
||
|
push {r4,r5,lr}
|
||
|
adds r5, r0, 0
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r4, r0, 0
|
||
|
cmp r5, 0x6
|
||
|
bhi _081D0D24
|
||
|
lsls r0, r5, 2
|
||
|
ldr r1, =_081D0CA4
|
||
|
adds r0, r1
|
||
|
ldr r0, [r0]
|
||
|
mov pc, r0
|
||
|
.pool
|
||
|
.align 2, 0
|
||
|
_081D0CA4:
|
||
|
.4byte _081D0CC0
|
||
|
.4byte _081D0CD0
|
||
|
.4byte _081D0CE4
|
||
|
.4byte _081D0CEE
|
||
|
.4byte _081D0CF8
|
||
|
.4byte _081D0D02
|
||
|
.4byte _081D0D16
|
||
|
_081D0CC0:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D11D8
|
||
|
movs r0, 0
|
||
|
b _081D0D26
|
||
|
_081D0CD0:
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D1234
|
||
|
cmp r0, 0
|
||
|
bne _081D0D20
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0FF0
|
||
|
movs r0, 0x1
|
||
|
b _081D0D26
|
||
|
_081D0CE4:
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D12D8
|
||
|
movs r0, 0x1
|
||
|
b _081D0D26
|
||
|
_081D0CEE:
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D10D0
|
||
|
movs r0, 0x1
|
||
|
b _081D0D26
|
||
|
_081D0CF8:
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0E84
|
||
|
movs r0, 0x1
|
||
|
b _081D0D26
|
||
|
_081D0D02:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081D0D20
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D11FC
|
||
|
movs r0, 0
|
||
|
b _081D0D26
|
||
|
_081D0D16:
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D1234
|
||
|
cmp r0, 0
|
||
|
beq _081D0D24
|
||
|
_081D0D20:
|
||
|
movs r0, 0x2
|
||
|
b _081D0D26
|
||
|
_081D0D24:
|
||
|
movs r0, 0x4
|
||
|
_081D0D26:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0C84
|
||
|
|
||
|
thumb_func_start sub_81D0D2C
|
||
|
sub_81D0D2C: @ 81D0D2C
|
||
|
push {r4,r5,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
cmp r4, 0x1
|
||
|
beq _081D0D5C
|
||
|
cmp r4, 0x1
|
||
|
bgt _081D0D46
|
||
|
cmp r4, 0
|
||
|
beq _081D0D4C
|
||
|
b _081D0D84
|
||
|
_081D0D46:
|
||
|
cmp r4, 0x2
|
||
|
beq _081D0D76
|
||
|
b _081D0D84
|
||
|
_081D0D4C:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1448
|
||
|
movs r0, 0
|
||
|
b _081D0D86
|
||
|
_081D0D5C:
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1524
|
||
|
cmp r0, 0
|
||
|
bne _081D0D80
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D0EFC
|
||
|
movs r0, 0xB
|
||
|
bl sub_81C7BA4
|
||
|
movs r0, 0
|
||
|
b _081D0D86
|
||
|
_081D0D76:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _081D0D84
|
||
|
_081D0D80:
|
||
|
movs r0, 0x2
|
||
|
b _081D0D86
|
||
|
_081D0D84:
|
||
|
movs r0, 0x4
|
||
|
_081D0D86:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0D2C
|
||
|
|
||
|
thumb_func_start sub_81D0D8C
|
||
|
sub_81D0D8C: @ 81D0D8C
|
||
|
push {r4,r5,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
cmp r4, 0x1
|
||
|
beq _081D0DC0
|
||
|
cmp r4, 0x1
|
||
|
bgt _081D0DA6
|
||
|
cmp r4, 0
|
||
|
beq _081D0DB0
|
||
|
b _081D0DF6
|
||
|
_081D0DA6:
|
||
|
cmp r4, 0x2
|
||
|
beq _081D0DD4
|
||
|
cmp r4, 0x3
|
||
|
beq _081D0DE8
|
||
|
b _081D0DF6
|
||
|
_081D0DB0:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1500
|
||
|
movs r0, 0
|
||
|
b _081D0DF8
|
||
|
_081D0DC0:
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1524
|
||
|
cmp r0, 0
|
||
|
bne _081D0DF2
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1448
|
||
|
movs r0, 0
|
||
|
b _081D0DF8
|
||
|
_081D0DD4:
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1524
|
||
|
cmp r0, 0
|
||
|
bne _081D0DF2
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D0EFC
|
||
|
movs r0, 0
|
||
|
b _081D0DF8
|
||
|
_081D0DE8:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _081D0DF6
|
||
|
_081D0DF2:
|
||
|
movs r0, 0x2
|
||
|
b _081D0DF8
|
||
|
_081D0DF6:
|
||
|
movs r0, 0x4
|
||
|
_081D0DF8:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0D8C
|
||
|
|
||
|
thumb_func_start sub_81D0E00
|
||
|
sub_81D0E00: @ 81D0E00
|
||
|
push {r4,r5,lr}
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0xE
|
||
|
bl GetSubstructPtr
|
||
|
adds r5, r0, 0
|
||
|
cmp r4, 0x1
|
||
|
beq _081D0E30
|
||
|
cmp r4, 0x1
|
||
|
bgt _081D0E1A
|
||
|
cmp r4, 0
|
||
|
beq _081D0E20
|
||
|
b _081D0E58
|
||
|
_081D0E1A:
|
||
|
cmp r4, 0x2
|
||
|
beq _081D0E4A
|
||
|
b _081D0E58
|
||
|
_081D0E20:
|
||
|
movs r0, 0x5
|
||
|
bl PlaySE
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1500
|
||
|
movs r0, 0
|
||
|
b _081D0E5A
|
||
|
_081D0E30:
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D1524
|
||
|
cmp r0, 0
|
||
|
bne _081D0E54
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D0E84
|
||
|
movs r0, 0xA
|
||
|
bl sub_81C7BA4
|
||
|
movs r0, 0
|
||
|
b _081D0E5A
|
||
|
_081D0E4A:
|
||
|
bl IsDma3ManagerBusyWithBgCopy
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _081D0E58
|
||
|
_081D0E54:
|
||
|
movs r0, 0x2
|
||
|
b _081D0E5A
|
||
|
_081D0E58:
|
||
|
movs r0, 0x4
|
||
|
_081D0E5A:
|
||
|
pop {r4,r5}
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
thumb_func_end sub_81D0E00
|
||
|
|
||
|
thumb_func_start sub_81D0E60
|
||
|
sub_81D0E60: @ 81D0E60
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r0, =gUnknown_08624BB8
|
||
|
bl AddWindow
|
||
|
strh r0, [r4, 0xA]
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
bl PutWindowTilemap
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0E84
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D0E60
|
||
|
|
||
|
thumb_func_start sub_81D0E84
|
||
|
sub_81D0E84: @ 81D0E84
|
||
|
push {r4,r5,lr}
|
||
|
sub sp, 0x10
|
||
|
adds r5, r0, 0
|
||
|
ldr r1, =gUnknown_08624BC0
|
||
|
add r0, sp, 0xC
|
||
|
movs r2, 0x3
|
||
|
bl memcpy
|
||
|
ldr r4, =gStringVar1
|
||
|
bl sub_81D07D8
|
||
|
adds r1, r0, 0
|
||
|
adds r0, r4, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0x2
|
||
|
bl ConvertIntToDecimalStringN
|
||
|
bl DynamicPlaceholderTextUtil_Reset
|
||
|
movs r0, 0
|
||
|
adds r1, r4, 0
|
||
|
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
||
|
ldr r4, =gStringVar4
|
||
|
ldr r1, =gText_RibbonsF700
|
||
|
adds r0, r4, 0
|
||
|
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
|
||
|
ldrb r0, [r5, 0xA]
|
||
|
movs r1, 0x44
|
||
|
bl FillWindowPixelBuffer
|
||
|
ldrb r0, [r5, 0xA]
|
||
|
add r1, sp, 0xC
|
||
|
str r1, [sp]
|
||
|
movs r1, 0x1
|
||
|
negs r1, r1
|
||
|
str r1, [sp, 0x4]
|
||
|
str r4, [sp, 0x8]
|
||
|
movs r1, 0x1
|
||
|
movs r2, 0
|
||
|
movs r3, 0x1
|
||
|
bl AddTextPrinterParameterized3
|
||
|
ldrb r0, [r5, 0xA]
|
||
|
movs r1, 0x2
|
||
|
bl CopyWindowToVram
|
||
|
add sp, 0x10
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D0E84
|
||
|
|
||
|
thumb_func_start sub_81D0EFC
|
||
|
sub_81D0EFC: @ 81D0EFC
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r8
|
||
|
push {r7}
|
||
|
sub sp, 0x10
|
||
|
adds r7, r0, 0
|
||
|
bl sub_81D0954
|
||
|
adds r5, r0, 0
|
||
|
ldr r1, =gUnknown_08624BC0
|
||
|
add r0, sp, 0xC
|
||
|
movs r2, 0x3
|
||
|
bl memcpy
|
||
|
ldrb r0, [r7, 0xA]
|
||
|
movs r1, 0x44
|
||
|
bl FillWindowPixelBuffer
|
||
|
cmp r5, 0x18
|
||
|
bhi _081D0F60
|
||
|
lsls r1, r5, 3
|
||
|
ldr r0, =gRibbonDescriptionPointers
|
||
|
adds r6, r1, r0
|
||
|
movs r5, 0x80
|
||
|
lsls r5, 17
|
||
|
movs r4, 0x1
|
||
|
_081D0F2E:
|
||
|
ldrb r0, [r7, 0xA]
|
||
|
lsrs r3, r5, 24
|
||
|
add r1, sp, 0xC
|
||
|
str r1, [sp]
|
||
|
movs r1, 0x1
|
||
|
negs r1, r1
|
||
|
str r1, [sp, 0x4]
|
||
|
ldm r6!, {r1}
|
||
|
str r1, [sp, 0x8]
|
||
|
movs r1, 0x1
|
||
|
movs r2, 0
|
||
|
bl AddTextPrinterParameterized3
|
||
|
movs r0, 0x80
|
||
|
lsls r0, 21
|
||
|
adds r5, r0
|
||
|
subs r4, 0x1
|
||
|
cmp r4, 0
|
||
|
bge _081D0F2E
|
||
|
b _081D0FAA
|
||
|
.pool
|
||
|
_081D0F60:
|
||
|
ldr r0, =gSaveBlock1Ptr
|
||
|
ldr r0, [r0]
|
||
|
adds r0, r5
|
||
|
ldr r1, =0x0000318f
|
||
|
adds r0, r1
|
||
|
ldrb r5, [r0]
|
||
|
cmp r5, 0
|
||
|
beq _081D0FB2
|
||
|
subs r5, 0x1
|
||
|
movs r4, 0
|
||
|
ldr r0, =gGiftRibbonDescriptionPointers
|
||
|
mov r8, r0
|
||
|
movs r6, 0x80
|
||
|
lsls r6, 17
|
||
|
_081D0F7C:
|
||
|
ldrb r0, [r7, 0xA]
|
||
|
lsrs r3, r6, 24
|
||
|
add r1, sp, 0xC
|
||
|
str r1, [sp]
|
||
|
movs r1, 0x1
|
||
|
negs r1, r1
|
||
|
str r1, [sp, 0x4]
|
||
|
lsls r1, r4, 2
|
||
|
lsls r2, r5, 3
|
||
|
adds r1, r2
|
||
|
add r1, r8
|
||
|
ldr r1, [r1]
|
||
|
str r1, [sp, 0x8]
|
||
|
movs r1, 0x1
|
||
|
movs r2, 0
|
||
|
bl AddTextPrinterParameterized3
|
||
|
movs r0, 0x80
|
||
|
lsls r0, 21
|
||
|
adds r6, r0
|
||
|
adds r4, 0x1
|
||
|
cmp r4, 0x1
|
||
|
ble _081D0F7C
|
||
|
_081D0FAA:
|
||
|
ldrb r0, [r7, 0xA]
|
||
|
movs r1, 0x2
|
||
|
bl CopyWindowToVram
|
||
|
_081D0FB2:
|
||
|
add sp, 0x10
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D0EFC
|
||
|
|
||
|
thumb_func_start sub_81D0FCC
|
||
|
sub_81D0FCC: @ 81D0FCC
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r0, =gUnknown_08624BC4
|
||
|
bl AddWindow
|
||
|
strh r0, [r4, 0x8]
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
bl PutWindowTilemap
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D0FF0
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D0FCC
|
||
|
|
||
|
thumb_func_start sub_81D0FF0
|
||
|
sub_81D0FF0: @ 81D0FF0
|
||
|
push {r4-r7,lr}
|
||
|
sub sp, 0x10
|
||
|
ldrh r7, [r0, 0x8]
|
||
|
ldrb r5, [r0, 0x8]
|
||
|
adds r0, r5, 0
|
||
|
movs r1, 0x11
|
||
|
bl FillWindowPixelBuffer
|
||
|
ldr r4, =gStringVar3
|
||
|
mov r6, sp
|
||
|
adds r6, 0xD
|
||
|
adds r0, r4, 0
|
||
|
add r1, sp, 0xC
|
||
|
adds r2, r6, 0
|
||
|
bl sub_81D06E4
|
||
|
movs r0, 0x1
|
||
|
str r0, [sp]
|
||
|
movs r0, 0xFF
|
||
|
str r0, [sp, 0x4]
|
||
|
movs r0, 0
|
||
|
str r0, [sp, 0x8]
|
||
|
adds r0, r5, 0
|
||
|
movs r1, 0x1
|
||
|
adds r2, r4, 0
|
||
|
movs r3, 0
|
||
|
bl AddTextPrinterParameterized
|
||
|
ldrb r0, [r6]
|
||
|
cmp r0, 0
|
||
|
beq _081D1040
|
||
|
cmp r0, 0xFE
|
||
|
beq _081D1048
|
||
|
ldr r1, =gUnknown_08624BE4
|
||
|
b _081D104A
|
||
|
.pool
|
||
|
_081D1040:
|
||
|
ldr r1, =gUnknown_08624BCC
|
||
|
b _081D104A
|
||
|
.pool
|
||
|
_081D1048:
|
||
|
ldr r1, =gUnknown_08624BD8
|
||
|
_081D104A:
|
||
|
ldr r5, =gStringVar1
|
||
|
adds r0, r5, 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
|
||
|
add r1, sp, 0xC
|
||
|
ldrb r1, [r1]
|
||
|
movs r2, 0
|
||
|
movs r3, 0x3
|
||
|
bl ConvertIntToDecimalStringN
|
||
|
lsls r4, r7, 24
|
||
|
lsrs r4, 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
|
||
|
adds r2, r5, 0
|
||
|
movs r3, 0x3C
|
||
|
bl AddTextPrinterParameterized
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x2
|
||
|
bl CopyWindowToVram
|
||
|
add sp, 0x10
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D0FF0
|
||
|
|
||
|
thumb_func_start sub_81D10A4
|
||
|
sub_81D10A4: @ 81D10A4
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r0, =gUnknown_08624BE8
|
||
|
bl AddWindow
|
||
|
strh r0, [r4, 0xC]
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
movs r1, 0x11
|
||
|
bl FillWindowPixelBuffer
|
||
|
ldrb r0, [r4, 0xC]
|
||
|
bl PutWindowTilemap
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D10D0
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D10A4
|
||
|
|
||
|
thumb_func_start sub_81D10D0
|
||
|
sub_81D10D0: @ 81D10D0
|
||
|
push {r4-r6,lr}
|
||
|
mov r6, r8
|
||
|
push {r6}
|
||
|
sub sp, 0xC
|
||
|
mov r8, r0
|
||
|
bl sub_81D06C4
|
||
|
adds r4, r0, 0
|
||
|
adds r4, 0x1
|
||
|
bl sub_81D06D4
|
||
|
adds r6, r0, 0
|
||
|
ldr r5, =gStringVar1
|
||
|
adds r0, r5, 0
|
||
|
adds r1, r4, 0
|
||
|
movs r2, 0x1
|
||
|
movs r3, 0x3
|
||
|
bl ConvertIntToDecimalStringN
|
||
|
movs r1, 0xBA
|
||
|
strb r1, [r0]
|
||
|
adds r0, 0x1
|
||
|
adds r1, r6, 0
|
||
|
movs r2, 0x1
|
||
|
movs r3, 0x3
|
||
|
bl ConvertIntToDecimalStringN
|
||
|
movs r0, 0x1
|
||
|
adds r1, r5, 0
|
||
|
movs r2, 0x38
|
||
|
bl GetStringCenterAlignXOffset
|
||
|
adds r3, r0, 0
|
||
|
mov r1, r8
|
||
|
ldrb r0, [r1, 0xC]
|
||
|
lsls r3, 24
|
||
|
lsrs r3, 24
|
||
|
movs r1, 0x1
|
||
|
str r1, [sp]
|
||
|
movs r1, 0xFF
|
||
|
str r1, [sp, 0x4]
|
||
|
movs r1, 0
|
||
|
str r1, [sp, 0x8]
|
||
|
movs r1, 0x1
|
||
|
adds r2, r5, 0
|
||
|
bl AddTextPrinterParameterized
|
||
|
mov r1, r8
|
||
|
ldrb r0, [r1, 0xC]
|
||
|
movs r1, 0x2
|
||
|
bl CopyWindowToVram
|
||
|
add sp, 0xC
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D10D0
|
||
|
|
||
|
thumb_func_start sub_81D1148
|
||
|
sub_81D1148: @ 81D1148
|
||
|
push {r4,lr}
|
||
|
sub sp, 0xC
|
||
|
adds r4, r0, 0
|
||
|
add r1, sp, 0x4
|
||
|
add r2, sp, 0x8
|
||
|
mov r0, sp
|
||
|
bl sub_81D0760
|
||
|
bl ResetAllPicSprites
|
||
|
movs r0, 0x28
|
||
|
movs r1, 0x68
|
||
|
bl sub_81D1184
|
||
|
strh r0, [r4, 0x10]
|
||
|
movs r0, 0xF
|
||
|
movs r1, 0
|
||
|
bl sub_81C7990
|
||
|
add sp, 0xC
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D1148
|
||
|
|
||
|
thumb_func_start sub_81D1178
|
||
|
sub_81D1178: @ 81D1178
|
||
|
push {lr}
|
||
|
ldrh r0, [r0, 0x10]
|
||
|
bl FreeAndDestroyMonPicSprite
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D1178
|
||
|
|
||
|
thumb_func_start sub_81D1184
|
||
|
sub_81D1184: @ 81D1184
|
||
|
push {lr}
|
||
|
sub sp, 0x1C
|
||
|
add r1, sp, 0x14
|
||
|
add r2, sp, 0x18
|
||
|
add r0, sp, 0x10
|
||
|
bl sub_81D0760
|
||
|
add r0, sp, 0x10
|
||
|
ldrh r0, [r0]
|
||
|
ldr r1, [sp, 0x18]
|
||
|
ldr r2, [sp, 0x14]
|
||
|
movs r3, 0x28
|
||
|
str r3, [sp]
|
||
|
movs r3, 0x68
|
||
|
str r3, [sp, 0x4]
|
||
|
movs r3, 0xF
|
||
|
str r3, [sp, 0x8]
|
||
|
ldr r3, =0x0000ffff
|
||
|
str r3, [sp, 0xC]
|
||
|
movs r3, 0x1
|
||
|
bl CreateMonPicSprite_HandleDeoxys
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
ldr r1, =gSprites
|
||
|
lsls r2, r0, 4
|
||
|
adds r2, r0
|
||
|
lsls r2, 2
|
||
|
adds r2, r1
|
||
|
ldrb r3, [r2, 0x5]
|
||
|
movs r1, 0xD
|
||
|
negs r1, r1
|
||
|
ands r1, r3
|
||
|
strb r1, [r2, 0x5]
|
||
|
add sp, 0x1C
|
||
|
pop {r1}
|
||
|
bx r1
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1184
|
||
|
|
||
|
thumb_func_start sub_81D11D8
|
||
|
sub_81D11D8: @ 81D11D8
|
||
|
push {lr}
|
||
|
ldrh r1, [r0, 0x10]
|
||
|
lsls r0, r1, 4
|
||
|
adds r0, r1
|
||
|
lsls r0, 2
|
||
|
ldr r1, =gSprites
|
||
|
adds r0, r1
|
||
|
movs r2, 0x20
|
||
|
negs r2, r2
|
||
|
movs r1, 0x28
|
||
|
movs r3, 0x6
|
||
|
bl sub_81D1258
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D11D8
|
||
|
|
||
|
thumb_func_start sub_81D11FC
|
||
|
sub_81D11FC: @ 81D11FC
|
||
|
push {r4,r5,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldrh r0, [r4, 0x10]
|
||
|
bl FreeAndDestroyMonPicSprite
|
||
|
movs r5, 0x20
|
||
|
negs r5, r5
|
||
|
adds r0, r5, 0
|
||
|
movs r1, 0x68
|
||
|
bl sub_81D1184
|
||
|
strh r0, [r4, 0x10]
|
||
|
ldrh r1, [r4, 0x10]
|
||
|
lsls r0, r1, 4
|
||
|
adds r0, r1
|
||
|
lsls r0, 2
|
||
|
ldr r1, =gSprites
|
||
|
adds r0, r1
|
||
|
adds r1, r5, 0
|
||
|
movs r2, 0x28
|
||
|
movs r3, 0x6
|
||
|
bl sub_81D1258
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D11FC
|
||
|
|
||
|
thumb_func_start sub_81D1234
|
||
|
sub_81D1234: @ 81D1234
|
||
|
ldr r2, =gSprites
|
||
|
ldrh r1, [r0, 0x10]
|
||
|
lsls r0, r1, 4
|
||
|
adds r0, r1
|
||
|
lsls r0, 2
|
||
|
adds r2, 0x1C
|
||
|
adds r0, r2
|
||
|
ldr r1, [r0]
|
||
|
ldr r0, =SpriteCallbackDummy
|
||
|
eors r1, r0
|
||
|
negs r0, r1
|
||
|
orrs r0, r1
|
||
|
lsrs r0, 31
|
||
|
bx lr
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1234
|
||
|
|
||
|
thumb_func_start sub_81D1258
|
||
|
sub_81D1258: @ 81D1258
|
||
|
push {r4-r6,lr}
|
||
|
adds r4, r0, 0
|
||
|
adds r6, r2, 0
|
||
|
adds r5, r3, 0
|
||
|
subs r0, r6, r1
|
||
|
strh r1, [r4, 0x20]
|
||
|
lsls r1, 4
|
||
|
strh r1, [r4, 0x2E]
|
||
|
lsls r0, 4
|
||
|
adds r1, r5, 0
|
||
|
bl __udivsi3
|
||
|
strh r0, [r4, 0x30]
|
||
|
strh r5, [r4, 0x32]
|
||
|
strh r6, [r4, 0x34]
|
||
|
ldr r0, =sub_81D1284
|
||
|
str r0, [r4, 0x1C]
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1258
|
||
|
|
||
|
thumb_func_start sub_81D1284
|
||
|
sub_81D1284: @ 81D1284
|
||
|
push {lr}
|
||
|
adds r2, r0, 0
|
||
|
ldrh r1, [r2, 0x32]
|
||
|
movs r3, 0x32
|
||
|
ldrsh r0, [r2, r3]
|
||
|
cmp r0, 0
|
||
|
beq _081D12C8
|
||
|
subs r0, r1, 0x1
|
||
|
strh r0, [r2, 0x32]
|
||
|
ldrh r0, [r2, 0x30]
|
||
|
ldrh r1, [r2, 0x2E]
|
||
|
adds r0, r1
|
||
|
strh r0, [r2, 0x2E]
|
||
|
lsls r0, 16
|
||
|
asrs r0, 20
|
||
|
strh r0, [r2, 0x20]
|
||
|
movs r1, 0x20
|
||
|
negs r1, r1
|
||
|
cmp r0, r1
|
||
|
bgt _081D12BA
|
||
|
adds r0, r2, 0
|
||
|
adds r0, 0x3E
|
||
|
ldrb r1, [r0]
|
||
|
movs r2, 0x4
|
||
|
orrs r1, r2
|
||
|
strb r1, [r0]
|
||
|
b _081D12D0
|
||
|
_081D12BA:
|
||
|
adds r2, 0x3E
|
||
|
ldrb r1, [r2]
|
||
|
movs r0, 0x5
|
||
|
negs r0, r0
|
||
|
ands r0, r1
|
||
|
strb r0, [r2]
|
||
|
b _081D12D0
|
||
|
_081D12C8:
|
||
|
ldrh r0, [r2, 0x34]
|
||
|
strh r0, [r2, 0x20]
|
||
|
ldr r0, =SpriteCallbackDummy
|
||
|
str r0, [r2, 0x1C]
|
||
|
_081D12D0:
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1284
|
||
|
|
||
|
thumb_func_start sub_81D12D8
|
||
|
sub_81D12D8: @ 81D12D8
|
||
|
push {r4-r6,lr}
|
||
|
bl sub_81D1350
|
||
|
ldr r5, =gUnknown_030012C0
|
||
|
adds r0, r5, 0
|
||
|
bl sub_81D0914
|
||
|
adds r6, r0, 0
|
||
|
ldr r2, =gUnknown_030012C4
|
||
|
movs r1, 0
|
||
|
str r1, [r2]
|
||
|
ldr r0, [r5]
|
||
|
cmp r1, r0
|
||
|
bcs _081D130A
|
||
|
adds r4, r2, 0
|
||
|
_081D12F6:
|
||
|
ldr r0, [r4]
|
||
|
ldm r6!, {r1}
|
||
|
bl sub_81D1370
|
||
|
ldr r1, [r4]
|
||
|
adds r1, 0x1
|
||
|
str r1, [r4]
|
||
|
ldr r0, [r5]
|
||
|
cmp r1, r0
|
||
|
bcc _081D12F6
|
||
|
_081D130A:
|
||
|
ldr r4, =gUnknown_030012C0
|
||
|
adds r0, r4, 0
|
||
|
bl sub_81D092C
|
||
|
adds r6, r0, 0
|
||
|
ldr r2, =gUnknown_030012C4
|
||
|
movs r1, 0
|
||
|
str r1, [r2]
|
||
|
ldr r0, [r4]
|
||
|
cmp r1, r0
|
||
|
bcs _081D133A
|
||
|
adds r4, r2, 0
|
||
|
_081D1322:
|
||
|
ldr r0, [r4]
|
||
|
adds r0, 0x1B
|
||
|
ldm r6!, {r1}
|
||
|
bl sub_81D1370
|
||
|
ldr r1, [r4]
|
||
|
adds r1, 0x1
|
||
|
str r1, [r4]
|
||
|
ldr r0, =gUnknown_030012C0
|
||
|
ldr r0, [r0]
|
||
|
cmp r1, r0
|
||
|
bcc _081D1322
|
||
|
_081D133A:
|
||
|
movs r0, 0x1
|
||
|
bl CopyBgTilemapBufferToVram
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D12D8
|
||
|
|
||
|
thumb_func_start sub_81D1350
|
||
|
sub_81D1350: @ 81D1350
|
||
|
push {lr}
|
||
|
sub sp, 0x8
|
||
|
movs r0, 0x20
|
||
|
str r0, [sp]
|
||
|
movs r0, 0x14
|
||
|
str r0, [sp, 0x4]
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0
|
||
|
bl FillBgTilemapBufferRect_Palette0
|
||
|
add sp, 0x8
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D1350
|
||
|
|
||
|
thumb_func_start sub_81D1370
|
||
|
sub_81D1370: @ 81D1370
|
||
|
push {r4-r6,lr}
|
||
|
sub sp, 0x10
|
||
|
adds r4, r0, 0
|
||
|
adds r6, r1, 0
|
||
|
movs r1, 0x9
|
||
|
bl __umodsi3
|
||
|
adds r5, r0, 0
|
||
|
lsls r5, 1
|
||
|
adds r5, 0xB
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x9
|
||
|
bl __udivsi3
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 1
|
||
|
adds r4, 0x4
|
||
|
add r0, sp, 0x8
|
||
|
adds r1, r6, 0
|
||
|
bl sub_81D13BC
|
||
|
lsls r5, 24
|
||
|
lsrs r5, 24
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
movs r0, 0x2
|
||
|
str r0, [sp]
|
||
|
str r0, [sp, 0x4]
|
||
|
movs r0, 0x1
|
||
|
add r1, sp, 0x8
|
||
|
adds r2, r5, 0
|
||
|
adds r3, r4, 0
|
||
|
bl CopyToBgTilemapBufferRect
|
||
|
add sp, 0x10
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81D1370
|
||
|
|
||
|
thumb_func_start sub_81D13BC
|
||
|
sub_81D13BC: @ 81D13BC
|
||
|
push {r4,r5,lr}
|
||
|
ldr r2, =gUnknown_08624BF8
|
||
|
lsls r1, 2
|
||
|
adds r1, r2
|
||
|
ldrh r3, [r1, 0x2]
|
||
|
adds r3, 0x2
|
||
|
lsls r3, 16
|
||
|
ldrh r1, [r1]
|
||
|
lsls r1, 1
|
||
|
adds r1, 0x1
|
||
|
lsls r1, 16
|
||
|
lsrs r1, 16
|
||
|
lsrs r3, 4
|
||
|
adds r2, r1, 0
|
||
|
orrs r2, r3
|
||
|
strh r2, [r0]
|
||
|
movs r5, 0x80
|
||
|
lsls r5, 3
|
||
|
adds r4, r5, 0
|
||
|
orrs r2, r4
|
||
|
strh r2, [r0, 0x2]
|
||
|
adds r1, 0x1
|
||
|
orrs r1, r3
|
||
|
strh r1, [r0, 0x4]
|
||
|
orrs r1, r4
|
||
|
strh r1, [r0, 0x6]
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D13BC
|
||
|
|
||
|
thumb_func_start sub_81D13FC
|
||
|
sub_81D13FC: @ 81D13FC
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r0, =gUnknown_08624C78
|
||
|
bl LoadCompressedSpriteSheet
|
||
|
ldr r0, =gUnknown_08624C80
|
||
|
bl Pokenav_AllocAndLoadPalettes
|
||
|
ldr r0, =gUnknown_08624D04
|
||
|
movs r1, 0
|
||
|
movs r2, 0
|
||
|
movs r3, 0
|
||
|
bl CreateSprite
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
lsls r1, r0, 4
|
||
|
adds r1, r0
|
||
|
lsls r1, 2
|
||
|
ldr r0, =gSprites
|
||
|
adds r1, r0
|
||
|
str r1, [r4, 0x14]
|
||
|
adds r1, 0x3E
|
||
|
ldrb r0, [r1]
|
||
|
movs r2, 0x4
|
||
|
orrs r0, r2
|
||
|
strb r0, [r1]
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D13FC
|
||
|
|
||
|
thumb_func_start sub_81D1448
|
||
|
sub_81D1448: @ 81D1448
|
||
|
push {r4-r6,lr}
|
||
|
mov r6, r8
|
||
|
push {r6}
|
||
|
adds r6, r0, 0
|
||
|
bl sub_81D0944
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 16
|
||
|
lsrs r4, 16
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x9
|
||
|
bl __modsi3
|
||
|
adds r5, r0, 0
|
||
|
lsls r5, 4
|
||
|
adds r5, 0x60
|
||
|
adds r0, r4, 0
|
||
|
movs r1, 0x9
|
||
|
bl __divsi3
|
||
|
lsls r0, 4
|
||
|
adds r0, 0x28
|
||
|
ldr r1, [r6, 0x14]
|
||
|
movs r2, 0
|
||
|
mov r8, r2
|
||
|
strh r5, [r1, 0x20]
|
||
|
ldr r1, [r6, 0x14]
|
||
|
strh r0, [r1, 0x22]
|
||
|
bl sub_81D0954
|
||
|
adds r4, r0, 0
|
||
|
movs r0, 0x9
|
||
|
bl GetSpriteTileStartByTag
|
||
|
ldr r3, [r6, 0x14]
|
||
|
ldr r1, =gUnknown_08624BF8
|
||
|
lsls r4, 2
|
||
|
adds r4, r1
|
||
|
ldrh r1, [r4]
|
||
|
lsls r1, 4
|
||
|
adds r0, r1
|
||
|
ldr r2, =0x000003ff
|
||
|
adds r1, r2, 0
|
||
|
ands r0, r1
|
||
|
ldrh r2, [r3, 0x4]
|
||
|
ldr r1, =0xfffffc00
|
||
|
ands r1, r2
|
||
|
orrs r1, r0
|
||
|
strh r1, [r3, 0x4]
|
||
|
ldrh r0, [r4, 0x2]
|
||
|
adds r0, 0xF
|
||
|
lsls r0, 16
|
||
|
lsrs r0, 16
|
||
|
bl IndexOfSpritePaletteTag
|
||
|
ldr r3, [r6, 0x14]
|
||
|
lsls r0, 4
|
||
|
ldrb r2, [r3, 0x5]
|
||
|
movs r1, 0xF
|
||
|
ands r1, r2
|
||
|
orrs r1, r0
|
||
|
strb r1, [r3, 0x5]
|
||
|
ldr r0, [r6, 0x14]
|
||
|
movs r1, 0x1
|
||
|
bl StartSpriteAffineAnim
|
||
|
ldr r1, [r6, 0x14]
|
||
|
adds r1, 0x3E
|
||
|
ldrb r2, [r1]
|
||
|
movs r0, 0x5
|
||
|
negs r0, r0
|
||
|
ands r0, r2
|
||
|
strb r0, [r1]
|
||
|
ldr r0, [r6, 0x14]
|
||
|
mov r1, r8
|
||
|
strh r1, [r0, 0x2E]
|
||
|
ldr r1, [r6, 0x14]
|
||
|
ldr r0, =sub_81D1538
|
||
|
str r0, [r1, 0x1C]
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1448
|
||
|
|
||
|
thumb_func_start sub_81D1500
|
||
|
sub_81D1500: @ 81D1500
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldr r1, [r4, 0x14]
|
||
|
movs r0, 0x1
|
||
|
strh r0, [r1, 0x2E]
|
||
|
ldr r0, [r4, 0x14]
|
||
|
movs r1, 0x2
|
||
|
bl StartSpriteAffineAnim
|
||
|
ldr r1, [r4, 0x14]
|
||
|
ldr r0, =sub_81D1538
|
||
|
str r0, [r1, 0x1C]
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1500
|
||
|
|
||
|
thumb_func_start sub_81D1524
|
||
|
sub_81D1524: @ 81D1524
|
||
|
ldr r0, [r0, 0x14]
|
||
|
ldr r1, [r0, 0x1C]
|
||
|
ldr r0, =SpriteCallbackDummy
|
||
|
eors r1, r0
|
||
|
negs r0, r1
|
||
|
orrs r0, r1
|
||
|
lsrs r0, 31
|
||
|
bx lr
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1524
|
||
|
|
||
|
thumb_func_start sub_81D1538
|
||
|
sub_81D1538: @ 81D1538
|
||
|
push {lr}
|
||
|
adds r3, r0, 0
|
||
|
adds r0, 0x3F
|
||
|
ldrb r1, [r0]
|
||
|
movs r0, 0x20
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
beq _081D156A
|
||
|
movs r0, 0x3E
|
||
|
adds r0, r3
|
||
|
mov r12, r0
|
||
|
movs r0, 0x1
|
||
|
ldrh r1, [r3, 0x2E]
|
||
|
ands r1, r0
|
||
|
lsls r1, 2
|
||
|
mov r0, r12
|
||
|
ldrb r2, [r0]
|
||
|
movs r0, 0x5
|
||
|
negs r0, r0
|
||
|
ands r0, r2
|
||
|
orrs r0, r1
|
||
|
mov r1, r12
|
||
|
strb r0, [r1]
|
||
|
ldr r0, =SpriteCallbackDummy
|
||
|
str r0, [r3, 0x1C]
|
||
|
_081D156A:
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81D1538
|
||
|
|
||
|
.align 2, 0 @ Don't pad with nop.
|