mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-24 05:29:47 +00: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.
973 lines
15 KiB
ArmAsm
973 lines
15 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8085B0C
|
|
sub_8085B0C:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x1C
|
|
adds r5, r0, 0
|
|
ldr r1, _08085B48
|
|
mov r0, sp
|
|
movs r2, 0x19
|
|
bl memcpy
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08085B3E
|
|
mov r4, sp
|
|
_08085B26:
|
|
ldrb r1, [r4]
|
|
adds r0, r5, 0
|
|
bl SetFacingDirection
|
|
movs r0, 0x6
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
adds r4, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08085B26
|
|
_08085B3E:
|
|
add sp, 0x1C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08085B48: .4byte gUnknown_8107358
|
|
thumb_func_end sub_8085B0C
|
|
|
|
thumb_func_start sub_8085B4C
|
|
sub_8085B4C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _08085B7C
|
|
str r3, [r0]
|
|
cmp r3, 0
|
|
ble _08085B76
|
|
movs r6, 0x1
|
|
adds r4, r1, 0
|
|
adds r1, r5, 0
|
|
_08085B5E:
|
|
strb r6, [r1]
|
|
ldm r2!, {r0}
|
|
str r0, [r1, 0x4]
|
|
ldm r4!, {r0}
|
|
str r0, [r1, 0xC]
|
|
movs r5, 0x4
|
|
ldrsh r0, [r0, r5]
|
|
str r0, [r1, 0x8]
|
|
adds r1, 0x10
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _08085B5E
|
|
_08085B76:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08085B7C: .4byte gUnknown_202F3D8
|
|
thumb_func_end sub_8085B4C
|
|
|
|
thumb_func_start sub_8085B80
|
|
sub_8085B80:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r1, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r7, 0
|
|
ldr r0, _08085BE4
|
|
ldr r0, [r0]
|
|
cmp r8, r0
|
|
bge _08085C3E
|
|
adds r5, r1, 0
|
|
_08085B98:
|
|
ldr r6, [r5, 0x4]
|
|
ldr r2, [r6, 0x70]
|
|
adds r3, r2, 0
|
|
ldr r4, [r5, 0xC]
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08085C32
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r0, [r5, 0x8]
|
|
cmp r0, 0
|
|
bne _08085C08
|
|
adds r4, 0x8
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08085BE8
|
|
strb r0, [r5]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
movs r3, 0
|
|
ldrsh r2, [r4, r3]
|
|
adds r0, r6, 0
|
|
movs r1, 0x7
|
|
bl sub_806CDD4
|
|
movs r0, 0xA
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0xC
|
|
ldrsh r2, [r4, r3]
|
|
adds r0, r6, 0
|
|
bl sub_80856C8
|
|
b _08085C32
|
|
.align 2, 0
|
|
_08085BE4: .4byte gUnknown_202F3D8
|
|
_08085BE8:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
str r0, [r5, 0x8]
|
|
str r4, [r5, 0xC]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
adds r1, r3, 0
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
movs r3, 0
|
|
ldrsh r2, [r4, r3]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_806CDD4
|
|
_08085C08:
|
|
ldr r0, [r5, 0x8]
|
|
subs r0, 0x1
|
|
str r0, [r5, 0x8]
|
|
ldr r1, _08085C4C
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r4, r3]
|
|
muls r1, r2
|
|
lsls r1, 8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
muls r2, r0
|
|
lsls r2, 8
|
|
adds r0, r6, 0
|
|
bl sub_804539C
|
|
_08085C32:
|
|
adds r5, 0x10
|
|
adds r7, 0x1
|
|
ldr r0, _08085C50
|
|
ldr r0, [r0]
|
|
cmp r7, r0
|
|
blt _08085B98
|
|
_08085C3E:
|
|
mov r0, r8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08085C4C: .4byte gAdjacentTileOffsets
|
|
_08085C50: .4byte gUnknown_202F3D8
|
|
thumb_func_end sub_8085B80
|
|
|
|
thumb_func_start sub_8085C54
|
|
sub_8085C54:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
str r0, [sp, 0x14]
|
|
mov r10, r1
|
|
mov r9, r2
|
|
ldr r4, [sp, 0x48]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x18]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_8085E98
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, _08085E70
|
|
ldr r0, [r0]
|
|
ldr r5, [r0, 0x4]
|
|
cmp r4, 0
|
|
beq _08085CAE
|
|
ldr r1, [sp, 0x14]
|
|
cmp r1, 0
|
|
blt _08085C92
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
str r0, [sp, 0x14]
|
|
_08085C92:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
blt _08085CA0
|
|
lsrs r0, r2, 31
|
|
add r0, r10
|
|
asrs r0, 1
|
|
mov r10, r0
|
|
_08085CA0:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
blt _08085CAE
|
|
lsrs r0, r3, 31
|
|
add r0, r9
|
|
asrs r0, 1
|
|
mov r9, r0
|
|
_08085CAE:
|
|
ldr r1, _08085E74
|
|
ldr r0, [sp, 0x8]
|
|
ands r0, r1
|
|
ldr r1, _08085E78
|
|
ands r0, r1
|
|
ldr r1, _08085E7C
|
|
ands r0, r1
|
|
str r0, [sp, 0x8]
|
|
ldr r0, _08085E80
|
|
ldr r2, [r0]
|
|
ldr r0, _08085E84
|
|
ldr r3, [r0]
|
|
movs r0, 0xBE
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
mov r0, r8
|
|
add r1, sp, 0x8
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r5, 0x4
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
ldr r2, [sp, 0x14]
|
|
lsls r2, 16
|
|
str r2, [sp, 0x1C]
|
|
mov r3, r10
|
|
lsls r3, 16
|
|
str r3, [sp, 0x20]
|
|
mov r0, r9
|
|
lsls r0, 16
|
|
str r0, [sp, 0x24]
|
|
add r7, sp, 0xC
|
|
movs r1, 0xA0
|
|
cmp r1, 0x1
|
|
ble _08085D56
|
|
add r6, sp, 0x8
|
|
movs r4, 0xA0
|
|
subs r4, 0x1
|
|
_08085CFA:
|
|
ldrb r0, [r5]
|
|
ldr r3, [sp, 0x14]
|
|
adds r2, r0, r3
|
|
ldrb r0, [r5, 0x1]
|
|
mov r3, r10
|
|
adds r1, r0, r3
|
|
ldrb r0, [r5, 0x2]
|
|
add r0, r9
|
|
cmp r2, 0xFF
|
|
ble _08085D10
|
|
movs r2, 0xFF
|
|
_08085D10:
|
|
cmp r1, 0xFF
|
|
ble _08085D16
|
|
movs r1, 0xFF
|
|
_08085D16:
|
|
cmp r0, 0xFF
|
|
ble _08085D1C
|
|
movs r0, 0xFF
|
|
_08085D1C:
|
|
cmp r2, 0
|
|
bge _08085D22
|
|
movs r2, 0
|
|
_08085D22:
|
|
cmp r1, 0
|
|
bge _08085D28
|
|
movs r1, 0
|
|
_08085D28:
|
|
cmp r0, 0
|
|
bge _08085D2E
|
|
movs r0, 0
|
|
_08085D2E:
|
|
strb r2, [r6]
|
|
strb r1, [r6, 0x1]
|
|
strb r0, [r6, 0x2]
|
|
ldr r0, _08085E80
|
|
ldr r2, [r0]
|
|
ldr r0, _08085E84
|
|
ldr r3, [r0]
|
|
movs r0, 0xBE
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
mov r0, r8
|
|
add r1, sp, 0x8
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r5, 0x4
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08085CFA
|
|
_08085D56:
|
|
ldr r2, _08085E88
|
|
ldr r3, [sp, 0x1C]
|
|
lsrs r0, r3, 16
|
|
ldr r1, [sp, 0x20]
|
|
orrs r0, r1
|
|
str r0, [sp, 0xC]
|
|
ldr r3, [sp, 0x24]
|
|
lsrs r1, r3, 16
|
|
ldr r0, [r7, 0x4]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [r7, 0x4]
|
|
ldr r0, _08085E8C
|
|
ldr r1, _08085E80
|
|
ldr r3, [r1]
|
|
ldr r1, _08085E84
|
|
ldr r1, [r1]
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
str r1, [sp]
|
|
str r7, [sp, 0x4]
|
|
movs r1, 0xA0
|
|
movs r2, 0x20
|
|
bl sub_8004C00
|
|
movs r3, 0x20
|
|
add r8, r3
|
|
ldr r5, _08085E90
|
|
add r6, sp, 0x8
|
|
movs r4, 0x20
|
|
_08085D94:
|
|
ldrb r0, [r5]
|
|
ldr r1, [sp, 0x14]
|
|
adds r2, r0, r1
|
|
ldrb r0, [r5, 0x1]
|
|
mov r3, r10
|
|
adds r1, r0, r3
|
|
ldrb r0, [r5, 0x2]
|
|
add r0, r9
|
|
cmp r2, 0xFF
|
|
ble _08085DAA
|
|
movs r2, 0xFF
|
|
_08085DAA:
|
|
cmp r1, 0xFF
|
|
ble _08085DB0
|
|
movs r1, 0xFF
|
|
_08085DB0:
|
|
cmp r0, 0xFF
|
|
ble _08085DB6
|
|
movs r0, 0xFF
|
|
_08085DB6:
|
|
cmp r2, 0
|
|
bge _08085DBC
|
|
movs r2, 0
|
|
_08085DBC:
|
|
cmp r1, 0
|
|
bge _08085DC2
|
|
movs r1, 0
|
|
_08085DC2:
|
|
cmp r0, 0
|
|
bge _08085DC8
|
|
movs r0, 0
|
|
_08085DC8:
|
|
strb r2, [r6]
|
|
strb r1, [r6, 0x1]
|
|
strb r0, [r6, 0x2]
|
|
ldr r0, _08085E80
|
|
ldr r2, [r0]
|
|
ldr r7, _08085E84
|
|
ldr r3, [r7]
|
|
movs r0, 0xBE
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
mov r0, r8
|
|
add r1, sp, 0x8
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r5, 0x4
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08085D94
|
|
ldr r2, [sp, 0x18]
|
|
cmp r2, 0
|
|
beq _08085E5E
|
|
ldr r0, [r7]
|
|
ldr r3, _08085E94
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldr r5, [r0, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
mov r8, r0
|
|
add r6, sp, 0x8
|
|
movs r4, 0xD0
|
|
_08085E0A:
|
|
ldrb r0, [r5]
|
|
ldr r1, [sp, 0x14]
|
|
adds r2, r0, r1
|
|
ldrb r0, [r5, 0x1]
|
|
mov r3, r10
|
|
adds r1, r0, r3
|
|
ldrb r0, [r5, 0x2]
|
|
add r0, r9
|
|
cmp r2, 0xFF
|
|
ble _08085E20
|
|
movs r2, 0xFF
|
|
_08085E20:
|
|
cmp r1, 0xFF
|
|
ble _08085E26
|
|
movs r1, 0xFF
|
|
_08085E26:
|
|
cmp r0, 0xFF
|
|
ble _08085E2C
|
|
movs r0, 0xFF
|
|
_08085E2C:
|
|
cmp r2, 0
|
|
bge _08085E32
|
|
movs r2, 0
|
|
_08085E32:
|
|
cmp r1, 0
|
|
bge _08085E38
|
|
movs r1, 0
|
|
_08085E38:
|
|
cmp r0, 0
|
|
bge _08085E3E
|
|
movs r0, 0
|
|
_08085E3E:
|
|
strb r2, [r6]
|
|
strb r1, [r6, 0x1]
|
|
strb r0, [r6, 0x2]
|
|
ldr r0, _08085E80
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
add r1, sp, 0x8
|
|
movs r3, 0
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r5, 0x4
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08085E0A
|
|
_08085E5E:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08085E70: .4byte gUnknown_202EE88
|
|
_08085E74: .4byte 0xffffff00
|
|
_08085E78: .4byte 0xffff00ff
|
|
_08085E7C: .4byte 0xff00ffff
|
|
_08085E80: .4byte gUnknown_202EDC8
|
|
_08085E84: .4byte gDungeonGlobalData
|
|
_08085E88: .4byte 0xffff0000
|
|
_08085E8C: .4byte gUnknown_202EE8C
|
|
_08085E90: .4byte gUnknown_202ECA4
|
|
_08085E94: .4byte 0x000181e4
|
|
thumb_func_end sub_8085C54
|
|
|
|
thumb_func_start sub_8085E98
|
|
sub_8085E98:
|
|
ldr r0, _08085EA8
|
|
ldr r0, [r0]
|
|
ldr r1, _08085EAC
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08085EA8: .4byte gDungeonGlobalData
|
|
_08085EAC: .4byte 0x00018215
|
|
thumb_func_end sub_8085E98
|
|
|
|
thumb_func_start sub_8085EB0
|
|
sub_8085EB0:
|
|
ldr r0, _08085EC0
|
|
ldr r0, [r0]
|
|
ldr r1, _08085EC4
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08085EC0: .4byte gDungeonGlobalData
|
|
_08085EC4: .4byte 0x00018215
|
|
thumb_func_end sub_8085EB0
|
|
|
|
thumb_func_start sub_8085EC8
|
|
sub_8085EC8:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x28
|
|
adds r4, r0, 0
|
|
mov r8, r1
|
|
mov r9, r2
|
|
adds r6, r3, 0
|
|
ldr r5, [sp, 0x40]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r4, 0
|
|
bl sub_800EE5C
|
|
bl sub_800EF64
|
|
movs r0, 0x46
|
|
bl sub_803E46C
|
|
str r4, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
mov r2, r9
|
|
str r2, [sp, 0x8]
|
|
mov r1, sp
|
|
ldrh r0, [r6]
|
|
movs r2, 0
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r6, 0x2]
|
|
strh r0, [r1, 0xE]
|
|
mov r0, sp
|
|
strh r2, [r0, 0x10]
|
|
strh r2, [r0, 0x12]
|
|
ldr r0, _08085F3C
|
|
str r0, [sp, 0x18]
|
|
add r1, sp, 0x1C
|
|
ldr r0, _08085F40
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
mov r0, sp
|
|
bl sub_800E890
|
|
cmp r5, 0
|
|
beq _08085F2E
|
|
bl sub_8085F44
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_08085F2E:
|
|
add sp, 0x28
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08085F3C: .4byte 0x0000ffff
|
|
_08085F40: .4byte gUnknown_8107374
|
|
thumb_func_end sub_8085EC8
|
|
|
|
thumb_func_start sub_8085F44
|
|
sub_8085F44:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
b _08085F5C
|
|
_08085F4A:
|
|
ldr r0, _08085F70
|
|
ldr r0, [r0]
|
|
ldr r1, _08085F74
|
|
adds r0, r1
|
|
bl sub_800E90C
|
|
movs r0, 0x46
|
|
bl sub_803E46C
|
|
_08085F5C:
|
|
adds r0, r4, 0
|
|
bl sub_800E9A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08085F4A
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08085F70: .4byte gDungeonGlobalData
|
|
_08085F74: .4byte 0x000181f0
|
|
thumb_func_end sub_8085F44
|
|
|
|
thumb_func_start sub_8085F78
|
|
sub_8085F78:
|
|
push {lr}
|
|
ldr r0, _08085F94
|
|
ldr r0, [r0]
|
|
ldr r1, _08085F98
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3C
|
|
bls _08085F8A
|
|
b _080860A4
|
|
_08085F8A:
|
|
lsls r0, 2
|
|
ldr r1, _08085F9C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08085F94: .4byte gDungeonGlobalData
|
|
_08085F98: .4byte 0x00003a0d
|
|
_08085F9C: .4byte _08085FA0
|
|
.align 2, 0
|
|
_08085FA0:
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _08086094
|
|
.4byte _08086094
|
|
.4byte _08086094
|
|
.4byte _0808609A
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A0
|
|
.4byte _080860A0
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
.4byte _080860A4
|
|
_08086094:
|
|
bl sub_8088848
|
|
b _080860A4
|
|
_0808609A:
|
|
bl sub_8088EE8
|
|
b _080860A4
|
|
_080860A0:
|
|
bl sub_808A718
|
|
_080860A4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8085F78
|
|
|
|
thumb_func_start sub_80860A8
|
|
sub_80860A8:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
ldr r0, _08086108
|
|
ldr r2, [r0]
|
|
movs r3, 0x1
|
|
_080860B6:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080860C6
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, r6
|
|
beq _08086104
|
|
_080860C6:
|
|
adds r2, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _080860B6
|
|
movs r5, 0
|
|
_080860D0:
|
|
ldr r0, _0808610C
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08086110
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08086114
|
|
ldr r2, [r4, 0x70]
|
|
adds r0, r2, 0
|
|
adds r0, 0x60
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08086114
|
|
adds r0, r2, 0
|
|
adds r0, 0x62
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _08086114
|
|
_08086104:
|
|
movs r0, 0x1
|
|
b _0808611C
|
|
.align 2, 0
|
|
_08086108: .4byte gTeamInventory_203B460
|
|
_0808610C: .4byte gDungeonGlobalData
|
|
_08086110: .4byte 0x0001357c
|
|
_08086114:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080860D0
|
|
movs r0, 0
|
|
_0808611C:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80860A8
|
|
|
|
thumb_func_start sub_8086124
|
|
sub_8086124:
|
|
ldr r0, [r0, 0x70]
|
|
movs r2, 0xB0
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_8086124
|
|
|
|
thumb_func_start sub_8086130
|
|
sub_8086130:
|
|
push {lr}
|
|
movs r0, 0x3C
|
|
bl sub_8083ED8
|
|
movs r0, 0x3C
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
ldr r0, _08086194
|
|
ldr r0, [r0]
|
|
bl sub_8052FB8
|
|
movs r0, 0x1E
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
ldr r0, _08086198
|
|
ldr r0, [r0]
|
|
bl sub_8052FB8
|
|
movs r0, 0x1E
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
ldr r0, _0808619C
|
|
ldr r0, [r0]
|
|
bl sub_8052FB8
|
|
movs r0, 0x1E
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
ldr r0, _080861A0
|
|
ldr r0, [r0]
|
|
bl sub_8052FB8
|
|
movs r0, 0x1E
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
ldr r0, _080861A4
|
|
ldr r0, [r0]
|
|
bl sub_8052FB8
|
|
movs r0, 0x1E
|
|
movs r1, 0x46
|
|
bl sub_803E708
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08086194: .4byte gUnknown_810665C
|
|
_08086198: .4byte gUnknown_810668C
|
|
_0808619C: .4byte gUnknown_81066D4
|
|
_080861A0: .4byte gUnknown_81066F0
|
|
_080861A4: .4byte gUnknown_810671C
|
|
thumb_func_end sub_8086130
|
|
|
|
thumb_func_start sub_80861A8
|
|
sub_80861A8:
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl sub_806CDD4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80861A8
|
|
|
|
thumb_func_start sub_80861B8
|
|
sub_80861B8:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, [r0, 0x70]
|
|
adds r1, r4, 0
|
|
bl sub_806CDD4
|
|
adds r5, 0xFE
|
|
strb r4, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80861B8
|
|
|
|
thumb_func_start sub_80861D4
|
|
sub_80861D4:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_806CDD4
|
|
adds r0, r4, 0
|
|
bl sub_80861EC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80861D4
|
|
|
|
thumb_func_start sub_80861EC
|
|
sub_80861EC:
|
|
ldr r0, [r0, 0x70]
|
|
adds r0, 0xFE
|
|
movs r1, 0x63
|
|
strb r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80861EC
|
|
|
|
thumb_func_start sub_80861F8
|
|
sub_80861F8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
adds r6, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r5, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
bl sub_800EE5C
|
|
bl sub_800EF64
|
|
movs r0, 0x46
|
|
bl sub_803E46C
|
|
ldr r0, [r6, 0x70]
|
|
mov r8, r0
|
|
movs r1, 0
|
|
mov r9, r1
|
|
str r1, [sp, 0x28]
|
|
adds r0, r5, 0
|
|
bl sub_800E700
|
|
adds r7, r0, 0
|
|
add r4, sp, 0x28
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r7, r2
|
|
beq _0808624A
|
|
adds r1, r6, 0
|
|
adds r1, 0x28
|
|
lsls r2, r7, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
bl sub_800569C
|
|
_0808624A:
|
|
str r5, [sp]
|
|
mov r3, r9
|
|
str r3, [sp, 0x4]
|
|
mov r0, r8
|
|
adds r0, 0x46
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
mov r1, sp
|
|
ldr r0, [r6, 0xC]
|
|
cmp r0, 0
|
|
bge _08086262
|
|
adds r0, 0xFF
|
|
_08086262:
|
|
asrs r0, 8
|
|
strh r0, [r1, 0xC]
|
|
mov r1, sp
|
|
ldr r0, [r6, 0x10]
|
|
cmp r0, 0
|
|
bge _08086270
|
|
adds r0, 0xFF
|
|
_08086270:
|
|
asrs r0, 8
|
|
strh r0, [r1, 0xE]
|
|
mov r1, sp
|
|
ldrh r0, [r4]
|
|
strh r0, [r1, 0x10]
|
|
add r0, sp, 0x28
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r1, 0x12]
|
|
str r7, [sp, 0x14]
|
|
ldr r0, _080862B4
|
|
str r0, [sp, 0x18]
|
|
add r1, sp, 0x1C
|
|
ldr r0, _080862B8
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
mov r0, sp
|
|
bl sub_800E890
|
|
mov r4, r10
|
|
cmp r4, 0
|
|
beq _080862A2
|
|
bl sub_8085F44
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080862A2:
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080862B4: .4byte 0x0000ffff
|
|
_080862B8: .4byte gUnknown_8107380
|
|
thumb_func_end sub_80861F8
|
|
|
|
.align 2,0
|