mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-23 13:09:56 +00:00
2248 lines
33 KiB
ArmAsm
2248 lines
33 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start GroundMap_Select
|
|
GroundMap_Select:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
ldr r1, _080A4E38
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
bl Log
|
|
movs r0, 0
|
|
movs r1, 0x37
|
|
bl ClearScriptVarArray
|
|
movs r0, 0
|
|
movs r1, 0x38
|
|
bl ClearScriptVarArray
|
|
movs r0, 0
|
|
bl sub_80A5EDC
|
|
ldr r4, _080A4E3C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A4E08
|
|
bl sub_80A2D00
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A4E08:
|
|
ldr r0, _080A4E40
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
adds r2, r0, 0
|
|
str r2, [r4]
|
|
ldr r0, _080A4E44
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
strh r5, [r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
bne _080A4E4C
|
|
ldr r1, _080A4E48
|
|
adds r0, r2, 0
|
|
bl sub_80A2B40
|
|
ldr r0, [r4]
|
|
adds r1, r5, 0
|
|
bl sub_80A2FBC
|
|
b _080A50BA
|
|
.align 2, 0
|
|
_080A4E38: .4byte gUnknown_81176A4
|
|
_080A4E3C: .4byte gGroundMapDungeon_3001B70
|
|
_080A4E40: .4byte 0x0000055c
|
|
_080A4E44: .4byte gGroundMapAction
|
|
_080A4E48: .4byte gUnknown_8117324
|
|
_080A4E4C:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _080A4E6C
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _080A4F20
|
|
lsls r0, 2
|
|
ldr r1, _080A4E70
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A4E6C: .4byte gGroundConversion_811BAF4
|
|
_080A4E70: .4byte _080A4E74
|
|
.align 2, 0
|
|
_080A4E74:
|
|
.4byte _080A4F08
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4ECC
|
|
.4byte _080A4ECC
|
|
_080A4EA8:
|
|
ldr r0, _080A4EC0
|
|
ldr r0, [r0]
|
|
ldr r1, _080A4EC4
|
|
bl sub_80A2B40
|
|
ldr r1, _080A4EC8
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _080A4F30
|
|
.align 2, 0
|
|
_080A4EC0: .4byte gGroundMapDungeon_3001B70
|
|
_080A4EC4: .4byte gUnknown_811733C
|
|
_080A4EC8: .4byte gUnknown_2026E4E
|
|
_080A4ECC:
|
|
ldr r4, _080A4EDC
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r6, _080A4EE0
|
|
b _080A4EEA
|
|
.align 2, 0
|
|
_080A4EDC: .4byte gUnknown_81173C0
|
|
_080A4EE0: .4byte gGroundMapDungeon_3001B70
|
|
_080A4EE4:
|
|
adds r4, 0xC
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
_080A4EEA:
|
|
cmp r0, r1
|
|
beq _080A4EF2
|
|
cmp r0, r5
|
|
bne _080A4EE4
|
|
_080A4EF2:
|
|
ldr r0, [r6]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
adds r1, r4, 0x4
|
|
ldr r2, [r4, 0x8]
|
|
adds r0, r5, 0
|
|
bl GroundMap_SelectDungeon
|
|
b _080A50BA
|
|
_080A4F08:
|
|
ldr r0, _080A4F18
|
|
ldr r1, _080A4F1C
|
|
movs r2, 0
|
|
ldrsh r3, [r6, r2]
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A4F18: .4byte gUnknown_81176D0
|
|
_080A4F1C: .4byte gUnknown_81176DC
|
|
_080A4F20:
|
|
ldr r0, _080A4FA0
|
|
ldr r0, [r0]
|
|
ldr r1, _080A4FA4
|
|
bl sub_80A2B40
|
|
movs r0, 0x1
|
|
bl sub_80A5EDC
|
|
_080A4F30:
|
|
ldr r5, _080A4FA0
|
|
ldr r0, [r5]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r6, r2]
|
|
bl sub_80A2FBC
|
|
ldr r0, _080A4FA8
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
adds r0, 0xE8
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
add r4, r12
|
|
movs r3, 0x82
|
|
lsls r3, 1
|
|
add r3, r12
|
|
movs r2, 0x84
|
|
lsls r2, 1
|
|
add r2, r12
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r1, [r0]
|
|
str r1, [r2]
|
|
str r1, [r3]
|
|
str r1, [r4]
|
|
mov r0, r12
|
|
adds r0, 0xE4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0xAD
|
|
beq _080A5034
|
|
cmp r0, 0xAD
|
|
bgt _080A4FC0
|
|
cmp r0, 0xA3
|
|
bgt _080A4FAC
|
|
cmp r0, 0xA2
|
|
bge _080A4FEE
|
|
cmp r0, 0x4
|
|
beq _080A5084
|
|
cmp r0, 0xA1
|
|
beq _080A5084
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A4FA0: .4byte gGroundMapDungeon_3001B70
|
|
_080A4FA4: .4byte gUnknown_8117324
|
|
_080A4FA8: .4byte gGroundMapAction
|
|
_080A4FAC:
|
|
cmp r0, 0xAA
|
|
beq _080A500C
|
|
cmp r0, 0xAA
|
|
bgt _080A4FBA
|
|
cmp r0, 0xA8
|
|
beq _080A500C
|
|
b _080A50A2
|
|
_080A4FBA:
|
|
cmp r0, 0xAB
|
|
beq _080A5018
|
|
b _080A50A2
|
|
_080A4FC0:
|
|
cmp r0, 0xBA
|
|
beq _080A506A
|
|
cmp r0, 0xBA
|
|
bgt _080A4FD6
|
|
cmp r0, 0xAF
|
|
beq _080A5072
|
|
cmp r0, 0xAF
|
|
blt _080A5044
|
|
cmp r0, 0xB0
|
|
beq _080A5060
|
|
b _080A50A2
|
|
_080A4FD6:
|
|
cmp r0, 0xDF
|
|
beq _080A4FEE
|
|
cmp r0, 0xDF
|
|
bgt _080A4FE4
|
|
cmp r0, 0xC0
|
|
beq _080A5020
|
|
b _080A50A2
|
|
_080A4FE4:
|
|
cmp r0, 0xE0
|
|
beq _080A508E
|
|
cmp r0, 0xE1
|
|
beq _080A5096
|
|
b _080A50A2
|
|
_080A4FEE:
|
|
ldr r0, _080A5000
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A5004
|
|
ldr r2, _080A5008
|
|
b _080A5050
|
|
.align 2, 0
|
|
_080A5000: .4byte gGroundMapDungeon_3001B70
|
|
_080A5004: .4byte gUnknown_2026E4E
|
|
_080A5008: .4byte 0x00000808
|
|
_080A500C:
|
|
ldr r0, _080A5014
|
|
ldr r0, [r0]
|
|
b _080A5062
|
|
.align 2, 0
|
|
_080A5014: .4byte gGroundMapDungeon_3001B70
|
|
_080A5018:
|
|
ldr r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
_080A5020:
|
|
ldr r0, _080A5030
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80A3B80
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A5030: .4byte gGroundMapDungeon_3001B70
|
|
_080A5034:
|
|
ldr r1, _080A503C
|
|
ldr r2, _080A5040
|
|
b _080A5050
|
|
.align 2, 0
|
|
_080A503C: .4byte gUnknown_2026E4E
|
|
_080A5040: .4byte 0x00001010
|
|
_080A5044:
|
|
ldr r0, [r5]
|
|
movs r1, 0x4
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A5058
|
|
ldr r2, _080A505C
|
|
_080A5050:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A5058: .4byte gUnknown_2026E4E
|
|
_080A505C: .4byte 0x0000080c
|
|
_080A5060:
|
|
ldr r0, [r5]
|
|
_080A5062:
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
b _080A50A2
|
|
_080A506A:
|
|
ldr r0, _080A507C
|
|
ldr r2, _080A5080
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
_080A5072:
|
|
ldr r0, [r5]
|
|
movs r1, 0x4
|
|
bl sub_80A3BB0
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A507C: .4byte gUnknown_2026E4E
|
|
_080A5080: .4byte 0x00001010
|
|
_080A5084:
|
|
ldr r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_80A3BB0
|
|
b _080A50A2
|
|
_080A508E:
|
|
ldr r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_80A3BB0
|
|
_080A5096:
|
|
ldr r0, _080A50C0
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80A3B80
|
|
_080A50A2:
|
|
movs r0, 0x6
|
|
ldrsh r1, [r6, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A50B4
|
|
adds r0, r1, 0
|
|
bl GroundWeather_Select
|
|
_080A50B4:
|
|
ldr r0, _080A50C4
|
|
bl sub_80A56D8
|
|
_080A50BA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A50C0: .4byte gGroundMapDungeon_3001B70
|
|
_080A50C4: .4byte gUnknown_81176F8
|
|
thumb_func_end GroundMap_Select
|
|
|
|
thumb_func_start GroundMap_SelectDungeon
|
|
GroundMap_SelectDungeon:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r8, r1
|
|
mov r10, r2
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
ldr r1, _080A514C
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
bl Log
|
|
movs r0, 0
|
|
movs r1, 0x37
|
|
bl ClearScriptVarArray
|
|
movs r0, 0
|
|
movs r1, 0x38
|
|
bl ClearScriptVarArray
|
|
movs r0, 0
|
|
bl sub_80A5EDC
|
|
ldr r7, _080A5150
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
beq _080A5110
|
|
bl sub_80A2D00
|
|
ldr r0, [r7]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r7]
|
|
_080A5110:
|
|
ldr r0, _080A5154
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
adds r2, r0, 0
|
|
str r2, [r7]
|
|
ldr r0, _080A5158
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r4, 0
|
|
strh r5, [r0]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
cmp r5, r6
|
|
beq _080A5138
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x63
|
|
bne _080A5160
|
|
_080A5138:
|
|
ldr r1, _080A515C
|
|
adds r0, r2, 0
|
|
bl sub_80A2B40
|
|
ldr r0, [r7]
|
|
adds r1, r6, 0
|
|
bl sub_80A2FBC
|
|
b _080A51EC
|
|
.align 2, 0
|
|
_080A514C: .4byte gUnknown_8117700
|
|
_080A5150: .4byte gGroundMapDungeon_3001B70
|
|
_080A5154: .4byte 0x0000055c
|
|
_080A5158: .4byte gGroundMapAction
|
|
_080A515C: .4byte gUnknown_8117324
|
|
_080A5160:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _080A5180
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6]
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _080A518C
|
|
ldr r0, _080A5184
|
|
ldr r1, _080A5188
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A5180: .4byte gGroundConversion_811BAF4
|
|
_080A5184: .4byte gUnknown_8117734
|
|
_080A5188: .4byte gUnknown_8117740
|
|
_080A518C:
|
|
ldr r1, _080A51FC
|
|
adds r0, r2, 0
|
|
bl sub_80A2B40
|
|
movs r0, 0x1
|
|
bl sub_80A5EDC
|
|
ldr r0, [r7]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r6, r2]
|
|
mov r2, r8
|
|
mov r3, r10
|
|
bl sub_80A3440
|
|
mov r0, r9
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
adds r0, 0xE8
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
add r3, r12
|
|
movs r2, 0x82
|
|
lsls r2, 1
|
|
add r2, r12
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
add r1, r12
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r4, [r0]
|
|
str r4, [r1]
|
|
str r4, [r2]
|
|
str r4, [r3]
|
|
ldr r0, _080A5200
|
|
bl sub_80A56D8
|
|
_080A51EC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A51FC: .4byte gUnknown_8117354
|
|
_080A5200: .4byte gUnknown_8117754
|
|
thumb_func_end GroundMap_SelectDungeon
|
|
|
|
thumb_func_start sub_80A5204
|
|
sub_80A5204:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp]
|
|
mov r8, r1
|
|
str r2, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bgt _080A5222
|
|
b _080A53EA
|
|
_080A5222:
|
|
mov r5, r8
|
|
ldr r2, [sp]
|
|
mov r12, r2
|
|
movs r0, 0
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r3, [r3, 0x1]
|
|
str r3, [sp, 0x10]
|
|
ldr r1, [sp, 0x4]
|
|
ldrh r2, [r1, 0xA]
|
|
mov r1, sp
|
|
strh r2, [r1, 0xC]
|
|
movs r1, 0xFF
|
|
_080A523A:
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
movs r3, 0xFF
|
|
mov r9, r3
|
|
_080A5242:
|
|
mov r0, r12
|
|
strb r1, [r0]
|
|
movs r2, 0x1
|
|
add r12, r2
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r9, r3
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bge _080A5242
|
|
mov r0, r10
|
|
cmp r0, 0x3
|
|
ble _080A523A
|
|
movs r1, 0
|
|
ldr r2, [sp, 0x10]
|
|
cmp r1, r2
|
|
blt _080A5266
|
|
b _080A53BA
|
|
_080A5266:
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
_080A526A:
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
adds r0, r1, 0x1
|
|
str r0, [sp, 0x14]
|
|
movs r0, 0xFF
|
|
movs r2, 0x4
|
|
mov r9, r2
|
|
_080A5278:
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
movs r2, 0x1
|
|
add r12, r2
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r9, r3
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bge _080A5278
|
|
movs r3, 0x5
|
|
mov r9, r3
|
|
movs r0, 0
|
|
cmp r1, 0
|
|
bne _080A5308
|
|
cmp r1, r7
|
|
bge _080A5394
|
|
_080A529A:
|
|
ldrb r1, [r5]
|
|
adds r5, 0x1
|
|
cmp r1, 0xBF
|
|
ble _080A52C2
|
|
adds r6, r0, 0
|
|
subs r6, 0xBF
|
|
cmp r1, 0xBF
|
|
ble _080A5300
|
|
adds r2, r1, 0
|
|
subs r2, 0xBF
|
|
_080A52AE:
|
|
ldrb r0, [r5]
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
adds r5, 0x1
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A52AE
|
|
b _080A5300
|
|
_080A52C2:
|
|
cmp r1, 0x7F
|
|
ble _080A52E6
|
|
ldrb r4, [r5]
|
|
adds r5, 0x1
|
|
adds r6, r0, 0
|
|
subs r6, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A5300
|
|
adds r2, r1, 0
|
|
subs r2, 0x7F
|
|
_080A52D6:
|
|
mov r3, r12
|
|
strb r4, [r3]
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A52D6
|
|
b _080A5300
|
|
_080A52E6:
|
|
movs r2, 0
|
|
adds r6, r0, 0x1
|
|
cmp r2, r1
|
|
bgt _080A5300
|
|
movs r0, 0
|
|
adds r2, r1, 0x1
|
|
_080A52F2:
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
movs r3, 0x1
|
|
add r12, r3
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A52F2
|
|
_080A5300:
|
|
adds r0, r6, r1
|
|
cmp r0, r7
|
|
blt _080A529A
|
|
b _080A5394
|
|
_080A5308:
|
|
ldr r4, _080A5340
|
|
add r4, r12
|
|
cmp r0, r7
|
|
bge _080A5394
|
|
_080A5310:
|
|
ldrb r3, [r5]
|
|
adds r5, 0x1
|
|
cmp r3, 0xBF
|
|
ble _080A5344
|
|
adds r6, r0, 0
|
|
subs r6, 0xBF
|
|
cmp r3, 0xBF
|
|
ble _080A538E
|
|
adds r2, r3, 0
|
|
subs r2, 0xBF
|
|
_080A5324:
|
|
ldrb r1, [r5]
|
|
ldrb r0, [r4]
|
|
eors r1, r0
|
|
mov r0, r12
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
adds r5, 0x1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A5324
|
|
b _080A538E
|
|
.align 2, 0
|
|
_080A5340: .4byte 0xffffff00
|
|
_080A5344:
|
|
cmp r3, 0x7F
|
|
ble _080A5372
|
|
ldrb r2, [r5]
|
|
mov r8, r2
|
|
adds r5, 0x1
|
|
adds r6, r0, 0
|
|
subs r6, 0x7F
|
|
cmp r3, 0x7F
|
|
ble _080A538E
|
|
adds r2, r3, 0
|
|
subs r2, 0x7F
|
|
_080A535A:
|
|
ldrb r1, [r4]
|
|
mov r0, r8
|
|
eors r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A535A
|
|
b _080A538E
|
|
_080A5372:
|
|
movs r2, 0
|
|
adds r6, r0, 0x1
|
|
cmp r2, r3
|
|
bgt _080A538E
|
|
adds r2, r3, 0x1
|
|
_080A537C:
|
|
ldrb r0, [r4]
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A537C
|
|
_080A538E:
|
|
adds r0, r6, r3
|
|
cmp r0, r7
|
|
blt _080A5310
|
|
_080A5394:
|
|
add r9, r7
|
|
mov r1, r9
|
|
cmp r1, 0xFF
|
|
bgt _080A53AE
|
|
movs r0, 0xFF
|
|
_080A539E:
|
|
mov r2, r12
|
|
strb r0, [r2]
|
|
movs r3, 0x1
|
|
add r12, r3
|
|
add r9, r3
|
|
mov r1, r9
|
|
cmp r1, 0xFF
|
|
ble _080A539E
|
|
_080A53AE:
|
|
ldr r1, [sp, 0x14]
|
|
mov r0, r10
|
|
ldr r2, [sp, 0x10]
|
|
cmp r1, r2
|
|
bge _080A53BA
|
|
b _080A526A
|
|
_080A53BA:
|
|
ldr r3, [sp, 0x8]
|
|
cmp r0, r3
|
|
bge _080A53E6
|
|
movs r1, 0xFF
|
|
_080A53C2:
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
movs r0, 0xFF
|
|
mov r9, r0
|
|
_080A53CA:
|
|
mov r2, r12
|
|
strb r1, [r2]
|
|
movs r3, 0x1
|
|
add r12, r3
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bge _080A53CA
|
|
mov r0, r10
|
|
ldr r3, [sp, 0x8]
|
|
cmp r0, r3
|
|
blt _080A53C2
|
|
_080A53E6:
|
|
mov r8, r5
|
|
b _080A547E
|
|
_080A53EA:
|
|
ldr r1, [sp]
|
|
movs r0, 0
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r2, [r2, 0x1]
|
|
str r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x4]
|
|
ldrh r2, [r3, 0xA]
|
|
mov r3, sp
|
|
strh r2, [r3, 0xC]
|
|
movs r6, 0xFF
|
|
_080A53FE:
|
|
adds r5, r0, 0x1
|
|
movs r4, 0xFF
|
|
_080A5402:
|
|
strb r6, [r1]
|
|
adds r1, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A5402
|
|
adds r0, r5, 0
|
|
cmp r0, 0x3
|
|
ble _080A53FE
|
|
movs r4, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r4, r3
|
|
bge _080A5460
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r7, [r2]
|
|
movs r3, 0xFF
|
|
_080A5420:
|
|
adds r5, r0, 0x1
|
|
adds r2, r4, 0x1
|
|
movs r4, 0x4
|
|
_080A5426:
|
|
strb r3, [r1]
|
|
adds r1, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A5426
|
|
movs r4, 0x5
|
|
cmp r7, 0
|
|
beq _080A5444
|
|
movs r6, 0
|
|
adds r0, r7, 0
|
|
_080A543A:
|
|
strb r6, [r1]
|
|
adds r1, 0x1
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bne _080A543A
|
|
_080A5444:
|
|
adds r4, r7
|
|
cmp r4, 0xFF
|
|
bgt _080A5456
|
|
movs r0, 0xFF
|
|
_080A544C:
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0xFF
|
|
ble _080A544C
|
|
_080A5456:
|
|
adds r4, r2, 0
|
|
adds r0, r5, 0
|
|
ldr r2, [sp, 0x10]
|
|
cmp r4, r2
|
|
blt _080A5420
|
|
_080A5460:
|
|
ldr r3, [sp, 0x8]
|
|
cmp r0, r3
|
|
bge _080A547E
|
|
movs r6, 0xFF
|
|
_080A5468:
|
|
adds r5, r0, 0x1
|
|
movs r4, 0xFF
|
|
_080A546C:
|
|
strb r6, [r1]
|
|
adds r1, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A546C
|
|
adds r0, r5, 0
|
|
ldr r2, [sp, 0x8]
|
|
cmp r0, r2
|
|
blt _080A5468
|
|
_080A547E:
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0xC]
|
|
lsls r0, r3, 16
|
|
cmp r0, 0
|
|
bgt _080A548A
|
|
b _080A5590
|
|
_080A548A:
|
|
mov r6, r8
|
|
ldr r0, [sp]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
movs r0, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r0, r3
|
|
bge _080A5586
|
|
movs r1, 0xFB
|
|
mov r10, r1
|
|
_080A54A0:
|
|
adds r2, 0x5
|
|
movs r4, 0
|
|
cmp r0, 0
|
|
bne _080A54EC
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
cmp r0, r7
|
|
bge _080A5574
|
|
_080A54B4:
|
|
ldrb r1, [r6]
|
|
adds r6, 0x1
|
|
cmp r1, 0x7F
|
|
ble _080A54DE
|
|
subs r4, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A54D6
|
|
movs r5, 0x80
|
|
adds r3, r1, 0
|
|
subs r3, 0x7F
|
|
_080A54C8:
|
|
ldrb r0, [r2]
|
|
orrs r0, r5
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A54C8
|
|
_080A54D6:
|
|
adds r4, r1
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
b _080A54E6
|
|
_080A54DE:
|
|
adds r0, r1, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0x1
|
|
adds r4, r0, r1
|
|
_080A54E6:
|
|
cmp r4, r7
|
|
blt _080A54B4
|
|
b _080A5574
|
|
_080A54EC:
|
|
ldr r1, _080A5538
|
|
adds r1, r2
|
|
mov r12, r1
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
adds r0, 0x1
|
|
mov r9, r0
|
|
cmp r4, r7
|
|
bge _080A5574
|
|
_080A54FE:
|
|
ldrb r5, [r6]
|
|
adds r6, 0x1
|
|
cmp r5, 0x7F
|
|
ble _080A553C
|
|
subs r4, 0x7F
|
|
cmp r5, 0x7F
|
|
ble _080A556A
|
|
movs r7, 0x80
|
|
movs r0, 0x80
|
|
mov r8, r0
|
|
adds r3, r5, 0
|
|
subs r3, 0x7F
|
|
_080A5516:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
bne _080A552C
|
|
ldrb r0, [r2]
|
|
orrs r0, r7
|
|
strb r0, [r2]
|
|
_080A552C:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A5516
|
|
b _080A556A
|
|
.align 2, 0
|
|
_080A5538: .4byte 0xffffff00
|
|
_080A553C:
|
|
movs r3, 0
|
|
adds r4, 0x1
|
|
cmp r3, r5
|
|
bgt _080A556A
|
|
movs r7, 0x80
|
|
movs r3, 0x80
|
|
mov r8, r3
|
|
adds r3, r5, 0x1
|
|
_080A554C:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
beq _080A5562
|
|
ldrb r0, [r2]
|
|
orrs r0, r7
|
|
strb r0, [r2]
|
|
_080A5562:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A554C
|
|
_080A556A:
|
|
adds r4, r5
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
cmp r4, r7
|
|
blt _080A54FE
|
|
_080A5574:
|
|
mov r1, r10
|
|
subs r0, r1, r7
|
|
adds r2, r0
|
|
mov r0, r9
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r3, [r3, 0x1]
|
|
str r3, [sp, 0x10]
|
|
cmp r0, r3
|
|
blt _080A54A0
|
|
_080A5586:
|
|
mov r8, r6
|
|
ldr r0, [sp, 0x4]
|
|
ldrh r1, [r0, 0xA]
|
|
mov r0, sp
|
|
strh r1, [r0, 0xC]
|
|
_080A5590:
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xC]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A568C
|
|
mov r6, r8
|
|
ldr r3, [sp]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
adds r2, r3, r0
|
|
movs r0, 0
|
|
b _080A5684
|
|
_080A55AA:
|
|
adds r2, 0x5
|
|
movs r4, 0
|
|
cmp r0, 0
|
|
bne _080A55F2
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
cmp r0, r7
|
|
bge _080A567C
|
|
_080A55BE:
|
|
ldrb r1, [r6]
|
|
adds r6, 0x1
|
|
cmp r1, 0x7F
|
|
ble _080A55E4
|
|
subs r4, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A55E0
|
|
movs r5, 0x40
|
|
adds r3, r1, 0
|
|
subs r3, 0x7F
|
|
_080A55D2:
|
|
ldrb r0, [r2]
|
|
orrs r0, r5
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A55D2
|
|
_080A55E0:
|
|
adds r4, r1
|
|
b _080A55EC
|
|
_080A55E4:
|
|
adds r0, r1, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0x1
|
|
adds r4, r0, r1
|
|
_080A55EC:
|
|
cmp r4, r7
|
|
blt _080A55BE
|
|
b _080A567C
|
|
_080A55F2:
|
|
ldr r3, _080A5640
|
|
adds r3, r2
|
|
mov r12, r3
|
|
ldr r1, [sp, 0x4]
|
|
ldrb r7, [r1]
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
cmp r4, r7
|
|
bge _080A567C
|
|
_080A5604:
|
|
ldrb r5, [r6]
|
|
adds r6, 0x1
|
|
cmp r5, 0x7F
|
|
ble _080A5644
|
|
subs r4, 0x7F
|
|
cmp r5, 0x7F
|
|
ble _080A5676
|
|
movs r3, 0x40
|
|
mov r8, r3
|
|
movs r0, 0x40
|
|
mov r9, r0
|
|
adds r3, r5, 0
|
|
subs r3, 0x7F
|
|
_080A561E:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
bne _080A5636
|
|
ldrb r0, [r2]
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A5636:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A561E
|
|
b _080A5676
|
|
.align 2, 0
|
|
_080A5640: .4byte 0xffffff00
|
|
_080A5644:
|
|
movs r3, 0
|
|
adds r4, 0x1
|
|
cmp r3, r5
|
|
bgt _080A5676
|
|
movs r3, 0x40
|
|
mov r8, r3
|
|
movs r0, 0x40
|
|
mov r9, r0
|
|
adds r3, r5, 0x1
|
|
_080A5656:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
beq _080A566E
|
|
ldrb r0, [r2]
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A566E:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A5656
|
|
_080A5676:
|
|
adds r4, r5
|
|
cmp r4, r7
|
|
blt _080A5604
|
|
_080A567C:
|
|
movs r3, 0xFB
|
|
subs r0, r3, r7
|
|
adds r2, r0
|
|
mov r0, r10
|
|
_080A5684:
|
|
ldr r1, [sp, 0x10]
|
|
cmp r0, r1
|
|
blt _080A55AA
|
|
mov r8, r6
|
|
_080A568C:
|
|
mov r0, r8
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A5204
|
|
|
|
thumb_func_start sub_80A56A0
|
|
sub_80A56A0:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _080A56BC
|
|
ldr r0, [r0]
|
|
adds r1, r3, 0
|
|
bl sub_80A3B80
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A56BC: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A56A0
|
|
|
|
thumb_func_start sub_80A56C0
|
|
sub_80A56C0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080A56D4
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80A4558
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A56D4: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A56C0
|
|
|
|
thumb_func_start sub_80A56D8
|
|
sub_80A56D8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080A56EC
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80A456C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A56EC: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A56D8
|
|
|
|
thumb_func_start sub_80A56F0
|
|
sub_80A56F0:
|
|
ldr r1, _080A5700
|
|
ldr r2, [r1]
|
|
adds r2, 0xE8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5700: .4byte gGroundMapAction
|
|
thumb_func_end sub_80A56F0
|
|
|
|
thumb_func_start sub_80A5704
|
|
sub_80A5704:
|
|
ldr r1, _080A5724
|
|
ldr r3, [r1]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
adds r0, r3, 0
|
|
adds r0, 0xF0
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5724: .4byte gGroundMapAction
|
|
thumb_func_end sub_80A5704
|
|
|
|
thumb_func_start sub_80A5728
|
|
sub_80A5728:
|
|
ldr r0, _080A5734
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5734: .4byte gGroundMapAction
|
|
thumb_func_end sub_80A5728
|
|
|
|
thumb_func_start sub_80A5738
|
|
sub_80A5738:
|
|
ldr r0, _080A5750
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080A5754
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5750: .4byte gGroundMapAction
|
|
_080A5754: .4byte gGroundConversion_811BAF4
|
|
thumb_func_end sub_80A5738
|
|
|
|
thumb_func_start sub_80A5758
|
|
sub_80A5758:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _080A5768
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080A576C
|
|
movs r0, 0
|
|
b _080A5772
|
|
.align 2, 0
|
|
_080A5768: .4byte gGroundMapDungeon_3001B70
|
|
_080A576C:
|
|
bl sub_80A4608
|
|
movs r0, 0x1
|
|
_080A5772:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A5758
|
|
|
|
thumb_func_start GetCurrentDungeonBounds
|
|
GetCurrentDungeonBounds:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080A578C
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080A5790
|
|
movs r0, 0
|
|
b _080A5798
|
|
.align 2, 0
|
|
_080A578C: .4byte gGroundMapDungeon_3001B70
|
|
_080A5790:
|
|
adds r1, r3, 0
|
|
bl GetDungeonBounds
|
|
movs r0, 0x1
|
|
_080A5798:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetCurrentDungeonBounds
|
|
|
|
thumb_func_start sub_80A579C
|
|
sub_80A579C:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _080A5838
|
|
ldr r3, [r0]
|
|
cmp r3, 0
|
|
beq _080A5854
|
|
ldr r0, _080A583C
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0xE4
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A5854
|
|
adds r0, r1, 0
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _080A5840
|
|
adds r4, r0
|
|
adds r0, r3, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GetDungeonBounds
|
|
ldr r2, [r6]
|
|
mov r12, r2
|
|
movs r0, 0xF0
|
|
lsls r0, 7
|
|
add r0, r12
|
|
str r0, [r6]
|
|
ldr r3, [r6, 0x4]
|
|
movs r7, 0xA0
|
|
lsls r7, 7
|
|
adds r0, r3, r7
|
|
str r0, [r6, 0x4]
|
|
ldr r2, [r5]
|
|
ldr r1, _080A5844
|
|
adds r0, r2, r1
|
|
str r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r7, _080A5848
|
|
adds r0, r1, r7
|
|
str r0, [r5, 0x4]
|
|
movs r7, 0
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0xA
|
|
bne _080A581E
|
|
movs r0, 0x90
|
|
lsls r0, 8
|
|
add r0, r12
|
|
str r0, [r6]
|
|
movs r4, 0xD0
|
|
lsls r4, 7
|
|
adds r0, r3, r4
|
|
str r0, [r6, 0x4]
|
|
ldr r7, _080A584C
|
|
adds r0, r2, r7
|
|
str r0, [r5]
|
|
ldr r2, _080A5850
|
|
adds r0, r1, r2
|
|
str r0, [r5, 0x4]
|
|
_080A581E:
|
|
ldr r1, [r6]
|
|
ldr r0, [r5]
|
|
cmp r1, r0
|
|
ble _080A5828
|
|
str r1, [r5]
|
|
_080A5828:
|
|
ldr r1, [r6, 0x4]
|
|
ldr r0, [r5, 0x4]
|
|
cmp r1, r0
|
|
ble _080A5832
|
|
str r1, [r5, 0x4]
|
|
_080A5832:
|
|
movs r0, 0x1
|
|
b _080A5856
|
|
.align 2, 0
|
|
_080A5838: .4byte gGroundMapDungeon_3001B70
|
|
_080A583C: .4byte gGroundMapAction
|
|
_080A5840: .4byte gGroundConversion_811BAF4
|
|
_080A5844: .4byte 0xffff8800
|
|
_080A5848: .4byte 0xffffb000
|
|
_080A584C: .4byte 0xffff7000
|
|
_080A5850: .4byte 0xffff9800
|
|
_080A5854:
|
|
movs r0, 0
|
|
_080A5856:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A579C
|
|
|
|
thumb_func_start CheckMapCollision_80A585C
|
|
CheckMapCollision_80A585C:
|
|
push {r4-r7,lr}
|
|
adds r7, r1, 0
|
|
ldr r1, _080A5884
|
|
ldr r2, [r1]
|
|
ldr r1, _080A5888
|
|
adds r2, r1
|
|
ldr r1, [r0, 0x4]
|
|
lsls r1, 8
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldr r0, _080A588C
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r5, r0, r1
|
|
ldr r4, [r7, 0x4]
|
|
cmp r0, 0
|
|
bne _080A5890
|
|
_080A587E:
|
|
movs r0, 0x1
|
|
b _080A58C0
|
|
.align 2, 0
|
|
_080A5884: .4byte gGroundMapDungeon_3001B70
|
|
_080A5888: .4byte 0x00000544
|
|
_080A588C: .4byte 0x00000405
|
|
_080A5890:
|
|
cmp r4, 0
|
|
ble _080A58BE
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
mov r12, r1
|
|
_080A589A:
|
|
ldr r2, [r7]
|
|
adds r3, r5, 0
|
|
cmp r2, 0
|
|
ble _080A58B6
|
|
movs r6, 0x80
|
|
_080A58A4:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
adds r3, 0x1
|
|
cmp r0, 0
|
|
bne _080A587E
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bgt _080A58A4
|
|
_080A58B6:
|
|
add r5, r12
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bgt _080A589A
|
|
_080A58BE:
|
|
movs r0, 0
|
|
_080A58C0:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckMapCollision_80A585C
|
|
|
|
thumb_func_start sub_80A58C8
|
|
sub_80A58C8:
|
|
push {r4-r7,lr}
|
|
adds r7, r1, 0
|
|
ldr r1, _080A58F0
|
|
ldr r2, [r1]
|
|
ldr r1, _080A58F4
|
|
adds r2, r1
|
|
ldr r1, [r0, 0x4]
|
|
lsls r1, 8
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldr r0, _080A58F8
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r5, r0, r1
|
|
ldr r4, [r7, 0x4]
|
|
cmp r0, 0
|
|
bne _080A58FC
|
|
_080A58EA:
|
|
movs r0, 0x1
|
|
b _080A592C
|
|
.align 2, 0
|
|
_080A58F0: .4byte gGroundMapDungeon_3001B70
|
|
_080A58F4: .4byte 0x00000544
|
|
_080A58F8: .4byte 0x00000405
|
|
_080A58FC:
|
|
cmp r4, 0
|
|
ble _080A592A
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
mov r12, r1
|
|
_080A5906:
|
|
ldr r2, [r7]
|
|
adds r3, r5, 0
|
|
cmp r2, 0
|
|
ble _080A5922
|
|
movs r6, 0x40
|
|
_080A5910:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
adds r3, 0x1
|
|
cmp r0, 0
|
|
bne _080A58EA
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bgt _080A5910
|
|
_080A5922:
|
|
add r5, r12
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bgt _080A5906
|
|
_080A592A:
|
|
movs r0, 0
|
|
_080A592C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A58C8
|
|
|
|
thumb_func_start sub_80A5934
|
|
sub_80A5934:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080A5958
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A4660
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A5958: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A5934
|
|
|
|
thumb_func_start sub_80A595C
|
|
sub_80A595C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080A5980
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A46C0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A5980: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A595C
|
|
|
|
thumb_func_start sub_80A5984
|
|
sub_80A5984:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080A599C
|
|
ldr r0, [r0]
|
|
adds r1, r3, 0
|
|
bl sub_80A4720
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A599C: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A5984
|
|
|
|
thumb_func_start sub_80A59A0
|
|
sub_80A59A0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r3, r2, 16
|
|
lsrs r3, 16
|
|
ldr r0, _080A59BC
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A4740
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A59BC: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A59A0
|
|
|
|
thumb_func_start GroundMap_Action
|
|
GroundMap_Action:
|
|
push {lr}
|
|
bl nullsub_123
|
|
ldr r0, _080A59D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080A59D8
|
|
bl HandleAction
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A59D4: .4byte gGroundMapAction
|
|
_080A59D8: .4byte gUnknown_8117770
|
|
thumb_func_end GroundMap_Action
|
|
|
|
thumb_func_start sub_80A59DC
|
|
sub_80A59DC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x58
|
|
ldr r7, _080A5A34
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
bne _080A59F0
|
|
b _080A5E5A
|
|
_080A59F0:
|
|
mov r9, sp
|
|
mov r0, sp
|
|
bl sub_809D248
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A5A04
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
_080A5A04:
|
|
ldr r0, _080A5A38
|
|
mov r8, r0
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0xE4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
mov r6, r8
|
|
cmp r0, 0xAB
|
|
bne _080A5A1A
|
|
b _080A5BBE
|
|
_080A5A1A:
|
|
cmp r0, 0xAB
|
|
bgt _080A5A46
|
|
cmp r0, 0xA3
|
|
bgt _080A5A3C
|
|
cmp r0, 0xA2
|
|
bge _080A5A76
|
|
cmp r0, 0x4
|
|
bne _080A5A2C
|
|
b _080A5D76
|
|
_080A5A2C:
|
|
cmp r0, 0xA1
|
|
bne _080A5A32
|
|
b _080A5E28
|
|
_080A5A32:
|
|
b _080A5E46
|
|
.align 2, 0
|
|
_080A5A34: .4byte gGroundMapDungeon_3001B70
|
|
_080A5A38: .4byte gGroundMapAction
|
|
_080A5A3C:
|
|
cmp r0, 0xA8
|
|
beq _080A5AF4
|
|
cmp r0, 0xAA
|
|
beq _080A5AF4
|
|
b _080A5E46
|
|
_080A5A46:
|
|
cmp r0, 0xB0
|
|
bne _080A5A4C
|
|
b _080A5C76
|
|
_080A5A4C:
|
|
cmp r0, 0xB0
|
|
bgt _080A5A5E
|
|
cmp r0, 0xAE
|
|
bne _080A5A56
|
|
b _080A5B58
|
|
_080A5A56:
|
|
cmp r0, 0xAF
|
|
bne _080A5A5C
|
|
b _080A5BD8
|
|
_080A5A5C:
|
|
b _080A5E46
|
|
_080A5A5E:
|
|
cmp r0, 0xDF
|
|
beq _080A5A76
|
|
cmp r0, 0xDF
|
|
bgt _080A5A6E
|
|
cmp r0, 0xBA
|
|
bne _080A5A6C
|
|
b _080A5D18
|
|
_080A5A6C:
|
|
b _080A5E46
|
|
_080A5A6E:
|
|
cmp r0, 0xE0
|
|
bne _080A5A74
|
|
b _080A5DDA
|
|
_080A5A74:
|
|
b _080A5E46
|
|
_080A5A76:
|
|
ldr r3, [r6]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF4
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0x2
|
|
str r0, [r2]
|
|
adds r4, r3, 0
|
|
adds r4, 0xFC
|
|
cmp r0, 0
|
|
bge _080A5A8C
|
|
adds r0, r1, 0x5
|
|
_080A5A8C:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
ldr r0, [r2]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r5, _080A5AF0
|
|
ldr r0, [r5]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r0, [sp]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [r6]
|
|
adds r0, 0xFC
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
add r4, sp, 0x8
|
|
str r1, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
ldr r0, [sp]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [r6]
|
|
adds r0, 0xFC
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [r0]
|
|
subs r1, r0
|
|
str r1, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
b _080A5DD0
|
|
.align 2, 0
|
|
_080A5AF0: .4byte gGroundMapDungeon_3001B70
|
|
_080A5AF4:
|
|
ldr r2, [r6]
|
|
adds r3, r2, 0
|
|
adds r3, 0xF0
|
|
adds r0, r2, 0
|
|
adds r0, 0xE8
|
|
ldr r1, [r3]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
adds r2, 0xF8
|
|
cmp r1, 0
|
|
bge _080A5B0E
|
|
adds r1, 0x7
|
|
_080A5B0E:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5B20
|
|
adds r0, r1, 0x7
|
|
_080A5B20:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r3]
|
|
ldr r5, _080A5B54
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r6]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x10]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x10
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
.align 2, 0
|
|
_080A5B54: .4byte gGroundMapDungeon_3001B70
|
|
_080A5B58:
|
|
adds r4, r3, 0
|
|
adds r4, 0xF0
|
|
adds r0, r3, 0
|
|
adds r0, 0xE8
|
|
ldr r1, [r4]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [r4]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
cmp r1, 0
|
|
bge _080A5B72
|
|
adds r1, 0x7
|
|
_080A5B72:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5B84
|
|
adds r0, r1, 0x7
|
|
_080A5B84:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x18]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x18
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
b _080A5DCE
|
|
_080A5BBE:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, [r7]
|
|
add r4, sp, 0x20
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
_080A5BD8:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
adds r4, r3, 0
|
|
adds r4, 0xF0
|
|
adds r1, r3, 0
|
|
adds r1, 0xE8
|
|
ldr r0, [r4]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
adds r5, r3, 0
|
|
adds r5, 0xF4
|
|
adds r1, r3, 0
|
|
adds r1, 0xEC
|
|
ldr r0, [r5]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r5]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
bge _080A5C12
|
|
adds r1, 0x7
|
|
_080A5C12:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
adds r3, 0xFC
|
|
ldr r1, [r5]
|
|
cmp r1, 0
|
|
bge _080A5C24
|
|
adds r1, 0x7
|
|
_080A5C24:
|
|
asrs r1, 3
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
str r0, [r3]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5C36
|
|
adds r0, r1, 0x7
|
|
_080A5C36:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5C48
|
|
adds r0, r1, 0x7
|
|
_080A5C48:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r5]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
adds r1, r2, 0
|
|
adds r1, 0xF8
|
|
ldr r0, [sp]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [sp, 0x28]
|
|
adds r2, 0xFC
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
add r4, sp, 0x28
|
|
b _080A5DC2
|
|
_080A5C76:
|
|
adds r4, r3, 0
|
|
adds r4, 0xF0
|
|
adds r1, r3, 0
|
|
adds r1, 0xE8
|
|
ldr r0, [r4]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
adds r5, r3, 0
|
|
adds r5, 0xF4
|
|
adds r1, r3, 0
|
|
adds r1, 0xEC
|
|
ldr r0, [r5]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r5]
|
|
adds r6, r3, 0
|
|
adds r6, 0xF8
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
bge _080A5CA2
|
|
adds r1, 0x7
|
|
_080A5CA2:
|
|
asrs r1, 3
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
str r0, [r6]
|
|
adds r2, r3, 0
|
|
adds r2, 0xFC
|
|
ldr r1, [r5]
|
|
cmp r1, 0
|
|
bge _080A5CB6
|
|
adds r1, 0x7
|
|
_080A5CB6:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5CC8
|
|
adds r0, r1, 0x7
|
|
_080A5CC8:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5CDA
|
|
adds r0, r1, 0x7
|
|
_080A5CDA:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r5]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
bl sub_80A4580
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0xF8
|
|
ldr r0, [sp]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [sp, 0x30]
|
|
adds r2, 0xFC
|
|
ldr r0, [sp, 0x4]
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
add r4, sp, 0x30
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
_080A5D18:
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xF0
|
|
ldr r4, [r3]
|
|
adds r0, r4, 0x1
|
|
str r0, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0xF8
|
|
cmp r0, 0
|
|
bge _080A5D3A
|
|
adds r0, r4, 0x4
|
|
_080A5D3A:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x38]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x38
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
_080A5D76:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xF0
|
|
ldr r4, [r3]
|
|
adds r0, r4, 0x1
|
|
str r0, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0xF8
|
|
cmp r0, 0
|
|
bge _080A5D98
|
|
adds r0, 0x7
|
|
_080A5D98:
|
|
asrs r1, r0, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x40]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x40
|
|
_080A5DC2:
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
_080A5DCE:
|
|
ldr r0, [r7]
|
|
_080A5DD0:
|
|
movs r1, 0x1
|
|
_080A5DD2:
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
b _080A5E52
|
|
_080A5DDA:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xF0
|
|
ldr r4, [r3]
|
|
adds r0, r4, 0x1
|
|
str r0, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0xF8
|
|
cmp r0, 0
|
|
bge _080A5DFC
|
|
adds r0, 0x7
|
|
_080A5DFC:
|
|
asrs r1, r0, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x48]
|
|
ldr r0, [sp, 0x4]
|
|
add r2, sp, 0x48
|
|
str r0, [r2, 0x4]
|
|
ldr r0, [r7]
|
|
b _080A5E3E
|
|
_080A5E28:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
movs r0, 0
|
|
movs r1, 0
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
ldr r0, [r7]
|
|
add r2, sp, 0x50
|
|
_080A5E3E:
|
|
movs r1, 0x1
|
|
bl sub_80A456C
|
|
b _080A5E52
|
|
_080A5E46:
|
|
ldr r0, _080A5E6C
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
_080A5E52:
|
|
ldr r0, _080A5E6C
|
|
ldr r0, [r0]
|
|
bl sub_80A4764
|
|
_080A5E5A:
|
|
bl sub_80A60D8
|
|
add sp, 0x58
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5E6C: .4byte gGroundMapDungeon_3001B70
|
|
thumb_func_end sub_80A59DC
|
|
|
|
.align 2,0
|