mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-17 20:17:38 +01:00
7860 lines
117 KiB
ArmAsm
Executable File
7860 lines
117 KiB
ArmAsm
Executable File
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8026988
|
|
sub_8026988: @ 8026988
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x44
|
|
adds r0, 0x48
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
ldrb r6, [r1]
|
|
cmp r6, r8
|
|
bcs _08026A7A
|
|
ldr r0, =gUnknown_082F449C
|
|
mov r9, r0
|
|
_080269A8:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r2, =0x000031a0
|
|
adds r0, r2
|
|
adds r7, r3, r0
|
|
movs r0, 0xB
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
adds r2, r6, r2
|
|
adds r3, 0x24
|
|
ldrb r1, [r3]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 3
|
|
subs r0, r1
|
|
adds r2, r0
|
|
add r2, r9
|
|
ldrb r4, [r2]
|
|
adds r0, r7, 0
|
|
adds r0, 0x1F
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080269FC
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_8028BF8
|
|
b _08026A04
|
|
.pool
|
|
_080269FC:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_8028BF8
|
|
_08026A04:
|
|
adds r0, r7, 0
|
|
adds r0, 0x1F
|
|
adds r5, r0, r4
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x9
|
|
bls _08026A30
|
|
adds r0, r7, 0
|
|
adds r0, 0x14
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r1, 0x3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_8028CA4
|
|
ldrb r1, [r5]
|
|
lsls r1, 25
|
|
movs r0, 0xFF
|
|
lsls r0, 24
|
|
adds r1, r0
|
|
b _08026A52
|
|
_08026A30:
|
|
adds r0, r7, 0
|
|
adds r0, 0x14
|
|
adds r3, r0, r4
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x3
|
|
bne _08026A5C
|
|
movs r0, 0x7
|
|
strb r0, [r5]
|
|
adds r0, r6, 0
|
|
movs r1, 0x6
|
|
bl sub_8028CA4
|
|
ldrb r1, [r5]
|
|
lsls r1, 25
|
|
movs r2, 0xFF
|
|
lsls r2, 24
|
|
adds r1, r2
|
|
_08026A52:
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_8028C7C
|
|
b _08026A70
|
|
_08026A5C:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
bl sub_8028CA4
|
|
ldrb r1, [r5]
|
|
lsls r1, 25
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_8028C7C
|
|
_08026A70:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r8
|
|
bcc _080269A8
|
|
_08026A7A:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8026988
|
|
|
|
thumb_func_start sub_8026A88
|
|
sub_8026A88: @ 8026A88
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r0, [r1]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08026ABA
|
|
adds r6, r1, 0
|
|
_08026A9A:
|
|
lsls r0, r4, 4
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r1, [r6]
|
|
adds r0, r1
|
|
ldr r1, =0x000031cc
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_80286B4
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08026A9A
|
|
_08026ABA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8026A88
|
|
|
|
thumb_func_start sub_8026AC8
|
|
sub_8026AC8: @ 8026AC8
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08026AEA
|
|
_08026AD8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_80286B4
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08026AD8
|
|
_08026AEA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8026AC8
|
|
|
|
thumb_func_start sub_8026AF4
|
|
sub_8026AF4: @ 8026AF4
|
|
push {lr}
|
|
bl sub_8026988
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08026B10
|
|
bl sub_8026AC8
|
|
b _08026B14
|
|
.pool
|
|
_08026B10:
|
|
bl sub_8026A88
|
|
_08026B14:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
bl sub_80288D4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8026AF4
|
|
|
|
thumb_func_start sub_8026B28
|
|
sub_8026B28: @ 8026B28
|
|
push {lr}
|
|
bl sub_8026988
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _08026B44
|
|
bl sub_8026AC8
|
|
b _08026B48
|
|
.pool
|
|
_08026B44:
|
|
bl sub_8026A88
|
|
_08026B48:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
bl sub_80288D4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8026B28
|
|
|
|
thumb_func_start sub_8026B5C
|
|
sub_8026B5C: @ 8026B5C
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x4
|
|
bhi _08026BB4
|
|
lsls r0, 2
|
|
ldr r1, =_08026B78
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08026B78:
|
|
.4byte _08026B8C
|
|
.4byte _08026B94
|
|
.4byte _08026B9C
|
|
.4byte _08026BA4
|
|
.4byte _08026BAC
|
|
_08026B8C:
|
|
movs r0, 0x4
|
|
strb r0, [r3]
|
|
movs r0, 0x7
|
|
b _08026BB2
|
|
_08026B94:
|
|
movs r0, 0x3
|
|
strb r0, [r3]
|
|
movs r0, 0x8
|
|
b _08026BB2
|
|
_08026B9C:
|
|
movs r0, 0x2
|
|
strb r0, [r3]
|
|
movs r0, 0x9
|
|
b _08026BB2
|
|
_08026BA4:
|
|
movs r0, 0x1
|
|
strb r0, [r3]
|
|
movs r0, 0xA
|
|
b _08026BB2
|
|
_08026BAC:
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
movs r0, 0xB
|
|
_08026BB2:
|
|
strb r0, [r2]
|
|
_08026BB4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8026B5C
|
|
|
|
thumb_func_start sub_8026BB8
|
|
sub_8026BB8: @ 8026BB8
|
|
push {r4-r6,lr}
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r0, [r1]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0x1
|
|
cmp r4, r5
|
|
bcs _08026C1E
|
|
adds r6, r1, 0
|
|
_08026BCA:
|
|
ldr r0, [r6]
|
|
movs r1, 0xAC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08026BEC
|
|
adds r0, r4, 0
|
|
bl sub_8027DFC
|
|
ldr r1, [r6]
|
|
movs r2, 0xAC
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
_08026BEC:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08026BCA
|
|
cmp r4, r5
|
|
bcs _08026C1E
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
movs r2, 0xAC
|
|
lsls r2, 1
|
|
adds r1, r0, r2
|
|
_08026C04:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08026C14
|
|
movs r0, 0
|
|
b _08026C20
|
|
.pool
|
|
_08026C14:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08026C04
|
|
_08026C1E:
|
|
movs r0, 0x1
|
|
_08026C20:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8026BB8
|
|
|
|
thumb_func_start sub_8026C28
|
|
sub_8026C28: @ 8026C28
|
|
push {r4,lr}
|
|
movs r1, 0
|
|
ldr r4, =gUnknown_02022C98
|
|
movs r3, 0xAC
|
|
lsls r3, 1
|
|
movs r2, 0
|
|
_08026C34:
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x4
|
|
bls _08026C34
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8026C28
|
|
|
|
thumb_func_start sub_8026C50
|
|
sub_8026C50: @ 8026C50
|
|
push {r4,lr}
|
|
ldr r3, =gUnknown_02022C98
|
|
ldr r1, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0x40
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x9
|
|
bls _08026C88
|
|
movs r4, 0x90
|
|
lsls r4, 1
|
|
adds r0, r1, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08026C88
|
|
movs r0, 0xA
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08026C88
|
|
movs r0, 0x1
|
|
b _08026C8A
|
|
.pool
|
|
_08026C88:
|
|
movs r0, 0
|
|
_08026C8A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8026C50
|
|
|
|
thumb_func_start sub_8026C90
|
|
sub_8026C90: @ 8026C90
|
|
push {r4-r6,lr}
|
|
ldr r4, =gUnknown_02022C98
|
|
ldr r1, [r4]
|
|
adds r2, r1, 0
|
|
adds r2, 0x40
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x9
|
|
bls _08026D14
|
|
adds r0, r1, 0
|
|
adds r0, 0x44
|
|
ldrb r3, [r0]
|
|
adds r0, 0x4
|
|
ldrb r5, [r0]
|
|
movs r0, 0xA
|
|
strb r0, [r2]
|
|
ldr r4, [r4]
|
|
mov r12, r4
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08026D14
|
|
adds r4, r3, 0
|
|
cmp r4, r5
|
|
bcs _08026D04
|
|
mov r0, r12
|
|
adds r0, 0x28
|
|
ldrb r3, [r0]
|
|
lsls r1, r3, 4
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
ldr r6, =gUnknown_082F449C
|
|
subs r0, 0x4
|
|
ldrb r2, [r0]
|
|
subs r2, 0x1
|
|
add r1, r12
|
|
movs r0, 0xB
|
|
muls r3, r0
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 3
|
|
subs r2, r0, r2
|
|
ldr r0, =0x000031bf
|
|
adds r1, r0
|
|
_08026CEA:
|
|
adds r0, r4, r3
|
|
adds r0, r2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA
|
|
bne _08026D14
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08026CEA
|
|
_08026D04:
|
|
movs r0, 0x1
|
|
b _08026D16
|
|
.pool
|
|
_08026D14:
|
|
movs r0, 0
|
|
_08026D16:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8026C90
|
|
|
|
thumb_func_start sub_8026D1C
|
|
sub_8026D1C: @ 8026D1C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, =gUnknown_082F7A9C
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r6, [r0]
|
|
adds r0, r6, 0
|
|
adds r0, 0x90
|
|
adds r0, r5
|
|
mov r9, r0
|
|
ldrb r7, [r0]
|
|
adds r0, r7, 0
|
|
movs r1, 0x7
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
add r4, r8
|
|
adds r0, r7, 0
|
|
movs r1, 0x7
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldrb r4, [r4]
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsls r5, 1
|
|
adds r6, 0x86
|
|
adds r6, r5
|
|
ldrh r1, [r6]
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
bcc _08026D76
|
|
adds r0, r7, 0x1
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
_08026D76:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8026D1C
|
|
|
|
thumb_func_start sub_8026D8C
|
|
sub_8026D8C: @ 8026D8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gUnknown_082F449C+0x1AC
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r1, [r1]
|
|
adds r1, 0x24
|
|
ldrb r1, [r1]
|
|
subs r1, 0x1
|
|
movs r2, 0xB
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8026D8C
|
|
|
|
thumb_func_start sub_8026DB0
|
|
sub_8026DB0: @ 8026DB0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, =gUnknown_02022C98
|
|
ldr r1, [r4]
|
|
adds r1, 0x24
|
|
ldrb r2, [r1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, =gUnknown_082F449C+0x15E
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
adds r1, r0
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
mov r12, r0
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r7, [r0]
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
ldrb r1, [r1]
|
|
mov r8, r1
|
|
movs r3, 0
|
|
ldr r1, =gUnknown_082F449C+0x1E3
|
|
lsls r0, r2, 2
|
|
adds r2, r0, r2
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08026E18
|
|
adds r6, r1, 0
|
|
_08026DFE:
|
|
adds r0, r3, r2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
beq _08026E3C
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r0, r3, r2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08026DFE
|
|
_08026E18:
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
mov r1, r12
|
|
adds r2, r0, r1
|
|
adds r1, r0, r7
|
|
ldrb r0, [r2]
|
|
ldrb r3, [r1]
|
|
cmp r0, r3
|
|
bls _08026E46
|
|
adds r1, r0, 0
|
|
b _08026E48
|
|
.pool
|
|
_08026E3C:
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
b _08026E5A
|
|
_08026E46:
|
|
ldrb r1, [r1]
|
|
_08026E48:
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
mov r2, r8
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4]
|
|
cmp r0, r1
|
|
bls _08026E58
|
|
adds r1, r0, 0
|
|
_08026E58:
|
|
adds r0, r1, 0
|
|
_08026E5A:
|
|
adds r1, r5, 0
|
|
bl sub_8026E70
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8026DB0
|
|
|
|
thumb_func_start sub_8026E70
|
|
sub_8026E70: @ 8026E70
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_02022C98
|
|
ldr r2, [r2]
|
|
adds r2, 0xE8
|
|
adds r2, r1
|
|
ldrb r4, [r2]
|
|
movs r1, 0x7
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bhi _08026EDE
|
|
lsls r0, 2
|
|
ldr r1, =_08026EA4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08026EA4:
|
|
.4byte _08026EDE
|
|
.4byte _08026ED6
|
|
.4byte _08026EE2
|
|
.4byte _08026EC0
|
|
.4byte _08026EC6
|
|
.4byte _08026ECC
|
|
.4byte _08026ED2
|
|
_08026EC0:
|
|
cmp r4, 0
|
|
beq _08026ED6
|
|
b _08026EDE
|
|
_08026EC6:
|
|
cmp r4, 0
|
|
beq _08026EE2
|
|
b _08026EDE
|
|
_08026ECC:
|
|
cmp r4, 0x2
|
|
beq _08026ED6
|
|
b _08026EE2
|
|
_08026ED2:
|
|
cmp r4, 0
|
|
bne _08026EDA
|
|
_08026ED6:
|
|
movs r0, 0x1
|
|
b _08026EE4
|
|
_08026EDA:
|
|
cmp r4, 0x1
|
|
beq _08026EE2
|
|
_08026EDE:
|
|
movs r0, 0
|
|
b _08026EE4
|
|
_08026EE2:
|
|
movs r0, 0x2
|
|
_08026EE4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8026E70
|
|
|
|
thumb_func_start sub_8026EEC
|
|
sub_8026EEC: @ 8026EEC
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
adds r4, r0, 0
|
|
b _08026EFE
|
|
_08026EF6:
|
|
ldrh r0, [r4, 0x6]
|
|
adds r6, r0
|
|
adds r4, 0xC
|
|
adds r5, 0x1
|
|
_08026EFE:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
blt _08026EF6
|
|
cmp r6, 0xA
|
|
bgt _08026F12
|
|
movs r0, 0
|
|
b _08026F14
|
|
_08026F12:
|
|
movs r0, 0x1
|
|
_08026F14:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8026EEC
|
|
|
|
thumb_func_start sub_8026F1C
|
|
sub_8026F1C: @ 8026F1C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r6, =gUnknown_02022C98
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
cmp r3, 0
|
|
bge _08026F3A
|
|
b _0802722C
|
|
_08026F3A:
|
|
cmp r3, 0x2
|
|
ble _08026F48
|
|
cmp r3, 0x3
|
|
beq _08026F78
|
|
b _0802722C
|
|
.pool
|
|
_08026F48:
|
|
ldr r3, =0x000031b4
|
|
adds r0, r1, r3
|
|
adds r0, r4
|
|
ldrb r4, [r0]
|
|
lsls r4, 1
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0x4A
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
ldr r1, =0x00004e20
|
|
bl sub_8027A28
|
|
ldr r1, [r6]
|
|
adds r1, 0x4A
|
|
adds r1, r4
|
|
b _0802722A
|
|
.pool
|
|
_08026F78:
|
|
adds r0, r1, 0
|
|
adds r0, 0x4A
|
|
bl sub_8026EEC
|
|
cmp r0, 0
|
|
beq _08026F86
|
|
b _0802722C
|
|
_08026F86:
|
|
cmp r5, 0x3
|
|
bne _08026F8C
|
|
b _08027154
|
|
_08026F8C:
|
|
cmp r5, 0x3
|
|
bgt _08026F98
|
|
cmp r5, 0x2
|
|
bne _08026F96
|
|
b _080271E8
|
|
_08026F96:
|
|
b _0802722C
|
|
_08026F98:
|
|
cmp r5, 0x4
|
|
bne _08026F9E
|
|
b _08027090
|
|
_08026F9E:
|
|
cmp r5, 0x5
|
|
beq _08026FA4
|
|
b _0802722C
|
|
_08026FA4:
|
|
cmp r4, 0x9
|
|
bls _08026FAA
|
|
b _0802722C
|
|
_08026FAA:
|
|
lsls r0, r4, 2
|
|
ldr r1, =_08026FB8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08026FB8:
|
|
.4byte _08026FE0
|
|
.4byte _08026FF8
|
|
.4byte _08027004
|
|
.4byte _0802701C
|
|
.4byte _08027028
|
|
.4byte _08027040
|
|
.4byte _0802704C
|
|
.4byte _08027060
|
|
.4byte _0802706C
|
|
.4byte _08027084
|
|
_08026FE0:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x68
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x74
|
|
b _08027226
|
|
.pool
|
|
_08026FF8:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x74
|
|
b _08027226
|
|
.pool
|
|
_08027004:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x74
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x80
|
|
b _08027226
|
|
.pool
|
|
_0802701C:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x80
|
|
b _08027226
|
|
.pool
|
|
_08027028:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
.pool
|
|
_08027040:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
.pool
|
|
_0802704C:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08027224
|
|
.pool
|
|
_08027060:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
b _08027224
|
|
.pool
|
|
_0802706C:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x5C
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x68
|
|
b _08027226
|
|
.pool
|
|
_08027084:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x68
|
|
b _08027226
|
|
.pool
|
|
_08027090:
|
|
subs r0, r4, 0x1
|
|
cmp r0, 0x7
|
|
bls _08027098
|
|
b _0802722C
|
|
_08027098:
|
|
lsls r0, 2
|
|
ldr r1, =_080270A8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080270A8:
|
|
.4byte _080270C8
|
|
.4byte _080270E0
|
|
.4byte _080270EC
|
|
.4byte _08027104
|
|
.4byte _08027110
|
|
.4byte _08027124
|
|
.4byte _08027130
|
|
.4byte _08027148
|
|
_080270C8:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x68
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x74
|
|
b _08027226
|
|
.pool
|
|
_080270E0:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x74
|
|
b _08027226
|
|
.pool
|
|
_080270EC:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x74
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
.pool
|
|
_08027104:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
.pool
|
|
_08027110:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08027224
|
|
.pool
|
|
_08027124:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
b _08027224
|
|
.pool
|
|
_08027130:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x5C
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x68
|
|
b _08027226
|
|
.pool
|
|
_08027148:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x68
|
|
b _08027226
|
|
.pool
|
|
_08027154:
|
|
subs r0, r4, 0x2
|
|
cmp r0, 0x5
|
|
bhi _0802722C
|
|
lsls r0, 2
|
|
ldr r1, =_08027168
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08027168:
|
|
.4byte _08027180
|
|
.4byte _08027198
|
|
.4byte _080271A4
|
|
.4byte _080271BC
|
|
.4byte _080271C8
|
|
.4byte _080271DC
|
|
_08027180:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x5C
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x68
|
|
b _08027226
|
|
.pool
|
|
_08027198:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x68
|
|
b _08027226
|
|
.pool
|
|
_080271A4:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x68
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
.pool
|
|
_080271BC:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
.pool
|
|
_080271C8:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08027224
|
|
.pool
|
|
_080271DC:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
b _08027224
|
|
.pool
|
|
_080271E8:
|
|
cmp r4, 0x4
|
|
beq _0802720E
|
|
cmp r4, 0x4
|
|
bgt _080271F6
|
|
cmp r4, 0x3
|
|
beq _08027200
|
|
b _0802722C
|
|
_080271F6:
|
|
cmp r4, 0x5
|
|
beq _08027214
|
|
cmp r4, 0x6
|
|
beq _08027222
|
|
b _0802722C
|
|
_08027200:
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08027224
|
|
_0802720E:
|
|
ldr r1, [r6]
|
|
adds r1, 0x50
|
|
b _08027226
|
|
_08027214:
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0x50
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
b _08027224
|
|
_08027222:
|
|
ldr r1, [r6]
|
|
_08027224:
|
|
adds r1, 0x5C
|
|
_08027226:
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
_0802722A:
|
|
strh r0, [r1]
|
|
_0802722C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8026F1C
|
|
|
|
thumb_func_start sub_8027234
|
|
sub_8027234: @ 8027234
|
|
push {r4,r5,lr}
|
|
adds r1, r0, 0
|
|
ldr r4, =gUnknown_02022C98
|
|
ldr r3, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _0802729E
|
|
cmp r1, 0x1
|
|
bne _08027280
|
|
movs r5, 0x89
|
|
lsls r5, 1
|
|
adds r1, r3, r5
|
|
ldrh r0, [r1]
|
|
adds r2, r0, 0x1
|
|
strh r2, [r1]
|
|
movs r0, 0x8A
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
lsls r0, r2, 16
|
|
lsrs r0, 16
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bls _08027268
|
|
strh r2, [r1]
|
|
_08027268:
|
|
ldr r0, [r4]
|
|
adds r2, r0, r5
|
|
ldrh r0, [r2]
|
|
ldr r1, =0x0000270f
|
|
cmp r0, r1
|
|
bls _0802729E
|
|
strh r1, [r2]
|
|
b _0802729E
|
|
.pool
|
|
_08027280:
|
|
movs r2, 0x89
|
|
lsls r2, 1
|
|
adds r0, r3, r2
|
|
movs r5, 0x8A
|
|
lsls r5, 1
|
|
adds r1, r3, r5
|
|
ldrh r0, [r0]
|
|
ldrh r3, [r1]
|
|
cmp r0, r3
|
|
bls _08027296
|
|
strh r0, [r1]
|
|
_08027296:
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_0802729E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8027234
|
|
|
|
thumb_func_start sub_80272A4
|
|
sub_80272A4: @ 80272A4
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
ldr r2, =gUnknown_02022C98
|
|
ldr r0, [r2]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcs _080272DC
|
|
adds r5, r2, 0
|
|
movs r4, 0x8A
|
|
lsls r4, 1
|
|
_080272BA:
|
|
ldr r2, [r5]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0x54
|
|
adds r1, r0
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r2, 0x24
|
|
ldrb r2, [r2]
|
|
cmp r3, r2
|
|
bcc _080272BA
|
|
_080272DC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80272A4
|
|
|
|
thumb_func_start sub_80272E8
|
|
sub_80272E8: @ 80272E8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_02022C98
|
|
movs r4, 0
|
|
ldr r0, =0x000031bf
|
|
mov r10, r0
|
|
_080272FC:
|
|
movs r2, 0
|
|
lsls r6, r5, 4
|
|
lsls r1, r5, 1
|
|
mov r8, r1
|
|
lsls r0, r5, 3
|
|
mov r12, r0
|
|
adds r1, r5, 0x1
|
|
mov r9, r1
|
|
subs r0, r6, r5
|
|
lsls r3, r0, 2
|
|
_08027310:
|
|
ldr r0, [r7]
|
|
adds r1, r2, r3
|
|
add r0, r10
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xA
|
|
bls _08027310
|
|
ldr r0, [r7]
|
|
subs r1, r6, r5
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r2, =0x000031cc
|
|
adds r0, r2
|
|
strb r4, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, r1
|
|
ldr r1, =0x000031d0
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, 0x90
|
|
adds r0, r5
|
|
strb r4, [r0]
|
|
ldr r1, [r7]
|
|
adds r0, r1, 0
|
|
adds r0, 0x86
|
|
add r0, r8
|
|
strh r4, [r0]
|
|
add r1, r12
|
|
ldr r2, =0x00003308
|
|
adds r1, r2
|
|
strb r4, [r1]
|
|
ldr r2, [r7]
|
|
ldr r1, =0x0000330c
|
|
adds r0, r2, r1
|
|
add r0, r12
|
|
str r4, [r0]
|
|
mov r0, r8
|
|
adds r1, r0, r5
|
|
lsls r1, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x4A
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4E
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x52
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x54
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
mov r1, r9
|
|
lsls r0, r1, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bls _080272FC
|
|
ldr r2, =gUnknown_02022C98
|
|
ldr r0, [r2]
|
|
movs r1, 0xAA
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r0, [r1]
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
adds r3, r0, r1
|
|
movs r1, 0
|
|
strh r2, [r3]
|
|
adds r0, 0x40
|
|
strb r1, [r0]
|
|
bl sub_8026A88
|
|
bl sub_8026988
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80272E8
|
|
|
|
thumb_func_start sub_80273F0
|
|
sub_80273F0: @ 80273F0
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
beq _0802740C
|
|
cmp r0, 0x5
|
|
beq _08027410
|
|
b _08027412
|
|
.pool
|
|
_0802740C:
|
|
movs r4, 0x1
|
|
b _08027412
|
|
_08027410:
|
|
movs r4, 0x2
|
|
_08027412:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
lsls r1, r4, 2
|
|
ldr r5, =gUnknown_02022C98
|
|
ldr r2, =gUnknown_082F7AA4
|
|
adds r1, r4
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r2, [r0]
|
|
_08027436:
|
|
ldr r1, [r5]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r1, 0x52
|
|
adds r1, r0
|
|
strh r2, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x4
|
|
bls _08027436
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80273F0
|
|
|
|
thumb_func_start sub_802745C
|
|
sub_802745C: @ 802745C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x4A
|
|
adds r0, r1
|
|
ldrh r3, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4C
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
adds r2, 0x4E
|
|
adds r2, r1
|
|
adds r3, r0
|
|
ldrh r2, [r2]
|
|
adds r0, r3, r2
|
|
ldr r1, =0x0000270f
|
|
cmp r0, r1
|
|
bls _0802748E
|
|
adds r0, r1, 0
|
|
_0802748E:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_802745C
|
|
|
|
thumb_func_start sub_802749C
|
|
sub_802749C: @ 802749C
|
|
push {r4-r6,lr}
|
|
ldr r5, =gUnknown_02022C98
|
|
ldr r0, [r5]
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
bl sub_802745C
|
|
ldr r1, =0x0000270f
|
|
bl sub_8027A38
|
|
adds r4, r0, 0
|
|
ldr r0, [r5]
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
bl sub_80276C0
|
|
ldr r1, =0x000f4236
|
|
bl sub_8027A38
|
|
adds r2, r0, 0
|
|
ldr r3, =gSaveBlock2Ptr
|
|
ldr r0, [r3]
|
|
movs r6, 0x83
|
|
lsls r6, 2
|
|
adds r1, r0, r6
|
|
ldr r0, [r1]
|
|
cmp r0, r2
|
|
bcs _080274D6
|
|
str r2, [r1]
|
|
_080274D6:
|
|
ldr r0, [r3]
|
|
movs r2, 0x84
|
|
lsls r2, 2
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bcs _080274E6
|
|
strh r4, [r1]
|
|
_080274E6:
|
|
ldr r0, [r3]
|
|
ldr r6, =0x00000212
|
|
adds r2, r0, r6
|
|
ldr r0, [r5]
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bcs _080274FE
|
|
strh r1, [r2]
|
|
_080274FE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802749C
|
|
|
|
thumb_func_start sub_8027518
|
|
sub_8027518: @ 8027518
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r0, [r1]
|
|
adds r0, 0x9B
|
|
ldrb r6, [r0]
|
|
movs r3, 0x3
|
|
adds r5, r1, 0
|
|
adds r4, r5, 0
|
|
_0802752C:
|
|
ldr r0, [r4]
|
|
adds r0, 0x98
|
|
adds r2, r0, r3
|
|
subs r1, r3, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
cmp r3, 0
|
|
bne _0802752C
|
|
ldr r0, [r5]
|
|
adds r0, 0x98
|
|
strb r7, [r0]
|
|
adds r0, r6, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8027518
|
|
|
|
thumb_func_start sub_8027554
|
|
sub_8027554: @ 8027554
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02022C98
|
|
ldr r3, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
ldrb r1, [r0]
|
|
adds r0, 0x88
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _080275FC
|
|
ldr r0, =gMain
|
|
ldrh r2, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08027594
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, =0x000031cc
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
b _080275CA
|
|
.pool
|
|
_08027594:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080275B0
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, =0x000031cc
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
b _080275CA
|
|
.pool
|
|
_080275B0:
|
|
movs r0, 0x10
|
|
ands r0, r2
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _080275E8
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, =0x000031cc
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
_080275CA:
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0x28
|
|
adds r0, 0xB0
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
movs r0, 0xD4
|
|
bl PlaySE
|
|
b _08027600
|
|
.pool
|
|
_080275E8:
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
ldr r1, =0x000031cc
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _08027600
|
|
.pool
|
|
_080275FC:
|
|
subs r0, 0x1
|
|
strb r0, [r2]
|
|
_08027600:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8027554
|
|
|
|
thumb_func_start sub_8027608
|
|
sub_8027608: @ 8027608
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x28
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r0, =0x000031cc
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8027608
|
|
|
|
thumb_func_start sub_802762C
|
|
sub_802762C: @ 802762C
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x28
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, 0x52
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x85
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_802762C
|
|
|
|
thumb_func_start sub_8027650
|
|
sub_8027650: @ 8027650
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8027650
|
|
|
|
thumb_func_start sub_8027660
|
|
sub_8027660: @ 8027660
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0802768C
|
|
ldr r0, =gUnknown_02022C98
|
|
lsls r1, r2, 4
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
ldr r2, =0x000031a0
|
|
adds r1, r2
|
|
ldr r0, [r0]
|
|
b _08027694
|
|
.pool
|
|
_0802768C:
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
ldr r1, =gLinkPlayers + 8
|
|
_08027694:
|
|
adds r0, r1
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8027660
|
|
|
|
thumb_func_start sub_80276A0
|
|
sub_80276A0: @ 80276A0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
ldr r2, =gUnknown_02022C98
|
|
ldr r3, [r2]
|
|
lsrs r1, 23
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r3, 0x4A
|
|
adds r3, r1
|
|
ldrh r0, [r3]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_80276A0
|
|
|
|
thumb_func_start sub_80276C0
|
|
sub_80276C0: @ 80276C0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_02022C98
|
|
mov r9, r0
|
|
ldr r2, =gUnknown_082F7B24
|
|
mov r10, r2
|
|
ldr r2, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, r1, r4
|
|
lsls r0, 2
|
|
str r0, [sp]
|
|
adds r6, r2, 0
|
|
adds r6, 0x4A
|
|
mov r12, r1
|
|
mov r8, r10
|
|
_080276EE:
|
|
lsls r1, r3, 1
|
|
ldr r7, [sp]
|
|
adds r0, r1, r7
|
|
adds r0, r6, r0
|
|
ldrh r2, [r0]
|
|
add r1, r8
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
muls r0, r2
|
|
adds r5, r0
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x2
|
|
bls _080276EE
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
mov r2, r12
|
|
adds r0, r2, r4
|
|
lsls r0, 2
|
|
adds r1, 0x50
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
mov r3, r10
|
|
movs r7, 0x6
|
|
ldrsh r0, [r3, r7]
|
|
muls r0, r1
|
|
cmp r5, r0
|
|
bls _08027734
|
|
subs r0, r5, r0
|
|
b _08027736
|
|
.pool
|
|
_08027734:
|
|
movs r0, 0
|
|
_08027736:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80276C0
|
|
|
|
thumb_func_start sub_8027748
|
|
sub_8027748: @ 8027748
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r6, [r0]
|
|
movs r0, 0
|
|
bl sub_80276C0
|
|
adds r5, r0, 0
|
|
movs r4, 0x1
|
|
cmp r4, r6
|
|
bcs _08027776
|
|
_08027760:
|
|
adds r0, r4, 0
|
|
bl sub_80276C0
|
|
cmp r0, r5
|
|
bls _0802776C
|
|
adds r5, r0, 0
|
|
_0802776C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r6
|
|
bcc _08027760
|
|
_08027776:
|
|
ldr r1, =0x000f4236
|
|
adds r0, r5, 0
|
|
bl sub_8027A38
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8027748
|
|
|
|
thumb_func_start sub_802778C
|
|
sub_802778C: @ 802778C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r2, [r1]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
ldrb r5, [r1]
|
|
lsrs r4, r0, 23
|
|
adds r2, 0x4A
|
|
adds r0, r2, r4
|
|
ldrh r3, [r0]
|
|
movs r1, 0
|
|
cmp r1, r5
|
|
bcs _080277C4
|
|
_080277A8:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4, r0
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bls _080277BA
|
|
adds r3, r0, 0
|
|
_080277BA:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r5
|
|
bcc _080277A8
|
|
_080277C4:
|
|
adds r0, r3, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_802778C
|
|
|
|
thumb_func_start sub_80277D0
|
|
sub_80277D0: @ 80277D0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0x1
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _080277FE
|
|
_080277E8:
|
|
adds r0, r4, 0
|
|
bl sub_80276C0
|
|
lsls r1, r4, 2
|
|
add r1, sp
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _080277E8
|
|
_080277FE:
|
|
lsls r7, 2
|
|
mov r12, r7
|
|
cmp r6, 0
|
|
beq _08027838
|
|
subs r7, r5, 0x1
|
|
_08027808:
|
|
movs r6, 0
|
|
movs r4, 0
|
|
cmp r6, r7
|
|
bge _08027834
|
|
adds r5, r7, 0
|
|
_08027812:
|
|
lsls r0, r4, 2
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
adds r4, 0x1
|
|
lsls r0, r4, 2
|
|
adds r3, r2, r0
|
|
ldr r0, [r1]
|
|
ldr r2, [r3]
|
|
cmp r0, r2
|
|
bcs _0802782C
|
|
str r2, [r1]
|
|
str r0, [r3]
|
|
movs r6, 0x1
|
|
_0802782C:
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
blt _08027812
|
|
_08027834:
|
|
cmp r6, 0
|
|
bne _08027808
|
|
_08027838:
|
|
mov r0, sp
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_80277D0
|
|
|
|
thumb_func_start sub_802784C
|
|
sub_802784C: @ 802784C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
mov r10, r0
|
|
mov r8, r0
|
|
mov r9, r0
|
|
ldr r6, =gUnknown_02022C98
|
|
ldr r0, [r6]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
bl sub_8027748
|
|
bl sub_8027748
|
|
cmp r0, 0
|
|
bne _080278A0
|
|
movs r4, 0
|
|
cmp r9, r5
|
|
bcs _080278A0
|
|
adds r2, r6, 0
|
|
ldr r1, =0x00003308
|
|
mov r12, r1
|
|
movs r7, 0
|
|
movs r6, 0x4
|
|
ldr r3, =0x0000330c
|
|
_08027884:
|
|
ldr r0, [r2]
|
|
lsls r1, r4, 3
|
|
adds r0, r1
|
|
add r0, r12
|
|
strb r6, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, r3
|
|
adds r0, r1
|
|
str r7, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08027884
|
|
_080278A0:
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _080278CA
|
|
_080278A6:
|
|
adds r0, r4, 0
|
|
bl sub_80276C0
|
|
ldr r1, =0x000f4236
|
|
bl sub_8027A38
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r1, [r1]
|
|
lsls r2, r4, 3
|
|
ldr r3, =0x0000330c
|
|
adds r1, r3
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _080278A6
|
|
_080278CA:
|
|
mov r0, r10
|
|
bl sub_80277D0
|
|
adds r6, r0, 0
|
|
mov r3, r8
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08027916
|
|
ldr r7, =gUnknown_02022C98
|
|
mov r10, r7
|
|
_080278DE:
|
|
mov r0, r10
|
|
ldr r2, [r0]
|
|
lsls r1, r4, 3
|
|
ldr r7, =0x0000330c
|
|
adds r0, r2, r7
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
bne _0802790C
|
|
adds r0, r2, r1
|
|
ldr r1, =0x00003308
|
|
adds r0, r1
|
|
strb r3, [r0]
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
_0802790C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _080278DE
|
|
_08027916:
|
|
mov r10, r8
|
|
cmp r9, r5
|
|
bcc _080278CA
|
|
movs r0, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_802784C
|
|
|
|
thumb_func_start sub_802793C
|
|
sub_802793C: @ 802793C
|
|
lsls r1, 24
|
|
ldr r2, =gUnknown_02022C98
|
|
ldr r2, [r2]
|
|
lsrs r1, 21
|
|
ldr r3, =0x00003308
|
|
adds r2, r3
|
|
adds r2, r1
|
|
ldr r1, [r2]
|
|
ldr r2, [r2, 0x4]
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_802793C
|
|
|
|
thumb_func_start sub_802795C
|
|
sub_802795C: @ 802795C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r5, [r0]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0x14
|
|
bl memset
|
|
movs r4, 0
|
|
cmp r7, r5
|
|
bcs _08027994
|
|
_0802797E:
|
|
adds r0, r4, 0
|
|
bl sub_80276C0
|
|
lsls r1, r4, 2
|
|
add r1, sp
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0802797E
|
|
_08027994:
|
|
lsls r0, r6, 2
|
|
add r0, sp
|
|
ldr r1, [r0]
|
|
movs r4, 0
|
|
_0802799C:
|
|
cmp r4, r6
|
|
beq _080279B0
|
|
lsls r0, r4, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bcs _080279B0
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_080279B0:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _0802799C
|
|
adds r0, r7, 0
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_802795C
|
|
|
|
thumb_func_start sub_80279C8
|
|
sub_80279C8: @ 80279C8
|
|
push {r4-r6,lr}
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x28
|
|
ldrb r4, [r0]
|
|
bl sub_802762C
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, r5, 0
|
|
adds r0, r4, 0
|
|
bl sub_80276C0
|
|
adds r4, r0, 0
|
|
bl sub_8027748
|
|
cmp r4, r0
|
|
beq _080279F4
|
|
movs r0, 0x3
|
|
b _08027A22
|
|
.pool
|
|
_080279F4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl CheckBagHasSpace
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08027A06
|
|
movs r0, 0x2
|
|
b _08027A22
|
|
_08027A06:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl AddBagItem
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl CheckBagHasSpace
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08027A20
|
|
movs r0, 0
|
|
b _08027A22
|
|
_08027A20:
|
|
movs r0, 0x1
|
|
_08027A22:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80279C8
|
|
|
|
thumb_func_start sub_8027A28
|
|
sub_8027A28: @ 8027A28
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r1, 0
|
|
cmp r2, r0
|
|
bcs _08027A34
|
|
adds r0, r2, 0x1
|
|
_08027A34:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8027A28
|
|
|
|
thumb_func_start sub_8027A38
|
|
sub_8027A38: @ 8027A38
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r1, 0
|
|
cmp r2, r0
|
|
bcs _08027A44
|
|
adds r0, r2, 0
|
|
_08027A44:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8027A38
|
|
|
|
thumb_func_start sub_8027A48
|
|
sub_8027A48: @ 8027A48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r1, [r1]
|
|
adds r1, 0x34
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8027A48
|
|
|
|
thumb_func_start sub_8027A5C
|
|
sub_8027A5C: @ 8027A5C
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, =gSpecialVar_Result
|
|
_08027A62:
|
|
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 _08027A94
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
cmp r0, 0x55
|
|
bne _08027A94
|
|
movs r0, 0x1
|
|
strh r0, [r6]
|
|
b _08027AA0
|
|
.pool
|
|
_08027A94:
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08027A62
|
|
ldr r1, =gSpecialVar_Result
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_08027AA0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8027A5C
|
|
|
|
thumb_func_start sub_8027AAC
|
|
sub_8027AAC: @ 8027AAC
|
|
push {r4,lr}
|
|
ldr r4, =sub_8027ACC
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8027AAC
|
|
|
|
thumb_func_start sub_8027ACC
|
|
sub_8027ACC: @ 8027ACC
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r7, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0x1
|
|
beq _08027B94
|
|
cmp r0, 0x1
|
|
bgt _08027AF4
|
|
cmp r0, 0
|
|
beq _08027AFE
|
|
b _08027BE2
|
|
.pool
|
|
_08027AF4:
|
|
cmp r0, 0x2
|
|
beq _08027BA0
|
|
cmp r0, 0x3
|
|
beq _08027BC8
|
|
b _08027BE2
|
|
_08027AFE:
|
|
ldr r0, =gUnknown_082F7B2C
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r1, =gText_BerryPickingRecords
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
adds r4, r0, 0
|
|
movs r6, 0
|
|
ldr r5, =gUnknown_082F7B34
|
|
_08027B18:
|
|
ldr r1, [r5]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
adds r0, 0x32
|
|
cmp r0, r4
|
|
ble _08027B2A
|
|
adds r4, r0, 0
|
|
_08027B2A:
|
|
adds r5, 0x4
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
bls _08027B18
|
|
adds r0, r4, 0x7
|
|
cmp r0, 0
|
|
bge _08027B3A
|
|
adds r0, 0x7
|
|
_08027B3A:
|
|
asrs r4, r0, 3
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08027B46
|
|
adds r4, 0x1
|
|
_08027B46:
|
|
movs r1, 0x1E
|
|
subs r1, r4
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
lsls r1, 24
|
|
lsrs r1, 16
|
|
ldr r2, =0xffff00ff
|
|
ldr r0, [sp]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
lsls r2, r4, 24
|
|
ldr r1, =0x00ffffff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
bl AddWindow
|
|
strh r0, [r7, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
bl sub_8027BEC
|
|
ldrb r0, [r7, 0x2]
|
|
movs r1, 0x3
|
|
b _08027BB6
|
|
.pool
|
|
_08027B94:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08027BE2
|
|
b _08027BBA
|
|
_08027BA0:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08027BE2
|
|
ldrb r0, [r7, 0x2]
|
|
bl rbox_fill_rectangle
|
|
ldrb r0, [r7, 0x2]
|
|
movs r1, 0x1
|
|
_08027BB6:
|
|
bl CopyWindowToVram
|
|
_08027BBA:
|
|
ldrh r0, [r7]
|
|
adds r0, 0x1
|
|
strh r0, [r7]
|
|
b _08027BE2
|
|
.pool
|
|
_08027BC8:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08027BE2
|
|
ldrb r0, [r7, 0x2]
|
|
bl RemoveWindow
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
_08027BE2:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8027ACC
|
|
|
|
thumb_func_start sub_8027BEC
|
|
sub_8027BEC: @ 8027BEC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
str r1, [sp, 0x18]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
movs r2, 0x84
|
|
lsls r2, 2
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0]
|
|
str r0, [sp, 0xC]
|
|
subs r2, 0x4
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, =0x00000212
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
str r0, [sp, 0x14]
|
|
ldr r4, =0x0000021d
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0xD0
|
|
bl LoadUserWindowBorderGfx_
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0xD
|
|
bl DrawTextBorderOuter
|
|
adds r0, r7, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r4, =gText_BerryPickingRecords
|
|
ldr r0, [sp, 0x18]
|
|
lsls r2, r0, 3
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
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, r7, 0
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl AddTextPrinterParameterized
|
|
movs r6, 0
|
|
ldr r2, =gStringVar1
|
|
mov r8, r2
|
|
movs r0, 0xFF
|
|
mov r10, r0
|
|
mov r9, r6
|
|
mov r2, sp
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x1C]
|
|
_08027C76:
|
|
lsls r4, r6, 2
|
|
ldr r0, [sp, 0x1C]
|
|
ldm r0!, {r1}
|
|
str r0, [sp, 0x1C]
|
|
ldr r0, =gUnknown_082F7B40
|
|
adds r0, r6, r0
|
|
ldrb r3, [r0]
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_082F7B34
|
|
adds r4, r0
|
|
ldr r2, [r4]
|
|
ldr r0, =gUnknown_082F7B44
|
|
lsls r4, r6, 1
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r2, [sp, 0x18]
|
|
lsls r3, r2, 3
|
|
subs r3, r5
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, =gUnknown_082F7B4A
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
str r0, [sp, 0x4]
|
|
mov r2, r9
|
|
str r2, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
mov r2, r8
|
|
bl AddTextPrinterParameterized
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _08027C76
|
|
adds r0, r7, 0
|
|
bl PutWindowTilemap
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8027BEC
|
|
|
|
thumb_func_start sub_8027D20
|
|
sub_8027D20: @ 8027D20
|
|
push {lr}
|
|
bl GetLinkPlayerCount
|
|
ldr r1, =gUnknown_02022C98
|
|
ldr r1, [r1]
|
|
adds r1, 0x24
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8027D20
|
|
|
|
thumb_func_start sub_8027D38
|
|
sub_8027D38: @ 8027D38
|
|
push {r4-r7,lr}
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r0, [r0]
|
|
adds r0, 0x24
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x4
|
|
bhi _08027D66
|
|
ldr r5, =gUnknown_082F7B90
|
|
_08027D48:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r1, =gLinkPlayers + 8
|
|
adds r0, r1
|
|
lsls r1, r4, 2
|
|
adds r1, r5
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x4
|
|
bls _08027D48
|
|
_08027D66:
|
|
ldr r0, =gUnknown_02022C98
|
|
ldr r1, [r0]
|
|
adds r1, 0x24
|
|
movs r2, 0x5
|
|
strb r2, [r1]
|
|
movs r1, 0
|
|
mov r12, r0
|
|
_08027D74:
|
|
movs r4, 0
|
|
mov r2, r12
|
|
ldr r0, [r2]
|
|
adds r0, 0x24
|
|
adds r5, r1, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08027DB2
|
|
ldr r7, =gUnknown_02022C98
|
|
lsls r3, r1, 1
|
|
ldr r6, =gUnknown_082F7B50
|
|
_08027D8A:
|
|
ldr r2, [r7]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
adds r1, r2, 0
|
|
adds r1, 0x4A
|
|
adds r1, r0
|
|
lsls r0, r4, 3
|
|
adds r0, r3, r0
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r2, 0x24
|
|
ldrb r2, [r2]
|
|
cmp r4, r2
|
|
bcc _08027D8A
|
|
_08027DB2:
|
|
lsls r0, r5, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x3
|
|
bls _08027D74
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8027D38
|
|
|
|
thumb_func_start sub_8027DD0
|
|
sub_8027DD0: @ 8027DD0
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r3, =0xffffff00
|
|
ldr r1, [sp]
|
|
ands r1, r3
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
str r1, [sp]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
mov r0, sp
|
|
bl sub_800FE50
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8027DD0
|
|
|
|
thumb_func_start sub_8027DFC
|
|
sub_8027DFC: @ 8027DFC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r3, =gRecvCmds
|
|
ldrh r0, [r3]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r1, r0
|
|
movs r0, 0xBC
|
|
lsls r0, 6
|
|
cmp r1, r0
|
|
bne _08027E1E
|
|
lsls r0, r2, 4
|
|
adds r1, r3, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08027E28
|
|
_08027E1E:
|
|
movs r0, 0
|
|
b _08027E2A
|
|
.pool
|
|
_08027E28:
|
|
ldrb r0, [r1, 0x4]
|
|
_08027E2A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8027DFC
|
|
|
|
thumb_func_start sub_8027E30
|
|
sub_8027E30: @ 8027E30
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
ldr r4, [sp, 0x48]
|
|
lsls r4, 24
|
|
str r4, [sp, 0x1C]
|
|
movs r4, 0x14
|
|
adds r4, r0
|
|
mov r9, r4
|
|
mov r5, sp
|
|
movs r4, 0x2
|
|
strb r4, [r5]
|
|
mov r10, sp
|
|
mov r5, r9
|
|
ldrb r4, [r5, 0xB]
|
|
movs r7, 0xF
|
|
adds r5, r7, 0
|
|
ands r5, r4
|
|
mov r6, r10
|
|
ldrb r6, [r6, 0x1]
|
|
mov r8, r6
|
|
movs r4, 0x10
|
|
negs r4, r4
|
|
mov r6, r8
|
|
ands r4, r6
|
|
orrs r4, r5
|
|
mov r5, r10
|
|
strb r4, [r5, 0x1]
|
|
mov r8, sp
|
|
mov r6, r9
|
|
ldrb r5, [r6, 0xC]
|
|
lsls r5, 4
|
|
ands r4, r7
|
|
orrs r4, r5
|
|
mov r5, r8
|
|
strb r4, [r5, 0x1]
|
|
ldrb r5, [r6, 0xD]
|
|
movs r6, 0xF
|
|
ands r5, r6
|
|
mov r4, r10
|
|
ldrb r4, [r4, 0x2]
|
|
mov r8, r4
|
|
movs r4, 0x10
|
|
negs r4, r4
|
|
mov r6, r8
|
|
ands r4, r6
|
|
orrs r4, r5
|
|
mov r5, r10
|
|
strb r4, [r5, 0x2]
|
|
mov r8, sp
|
|
mov r6, r9
|
|
ldrb r5, [r6, 0xE]
|
|
lsls r5, 4
|
|
ands r4, r7
|
|
orrs r4, r5
|
|
mov r5, r8
|
|
strb r4, [r5, 0x2]
|
|
ldrb r5, [r6, 0xF]
|
|
movs r6, 0xF
|
|
ands r5, r6
|
|
mov r4, r10
|
|
ldrb r4, [r4, 0x3]
|
|
mov r8, r4
|
|
movs r4, 0x10
|
|
negs r4, r4
|
|
mov r6, r8
|
|
ands r4, r6
|
|
orrs r4, r5
|
|
mov r5, r10
|
|
strb r4, [r5, 0x3]
|
|
mov r8, sp
|
|
mov r6, r9
|
|
ldrb r5, [r6, 0x10]
|
|
lsls r5, 4
|
|
ands r4, r7
|
|
orrs r4, r5
|
|
mov r5, r8
|
|
strb r4, [r5, 0x3]
|
|
ldrb r5, [r6, 0x11]
|
|
movs r6, 0xF
|
|
ands r5, r6
|
|
mov r4, r10
|
|
ldrb r4, [r4, 0x4]
|
|
mov r8, r4
|
|
movs r4, 0x10
|
|
negs r4, r4
|
|
mov r6, r8
|
|
ands r4, r6
|
|
orrs r4, r5
|
|
mov r5, r10
|
|
strb r4, [r5, 0x4]
|
|
mov r8, sp
|
|
mov r6, r9
|
|
ldrb r5, [r6, 0x12]
|
|
lsls r5, 4
|
|
ands r4, r7
|
|
orrs r4, r5
|
|
mov r5, r8
|
|
strb r4, [r5, 0x4]
|
|
ldrb r4, [r6, 0x13]
|
|
movs r6, 0xF
|
|
ands r4, r6
|
|
mov r6, r8
|
|
ldrb r5, [r6, 0x5]
|
|
movs r6, 0x10
|
|
negs r6, r6
|
|
ands r6, r5
|
|
orrs r6, r4
|
|
str r6, [sp, 0xC]
|
|
mov r4, r8
|
|
strb r6, [r4, 0x5]
|
|
mov r5, sp
|
|
mov r6, r9
|
|
ldrb r4, [r6, 0x14]
|
|
lsls r4, 4
|
|
ldr r6, [sp, 0xC]
|
|
ands r6, r7
|
|
orrs r6, r4
|
|
strb r6, [r5, 0x5]
|
|
mov r7, sp
|
|
movs r4, 0x3
|
|
mov r8, r4
|
|
ldrb r0, [r0, 0x14]
|
|
mov r5, r8
|
|
ands r0, r5
|
|
ldrb r5, [r7, 0x6]
|
|
movs r6, 0x4
|
|
negs r6, r6
|
|
mov r10, r6
|
|
mov r4, r10
|
|
ands r4, r5
|
|
orrs r4, r0
|
|
strb r4, [r7, 0x6]
|
|
mov r5, r9
|
|
ldrb r0, [r5, 0x1]
|
|
mov r6, r8
|
|
ands r0, r6
|
|
lsls r0, 2
|
|
movs r5, 0xD
|
|
negs r5, r5
|
|
ands r5, r4
|
|
orrs r5, r0
|
|
strb r5, [r7, 0x6]
|
|
mov r0, r9
|
|
ldrb r4, [r0, 0x2]
|
|
ands r4, r6
|
|
lsls r4, 4
|
|
movs r0, 0x31
|
|
negs r0, r0
|
|
ands r0, r5
|
|
orrs r0, r4
|
|
strb r0, [r7, 0x6]
|
|
mov r5, sp
|
|
mov r6, r9
|
|
ldrb r4, [r6, 0x3]
|
|
lsls r4, 6
|
|
movs r6, 0x3F
|
|
ands r0, r6
|
|
orrs r0, r4
|
|
strb r0, [r5, 0x6]
|
|
mov r4, r9
|
|
ldrb r0, [r4, 0x4]
|
|
mov r5, r8
|
|
ands r0, r5
|
|
ldrb r5, [r7, 0x7]
|
|
mov r4, r10
|
|
ands r4, r5
|
|
orrs r4, r0
|
|
strb r4, [r7, 0x7]
|
|
mov r6, r9
|
|
ldrb r0, [r6, 0x5]
|
|
mov r5, r8
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
movs r5, 0xD
|
|
negs r5, r5
|
|
ands r5, r4
|
|
orrs r5, r0
|
|
strb r5, [r7, 0x7]
|
|
ldrb r4, [r6, 0x6]
|
|
mov r6, r8
|
|
ands r4, r6
|
|
lsls r4, 4
|
|
movs r0, 0x31
|
|
negs r0, r0
|
|
ands r0, r5
|
|
orrs r0, r4
|
|
strb r0, [r7, 0x7]
|
|
mov r5, sp
|
|
mov r6, r9
|
|
ldrb r4, [r6, 0x7]
|
|
lsls r4, 6
|
|
movs r6, 0x3F
|
|
ands r0, r6
|
|
orrs r0, r4
|
|
strb r0, [r5, 0x7]
|
|
mov r8, sp
|
|
mov r0, r9
|
|
ldrb r4, [r0, 0x8]
|
|
movs r7, 0x3
|
|
adds r0, r7, 0
|
|
ands r0, r4
|
|
mov r4, r8
|
|
ldrb r5, [r4, 0x8]
|
|
mov r4, r10
|
|
ands r4, r5
|
|
orrs r4, r0
|
|
mov r5, r8
|
|
strb r4, [r5, 0x8]
|
|
mov r6, r9
|
|
ldrb r5, [r6, 0x9]
|
|
adds r0, r7, 0
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
movs r5, 0xD
|
|
negs r5, r5
|
|
ands r5, r4
|
|
orrs r5, r0
|
|
mov r0, r8
|
|
strb r5, [r0, 0x8]
|
|
ldrb r0, [r1]
|
|
adds r4, r7, 0
|
|
ands r4, r0
|
|
lsls r4, 4
|
|
movs r0, 0x31
|
|
negs r0, r0
|
|
ands r0, r5
|
|
orrs r0, r4
|
|
mov r4, r8
|
|
strb r0, [r4, 0x8]
|
|
mov r5, sp
|
|
ldrb r4, [r2]
|
|
lsls r4, 6
|
|
movs r6, 0x3F
|
|
ands r0, r6
|
|
orrs r0, r4
|
|
strb r0, [r5, 0x8]
|
|
ldrb r4, [r3]
|
|
adds r0, r7, 0
|
|
ands r0, r4
|
|
ldrb r4, [r5, 0x9]
|
|
mov r6, r10
|
|
ands r6, r4
|
|
orrs r6, r0
|
|
mov r10, r6
|
|
strb r6, [r5, 0x9]
|
|
ldr r0, [sp, 0x40]
|
|
ldrb r4, [r0]
|
|
adds r0, r7, 0
|
|
ands r0, r4
|
|
lsls r0, 2
|
|
movs r4, 0xD
|
|
negs r4, r4
|
|
ands r6, r4
|
|
orrs r6, r0
|
|
str r6, [sp, 0x10]
|
|
strb r6, [r5, 0x9]
|
|
mov r4, sp
|
|
ldr r5, [sp, 0x44]
|
|
ldrb r0, [r5]
|
|
adds r6, r7, 0
|
|
ands r6, r0
|
|
lsls r0, r6, 4
|
|
subs r7, 0x34
|
|
ldr r5, [sp, 0x10]
|
|
ands r7, r5
|
|
orrs r7, r0
|
|
strb r7, [r4, 0x9]
|
|
mov r5, sp
|
|
ldrb r0, [r1, 0x4]
|
|
movs r6, 0x1
|
|
mov r12, r6
|
|
mov r4, r12
|
|
ands r4, r0
|
|
lsls r4, 6
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
mov r10, r0
|
|
ands r0, r7
|
|
orrs r0, r4
|
|
strb r0, [r5, 0x9]
|
|
ldrb r4, [r2, 0x4]
|
|
lsls r4, 7
|
|
movs r5, 0x7F
|
|
ands r0, r5
|
|
orrs r0, r4
|
|
mov r4, r8
|
|
strb r0, [r4, 0x9]
|
|
ldrb r4, [r3, 0x4]
|
|
mov r0, r12
|
|
ands r0, r4
|
|
mov r5, r8
|
|
ldrb r4, [r5, 0xA]
|
|
movs r7, 0x2
|
|
negs r7, r7
|
|
adds r5, r7, 0
|
|
ands r5, r4
|
|
orrs r5, r0
|
|
mov r6, r8
|
|
strb r5, [r6, 0xA]
|
|
mov r9, sp
|
|
ldr r4, [sp, 0x40]
|
|
ldrb r0, [r4, 0x4]
|
|
mov r4, r12
|
|
ands r4, r0
|
|
lsls r4, 1
|
|
movs r6, 0x3
|
|
negs r6, r6
|
|
mov r8, r6
|
|
mov r0, r8
|
|
ands r0, r5
|
|
orrs r0, r4
|
|
mov r4, r9
|
|
strb r0, [r4, 0xA]
|
|
ldr r6, [sp, 0x44]
|
|
ldrb r5, [r6, 0x4]
|
|
mov r4, r12
|
|
ands r4, r5
|
|
lsls r4, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
ands r0, r5
|
|
orrs r0, r4
|
|
mov r4, r9
|
|
strb r0, [r4, 0xA]
|
|
mov r4, sp
|
|
ldrb r1, [r1, 0x8]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r1, [r4, 0xB]
|
|
ands r5, r1
|
|
orrs r5, r0
|
|
strb r5, [r4, 0xB]
|
|
ldrb r1, [r2, 0x8]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
lsls r0, 3
|
|
movs r1, 0x9
|
|
negs r1, r1
|
|
ands r1, r5
|
|
orrs r1, r0
|
|
strb r1, [r4, 0xB]
|
|
ldrb r2, [r3, 0x8]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
lsls r0, 4
|
|
movs r2, 0x11
|
|
negs r2, r2
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
strb r2, [r4, 0xB]
|
|
mov r3, sp
|
|
ldr r5, [sp, 0x40]
|
|
ldrb r0, [r5, 0x8]
|
|
mov r1, r12
|
|
ands r1, r0
|
|
lsls r1, 5
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0xB]
|
|
mov r2, sp
|
|
ldrb r1, [r6, 0x8]
|
|
mov r6, r12
|
|
ands r6, r1
|
|
lsls r1, r6, 6
|
|
mov r3, r10
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xB]
|
|
ldr r4, [sp, 0x1C]
|
|
lsrs r3, r4, 21
|
|
ldrb r1, [r2, 0xA]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2, 0xA]
|
|
mov r1, sp
|
|
ldr r5, [sp, 0x4C]
|
|
movs r6, 0x1
|
|
ands r5, r6
|
|
lsls r2, r5, 1
|
|
ldrb r0, [r1, 0xB]
|
|
mov r3, r8
|
|
ands r3, r0
|
|
orrs r3, r2
|
|
mov r8, r3
|
|
strb r3, [r1, 0xB]
|
|
mov r0, sp
|
|
ldr r4, [sp, 0x50]
|
|
ands r4, r6
|
|
mov r5, r8
|
|
ands r5, r7
|
|
orrs r5, r4
|
|
strb r5, [r0, 0xB]
|
|
bl sub_800FE50
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8027E30
|
|
|
|
thumb_func_start sub_8028164
|
|
sub_8028164: @ 8028164
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r1, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
ldr r0, [sp, 0x1C]
|
|
mov r12, r0
|
|
ldr r1, [sp, 0x20]
|
|
mov r8, r1
|
|
ldr r0, [sp, 0x24]
|
|
mov r9, r0
|
|
adds r2, r7, 0
|
|
adds r2, 0x14
|
|
ldr r4, =gRecvCmds
|
|
ldrh r0, [r4]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r1, r0
|
|
movs r0, 0xBC
|
|
lsls r0, 6
|
|
cmp r1, r0
|
|
bne _0802819C
|
|
adds r3, r4, 0x2
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
beq _080281A4
|
|
_0802819C:
|
|
movs r0, 0
|
|
b _080282DE
|
|
.pool
|
|
_080281A4:
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r2, 0xB]
|
|
ldrb r0, [r3, 0x1]
|
|
lsrs r0, 4
|
|
strb r0, [r2, 0xC]
|
|
ldrb r0, [r3, 0x2]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r2, 0xD]
|
|
ldrb r0, [r3, 0x2]
|
|
lsrs r0, 4
|
|
strb r0, [r2, 0xE]
|
|
ldrb r0, [r3, 0x3]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r2, 0xF]
|
|
ldrb r0, [r3, 0x3]
|
|
lsrs r0, 4
|
|
strb r0, [r2, 0x10]
|
|
ldrb r0, [r3, 0x4]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r2, 0x11]
|
|
ldrb r0, [r3, 0x4]
|
|
lsrs r0, 4
|
|
strb r0, [r2, 0x12]
|
|
ldrb r0, [r3, 0x5]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r2, 0x13]
|
|
ldrb r0, [r3, 0x5]
|
|
lsrs r0, 4
|
|
strb r0, [r2, 0x14]
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
strb r0, [r2, 0x15]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
strb r0, [r7, 0x14]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x1]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x2]
|
|
ldrb r0, [r3, 0x6]
|
|
lsrs r0, 6
|
|
strb r0, [r2, 0x3]
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x4]
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x5]
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x6]
|
|
ldrb r0, [r3, 0x7]
|
|
lsrs r0, 6
|
|
strb r0, [r2, 0x7]
|
|
ldrb r0, [r3, 0x8]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x8]
|
|
ldrb r0, [r3, 0x8]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0x9]
|
|
ldrb r0, [r3, 0x6]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
strb r0, [r2, 0xA]
|
|
ldrb r0, [r3, 0x8]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
strb r0, [r5]
|
|
ldrb r0, [r3, 0x9]
|
|
lsls r0, 25
|
|
lsrs r0, 31
|
|
strb r0, [r5, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 29
|
|
lsrs r0, 31
|
|
strb r0, [r5, 0x8]
|
|
ldrb r0, [r3, 0x8]
|
|
lsrs r0, 6
|
|
strb r0, [r6]
|
|
ldrb r0, [r3, 0x9]
|
|
lsrs r0, 7
|
|
strb r0, [r6, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 31
|
|
strb r0, [r6, 0x8]
|
|
ldrb r0, [r3, 0x9]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0xA]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
strb r0, [r1, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 27
|
|
lsrs r0, 31
|
|
strb r0, [r1, 0x8]
|
|
ldrb r0, [r3, 0x9]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0xA]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
strb r0, [r1, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 26
|
|
lsrs r0, 31
|
|
strb r0, [r1, 0x8]
|
|
ldrb r0, [r3, 0x9]
|
|
lsls r0, 26
|
|
lsrs r0, 30
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0xA]
|
|
lsls r0, 29
|
|
lsrs r0, 31
|
|
strb r0, [r1, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 25
|
|
lsrs r0, 31
|
|
strb r0, [r1, 0x8]
|
|
ldrb r0, [r3, 0xA]
|
|
lsrs r0, 3
|
|
ldr r1, [sp, 0x28]
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
ldr r1, [sp, 0x2C]
|
|
str r0, [r1]
|
|
ldrb r0, [r3, 0xB]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
ldr r1, [sp, 0x30]
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_080282DE:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8028164
|
|
|
|
thumb_func_start sub_80282EC
|
|
sub_80282EC: @ 80282EC
|
|
push {lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =0xffffff00
|
|
ldr r1, [sp]
|
|
ands r1, r3
|
|
movs r2, 0x3
|
|
orrs r1, r2
|
|
str r1, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
mov r0, sp
|
|
bl sub_800FE50
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80282EC
|
|
|
|
thumb_func_start sub_8028318
|
|
sub_8028318: @ 8028318
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r3, =gRecvCmds
|
|
ldrh r0, [r3]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r1, r0
|
|
movs r0, 0xBC
|
|
lsls r0, 6
|
|
cmp r1, r0
|
|
bne _0802833C
|
|
lsls r0, r2, 4
|
|
adds r1, r3, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _08028344
|
|
_0802833C:
|
|
movs r0, 0
|
|
b _0802834A
|
|
.pool
|
|
_08028344:
|
|
ldrb r0, [r1, 0x4]
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_0802834A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8028318
|
|
|
|
thumb_func_start sub_8028350
|
|
sub_8028350: @ 8028350
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r2, =0xffffff00
|
|
ldr r1, [sp]
|
|
ands r1, r2
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl sub_800FE50
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028350
|
|
|
|
thumb_func_start sub_8028374
|
|
sub_8028374: @ 8028374
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r3, =gRecvCmds
|
|
ldrh r0, [r3]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r1, r0
|
|
movs r0, 0xBC
|
|
lsls r0, 6
|
|
cmp r1, r0
|
|
bne _08028396
|
|
lsls r0, r2, 4
|
|
adds r1, r3, 0x2
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _080283A0
|
|
_08028396:
|
|
movs r0, 0
|
|
b _080283A2
|
|
.pool
|
|
_080283A0:
|
|
ldr r0, [r1, 0x4]
|
|
_080283A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8028374
|
|
|
|
thumb_func_start sub_80283A8
|
|
sub_80283A8: @ 80283A8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x18
|
|
movs r5, 0xC0
|
|
lsls r5, 6
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_082FB2D8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
ldr r0, =gUnknown_082FB2E0
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
ldr r0, =gDodrioBerryPkmnGfx
|
|
adds r1, r4, 0
|
|
bl LZ77UnCompWram
|
|
cmp r4, 0
|
|
beq _080283E8
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl Free
|
|
_080283E8:
|
|
add r0, sp, 0x8
|
|
bl LoadSpritePalette
|
|
add r0, sp, 0x10
|
|
bl LoadSpritePalette
|
|
add sp, 0x18
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80283A8
|
|
|
|
thumb_func_start sub_8028408
|
|
sub_8028408: @ 8028408
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x30
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
adds r5, r3, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r1, r8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
add r1, sp, 0x18
|
|
movs r3, 0
|
|
strh r3, [r1]
|
|
ldrb r2, [r0]
|
|
mov r0, sp
|
|
adds r0, 0x1A
|
|
strh r2, [r0]
|
|
ldr r0, =gUnknown_082FB1E0
|
|
str r0, [sp, 0x1C]
|
|
ldr r0, =gUnknown_082FB228
|
|
str r0, [sp, 0x20]
|
|
str r3, [sp, 0x24]
|
|
ldr r0, =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x28]
|
|
ldr r0, =sub_80284A8
|
|
str r0, [sp, 0x2C]
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
ldr r1, =gUnknown_02022C9C
|
|
mov r2, r8
|
|
lsls r4, r2, 2
|
|
adds r4, r1
|
|
str r0, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8028F14
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, sp
|
|
movs r2, 0x88
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
bl sub_8028654
|
|
add sp, 0x30
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028408
|
|
|
|
thumb_func_start sub_80284A8
|
|
sub_80284A8: @ 80284A8
|
|
push {lr}
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r0, r2]
|
|
cmp r1, 0x1
|
|
beq _080284BC
|
|
cmp r1, 0x1
|
|
ble _080284C6
|
|
cmp r1, 0x2
|
|
beq _080284C2
|
|
b _080284C6
|
|
_080284BC:
|
|
bl sub_802853C
|
|
b _080284C6
|
|
_080284C2:
|
|
bl sub_80285AC
|
|
_080284C6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80284A8
|
|
|
|
thumb_func_start sub_80284CC
|
|
sub_80284CC: @ 80284CC
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
ldr r1, =gUnknown_02022C9C
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
strh r2, [r0, 0x32]
|
|
strh r2, [r0, 0x34]
|
|
strh r2, [r0, 0x36]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80284CC
|
|
|
|
thumb_func_start sub_8028504
|
|
sub_8028504: @ 8028504
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
ldr r1, =gUnknown_02022C9C
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
strh r2, [r0, 0x32]
|
|
strh r2, [r0, 0x34]
|
|
strh r2, [r0, 0x36]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028504
|
|
|
|
thumb_func_start sub_802853C
|
|
sub_802853C: @ 802853C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsrs r0, 31
|
|
adds r0, r2, r0
|
|
asrs r1, r0, 1
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08028558
|
|
adds r0, r1, 0x3
|
|
_08028558:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r2, 0x2
|
|
ble _080285A2
|
|
cmp r0, 0x2
|
|
bgt _0802856E
|
|
cmp r0, 0x1
|
|
bge _08028572
|
|
_0802856E:
|
|
movs r0, 0x1
|
|
b _08028574
|
|
_08028572:
|
|
movs r0, 0xFF
|
|
_08028574:
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x27
|
|
ble _080285A2
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
bl sub_8027650
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0
|
|
bl sub_8028F14
|
|
strh r0, [r4, 0x20]
|
|
_080285A2:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802853C
|
|
|
|
thumb_func_start sub_80285AC
|
|
sub_80285AC: @ 80285AC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xD
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080285CC
|
|
adds r0, r1, 0x3
|
|
_080285CC:
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
subs r0, r1, r0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xD
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080285F0
|
|
cmp r4, 0
|
|
beq _080285F0
|
|
movs r0, 0xD4
|
|
bl PlaySE
|
|
_080285F0:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x67
|
|
ble _080285FE
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
movs r4, 0
|
|
_080285FE:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
bl sub_80286B4
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80285AC
|
|
|
|
thumb_func_start sub_8028614
|
|
sub_8028614: @ 8028614
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _08028646
|
|
ldr r6, =gUnknown_02022C9C
|
|
_08028622:
|
|
lsls r0, r4, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _0802863C
|
|
bl DestroySpriteAndFreeResources
|
|
_0802863C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _08028622
|
|
_08028646:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028614
|
|
|
|
thumb_func_start sub_8028654
|
|
sub_8028654: @ 8028654
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
ldr r3, =gSprites
|
|
ldr r2, =gUnknown_02022C9C
|
|
lsrs r1, 22
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1]
|
|
lsls r2, r1, 4
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8028654
|
|
|
|
thumb_func_start sub_802868C
|
|
sub_802868C: @ 802868C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bcs _080286AE
|
|
_0802869C:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8028654
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r5
|
|
bcc _0802869C
|
|
_080286AE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802868C
|
|
|
|
thumb_func_start sub_80286B4
|
|
sub_80286B4: @ 80286B4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_02022C9C
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, =gSprites
|
|
adds r0, r2
|
|
bl StartSpriteAnim
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80286B4
|
|
|
|
thumb_func_start nullsub_15
|
|
nullsub_15: @ 80286E0
|
|
bx lr
|
|
thumb_func_end nullsub_15
|
|
|
|
thumb_func_start sub_80286E4
|
|
sub_80286E4: @ 80286E4
|
|
push {r4-r7,lr}
|
|
movs r4, 0
|
|
ldr r0, =gSprites
|
|
mov r12, r0
|
|
movs r6, 0
|
|
ldr r5, =gUnknown_02022CF4
|
|
_080286F0:
|
|
ldr r3, [r5]
|
|
lsls r1, r4, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
lsls r0, r4, 4
|
|
adds r0, 0x30
|
|
strh r0, [r1, 0x20]
|
|
lsls r2, r4, 3
|
|
movs r7, 0x8
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
subs r0, r2
|
|
strh r0, [r1, 0x22]
|
|
adds r3, 0xC
|
|
adds r3, r4
|
|
strb r6, [r3]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _080286F0
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80286E4
|
|
|
|
thumb_func_start sub_8028734
|
|
sub_8028734: @ 8028734
|
|
push {r4-r6,lr}
|
|
sub sp, 0x28
|
|
movs r4, 0xC0
|
|
lsls r4, 1
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
adds r6, r0, 0
|
|
ldr r0, =gUnknown_082FB2E8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, =gDodrioBerryStatusGfx
|
|
adds r1, r6, 0
|
|
bl LZ77UnCompWram
|
|
cmp r6, 0
|
|
beq _080287C4
|
|
str r6, [sp, 0x18]
|
|
add r5, sp, 0x18
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
orrs r0, r4
|
|
str r0, [r5, 0x4]
|
|
mov r1, sp
|
|
ldr r0, =gUnknown_082FB2F0
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r4, =gUnknown_02022CF4
|
|
movs r0, 0x40
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
bl LoadSpriteSheet
|
|
add r0, sp, 0x20
|
|
bl LoadSpritePalette
|
|
movs r4, 0
|
|
_0802878A:
|
|
lsls r1, r4, 20
|
|
movs r0, 0xC0
|
|
lsls r0, 14
|
|
adds r1, r0
|
|
asrs r1, 16
|
|
lsls r0, r4, 3
|
|
movs r3, 0x8
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
subs r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, =gUnknown_02022CF4
|
|
ldr r1, [r1]
|
|
lsls r2, r4, 1
|
|
adds r1, 0x2A
|
|
adds r1, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _0802878A
|
|
_080287C4:
|
|
adds r0, r6, 0
|
|
bl Free
|
|
add sp, 0x28
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028734
|
|
|
|
thumb_func_start sub_80287E4
|
|
sub_80287E4: @ 80287E4
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
_080287E8:
|
|
ldr r5, =gUnknown_02022CF4
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08028806
|
|
bl DestroySpriteAndFreeResources
|
|
_08028806:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _080287E8
|
|
ldr r0, [r5]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80287E4
|
|
|
|
thumb_func_start sub_8028828
|
|
sub_8028828: @ 8028828
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
movs r3, 0
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_02022CF4
|
|
mov r9, r0
|
|
_0802883A:
|
|
mov r7, r9
|
|
ldr r2, [r7]
|
|
lsls r5, r6, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x2A
|
|
adds r0, r5
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r4, r0, r1
|
|
adds r0, r2, 0
|
|
adds r0, 0x16
|
|
adds r0, r5
|
|
movs r1, 0x2
|
|
strh r1, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
adds r2, r0, r6
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
beq _08028870
|
|
movs r7, 0x22
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0x8
|
|
beq _080288A6
|
|
_08028870:
|
|
movs r3, 0x1
|
|
movs r7, 0x22
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0x8
|
|
bne _08028896
|
|
cmp r1, 0
|
|
bne _080288A6
|
|
strb r3, [r2]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, 0x16
|
|
adds r0, r5
|
|
ldr r1, =0x0000fff0
|
|
strh r1, [r0]
|
|
movs r0, 0x24
|
|
str r3, [sp]
|
|
bl PlaySE
|
|
ldr r3, [sp]
|
|
_08028896:
|
|
mov r7, r9
|
|
ldr r0, [r7]
|
|
adds r0, 0x16
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
_080288A6:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x9
|
|
bls _0802883A
|
|
cmp r3, 0
|
|
bne _080288C4
|
|
movs r0, 0x1
|
|
b _080288C6
|
|
.pool
|
|
_080288C4:
|
|
movs r0, 0
|
|
_080288C6:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8028828
|
|
|
|
thumb_func_start sub_80288D4
|
|
sub_80288D4: @ 80288D4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _08028910
|
|
movs r4, 0
|
|
_080288E0:
|
|
ldr r0, =gUnknown_02022CF4
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _080288E0
|
|
b _080289DA
|
|
.pool
|
|
_08028910:
|
|
movs r4, 0
|
|
movs r0, 0xA
|
|
subs r0, r5
|
|
cmp r4, r0
|
|
bge _080289D6
|
|
ldr r6, =gSprites
|
|
_0802891C:
|
|
cmp r5, 0x6
|
|
bls _08028984
|
|
ldr r0, =gUnknown_02022CF4
|
|
ldr r2, [r0]
|
|
ldr r1, =0x0000fffa
|
|
adds r0, r1, 0
|
|
ldrh r1, [r2, 0x3E]
|
|
adds r0, r1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strh r0, [r2, 0x3E]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1E
|
|
bls _0802894C
|
|
strh r1, [r2, 0x3E]
|
|
b _0802899E
|
|
.pool
|
|
_0802894C:
|
|
cmp r0, 0xA
|
|
bls _0802896A
|
|
lsls r1, r4, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
b _0802899E
|
|
_0802896A:
|
|
lsls r1, r4, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
b _0802899E
|
|
_08028984:
|
|
ldr r0, =gUnknown_02022CF4
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
_0802899E:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0xA
|
|
subs r0, r5
|
|
cmp r4, r0
|
|
blt _0802891C
|
|
b _080289D6
|
|
.pool
|
|
_080289B4:
|
|
ldr r0, =gUnknown_02022CF4
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080289D6:
|
|
cmp r4, 0x9
|
|
bls _080289B4
|
|
_080289DA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80288D4
|
|
|
|
thumb_func_start sub_80289E8
|
|
sub_80289E8: @ 80289E8
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r7, =gSprites
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
ldr r5, =gUnknown_02022CF4
|
|
_080289FE:
|
|
ldr r0, [r5]
|
|
lsls r1, r3, 1
|
|
adds r0, 0x2A
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x9
|
|
bls _080289FE
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80289E8
|
|
|
|
thumb_func_start sub_8028A34
|
|
sub_8028A34: @ 8028A34
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
movs r5, 0x90
|
|
lsls r5, 3
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_082FB314
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
ldr r0, =gDodrioBerrySpritesGfx
|
|
adds r1, r4, 0
|
|
bl LZ77UnCompWram
|
|
cmp r4, 0
|
|
beq _08028A6A
|
|
str r4, [sp]
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
orrs r0, r5
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
_08028A6A:
|
|
add r0, sp, 0x8
|
|
bl LoadSpritePalette
|
|
adds r0, r4, 0
|
|
bl Free
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028A34
|
|
|
|
thumb_func_start sub_8028A88
|
|
sub_8028A88: @ 8028A88
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x30
|
|
mov r1, sp
|
|
ldr r0, =gUnknown_082FB324
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
add r2, sp, 0x18
|
|
adds r1, r2, 0
|
|
ldr r0, =gUnknown_082FB33C
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
movs r5, 0
|
|
mov r9, r2
|
|
_08028AB0:
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
ldr r1, =gUnknown_02022CB8
|
|
lsls r4, r5, 2
|
|
adds r4, r1
|
|
str r0, [r4]
|
|
lsls r0, r5, 3
|
|
lsls r1, r5, 4
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8028BF8
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _08028AB0
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_02022CE4
|
|
ldr r4, =gUnknown_082FB31C
|
|
mov r8, r4
|
|
_08028AF0:
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
lsls r1, r5, 2
|
|
adds r4, r1, r7
|
|
str r0, [r4]
|
|
adds r6, r1, 0
|
|
cmp r5, 0x3
|
|
bne _08028B2C
|
|
mov r0, r8
|
|
movs r2, 0x6
|
|
ldrsh r1, [r0, r2]
|
|
mov r0, r9
|
|
movs r2, 0x31
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7, 0xC]
|
|
b _08028B40
|
|
.pool
|
|
_08028B2C:
|
|
lsls r0, r5, 1
|
|
add r0, r8
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
mov r0, r9
|
|
movs r2, 0x34
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
_08028B40:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r6, r7
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _08028AF0
|
|
movs r0, 0x1
|
|
bl sub_8028C30
|
|
add sp, 0x30
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028A88
|
|
|
|
thumb_func_start sub_8028B80
|
|
sub_8028B80: @ 8028B80
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, =gUnknown_02022CB8
|
|
_08028B86:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08028BA0
|
|
bl DestroySprite
|
|
_08028BA0:
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xA
|
|
bls _08028B86
|
|
movs r5, 0
|
|
ldr r6, =gUnknown_02022CE4
|
|
_08028BB8:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08028BD2
|
|
bl DestroySprite
|
|
_08028BD2:
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3
|
|
bls _08028BB8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028B80
|
|
|
|
thumb_func_start sub_8028BF8
|
|
sub_8028BF8: @ 8028BF8
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, =gSprites
|
|
ldr r2, =gUnknown_02022CB8
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8028BF8
|
|
|
|
thumb_func_start sub_8028C30
|
|
sub_8028C30: @ 8028C30
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r7, =gSprites
|
|
ldr r6, =gUnknown_02022CE4
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_08028C46:
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _08028C46
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028C30
|
|
|
|
thumb_func_start sub_8028C7C
|
|
sub_8028C7C: @ 8028C7C
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
ldr r3, =gSprites
|
|
ldr r2, =gUnknown_02022CB8
|
|
lsrs r0, 22
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
lsrs r1, 21
|
|
strh r1, [r0, 0x22]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8028C7C
|
|
|
|
thumb_func_start sub_8028CA4
|
|
sub_8028CA4: @ 8028CA4
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, =gUnknown_02022CB8
|
|
lsrs r0, 14
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, =gSprites
|
|
adds r0, r2
|
|
bl StartSpriteAnim
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028CA4
|
|
|
|
thumb_func_start sub_8028CD0
|
|
sub_8028CD0: @ 8028CD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gSprites
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, 0x32
|
|
strh r1, [r2, 0x20]
|
|
movs r0, 0x32
|
|
strh r0, [r2, 0x22]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8028CD0
|
|
|
|
thumb_func_start sub_8028CF4
|
|
sub_8028CF4: @ 8028CF4
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x42
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
beq _08028D36
|
|
movs r3, 0
|
|
ldr r7, =gUnknown_082FB354
|
|
ldr r6, =gUnknown_02022CB0
|
|
movs r5, 0
|
|
_08028D0A:
|
|
lsls r0, r3, 2
|
|
adds r2, r0, r6
|
|
ldr r1, [r2]
|
|
ldrh r0, [r1, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2]
|
|
adds r1, r3, r7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _08028D2C
|
|
ldrh r0, [r4, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, [r2]
|
|
strh r5, [r0, 0x2]
|
|
_08028D2C:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _08028D0A
|
|
_08028D36:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028CF4
|
|
|
|
thumb_func_start sub_8028D44
|
|
sub_8028D44: @ 8028D44
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x28
|
|
movs r4, 0x80
|
|
lsls r4, 3
|
|
adds r0, r4, 0
|
|
bl AllocZeroed
|
|
adds r6, r0, 0
|
|
ldr r0, =gUnknown_082FB360
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, =gDodrioBerryPlatformGfx
|
|
adds r1, r6, 0
|
|
bl LZ77UnCompWram
|
|
cmp r6, 0
|
|
beq _08028DD2
|
|
str r6, [sp, 0x18]
|
|
add r0, sp, 0x18
|
|
movs r1, 0xA0
|
|
lsls r1, 11
|
|
orrs r1, r4
|
|
str r1, [r0, 0x4]
|
|
mov r2, sp
|
|
ldr r1, =gUnknown_082FB368
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
bl LoadSpriteSheet
|
|
add r0, sp, 0x20
|
|
bl LoadSpritePalette
|
|
movs r5, 0
|
|
ldr r7, =gUnknown_082FB356
|
|
adds r0, r7, 0x2
|
|
mov r9, r0
|
|
ldr r1, =gUnknown_02022CB0
|
|
mov r8, r1
|
|
_08028D9E:
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
lsls r2, r5, 2
|
|
mov r3, r8
|
|
adds r4, r2, r3
|
|
str r0, [r4]
|
|
adds r0, r2, r7
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
add r2, r9
|
|
movs r0, 0
|
|
ldrsh r2, [r2, r0]
|
|
mov r0, sp
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _08028D9E
|
|
_08028DD2:
|
|
adds r0, r6, 0
|
|
bl Free
|
|
add sp, 0x28
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028D44
|
|
|
|
thumb_func_start sub_8028DFC
|
|
sub_8028DFC: @ 8028DFC
|
|
push {r4-r7,lr}
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_02022CB0
|
|
mov r12, r0
|
|
ldr r4, =gUnknown_082FB356
|
|
adds r7, r4, 0x2
|
|
ldr r6, =gSprites
|
|
movs r5, 0x1
|
|
_08028E0C:
|
|
lsls r2, r3, 2
|
|
mov r1, r12
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r0, r1, 0
|
|
adds r0, 0x42
|
|
strh r5, [r0]
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1, 0x20]
|
|
adds r2, r7
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0x22]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _08028E0C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028DFC
|
|
|
|
thumb_func_start sub_8028E4C
|
|
sub_8028E4C: @ 8028E4C
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r5, =gUnknown_02022CB0
|
|
ldr r4, =gSprites
|
|
movs r3, 0
|
|
_08028E56:
|
|
lsls r0, r2, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x42
|
|
strh r3, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1
|
|
bls _08028E56
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028E4C
|
|
|
|
thumb_func_start sub_8028E84
|
|
sub_8028E84: @ 8028E84
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, =gUnknown_02022CB0
|
|
_08028E8A:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08028EA4
|
|
bl DestroySprite
|
|
_08028EA4:
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _08028E8A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028E84
|
|
|
|
thumb_func_start sub_8028EC8
|
|
sub_8028EC8: @ 8028EC8
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0
|
|
ldr r7, =gSprites
|
|
ldr r6, =gUnknown_02022CB0
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_08028EDE:
|
|
lsls r0, r3, 2
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1
|
|
bls _08028EDE
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8028EC8
|
|
|
|
thumb_func_start sub_8028F14
|
|
sub_8028F14: @ 8028F14
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x4
|
|
bhi _08028FC6
|
|
lsls r0, 2
|
|
ldr r1, =_08028F34
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08028F34:
|
|
.4byte _08028FB4
|
|
.4byte _08028F48
|
|
.4byte _08028F52
|
|
.4byte _08028F66
|
|
.4byte _08028F8E
|
|
_08028F48:
|
|
cmp r2, 0
|
|
beq _08028F7E
|
|
cmp r2, 0x1
|
|
bne _08028FC6
|
|
b _08028F82
|
|
_08028F52:
|
|
cmp r2, 0x1
|
|
beq _08028FB8
|
|
cmp r2, 0x1
|
|
bgt _08028F60
|
|
cmp r2, 0
|
|
beq _08028FB4
|
|
b _08028FC6
|
|
_08028F60:
|
|
cmp r2, 0x2
|
|
bne _08028FC6
|
|
b _08028FC4
|
|
_08028F66:
|
|
cmp r2, 0x1
|
|
beq _08028F82
|
|
cmp r2, 0x1
|
|
bgt _08028F74
|
|
cmp r2, 0
|
|
beq _08028F7E
|
|
b _08028FC6
|
|
_08028F74:
|
|
cmp r2, 0x2
|
|
beq _08028F86
|
|
cmp r2, 0x3
|
|
beq _08028F8A
|
|
b _08028FC6
|
|
_08028F7E:
|
|
movs r3, 0xC
|
|
b _08028FC6
|
|
_08028F82:
|
|
movs r3, 0x12
|
|
b _08028FC6
|
|
_08028F86:
|
|
movs r3, 0x18
|
|
b _08028FC6
|
|
_08028F8A:
|
|
movs r3, 0x6
|
|
b _08028FC6
|
|
_08028F8E:
|
|
cmp r2, 0x4
|
|
bhi _08028FC6
|
|
lsls r0, r2, 2
|
|
ldr r1, =_08028FA0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08028FA0:
|
|
.4byte _08028FB4
|
|
.4byte _08028FB8
|
|
.4byte _08028FBC
|
|
.4byte _08028FC0
|
|
.4byte _08028FC4
|
|
_08028FB4:
|
|
movs r3, 0xF
|
|
b _08028FC6
|
|
_08028FB8:
|
|
movs r3, 0x15
|
|
b _08028FC6
|
|
_08028FBC:
|
|
movs r3, 0x1B
|
|
b _08028FC6
|
|
_08028FC0:
|
|
movs r3, 0x3
|
|
b _08028FC6
|
|
_08028FC4:
|
|
movs r3, 0x9
|
|
_08028FC6:
|
|
lsls r0, r3, 3
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8028F14
|
|
|
|
thumb_func_start sub_8028FCC
|
|
sub_8028FCC: @ 8028FCC
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_08028FD0:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8028BF8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8028C7C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xA
|
|
bls _08028FD0
|
|
movs r0, 0
|
|
bl sub_80289E8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8028FCC
|
|
|
|
thumb_func_start sub_8028FF8
|
|
sub_8028FF8: @ 8028FF8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl GetWindowFrameTilesPal
|
|
ldr r1, [r0]
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
movs r0, 0
|
|
movs r3, 0x1
|
|
bl LoadBgTiles
|
|
adds r0, r4, 0
|
|
bl GetWindowFrameTilesPal
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0xA0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8028FF8
|
|
|
|
thumb_func_start sub_802902C
|
|
sub_802902C: @ 802902C
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
movs r2, 0xB0
|
|
bl LoadUserWindowBorderGfx_
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802902C
|
|
|
|
thumb_func_start sub_802903C
|
|
sub_802903C: @ 802903C
|
|
ldr r3, =gUnknown_02022CF8
|
|
ldr r0, [r3]
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
str r2, [r1]
|
|
ldr r1, =0x00003014
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_802903C
|
|
|
|
thumb_func_start sub_8029074
|
|
sub_8029074: @ 8029074
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
movs r6, 0xA
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r5, 0x1
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x6
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x7
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x8
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r4, [r4, 0x2]
|
|
adds r3, r4
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x9
|
|
bl FillBgTilemapBufferRect
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8029074
|
|
|
|
thumb_func_start sub_8029174
|
|
sub_8029174: @ 8029174
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
movs r6, 0xB
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r5, 0x1
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xB
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xC
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x2]
|
|
str r5, [sp]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
subs r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x1]
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r0, [r4, 0x2]
|
|
adds r3, r0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x3]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r2, [r4, 0x3]
|
|
ldrb r0, [r4, 0x1]
|
|
adds r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4, 0x4]
|
|
ldrb r4, [r4, 0x2]
|
|
adds r3, r4
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl FillBgTilemapBufferRect
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8029174
|
|
|
|
thumb_func_start sub_8029274
|
|
sub_8029274: @ 8029274
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02022CF8
|
|
str r0, [r4]
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
str r2, [r1]
|
|
ldr r3, =0x00003014
|
|
adds r1, r0, r3
|
|
strb r2, [r1]
|
|
ldr r1, =0x00003018
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r3, 0xC
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, =sub_8029314
|
|
movs r1, 0x3
|
|
bl CreateTask
|
|
ldr r1, [r4]
|
|
ldr r2, =0x00003004
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, =sub_8029338
|
|
bl sub_802A72C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8029274
|
|
|
|
thumb_func_start sub_80292D4
|
|
sub_80292D4: @ 80292D4
|
|
push {lr}
|
|
bl FreeAllWindowBuffers
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80292D4
|
|
|
|
thumb_func_start sub_80292E0
|
|
sub_80292E0: @ 80292E0
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_082FB40C
|
|
adds r7, r5, 0x4
|
|
_080292EC:
|
|
lsls r1, r4, 3
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _080292FE
|
|
adds r0, r1, r7
|
|
ldr r0, [r0]
|
|
bl sub_802A72C
|
|
_080292FE:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x9
|
|
bls _080292EC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80292E0
|
|
|
|
thumb_func_start sub_8029314
|
|
sub_8029314: @ 8029314
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0802932E
|
|
bl sub_802A75C
|
|
bl _call_via_r0
|
|
_0802932E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8029314
|
|
|
|
thumb_func_start sub_8029338
|
|
sub_8029338: @ 8029338
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r2, =0x00003014
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _08029430
|
|
lsls r0, 2
|
|
ldr r1, =_08029360
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08029360:
|
|
.4byte _08029374
|
|
.4byte _0802937A
|
|
.4byte _08029394
|
|
.4byte _080293D8
|
|
.4byte _08029404
|
|
_08029374:
|
|
bl sub_802A7A8
|
|
b _08029414
|
|
_0802937A:
|
|
bl sub_802A8E8
|
|
cmp r0, 0x1
|
|
bne _0802943A
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
b _0802941C
|
|
.pool
|
|
_08029394:
|
|
ldr r1, =gDodrioBerryBgTilemap1
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r1, =gDodrioBerryBgTilemap2Left
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r1, =gDodrioBerryBgTilemap2Right
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
b _08029414
|
|
.pool
|
|
_080293D8:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
b _0802941C
|
|
.pool
|
|
_08029404:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x14]
|
|
lsrs r0, 3
|
|
bl sub_8028FF8
|
|
bl sub_802902C
|
|
_08029414:
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
_0802941C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0802943A
|
|
.pool
|
|
_08029430:
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_0802943A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8029338
|
|
|
|
thumb_func_start sub_8029440
|
|
sub_8029440: @ 8029440
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003014
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08029488
|
|
cmp r0, 0x1
|
|
bne _08029460
|
|
b _080295EC
|
|
_08029460:
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xB4
|
|
bhi _0802946E
|
|
b _0802968E
|
|
_0802946E:
|
|
bl sub_8027650
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcc _0802947E
|
|
b _08029666
|
|
_0802947E:
|
|
b _08029640
|
|
.pool
|
|
_08029488:
|
|
bl sub_8027650
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gUnknown_082FB3C8
|
|
subs r0, r7, 0x1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
ldr r2, =0xffffff00
|
|
ldr r0, [sp, 0xC]
|
|
ands r0, r2
|
|
ldr r1, =0x00ffffff
|
|
ands r0, r1
|
|
movs r1, 0xE0
|
|
lsls r1, 19
|
|
orrs r0, r1
|
|
str r0, [sp, 0xC]
|
|
ldr r0, [sp, 0x10]
|
|
ands r0, r2
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
ldr r1, =0xffff00ff
|
|
ands r0, r1
|
|
movs r1, 0xD0
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
ldr r1, =0x0000ffff
|
|
ands r0, r1
|
|
movs r1, 0x98
|
|
lsls r1, 13
|
|
orrs r0, r1
|
|
str r0, [sp, 0x10]
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcs _080295B8
|
|
mov r3, sp
|
|
adds r3, 0xC
|
|
str r3, [sp, 0x18]
|
|
mov r10, r4
|
|
ldr r0, =0x00003008
|
|
mov r9, r0
|
|
_080294DC:
|
|
movs r1, 0
|
|
mov r8, r1
|
|
adds r0, r6, 0
|
|
bl sub_8027A48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
bl sub_8027660
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
movs r1, 0x38
|
|
subs r1, r0
|
|
lsrs r1, 1
|
|
str r1, [sp, 0x14]
|
|
ldrb r0, [r5]
|
|
lsls r0, 8
|
|
ldr r2, =0xffff00ff
|
|
ldr r1, [sp, 0xC]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0xC]
|
|
ldrb r2, [r5, 0x1]
|
|
lsls r2, 16
|
|
ldr r0, =0xff00ffff
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0xC]
|
|
add r0, sp, 0xC
|
|
bl AddWindow
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
add r1, r9
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _0802955A
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
_0802955A:
|
|
adds r0, r4, 0
|
|
bl sub_8027660
|
|
adds r4, r0, 0
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
ldr r3, [sp, 0x14]
|
|
lsls r2, r3, 24
|
|
lsrs r2, 24
|
|
mov r3, r8
|
|
lsls r1, r3, 1
|
|
add r1, r8
|
|
ldr r3, =gUnknown_082FB380
|
|
adds r1, r3
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
add r0, r9
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r3, [sp, 0x18]
|
|
ldrh r0, [r3, 0x6]
|
|
adds r0, 0xE
|
|
strh r0, [r3, 0x6]
|
|
add r0, sp, 0xC
|
|
bl sub_8029174
|
|
adds r5, 0x4
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _080294DC
|
|
_080295B8:
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _0802962A
|
|
.pool
|
|
_080295EC:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802968E
|
|
bl sub_8027650
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bcs _0802961C
|
|
_08029604:
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _08029604
|
|
_0802961C:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
_0802962A:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0802968E
|
|
.pool
|
|
_08029640:
|
|
ldr r5, =gUnknown_02022CF8
|
|
ldr r0, [r5]
|
|
ldr r4, =0x00003008
|
|
adds r0, r4
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r7
|
|
bcc _08029640
|
|
_08029666:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
movs r3, 0xC0
|
|
lsls r3, 6
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_0802968E:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8029440
|
|
|
|
thumb_func_start sub_80296A8
|
|
sub_80296A8: @ 80296A8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x6C
|
|
lsls r0, 24
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r6, 0
|
|
lsrs r7, r0, 24
|
|
add r4, sp, 0x2C
|
|
ldr r1, =gUnknown_082FB45C
|
|
adds r0, r4, 0
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _080296F8
|
|
add r4, sp, 0x34
|
|
_080296D2:
|
|
mov r0, sp
|
|
adds r0, r5
|
|
adds r0, 0x2C
|
|
strb r5, [r0]
|
|
add r0, sp, 0x5C
|
|
adds r1, r5, 0
|
|
bl sub_802793C
|
|
lsls r2, r5, 3
|
|
adds r2, r4, r2
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x60]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _080296D2
|
|
_080296F8:
|
|
bl sub_8027748
|
|
cmp r0, 0
|
|
beq _0802972E
|
|
_08029700:
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _08029728
|
|
add r2, sp, 0x34
|
|
add r1, sp, 0x2C
|
|
_0802970A:
|
|
lsls r0, r5, 3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, r8
|
|
bne _0802971E
|
|
adds r0, r1, r6
|
|
strb r5, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0802971E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _0802970A
|
|
_08029728:
|
|
mov r8, r6
|
|
cmp r6, r7
|
|
bcc _08029700
|
|
_0802972E:
|
|
movs r5, 0
|
|
ldr r4, =gText_SpacePoints
|
|
cmp r5, r7
|
|
bcs _08029754
|
|
add r1, sp, 0x34
|
|
add r6, sp, 0x38
|
|
subs r3, r7, 0x1
|
|
_0802973C:
|
|
lsls r2, r5, 3
|
|
adds r0, r6, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0802974A
|
|
adds r0, r1, r2
|
|
strb r3, [r0]
|
|
_0802974A:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _0802973C
|
|
_08029754:
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
movs r1, 0xD8
|
|
subs r1, r0
|
|
str r1, [sp, 0x64]
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bcs _08029860
|
|
mov r2, sp
|
|
adds r2, 0x34
|
|
str r2, [sp, 0x68]
|
|
ldr r3, =0x00003009
|
|
mov r10, r3
|
|
_08029774:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r0, sp
|
|
adds r0, r5
|
|
adds r0, 0x2C
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
lsls r1, r4, 3
|
|
add r0, sp, 0x38
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r9, r0
|
|
ldr r2, =gUnknown_02022CF8
|
|
ldr r0, [r2]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r2, =gUnknown_082FB3DC
|
|
ldr r3, [sp, 0x68]
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r2, [r1]
|
|
ldr r3, =gUnknown_082FB402
|
|
lsls r1, r5, 1
|
|
adds r1, r3
|
|
ldrb r6, [r1]
|
|
str r6, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
mov r3, r8
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
bne _080297CC
|
|
movs r0, 0x2
|
|
mov r8, r0
|
|
_080297CC:
|
|
adds r0, r4, 0
|
|
bl sub_8027660
|
|
adds r3, r0, 0
|
|
ldr r1, =gUnknown_02022CF8
|
|
ldr r0, [r1]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
lsls r1, r2, 1
|
|
add r1, r8
|
|
ldr r2, =gUnknown_082FB380
|
|
adds r1, r2
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r2, 0x1C
|
|
adds r3, r6, 0
|
|
bl AddTextPrinterParameterized3
|
|
add r0, sp, 0xC
|
|
mov r1, r9
|
|
movs r2, 0
|
|
movs r3, 0x7
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0x1
|
|
add r1, sp, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
adds r3, r0, 0
|
|
ldr r2, =gUnknown_02022CF8
|
|
ldr r0, [r2]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp, 0x64]
|
|
subs r3, r1, r3
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r6, [sp]
|
|
movs r2, 0xFF
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
add r2, sp, 0xC
|
|
bl AddTextPrinterParameterized
|
|
ldr r2, =gUnknown_02022CF8
|
|
ldr r0, [r2]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r1, [sp, 0x64]
|
|
lsls r3, r1, 24
|
|
str r6, [sp]
|
|
movs r2, 0xFF
|
|
str r2, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
ldr r2, =gText_SpacePoints
|
|
lsrs r3, 24
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r7
|
|
bcc _08029774
|
|
_08029860:
|
|
add sp, 0x6C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80296A8
|
|
|
|
thumb_func_start sub_802988C
|
|
sub_802988C: @ 802988C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
bl sub_8027650
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0xC]
|
|
ldr r6, =gUnknown_02022CF8
|
|
ldr r1, [r6]
|
|
ldr r2, =0x00003014
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xB
|
|
bls _080298B2
|
|
b _08029FA8
|
|
_080298B2:
|
|
lsls r0, 2
|
|
ldr r1, =_080298C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080298C8:
|
|
.4byte _080298F8
|
|
.4byte _08029914
|
|
.4byte _0802996C
|
|
.4byte _08029B6C
|
|
.4byte _08029BB8
|
|
.4byte _08029BFC
|
|
.4byte _08029C60
|
|
.4byte _08029C9C
|
|
.4byte _08029CE0
|
|
.4byte _08029DA0
|
|
.4byte _08029F08
|
|
.4byte _08029F5C
|
|
_080298F8:
|
|
bl sub_802784C
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x0000301c
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
b _08029F8A
|
|
.pool
|
|
_08029914:
|
|
ldr r6, =gUnknown_082F7BBC
|
|
adds r0, r6, 0
|
|
bl AddWindow
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r1, [r4]
|
|
ldr r2, =0x00003008
|
|
mov r8, r2
|
|
add r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0x8
|
|
adds r0, r6
|
|
mov r9, r0
|
|
bl AddWindow
|
|
ldr r1, [r4]
|
|
ldr r5, =0x00003009
|
|
adds r1, r5
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r6, 0
|
|
bl sub_8029174
|
|
mov r0, r9
|
|
bl sub_8029174
|
|
b _08029F88
|
|
.pool
|
|
_0802996C:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r5, =0x00003008
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003009
|
|
mov r9, r1
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, =gText_BerryPickingResults
|
|
mov r8, r2
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
bl GetStringWidth
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
lsrs r3, r0, 1
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
movs r6, 0xFF
|
|
str r6, [sp, 0x4]
|
|
movs r5, 0
|
|
str r5, [sp, 0x8]
|
|
mov r2, r8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r4]
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_10P30P50P50P
|
|
movs r1, 0x11
|
|
str r1, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x44
|
|
bl AddTextPrinterParameterized
|
|
mov r9, r5
|
|
ldr r0, [sp, 0xC]
|
|
cmp r9, r0
|
|
bcc _080299E2
|
|
b _08029B2A
|
|
_080299E2:
|
|
movs r4, 0
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r9, r0
|
|
bne _080299F2
|
|
movs r4, 0x2
|
|
_080299F2:
|
|
mov r0, r9
|
|
bl sub_8027660
|
|
adds r6, r0, 0
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00003009
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r2, r9
|
|
lsls r5, r2, 1
|
|
ldr r2, =gUnknown_082FB3F8
|
|
adds r1, r5, r2
|
|
ldrb r3, [r1]
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
ldr r2, =gUnknown_082FB380
|
|
adds r1, r2
|
|
str r1, [sp]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl AddTextPrinterParameterized3
|
|
movs r7, 0
|
|
mov r8, r5
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
ldr r1, =gStringVar4
|
|
mov r10, r1
|
|
_08029A36:
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
bl sub_80276A0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, =0x0000270f
|
|
bl sub_8027A38
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r7, 0
|
|
bl sub_802778C
|
|
ldr r1, =0x0000270f
|
|
bl sub_8027A38
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0x1
|
|
mov r1, r10
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl GetStringWidth
|
|
adds r5, r0, 0
|
|
cmp r6, r4
|
|
bne _08029AE0
|
|
cmp r6, 0
|
|
beq _08029AE0
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r1, r7, 1
|
|
ldr r2, =gUnknown_082FB3F0
|
|
adds r1, r2
|
|
ldrb r2, [r1]
|
|
subs r2, r5
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r1, =gUnknown_082FB3F8
|
|
add r1, r8
|
|
ldrb r3, [r1]
|
|
ldr r1, =gUnknown_082FB383
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [sp, 0x4]
|
|
mov r1, r10
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
b _08029B10
|
|
.pool
|
|
_08029AE0:
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r1, r7, 1
|
|
ldr r2, =gUnknown_082FB3F0
|
|
adds r1, r2
|
|
ldrb r3, [r1]
|
|
subs r3, r5
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r1, =gUnknown_082FB3F8
|
|
add r1, r8
|
|
ldrb r1, [r1]
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
ldr r2, =gStringVar4
|
|
bl AddTextPrinterParameterized
|
|
_08029B10:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _08029A36
|
|
ldr r1, [sp, 0x10]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r2, [sp, 0xC]
|
|
cmp r9, r2
|
|
bcs _08029B2A
|
|
b _080299E2
|
|
_08029B2A:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r4]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _08029F8E
|
|
.pool
|
|
_08029B6C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08029B90
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_08029B90:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0
|
|
bl sub_8028C30
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _08029F8E
|
|
.pool
|
|
_08029BB8:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x0000301c
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1D
|
|
bhi _08029BD0
|
|
b _08029FF8
|
|
_08029BD0:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08029BDE
|
|
b _08029FF8
|
|
_08029BDE:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x1
|
|
bl sub_8028C30
|
|
b _08029F88
|
|
.pool
|
|
_08029BFC:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r5, =0x00003008
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003009
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r6, =gText_AnnouncingRankings
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x1
|
|
adds r1, r6, 0
|
|
bl GetStringWidth
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
lsrs r3, r0, 1
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
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, r6, 0
|
|
bl AddTextPrinterParameterized
|
|
b _08029F88
|
|
.pool
|
|
_08029C60:
|
|
ldr r0, [sp, 0xC]
|
|
bl sub_80296A8
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r4]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _08029F8E
|
|
.pool
|
|
_08029C9C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08029CC0
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_08029CC0:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _08029F8E
|
|
.pool
|
|
_08029CE0:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x0000301c
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1D
|
|
bhi _08029CF8
|
|
b _08029FF8
|
|
_08029CF8:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08029D06
|
|
b _08029FF8
|
|
_08029D06:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_8027748
|
|
ldr r1, =0x00000bb7
|
|
cmp r0, r1
|
|
bhi _08029D3C
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003014
|
|
adds r0, r2
|
|
movs r1, 0x7F
|
|
strb r1, [r0]
|
|
b _08029D4C
|
|
.pool
|
|
_08029D3C:
|
|
bl StopMapMusic
|
|
ldr r1, [r4]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08029D4C:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x5
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
ldr r5, =gUnknown_02022CF8
|
|
ldr r0, [r5]
|
|
ldr r4, =0x00003009
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
ldr r6, =gUnknown_082F7BCC
|
|
adds r0, r6, 0
|
|
bl AddWindow
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r6, 0
|
|
bl sub_8029174
|
|
b _08029FF8
|
|
.pool
|
|
_08029DA0:
|
|
ldr r0, =0x0000016f
|
|
bl PlayNewMapMusic
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r6, =0x00003008
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003009
|
|
mov r10, r1
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r5, =gText_AnnouncingPrizes
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
bl GetStringWidth
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
lsrs r3, r0, 1
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
str r2, [sp]
|
|
movs r1, 0xFF
|
|
mov r8, r1
|
|
str r1, [sp, 0x4]
|
|
movs r6, 0
|
|
str r6, [sp, 0x8]
|
|
movs r1, 0x1
|
|
adds r2, r5, 0
|
|
bl AddTextPrinterParameterized
|
|
bl DynamicPlaceholderTextUtil_Reset
|
|
bl sub_802762C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r5, =gStringVar1
|
|
adds r1, r5, 0
|
|
bl CopyItemName
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
|
ldr r7, =gStringVar4
|
|
ldr r1, =gText_FirstPlacePrize
|
|
adds r0, r7, 0
|
|
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
|
|
ldr r0, [r4]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
mov r2, r9
|
|
str r2, [sp]
|
|
mov r1, r8
|
|
str r1, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r1, 0x1
|
|
adds r2, r7, 0
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
bl sub_80279C8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
cmp r4, 0
|
|
beq _08029EC8
|
|
cmp r4, 0x3
|
|
beq _08029EC8
|
|
bl DynamicPlaceholderTextUtil_Reset
|
|
bl sub_802762C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
bl CopyItemName
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
|
cmp r4, 0x2
|
|
bne _08029E9C
|
|
ldr r1, =gText_CantHoldAnyMore
|
|
adds r0, r7, 0
|
|
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
|
|
b _08029EA8
|
|
.pool
|
|
_08029E9C:
|
|
cmp r6, 0x1
|
|
bne _08029EA8
|
|
ldr r1, =gText_FilledStorageSpace
|
|
adds r0, r7, 0
|
|
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
|
|
_08029EA8:
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
ldr r2, =gStringVar4
|
|
movs r1, 0x29
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
_08029EC8:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r4]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _08029F8E
|
|
.pool
|
|
_08029F08:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08029F2C
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r4]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_08029F2C:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =0x0000020b
|
|
movs r1, 0x14
|
|
movs r2, 0xA
|
|
bl FadeOutAndFadeInNewMapMusic
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _08029F8E
|
|
.pool
|
|
_08029F5C:
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x0000301c
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1D
|
|
bls _08029FF8
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08029FF8
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_08029F88:
|
|
ldr r1, [r4]
|
|
_08029F8A:
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
_08029F8E:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08029FF8
|
|
.pool
|
|
_08029FA8:
|
|
ldr r5, =0x00003008
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r6]
|
|
ldr r4, =0x00003009
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r6]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_08029FF8:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802988C
|
|
|
|
thumb_func_start sub_802A010
|
|
sub_802A010: @ 802A010
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
ldr r1, =gUnknown_02022CF8
|
|
ldr r2, [r1]
|
|
ldr r3, =0x00003014
|
|
adds r0, r2, r3
|
|
ldrb r6, [r0]
|
|
adds r7, r1, 0
|
|
cmp r6, 0x1
|
|
beq _0802A0CC
|
|
cmp r6, 0x1
|
|
bgt _0802A040
|
|
cmp r6, 0
|
|
beq _0802A04E
|
|
b _0802A2FC
|
|
.pool
|
|
_0802A040:
|
|
cmp r6, 0x2
|
|
bne _0802A046
|
|
b _0802A194
|
|
_0802A046:
|
|
cmp r6, 0x3
|
|
bne _0802A04C
|
|
b _0802A1D0
|
|
_0802A04C:
|
|
b _0802A2FC
|
|
_0802A04E:
|
|
ldr r0, =gUnknown_082F7BD4
|
|
mov r9, r0
|
|
bl AddWindow
|
|
ldr r1, [r7]
|
|
ldr r4, =0x00003008
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
movs r1, 0x8
|
|
add r1, r9
|
|
mov r8, r1
|
|
mov r0, r8
|
|
bl AddWindow
|
|
ldr r1, [r7]
|
|
ldr r2, =0x00003009
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r7]
|
|
ldr r3, =0x00003009
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
mov r0, r9
|
|
bl sub_8029174
|
|
mov r0, r8
|
|
bl sub_8029074
|
|
ldr r1, [r7]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
ldr r1, =0x00003020
|
|
adds r0, r1
|
|
strb r6, [r0]
|
|
ldr r0, [r7]
|
|
ldr r2, =0x00003024
|
|
adds r0, r2
|
|
strb r6, [r0]
|
|
b _0802A35E
|
|
.pool
|
|
_0802A0CC:
|
|
ldr r3, =0x00003008
|
|
mov r8, r3
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r7]
|
|
ldr r1, =0x00003009
|
|
mov r10, r1
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r7]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_WantToPlayAgain
|
|
movs r1, 0x5
|
|
str r1, [sp]
|
|
movs r3, 0xFF
|
|
mov r9, r3
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_Yes
|
|
str r6, [sp]
|
|
mov r3, r9
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_No
|
|
movs r1, 0x11
|
|
str r1, [sp]
|
|
mov r3, r9
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_SelectorArrow2
|
|
str r6, [sp]
|
|
mov r3, r9
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, [r7]
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r7]
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
b _0802A2EA
|
|
.pool
|
|
_0802A194:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802A1B6
|
|
ldr r0, [r7]
|
|
ldr r3, =0x00003008
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r7]
|
|
ldr r1, =0x00003009
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_0802A1B6:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r7]
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
b _0802A2EA
|
|
.pool
|
|
_0802A1D0:
|
|
ldr r3, =0x00003020
|
|
adds r0, r2, r3
|
|
ldrb r5, [r0]
|
|
cmp r5, 0
|
|
bne _0802A1DC
|
|
movs r5, 0x1
|
|
_0802A1DC:
|
|
ldr r0, =0x00003009
|
|
mov r8, r0
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r7]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_Yes
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
movs r3, 0xFF
|
|
mov r10, r3
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0
|
|
mov r9, r1
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_No
|
|
movs r1, 0x11
|
|
str r1, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
mov r1, r9
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_SelectorArrow2
|
|
subs r1, r5, 0x1
|
|
lsls r1, 4
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
mov r3, r10
|
|
str r3, [sp, 0x4]
|
|
mov r1, r9
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r7]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r5, 0x1
|
|
movs r2, 0x1
|
|
ands r2, r1
|
|
cmp r2, 0
|
|
beq _0802A294
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, [r7]
|
|
ldr r3, =0x00003020
|
|
adds r1, r0, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0802A2E4
|
|
strb r5, [r1]
|
|
b _0802A2E4
|
|
.pool
|
|
_0802A294:
|
|
movs r0, 0xC0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0802A2CC
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, [r7]
|
|
ldr r2, =0x00003020
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _0802A2C2
|
|
cmp r0, 0x1
|
|
bgt _0802A2BC
|
|
cmp r0, 0
|
|
beq _0802A2C2
|
|
b _0802A35E
|
|
.pool
|
|
_0802A2BC:
|
|
cmp r0, 0x2
|
|
beq _0802A2C8
|
|
b _0802A35E
|
|
_0802A2C2:
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _0802A35E
|
|
_0802A2C8:
|
|
strb r5, [r1]
|
|
b _0802A35E
|
|
_0802A2CC:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0802A35E
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, [r7]
|
|
ldr r3, =0x00003020
|
|
adds r0, r3
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
_0802A2E4:
|
|
ldr r1, [r7]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
_0802A2EA:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0802A35E
|
|
.pool
|
|
_0802A2FC:
|
|
ldr r0, [r7]
|
|
ldr r2, =0x00003020
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
ldr r3, =0x00003024
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
ldr r0, [r7]
|
|
ldr r6, =0x00003008
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r7]
|
|
ldr r1, =0x00003009
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r7]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
ldr r0, [r7]
|
|
ldr r2, =0x00003009
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r7]
|
|
movs r3, 0xC0
|
|
lsls r3, 6
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_0802A35E:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802A010
|
|
|
|
thumb_func_start sub_802A380
|
|
sub_802A380: @ 802A380
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
ldr r5, =gUnknown_02022CF8
|
|
ldr r0, [r5]
|
|
ldr r6, =0x00003014
|
|
adds r0, r6
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x1
|
|
beq _0802A3D8
|
|
cmp r4, 0x1
|
|
bgt _0802A3A4
|
|
cmp r4, 0
|
|
beq _0802A3AE
|
|
b _0802A420
|
|
.pool
|
|
_0802A3A4:
|
|
cmp r4, 0x2
|
|
beq _0802A3EC
|
|
cmp r4, 0x3
|
|
beq _0802A404
|
|
b _0802A420
|
|
_0802A3AE:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl DrawDialogueFrame
|
|
ldr r2, =gText_SavingDontTurnOffPower
|
|
str r4, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized2
|
|
b _0802A410
|
|
.pool
|
|
_0802A3D8:
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, [r5]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _0802A414
|
|
.pool
|
|
_0802A3EC:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802A448
|
|
ldr r0, =sub_8153688
|
|
movs r1, 0
|
|
bl CreateTask
|
|
b _0802A410
|
|
.pool
|
|
_0802A404:
|
|
ldr r0, =sub_8153688
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802A448
|
|
_0802A410:
|
|
ldr r1, [r5]
|
|
adds r1, r6
|
|
_0802A414:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0802A448
|
|
.pool
|
|
_0802A420:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_0802A448:
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802A380
|
|
|
|
thumb_func_start sub_802A454
|
|
sub_802A454: @ 802A454
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r1, =gUnknown_02022CF8
|
|
ldr r2, [r1]
|
|
ldr r6, =0x00003014
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r0, 0x1
|
|
beq _0802A4AC
|
|
cmp r0, 0x1
|
|
bgt _0802A47C
|
|
cmp r0, 0
|
|
beq _0802A482
|
|
b _0802A520
|
|
.pool
|
|
_0802A47C:
|
|
cmp r0, 0x2
|
|
beq _0802A4F4
|
|
b _0802A520
|
|
_0802A482:
|
|
ldr r4, =gUnknown_082F7BEC
|
|
adds r0, r4, 0
|
|
bl AddWindow
|
|
ldr r1, [r5]
|
|
ldr r2, =0x00003008
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r4, 0
|
|
bl sub_8029174
|
|
b _0802A510
|
|
.pool
|
|
_0802A4AC:
|
|
ldr r4, =0x00003008
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_CommunicationStandby3
|
|
movs r1, 0x5
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r5]
|
|
ldr r0, =0x00003014
|
|
adds r1, r0
|
|
b _0802A514
|
|
.pool
|
|
_0802A4F4:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802A50A
|
|
ldr r0, [r5]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_0802A50A:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
_0802A510:
|
|
ldr r1, [r5]
|
|
adds r1, r6
|
|
_0802A514:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0802A52C
|
|
.pool
|
|
_0802A520:
|
|
ldr r0, [r5]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_0802A52C:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_802A454
|
|
|
|
thumb_func_start sub_802A534
|
|
sub_802A534: @ 802A534
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r5, =gUnknown_02022CF8
|
|
ldr r0, [r5]
|
|
ldr r4, =0x00003008
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r5]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802A534
|
|
|
|
thumb_func_start sub_802A588
|
|
sub_802A588: @ 802A588
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r7, =0x00003014
|
|
adds r2, r1, r7
|
|
ldrb r5, [r2]
|
|
adds r6, r0, 0
|
|
cmp r5, 0x1
|
|
beq _0802A610
|
|
cmp r5, 0x1
|
|
bgt _0802A5B0
|
|
cmp r5, 0
|
|
beq _0802A5BA
|
|
b _0802A6A4
|
|
.pool
|
|
_0802A5B0:
|
|
cmp r5, 0x2
|
|
beq _0802A658
|
|
cmp r5, 0x3
|
|
beq _0802A684
|
|
b _0802A6A4
|
|
_0802A5BA:
|
|
ldr r4, =gUnknown_082F7BE4
|
|
adds r0, r4, 0
|
|
bl AddWindow
|
|
ldr r1, [r6]
|
|
ldr r2, =0x00003008
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
adds r0, r4, 0
|
|
bl sub_8029174
|
|
ldr r1, [r6]
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r6]
|
|
ldr r2, =0x0000301c
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
strh r5, [r1]
|
|
ldr r1, =0x00003020
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _0802A6EA
|
|
.pool
|
|
_0802A610:
|
|
ldr r4, =0x00003008
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
ldr r2, =gText_SomeoneDroppedOut
|
|
movs r1, 0x5
|
|
str r1, [sp]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, [r6]
|
|
ldr r2, =0x00003014
|
|
adds r1, r2
|
|
b _0802A678
|
|
.pool
|
|
_0802A658:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0802A66E
|
|
ldr r0, [r6]
|
|
ldr r1, =0x00003008
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
_0802A66E:
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r6]
|
|
adds r1, r7
|
|
_0802A678:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0802A6EA
|
|
.pool
|
|
_0802A684:
|
|
ldr r0, =0x0000301c
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x77
|
|
bls _0802A6EA
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
b _0802A6EA
|
|
.pool
|
|
_0802A6A4:
|
|
ldr r0, [r6]
|
|
ldr r1, =0x00003024
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
ldr r4, =0x00003008
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl ClearWindowTilemap
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl RemoveWindow
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r6]
|
|
movs r2, 0xC0
|
|
lsls r2, 6
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
_0802A6EA:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802A588
|
|
|
|
thumb_func_start unused_0
|
|
unused_0: @ 802A6FC
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r0, [r4]
|
|
ldr r1, =0x00003004
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl DestroyTask
|
|
ldr r0, [r4]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end unused_0
|
|
|
|
thumb_func_start nullsub_16
|
|
nullsub_16: @ 802A728
|
|
bx lr
|
|
thumb_func_end nullsub_16
|
|
|
|
thumb_func_start sub_802A72C
|
|
sub_802A72C: @ 802A72C
|
|
push {r4,lr}
|
|
ldr r2, =gUnknown_02022CF8
|
|
ldr r1, [r2]
|
|
ldr r3, =0x00003014
|
|
adds r1, r3
|
|
movs r3, 0
|
|
strb r3, [r1]
|
|
ldr r1, [r2]
|
|
movs r4, 0xC0
|
|
lsls r4, 6
|
|
adds r2, r1, r4
|
|
str r3, [r2]
|
|
ldr r2, =0x00003028
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802A72C
|
|
|
|
thumb_func_start sub_802A75C
|
|
sub_802A75C: @ 802A75C
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00003028
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_802A75C
|
|
|
|
thumb_func_start sub_802A770
|
|
sub_802A770: @ 802A770
|
|
push {lr}
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0802A78C
|
|
movs r0, 0x1
|
|
b _0802A78E
|
|
.pool
|
|
_0802A78C:
|
|
movs r0, 0
|
|
_0802A78E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_802A770
|
|
|
|
thumb_func_start sub_802A794
|
|
sub_802A794: @ 802A794
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r1, =0x00003024
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_802A794
|
|
|
|
thumb_func_start sub_802A7A8
|
|
sub_802A7A8: @ 802A7A8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r3, 0xC0
|
|
lsls r3, 19
|
|
movs r4, 0xC0
|
|
lsls r4, 9
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
mov r2, sp
|
|
movs r6, 0
|
|
ldr r1, =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_0802A7CE:
|
|
strh r6, [r2]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r5
|
|
subs r4, r5
|
|
cmp r4, r5
|
|
bhi _0802A7CE
|
|
strh r6, [r2]
|
|
mov r2, sp
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r4, 1
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r2, =0x040000d4
|
|
mov r1, r8
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_082F7BA4
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
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, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
bl InitStandardTextBoxWindows
|
|
bl sub_8197200
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r4, =gUnknown_02022CF8
|
|
ldr r1, [r4]
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_802A7A8
|
|
|
|
thumb_func_start sub_802A8E8
|
|
sub_802A8E8: @ 802A8E8
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r0, [r0]
|
|
ldr r2, =0x00003018
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
bhi _0802A982
|
|
lsls r0, 2
|
|
ldr r1, =_0802A910
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0802A910:
|
|
.4byte _0802A928
|
|
.4byte _0802A938
|
|
.4byte _0802A93E
|
|
.4byte _0802A94C
|
|
.4byte _0802A964
|
|
.4byte _0802A972
|
|
_0802A928:
|
|
ldr r0, =gDodrioBerryBgPal1
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadPalette
|
|
b _0802A98A
|
|
.pool
|
|
_0802A938:
|
|
bl reset_temp_tile_data_buffers
|
|
b _0802A98A
|
|
_0802A93E:
|
|
ldr r1, =gDodrioBerryBgGfx1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
b _0802A954
|
|
.pool
|
|
_0802A94C:
|
|
ldr r1, =gDodrioBerryBgGfx2
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
_0802A954:
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
b _0802A98A
|
|
.pool
|
|
_0802A964:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0802A98A
|
|
b _0802A998
|
|
_0802A972:
|
|
movs r0, 0x3
|
|
bl stdpal_get
|
|
movs r1, 0xD0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _0802A98A
|
|
_0802A982:
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _0802A99A
|
|
_0802A98A:
|
|
ldr r0, =gUnknown_02022CF8
|
|
ldr r1, [r0]
|
|
ldr r0, =0x00003018
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0802A998:
|
|
movs r0, 0
|
|
_0802A99A:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_802A8E8
|
|
|
|
.align 2, 0 @ don't pad with nop
|