mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-29 14:58:23 -04:00
99a038284b
This decision was made to reduce the complexity of using .include whilst juggling with tools/scaninc and tools/preproc: - tools/scaninc doesn't apply the proper search rules for .include (it assumes #include behavior). In particular, it doesn't consider paths starting from $PWD, and doesn't scan the included files as a result. - .include had to be processed before #include by preproc in many cases, as code was being included that had to be preprocessed by CPP (think of #define). This contradicts standard GCC behavior. To make include paths consistent across the asm/ data/ and src/ directories, the following files were moved: - constants/ → include/asm/constants/ - asm/macros/ → include/asm/macros/ - asm/macros.inc → include/asm/macros.inc - include/macros/m4a.inc → include/asm/macros/m4a.inc As part of the necessary changes for this to work, the scaninc method in the makefile was improved to generate .d files that don't choke when files are missing.
959 lines
15 KiB
ArmAsm
959 lines
15 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8084160
|
|
sub_8084160:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x64
|
|
bl DungeonRandomCapped
|
|
cmp r0, r4
|
|
blt _08084172
|
|
movs r0, 0
|
|
b _08084174
|
|
_08084172:
|
|
movs r0, 0x1
|
|
_08084174:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8084160
|
|
|
|
thumb_func_start sub_808417C
|
|
sub_808417C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_808411C
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080841DC
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080841DC
|
|
cmp r6, 0
|
|
beq _080841DC
|
|
adds r0, r5, 0
|
|
movs r1, 0x12
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080841C4
|
|
cmp r4, 0x7F
|
|
beq _080841C4
|
|
lsrs r0, r4, 31
|
|
adds r0, r4, r0
|
|
asrs r4, r0, 1
|
|
_080841C4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x14
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080841DC
|
|
cmp r4, 0x7F
|
|
beq _080841DC
|
|
cmp r4, 0x4
|
|
ble _080841DC
|
|
movs r4, 0x5
|
|
_080841DC:
|
|
cmp r4, 0
|
|
bgt _080841E2
|
|
movs r4, 0x1
|
|
_080841E2:
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_808417C
|
|
|
|
thumb_func_start sub_80841EC
|
|
sub_80841EC:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0xC4
|
|
add r0, sp, 0x60
|
|
mov r8, r0
|
|
movs r1, 0
|
|
movs r2, 0x60
|
|
bl memset
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x64]
|
|
add r1, sp, 0x68
|
|
movs r6, 0
|
|
movs r0, 0x4
|
|
strh r0, [r1]
|
|
movs r2, 0x3
|
|
strh r2, [r1, 0x2]
|
|
add r1, sp, 0x6C
|
|
movs r0, 0x16
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x6E
|
|
movs r5, 0xE
|
|
movs r1, 0xE
|
|
strh r1, [r0]
|
|
add r0, sp, 0x70
|
|
strh r1, [r0]
|
|
add r4, sp, 0xC0
|
|
str r4, [sp, 0x74]
|
|
str r2, [sp, 0x7C]
|
|
add r0, sp, 0x90
|
|
str r2, [r0, 0x4]
|
|
add r0, sp, 0xA8
|
|
str r2, [r0, 0x4]
|
|
mov r0, sp
|
|
mov r1, r8
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
strb r6, [r4, 0x1]
|
|
strb r5, [r4, 0x2]
|
|
strb r6, [r4, 0x3]
|
|
mov r1, sp
|
|
movs r0, 0x14
|
|
strh r0, [r1, 0xA]
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_803ECB4
|
|
ldr r0, _0808426C
|
|
ldr r0, [r0]
|
|
ldr r1, _08084270
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r0, _08084274
|
|
cmp r1, r0
|
|
ble _08084278
|
|
bl sub_8083DE0
|
|
b _0808427C
|
|
.align 2, 0
|
|
_0808426C: .4byte gDungeonGlobalData
|
|
_08084270: .4byte 0x0001ceac
|
|
_08084274: .4byte 0x00000225
|
|
_08084278:
|
|
bl sub_8083D98
|
|
_0808427C:
|
|
ldr r0, _080842B8
|
|
ldr r1, [r0]
|
|
ldr r0, _080842BC
|
|
ldr r2, [r0]
|
|
ldr r0, _080842C0
|
|
adds r2, r0
|
|
movs r0, 0
|
|
bl sub_8094558
|
|
mov r4, sp
|
|
_08084290:
|
|
movs r0, 0x36
|
|
bl sub_803E668
|
|
bl sub_8083F58
|
|
ldrh r1, [r4, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3
|
|
ble _080842C4
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r0, 0xA0
|
|
strb r0, [r4]
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_803ECB4
|
|
b _08084290
|
|
.align 2, 0
|
|
_080842B8: .4byte gUnknown_80FE6E8
|
|
_080842BC: .4byte gDungeonGlobalData
|
|
_080842C0: .4byte 0x0001ce98
|
|
_080842C4:
|
|
bl sub_8094D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080842DA
|
|
ldr r0, _080842EC
|
|
ldrh r1, [r0, 0x2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08084290
|
|
_080842DA:
|
|
bl sub_8083D08
|
|
add sp, 0xC4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080842EC: .4byte gRealInputs
|
|
thumb_func_end sub_80841EC
|
|
|
|
thumb_func_start sub_80842F0
|
|
sub_80842F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r1, _0808436C
|
|
ldr r0, [r1]
|
|
ldr r2, _08084370
|
|
adds r0, r2
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
ldr r3, _08084374
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
movs r5, 0xCF
|
|
lsls r5, 3
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080843AE
|
|
movs r6, 0
|
|
ldr r0, _08084378
|
|
mov r8, r0
|
|
movs r7, 0x1
|
|
_08084320:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x6
|
|
bne _080843A8
|
|
ldr r3, _0808436C
|
|
ldr r5, [r3]
|
|
ldr r1, _0808437C
|
|
adds r0, r5, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r4, 0x4]
|
|
mov r1, r8
|
|
ands r1, r0
|
|
mov r0, r8
|
|
ands r0, r2
|
|
cmp r1, r0
|
|
bne _080843A8
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x3
|
|
beq _080843A8
|
|
cmp r0, 0x4
|
|
bne _08084380
|
|
ldrb r1, [r4, 0x10]
|
|
ldr r2, _08084374
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
ldr r2, [r3]
|
|
ldrh r1, [r4, 0xE]
|
|
movs r3, 0xD1
|
|
lsls r3, 3
|
|
adds r0, r2, r3
|
|
strh r1, [r0]
|
|
strb r7, [r2, 0x9]
|
|
b _080843A8
|
|
.align 2, 0
|
|
_0808436C: .4byte gDungeonGlobalData
|
|
_08084370: .4byte 0x00000677
|
|
_08084374: .4byte 0x0000068a
|
|
_08084378: .4byte 0x0000ffff
|
|
_0808437C: .4byte 0x00000644
|
|
_08084380:
|
|
cmp r0, 0
|
|
beq _0808438C
|
|
cmp r0, 0x2
|
|
beq _0808438C
|
|
cmp r0, 0x1
|
|
bne _080843A8
|
|
_0808438C:
|
|
ldr r2, [r3]
|
|
ldrh r0, [r4, 0xE]
|
|
movs r5, 0xD1
|
|
lsls r5, 3
|
|
adds r1, r2, r5
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
bne _080843A4
|
|
ldr r1, _080843B8
|
|
adds r0, r2, r1
|
|
strb r7, [r0]
|
|
_080843A4:
|
|
ldr r0, [r3]
|
|
strb r7, [r0, 0x9]
|
|
_080843A8:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08084320
|
|
_080843AE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080843B8: .4byte 0x00000677
|
|
thumb_func_end sub_80842F0
|
|
|
|
thumb_func_start sub_80843BC
|
|
sub_80843BC:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
movs r4, 0
|
|
ldr r5, _08084418
|
|
_080843C6:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r3, r0, 0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x6
|
|
bne _0808440C
|
|
ldr r0, _0808441C
|
|
ldr r0, [r0]
|
|
ldr r1, _08084420
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r3, 0x4]
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r1, r0
|
|
bne _0808440C
|
|
ldrb r0, [r3, 0x1]
|
|
cmp r0, 0
|
|
beq _08084400
|
|
cmp r0, 0x4
|
|
beq _08084400
|
|
cmp r0, 0x2
|
|
beq _08084400
|
|
cmp r0, 0x1
|
|
bne _0808440C
|
|
_08084400:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r3, r1]
|
|
cmp r6, r0
|
|
bne _0808440C
|
|
movs r0, 0x8
|
|
strb r0, [r3]
|
|
_0808440C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080843C6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08084418: .4byte 0x0000ffff
|
|
_0808441C: .4byte gDungeonGlobalData
|
|
_08084420: .4byte 0x00000644
|
|
thumb_func_end sub_80843BC
|
|
|
|
thumb_func_start sub_8084424
|
|
sub_8084424:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_08084428:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x8
|
|
bne _0808443C
|
|
movs r0, 0x9
|
|
strb r0, [r1]
|
|
_0808443C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08084428
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8084424
|
|
|
|
thumb_func_start sub_8084448
|
|
sub_8084448:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldr r7, [r5, 0x70]
|
|
ldr r4, _0808447C
|
|
bl GetLeaderEntity
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08084484
|
|
ldr r0, _08084480
|
|
b _080844F0
|
|
.align 2, 0
|
|
_0808447C: .4byte gAvailablePokemonNames
|
|
_08084480: .4byte gUnknown_80FA464
|
|
_08084484:
|
|
ldr r4, _080844FC
|
|
ldr r0, [r4]
|
|
ldr r6, _08084500
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08084540
|
|
ldr r0, _08084504
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
beq _080844A4
|
|
b _080845D4
|
|
_080844A4:
|
|
ldr r0, _08084508
|
|
ldr r1, [r4]
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
movs r2, 0
|
|
bl sub_8090DC4
|
|
movs r3, 0
|
|
ldr r0, _0808450C
|
|
adds r6, r0, 0
|
|
ldr r2, [r6]
|
|
_080844BA:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080844E2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080844E2
|
|
movs r0, 0x18
|
|
ands r0, r1
|
|
cmp r0, 0x18
|
|
beq _080844E2
|
|
ldr r0, [r4]
|
|
ldr r1, _08084500
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
beq _080844EA
|
|
_080844E2:
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x13
|
|
ble _080844BA
|
|
_080844EA:
|
|
cmp r3, 0x14
|
|
bne _08084514
|
|
ldr r0, _08084510
|
|
_080844F0:
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
b _080845D4
|
|
.align 2, 0
|
|
_080844FC: .4byte gDungeonGlobalData
|
|
_08084500: .4byte 0x0000068a
|
|
_08084504: .4byte gUnknown_80FA32C
|
|
_08084508: .4byte gUnknown_202DE58
|
|
_0808450C: .4byte gTeamInventory_203B460
|
|
_08084510: .4byte gUnknown_80FA448
|
|
_08084514:
|
|
lsls r1, r3, 2
|
|
ldr r0, [r6]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1]
|
|
bl FillInventoryGaps
|
|
ldr r0, _08084538
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
ldr r0, _0808453C
|
|
b _0808455E
|
|
.align 2, 0
|
|
_08084538: .4byte gUnknown_80FA2B0
|
|
_0808453C: .4byte gUnknown_80FA370
|
|
_08084540:
|
|
ldr r0, _080845B0
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _080845D4
|
|
ldr r0, _080845B4
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
ldr r0, _080845B8
|
|
_0808455E:
|
|
ldr r4, [r0]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r7, r1]
|
|
bl sub_80843BC
|
|
adds r0, r5, 0x4
|
|
bl sub_8042A34
|
|
movs r1, 0x87
|
|
lsls r1, 2
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl sub_8068FE0
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
ldr r5, _080845BC
|
|
_08084582:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _080845C4
|
|
ldr r0, _080845C0
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _08084582
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x4]
|
|
ldr r1, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x11]
|
|
b _080845D4
|
|
.align 2, 0
|
|
_080845B0: .4byte gUnknown_80FA2F0
|
|
_080845B4: .4byte gUnknown_80FA260
|
|
_080845B8: .4byte gUnknown_80FA36C
|
|
_080845BC: .4byte gDungeonGlobalData
|
|
_080845C0: .4byte gUnknown_80FA394
|
|
_080845C4:
|
|
ldr r0, _080845DC
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _08084582
|
|
_080845D4:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080845DC: .4byte gUnknown_80FA3B8
|
|
thumb_func_end sub_8084448
|
|
|
|
thumb_func_start sub_80845E0
|
|
sub_80845E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
ldr r0, [r6, 0x70]
|
|
mov r8, r0
|
|
movs r7, 0
|
|
movs r1, 0
|
|
mov r9, r1
|
|
ldr r4, _08084620
|
|
bl GetLeaderEntity
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08084630
|
|
ldr r0, _08084624
|
|
b _080846B4
|
|
.align 2, 0
|
|
_08084620: .4byte gAvailablePokemonNames
|
|
_08084624: .4byte gUnknown_80FA530
|
|
_08084628:
|
|
adds r7, r4, 0
|
|
ldr r2, [r7, 0x70]
|
|
mov r9, r2
|
|
b _08084674
|
|
_08084630:
|
|
movs r5, 0
|
|
_08084632:
|
|
ldr r0, _08084660
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08084664
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808466E
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4A
|
|
beq _0808465A
|
|
cmp r0, 0x47
|
|
bne _08084668
|
|
_0808465A:
|
|
movs r0, 0x1
|
|
b _0808466A
|
|
.align 2, 0
|
|
_08084660: .4byte gDungeonGlobalData
|
|
_08084664: .4byte 0x0001357c
|
|
_08084668:
|
|
movs r0, 0
|
|
_0808466A:
|
|
cmp r0, 0
|
|
bne _08084628
|
|
_0808466E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08084632
|
|
_08084674:
|
|
cmp r7, 0
|
|
bne _08084680
|
|
ldr r0, _0808467C
|
|
b _080846B4
|
|
.align 2, 0
|
|
_0808467C: .4byte gUnknown_80FA52C
|
|
_08084680:
|
|
ldr r0, _0808469C
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r7, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080846A4
|
|
ldr r0, _080846A0
|
|
b _080846B4
|
|
.align 2, 0
|
|
_0808469C: .4byte gUnknown_202E038
|
|
_080846A0: .4byte gUnknown_80FA54C
|
|
_080846A4:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl CanSee
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080846C4
|
|
ldr r0, _080846C0
|
|
_080846B4:
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
b _08084768
|
|
.align 2, 0
|
|
_080846C0: .4byte gUnknown_80FA500
|
|
_080846C4:
|
|
ldr r0, _08084744
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
mov r1, r8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80843BC
|
|
ldr r5, _08084748
|
|
ldr r0, [r5]
|
|
ldr r1, _0808474C
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
adds r0, 0x40
|
|
strb r1, [r0]
|
|
adds r0, r6, 0x4
|
|
bl sub_8042A34
|
|
adds r0, r7, 0x4
|
|
bl sub_8042A34
|
|
movs r4, 0x87
|
|
lsls r4, 2
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8068FE0
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8068FE0
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
ldr r4, _08084750
|
|
_08084716:
|
|
movs r0, 0
|
|
ldr r1, [r4]
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _08084758
|
|
ldr r0, _08084754
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _08084716
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x4]
|
|
ldr r1, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x11]
|
|
b _08084768
|
|
.align 2, 0
|
|
_08084744: .4byte gUnknown_80FA4D4
|
|
_08084748: .4byte gDungeonGlobalData
|
|
_0808474C: .4byte 0x00000644
|
|
_08084750: .4byte gUnknown_80FA4D8
|
|
_08084754: .4byte gUnknown_80FA394
|
|
_08084758:
|
|
ldr r0, _08084774
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
bne _08084716
|
|
_08084768:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08084774: .4byte gUnknown_80FA3B8
|
|
thumb_func_end sub_80845E0
|
|
|
|
thumb_func_start sub_8084778
|
|
sub_8084778:
|
|
push {r4,lr}
|
|
ldr r0, _080847B8
|
|
ldr r1, _080847BC
|
|
bl strcpy
|
|
movs r4, 0
|
|
_08084784:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _080847C8
|
|
ldr r0, _080847C0
|
|
ldr r0, [r0]
|
|
ldr r2, _080847C4
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r1, 0x4]
|
|
cmp r0, r2
|
|
bne _080847C8
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x2
|
|
bne _080847C8
|
|
movs r0, 0xE
|
|
ldrsh r1, [r1, r0]
|
|
ldr r0, _080847B8
|
|
bl CopyCyanSpeciesNametoBuffer
|
|
b _080847CE
|
|
.align 2, 0
|
|
_080847B8: .4byte gUnknown_202E088
|
|
_080847BC: .4byte gUnknown_8107224
|
|
_080847C0: .4byte gDungeonGlobalData
|
|
_080847C4: .4byte 0x00000644
|
|
_080847C8:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08084784
|
|
_080847CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8084778
|
|
|
|
thumb_func_start sub_80847D4
|
|
sub_80847D4:
|
|
push {r4,r5,lr}
|
|
ldr r2, _08084820
|
|
ldr r0, [r2]
|
|
ldr r1, _08084824
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldr r2, _08084828
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
bl sub_8040A84
|
|
movs r4, 0
|
|
ldr r0, _0808482C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08084846
|
|
movs r3, 0
|
|
_080847FA:
|
|
ldr r0, _08084820
|
|
ldr r0, [r0]
|
|
ldr r5, _08084830
|
|
adds r0, r5
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r1, 0
|
|
subs r0, 0x1C
|
|
cmp r0, 0x15
|
|
bhi _08084810
|
|
movs r1, 0x1B
|
|
_08084810:
|
|
ldr r2, _0808482C
|
|
adds r0, r3, r2
|
|
ldrb r5, [r0]
|
|
cmp r1, r5
|
|
bne _08084834
|
|
bl sub_8084854
|
|
b _08084846
|
|
.align 2, 0
|
|
_08084820: .4byte gDungeonGlobalData
|
|
_08084824: .4byte 0x00003a0d
|
|
_08084828: .4byte 0x0001356c
|
|
_0808482C: .4byte gUnknown_8107234
|
|
_08084830: .4byte 0x00003a14
|
|
_08084834:
|
|
adds r3, 0x8
|
|
adds r4, 0x1
|
|
ldr r0, _08084850
|
|
cmp r4, r0
|
|
bgt _08084846
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080847FA
|
|
_08084846:
|
|
bl sub_8097FF8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08084850: .4byte 0x000003e6
|
|
thumb_func_end sub_80847D4
|
|
|
|
thumb_func_start sub_8084854
|
|
sub_8084854:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _08084874
|
|
ldr r2, [r5]
|
|
movs r1, 0xCF
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0808487C
|
|
ldrb r1, [r4, 0x5]
|
|
ldr r3, _08084878
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
b _080848C8
|
|
.align 2, 0
|
|
_08084874: .4byte gDungeonGlobalData
|
|
_08084878: .4byte 0x00003a0d
|
|
_0808487C:
|
|
ldrb r0, [r4, 0x4]
|
|
bl sub_8098100
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08084898
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4, 0x5]
|
|
ldr r2, _08084894
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
b _080848C8
|
|
.align 2, 0
|
|
_08084894: .4byte 0x00003a0d
|
|
_08084898:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8098100
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080848B4
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4, 0x3]
|
|
ldr r3, _080848B0
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
b _080848C8
|
|
.align 2, 0
|
|
_080848B0: .4byte 0x00003a0d
|
|
_080848B4:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r2, _080848E0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x40
|
|
beq _080848C8
|
|
bl sub_8097FA8
|
|
_080848C8:
|
|
ldr r0, _080848E4
|
|
ldr r0, [r0]
|
|
ldr r3, _080848E8
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl sub_807E5E4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080848E0: .4byte 0x00003a0d
|
|
_080848E4: .4byte gDungeonGlobalData
|
|
_080848E8: .4byte 0x00000675
|
|
thumb_func_end sub_8084854
|
|
|
|
.align 2,0
|