mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 13:47:12 -05:00
22063 lines
355 KiB
ArmAsm
22063 lines
355 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start npc_clear_ids_and_state
|
|
npc_clear_ids_and_state: @ 805DE2C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x24
|
|
bl memset
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x8]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r4, 0x9]
|
|
strb r0, [r4, 0xA]
|
|
strb r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_clear_ids_and_state
|
|
|
|
thumb_func_start npcs_clear_ids_and_state
|
|
npcs_clear_ids_and_state: @ 805DE4C
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, _0805DE70 @ =gMapObjects
|
|
_0805DE52:
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl npc_clear_ids_and_state
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _0805DE52
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DE70: .4byte gMapObjects
|
|
thumb_func_end npcs_clear_ids_and_state
|
|
|
|
thumb_func_start sub_805DE74
|
|
sub_805DE74: @ 805DE74
|
|
push {lr}
|
|
bl strange_npc_table_clear
|
|
bl npcs_clear_ids_and_state
|
|
bl ClearPlayerAvatarInfo
|
|
bl sub_805DE8C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805DE74
|
|
|
|
thumb_func_start sub_805DE8C
|
|
sub_805DE8C: @ 805DE8C
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
ldr r0, _0805DF28 @ =gUnknown_83A0010
|
|
ldr r0, [r0, 0x54]
|
|
mov r9, r0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1F
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805DF2C @ =gSprites
|
|
mov r10, r1
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
add r4, r10
|
|
ldrb r1, [r4, 0x1]
|
|
movs r5, 0x4
|
|
negs r5, r5
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r4, 0
|
|
bl InitSpriteAffineAnim
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
movs r6, 0x4
|
|
orrs r0, r6
|
|
strb r0, [r4]
|
|
mov r0, r9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1F
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
add r4, r10
|
|
ldrb r0, [r4, 0x1]
|
|
ands r5, r0
|
|
mov r0, r8
|
|
orrs r5, r0
|
|
strb r5, [r4, 0x1]
|
|
adds r0, r4, 0
|
|
bl InitSpriteAffineAnim
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
orrs r0, r6
|
|
strb r0, [r4]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DF28: .4byte gUnknown_83A0010
|
|
_0805DF2C: .4byte gSprites
|
|
thumb_func_end sub_805DE8C
|
|
|
|
thumb_func_start sub_805DF30
|
|
sub_805DF30: @ 805DF30
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r2, _0805DF3C @ =gMapObjects
|
|
ldrb r0, [r2]
|
|
b _0805DF54
|
|
.align 2, 0
|
|
_0805DF3C: .4byte gMapObjects
|
|
_0805DF40:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xF
|
|
bhi _0805DF5A
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
_0805DF54:
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805DF40
|
|
_0805DF5A:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DF30
|
|
|
|
thumb_func_start GetFieldObjectIdByLocalIdAndMap
|
|
GetFieldObjectIdByLocalIdAndMap: @ 805DF60
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r0, 0xFE
|
|
bls _0805DF78
|
|
bl GetFieldObjectIdByLocalId
|
|
b _0805DF7C
|
|
_0805DF78:
|
|
bl GetFieldObjectIdByLocalIdAndMapInternal
|
|
_0805DF7C:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByLocalIdAndMap
|
|
|
|
thumb_func_start TryGetFieldObjectIdByLocalIdAndMap
|
|
TryGetFieldObjectIdByLocalIdAndMap: @ 805DF84
|
|
push {r4,lr}
|
|
adds r4, r3, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl GetFieldObjectIdByLocalIdAndMap
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x10
|
|
beq _0805DFA6
|
|
movs r0, 0
|
|
b _0805DFA8
|
|
_0805DFA6:
|
|
movs r0, 0x1
|
|
_0805DFA8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end TryGetFieldObjectIdByLocalIdAndMap
|
|
|
|
thumb_func_start GetFieldObjectIdByXY
|
|
GetFieldObjectIdByXY: @ 805DFB0
|
|
push {r4-r6,lr}
|
|
movs r3, 0
|
|
ldr r5, _0805DFF0 @ =gMapObjects
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
_0805DFBE:
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r5
|
|
ldrb r0, [r2]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805DFDE
|
|
movs r6, 0x10
|
|
ldrsh r0, [r2, r6]
|
|
cmp r0, r4
|
|
bne _0805DFDE
|
|
movs r6, 0x12
|
|
ldrsh r0, [r2, r6]
|
|
cmp r0, r1
|
|
beq _0805DFE8
|
|
_0805DFDE:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bls _0805DFBE
|
|
_0805DFE8:
|
|
adds r0, r3, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805DFF0: .4byte gMapObjects
|
|
thumb_func_end GetFieldObjectIdByXY
|
|
|
|
thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal
|
|
GetFieldObjectIdByLocalIdAndMapInternal: @ 805DFF4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0
|
|
ldr r6, _0805E02C @ =gMapObjects
|
|
_0805E006:
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0, r6
|
|
ldrb r0, [r3]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805E030
|
|
ldrb r0, [r3, 0x8]
|
|
cmp r0, r5
|
|
bne _0805E030
|
|
ldrb r0, [r3, 0x9]
|
|
cmp r0, r4
|
|
bne _0805E030
|
|
ldrb r0, [r3, 0xA]
|
|
cmp r0, r2
|
|
bne _0805E030
|
|
adds r0, r1, 0
|
|
b _0805E03C
|
|
.align 2, 0
|
|
_0805E02C: .4byte gMapObjects
|
|
_0805E030:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xF
|
|
bls _0805E006
|
|
movs r0, 0x10
|
|
_0805E03C:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal
|
|
|
|
thumb_func_start GetFieldObjectIdByLocalId
|
|
GetFieldObjectIdByLocalId: @ 805E044
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r2, 0
|
|
ldr r4, _0805E068 @ =gMapObjects
|
|
_0805E04E:
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805E06C
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, r3
|
|
bne _0805E06C
|
|
adds r0, r2, 0
|
|
b _0805E078
|
|
.align 2, 0
|
|
_0805E068: .4byte gMapObjects
|
|
_0805E06C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bls _0805E04E
|
|
movs r0, 0x10
|
|
_0805E078:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByLocalId
|
|
|
|
thumb_func_start sub_805E080
|
|
sub_805E080: @ 805E080
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
movs r0, 0
|
|
mov r10, r0
|
|
mov r8, r0
|
|
mov r9, r0
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0xFF
|
|
bne _0805E0DA
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
ldrb r4, [r5, 0x8]
|
|
ldrb r7, [r5, 0xC]
|
|
ldrb r6, [r5, 0xE]
|
|
ldrh r0, [r5, 0x4]
|
|
mov r8, r0
|
|
ldrh r5, [r5, 0x6]
|
|
mov r9, r5
|
|
mov r1, r8
|
|
str r1, [sp, 0x4]
|
|
mov r0, r9
|
|
str r0, [sp, 0x8]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl get_mapheader_by_bank_and_number
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
subs r0, 0x18
|
|
ldr r1, [r1, 0x4]
|
|
adds r5, r1, r0
|
|
_0805E0DA:
|
|
ldrb r0, [r5]
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
mov r3, sp
|
|
bl GetAvailableFieldObjectSlot
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E106
|
|
ldr r1, [sp, 0x4]
|
|
lsls r2, r1, 16
|
|
asrs r2, 16
|
|
ldr r0, [sp, 0x8]
|
|
lsls r3, r0, 16
|
|
asrs r3, 16
|
|
adds r0, r5, 0
|
|
mov r1, r10
|
|
bl sub_805E238
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E10A
|
|
_0805E106:
|
|
movs r0, 0x10
|
|
b _0805E220
|
|
_0805E10A:
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805E13C @ =gMapObjects
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
bl npc_clear_ids_and_state
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
beq _0805E140
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
movs r1, 0xE0
|
|
lsls r1, 11
|
|
adds r0, r1
|
|
lsrs r3, r0, 16
|
|
mov r1, r9
|
|
lsls r0, r1, 16
|
|
movs r1, 0xE0
|
|
lsls r1, 11
|
|
adds r0, r1
|
|
b _0805E14E
|
|
.align 2, 0
|
|
_0805E13C: .4byte gMapObjects
|
|
_0805E140:
|
|
ldrh r0, [r5, 0x4]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldrh r0, [r5, 0x6]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
_0805E14E:
|
|
lsrs r2, r0, 16
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r5, 0x1]
|
|
strb r0, [r4, 0x5]
|
|
ldrb r0, [r5, 0x9]
|
|
strb r0, [r4, 0x6]
|
|
ldrb r0, [r5]
|
|
strb r0, [r4, 0x8]
|
|
strb r7, [r4, 0x9]
|
|
strb r6, [r4, 0xA]
|
|
strh r3, [r4, 0xC]
|
|
strh r2, [r4, 0xE]
|
|
strh r3, [r4, 0x10]
|
|
strh r2, [r4, 0x12]
|
|
strh r3, [r4, 0x14]
|
|
strh r2, [r4, 0x16]
|
|
ldrb r0, [r5, 0x8]
|
|
movs r6, 0xF
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
ldrb r2, [r4, 0xB]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0xB]
|
|
ldrb r1, [r5, 0x8]
|
|
lsls r1, 4
|
|
ands r0, r6
|
|
orrs r0, r1
|
|
strb r0, [r4, 0xB]
|
|
ldrb r1, [r5, 0xA]
|
|
lsls r1, 28
|
|
movs r0, 0xF
|
|
mov r9, r0
|
|
lsrs r1, 28
|
|
ldrb r2, [r4, 0x19]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x19]
|
|
ldrb r1, [r5, 0xA]
|
|
lsrs r1, 4
|
|
lsls r1, 4
|
|
ands r0, r6
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x19]
|
|
ldrh r0, [r5, 0xC]
|
|
strb r0, [r4, 0x7]
|
|
ldrh r0, [r5, 0xE]
|
|
strb r0, [r4, 0x1D]
|
|
ldr r1, _0805E230 @ =gUnknown_839FD5D
|
|
ldrb r0, [r5, 0x9]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r4, 0
|
|
bl FieldObjectHandleDynamicGraphicsId
|
|
ldr r1, _0805E234 @ =gUnknown_839FD0C
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805E21C
|
|
ldrb r2, [r4, 0x19]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805E204
|
|
lsls r0, r2, 28
|
|
lsrs r0, 28
|
|
adds r0, 0x1
|
|
mov r1, r9
|
|
ands r0, r1
|
|
mov r1, r8
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x19]
|
|
_0805E204:
|
|
ldrb r2, [r4, 0x19]
|
|
movs r0, 0xF0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805E21C
|
|
lsrs r1, r2, 4
|
|
adds r1, 0x1
|
|
lsls r1, 4
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x19]
|
|
_0805E21C:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
_0805E220:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E230: .4byte gUnknown_839FD5D
|
|
_0805E234: .4byte gUnknown_839FD0C
|
|
thumb_func_end sub_805E080
|
|
|
|
thumb_func_start sub_805E238
|
|
sub_805E238: @ 805E238
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
lsls r3, 16
|
|
lsrs r5, r3, 16
|
|
cmp r1, 0
|
|
beq _0805E25C
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r5, 16
|
|
asrs r2, 16
|
|
bl sub_805E27C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E274
|
|
_0805E25C:
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r5, 16
|
|
asrs r2, 16
|
|
adds r0, r6, 0
|
|
bl sub_805E2E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E274
|
|
movs r0, 0x1
|
|
b _0805E276
|
|
_0805E274:
|
|
movs r0, 0
|
|
_0805E276:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E238
|
|
|
|
thumb_func_start sub_805E27C
|
|
sub_805E27C: @ 805E27C
|
|
push {r4,r5,lr}
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
adds r5, r4, 0
|
|
ldrb r0, [r0, 0x1]
|
|
subs r0, 0x5F
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0805E2DE
|
|
ldr r0, _0805E2B8 @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r3, 16
|
|
asrs r3, r0, 16
|
|
cmp r1, r3
|
|
bge _0805E2BC
|
|
adds r0, r1, 0
|
|
adds r0, 0x8
|
|
cmp r0, r3
|
|
blt _0805E2DE
|
|
movs r0, 0x2
|
|
ldrsh r3, [r2, r0]
|
|
subs r1, r3, 0x6
|
|
lsls r0, r4, 16
|
|
b _0805E2CE
|
|
.align 2, 0
|
|
_0805E2B8: .4byte gSaveBlock1Ptr
|
|
_0805E2BC:
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
subs r0, 0x8
|
|
cmp r0, r3
|
|
bgt _0805E2DE
|
|
movs r0, 0x2
|
|
ldrsh r3, [r2, r0]
|
|
subs r1, r3, 0x6
|
|
lsls r0, r5, 16
|
|
_0805E2CE:
|
|
asrs r2, r0, 16
|
|
cmp r1, r2
|
|
bgt _0805E2DE
|
|
adds r0, r3, 0x6
|
|
cmp r0, r2
|
|
blt _0805E2DE
|
|
movs r0, 0
|
|
b _0805E2E0
|
|
_0805E2DE:
|
|
movs r0, 0x1
|
|
_0805E2E0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E27C
|
|
|
|
thumb_func_start sub_805E2E8
|
|
sub_805E2E8: @ 805E2E8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl GetCurrentMapType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl is_light_level_1_2_3_5_or_6
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E37C
|
|
ldr r1, _0805E374 @ =VMap
|
|
ldr r0, [r1]
|
|
adds r3, r0, 0
|
|
subs r3, 0x10
|
|
ldr r0, [r1, 0x4]
|
|
adds r5, r0, 0
|
|
subs r5, 0xF
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x5F
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0805E37C
|
|
ldr r0, _0805E378 @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _0805E32E
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x8
|
|
ble _0805E36A
|
|
_0805E32E:
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, r3
|
|
bne _0805E344
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r3, 0
|
|
subs r0, 0x8
|
|
cmp r1, r0
|
|
bge _0805E36A
|
|
_0805E344:
|
|
ldr r0, [r2]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _0805E356
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
ble _0805E36A
|
|
_0805E356:
|
|
ldr r0, [r2]
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, r5
|
|
bne _0805E37C
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
subs r0, r5, 0x6
|
|
cmp r1, r0
|
|
blt _0805E37C
|
|
_0805E36A:
|
|
adds r0, r4, 0
|
|
bl sub_805E384
|
|
movs r0, 0
|
|
b _0805E37E
|
|
.align 2, 0
|
|
_0805E374: .4byte VMap
|
|
_0805E378: .4byte gSaveBlock1Ptr
|
|
_0805E37C:
|
|
movs r0, 0x1
|
|
_0805E37E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E2E8
|
|
|
|
thumb_func_start sub_805E384
|
|
sub_805E384: @ 805E384
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x14]
|
|
subs r0, 0x11
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xE
|
|
bhi _0805E39A
|
|
ldrh r0, [r1, 0x14]
|
|
bl FlagSet
|
|
_0805E39A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805E384
|
|
|
|
thumb_func_start sub_805E3A0
|
|
sub_805E3A0: @ 805E3A0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, _0805E3B8 @ =gMapHeader
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _0805E3CE
|
|
b _0805E404
|
|
.align 2, 0
|
|
_0805E3B8: .4byte gMapHeader
|
|
_0805E3BC:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_805E080
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805E406
|
|
_0805E3CE:
|
|
ldrb r6, [r0]
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bcs _0805E404
|
|
ldr r7, _0805E410 @ =gSaveBlock1Ptr
|
|
_0805E3D8:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
movs r1, 0x8E
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldr r1, [r7]
|
|
adds r4, r1, r0
|
|
ldrb r0, [r4]
|
|
cmp r0, r8
|
|
bne _0805E3FA
|
|
ldrh r0, [r4, 0x14]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E3BC
|
|
_0805E3FA:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r6
|
|
bcc _0805E3D8
|
|
_0805E404:
|
|
movs r0, 0x10
|
|
_0805E406:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E410: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_805E3A0
|
|
|
|
thumb_func_start GetAvailableFieldObjectSlot
|
|
GetAvailableFieldObjectSlot: @ 805E414
|
|
push {r4-r7,lr}
|
|
mov r12, r3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
movs r2, 0
|
|
ldr r1, _0805E470 @ =gMapObjects
|
|
ldrb r0, [r1]
|
|
lsls r0, 31
|
|
adds r7, r1, 0
|
|
cmp r0, 0
|
|
beq _0805E468
|
|
adds r3, r1, 0
|
|
_0805E434:
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0, r3
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, r6
|
|
bne _0805E44E
|
|
ldrb r0, [r1, 0x9]
|
|
cmp r0, r5
|
|
bne _0805E44E
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, r4
|
|
beq _0805E46C
|
|
_0805E44E:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bhi _0805E46C
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805E434
|
|
_0805E468:
|
|
cmp r2, 0xF
|
|
bls _0805E474
|
|
_0805E46C:
|
|
movs r0, 0x1
|
|
b _0805E4A8
|
|
.align 2, 0
|
|
_0805E470: .4byte gMapObjects
|
|
_0805E474:
|
|
mov r0, r12
|
|
strb r2, [r0]
|
|
ldr r1, _0805E4B0 @ =gMapObjects
|
|
_0805E47A:
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805E49C
|
|
ldrb r0, [r3, 0x8]
|
|
cmp r0, r6
|
|
bne _0805E49C
|
|
ldrb r0, [r3, 0x9]
|
|
cmp r0, r5
|
|
bne _0805E49C
|
|
ldrb r0, [r3, 0xA]
|
|
cmp r0, r4
|
|
beq _0805E46C
|
|
_0805E49C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bls _0805E47A
|
|
movs r0, 0
|
|
_0805E4A8:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E4B0: .4byte gMapObjects
|
|
thumb_func_end GetAvailableFieldObjectSlot
|
|
|
|
thumb_func_start RemoveFieldObject
|
|
RemoveFieldObject: @ 805E4B4
|
|
push {lr}
|
|
ldrb r2, [r0]
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
bl RemoveFieldObjectInternal
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end RemoveFieldObject
|
|
|
|
thumb_func_start RemoveFieldObjectByLocalIdAndMap
|
|
RemoveFieldObjectByLocalIdAndMap: @ 805E4C8
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E506
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
bl GetFieldObjectFlagIdByFieldObjectId
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FlagSet
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805E50C @ =gMapObjects
|
|
adds r0, r1
|
|
bl RemoveFieldObject
|
|
_0805E506:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E50C: .4byte gMapObjects
|
|
thumb_func_end RemoveFieldObjectByLocalIdAndMap
|
|
|
|
thumb_func_start RemoveFieldObjectInternal
|
|
RemoveFieldObjectInternal: @ 805E510
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
ldrh r2, [r0, 0x6]
|
|
ldr r1, _0805E554 @ =0xffff0000
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x4]
|
|
ldr r2, _0805E558 @ =gSprites
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
mov r1, sp
|
|
str r1, [r0]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
bl DestroySprite
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E554: .4byte 0xffff0000
|
|
_0805E558: .4byte gSprites
|
|
thumb_func_end RemoveFieldObjectInternal
|
|
|
|
thumb_func_start unref_sub_808D958
|
|
unref_sub_808D958: @ 805E55C
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0805E560:
|
|
ldr r0, _0805E588 @ =gPlayerAvatar
|
|
ldrb r0, [r0, 0x5]
|
|
cmp r4, r0
|
|
beq _0805E576
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _0805E58C @ =gMapObjects
|
|
adds r0, r1
|
|
bl RemoveFieldObject
|
|
_0805E576:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _0805E560
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E588: .4byte gPlayerAvatar
|
|
_0805E58C: .4byte gMapObjects
|
|
thumb_func_end unref_sub_808D958
|
|
|
|
thumb_func_start sub_805E590
|
|
sub_805E590: @ 805E590
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r1, 0
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
ldr r3, [sp, 0x20]
|
|
ldr r4, [sp, 0x24]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
mov r9, r3
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r10, r4
|
|
bl sub_805E080
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x10
|
|
bne _0805E5CA
|
|
movs r0, 0x10
|
|
b _0805E718
|
|
_0805E5CA:
|
|
mov r0, r8
|
|
lsls r4, r0, 3
|
|
adds r0, r4, r0
|
|
lsls r0, 2
|
|
ldr r1, _0805E5F4 @ =gMapObjects
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r6, r0, 0
|
|
ldrb r1, [r6, 0xC]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805E5F8
|
|
ldrh r0, [r6, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__no_record
|
|
b _0805E606
|
|
.align 2, 0
|
|
_0805E5F4: .4byte gMapObjects
|
|
_0805E5F8:
|
|
cmp r0, 0xA
|
|
bne _0805E606
|
|
ldrh r0, [r6, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805E606:
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0x4C
|
|
bne _0805E614
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_0805E614:
|
|
ldr r1, _0805E648 @ =0x0000ffff
|
|
adds r0, r1, 0
|
|
strh r0, [r7, 0x2]
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x40
|
|
bne _0805E650
|
|
ldr r0, _0805E64C @ =gMapObjects
|
|
mov r2, r8
|
|
adds r1, r4, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
movs r0, 0x10
|
|
b _0805E718
|
|
.align 2, 0
|
|
_0805E648: .4byte 0x0000ffff
|
|
_0805E64C: .4byte gMapObjects
|
|
_0805E650:
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
ldr r1, _0805E728 @ =gSprites
|
|
adds r4, r0, r1
|
|
mov r1, r9
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r5, 0x10]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r10
|
|
lsls r1, r2, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r5, 0x12]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
bl sub_8063AD4
|
|
ldrh r0, [r6, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, r4, 0
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
ldrh r0, [r6, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r2, r4, 0
|
|
adds r2, 0x29
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x20]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r1, 0x10
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrb r1, [r6, 0xC]
|
|
lsls r1, 28
|
|
lsrs r1, 24
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x2E]
|
|
strb r7, [r5, 0x4]
|
|
ldrb r1, [r6, 0xC]
|
|
lsls r1, 25
|
|
lsrs r1, 31
|
|
lsls r1, 4
|
|
ldrb r2, [r5, 0x1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0805E702
|
|
ldrb r0, [r5, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_0805E702:
|
|
ldrb r0, [r5, 0xB]
|
|
lsrs r0, 4
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl SetObjectSubpriorityByZCoord
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80679F8
|
|
mov r0, r8
|
|
_0805E718:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E728: .4byte gSprites
|
|
thumb_func_end sub_805E590
|
|
|
|
thumb_func_start SpawnFieldObject
|
|
SpawnFieldObject: @ 805E72C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x2C
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
ldr r5, [sp, 0x48]
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
mov r1, r9
|
|
ldrb r0, [r1, 0x1]
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r7, r0, 0
|
|
add r2, sp, 0x20
|
|
mov r0, r9
|
|
add r1, sp, 0x8
|
|
bl MakeObjectTemplateFromFieldObjectTemplate
|
|
ldrh r3, [r7, 0x6]
|
|
ldr r2, _0805E7A4 @ =0xffff0000
|
|
add r1, sp, 0x24
|
|
ldr r0, [r1, 0x4]
|
|
ands r0, r2
|
|
orrs r0, r3
|
|
str r0, [r1, 0x4]
|
|
str r1, [sp, 0x14]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
str r4, [sp]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
str r5, [sp, 0x4]
|
|
mov r0, r9
|
|
add r1, sp, 0x8
|
|
adds r2, r6, 0
|
|
mov r3, r8
|
|
bl sub_805E590
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r5, r2, 0
|
|
cmp r2, 0x10
|
|
bne _0805E7A8
|
|
movs r0, 0x10
|
|
b _0805E7DE
|
|
.align 2, 0
|
|
_0805E7A4: .4byte 0xffff0000
|
|
_0805E7A8:
|
|
ldr r4, _0805E7EC @ =gSprites
|
|
ldr r1, _0805E7F0 @ =gMapObjects
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0xC
|
|
adds r0, r1
|
|
ldr r1, [r7, 0x1C]
|
|
str r1, [r0]
|
|
ldr r2, [sp, 0x20]
|
|
cmp r2, 0
|
|
beq _0805E7DC
|
|
ldrb r1, [r3, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r1, r2, 0
|
|
bl SetSubspriteTables
|
|
_0805E7DC:
|
|
adds r0, r5, 0
|
|
_0805E7DE:
|
|
add sp, 0x2C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E7EC: .4byte gSprites
|
|
_0805E7F0: .4byte gMapObjects
|
|
thumb_func_end SpawnFieldObject
|
|
|
|
thumb_func_start SpawnSpecialFieldObject
|
|
SpawnSpecialFieldObject: @ 805E7F4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
mov r4, sp
|
|
adds r4, 0x6
|
|
add r0, sp, 0x4
|
|
adds r1, r4, 0
|
|
bl GetFieldObjectMovingCameraOffset
|
|
ldr r0, _0805E82C @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
add r0, sp, 0x4
|
|
movs r6, 0
|
|
ldrsh r3, [r0, r6]
|
|
movs r6, 0
|
|
ldrsh r0, [r4, r6]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl SpawnFieldObject
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E82C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end SpawnSpecialFieldObject
|
|
|
|
thumb_func_start SpawnSpecialFieldObjectParameterized
|
|
SpawnSpecialFieldObjectParameterized: @ 805E830
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x18
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
mov r8, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r3, 16
|
|
ldr r5, _0805E894 @ =0xfff90000
|
|
adds r3, r5
|
|
lsrs r3, 16
|
|
lsls r4, 16
|
|
adds r4, r5
|
|
lsrs r4, 16
|
|
mov r5, sp
|
|
movs r6, 0
|
|
strb r2, [r5]
|
|
mov r2, sp
|
|
strb r0, [r2, 0x1]
|
|
mov r0, sp
|
|
strb r6, [r0, 0x2]
|
|
movs r5, 0
|
|
strh r3, [r0, 0x4]
|
|
strh r4, [r0, 0x6]
|
|
mov r2, r8
|
|
strb r2, [r0, 0x8]
|
|
strb r1, [r0, 0x9]
|
|
mov r2, sp
|
|
ldrb r1, [r2, 0xA]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0xA]
|
|
mov r0, sp
|
|
strb r5, [r0, 0xA]
|
|
strh r6, [r0, 0xC]
|
|
strh r6, [r0, 0xE]
|
|
bl SpawnSpecialFieldObject
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E894: .4byte 0xfff90000
|
|
thumb_func_end SpawnSpecialFieldObjectParameterized
|
|
|
|
thumb_func_start show_sprite
|
|
show_sprite: @ 805E898
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl GetFieldObjectTemplateByLocalIdAndMap
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _0805E8DE
|
|
mov r4, sp
|
|
adds r4, 0x6
|
|
add r0, sp, 0x4
|
|
adds r1, r4, 0
|
|
bl GetFieldObjectMovingCameraOffset
|
|
add r0, sp, 0x4
|
|
movs r1, 0
|
|
ldrsh r3, [r0, r1]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl SpawnFieldObject
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805E8E0
|
|
_0805E8DE:
|
|
movs r0, 0x10
|
|
_0805E8E0:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end show_sprite
|
|
|
|
thumb_func_start sub_805E8E8
|
|
sub_805E8E8: @ 805E8E8
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
adds r7, r3, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5]
|
|
strh r0, [r4]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x2]
|
|
ldr r0, [r5, 0x10]
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r5, 0x18]
|
|
str r0, [r4, 0x8]
|
|
ldr r0, [r5, 0x1C]
|
|
str r0, [r4, 0xC]
|
|
ldr r0, [r5, 0x20]
|
|
str r0, [r4, 0x10]
|
|
bl ScriptContext1_IsScriptSetUp
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0805E934
|
|
bl sub_8112CAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805E934
|
|
ldr r0, _0805E930 @ =sub_811246C
|
|
str r0, [r4, 0x14]
|
|
b _0805E936
|
|
.align 2, 0
|
|
_0805E930: .4byte sub_811246C
|
|
_0805E934:
|
|
str r6, [r4, 0x14]
|
|
_0805E936:
|
|
ldr r0, [r5, 0x14]
|
|
str r0, [r7]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805E8E8
|
|
|
|
thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
|
|
MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 805E940
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
ldr r4, _0805E95C @ =gUnknown_839FBC8
|
|
lsrs r1, 14
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl sub_805E8E8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E95C: .4byte gUnknown_839FBC8
|
|
thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
|
|
|
|
thumb_func_start MakeObjectTemplateFromFieldObjectTemplate
|
|
MakeObjectTemplateFromFieldObjectTemplate: @ 805E960
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
ldrb r0, [r4, 0x1]
|
|
ldrb r1, [r4, 0x9]
|
|
adds r2, r5, 0
|
|
bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
|
|
|
|
thumb_func_start AddPseudoEventObject
|
|
AddPseudoEventObject: @ 805E978
|
|
push {r4-r6,lr}
|
|
sub sp, 0x1C
|
|
ldr r4, [sp, 0x2C]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, 16
|
|
lsrs r6, r2, 16
|
|
lsls r3, 16
|
|
lsrs r5, r3, 16
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
add r3, sp, 0x18
|
|
mov r2, sp
|
|
bl sub_805E8E8
|
|
mov r0, sp
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _0805E9F0 @ =0x0000ffff
|
|
cmp r1, r0
|
|
beq _0805E9A8
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_805F4B0
|
|
_0805E9A8:
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
lsls r2, r5, 16
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
adds r3, r4, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x40
|
|
beq _0805E9E4
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
beq _0805E9E4
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
ldr r0, _0805E9F4 @ =gSprites
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl SetSubspriteTables
|
|
adds r4, 0x42
|
|
ldrb r1, [r4]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
_0805E9E4:
|
|
adds r0, r5, 0
|
|
add sp, 0x1C
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E9F0: .4byte 0x0000ffff
|
|
_0805E9F4: .4byte gSprites
|
|
thumb_func_end AddPseudoEventObject
|
|
|
|
thumb_func_start sprite_new
|
|
sprite_new: @ 805E9F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
adds r5, r0, 0
|
|
ldr r0, [sp, 0x44]
|
|
ldr r4, [sp, 0x48]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
add r1, sp, 0x18
|
|
mov r8, r1
|
|
strh r2, [r1]
|
|
mov r6, sp
|
|
adds r6, 0x1A
|
|
strh r3, [r6]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r9, r7
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp, 0x20]
|
|
adds r0, r5, 0
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r4, r0, 0
|
|
ldr r1, _0805EB38 @ =sub_8068FA8
|
|
add r3, sp, 0x1C
|
|
adds r0, r5, 0
|
|
mov r2, sp
|
|
bl sub_805E8E8
|
|
mov r1, sp
|
|
ldr r2, _0805EB3C @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1, 0x2]
|
|
mov r1, r8
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
adds r0, 0x7
|
|
strh r0, [r1]
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, 0x7
|
|
strh r0, [r6]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
movs r2, 0x8
|
|
movs r3, 0x10
|
|
bl sub_8063BC4
|
|
mov r2, r8
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0
|
|
ldrsh r2, [r6, r0]
|
|
mov r0, sp
|
|
movs r3, 0
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _0805EB24
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, _0805EB40 @ =gSprites
|
|
adds r5, r0, r1
|
|
ldrh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, r5, 0
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
ldrb r1, [r4, 0xC]
|
|
lsls r1, 28
|
|
lsrs r1, 24
|
|
ldrb r3, [r5, 0x5]
|
|
movs r2, 0xF
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
adds r3, r5, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
mov r0, r10
|
|
strh r0, [r5, 0x2E]
|
|
strh r7, [r5, 0x30]
|
|
ldrb r1, [r4, 0xC]
|
|
ands r2, r1
|
|
cmp r2, 0xA
|
|
bne _0805EAE4
|
|
ldrh r0, [r4, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805EAE4:
|
|
ldr r1, [sp, 0x1C]
|
|
cmp r1, 0
|
|
beq _0805EB00
|
|
adds r0, r5, 0
|
|
bl SetSubspriteTables
|
|
adds r2, r5, 0
|
|
adds r2, 0x42
|
|
ldrb r0, [r2]
|
|
movs r1, 0x3F
|
|
ands r1, r0
|
|
movs r0, 0x80
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
_0805EB00:
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl InitObjectPriorityByZCoord
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl SetObjectSubpriorityByZCoord
|
|
ldr r0, [sp, 0x20]
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
_0805EB24:
|
|
adds r0, r6, 0
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805EB38: .4byte sub_8068FA8
|
|
_0805EB3C: .4byte 0x0000ffff
|
|
_0805EB40: .4byte gSprites
|
|
thumb_func_end sprite_new
|
|
|
|
thumb_func_start sub_805EB44
|
|
sub_805EB44: @ 805EB44
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x1C
|
|
adds r6, r0, 0
|
|
adds r4, r2, 0
|
|
adds r5, r3, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r6, 0
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r7, r0, 0
|
|
ldr r1, _0805EC24 @ =SpriteCallbackDummy
|
|
add r3, sp, 0x18
|
|
adds r0, r6, 0
|
|
mov r2, sp
|
|
bl sub_805E8E8
|
|
mov r1, sp
|
|
ldr r2, _0805EC28 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1, 0x2]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl CreateSpriteAtEnd
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x40
|
|
beq _0805EC14
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _0805EC2C @ =gSprites
|
|
adds r4, r0, r1
|
|
ldrh r0, [r7, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, r4, 0
|
|
adds r1, 0x29
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrb r1, [r7, 0xC]
|
|
lsls r1, 28
|
|
lsrs r1, 24
|
|
ldrb r3, [r4, 0x5]
|
|
movs r2, 0xF
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x2E]
|
|
ldrb r1, [r7, 0xC]
|
|
ands r2, r1
|
|
cmp r2, 0xA
|
|
bne _0805EBE6
|
|
ldrh r0, [r7, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805EBE6:
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
beq _0805EC02
|
|
adds r0, r4, 0
|
|
bl SetSubspriteTables
|
|
adds r2, r4, 0
|
|
adds r2, 0x42
|
|
ldrb r0, [r2]
|
|
movs r1, 0x3F
|
|
ands r1, r0
|
|
movs r0, 0x80
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
_0805EC02:
|
|
movs r0, 0x1
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_0805EC14:
|
|
adds r0, r5, 0
|
|
add sp, 0x1C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805EC24: .4byte SpriteCallbackDummy
|
|
_0805EC28: .4byte 0x0000ffff
|
|
_0805EC2C: .4byte gSprites
|
|
thumb_func_end sub_805EB44
|
|
|
|
thumb_func_start sub_805EC30
|
|
sub_805EC30: @ 805EC30
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x4]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x8]
|
|
ldr r0, _0805ED08 @ =gMapHeader
|
|
ldr r3, [r0, 0x4]
|
|
cmp r3, 0
|
|
beq _0805ECF8
|
|
ldr r7, _0805ED0C @ =gSaveBlock1Ptr
|
|
ldr r2, [r7]
|
|
ldrh r1, [r2]
|
|
subs r0, r1, 0x2
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r1, 0x11
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0xC]
|
|
ldrh r1, [r2, 0x2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
ldrb r3, [r3]
|
|
str r3, [sp, 0x10]
|
|
movs r5, 0
|
|
cmp r5, r3
|
|
bcs _0805ECF8
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
_0805EC86:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
movs r1, 0x8E
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldr r1, [r7]
|
|
adds r4, r1, r0
|
|
ldrh r0, [r4, 0x4]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldrh r0, [r4, 0x6]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r9, r1
|
|
bgt _0805ECEC
|
|
mov r3, r10
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
blt _0805ECEC
|
|
lsls r0, r2, 16
|
|
asrs r1, r0, 16
|
|
cmp r8, r1
|
|
bgt _0805ECEC
|
|
ldr r6, [sp, 0xC]
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
blt _0805ECEC
|
|
ldrh r0, [r4, 0x14]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805ECEC
|
|
ldr r0, [r7]
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
ldr r0, [sp, 0x4]
|
|
lsls r3, r0, 16
|
|
ldr r6, [sp, 0x8]
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
asrs r3, 16
|
|
bl SpawnFieldObject
|
|
_0805ECEC:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, [sp, 0x10]
|
|
cmp r5, r0
|
|
bcc _0805EC86
|
|
_0805ECF8:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805ED08: .4byte gMapHeader
|
|
_0805ED0C: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_805EC30
|
|
|
|
thumb_func_start RemoveFieldObjectsOutsideView
|
|
RemoveFieldObjectsOutsideView: @ 805ED10
|
|
push {r4-r6,lr}
|
|
movs r3, 0
|
|
ldr r6, _0805ED64 @ =gUnknown_2031DEC
|
|
_0805ED16:
|
|
movs r2, 0
|
|
movs r4, 0
|
|
adds r5, r3, 0x1
|
|
_0805ED1C:
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r6
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0805ED2E
|
|
ldrb r1, [r1, 0x2]
|
|
cmp r3, r1
|
|
bne _0805ED2E
|
|
movs r4, 0x1
|
|
_0805ED2E:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0805ED1C
|
|
cmp r4, 0
|
|
bne _0805ED56
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r1, _0805ED68 @ =gMapObjects
|
|
adds r2, r0, r1
|
|
ldr r0, [r2]
|
|
ldr r1, _0805ED6C @ =0x00010001
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0805ED56
|
|
adds r0, r2, 0
|
|
bl RemoveFieldObjectIfOutsideView
|
|
_0805ED56:
|
|
lsls r0, r5, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bls _0805ED16
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805ED64: .4byte gUnknown_2031DEC
|
|
_0805ED68: .4byte gMapObjects
|
|
_0805ED6C: .4byte 0x00010001
|
|
thumb_func_end RemoveFieldObjectsOutsideView
|
|
|
|
thumb_func_start RemoveFieldObjectIfOutsideView
|
|
RemoveFieldObjectIfOutsideView: @ 805ED70
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _0805EDEC @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
subs r1, r0, 0x2
|
|
lsls r1, 16
|
|
adds r0, 0x11
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldrh r4, [r2, 0x2]
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r0, 0x10
|
|
ldrsh r2, [r3, r0]
|
|
lsrs r7, r1, 16
|
|
asrs r1, 16
|
|
cmp r2, r1
|
|
blt _0805EDB6
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
cmp r2, r0
|
|
bgt _0805EDB6
|
|
movs r0, 0x12
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _0805EDB6
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
ble _0805EDE4
|
|
_0805EDB6:
|
|
movs r0, 0xC
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _0805EDDE
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _0805EDDE
|
|
movs r0, 0xE
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _0805EDDE
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
ble _0805EDE4
|
|
_0805EDDE:
|
|
adds r0, r3, 0
|
|
bl RemoveFieldObject
|
|
_0805EDE4:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EDEC: .4byte gSaveBlock1Ptr
|
|
thumb_func_end RemoveFieldObjectIfOutsideView
|
|
|
|
thumb_func_start sub_805EDF0
|
|
sub_805EDF0: @ 805EDF0
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
bl ClearPlayerAvatarInfo
|
|
movs r6, 0
|
|
ldr r7, _0805EE38 @ =gMapObjects
|
|
lsls r4, 16
|
|
lsls r5, 16
|
|
_0805EE0A:
|
|
lsls r0, r6, 3
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805EE24
|
|
adds r0, r6, 0
|
|
asrs r1, r4, 16
|
|
asrs r2, r5, 16
|
|
bl sub_805EE3C
|
|
_0805EE24:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xF
|
|
bls _0805EE0A
|
|
bl sub_805DE8C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EE38: .4byte gMapObjects
|
|
thumb_func_end sub_805EDF0
|
|
|
|
thumb_func_start sub_805EE3C
|
|
sub_805EE3C: @ 805EE3C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r10, r2
|
|
movs r7, 0
|
|
ldr r2, _0805EFE0 @ =gUnknown_2031DEC
|
|
_0805EE5E:
|
|
lsls r0, r7, 2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0805EE70
|
|
ldrb r1, [r1, 0x2]
|
|
cmp r8, r1
|
|
bne _0805EE70
|
|
b _0805EFCE
|
|
_0805EE70:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _0805EE5E
|
|
mov r1, r8
|
|
lsls r0, r1, 3
|
|
add r0, r8
|
|
lsls r0, 2
|
|
ldr r1, _0805EFE4 @ =gMapObjects
|
|
adds r6, r0, r1
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
ldrb r0, [r6, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r5, r0, 0
|
|
ldrh r2, [r5, 0x6]
|
|
ldr r1, _0805EFE8 @ =0xffff0000
|
|
add r4, sp, 0x18
|
|
ldr r0, [r4, 0x4]
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [r4, 0x4]
|
|
ldrb r0, [r6, 0x5]
|
|
ldrb r1, [r6, 0x6]
|
|
add r3, sp, 0x20
|
|
mov r2, sp
|
|
bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
|
|
str r4, [sp, 0xC]
|
|
mov r0, sp
|
|
ldr r2, _0805EFEC @ =0x0000ffff
|
|
adds r4, r2, 0
|
|
strh r4, [r0, 0x2]
|
|
ldrb r1, [r5, 0xC]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805EECA
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__no_record
|
|
_0805EECA:
|
|
ldrb r0, [r5, 0xC]
|
|
lsls r1, r0, 28
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x9
|
|
bls _0805EEDC
|
|
ldrh r0, [r5, 0x2]
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805EEDC:
|
|
mov r0, sp
|
|
strh r4, [r0, 0x2]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x40
|
|
beq _0805EFCE
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
ldr r1, _0805EFF0 @ =gSprites
|
|
adds r4, r0, r1
|
|
mov r1, r9
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r6, 0x10]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r10
|
|
lsls r1, r2, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r6, 0x12]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
bl sub_8063AD4
|
|
ldrh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, r4, 0
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
ldrh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r2, r4, 0
|
|
adds r2, 0x29
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x20]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r1, 0x10
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, [r5, 0x1C]
|
|
str r0, [r4, 0xC]
|
|
ldrb r0, [r6, 0x6]
|
|
cmp r0, 0xB
|
|
bne _0805EF6A
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl SetPlayerAvatarFieldObjectIdAndObjectId
|
|
bl sub_80DB0C4
|
|
strb r0, [r6, 0x1B]
|
|
_0805EF6A:
|
|
ldr r1, [sp, 0x20]
|
|
cmp r1, 0
|
|
beq _0805EF76
|
|
adds r0, r4, 0
|
|
bl SetSubspriteTables
|
|
_0805EF76:
|
|
ldrb r1, [r5, 0xC]
|
|
lsls r1, 28
|
|
lsrs r1, 24
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x2E]
|
|
strb r7, [r6, 0x4]
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0805EFBC
|
|
ldrb r0, [r6, 0x6]
|
|
cmp r0, 0xB
|
|
beq _0805EFBC
|
|
ldrb r0, [r6, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_0805EFBC:
|
|
adds r0, r6, 0
|
|
bl sub_805EFF4
|
|
ldrb r0, [r6, 0xB]
|
|
lsrs r0, 4
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl SetObjectSubpriorityByZCoord
|
|
_0805EFCE:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EFE0: .4byte gUnknown_2031DEC
|
|
_0805EFE4: .4byte gMapObjects
|
|
_0805EFE8: .4byte 0xffff0000
|
|
_0805EFEC: .4byte 0x0000ffff
|
|
_0805EFF0: .4byte gSprites
|
|
thumb_func_end sub_805EE3C
|
|
|
|
thumb_func_start sub_805EFF4
|
|
sub_805EFF4: @ 805EFF4
|
|
push {lr}
|
|
ldrb r2, [r0]
|
|
movs r3, 0x3
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r1, r2
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r2, [r0, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r2
|
|
ands r1, r3
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
ands r1, r2
|
|
subs r2, 0x4
|
|
ands r1, r2
|
|
subs r2, 0x8
|
|
ands r1, r2
|
|
subs r2, 0x10
|
|
ands r1, r2
|
|
strb r1, [r0, 0x2]
|
|
bl FieldObjectClearAnim
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805EFF4
|
|
|
|
thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId
|
|
SetPlayerAvatarFieldObjectIdAndObjectId: @ 805F02C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _0805F058 @ =gPlayerAvatar
|
|
strb r0, [r5, 0x5]
|
|
strb r1, [r5, 0x4]
|
|
ldr r1, _0805F05C @ =gMapObjects
|
|
lsls r4, r0, 3
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r4, r1
|
|
ldrb r0, [r4, 0x5]
|
|
bl sub_805C824
|
|
strb r0, [r5, 0x7]
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0x20
|
|
bl SetPlayerAvatarExtraStateTransition
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F058: .4byte gPlayerAvatar
|
|
_0805F05C: .4byte gMapObjects
|
|
thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
|
|
|
|
thumb_func_start EventObjectSetGraphicsId
|
|
EventObjectSetGraphicsId: @ 805F060
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
adds r0, r1, 0
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r5, r0, 0
|
|
ldrb r1, [r6, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F1CC @ =gSprites
|
|
adds r4, r0, r1
|
|
ldrb r1, [r5, 0xC]
|
|
movs r0, 0xF
|
|
mov r8, r0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F09E
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl pal_patch_for_npc
|
|
_0805F09E:
|
|
ldrb r1, [r5, 0xC]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0xA
|
|
bne _0805F0B2
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805F0B2:
|
|
ldr r0, [r4, 0xC]
|
|
ldrh r0, [r0, 0x4]
|
|
lsrs r0, 5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
adds r7, r4, 0
|
|
adds r7, 0x3F
|
|
ldrb r1, [r7]
|
|
movs r2, 0x40
|
|
mov r9, r2
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F0D6
|
|
adds r0, r4, 0
|
|
bl sub_80075C0
|
|
_0805F0D6:
|
|
ldr r0, [r5, 0x10]
|
|
ldrb r2, [r0, 0x1]
|
|
lsrs r2, 6
|
|
lsls r2, 6
|
|
ldrb r3, [r4, 0x1]
|
|
movs r1, 0x3F
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x1]
|
|
ldr r0, [r5, 0x10]
|
|
ldrb r0, [r0, 0x3]
|
|
lsrs r0, 6
|
|
lsls r0, 6
|
|
ldrb r2, [r4, 0x3]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x3]
|
|
ldr r3, [r5, 0x1C]
|
|
str r3, [r4, 0xC]
|
|
ldr r0, [r5, 0x18]
|
|
str r0, [r4, 0x8]
|
|
ldr r0, [r5, 0x14]
|
|
str r0, [r4, 0x18]
|
|
ldrb r1, [r5, 0xC]
|
|
lsls r1, 28
|
|
lsrs r1, 24
|
|
ldrb r2, [r4, 0x5]
|
|
mov r0, r8
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
ldrb r1, [r7]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805F152
|
|
ldrh r0, [r3, 0x4]
|
|
lsrs r0, 5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl AllocSpriteTiles
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _0805F142
|
|
mov r0, r10
|
|
bl AllocSpriteTiles
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
_0805F142:
|
|
ldr r1, _0805F1D0 @ =0x000003ff
|
|
adds r0, r1, 0
|
|
ands r2, r0
|
|
ldrh r1, [r4, 0x4]
|
|
ldr r0, _0805F1D4 @ =0xfffffc00
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r4, 0x4]
|
|
_0805F152:
|
|
ldrb r1, [r5, 0xC]
|
|
lsls r1, 25
|
|
lsrs r1, 31
|
|
lsls r1, 4
|
|
ldrb r2, [r6, 0x1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r6, 0x1]
|
|
mov r2, sp
|
|
ldrb r2, [r2]
|
|
strb r2, [r6, 0x5]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r6, r2]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
bl sub_8063B1C
|
|
ldrh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, r4, 0
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
ldrh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r2, r4, 0
|
|
adds r2, 0x29
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x20]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r1, 0x10
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrb r0, [r6, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _0805F1BA
|
|
bl CameraObjectReset1
|
|
_0805F1BA:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F1CC: .4byte gSprites
|
|
_0805F1D0: .4byte 0x000003ff
|
|
_0805F1D4: .4byte 0xfffffc00
|
|
thumb_func_end EventObjectSetGraphicsId
|
|
|
|
thumb_func_start FieldObjectSetGraphicsIdByLocalIdAndMap
|
|
FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F20C
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F214 @ =gMapObjects
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl EventObjectSetGraphicsId
|
|
_0805F20C:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F214: .4byte gMapObjects
|
|
thumb_func_end FieldObjectSetGraphicsIdByLocalIdAndMap
|
|
|
|
thumb_func_start FieldObjectTurn
|
|
FieldObjectTurn: @ 805F218
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl FieldObjectSetDirection
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0805F25E
|
|
ldrb r0, [r6, 0x4]
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r5, _0805F264 @ =gSprites
|
|
adds r4, r5
|
|
ldrb r0, [r6, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldrb r1, [r6, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl SeekSpriteAnim
|
|
_0805F25E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F264: .4byte gSprites
|
|
thumb_func_end FieldObjectTurn
|
|
|
|
thumb_func_start FieldObjectTurnByLocalIdAndMap
|
|
FieldObjectTurnByLocalIdAndMap: @ 805F268
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F29C
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F2A4 @ =gMapObjects
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl FieldObjectTurn
|
|
_0805F29C:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F2A4: .4byte gMapObjects
|
|
thumb_func_end FieldObjectTurnByLocalIdAndMap
|
|
|
|
thumb_func_start PlayerObjectTurn
|
|
PlayerObjectTurn: @ 805F2A8
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0x5]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0805F2C4 @ =gMapObjects
|
|
adds r0, r2
|
|
bl FieldObjectTurn
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F2C4: .4byte gMapObjects
|
|
thumb_func_end PlayerObjectTurn
|
|
|
|
thumb_func_start GetFieldObjectGraphicsInfo
|
|
GetFieldObjectGraphicsInfo: @ 805F2C8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xEF
|
|
bls _0805F2E0
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl VarGetFieldObjectGraphicsId
|
|
adds r1, r0, 0
|
|
_0805F2E0:
|
|
cmp r1, 0x97
|
|
bls _0805F2E6
|
|
movs r1, 0x10
|
|
_0805F2E6:
|
|
ldr r0, _0805F2F4 @ =gUnknown_839FDB0
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805F2F4: .4byte gUnknown_839FDB0
|
|
thumb_func_end GetFieldObjectGraphicsInfo
|
|
|
|
thumb_func_start FieldObjectHandleDynamicGraphicsId
|
|
FieldObjectHandleDynamicGraphicsId: @ 805F2F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x5]
|
|
cmp r0, 0xEF
|
|
bls _0805F30E
|
|
adds r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl VarGetFieldObjectGraphicsId
|
|
strb r0, [r4, 0x5]
|
|
_0805F30E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectHandleDynamicGraphicsId
|
|
|
|
thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20
|
|
npc_by_local_id_and_map_set_field_1_bit_x20: @ 805F314
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F356
|
|
ldr r2, _0805F360 @ =gMapObjects
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
ands r2, r0
|
|
lsls r2, 5
|
|
ldrb r3, [r1, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x1]
|
|
_0805F356:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F360: .4byte gMapObjects
|
|
thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20
|
|
|
|
thumb_func_start FieldObjectGetLocalIdAndMap
|
|
FieldObjectGetLocalIdAndMap: @ 805F364
|
|
push {r4,lr}
|
|
ldrb r4, [r0, 0x8]
|
|
strb r4, [r1]
|
|
ldrb r1, [r0, 0x9]
|
|
strb r1, [r2]
|
|
ldrb r0, [r0, 0xA]
|
|
strb r0, [r3]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectGetLocalIdAndMap
|
|
|
|
thumb_func_start sub_805F378
|
|
sub_805F378: @ 805F378
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl GetFieldObjectIdByXY
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x10
|
|
beq _0805F3A0
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F3A4 @ =gMapObjects
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0805F3A0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F3A4: .4byte gMapObjects
|
|
thumb_func_end sub_805F378
|
|
|
|
thumb_func_start sub_805F3A8
|
|
sub_805F3A8: @ 805F3A8
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F3EE
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 3
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _0805F3F8 @ =gMapObjects
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F3FC @ =gSprites
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x3]
|
|
movs r3, 0x4
|
|
orrs r1, r3
|
|
strb r1, [r2, 0x3]
|
|
adds r0, 0x43
|
|
strb r4, [r0]
|
|
_0805F3EE:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F3F8: .4byte gMapObjects
|
|
_0805F3FC: .4byte gSprites
|
|
thumb_func_end sub_805F3A8
|
|
|
|
thumb_func_start sub_805F400
|
|
sub_805F400: @ 805F400
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F43C
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0805F444 @ =gMapObjects
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x3]
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
_0805F43C:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F444: .4byte gMapObjects
|
|
thumb_func_end sub_805F400
|
|
|
|
thumb_func_start sub_805F448
|
|
sub_805F448: @ 805F448
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x10]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 16
|
|
lsrs r5, r3, 16
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F48C
|
|
ldr r2, _0805F494 @ =gMapObjects
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F498 @ =gSprites
|
|
adds r0, r1
|
|
strh r5, [r0, 0x24]
|
|
strh r4, [r0, 0x26]
|
|
_0805F48C:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F494: .4byte gMapObjects
|
|
_0805F498: .4byte gSprites
|
|
thumb_func_end sub_805F448
|
|
|
|
thumb_func_start gpu_pal_allocator_reset__manage_upper_four
|
|
gpu_pal_allocator_reset__manage_upper_four: @ 805F49C
|
|
push {lr}
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _0805F4AC @ =gReservedSpritePaletteCount
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F4AC: .4byte gReservedSpritePaletteCount
|
|
thumb_func_end gpu_pal_allocator_reset__manage_upper_four
|
|
|
|
thumb_func_start sub_805F4B0
|
|
sub_805F4B0: @ 805F4B0
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FindFieldObjectPaletteIndexByTag
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, _0805F4D4 @ =0x000011ff
|
|
cmp r1, r0
|
|
beq _0805F4CE
|
|
lsls r0, r1, 3
|
|
ldr r1, _0805F4D8 @ =gUnknown_83A5158
|
|
adds r0, r1
|
|
bl sub_805F510
|
|
_0805F4CE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F4D4: .4byte 0x000011ff
|
|
_0805F4D8: .4byte gUnknown_83A5158
|
|
thumb_func_end sub_805F4B0
|
|
|
|
thumb_func_start sub_805F4DC
|
|
sub_805F4DC: @ 805F4DC
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
ldrh r0, [r5]
|
|
ldr r1, _0805F50C @ =0x000011ff
|
|
cmp r0, r1
|
|
beq _0805F506
|
|
adds r6, r1, 0
|
|
_0805F4EC:
|
|
lsls r0, r4, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
bl sub_805F4B0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _0805F4EC
|
|
_0805F506:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F50C: .4byte 0x000011ff
|
|
thumb_func_end sub_805F4DC
|
|
|
|
thumb_func_start sub_805F510
|
|
sub_805F510: @ 805F510
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x4]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _0805F52E
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805F530
|
|
_0805F52E:
|
|
movs r0, 0xFF
|
|
_0805F530:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805F510
|
|
|
|
thumb_func_start pal_patch_for_npc
|
|
pal_patch_for_npc: @ 805F538
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl FindFieldObjectPaletteIndexByTag
|
|
lsls r0, 24
|
|
ldr r1, _0805F570 @ =gUnknown_83A5158
|
|
lsrs r0, 21
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 20
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r1, r2
|
|
lsrs r1, 16
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
bl sub_8083598
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F570: .4byte gUnknown_83A5158
|
|
thumb_func_end pal_patch_for_npc
|
|
|
|
thumb_func_start pal_patch_for_npc_range
|
|
pal_patch_for_npc_range: @ 805F574
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
cmp r4, r6
|
|
bcs _0805F598
|
|
_0805F584:
|
|
ldrh r0, [r5]
|
|
adds r1, r4, 0
|
|
bl pal_patch_for_npc
|
|
adds r5, 0x2
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, r6
|
|
bcc _0805F584
|
|
_0805F598:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pal_patch_for_npc_range
|
|
|
|
thumb_func_start FindFieldObjectPaletteIndexByTag
|
|
FindFieldObjectPaletteIndexByTag: @ 805F5A0
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r2, 0
|
|
ldr r0, _0805F5C8 @ =gUnknown_83A5158
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r3, _0805F5CC @ =0x000011ff
|
|
adds r4, r0, 0
|
|
cmp r1, r3
|
|
beq _0805F5E0
|
|
adds r6, r4, 0
|
|
adds r1, r3, 0
|
|
_0805F5B8:
|
|
lsls r0, r2, 3
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r5
|
|
bne _0805F5D0
|
|
adds r0, r2, 0
|
|
b _0805F5E2
|
|
.align 2, 0
|
|
_0805F5C8: .4byte gUnknown_83A5158
|
|
_0805F5CC: .4byte 0x000011ff
|
|
_0805F5D0:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 3
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r1
|
|
bne _0805F5B8
|
|
_0805F5E0:
|
|
movs r0, 0xFF
|
|
_0805F5E2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FindFieldObjectPaletteIndexByTag
|
|
|
|
thumb_func_start npc_load_two_palettes__no_record
|
|
npc_load_two_palettes__no_record: @ 805F5E8
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl pal_patch_for_npc
|
|
movs r3, 0
|
|
ldr r1, _0805F630 @ =gUnknown_83A5208
|
|
ldrh r0, [r1]
|
|
ldr r2, _0805F634 @ =0x000011ff
|
|
cmp r0, r2
|
|
beq _0805F650
|
|
ldr r0, _0805F638 @ =gUnknown_835B934
|
|
adds r5, r0
|
|
adds r6, r2, 0
|
|
_0805F60C:
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0805F640
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
ldr r0, _0805F63C @ =gUnknown_2037098
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r5]
|
|
bl pal_patch_for_npc
|
|
b _0805F650
|
|
.align 2, 0
|
|
_0805F630: .4byte gUnknown_83A5208
|
|
_0805F634: .4byte 0x000011ff
|
|
_0805F638: .4byte gUnknown_835B934
|
|
_0805F63C: .4byte gUnknown_2037098
|
|
_0805F640:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _0805F60C
|
|
_0805F650:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_load_two_palettes__no_record
|
|
|
|
thumb_func_start npc_load_two_palettes__and_record
|
|
npc_load_two_palettes__and_record: @ 805F658
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, _0805F6A4 @ =gUnknown_203709A
|
|
strh r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl pal_patch_for_npc
|
|
movs r3, 0
|
|
ldr r1, _0805F6A8 @ =gUnknown_83A5278
|
|
ldrh r0, [r1]
|
|
ldr r2, _0805F6AC @ =0x000011ff
|
|
cmp r0, r2
|
|
beq _0805F6C8
|
|
ldr r0, _0805F6B0 @ =gUnknown_835B934
|
|
adds r5, r0
|
|
adds r6, r2, 0
|
|
_0805F680:
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0805F6B8
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
ldr r0, _0805F6B4 @ =gUnknown_2037098
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r5]
|
|
bl pal_patch_for_npc
|
|
b _0805F6C8
|
|
.align 2, 0
|
|
_0805F6A4: .4byte gUnknown_203709A
|
|
_0805F6A8: .4byte gUnknown_83A5278
|
|
_0805F6AC: .4byte 0x000011ff
|
|
_0805F6B0: .4byte gUnknown_835B934
|
|
_0805F6B4: .4byte gUnknown_2037098
|
|
_0805F6B8:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _0805F680
|
|
_0805F6C8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_load_two_palettes__and_record
|
|
|
|
thumb_func_start sub_805F6D0
|
|
sub_805F6D0: @ 805F6D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805F6DC @ =gUnknown_835B934
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805F6DC: .4byte gUnknown_835B934
|
|
thumb_func_end sub_805F6D0
|
|
|
|
thumb_func_start unref_sub_808EAC4
|
|
unref_sub_808EAC4: @ 805F6E0
|
|
push {r4,lr}
|
|
ldrh r3, [r0, 0x10]
|
|
strh r3, [r0, 0x14]
|
|
ldrh r4, [r0, 0x12]
|
|
strh r4, [r0, 0x16]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r1, r3
|
|
strh r1, [r0, 0x10]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r2, r4
|
|
strh r2, [r0, 0x12]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end unref_sub_808EAC4
|
|
|
|
thumb_func_start npc_coords_shift
|
|
npc_coords_shift: @ 805F700
|
|
ldrh r3, [r0, 0x10]
|
|
strh r3, [r0, 0x14]
|
|
ldrh r3, [r0, 0x12]
|
|
strh r3, [r0, 0x16]
|
|
strh r1, [r0, 0x10]
|
|
strh r2, [r0, 0x12]
|
|
bx lr
|
|
thumb_func_end npc_coords_shift
|
|
|
|
thumb_func_start npc_coords_set
|
|
npc_coords_set: @ 805F710
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
strh r1, [r0, 0x14]
|
|
strh r2, [r0, 0x16]
|
|
strh r1, [r0, 0x10]
|
|
strh r2, [r0, 0x12]
|
|
bx lr
|
|
thumb_func_end npc_coords_set
|
|
|
|
thumb_func_start sub_805F724
|
|
sub_805F724: @ 805F724
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
ldrb r1, [r6, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F7C0 @ =gSprites
|
|
adds r7, r0, r1
|
|
ldrb r0, [r6, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
mov r8, r0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl npc_coords_set
|
|
movs r1, 0x10
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r6, r2]
|
|
adds r2, r7, 0
|
|
adds r2, 0x20
|
|
adds r3, r7, 0
|
|
adds r3, 0x22
|
|
bl sub_8063B1C
|
|
mov r1, r8
|
|
ldrh r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r1, r7, 0
|
|
adds r1, 0x28
|
|
strb r0, [r1]
|
|
mov r2, r8
|
|
ldrh r0, [r2, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
negs r0, r0
|
|
adds r2, r7, 0
|
|
adds r2, 0x29
|
|
strb r0, [r2]
|
|
ldrh r0, [r7, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r7, 0x20]
|
|
ldrh r1, [r7, 0x22]
|
|
adds r1, 0x10
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r1
|
|
strh r0, [r7, 0x22]
|
|
adds r0, r6, 0
|
|
bl sub_805EFF4
|
|
ldrb r0, [r6, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _0805F7B6
|
|
bl CameraObjectReset1
|
|
_0805F7B6:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F7C0: .4byte gSprites
|
|
thumb_func_end sub_805F724
|
|
|
|
thumb_func_start sub_805F7C4
|
|
sub_805F7C4: @ 805F7C4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x10]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 16
|
|
lsrs r5, r3, 16
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805F80C
|
|
lsls r1, r5, 16
|
|
lsls r2, r4, 16
|
|
mov r0, sp
|
|
ldrb r3, [r0]
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r3, _0805F814 @ =gMapObjects
|
|
adds r0, r3
|
|
movs r3, 0xE0
|
|
lsls r3, 11
|
|
adds r1, r3
|
|
asrs r1, 16
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
bl sub_805F724
|
|
_0805F80C:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F814: .4byte gMapObjects
|
|
thumb_func_end sub_805F7C4
|
|
|
|
thumb_func_start npc_coords_shift_still
|
|
npc_coords_shift_still: @ 805F818
|
|
push {lr}
|
|
movs r2, 0x10
|
|
ldrsh r1, [r0, r2]
|
|
movs r3, 0x12
|
|
ldrsh r2, [r0, r3]
|
|
bl npc_coords_shift
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_coords_shift_still
|
|
|
|
thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
|
|
UpdateFieldObjectCoordsForCameraUpdate: @ 805F82C
|
|
push {r4,r5,lr}
|
|
ldr r2, _0805F88C @ =gCamera
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805F884
|
|
movs r3, 0
|
|
ldr r5, _0805F890 @ =gMapObjects
|
|
movs r0, 0x4
|
|
ldrsh r4, [r2, r0]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r2, r0]
|
|
_0805F846:
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r5
|
|
ldrb r0, [r2]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805F87A
|
|
ldrh r0, [r2, 0xC]
|
|
subs r0, r4
|
|
strh r0, [r2, 0xC]
|
|
ldrh r0, [r2, 0xE]
|
|
subs r0, r1
|
|
strh r0, [r2, 0xE]
|
|
ldrh r0, [r2, 0x10]
|
|
subs r0, r4
|
|
strh r0, [r2, 0x10]
|
|
ldrh r0, [r2, 0x12]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x12]
|
|
ldrh r0, [r2, 0x14]
|
|
subs r0, r4
|
|
strh r0, [r2, 0x14]
|
|
ldrh r0, [r2, 0x16]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x16]
|
|
_0805F87A:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bls _0805F846
|
|
_0805F884:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F88C: .4byte gCamera
|
|
_0805F890: .4byte gMapObjects
|
|
thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
|
|
|
|
thumb_func_start GetFieldObjectIdByXYZ
|
|
GetFieldObjectIdByXYZ: @ 805F894
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r4, 0
|
|
ldr r0, _0805F8E0 @ =gMapObjects
|
|
mov r8, r0
|
|
_0805F8AC:
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805F8E4
|
|
movs r2, 0x10
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r7
|
|
bne _0805F8E4
|
|
movs r2, 0x12
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r6
|
|
bne _0805F8E4
|
|
adds r0, r1, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectDoesZCoordMatch
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F8E4
|
|
adds r0, r4, 0
|
|
b _0805F8F0
|
|
.align 2, 0
|
|
_0805F8E0: .4byte gMapObjects
|
|
_0805F8E4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _0805F8AC
|
|
movs r0, 0x10
|
|
_0805F8F0:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByXYZ
|
|
|
|
thumb_func_start FieldObjectDoesZCoordMatch
|
|
FieldObjectDoesZCoordMatch: @ 805F8FC
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0xB]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0805F91C
|
|
cmp r1, 0
|
|
beq _0805F91C
|
|
lsls r0, r2, 28
|
|
lsrs r0, 28
|
|
cmp r0, r1
|
|
beq _0805F91C
|
|
movs r0, 0
|
|
b _0805F91E
|
|
_0805F91C:
|
|
movs r0, 0x1
|
|
_0805F91E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectDoesZCoordMatch
|
|
|
|
thumb_func_start UpdateFieldObjectsForCameraUpdate
|
|
UpdateFieldObjectsForCameraUpdate: @ 805F924
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
bl UpdateFieldObjectCoordsForCameraUpdate
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_805EC30
|
|
bl RemoveFieldObjectsOutsideView
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end UpdateFieldObjectsForCameraUpdate
|
|
|
|
thumb_func_start AddCameraObject
|
|
AddCameraObject: @ 805F950
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0805F98C @ =gUnknown_835B944
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0805F990 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r2, 0x3E
|
|
adds r2, r1
|
|
mov r12, r2
|
|
ldrb r2, [r2]
|
|
movs r3, 0x4
|
|
orrs r2, r3
|
|
mov r3, r12
|
|
strb r2, [r3]
|
|
strh r4, [r1, 0x2E]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805F98C: .4byte gUnknown_835B944
|
|
_0805F990: .4byte gSprites
|
|
thumb_func_end AddCameraObject
|
|
|
|
thumb_func_start ObjectCB_CameraObject
|
|
ObjectCB_CameraObject: @ 805F994
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
mov r2, sp
|
|
ldr r1, _0805F9B8 @ =gUnknown_835B95C
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
movs r2, 0x30
|
|
ldrsh r1, [r0, r2]
|
|
lsls r1, 2
|
|
add r1, sp
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F9B8: .4byte gUnknown_835B95C
|
|
thumb_func_end ObjectCB_CameraObject
|
|
|
|
thumb_func_start CameraObject_0
|
|
CameraObject_0: @ 805F9BC
|
|
push {lr}
|
|
ldr r3, _0805F9F4 @ =gSprites
|
|
movs r1, 0x2E
|
|
ldrsh r2, [r0, r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r1, [r1, 0x20]
|
|
strh r1, [r0, 0x20]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r1, [r1, 0x22]
|
|
strh r1, [r0, 0x22]
|
|
adds r3, r0, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r3]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x30]
|
|
bl CameraObject_1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F9F4: .4byte gSprites
|
|
thumb_func_end CameraObject_0
|
|
|
|
thumb_func_start CameraObject_1
|
|
CameraObject_1: @ 805F9F8
|
|
push {r4,r5,lr}
|
|
ldr r3, _0805FA2C @ =gSprites
|
|
movs r1, 0x2E
|
|
ldrsh r2, [r0, r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r3, [r1, 0x22]
|
|
ldrh r2, [r0, 0x20]
|
|
ldrh r4, [r1, 0x20]
|
|
movs r5, 0x20
|
|
ldrsh r1, [r1, r5]
|
|
subs r1, r2
|
|
strh r1, [r0, 0x32]
|
|
ldrh r2, [r0, 0x22]
|
|
lsls r1, r3, 16
|
|
asrs r1, 16
|
|
subs r1, r2
|
|
strh r1, [r0, 0x34]
|
|
strh r4, [r0, 0x20]
|
|
strh r3, [r0, 0x22]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FA2C: .4byte gSprites
|
|
thumb_func_end CameraObject_1
|
|
|
|
thumb_func_start CameraObject_2
|
|
CameraObject_2: @ 805FA30
|
|
push {r4,lr}
|
|
ldr r4, _0805FA5C @ =gSprites
|
|
movs r1, 0x2E
|
|
ldrsh r2, [r0, r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r1, [r1, 0x20]
|
|
movs r3, 0
|
|
strh r1, [r0, 0x20]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r1, [r1, 0x22]
|
|
strh r1, [r0, 0x22]
|
|
strh r3, [r0, 0x32]
|
|
strh r3, [r0, 0x34]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FA5C: .4byte gSprites
|
|
thumb_func_end CameraObject_2
|
|
|
|
thumb_func_start FindCameraObject
|
|
FindCameraObject: @ 805FA60
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
ldr r4, _0805FA8C @ =gSprites
|
|
adds r5, r4, 0
|
|
adds r5, 0x1C
|
|
_0805FA6A:
|
|
lsls r0, r3, 4
|
|
adds r0, r3
|
|
lsls r1, r0, 2
|
|
adds r2, r1, r4
|
|
adds r0, r2, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805FA94
|
|
adds r0, r1, r5
|
|
ldr r1, [r0]
|
|
ldr r0, _0805FA90 @ =ObjectCB_CameraObject
|
|
cmp r1, r0
|
|
bne _0805FA94
|
|
adds r0, r2, 0
|
|
b _0805FAA0
|
|
.align 2, 0
|
|
_0805FA8C: .4byte gSprites
|
|
_0805FA90: .4byte ObjectCB_CameraObject
|
|
_0805FA94:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3F
|
|
bls _0805FA6A
|
|
movs r0, 0
|
|
_0805FAA0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FindCameraObject
|
|
|
|
thumb_func_start CameraObjectReset1
|
|
CameraObjectReset1: @ 805FAA8
|
|
push {lr}
|
|
bl FindCameraObject
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _0805FAC0
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
ldr r1, [r2, 0x1C]
|
|
adds r0, r2, 0
|
|
bl _call_via_r1
|
|
_0805FAC0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CameraObjectReset1
|
|
|
|
thumb_func_start CameraObjectSetFollowedObjectId
|
|
CameraObjectSetFollowedObjectId: @ 805FAC4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl FindCameraObject
|
|
cmp r0, 0
|
|
beq _0805FAD8
|
|
strh r4, [r0, 0x2E]
|
|
bl CameraObjectReset1
|
|
_0805FAD8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CameraObjectSetFollowedObjectId
|
|
|
|
thumb_func_start CameraObjectGetFollowedObjectId
|
|
CameraObjectGetFollowedObjectId: @ 805FAE0
|
|
push {lr}
|
|
bl FindCameraObject
|
|
cmp r0, 0
|
|
beq _0805FAF2
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805FAF4
|
|
_0805FAF2:
|
|
movs r0, 0x40
|
|
_0805FAF4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CameraObjectGetFollowedObjectId
|
|
|
|
thumb_func_start CameraObjectReset2
|
|
CameraObjectReset2: @ 805FAF8
|
|
push {lr}
|
|
bl FindCameraObject
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x30]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CameraObjectReset2
|
|
|
|
thumb_func_start CopySprite
|
|
CopySprite: @ 805FB08
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r12, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
lsls r2, 16
|
|
lsrs r6, r2, 16
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
movs r5, 0
|
|
ldr r1, _0805FB50 @ =gSprites
|
|
_0805FB22:
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805FB54
|
|
adds r0, r4, 0
|
|
mov r1, r12
|
|
movs r2, 0x44
|
|
bl memcpy
|
|
mov r0, r8
|
|
strh r0, [r4, 0x20]
|
|
strh r6, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
strb r7, [r0]
|
|
b _0805FB5E
|
|
.align 2, 0
|
|
_0805FB50: .4byte gSprites
|
|
_0805FB54:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3F
|
|
bls _0805FB22
|
|
_0805FB5E:
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CopySprite
|
|
|
|
thumb_func_start obj_unfreeze
|
|
obj_unfreeze: @ 805FB6C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r12, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
lsls r2, 16
|
|
lsrs r6, r2, 16
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
movs r5, 0x3F
|
|
ldr r3, _0805FBC0 @ =gSprites
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
_0805FB8A:
|
|
lsls r0, r5, 16
|
|
asrs r1, r0, 16
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r0, r3
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805FBC4
|
|
adds r0, r4, 0
|
|
mov r1, r12
|
|
movs r2, 0x44
|
|
bl memcpy
|
|
mov r0, r8
|
|
strh r0, [r4, 0x20]
|
|
strh r6, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
strb r7, [r0]
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
b _0805FBD2
|
|
.align 2, 0
|
|
_0805FBC0: .4byte gSprites
|
|
_0805FBC4:
|
|
subs r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, r2
|
|
bgt _0805FB8A
|
|
movs r0, 0x40
|
|
_0805FBD2:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end obj_unfreeze
|
|
|
|
thumb_func_start FieldObjectSetDirection
|
|
FieldObjectSetDirection: @ 805FBDC
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
adds r4, r2, 0
|
|
ldrb r0, [r3, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
adds r1, r3, 0
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0x1]
|
|
lsls r0, 30
|
|
cmp r0, 0
|
|
blt _0805FC0C
|
|
movs r0, 0xF
|
|
adds r1, r2, 0
|
|
ands r1, r0
|
|
ldrb r2, [r3, 0x18]
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x18]
|
|
_0805FC0C:
|
|
lsls r2, r4, 4
|
|
ldrb r1, [r3, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r3, 0x18]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectSetDirection
|
|
|
|
thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap
|
|
GetFieldObjectScriptPointerByLocalIdAndMap: @ 805FC20
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl GetFieldObjectTemplateByLocalIdAndMap
|
|
ldr r0, [r0, 0x10]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap
|
|
|
|
thumb_func_start GetFieldObjectScriptPointerByFieldObjectId
|
|
GetFieldObjectScriptPointerByFieldObjectId: @ 805FC38
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FC58 @ =gMapObjects
|
|
lsls r2, r0, 3
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r0, [r2, 0x8]
|
|
ldrb r1, [r2, 0x9]
|
|
ldrb r2, [r2, 0xA]
|
|
bl GetFieldObjectScriptPointerByLocalIdAndMap
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805FC58: .4byte gMapObjects
|
|
thumb_func_end GetFieldObjectScriptPointerByFieldObjectId
|
|
|
|
thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap
|
|
GetFieldObjectFlagIdByLocalIdAndMap: @ 805FC5C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl GetFieldObjectTemplateByLocalIdAndMap
|
|
ldrh r0, [r0, 0x14]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap
|
|
|
|
thumb_func_start GetFieldObjectFlagIdByFieldObjectId
|
|
GetFieldObjectFlagIdByFieldObjectId: @ 805FC74
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FC98 @ =gMapObjects
|
|
lsls r2, r0, 3
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldrb r0, [r2, 0x8]
|
|
ldrb r1, [r2, 0x9]
|
|
ldrb r2, [r2, 0xA]
|
|
bl GetFieldObjectFlagIdByLocalIdAndMap
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805FC98: .4byte gMapObjects
|
|
thumb_func_end GetFieldObjectFlagIdByFieldObjectId
|
|
|
|
thumb_func_start sub_805FC9C
|
|
sub_805FC9C: @ 805FC9C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805FCD0
|
|
ldr r2, _0805FCCC @ =gMapObjects
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x7]
|
|
b _0805FCD2
|
|
.align 2, 0
|
|
_0805FCCC: .4byte gMapObjects
|
|
_0805FCD0:
|
|
movs r0, 0xFF
|
|
_0805FCD2:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FC9C
|
|
|
|
thumb_func_start sub_805FCD8
|
|
sub_805FCD8: @ 805FCD8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl GetFieldObjectTemplateByLocalIdAndMap
|
|
ldrh r0, [r0, 0xC]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FCD8
|
|
|
|
thumb_func_start sub_805FCF0
|
|
sub_805FCF0: @ 805FCF0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0805FD04 @ =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x7]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD04: .4byte gMapObjects
|
|
thumb_func_end sub_805FCF0
|
|
|
|
thumb_func_start sub_805FD08
|
|
sub_805FD08: @ 805FD08
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805FD3C
|
|
ldr r2, _0805FD38 @ =gMapObjects
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1D]
|
|
b _0805FD3E
|
|
.align 2, 0
|
|
_0805FD38: .4byte gMapObjects
|
|
_0805FD3C:
|
|
movs r0, 0xFF
|
|
_0805FD3E:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FD08
|
|
|
|
thumb_func_start FieldObjectGetBerryTreeId
|
|
FieldObjectGetBerryTreeId: @ 805FD44
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0805FD58 @ =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x1D]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD58: .4byte gMapObjects
|
|
thumb_func_end FieldObjectGetBerryTreeId
|
|
|
|
thumb_func_start GetFieldObjectTemplateByLocalIdAndMap
|
|
GetFieldObjectTemplateByLocalIdAndMap: @ 805FD5C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _0805FD8C @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r3
|
|
bne _0805FD94
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r2
|
|
bne _0805FD94
|
|
movs r0, 0x8E
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r0, _0805FD90 @ =gMapHeader
|
|
ldr r0, [r0, 0x4]
|
|
b _0805FDA0
|
|
.align 2, 0
|
|
_0805FD8C: .4byte gSaveBlock1Ptr
|
|
_0805FD90: .4byte gMapHeader
|
|
_0805FD94:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl get_mapheader_by_bank_and_number
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r0, 0x4]
|
|
_0805FDA0:
|
|
ldrb r2, [r0]
|
|
adds r0, r4, 0
|
|
bl FindFieldObjectTemplateInArrayByLocalId
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectTemplateByLocalIdAndMap
|
|
|
|
thumb_func_start FindFieldObjectTemplateInArrayByLocalId
|
|
FindFieldObjectTemplateInArrayByLocalId: @ 805FDB0
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bcs _0805FDDE
|
|
_0805FDC2:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r3, r0, r5
|
|
ldrb r0, [r3]
|
|
cmp r0, r4
|
|
bne _0805FDD4
|
|
adds r0, r3, 0
|
|
b _0805FDE0
|
|
_0805FDD4:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r2
|
|
bcc _0805FDC2
|
|
_0805FDDE:
|
|
movs r0, 0
|
|
_0805FDE0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FindFieldObjectTemplateInArrayByLocalId
|
|
|
|
thumb_func_start sub_805FDE8
|
|
sub_805FDE8: @ 805FDE8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x9]
|
|
ldr r1, _0805FE0C @ =gSaveBlock1Ptr
|
|
ldr r2, [r1]
|
|
movs r1, 0x5
|
|
ldrsb r1, [r2, r1]
|
|
cmp r0, r1
|
|
bne _0805FE50
|
|
ldrb r1, [r4, 0xA]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r2, r0]
|
|
cmp r1, r0
|
|
beq _0805FE18
|
|
b _0805FE50
|
|
.align 2, 0
|
|
_0805FE0C: .4byte gSaveBlock1Ptr
|
|
_0805FE10:
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
adds r0, r3, r0
|
|
b _0805FE52
|
|
_0805FE18:
|
|
movs r6, 0
|
|
adds r3, r2, 0
|
|
movs r0, 0x8E
|
|
lsls r0, 4
|
|
mov r8, r0
|
|
ldrb r0, [r4, 0x8]
|
|
mov r12, r0
|
|
mov r0, r8
|
|
adds r2, r3, r0
|
|
movs r5, 0
|
|
adds r7, r1, 0
|
|
_0805FE2E:
|
|
ldrb r1, [r2]
|
|
cmp r12, r1
|
|
bne _0805FE46
|
|
ldrb r1, [r4, 0x9]
|
|
movs r0, 0x5
|
|
ldrsb r0, [r3, r0]
|
|
cmp r1, r0
|
|
bne _0805FE46
|
|
movs r0, 0x4
|
|
ldrsb r0, [r3, r0]
|
|
cmp r7, r0
|
|
beq _0805FE10
|
|
_0805FE46:
|
|
adds r2, 0x18
|
|
adds r5, 0x18
|
|
adds r6, 0x1
|
|
cmp r6, 0x3F
|
|
ble _0805FE2E
|
|
_0805FE50:
|
|
movs r0, 0
|
|
_0805FE52:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FDE8
|
|
|
|
thumb_func_start sub_805FE5C
|
|
sub_805FE5C: @ 805FE5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_805FDE8
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _0805FE76
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x7
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r4, 0x12]
|
|
subs r0, 0x7
|
|
strh r0, [r1, 0x6]
|
|
_0805FE76:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805FE5C
|
|
|
|
thumb_func_start sub_805FE7C
|
|
sub_805FE7C: @ 805FE7C
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl sub_805FDE8
|
|
cmp r0, 0
|
|
beq _0805FE8C
|
|
strb r4, [r0, 0x9]
|
|
_0805FE8C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805FE7C
|
|
|
|
thumb_func_start sub_805FE94
|
|
sub_805FE94: @ 805FE94
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805FEC2
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805FEC8 @ =gMapObjects
|
|
adds r0, r1
|
|
bl sub_805FE5C
|
|
_0805FEC2:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FEC8: .4byte gMapObjects
|
|
thumb_func_end sub_805FE94
|
|
|
|
thumb_func_start npc_paltag_set_load
|
|
npc_paltag_set_load: @ 805FECC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl gpu_pal_allocator_reset__manage_upper_four
|
|
ldr r1, _0805FF04 @ =gUnknown_203709A
|
|
ldr r2, _0805FF08 @ =0x000011ff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r2, _0805FF0C @ =gUnknown_2037098
|
|
strb r4, [r2]
|
|
cmp r4, 0x1
|
|
bne _0805FF18
|
|
ldr r1, _0805FF10 @ =gUnknown_83A5330
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0x6
|
|
bl pal_patch_for_npc_range
|
|
ldr r1, _0805FF14 @ =gReservedSpritePaletteCount
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
b _0805FF2A
|
|
.align 2, 0
|
|
_0805FF04: .4byte gUnknown_203709A
|
|
_0805FF08: .4byte 0x000011ff
|
|
_0805FF0C: .4byte gUnknown_2037098
|
|
_0805FF10: .4byte gUnknown_83A5330
|
|
_0805FF14: .4byte gReservedSpritePaletteCount
|
|
_0805FF18:
|
|
ldr r0, _0805FF30 @ =gUnknown_83A5330
|
|
ldrb r1, [r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
bl pal_patch_for_npc_range
|
|
_0805FF2A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FF30: .4byte gUnknown_83A5330
|
|
thumb_func_end npc_paltag_set_load
|
|
|
|
thumb_func_start npc_paltag_by_palslot
|
|
npc_paltag_by_palslot: @ 805FF34
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x9
|
|
bhi _0805FF70
|
|
ldr r1, _0805FF50 @ =gUnknown_83A5330
|
|
ldr r0, _0805FF54 @ =gUnknown_2037098
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 1
|
|
b _0805FF64
|
|
.align 2, 0
|
|
_0805FF50: .4byte gUnknown_83A5330
|
|
_0805FF54: .4byte gUnknown_2037098
|
|
_0805FF58:
|
|
adds r1, r4, 0x4
|
|
adds r1, r2, r1
|
|
ldr r0, _0805FF6C @ =gUnknown_2037098
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
_0805FF64:
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
b _0805FFA2
|
|
.align 2, 0
|
|
_0805FF6C: .4byte gUnknown_2037098
|
|
_0805FF70:
|
|
movs r3, 0
|
|
ldr r0, _0805FFA8 @ =gUnknown_83A5278
|
|
ldrh r1, [r0]
|
|
ldr r2, _0805FFAC @ =0x000011ff
|
|
adds r4, r0, 0
|
|
cmp r1, r2
|
|
beq _0805FFA0
|
|
adds r6, r4, 0
|
|
ldr r0, _0805FFB0 @ =gUnknown_203709A
|
|
ldrh r1, [r0]
|
|
adds r5, r2, 0
|
|
_0805FF86:
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r6
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
beq _0805FF58
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 3
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, r5
|
|
bne _0805FF86
|
|
_0805FFA0:
|
|
ldr r0, _0805FFAC @ =0x000011ff
|
|
_0805FFA2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805FFA8: .4byte gUnknown_83A5278
|
|
_0805FFAC: .4byte 0x000011ff
|
|
_0805FFB0: .4byte gUnknown_203709A
|
|
thumb_func_end npc_paltag_by_palslot
|
|
|
|
thumb_func_start sub_805FFB4
|
|
sub_805FFB4: @ 805FFB4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0805FFD0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805FFD4 @ =sub_805FFD8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FFD0: .4byte gMapObjects
|
|
_0805FFD4: .4byte sub_805FFD8
|
|
thumb_func_end sub_805FFB4
|
|
|
|
thumb_func_start sub_805FFD8
|
|
sub_805FFD8: @ 805FFD8
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_805FFD8
|
|
|
|
thumb_func_start sub_805FFDC
|
|
sub_805FFDC: @ 805FFDC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0805FFF8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805FFFC @ =sub_8060000
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FFF8: .4byte gMapObjects
|
|
_0805FFFC: .4byte sub_8060000
|
|
thumb_func_end sub_805FFDC
|
|
|
|
thumb_func_start sub_8060000
|
|
sub_8060000: @ 8060000
|
|
push {r4,lr}
|
|
ldr r3, _0806001C @ =gUnknown_83A6018
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806001C: .4byte gUnknown_83A6018
|
|
thumb_func_end sub_8060000
|
|
|
|
thumb_func_start sub_8060020
|
|
sub_8060020: @ 8060020
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806003C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060040 @ =sub_8060044
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806003C: .4byte gMapObjects
|
|
_08060040: .4byte sub_8060044
|
|
thumb_func_end sub_8060020
|
|
|
|
thumb_func_start sub_8060044
|
|
sub_8060044: @ 8060044
|
|
push {r4,lr}
|
|
ldr r3, _08060060 @ =gUnknown_83A6034
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060060: .4byte gUnknown_83A6034
|
|
thumb_func_end sub_8060044
|
|
|
|
thumb_func_start sub_8060064
|
|
sub_8060064: @ 8060064
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060064
|
|
|
|
thumb_func_start sub_8060078
|
|
sub_8060078: @ 8060078
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060078
|
|
|
|
thumb_func_start sub_80600A4
|
|
sub_80600A4: @ 80600A4
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080600D8
|
|
ldr r5, _080600D4 @ =gUnknown_83A6000
|
|
bl Random
|
|
movs r4, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r6, 0
|
|
bl SetFieldObjectStepTimer
|
|
strh r4, [r6, 0x30]
|
|
movs r0, 0x1
|
|
b _080600DA
|
|
.align 2, 0
|
|
_080600D4: .4byte gUnknown_83A6000
|
|
_080600D8:
|
|
movs r0, 0
|
|
_080600DA:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80600A4
|
|
|
|
thumb_func_start sub_80600E0
|
|
sub_80600E0: @ 80600E0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080600F4
|
|
movs r0, 0
|
|
b _080600FA
|
|
_080600F4:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_080600FA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80600E0
|
|
|
|
thumb_func_start sub_8060100
|
|
sub_8060100: @ 8060100
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r1, _08060148 @ =gUnknown_83A6050
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x5
|
|
strh r0, [r6, 0x30]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806013E
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x30]
|
|
_0806013E:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060148: .4byte gUnknown_83A6050
|
|
thumb_func_end sub_8060100
|
|
|
|
thumb_func_start sub_806014C
|
|
sub_806014C: @ 806014C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806014C
|
|
|
|
thumb_func_start sub_806017C
|
|
sub_806017C: @ 806017C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F2C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806017C
|
|
|
|
thumb_func_start sub_80601AC
|
|
sub_80601AC: @ 80601AC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080601CA
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_080601CA:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80601AC
|
|
|
|
thumb_func_start FieldObjectIsTrainerAndCloseToPlayer
|
|
FieldObjectIsTrainerAndCloseToPlayer: @ 80601D4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r0, 0x80
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060240
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0x1
|
|
beq _080601F0
|
|
cmp r0, 0x3
|
|
bne _08060240
|
|
_080601F0:
|
|
mov r7, sp
|
|
adds r7, 0x2
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
bl PlayerGetDestCoords
|
|
ldrh r2, [r5, 0x10]
|
|
ldrh r4, [r5, 0x12]
|
|
ldrb r1, [r5, 0x1D]
|
|
subs r3, r2, r1
|
|
subs r0, r4, r1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r2, r1, r2
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
adds r1, r4
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
mov r0, sp
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
movs r1, 0
|
|
ldrsh r4, [r0, r1]
|
|
cmp r3, r4
|
|
bgt _08060240
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, r4
|
|
blt _08060240
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
movs r2, 0
|
|
ldrsh r1, [r7, r2]
|
|
cmp r0, r1
|
|
bgt _08060240
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
bge _08060244
|
|
_08060240:
|
|
movs r0, 0
|
|
b _08060246
|
|
_08060244:
|
|
movs r0, 0x1
|
|
_08060246:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectIsTrainerAndCloseToPlayer
|
|
|
|
thumb_func_start GetRegularRunningPastFacingDirection
|
|
GetRegularRunningPastFacingDirection: @ 8060250
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 16
|
|
lsrs r0, r1, 16
|
|
lsls r2, 16
|
|
lsls r3, 16
|
|
cmp r2, r3
|
|
ble _0806026E
|
|
movs r2, 0x4
|
|
lsls r0, r4, 16
|
|
cmp r0, 0
|
|
bge _08060278
|
|
movs r2, 0x3
|
|
b _08060278
|
|
_0806026E:
|
|
movs r2, 0x1
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _08060278
|
|
movs r2, 0x2
|
|
_08060278:
|
|
adds r0, r2, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetRegularRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNorthSouthRunningPastFacingDirection
|
|
GetNorthSouthRunningPastFacingDirection: @ 8060280
|
|
push {lr}
|
|
movs r0, 0x1
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bge _0806028C
|
|
movs r0, 0x2
|
|
_0806028C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNorthSouthRunningPastFacingDirection
|
|
|
|
thumb_func_start GetEastWestRunningPastFacingDirection
|
|
GetEastWestRunningPastFacingDirection: @ 8060290
|
|
push {lr}
|
|
movs r1, 0x4
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0806029C
|
|
movs r1, 0x3
|
|
_0806029C:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetEastWestRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNorthEastRunningPastFacingDirection
|
|
GetNorthEastRunningPastFacingDirection: @ 80602A4
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
lsls r2, 16
|
|
asrs r6, r2, 16
|
|
lsls r3, 16
|
|
asrs r7, r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080602E0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetEastWestRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080602FA
|
|
b _080602F8
|
|
_080602E0:
|
|
cmp r0, 0x4
|
|
bne _080602FA
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetNorthSouthRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080602FA
|
|
_080602F8:
|
|
movs r0, 0x2
|
|
_080602FA:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNorthEastRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNorthWestRunningPastFacingDirection
|
|
GetNorthWestRunningPastFacingDirection: @ 8060300
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
lsls r2, 16
|
|
asrs r6, r2, 16
|
|
lsls r3, 16
|
|
asrs r7, r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806033C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetEastWestRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _08060356
|
|
b _08060354
|
|
_0806033C:
|
|
cmp r0, 0x3
|
|
bne _08060356
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetNorthSouthRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08060356
|
|
_08060354:
|
|
movs r0, 0x2
|
|
_08060356:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNorthWestRunningPastFacingDirection
|
|
|
|
thumb_func_start GetSouthEastRunningPastFacingDirection
|
|
GetSouthEastRunningPastFacingDirection: @ 806035C
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
lsls r2, 16
|
|
asrs r6, r2, 16
|
|
lsls r3, 16
|
|
asrs r7, r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08060398
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetEastWestRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080603B2
|
|
b _080603B0
|
|
_08060398:
|
|
cmp r0, 0x4
|
|
bne _080603B2
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetNorthSouthRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080603B2
|
|
_080603B0:
|
|
movs r0, 0x1
|
|
_080603B2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetSouthEastRunningPastFacingDirection
|
|
|
|
thumb_func_start GetSouthWestRunningPastFacingDirection
|
|
GetSouthWestRunningPastFacingDirection: @ 80603B8
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
lsls r2, 16
|
|
asrs r6, r2, 16
|
|
lsls r3, 16
|
|
asrs r7, r3, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080603F4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetEastWestRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0806040E
|
|
b _0806040C
|
|
_080603F4:
|
|
cmp r0, 0x3
|
|
bne _0806040E
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl GetNorthSouthRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0806040E
|
|
_0806040C:
|
|
movs r0, 0x1
|
|
_0806040E:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetSouthWestRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNonEastRunningPastFacingDirection
|
|
GetNonEastRunningPastFacingDirection: @ 8060414
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
lsls r2, 16
|
|
asrs r5, r2, 16
|
|
lsls r3, 16
|
|
asrs r4, r3, 16
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _0806044A
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetNorthSouthRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0806044A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNonEastRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNonWestRunningPastFacingDirection
|
|
GetNonWestRunningPastFacingDirection: @ 8060450
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
lsls r2, 16
|
|
asrs r5, r2, 16
|
|
lsls r3, 16
|
|
asrs r4, r3, 16
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _08060486
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetNorthSouthRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08060486:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNonWestRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNonSouthRunningPastFacingDirection
|
|
GetNonSouthRunningPastFacingDirection: @ 806048C
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
lsls r2, 16
|
|
asrs r5, r2, 16
|
|
lsls r3, 16
|
|
asrs r4, r3, 16
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080604C2
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetEastWestRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080604C2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNonSouthRunningPastFacingDirection
|
|
|
|
thumb_func_start GetNonNorthRunningPastFacingDirection
|
|
GetNonNorthRunningPastFacingDirection: @ 80604C8
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
lsls r2, 16
|
|
asrs r5, r2, 16
|
|
lsls r3, 16
|
|
asrs r4, r3, 16
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetRegularRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080604FE
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GetEastWestRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080604FE:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetNonNorthRunningPastFacingDirection
|
|
|
|
thumb_func_start GetRunningPastFacingDirection
|
|
GetRunningPastFacingDirection: @ 8060504
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806051C
|
|
movs r0, 0
|
|
b _08060580
|
|
_0806051C:
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl PlayerGetDestCoords
|
|
mov r2, sp
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x10]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x12]
|
|
subs r0, r1
|
|
strh r0, [r5]
|
|
mov r0, sp
|
|
ldrh r3, [r5]
|
|
ldrh r2, [r0]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _08060550
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
_08060550:
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0806055E
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
_0806055E:
|
|
ldr r0, _08060588 @ =gUnknown_83A6054
|
|
lsls r4, r6, 2
|
|
adds r4, r0
|
|
mov r0, sp
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
movs r6, 0
|
|
ldrsh r1, [r5, r6]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
ldr r4, [r4]
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08060580:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060588: .4byte gUnknown_83A6054
|
|
thumb_func_end GetRunningPastFacingDirection
|
|
|
|
thumb_func_start sub_806058C
|
|
sub_806058C: @ 806058C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080605A8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080605AC @ =sub_80605B0
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080605A8: .4byte gMapObjects
|
|
_080605AC: .4byte sub_80605B0
|
|
thumb_func_end sub_806058C
|
|
|
|
thumb_func_start sub_80605B0
|
|
sub_80605B0: @ 80605B0
|
|
push {r4,lr}
|
|
ldr r3, _080605CC @ =gUnknown_83A6080
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080605CC: .4byte gUnknown_83A6080
|
|
thumb_func_end sub_80605B0
|
|
|
|
thumb_func_start sub_80605D0
|
|
sub_80605D0: @ 80605D0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80605D0
|
|
|
|
thumb_func_start sub_80605E4
|
|
sub_80605E4: @ 80605E4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80605E4
|
|
|
|
thumb_func_start sub_8060610
|
|
sub_8060610: @ 8060610
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060646
|
|
ldr r4, _08060650 @ =gUnknown_83A6000
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_08060646:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060650: .4byte gUnknown_83A6000
|
|
thumb_func_end sub_8060610
|
|
|
|
thumb_func_start sub_8060654
|
|
sub_8060654: @ 8060654
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060672
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806067A
|
|
_08060672:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0806067C
|
|
_0806067A:
|
|
movs r0, 0
|
|
_0806067C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060654
|
|
|
|
thumb_func_start sub_8060684
|
|
sub_8060684: @ 8060684
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080606C8 @ =gUnknown_83A6050
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080606B4
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_080606B4:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080606C8: .4byte gUnknown_83A6050
|
|
thumb_func_end sub_8060684
|
|
|
|
thumb_func_start sub_80606CC
|
|
sub_80606CC: @ 80606CC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080606E8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080606EC @ =sub_80606F0
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080606E8: .4byte gMapObjects
|
|
_080606EC: .4byte sub_80606F0
|
|
thumb_func_end sub_80606CC
|
|
|
|
thumb_func_start sub_80606F0
|
|
sub_80606F0: @ 80606F0
|
|
push {r4,lr}
|
|
ldr r3, _0806070C @ =gUnknown_83A6094
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806070C: .4byte gUnknown_83A6094
|
|
thumb_func_end sub_80606F0
|
|
|
|
thumb_func_start sub_8060710
|
|
sub_8060710: @ 8060710
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060710
|
|
|
|
thumb_func_start sub_8060724
|
|
sub_8060724: @ 8060724
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060724
|
|
|
|
thumb_func_start sub_8060750
|
|
sub_8060750: @ 8060750
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060784
|
|
ldr r5, _08060780 @ =gUnknown_83A6000
|
|
bl Random
|
|
movs r4, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r6, 0
|
|
bl SetFieldObjectStepTimer
|
|
strh r4, [r6, 0x30]
|
|
movs r0, 0x1
|
|
b _08060786
|
|
.align 2, 0
|
|
_08060780: .4byte gUnknown_83A6000
|
|
_08060784:
|
|
movs r0, 0
|
|
_08060786:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060750
|
|
|
|
thumb_func_start sub_806078C
|
|
sub_806078C: @ 806078C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080607A0
|
|
movs r0, 0
|
|
b _080607A6
|
|
_080607A0:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_080607A6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806078C
|
|
|
|
thumb_func_start sub_80607AC
|
|
sub_80607AC: @ 80607AC
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r1, _080607F4 @ =gUnknown_83A60B0
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
bl Random
|
|
movs r7, 0x1
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x5
|
|
strh r0, [r6, 0x30]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080607EA
|
|
strh r7, [r6, 0x30]
|
|
_080607EA:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080607F4: .4byte gUnknown_83A60B0
|
|
thumb_func_end sub_80607AC
|
|
|
|
thumb_func_start sub_80607F8
|
|
sub_80607F8: @ 80607F8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80607F8
|
|
|
|
thumb_func_start sub_8060828
|
|
sub_8060828: @ 8060828
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060846
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_08060846:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060828
|
|
|
|
thumb_func_start sub_8060850
|
|
sub_8060850: @ 8060850
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806086C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060870 @ =sub_8060874
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806086C: .4byte gMapObjects
|
|
_08060870: .4byte sub_8060874
|
|
thumb_func_end sub_8060850
|
|
|
|
thumb_func_start sub_8060874
|
|
sub_8060874: @ 8060874
|
|
push {r4,lr}
|
|
ldr r3, _08060890 @ =gUnknown_83A60B4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060890: .4byte gUnknown_83A60B4
|
|
thumb_func_end sub_8060874
|
|
|
|
thumb_func_start sub_8060894
|
|
sub_8060894: @ 8060894
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060894
|
|
|
|
thumb_func_start sub_80608A8
|
|
sub_80608A8: @ 80608A8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80608A8
|
|
|
|
thumb_func_start sub_80608D4
|
|
sub_80608D4: @ 80608D4
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060908
|
|
ldr r5, _08060904 @ =gUnknown_83A6000
|
|
bl Random
|
|
movs r4, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r6, 0
|
|
bl SetFieldObjectStepTimer
|
|
strh r4, [r6, 0x30]
|
|
movs r0, 0x1
|
|
b _0806090A
|
|
.align 2, 0
|
|
_08060904: .4byte gUnknown_83A6000
|
|
_08060908:
|
|
movs r0, 0
|
|
_0806090A:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80608D4
|
|
|
|
thumb_func_start sub_8060910
|
|
sub_8060910: @ 8060910
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060924
|
|
movs r0, 0
|
|
b _0806092A
|
|
_08060924:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0806092A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060910
|
|
|
|
thumb_func_start sub_8060930
|
|
sub_8060930: @ 8060930
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r1, _08060978 @ =gUnknown_83A60D0
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
bl Random
|
|
movs r7, 0x1
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x5
|
|
strh r0, [r6, 0x30]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806096E
|
|
strh r7, [r6, 0x30]
|
|
_0806096E:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060978: .4byte gUnknown_83A60D0
|
|
thumb_func_end sub_8060930
|
|
|
|
thumb_func_start sub_806097C
|
|
sub_806097C: @ 806097C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806097C
|
|
|
|
thumb_func_start sub_80609AC
|
|
sub_80609AC: @ 80609AC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080609CA
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_080609CA:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80609AC
|
|
|
|
thumb_func_start sub_80609D4
|
|
sub_80609D4: @ 80609D4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080609F0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080609F4 @ =sub_80609F8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080609F0: .4byte gMapObjects
|
|
_080609F4: .4byte sub_80609F8
|
|
thumb_func_end sub_80609D4
|
|
|
|
thumb_func_start sub_80609F8
|
|
sub_80609F8: @ 80609F8
|
|
push {r4,lr}
|
|
ldr r3, _08060A14 @ =gUnknown_83A60D4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060A14: .4byte gUnknown_83A60D4
|
|
thumb_func_end sub_80609F8
|
|
|
|
thumb_func_start sub_8060A18
|
|
sub_8060A18: @ 8060A18
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060A18
|
|
|
|
thumb_func_start sub_8060A44
|
|
sub_8060A44: @ 8060A44
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060A56
|
|
movs r0, 0
|
|
b _08060A5C
|
|
_08060A56:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_08060A5C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060A44
|
|
|
|
thumb_func_start sub_8060A64
|
|
sub_8060A64: @ 8060A64
|
|
ldrb r2, [r0]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8060A64
|
|
|
|
thumb_func_start sub_8060A74
|
|
sub_8060A74: @ 8060A74
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08060A90 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060A94 @ =sub_8060A98
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060A90: .4byte gMapObjects
|
|
_08060A94: .4byte sub_8060A98
|
|
thumb_func_end sub_8060A74
|
|
|
|
thumb_func_start sub_8060A98
|
|
sub_8060A98: @ 8060A98
|
|
push {r4,lr}
|
|
ldr r3, _08060AB4 @ =gUnknown_83A60E0
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060AB4: .4byte gUnknown_83A60E0
|
|
thumb_func_end sub_8060A98
|
|
|
|
thumb_func_start sub_8060AB8
|
|
sub_8060AB8: @ 8060AB8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060AB8
|
|
|
|
thumb_func_start sub_8060ACC
|
|
sub_8060ACC: @ 8060ACC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060ACC
|
|
|
|
thumb_func_start sub_8060AF8
|
|
sub_8060AF8: @ 8060AF8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060B2E
|
|
ldr r4, _08060B38 @ =gUnknown_83A6000
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_08060B2E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060B38: .4byte gUnknown_83A6000
|
|
thumb_func_end sub_8060AF8
|
|
|
|
thumb_func_start sub_8060B3C
|
|
sub_8060B3C: @ 8060B3C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060B5A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060B62
|
|
_08060B5A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08060B64
|
|
_08060B62:
|
|
movs r0, 0
|
|
_08060B64:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060B3C
|
|
|
|
thumb_func_start sub_8060B6C
|
|
sub_8060B6C: @ 8060B6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08060BB0 @ =gUnknown_83A60B0
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08060B9C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_08060B9C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060BB0: .4byte gUnknown_83A60B0
|
|
thumb_func_end sub_8060B6C
|
|
|
|
thumb_func_start sub_8060BB4
|
|
sub_8060BB4: @ 8060BB4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08060BD0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060BD4 @ =sub_8060BD8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060BD0: .4byte gMapObjects
|
|
_08060BD4: .4byte sub_8060BD8
|
|
thumb_func_end sub_8060BB4
|
|
|
|
thumb_func_start sub_8060BD8
|
|
sub_8060BD8: @ 8060BD8
|
|
push {r4,lr}
|
|
ldr r3, _08060BF4 @ =gUnknown_83A60F4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060BF4: .4byte gUnknown_83A60F4
|
|
thumb_func_end sub_8060BD8
|
|
|
|
thumb_func_start sub_8060BF8
|
|
sub_8060BF8: @ 8060BF8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060BF8
|
|
|
|
thumb_func_start sub_8060C0C
|
|
sub_8060C0C: @ 8060C0C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060C0C
|
|
|
|
thumb_func_start sub_8060C38
|
|
sub_8060C38: @ 8060C38
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060C6E
|
|
ldr r4, _08060C78 @ =gUnknown_83A6000
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_08060C6E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060C78: .4byte gUnknown_83A6000
|
|
thumb_func_end sub_8060C38
|
|
|
|
thumb_func_start sub_8060C7C
|
|
sub_8060C7C: @ 8060C7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060C9A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060CA2
|
|
_08060C9A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08060CA4
|
|
_08060CA2:
|
|
movs r0, 0
|
|
_08060CA4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060C7C
|
|
|
|
thumb_func_start sub_8060CAC
|
|
sub_8060CAC: @ 8060CAC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08060CF0 @ =gUnknown_83A60D0
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08060CDC
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_08060CDC:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060CF0: .4byte gUnknown_83A60D0
|
|
thumb_func_end sub_8060CAC
|
|
|
|
thumb_func_start sub_8060CF4
|
|
sub_8060CF4: @ 8060CF4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08060D10 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060D14 @ =sub_8060D18
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060D10: .4byte gMapObjects
|
|
_08060D14: .4byte sub_8060D18
|
|
thumb_func_end sub_8060CF4
|
|
|
|
thumb_func_start sub_8060D18
|
|
sub_8060D18: @ 8060D18
|
|
push {r4,lr}
|
|
ldr r3, _08060D34 @ =gUnknown_83A6108
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060D34: .4byte gUnknown_83A6108
|
|
thumb_func_end sub_8060D18
|
|
|
|
thumb_func_start sub_8060D38
|
|
sub_8060D38: @ 8060D38
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060D38
|
|
|
|
thumb_func_start sub_8060D4C
|
|
sub_8060D4C: @ 8060D4C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060D4C
|
|
|
|
thumb_func_start sub_8060D78
|
|
sub_8060D78: @ 8060D78
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060DAE
|
|
ldr r4, _08060DB8 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_08060DAE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060DB8: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_8060D78
|
|
|
|
thumb_func_start sub_8060DBC
|
|
sub_8060DBC: @ 8060DBC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060DDA
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060DE2
|
|
_08060DDA:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08060DE4
|
|
_08060DE2:
|
|
movs r0, 0
|
|
_08060DE4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060DBC
|
|
|
|
thumb_func_start sub_8060DEC
|
|
sub_8060DEC: @ 8060DEC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08060E30 @ =gUnknown_83A611C
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08060E1C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_08060E1C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060E30: .4byte gUnknown_83A611C
|
|
thumb_func_end sub_8060DEC
|
|
|
|
thumb_func_start sub_8060E34
|
|
sub_8060E34: @ 8060E34
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08060E50 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060E54 @ =sub_8060E58
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060E50: .4byte gMapObjects
|
|
_08060E54: .4byte sub_8060E58
|
|
thumb_func_end sub_8060E34
|
|
|
|
thumb_func_start sub_8060E58
|
|
sub_8060E58: @ 8060E58
|
|
push {r4,lr}
|
|
ldr r3, _08060E74 @ =gUnknown_83A6120
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060E74: .4byte gUnknown_83A6120
|
|
thumb_func_end sub_8060E58
|
|
|
|
thumb_func_start sub_8060E78
|
|
sub_8060E78: @ 8060E78
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060E78
|
|
|
|
thumb_func_start sub_8060E8C
|
|
sub_8060E8C: @ 8060E8C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060E8C
|
|
|
|
thumb_func_start sub_8060EB8
|
|
sub_8060EB8: @ 8060EB8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060EEE
|
|
ldr r4, _08060EF8 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_08060EEE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060EF8: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_8060EB8
|
|
|
|
thumb_func_start sub_8060EFC
|
|
sub_8060EFC: @ 8060EFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060F1A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08060F22
|
|
_08060F1A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08060F24
|
|
_08060F22:
|
|
movs r0, 0
|
|
_08060F24:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060EFC
|
|
|
|
thumb_func_start sub_8060F2C
|
|
sub_8060F2C: @ 8060F2C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08060F70 @ =gUnknown_83A6134
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08060F5C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_08060F5C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060F70: .4byte gUnknown_83A6134
|
|
thumb_func_end sub_8060F2C
|
|
|
|
thumb_func_start sub_8060F74
|
|
sub_8060F74: @ 8060F74
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08060F90 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08060F94 @ =sub_8060F98
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060F90: .4byte gMapObjects
|
|
_08060F94: .4byte sub_8060F98
|
|
thumb_func_end sub_8060F74
|
|
|
|
thumb_func_start sub_8060F98
|
|
sub_8060F98: @ 8060F98
|
|
push {r4,lr}
|
|
ldr r3, _08060FB4 @ =gUnknown_83A6138
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060FB4: .4byte gUnknown_83A6138
|
|
thumb_func_end sub_8060F98
|
|
|
|
thumb_func_start sub_8060FB8
|
|
sub_8060FB8: @ 8060FB8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060FB8
|
|
|
|
thumb_func_start sub_8060FCC
|
|
sub_8060FCC: @ 8060FCC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060FCC
|
|
|
|
thumb_func_start sub_8060FF8
|
|
sub_8060FF8: @ 8060FF8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806102E
|
|
ldr r4, _08061038 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0806102E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061038: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_8060FF8
|
|
|
|
thumb_func_start sub_806103C
|
|
sub_806103C: @ 806103C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806105A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061062
|
|
_0806105A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08061064
|
|
_08061062:
|
|
movs r0, 0
|
|
_08061064:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806103C
|
|
|
|
thumb_func_start sub_806106C
|
|
sub_806106C: @ 806106C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080610B0 @ =gUnknown_83A614C
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0806109C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0806109C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080610B0: .4byte gUnknown_83A614C
|
|
thumb_func_end sub_806106C
|
|
|
|
thumb_func_start sub_80610B4
|
|
sub_80610B4: @ 80610B4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080610D0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080610D4 @ =sub_80610D8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080610D0: .4byte gMapObjects
|
|
_080610D4: .4byte sub_80610D8
|
|
thumb_func_end sub_80610B4
|
|
|
|
thumb_func_start sub_80610D8
|
|
sub_80610D8: @ 80610D8
|
|
push {r4,lr}
|
|
ldr r3, _080610F4 @ =gUnknown_83A6150
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080610F4: .4byte gUnknown_83A6150
|
|
thumb_func_end sub_80610D8
|
|
|
|
thumb_func_start sub_80610F8
|
|
sub_80610F8: @ 80610F8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80610F8
|
|
|
|
thumb_func_start sub_806110C
|
|
sub_806110C: @ 806110C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806110C
|
|
|
|
thumb_func_start sub_8061138
|
|
sub_8061138: @ 8061138
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806116E
|
|
ldr r4, _08061178 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0806116E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061178: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_8061138
|
|
|
|
thumb_func_start sub_806117C
|
|
sub_806117C: @ 806117C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806119A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080611A2
|
|
_0806119A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _080611A4
|
|
_080611A2:
|
|
movs r0, 0
|
|
_080611A4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806117C
|
|
|
|
thumb_func_start sub_80611AC
|
|
sub_80611AC: @ 80611AC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080611F0 @ =gUnknown_83A6164
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080611DC
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_080611DC:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080611F0: .4byte gUnknown_83A6164
|
|
thumb_func_end sub_80611AC
|
|
|
|
thumb_func_start sub_80611F4
|
|
sub_80611F4: @ 80611F4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061210 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061214 @ =sub_8061218
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061210: .4byte gMapObjects
|
|
_08061214: .4byte sub_8061218
|
|
thumb_func_end sub_80611F4
|
|
|
|
thumb_func_start sub_8061218
|
|
sub_8061218: @ 8061218
|
|
push {r4,lr}
|
|
ldr r3, _08061234 @ =gUnknown_83A6168
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061234: .4byte gUnknown_83A6168
|
|
thumb_func_end sub_8061218
|
|
|
|
thumb_func_start sub_8061238
|
|
sub_8061238: @ 8061238
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061238
|
|
|
|
thumb_func_start sub_806124C
|
|
sub_806124C: @ 806124C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806124C
|
|
|
|
thumb_func_start sub_8061278
|
|
sub_8061278: @ 8061278
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080612AE
|
|
ldr r4, _080612B8 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_080612AE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080612B8: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_8061278
|
|
|
|
thumb_func_start sub_80612BC
|
|
sub_80612BC: @ 80612BC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080612DA
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080612E2
|
|
_080612DA:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _080612E4
|
|
_080612E2:
|
|
movs r0, 0
|
|
_080612E4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80612BC
|
|
|
|
thumb_func_start sub_80612EC
|
|
sub_80612EC: @ 80612EC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061330 @ =gUnknown_83A617C
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0806131C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0806131C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061330: .4byte gUnknown_83A617C
|
|
thumb_func_end sub_80612EC
|
|
|
|
thumb_func_start sub_8061334
|
|
sub_8061334: @ 8061334
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061350 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061354 @ =sub_8061358
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061350: .4byte gMapObjects
|
|
_08061354: .4byte sub_8061358
|
|
thumb_func_end sub_8061334
|
|
|
|
thumb_func_start sub_8061358
|
|
sub_8061358: @ 8061358
|
|
push {r4,lr}
|
|
ldr r3, _08061374 @ =gUnknown_83A6180
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061374: .4byte gUnknown_83A6180
|
|
thumb_func_end sub_8061358
|
|
|
|
thumb_func_start sub_8061378
|
|
sub_8061378: @ 8061378
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061378
|
|
|
|
thumb_func_start sub_806138C
|
|
sub_806138C: @ 806138C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806138C
|
|
|
|
thumb_func_start sub_80613B8
|
|
sub_80613B8: @ 80613B8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080613EE
|
|
ldr r4, _080613F8 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_080613EE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080613F8: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_80613B8
|
|
|
|
thumb_func_start sub_80613FC
|
|
sub_80613FC: @ 80613FC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806141A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061422
|
|
_0806141A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08061424
|
|
_08061422:
|
|
movs r0, 0
|
|
_08061424:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80613FC
|
|
|
|
thumb_func_start sub_806142C
|
|
sub_806142C: @ 806142C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061470 @ =gUnknown_83A6194
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0806145C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0806145C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061470: .4byte gUnknown_83A6194
|
|
thumb_func_end sub_806142C
|
|
|
|
thumb_func_start sub_8061474
|
|
sub_8061474: @ 8061474
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061490 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061494 @ =sub_8061498
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061490: .4byte gMapObjects
|
|
_08061494: .4byte sub_8061498
|
|
thumb_func_end sub_8061474
|
|
|
|
thumb_func_start sub_8061498
|
|
sub_8061498: @ 8061498
|
|
push {r4,lr}
|
|
ldr r3, _080614B4 @ =gUnknown_83A6198
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080614B4: .4byte gUnknown_83A6198
|
|
thumb_func_end sub_8061498
|
|
|
|
thumb_func_start sub_80614B8
|
|
sub_80614B8: @ 80614B8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80614B8
|
|
|
|
thumb_func_start sub_80614CC
|
|
sub_80614CC: @ 80614CC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80614CC
|
|
|
|
thumb_func_start sub_80614F8
|
|
sub_80614F8: @ 80614F8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806152E
|
|
ldr r4, _08061538 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0806152E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061538: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_80614F8
|
|
|
|
thumb_func_start sub_806153C
|
|
sub_806153C: @ 806153C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806155A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061562
|
|
_0806155A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _08061564
|
|
_08061562:
|
|
movs r0, 0
|
|
_08061564:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806153C
|
|
|
|
thumb_func_start sub_806156C
|
|
sub_806156C: @ 806156C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080615B0 @ =gUnknown_83A61AC
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x9
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0806159C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0806159C:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080615B0: .4byte gUnknown_83A61AC
|
|
thumb_func_end sub_806156C
|
|
|
|
thumb_func_start sub_80615B4
|
|
sub_80615B4: @ 80615B4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080615D0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080615D4 @ =sub_80615D8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080615D0: .4byte gMapObjects
|
|
_080615D4: .4byte sub_80615D8
|
|
thumb_func_end sub_80615B4
|
|
|
|
thumb_func_start sub_80615D8
|
|
sub_80615D8: @ 80615D8
|
|
push {r4,lr}
|
|
ldr r3, _080615F4 @ =gUnknown_83A61B0
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080615F4: .4byte gUnknown_83A61B0
|
|
thumb_func_end sub_80615D8
|
|
|
|
thumb_func_start sub_80615F8
|
|
sub_80615F8: @ 80615F8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80615F8
|
|
|
|
thumb_func_start sub_806160C
|
|
sub_806160C: @ 806160C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806160C
|
|
|
|
thumb_func_start sub_8061638
|
|
sub_8061638: @ 8061638
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806166E
|
|
ldr r4, _08061678 @ =gUnknown_83A6010
|
|
bl Random
|
|
movs r5, 0x3
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r7, 0
|
|
bl SetFieldObjectStepTimer
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0806166E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061678: .4byte gUnknown_83A6010
|
|
thumb_func_end sub_8061638
|
|
|
|
thumb_func_start sub_806167C
|
|
sub_806167C: @ 806167C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806169A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080616A2
|
|
_0806169A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _080616A4
|
|
_080616A2:
|
|
movs r0, 0
|
|
_080616A4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806167C
|
|
|
|
thumb_func_start sub_80616AC
|
|
sub_80616AC: @ 80616AC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080616F0 @ =gUnknown_83A61C4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080616DC
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_080616DC:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080616F0: .4byte gUnknown_83A61C4
|
|
thumb_func_end sub_80616AC
|
|
|
|
thumb_func_start sub_80616F4
|
|
sub_80616F4: @ 80616F4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061710 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061714 @ =sub_8061718
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061710: .4byte gMapObjects
|
|
_08061714: .4byte sub_8061718
|
|
thumb_func_end sub_80616F4
|
|
|
|
thumb_func_start sub_8061718
|
|
sub_8061718: @ 8061718
|
|
push {r4,lr}
|
|
ldr r3, _08061734 @ =gUnknown_83A61C8
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061734: .4byte gUnknown_83A61C8
|
|
thumb_func_end sub_8061718
|
|
|
|
thumb_func_start sub_8061738
|
|
sub_8061738: @ 8061738
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061738
|
|
|
|
thumb_func_start sub_8061764
|
|
sub_8061764: @ 8061764
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806177E
|
|
adds r0, r4, 0
|
|
movs r1, 0x30
|
|
bl SetFieldObjectStepTimer
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_0806177E:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061764
|
|
|
|
thumb_func_start sub_8061788
|
|
sub_8061788: @ 8061788
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080617A6
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080617AA
|
|
_080617A6:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x30]
|
|
_080617AA:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061788
|
|
|
|
thumb_func_start sub_80617B4
|
|
sub_80617B4: @ 80617B4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080617F4 @ =gUnknown_83A61D8
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080617E0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
add r0, sp
|
|
ldrb r1, [r0]
|
|
_080617E0:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080617F4: .4byte gUnknown_83A61D8
|
|
thumb_func_end sub_80617B4
|
|
|
|
thumb_func_start sub_80617F8
|
|
sub_80617F8: @ 80617F8
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061814 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061818 @ =sub_806181C
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061814: .4byte gMapObjects
|
|
_08061818: .4byte sub_806181C
|
|
thumb_func_end sub_80617F8
|
|
|
|
thumb_func_start sub_806181C
|
|
sub_806181C: @ 806181C
|
|
push {r4,lr}
|
|
ldr r3, _08061838 @ =gUnknown_83A61E0
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061838: .4byte gUnknown_83A61E0
|
|
thumb_func_end sub_806181C
|
|
|
|
thumb_func_start sub_806183C
|
|
sub_806183C: @ 806183C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806183C
|
|
|
|
thumb_func_start sub_8061868
|
|
sub_8061868: @ 8061868
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061882
|
|
adds r0, r4, 0
|
|
movs r1, 0x30
|
|
bl SetFieldObjectStepTimer
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_08061882:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061868
|
|
|
|
thumb_func_start sub_806188C
|
|
sub_806188C: @ 806188C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080618AA
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080618AE
|
|
_080618AA:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x30]
|
|
_080618AE:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806188C
|
|
|
|
thumb_func_start sub_80618B8
|
|
sub_80618B8: @ 80618B8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080618F8 @ =gUnknown_83A61F0
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetRunningPastFacingDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080618E4
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
add r0, sp
|
|
ldrb r1, [r0]
|
|
_080618E4:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080618F8: .4byte gUnknown_83A61F0
|
|
thumb_func_end sub_80618B8
|
|
|
|
thumb_func_start sub_80618FC
|
|
sub_80618FC: @ 80618FC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061918 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0806191C @ =sub_8061920
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061918: .4byte gMapObjects
|
|
_0806191C: .4byte sub_8061920
|
|
thumb_func_end sub_80618FC
|
|
|
|
thumb_func_start sub_8061920
|
|
sub_8061920: @ 8061920
|
|
push {r4,lr}
|
|
ldr r3, _0806193C @ =gUnknown_83A61F8
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806193C: .4byte gUnknown_83A61F8
|
|
thumb_func_end sub_8061920
|
|
|
|
thumb_func_start sub_8061940
|
|
sub_8061940: @ 8061940
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061940
|
|
|
|
thumb_func_start sub_8061954
|
|
sub_8061954: @ 8061954
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _08061988 @ =gUnknown_839FD5D
|
|
ldrb r1, [r4, 0x6]
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08061976
|
|
adds r0, r1, 0
|
|
bl GetOppositeDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_08061976:
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061988: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_8061954
|
|
|
|
thumb_func_start sub_806198C
|
|
sub_806198C: @ 806198C
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080619BC
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bne _080619BC
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetOppositeDirection
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
_080619BC:
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r5, 0x1
|
|
bne _08061A12
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetOppositeDirection
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08061A12:
|
|
cmp r5, 0
|
|
beq _08061A24
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetStepInPlaceDelay16AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08061A24:
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x3
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806198C
|
|
|
|
thumb_func_start sub_8061A44
|
|
sub_8061A44: @ 8061A44
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061A62
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_08061A62:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061A44
|
|
|
|
thumb_func_start sub_8061A6C
|
|
sub_8061A6C: @ 8061A6C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061A6C
|
|
|
|
thumb_func_start MoveFieldObjectInNextDirectionInSequence
|
|
MoveFieldObjectInNextDirectionInSequence: @ 8061A80
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
mov r8, r1
|
|
adds r7, r2, 0
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3
|
|
bne _08061AA2
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bne _08061AA2
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
_08061AA2:
|
|
adds r5, r4, 0
|
|
adds r5, 0x21
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08061AFC
|
|
ldrb r0, [r5]
|
|
adds r0, 0x1
|
|
strb r0, [r5]
|
|
ldrb r0, [r5]
|
|
adds r0, r7, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl sub_8063F84
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl npc_block_way__next_tile
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08061AFC:
|
|
cmp r0, 0
|
|
beq _08061B0E
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetStepInPlaceDelay16AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_08061B0E:
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
adds r2, r6, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
strh r0, [r1, 0x30]
|
|
movs r0, 0x1
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end MoveFieldObjectInNextDirectionInSequence
|
|
|
|
thumb_func_start sub_8061B34
|
|
sub_8061B34: @ 8061B34
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08061B52
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_08061B52:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061B34
|
|
|
|
thumb_func_start sub_8061B5C
|
|
sub_8061B5C: @ 8061B5C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061B78 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061B7C @ =sub_8061B80
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061B78: .4byte gMapObjects
|
|
_08061B7C: .4byte sub_8061B80
|
|
thumb_func_end sub_8061B5C
|
|
|
|
thumb_func_start sub_8061B80
|
|
sub_8061B80: @ 8061B80
|
|
push {r4,lr}
|
|
ldr r3, _08061B9C @ =gUnknown_83A6208
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061B9C: .4byte gUnknown_83A6208
|
|
thumb_func_end sub_8061B80
|
|
|
|
thumb_func_start sub_8061BA0
|
|
sub_8061BA0: @ 8061BA0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061BE4 @ =gUnknown_83A6214
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08061BCC
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061BCC
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08061BCC:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061BE4: .4byte gUnknown_83A6214
|
|
thumb_func_end sub_8061BA0
|
|
|
|
thumb_func_start sub_8061BE8
|
|
sub_8061BE8: @ 8061BE8
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061C04 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061C08 @ =sub_8061C0C
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061C04: .4byte gMapObjects
|
|
_08061C08: .4byte sub_8061C0C
|
|
thumb_func_end sub_8061BE8
|
|
|
|
thumb_func_start sub_8061C0C
|
|
sub_8061C0C: @ 8061C0C
|
|
push {r4,lr}
|
|
ldr r3, _08061C28 @ =gUnknown_83A6218
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061C28: .4byte gUnknown_83A6218
|
|
thumb_func_end sub_8061C0C
|
|
|
|
thumb_func_start sub_8061C2C
|
|
sub_8061C2C: @ 8061C2C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061C70 @ =gUnknown_83A6224
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _08061C58
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061C58
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_08061C58:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061C70: .4byte gUnknown_83A6224
|
|
thumb_func_end sub_8061C2C
|
|
|
|
thumb_func_start sub_8061C74
|
|
sub_8061C74: @ 8061C74
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061C90 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061C94 @ =sub_8061C98
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061C90: .4byte gMapObjects
|
|
_08061C94: .4byte sub_8061C98
|
|
thumb_func_end sub_8061C74
|
|
|
|
thumb_func_start sub_8061C98
|
|
sub_8061C98: @ 8061C98
|
|
push {r4,lr}
|
|
ldr r3, _08061CB4 @ =gUnknown_83A6228
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061CB4: .4byte gUnknown_83A6228
|
|
thumb_func_end sub_8061C98
|
|
|
|
thumb_func_start sub_8061CB8
|
|
sub_8061CB8: @ 8061CB8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061CFC @ =gUnknown_83A6234
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _08061CE4
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061CE4
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_08061CE4:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061CFC: .4byte gUnknown_83A6234
|
|
thumb_func_end sub_8061CB8
|
|
|
|
thumb_func_start sub_8061D00
|
|
sub_8061D00: @ 8061D00
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061D1C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061D20 @ =sub_8061D24
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061D1C: .4byte gMapObjects
|
|
_08061D20: .4byte sub_8061D24
|
|
thumb_func_end sub_8061D00
|
|
|
|
thumb_func_start sub_8061D24
|
|
sub_8061D24: @ 8061D24
|
|
push {r4,lr}
|
|
ldr r3, _08061D40 @ =gUnknown_83A6238
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061D40: .4byte gUnknown_83A6238
|
|
thumb_func_end sub_8061D24
|
|
|
|
thumb_func_start sub_8061D44
|
|
sub_8061D44: @ 8061D44
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061D88 @ =gUnknown_83A6244
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08061D70
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061D70
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08061D70:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061D88: .4byte gUnknown_83A6244
|
|
thumb_func_end sub_8061D44
|
|
|
|
thumb_func_start sub_8061D8C
|
|
sub_8061D8C: @ 8061D8C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061DA8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061DAC @ =sub_8061DB0
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061DA8: .4byte gMapObjects
|
|
_08061DAC: .4byte sub_8061DB0
|
|
thumb_func_end sub_8061D8C
|
|
|
|
thumb_func_start sub_8061DB0
|
|
sub_8061DB0: @ 8061DB0
|
|
push {r4,lr}
|
|
ldr r3, _08061DCC @ =gUnknown_83A6248
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061DCC: .4byte gUnknown_83A6248
|
|
thumb_func_end sub_8061DB0
|
|
|
|
thumb_func_start sub_8061DD0
|
|
sub_8061DD0: @ 8061DD0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061E14 @ =gUnknown_83A6254
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08061DFC
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061DFC
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08061DFC:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061E14: .4byte gUnknown_83A6254
|
|
thumb_func_end sub_8061DD0
|
|
|
|
thumb_func_start sub_8061E18
|
|
sub_8061E18: @ 8061E18
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061E34 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061E38 @ =sub_8061E3C
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061E34: .4byte gMapObjects
|
|
_08061E38: .4byte sub_8061E3C
|
|
thumb_func_end sub_8061E18
|
|
|
|
thumb_func_start sub_8061E3C
|
|
sub_8061E3C: @ 8061E3C
|
|
push {r4,lr}
|
|
ldr r3, _08061E58 @ =gUnknown_83A6258
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061E58: .4byte gUnknown_83A6258
|
|
thumb_func_end sub_8061E3C
|
|
|
|
thumb_func_start sub_8061E5C
|
|
sub_8061E5C: @ 8061E5C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061EA0 @ =gUnknown_83A6264
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _08061E88
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061E88
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_08061E88:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061EA0: .4byte gUnknown_83A6264
|
|
thumb_func_end sub_8061E5C
|
|
|
|
thumb_func_start sub_8061EA4
|
|
sub_8061EA4: @ 8061EA4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061EC0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061EC4 @ =sub_8061EC8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061EC0: .4byte gMapObjects
|
|
_08061EC4: .4byte sub_8061EC8
|
|
thumb_func_end sub_8061EA4
|
|
|
|
thumb_func_start sub_8061EC8
|
|
sub_8061EC8: @ 8061EC8
|
|
push {r4,lr}
|
|
ldr r3, _08061EE4 @ =gUnknown_83A6268
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061EE4: .4byte gUnknown_83A6268
|
|
thumb_func_end sub_8061EC8
|
|
|
|
thumb_func_start sub_8061EE8
|
|
sub_8061EE8: @ 8061EE8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061F2C @ =gUnknown_83A6050
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _08061F14
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061F14
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_08061F14:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061F2C: .4byte gUnknown_83A6050
|
|
thumb_func_end sub_8061EE8
|
|
|
|
thumb_func_start sub_8061F30
|
|
sub_8061F30: @ 8061F30
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061F4C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061F50 @ =sub_8061F54
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061F4C: .4byte gMapObjects
|
|
_08061F50: .4byte sub_8061F54
|
|
thumb_func_end sub_8061F30
|
|
|
|
thumb_func_start sub_8061F54
|
|
sub_8061F54: @ 8061F54
|
|
push {r4,lr}
|
|
ldr r3, _08061F70 @ =gUnknown_83A6274
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061F70: .4byte gUnknown_83A6274
|
|
thumb_func_end sub_8061F54
|
|
|
|
thumb_func_start sub_8061F74
|
|
sub_8061F74: @ 8061F74
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08061FB8 @ =gUnknown_83A6280
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08061FA0
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08061FA0
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08061FA0:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061FB8: .4byte gUnknown_83A6280
|
|
thumb_func_end sub_8061F74
|
|
|
|
thumb_func_start sub_8061FBC
|
|
sub_8061FBC: @ 8061FBC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08061FD8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08061FDC @ =sub_8061FE0
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08061FD8: .4byte gMapObjects
|
|
_08061FDC: .4byte sub_8061FE0
|
|
thumb_func_end sub_8061FBC
|
|
|
|
thumb_func_start sub_8061FE0
|
|
sub_8061FE0: @ 8061FE0
|
|
push {r4,lr}
|
|
ldr r3, _08061FFC @ =gUnknown_83A6284
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061FFC: .4byte gUnknown_83A6284
|
|
thumb_func_end sub_8061FE0
|
|
|
|
thumb_func_start sub_8062000
|
|
sub_8062000: @ 8062000
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062044 @ =gUnknown_83A6290
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0806202C
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0806202C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0806202C:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062044: .4byte gUnknown_83A6290
|
|
thumb_func_end sub_8062000
|
|
|
|
thumb_func_start sub_8062048
|
|
sub_8062048: @ 8062048
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062064 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062068 @ =sub_806206C
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062064: .4byte gMapObjects
|
|
_08062068: .4byte sub_806206C
|
|
thumb_func_end sub_8062048
|
|
|
|
thumb_func_start sub_806206C
|
|
sub_806206C: @ 806206C
|
|
push {r4,lr}
|
|
ldr r3, _08062088 @ =gUnknown_83A6294
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062088: .4byte gUnknown_83A6294
|
|
thumb_func_end sub_806206C
|
|
|
|
thumb_func_start sub_806208C
|
|
sub_806208C: @ 806208C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080620D0 @ =gUnknown_83A62A0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _080620B8
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080620B8
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_080620B8:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080620D0: .4byte gUnknown_83A62A0
|
|
thumb_func_end sub_806208C
|
|
|
|
thumb_func_start sub_80620D4
|
|
sub_80620D4: @ 80620D4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080620F0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080620F4 @ =sub_80620F8
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080620F0: .4byte gMapObjects
|
|
_080620F4: .4byte sub_80620F8
|
|
thumb_func_end sub_80620D4
|
|
|
|
thumb_func_start sub_80620F8
|
|
sub_80620F8: @ 80620F8
|
|
push {r4,lr}
|
|
ldr r3, _08062114 @ =gUnknown_83A62A4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062114: .4byte gUnknown_83A62A4
|
|
thumb_func_end sub_80620F8
|
|
|
|
thumb_func_start sub_8062118
|
|
sub_8062118: @ 8062118
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0806215C @ =gUnknown_83A62B0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _08062144
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062144
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_08062144:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806215C: .4byte gUnknown_83A62B0
|
|
thumb_func_end sub_8062118
|
|
|
|
thumb_func_start sub_8062160
|
|
sub_8062160: @ 8062160
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806217C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062180 @ =sub_8062184
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806217C: .4byte gMapObjects
|
|
_08062180: .4byte sub_8062184
|
|
thumb_func_end sub_8062160
|
|
|
|
thumb_func_start sub_8062184
|
|
sub_8062184: @ 8062184
|
|
push {r4,lr}
|
|
ldr r3, _080621A0 @ =gUnknown_83A62B4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080621A0: .4byte gUnknown_83A62B4
|
|
thumb_func_end sub_8062184
|
|
|
|
thumb_func_start sub_80621A4
|
|
sub_80621A4: @ 80621A4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080621E8 @ =gUnknown_83A62C0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _080621D0
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080621D0
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_080621D0:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080621E8: .4byte gUnknown_83A62C0
|
|
thumb_func_end sub_80621A4
|
|
|
|
thumb_func_start sub_80621EC
|
|
sub_80621EC: @ 80621EC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062208 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0806220C @ =sub_8062210
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062208: .4byte gMapObjects
|
|
_0806220C: .4byte sub_8062210
|
|
thumb_func_end sub_80621EC
|
|
|
|
thumb_func_start sub_8062210
|
|
sub_8062210: @ 8062210
|
|
push {r4,lr}
|
|
ldr r3, _0806222C @ =gUnknown_83A62C4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806222C: .4byte gUnknown_83A62C4
|
|
thumb_func_end sub_8062210
|
|
|
|
thumb_func_start sub_8062230
|
|
sub_8062230: @ 8062230
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062274 @ =gUnknown_83A62D0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0806225C
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0806225C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0806225C:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062274: .4byte gUnknown_83A62D0
|
|
thumb_func_end sub_8062230
|
|
|
|
thumb_func_start sub_8062278
|
|
sub_8062278: @ 8062278
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062294 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062298 @ =sub_806229C
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062294: .4byte gMapObjects
|
|
_08062298: .4byte sub_806229C
|
|
thumb_func_end sub_8062278
|
|
|
|
thumb_func_start sub_806229C
|
|
sub_806229C: @ 806229C
|
|
push {r4,lr}
|
|
ldr r3, _080622B8 @ =gUnknown_83A62D4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080622B8: .4byte gUnknown_83A62D4
|
|
thumb_func_end sub_806229C
|
|
|
|
thumb_func_start sub_80622BC
|
|
sub_80622BC: @ 80622BC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062300 @ =gUnknown_83A62E0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _080622E8
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080622E8
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_080622E8:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062300: .4byte gUnknown_83A62E0
|
|
thumb_func_end sub_80622BC
|
|
|
|
thumb_func_start sub_8062304
|
|
sub_8062304: @ 8062304
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062320 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062324 @ =sub_8062328
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062320: .4byte gMapObjects
|
|
_08062324: .4byte sub_8062328
|
|
thumb_func_end sub_8062304
|
|
|
|
thumb_func_start sub_8062328
|
|
sub_8062328: @ 8062328
|
|
push {r4,lr}
|
|
ldr r3, _08062344 @ =gUnknown_83A62E4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062344: .4byte gUnknown_83A62E4
|
|
thumb_func_end sub_8062328
|
|
|
|
thumb_func_start sub_8062348
|
|
sub_8062348: @ 8062348
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0806238C @ =gUnknown_83A62F0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _08062374
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062374
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_08062374:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806238C: .4byte gUnknown_83A62F0
|
|
thumb_func_end sub_8062348
|
|
|
|
thumb_func_start sub_8062390
|
|
sub_8062390: @ 8062390
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080623AC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080623B0 @ =sub_80623B4
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080623AC: .4byte gMapObjects
|
|
_080623B0: .4byte sub_80623B4
|
|
thumb_func_end sub_8062390
|
|
|
|
thumb_func_start sub_80623B4
|
|
sub_80623B4: @ 80623B4
|
|
push {r4,lr}
|
|
ldr r3, _080623D0 @ =gUnknown_83A62F4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080623D0: .4byte gUnknown_83A62F4
|
|
thumb_func_end sub_80623B4
|
|
|
|
thumb_func_start sub_80623D4
|
|
sub_80623D4: @ 80623D4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062418 @ =gUnknown_83A6300
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08062400
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062400
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08062400:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062418: .4byte gUnknown_83A6300
|
|
thumb_func_end sub_80623D4
|
|
|
|
thumb_func_start sub_806241C
|
|
sub_806241C: @ 806241C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062438 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0806243C @ =sub_8062440
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062438: .4byte gMapObjects
|
|
_0806243C: .4byte sub_8062440
|
|
thumb_func_end sub_806241C
|
|
|
|
thumb_func_start sub_8062440
|
|
sub_8062440: @ 8062440
|
|
push {r4,lr}
|
|
ldr r3, _0806245C @ =gUnknown_83A6304
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806245C: .4byte gUnknown_83A6304
|
|
thumb_func_end sub_8062440
|
|
|
|
thumb_func_start sub_8062460
|
|
sub_8062460: @ 8062460
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080624A4 @ =gUnknown_83A6310
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0806248C
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0806248C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0806248C:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080624A4: .4byte gUnknown_83A6310
|
|
thumb_func_end sub_8062460
|
|
|
|
thumb_func_start sub_80624A8
|
|
sub_80624A8: @ 80624A8
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080624C4 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080624C8 @ =sub_80624CC
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080624C4: .4byte gMapObjects
|
|
_080624C8: .4byte sub_80624CC
|
|
thumb_func_end sub_80624A8
|
|
|
|
thumb_func_start sub_80624CC
|
|
sub_80624CC: @ 80624CC
|
|
push {r4,lr}
|
|
ldr r3, _080624E8 @ =gUnknown_83A6314
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080624E8: .4byte gUnknown_83A6314
|
|
thumb_func_end sub_80624CC
|
|
|
|
thumb_func_start sub_80624EC
|
|
sub_80624EC: @ 80624EC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062530 @ =gUnknown_83A6320
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08062518
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062518
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08062518:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062530: .4byte gUnknown_83A6320
|
|
thumb_func_end sub_80624EC
|
|
|
|
thumb_func_start sub_8062534
|
|
sub_8062534: @ 8062534
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062550 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062554 @ =sub_8062558
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062550: .4byte gMapObjects
|
|
_08062554: .4byte sub_8062558
|
|
thumb_func_end sub_8062534
|
|
|
|
thumb_func_start sub_8062558
|
|
sub_8062558: @ 8062558
|
|
push {r4,lr}
|
|
ldr r3, _08062574 @ =gUnknown_83A6324
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062574: .4byte gUnknown_83A6324
|
|
thumb_func_end sub_8062558
|
|
|
|
thumb_func_start sub_8062578
|
|
sub_8062578: @ 8062578
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080625BC @ =gUnknown_83A6330
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _080625A4
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080625A4
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_080625A4:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080625BC: .4byte gUnknown_83A6330
|
|
thumb_func_end sub_8062578
|
|
|
|
thumb_func_start sub_80625C0
|
|
sub_80625C0: @ 80625C0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080625DC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080625E0 @ =sub_80625E4
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080625DC: .4byte gMapObjects
|
|
_080625E0: .4byte sub_80625E4
|
|
thumb_func_end sub_80625C0
|
|
|
|
thumb_func_start sub_80625E4
|
|
sub_80625E4: @ 80625E4
|
|
push {r4,lr}
|
|
ldr r3, _08062600 @ =gUnknown_83A6334
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062600: .4byte gUnknown_83A6334
|
|
thumb_func_end sub_80625E4
|
|
|
|
thumb_func_start sub_8062604
|
|
sub_8062604: @ 8062604
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062648 @ =gUnknown_83A6340
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08062630
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062630
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08062630:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062648: .4byte gUnknown_83A6340
|
|
thumb_func_end sub_8062604
|
|
|
|
thumb_func_start sub_806264C
|
|
sub_806264C: @ 806264C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062668 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0806266C @ =sub_8062670
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062668: .4byte gMapObjects
|
|
_0806266C: .4byte sub_8062670
|
|
thumb_func_end sub_806264C
|
|
|
|
thumb_func_start sub_8062670
|
|
sub_8062670: @ 8062670
|
|
push {r4,lr}
|
|
ldr r3, _0806268C @ =gUnknown_83A6344
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806268C: .4byte gUnknown_83A6344
|
|
thumb_func_end sub_8062670
|
|
|
|
thumb_func_start sub_8062690
|
|
sub_8062690: @ 8062690
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080626D4 @ =gUnknown_83A6350
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _080626BC
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080626BC
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_080626BC:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080626D4: .4byte gUnknown_83A6350
|
|
thumb_func_end sub_8062690
|
|
|
|
thumb_func_start sub_80626D8
|
|
sub_80626D8: @ 80626D8
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080626F4 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080626F8 @ =sub_80626FC
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080626F4: .4byte gMapObjects
|
|
_080626F8: .4byte sub_80626FC
|
|
thumb_func_end sub_80626D8
|
|
|
|
thumb_func_start sub_80626FC
|
|
sub_80626FC: @ 80626FC
|
|
push {r4,lr}
|
|
ldr r3, _08062718 @ =gUnknown_83A6354
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062718: .4byte gUnknown_83A6354
|
|
thumb_func_end sub_80626FC
|
|
|
|
thumb_func_start sub_806271C
|
|
sub_806271C: @ 806271C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062760 @ =gUnknown_83A6360
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08062748
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062748
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08062748:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062760: .4byte gUnknown_83A6360
|
|
thumb_func_end sub_806271C
|
|
|
|
thumb_func_start sub_8062764
|
|
sub_8062764: @ 8062764
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062780 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062784 @ =sub_8062788
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062780: .4byte gMapObjects
|
|
_08062784: .4byte sub_8062788
|
|
thumb_func_end sub_8062764
|
|
|
|
thumb_func_start sub_8062788
|
|
sub_8062788: @ 8062788
|
|
push {r4,lr}
|
|
ldr r3, _080627A4 @ =gUnknown_83A6364
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080627A4: .4byte gUnknown_83A6364
|
|
thumb_func_end sub_8062788
|
|
|
|
thumb_func_start sub_80627A8
|
|
sub_80627A8: @ 80627A8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080627EC @ =gUnknown_83A6370
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _080627D4
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080627D4
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_080627D4:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080627EC: .4byte gUnknown_83A6370
|
|
thumb_func_end sub_80627A8
|
|
|
|
thumb_func_start sub_80627F0
|
|
sub_80627F0: @ 80627F0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806280C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062810 @ =sub_8062814
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806280C: .4byte gMapObjects
|
|
_08062810: .4byte sub_8062814
|
|
thumb_func_end sub_80627F0
|
|
|
|
thumb_func_start sub_8062814
|
|
sub_8062814: @ 8062814
|
|
push {r4,lr}
|
|
ldr r3, _08062830 @ =gUnknown_83A6374
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062830: .4byte gUnknown_83A6374
|
|
thumb_func_end sub_8062814
|
|
|
|
thumb_func_start sub_8062834
|
|
sub_8062834: @ 8062834
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08062878 @ =gUnknown_83A6380
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _08062860
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _08062860
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_08062860:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl MoveFieldObjectInNextDirectionInSequence
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062878: .4byte gUnknown_83A6380
|
|
thumb_func_end sub_8062834
|
|
|
|
thumb_func_start sub_806287C
|
|
sub_806287C: @ 806287C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062898 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0806289C @ =sub_80628A0
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062898: .4byte gMapObjects
|
|
_0806289C: .4byte sub_80628A0
|
|
thumb_func_end sub_806287C
|
|
|
|
thumb_func_start sub_80628A0
|
|
sub_80628A0: @ 80628A0
|
|
push {r4,lr}
|
|
ldr r3, _080628BC @ =gUnknown_83A6384
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080628BC: .4byte gUnknown_83A6384
|
|
thumb_func_end sub_80628A0
|
|
|
|
thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3
|
|
mss_npc_reset_oampriv3_1_unk2_unk3: @ 80628C0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
adds r4, 0x21
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _080628D8
|
|
bl GetPlayerFacingDirection
|
|
strb r0, [r4]
|
|
_080628D8:
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3
|
|
|
|
thumb_func_start sub_80628E4
|
|
sub_80628E4: @ 80628E4
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
ldr r2, _08062908 @ =gMapObjects
|
|
ldr r3, _0806290C @ =gPlayerAvatar
|
|
ldrb r1, [r3, 0x5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1C]
|
|
cmp r0, 0xFF
|
|
beq _08062904
|
|
ldrb r0, [r3, 0x3]
|
|
cmp r0, 0x2
|
|
bne _08062910
|
|
_08062904:
|
|
movs r0, 0
|
|
b _08062938
|
|
.align 2, 0
|
|
_08062908: .4byte gMapObjects
|
|
_0806290C: .4byte gPlayerAvatar
|
|
_08062910:
|
|
ldr r5, _08062940 @ =gUnknown_83A6390
|
|
bl player_get_x22
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 22
|
|
adds r4, r5
|
|
bl player_get_direction_upper_nybble
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
movs r3, 0
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08062938:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062940: .4byte gUnknown_83A6390
|
|
thumb_func_end sub_80628E4
|
|
|
|
thumb_func_start sub_8062944
|
|
sub_8062944: @ 8062944
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08062962
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_08062962:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062944
|
|
|
|
thumb_func_start sub_806296C
|
|
sub_806296C: @ 806296C
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_806296C
|
|
|
|
thumb_func_start sub_8062970
|
|
sub_8062970: @ 8062970
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r1, _080629B4 @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
bl state_to_direction
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080629B4: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_8062970
|
|
|
|
thumb_func_start sub_80629B8
|
|
sub_80629B8: @ 80629B8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08062A6C @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
adds r2, r6, 0
|
|
bl state_to_direction
|
|
adds r6, r0, 0
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl FieldObjectMoveDestCoords
|
|
adds r0, r6, 0
|
|
bl sub_8063F84
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062A3E
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08062A52
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062A52
|
|
_08062A3E:
|
|
adds r0, r6, 0
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
_08062A52:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062A6C: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_80629B8
|
|
|
|
thumb_func_start sub_8062A70
|
|
sub_8062A70: @ 8062A70
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08062B24 @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
adds r2, r6, 0
|
|
bl state_to_direction
|
|
adds r6, r0, 0
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl FieldObjectMoveDestCoords
|
|
adds r0, r6, 0
|
|
bl sub_8063FB0
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062AF6
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08062B0A
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062B0A
|
|
_08062AF6:
|
|
adds r0, r6, 0
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
_08062B0A:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062B24: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_8062A70
|
|
|
|
thumb_func_start sub_8062B28
|
|
sub_8062B28: @ 8062B28
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08062BDC @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
adds r2, r6, 0
|
|
bl state_to_direction
|
|
adds r6, r0, 0
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl FieldObjectMoveDestCoords
|
|
adds r0, r6, 0
|
|
bl sub_8064034
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062BAE
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08062BC2
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062BC2
|
|
_08062BAE:
|
|
adds r0, r6, 0
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
_08062BC2:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062BDC: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_8062B28
|
|
|
|
thumb_func_start sub_8062BE0
|
|
sub_8062BE0: @ 8062BE0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08062C94 @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
adds r2, r6, 0
|
|
bl state_to_direction
|
|
adds r6, r0, 0
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl FieldObjectMoveDestCoords
|
|
adds r0, r6, 0
|
|
bl sub_8064060
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062C66
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08062C7A
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062C7A
|
|
_08062C66:
|
|
adds r0, r6, 0
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
_08062C7A:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062C94: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_8062BE0
|
|
|
|
thumb_func_start cph_IM_DIFFERENT
|
|
cph_IM_DIFFERENT: @ 8062C98
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r1, _08062CDC @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
bl state_to_direction
|
|
bl sub_806413C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062CDC: .4byte gUnknown_839FD5D
|
|
thumb_func_end cph_IM_DIFFERENT
|
|
|
|
thumb_func_start sub_8062CE0
|
|
sub_8062CE0: @ 8062CE0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08062D94 @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
adds r2, r6, 0
|
|
bl state_to_direction
|
|
adds r6, r0, 0
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl FieldObjectMoveDestCoords
|
|
adds r0, r6, 0
|
|
bl sub_8064194
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062D66
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08062D7A
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062D7A
|
|
_08062D66:
|
|
adds r0, r6, 0
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
_08062D7A:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062D94: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_8062CE0
|
|
|
|
thumb_func_start oac_hopping
|
|
oac_hopping: @ 8062D98
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r1, _08062E5C @ =gUnknown_839FD5D
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
adds r2, r6, 0
|
|
bl state_to_direction
|
|
adds r6, r0, 0
|
|
ldrh r1, [r4, 0x10]
|
|
add r0, sp, 0x4
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, 0x12]
|
|
mov r5, sp
|
|
adds r5, 0x6
|
|
strh r0, [r5]
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r6, 0
|
|
add r1, sp, 0x4
|
|
adds r2, r5, 0
|
|
movs r3, 0x2
|
|
bl sub_8063A6C
|
|
adds r0, r6, 0
|
|
bl GetJumpLedgeAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
add r0, sp, 0x4
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r3, r6, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062E2C
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08062E40
|
|
add r0, sp, 0x4
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl _call_via_r8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062E40
|
|
_08062E2C:
|
|
adds r0, r6, 0
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80645C8
|
|
_08062E40:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x2
|
|
strh r0, [r7, 0x30]
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062E5C: .4byte gUnknown_839FD5D
|
|
thumb_func_end oac_hopping
|
|
|
|
thumb_func_start sub_8062E60
|
|
sub_8062E60: @ 8062E60
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _08062E7C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08062E80 @ =sub_8062E84
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062E7C: .4byte gMapObjects
|
|
_08062E80: .4byte sub_8062E84
|
|
thumb_func_end sub_8062E60
|
|
|
|
thumb_func_start sub_8062E84
|
|
sub_8062E84: @ 8062E84
|
|
push {r4,lr}
|
|
ldr r3, _08062EA0 @ =gUnknown_83A63BC
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062EA0: .4byte gUnknown_83A63BC
|
|
thumb_func_end sub_8062E84
|
|
|
|
thumb_func_start mss_08062EA4
|
|
mss_08062EA4: @ 8062EA4
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
ldr r2, _08062EC8 @ =gMapObjects
|
|
ldr r3, _08062ECC @ =gPlayerAvatar
|
|
ldrb r1, [r3, 0x5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1C]
|
|
cmp r0, 0xFF
|
|
beq _08062EC4
|
|
ldrb r0, [r3, 0x3]
|
|
cmp r0, 0x2
|
|
bne _08062ED0
|
|
_08062EC4:
|
|
movs r0, 0
|
|
b _08062EF8
|
|
.align 2, 0
|
|
_08062EC8: .4byte gMapObjects
|
|
_08062ECC: .4byte gPlayerAvatar
|
|
_08062ED0:
|
|
ldr r5, _08062F00 @ =gUnknown_83A6390
|
|
bl player_get_x22
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 22
|
|
adds r4, r5
|
|
bl player_get_direction_upper_nybble
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _08062F04 @ =MetatileBehavior_IsTallGrass
|
|
ldr r4, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08062EF8:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062F00: .4byte gUnknown_83A6390
|
|
_08062F04: .4byte MetatileBehavior_IsTallGrass
|
|
thumb_func_end mss_08062EA4
|
|
|
|
thumb_func_start FieldObjectCB_TreeDisguise
|
|
FieldObjectCB_TreeDisguise: @ 8062F08
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08062F6C @ =gMapObjects
|
|
adds r4, r1, r0
|
|
adds r6, r4, 0
|
|
adds r6, 0x21
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _08062F30
|
|
cmp r0, 0x1
|
|
bne _08062F50
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _08062F50
|
|
_08062F30:
|
|
ldr r1, _08062F70 @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
adds r0, r4, 0
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0x1C
|
|
bl FieldEffectStart
|
|
strb r0, [r4, 0x1A]
|
|
movs r0, 0x1
|
|
strb r0, [r6]
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
_08062F50:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08062F6C @ =gMapObjects
|
|
adds r0, r1
|
|
ldr r2, _08062F74 @ =sub_8062F78
|
|
adds r1, r5, 0
|
|
bl FieldObjectStep
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062F6C: .4byte gMapObjects
|
|
_08062F70: .4byte gFieldEffectArguments
|
|
_08062F74: .4byte sub_8062F78
|
|
thumb_func_end FieldObjectCB_TreeDisguise
|
|
|
|
thumb_func_start sub_8062F78
|
|
sub_8062F78: @ 8062F78
|
|
push {lr}
|
|
bl npc_reset
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062F78
|
|
|
|
thumb_func_start FieldObjectCB_MountainDisguise
|
|
FieldObjectCB_MountainDisguise: @ 8062F84
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08062FE8 @ =gMapObjects
|
|
adds r4, r1, r0
|
|
adds r6, r4, 0
|
|
adds r6, 0x21
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _08062FAC
|
|
cmp r0, 0x1
|
|
bne _08062FCC
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _08062FCC
|
|
_08062FAC:
|
|
ldr r1, _08062FEC @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
adds r0, r4, 0
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0x1D
|
|
bl FieldEffectStart
|
|
strb r0, [r4, 0x1A]
|
|
movs r0, 0x1
|
|
strb r0, [r6]
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
_08062FCC:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08062FE8 @ =gMapObjects
|
|
adds r0, r1
|
|
ldr r2, _08062FF0 @ =sub_8062F78
|
|
adds r1, r5, 0
|
|
bl FieldObjectStep
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08062FE8: .4byte gMapObjects
|
|
_08062FEC: .4byte gFieldEffectArguments
|
|
_08062FF0: .4byte sub_8062F78
|
|
thumb_func_end FieldObjectCB_MountainDisguise
|
|
|
|
thumb_func_start FieldObjectCB_Hidden1
|
|
FieldObjectCB_Hidden1: @ 8062FF4
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r3, r1]
|
|
ldr r4, _08063050 @ =gMapObjects
|
|
cmp r0, 0
|
|
bne _08063034
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x3]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x3]
|
|
adds r2, r3, 0
|
|
adds r2, 0x42
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r3, 0x5]
|
|
movs r1, 0xC
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x5]
|
|
ldrh r0, [r3, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x3C]
|
|
_08063034:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r2, _08063054 @ =sub_8063058
|
|
adds r1, r3, 0
|
|
bl FieldObjectStep
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063050: .4byte gMapObjects
|
|
_08063054: .4byte sub_8063058
|
|
thumb_func_end FieldObjectCB_Hidden1
|
|
|
|
thumb_func_start sub_8063058
|
|
sub_8063058: @ 8063058
|
|
push {r4,lr}
|
|
ldr r3, _08063074 @ =gUnknown_83A63C8
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063074: .4byte gUnknown_83A63C8
|
|
thumb_func_end sub_8063058
|
|
|
|
thumb_func_start sub_8063078
|
|
sub_8063078: @ 8063078
|
|
push {lr}
|
|
bl npc_reset
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063078
|
|
|
|
thumb_func_start sub_8063084
|
|
sub_8063084: @ 8063084
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08063096
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
_08063096:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063084
|
|
|
|
thumb_func_start sub_80630A0
|
|
sub_80630A0: @ 80630A0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080630BC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080630C0 @ =sub_80630C4
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080630BC: .4byte gMapObjects
|
|
_080630C0: .4byte sub_80630C4
|
|
thumb_func_end sub_80630A0
|
|
|
|
thumb_func_start sub_80630C4
|
|
sub_80630C4: @ 80630C4
|
|
push {r4,lr}
|
|
ldr r3, _080630E0 @ =gUnknown_83A63CC
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080630E0: .4byte gUnknown_83A63CC
|
|
thumb_func_end sub_80630C4
|
|
|
|
thumb_func_start sub_80630E4
|
|
sub_80630E4: @ 80630E4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetStepInPlaceDelay16AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80630E4
|
|
|
|
thumb_func_start sub_8063110
|
|
sub_8063110: @ 8063110
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806312C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08063130 @ =sub_8063134
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806312C: .4byte gMapObjects
|
|
_08063130: .4byte sub_8063134
|
|
thumb_func_end sub_8063110
|
|
|
|
thumb_func_start sub_8063134
|
|
sub_8063134: @ 8063134
|
|
push {r4,lr}
|
|
ldr r3, _08063150 @ =gUnknown_83A63D4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063150: .4byte gUnknown_83A63D4
|
|
thumb_func_end sub_8063134
|
|
|
|
thumb_func_start sub_8063154
|
|
sub_8063154: @ 8063154
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8064270
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063154
|
|
|
|
thumb_func_start sub_8063180
|
|
sub_8063180: @ 8063180
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806319C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080631A0 @ =sub_80631A4
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806319C: .4byte gMapObjects
|
|
_080631A0: .4byte sub_80631A4
|
|
thumb_func_end sub_8063180
|
|
|
|
thumb_func_start sub_80631A4
|
|
sub_80631A4: @ 80631A4
|
|
push {r4,lr}
|
|
ldr r3, _080631C0 @ =gUnknown_83A63DC
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080631C0: .4byte gUnknown_83A63DC
|
|
thumb_func_end sub_80631A4
|
|
|
|
thumb_func_start sub_80631C4
|
|
sub_80631C4: @ 80631C4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetStepInPlaceDelay4AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80631C4
|
|
|
|
thumb_func_start sub_80631F0
|
|
sub_80631F0: @ 80631F0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0806320C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08063210 @ =sub_8063214
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806320C: .4byte gMapObjects
|
|
_08063210: .4byte sub_8063214
|
|
thumb_func_end sub_80631F0
|
|
|
|
thumb_func_start sub_8063214
|
|
sub_8063214: @ 8063214
|
|
push {r4,lr}
|
|
ldr r3, _08063230 @ =gUnknown_83A63E4
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063230: .4byte gUnknown_83A63E4
|
|
thumb_func_end sub_8063214
|
|
|
|
thumb_func_start sub_8063234
|
|
sub_8063234: @ 8063234
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063EB8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80645C8
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063234
|
|
|
|
thumb_func_start sub_8063268
|
|
sub_8063268: @ 8063268
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806327A
|
|
movs r0, 0
|
|
b _08063280
|
|
_0806327A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_08063280:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063268
|
|
|
|
thumb_func_start sub_8063288
|
|
sub_8063288: @ 8063288
|
|
ldrb r2, [r0]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8063288
|
|
|
|
thumb_func_start sub_8063298
|
|
sub_8063298: @ 8063298
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080632B4 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080632B8 @ =sub_8063304
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080632B4: .4byte gMapObjects
|
|
_080632B8: .4byte sub_8063304
|
|
thumb_func_end sub_8063298
|
|
|
|
thumb_func_start sub_80632BC
|
|
sub_80632BC: @ 80632BC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080632D8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _080632DC @ =sub_8063324
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080632D8: .4byte gMapObjects
|
|
_080632DC: .4byte sub_8063324
|
|
thumb_func_end sub_80632BC
|
|
|
|
thumb_func_start sub_80632E0
|
|
sub_80632E0: @ 80632E0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _080632FC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _08063300 @ =sub_8063344
|
|
bl FieldObjectStep
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080632FC: .4byte gMapObjects
|
|
_08063300: .4byte sub_8063344
|
|
thumb_func_end sub_80632E0
|
|
|
|
thumb_func_start sub_8063304
|
|
sub_8063304: @ 8063304
|
|
push {r4,lr}
|
|
ldr r3, _08063320 @ =gUnknown_83A63F0
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063320: .4byte gUnknown_83A63F0
|
|
thumb_func_end sub_8063304
|
|
|
|
thumb_func_start sub_8063324
|
|
sub_8063324: @ 8063324
|
|
push {r4,lr}
|
|
ldr r3, _08063340 @ =gUnknown_83A63FC
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063340: .4byte gUnknown_83A63FC
|
|
thumb_func_end sub_8063324
|
|
|
|
thumb_func_start sub_8063344
|
|
sub_8063344: @ 8063344
|
|
push {r4,lr}
|
|
ldr r3, _08063360 @ =gUnknown_83A6404
|
|
movs r4, 0x30
|
|
ldrsh r2, [r1, r4]
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063360: .4byte gUnknown_83A6404
|
|
thumb_func_end sub_8063344
|
|
|
|
thumb_func_start sub_8063364
|
|
sub_8063364: @ 8063364
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x98
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063364
|
|
|
|
thumb_func_start sub_8063384
|
|
sub_8063384: @ 8063384
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063396
|
|
movs r0, 0
|
|
b _0806339C
|
|
_08063396:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0806339C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063384
|
|
|
|
thumb_func_start sub_80633A4
|
|
sub_80633A4: @ 80633A4
|
|
ldrb r2, [r0]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80633A4
|
|
|
|
thumb_func_start sub_80633B4
|
|
sub_80633B4: @ 80633B4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x99
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80633B4
|
|
|
|
thumb_func_start sub_80633D4
|
|
sub_80633D4: @ 80633D4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
bl npc_reset
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x9A
|
|
bl sub_80645C8
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80633D4
|
|
|
|
thumb_func_start sub_80633F4
|
|
sub_80633F4: @ 80633F4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064588
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08063406
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
_08063406:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80633F4
|
|
|
|
thumb_func_start npc_reset
|
|
npc_reset: @ 8063410
|
|
ldrb r3, [r0]
|
|
movs r2, 0x3
|
|
negs r2, r2
|
|
ands r2, r3
|
|
movs r3, 0x41
|
|
negs r3, r3
|
|
ands r2, r3
|
|
movs r3, 0x7F
|
|
ands r2, r3
|
|
strb r2, [r0]
|
|
movs r2, 0xFF
|
|
strb r2, [r0, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
bx lr
|
|
thumb_func_end npc_reset
|
|
|
|
thumb_func_start FieldObjectDirectionToImageAnimId
|
|
FieldObjectDirectionToImageAnimId: @ 8063430
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806343C @ =gUnknown_83A640C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806343C: .4byte gUnknown_83A640C
|
|
thumb_func_end FieldObjectDirectionToImageAnimId
|
|
|
|
thumb_func_start get_go_image_anim_num
|
|
get_go_image_anim_num: @ 8063440
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806344C @ =gUnknown_83A6415
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806344C: .4byte gUnknown_83A6415
|
|
thumb_func_end get_go_image_anim_num
|
|
|
|
thumb_func_start get_go_fast_image_anim_num
|
|
get_go_fast_image_anim_num: @ 8063450
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806345C @ =gUnknown_83A641E
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806345C: .4byte gUnknown_83A641E
|
|
thumb_func_end get_go_fast_image_anim_num
|
|
|
|
thumb_func_start get_go_faster_image_anim_num
|
|
get_go_faster_image_anim_num: @ 8063460
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806346C @ =gUnknown_83A6427
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806346C: .4byte gUnknown_83A6427
|
|
thumb_func_end get_go_faster_image_anim_num
|
|
|
|
thumb_func_start sub_8063470
|
|
sub_8063470: @ 8063470
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806347C @ =gUnknown_83A6430
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806347C: .4byte gUnknown_83A6430
|
|
thumb_func_end sub_8063470
|
|
|
|
thumb_func_start sub_8063480
|
|
sub_8063480: @ 8063480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806348C @ =gUnknown_83A6439
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806348C: .4byte gUnknown_83A6439
|
|
thumb_func_end sub_8063480
|
|
|
|
thumb_func_start sub_8063490
|
|
sub_8063490: @ 8063490
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806349C @ =gUnknown_83A6442
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806349C: .4byte gUnknown_83A6442
|
|
thumb_func_end sub_8063490
|
|
|
|
thumb_func_start sub_80634A0
|
|
sub_80634A0: @ 80634A0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080634AC @ =gUnknown_83A644B
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080634AC: .4byte gUnknown_83A644B
|
|
thumb_func_end sub_80634A0
|
|
|
|
thumb_func_start sub_80634B0
|
|
sub_80634B0: @ 80634B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080634BC @ =gUnknown_83A6454
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080634BC: .4byte gUnknown_83A6454
|
|
thumb_func_end sub_80634B0
|
|
|
|
thumb_func_start sub_80634C0
|
|
sub_80634C0: @ 80634C0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080634CC @ =gUnknown_83A645D
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080634CC: .4byte gUnknown_83A645D
|
|
thumb_func_end sub_80634C0
|
|
|
|
thumb_func_start sub_80634D0
|
|
sub_80634D0: @ 80634D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080634DC @ =gUnknown_83A6466
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080634DC: .4byte gUnknown_83A6466
|
|
thumb_func_end sub_80634D0
|
|
|
|
thumb_func_start sub_80634E0
|
|
sub_80634E0: @ 80634E0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080634EC @ =gUnknown_83A646F
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080634EC: .4byte gUnknown_83A646F
|
|
thumb_func_end sub_80634E0
|
|
|
|
thumb_func_start sub_80634F0
|
|
sub_80634F0: @ 80634F0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080634FC @ =gUnknown_83A6478
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080634FC: .4byte gUnknown_83A6478
|
|
thumb_func_end sub_80634F0
|
|
|
|
thumb_func_start sub_8063500
|
|
sub_8063500: @ 8063500
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806350C @ =gUnknown_83A6481
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806350C: .4byte gUnknown_83A6481
|
|
thumb_func_end sub_8063500
|
|
|
|
thumb_func_start sub_8063510
|
|
sub_8063510: @ 8063510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806351C @ =gUnknown_83A648A
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806351C: .4byte gUnknown_83A648A
|
|
thumb_func_end sub_8063510
|
|
|
|
thumb_func_start get_run_image_anim_num
|
|
get_run_image_anim_num: @ 8063520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0806352C @ =gUnknown_83A6493
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806352C: .4byte gUnknown_83A6493
|
|
thumb_func_end get_run_image_anim_num
|
|
|
|
thumb_func_start sub_8063530
|
|
sub_8063530: @ 8063530
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r1, _08063538 @ =gUnknown_83A3698
|
|
b _08063548
|
|
.align 2, 0
|
|
_08063538: .4byte gUnknown_83A3698
|
|
_0806353C:
|
|
ldr r0, [r1]
|
|
cmp r0, r2
|
|
bne _08063546
|
|
adds r0, r1, 0
|
|
b _08063550
|
|
_08063546:
|
|
adds r1, 0x8
|
|
_08063548:
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0806353C
|
|
movs r0, 0
|
|
_08063550:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063530
|
|
|
|
thumb_func_start npc_apply_anim_looping
|
|
npc_apply_anim_looping: @ 8063554
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _08063596
|
|
adds r0, r4, 0
|
|
adds r0, 0x2A
|
|
strb r2, [r0]
|
|
ldr r0, [r4, 0x8]
|
|
bl sub_8063530
|
|
adds r1, r4, 0
|
|
adds r1, 0x2B
|
|
cmp r0, 0
|
|
beq _0806358E
|
|
ldrb r2, [r1]
|
|
ldrb r3, [r0, 0x4]
|
|
cmp r2, r3
|
|
bne _08063584
|
|
ldrb r0, [r0, 0x7]
|
|
b _0806358C
|
|
_08063584:
|
|
ldrb r3, [r0, 0x5]
|
|
cmp r2, r3
|
|
bne _0806358E
|
|
ldrb r0, [r0, 0x6]
|
|
_0806358C:
|
|
strb r0, [r1]
|
|
_0806358E:
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
bl SeekSpriteAnim
|
|
_08063596:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_apply_anim_looping
|
|
|
|
thumb_func_start obj_npc_animation_step
|
|
obj_npc_animation_step: @ 806359C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _080635D4
|
|
adds r0, r4, 0
|
|
adds r0, 0x2A
|
|
strb r2, [r0]
|
|
ldr r0, [r4, 0x8]
|
|
bl sub_8063530
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _080635D4
|
|
ldrb r1, [r2, 0x5]
|
|
adds r0, r4, 0
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
ldrb r3, [r2, 0x4]
|
|
cmp r0, r3
|
|
bhi _080635CE
|
|
ldrb r1, [r2, 0x4]
|
|
_080635CE:
|
|
adds r0, r4, 0
|
|
bl SeekSpriteAnim
|
|
_080635D4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end obj_npc_animation_step
|
|
|
|
thumb_func_start sub_80635DC
|
|
sub_80635DC: @ 80635DC
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
cmp r0, r2
|
|
ble _080635F6
|
|
movs r0, 0x3
|
|
b _0806360C
|
|
_080635F6:
|
|
cmp r0, r2
|
|
bge _080635FE
|
|
movs r0, 0x4
|
|
b _0806360C
|
|
_080635FE:
|
|
lsls r1, 16
|
|
lsls r0, r3, 16
|
|
cmp r1, r0
|
|
bgt _0806360A
|
|
movs r0, 0x1
|
|
b _0806360C
|
|
_0806360A:
|
|
movs r0, 0x2
|
|
_0806360C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80635DC
|
|
|
|
thumb_func_start npc_set_running_behaviour_etc
|
|
npc_set_running_behaviour_etc: @ 8063610
|
|
push {r4,lr}
|
|
mov r12, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0
|
|
strb r1, [r0, 0x6]
|
|
adds r0, 0x21
|
|
strb r3, [r0]
|
|
adds r0, 0x1
|
|
strb r3, [r0]
|
|
ldr r4, _08063654 @ =gSprites
|
|
mov r0, r12
|
|
ldrb r2, [r0, 0x4]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r2, r4, 0
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r2, _08063658 @ =gUnknown_839FBC8
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
mov r0, r12
|
|
ldrb r1, [r0, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r3, [r0, 0x30]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063654: .4byte gSprites
|
|
_08063658: .4byte gUnknown_839FBC8
|
|
thumb_func_end npc_set_running_behaviour_etc
|
|
|
|
thumb_func_start npc_running_behaviour_by_direction
|
|
npc_running_behaviour_by_direction: @ 806365C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08063668 @ =gUnknown_83A649C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08063668: .4byte gUnknown_83A649C
|
|
thumb_func_end npc_running_behaviour_by_direction
|
|
|
|
thumb_func_start npc_block_way__next_tile
|
|
npc_block_way__next_tile: @ 806366C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
lsls r5, r1, 24
|
|
lsrs r5, 24
|
|
ldrh r1, [r6, 0x10]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, 0x12]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl MoveCoords
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
adds r3, r5, 0
|
|
bl npc_block_way
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_block_way__next_tile
|
|
|
|
thumb_func_start npc_block_way
|
|
npc_block_way: @ 80636AC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
mov r8, r7
|
|
lsrs r0, r1, 16
|
|
mov r9, r0
|
|
asrs r5, r1, 16
|
|
lsrs r0, r2, 16
|
|
mov r10, r0
|
|
asrs r4, r2, 16
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl IsCoordOutsideFieldObjectMovementRect
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080636E2
|
|
movs r0, 0x1
|
|
b _08063762
|
|
_080636E2:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063724
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapBorderIdAt
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _08063724
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r7, 0
|
|
bl IsMetatileDirectionallyImpassable
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063724
|
|
ldrb r0, [r6, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _08063728
|
|
mov r0, r8
|
|
bl CanCameraMoveInDirection
|
|
cmp r0, 0
|
|
bne _08063728
|
|
_08063724:
|
|
movs r0, 0x2
|
|
b _08063762
|
|
_08063728:
|
|
ldrb r0, [r6, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
mov r2, r9
|
|
lsls r1, r2, 16
|
|
asrs r5, r1, 16
|
|
mov r2, r10
|
|
lsls r1, r2, 16
|
|
asrs r4, r1, 16
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl IsZCoordMismatchAt
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806374C
|
|
movs r0, 0x3
|
|
b _08063762
|
|
_0806374C:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl CheckForCollisionBetweenFieldObjects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063760
|
|
movs r0, 0
|
|
b _08063762
|
|
_08063760:
|
|
movs r0, 0x4
|
|
_08063762:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_block_way
|
|
|
|
thumb_func_start sub_8063770
|
|
sub_8063770: @ 8063770
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r8, r3
|
|
lsrs r0, r1, 16
|
|
mov r9, r0
|
|
asrs r6, r1, 16
|
|
lsrs r0, r2, 16
|
|
mov r10, r0
|
|
asrs r5, r2, 16
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl IsCoordOutsideFieldObjectMovementRect
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080637E8
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GetMapBorderIdAt
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _080637E8
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
mov r3, r8
|
|
bl IsMetatileDirectionallyImpassable
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080637E8
|
|
ldrb r0, [r7, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _080637EC
|
|
mov r0, r8
|
|
bl CanCameraMoveInDirection
|
|
cmp r0, 0
|
|
bne _080637EC
|
|
_080637E8:
|
|
movs r0, 0x2
|
|
orrs r4, r0
|
|
_080637EC:
|
|
ldrb r0, [r7, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
mov r2, r9
|
|
lsls r1, r2, 16
|
|
asrs r6, r1, 16
|
|
mov r2, r10
|
|
lsls r1, r2, 16
|
|
asrs r5, r1, 16
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl IsZCoordMismatchAt
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08063814
|
|
movs r0, 0x4
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_08063814:
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl CheckForCollisionBetweenFieldObjects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806382C
|
|
movs r0, 0x8
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0806382C:
|
|
adds r0, r4, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063770
|
|
|
|
thumb_func_start IsCoordOutsideFieldObjectMovementRect
|
|
IsCoordOutsideFieldObjectMovementRect: @ 806383C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
lsls r2, 16
|
|
lsrs r5, r2, 16
|
|
ldrb r1, [r4, 0x19]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08063874
|
|
lsls r1, 28
|
|
lsrs r2, r1, 28
|
|
ldrh r0, [r4, 0xC]
|
|
subs r2, r0, r2
|
|
lsrs r1, 28
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
lsls r2, 16
|
|
lsls r0, r3, 16
|
|
asrs r3, r0, 16
|
|
cmp r2, r0
|
|
bgt _080638A0
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
blt _080638A0
|
|
_08063874:
|
|
ldrb r1, [r4, 0x19]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080638A4
|
|
lsls r1, 24
|
|
lsrs r2, r1, 28
|
|
ldrh r0, [r4, 0xE]
|
|
subs r2, r0, r2
|
|
lsrs r1, 28
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
lsls r2, 16
|
|
lsls r0, r5, 16
|
|
asrs r3, r0, 16
|
|
cmp r2, r0
|
|
bgt _080638A0
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
bge _080638A4
|
|
_080638A0:
|
|
movs r0, 0x1
|
|
b _080638A6
|
|
_080638A4:
|
|
movs r0, 0
|
|
_080638A6:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsCoordOutsideFieldObjectMovementRect
|
|
|
|
thumb_func_start IsMetatileDirectionallyImpassable
|
|
IsMetatileDirectionallyImpassable: @ 80638AC
|
|
push {r4-r7,lr}
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r2, 16
|
|
lsrs r7, r2, 16
|
|
lsls r3, 24
|
|
ldr r1, _080638F4 @ =gUnknown_83A64A8
|
|
lsrs r3, 22
|
|
subs r5, r3, 0x4
|
|
adds r1, r5, r1
|
|
ldrb r0, [r0, 0x1E]
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080638EE
|
|
ldr r4, _080638F8 @ =gUnknown_83A64B8
|
|
adds r4, r5, r4
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
bl MapGridGetMetatileBehaviorAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
bl _call_via_r1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080638FC
|
|
_080638EE:
|
|
movs r0, 0x1
|
|
b _080638FE
|
|
.align 2, 0
|
|
_080638F4: .4byte gUnknown_83A64A8
|
|
_080638F8: .4byte gUnknown_83A64B8
|
|
_080638FC:
|
|
movs r0, 0
|
|
_080638FE:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsMetatileDirectionallyImpassable
|
|
|
|
thumb_func_start CheckForCollisionBetweenFieldObjects
|
|
CheckForCollisionBetweenFieldObjects: @ 8063904
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
movs r4, 0
|
|
lsls r2, 16
|
|
asrs r5, r2, 16
|
|
_08063912:
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _08063968 @ =gMapObjects
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0806396C
|
|
cmp r2, r6
|
|
beq _0806396C
|
|
movs r0, 0x10
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r7, 16
|
|
asrs r3, r0, 16
|
|
cmp r1, r3
|
|
bne _0806393C
|
|
movs r1, 0x12
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r5
|
|
beq _0806394C
|
|
_0806393C:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r3
|
|
bne _0806396C
|
|
movs r1, 0x16
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r5
|
|
bne _0806396C
|
|
_0806394C:
|
|
ldrb r0, [r6, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
ldrb r1, [r2, 0xB]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl AreZCoordsCompatible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806396C
|
|
movs r0, 0x1
|
|
b _08063978
|
|
.align 2, 0
|
|
_08063968: .4byte gMapObjects
|
|
_0806396C:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _08063912
|
|
movs r0, 0
|
|
_08063978:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckForCollisionBetweenFieldObjects
|
|
|
|
thumb_func_start IsBerryTreeSparkling
|
|
IsBerryTreeSparkling: @ 8063980
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080639CC
|
|
ldr r3, _080639C4 @ =gSprites
|
|
ldr r2, _080639C8 @ =gMapObjects
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x3C]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080639CC
|
|
movs r0, 0x1
|
|
b _080639CE
|
|
.align 2, 0
|
|
_080639C4: .4byte gSprites
|
|
_080639C8: .4byte gMapObjects
|
|
_080639CC:
|
|
movs r0, 0
|
|
_080639CE:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsBerryTreeSparkling
|
|
|
|
thumb_func_start sub_80639D4
|
|
sub_80639D4: @ 80639D4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063A12
|
|
ldr r3, _08063A18 @ =gSprites
|
|
ldr r2, _08063A1C @ =gMapObjects
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r2, [r1, 0x3C]
|
|
movs r0, 0x4
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x3C]
|
|
_08063A12:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063A18: .4byte gSprites
|
|
_08063A1C: .4byte gMapObjects
|
|
thumb_func_end sub_80639D4
|
|
|
|
thumb_func_start MoveCoords
|
|
MoveCoords: @ 8063A20
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
ldr r3, _08063A40 @ =gUnknown_83A64C8
|
|
lsrs r0, 22
|
|
adds r0, r3
|
|
ldrh r3, [r0]
|
|
ldrh r4, [r1]
|
|
adds r3, r4
|
|
strh r3, [r1]
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063A40: .4byte gUnknown_83A64C8
|
|
thumb_func_end MoveCoords
|
|
|
|
thumb_func_start sub_8063A44
|
|
sub_8063A44: @ 8063A44
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
ldr r3, _08063A68 @ =gUnknown_83A64C8
|
|
lsrs r0, 22
|
|
adds r0, r3
|
|
ldrh r3, [r0]
|
|
lsls r3, 4
|
|
ldrh r4, [r1]
|
|
adds r3, r4
|
|
strh r3, [r1]
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 4
|
|
ldrh r1, [r2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063A68: .4byte gUnknown_83A64C8
|
|
thumb_func_end sub_8063A44
|
|
|
|
thumb_func_start sub_8063A6C
|
|
sub_8063A6C: @ 8063A6C
|
|
push {r4-r7,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, [sp, 0x14]
|
|
lsls r0, 24
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r7, r3, 0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
mov r12, r6
|
|
ldr r1, _08063AD0 @ =gUnknown_83A64C8
|
|
lsrs r0, 22
|
|
adds r5, r0, r1
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0
|
|
ble _08063A98
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
ldrh r3, [r4]
|
|
adds r0, r3
|
|
strh r0, [r4]
|
|
_08063A98:
|
|
cmp r1, 0
|
|
bge _08063AA6
|
|
ldrh r1, [r4]
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
subs r1, r0
|
|
strh r1, [r4]
|
|
_08063AA6:
|
|
movs r0, 0x2
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0
|
|
ble _08063AB8
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
ldrh r3, [r2]
|
|
adds r0, r3
|
|
strh r0, [r2]
|
|
_08063AB8:
|
|
cmp r1, 0
|
|
bge _08063AC8
|
|
ldrh r1, [r2]
|
|
mov r3, r12
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
subs r1, r0
|
|
strh r1, [r2]
|
|
_08063AC8:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063AD0: .4byte gUnknown_83A64C8
|
|
thumb_func_end sub_8063A6C
|
|
|
|
thumb_func_start sub_8063AD4
|
|
sub_8063AD4: @ 8063AD4
|
|
push {r4,r5,lr}
|
|
ldr r5, _08063B10 @ =gSaveBlock1Ptr
|
|
ldr r4, [r5]
|
|
ldrh r4, [r4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
subs r0, r4
|
|
lsls r0, 4
|
|
strh r0, [r2]
|
|
ldr r0, [r5]
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
strh r1, [r3]
|
|
ldr r1, _08063B14 @ =gUnknown_300506C
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _08063B18 @ =gUnknown_3005068
|
|
ldrh r0, [r3]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r3]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063B10: .4byte gSaveBlock1Ptr
|
|
_08063B14: .4byte gUnknown_300506C
|
|
_08063B18: .4byte gUnknown_3005068
|
|
thumb_func_end sub_8063AD4
|
|
|
|
thumb_func_start sub_8063B1C
|
|
sub_8063B1C: @ 8063B1C
|
|
push {r4-r7,lr}
|
|
adds r7, r2, 0
|
|
mov r12, r3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, _08063BB0 @ =gUnknown_300506C
|
|
ldrh r0, [r0]
|
|
negs r0, r0
|
|
ldr r1, _08063BB4 @ =gUnknown_3005050
|
|
ldr r2, [r1, 0x10]
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, _08063BB8 @ =gUnknown_3005068
|
|
ldrh r0, [r0]
|
|
negs r0, r0
|
|
ldr r1, [r1, 0x14]
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r2, 0
|
|
ble _08063B56
|
|
lsls r0, r3, 16
|
|
movs r3, 0x80
|
|
lsls r3, 13
|
|
adds r0, r3
|
|
lsrs r3, r0, 16
|
|
_08063B56:
|
|
cmp r2, 0
|
|
bge _08063B62
|
|
lsls r0, r3, 16
|
|
ldr r2, _08063BBC @ =0xfff00000
|
|
adds r0, r2
|
|
lsrs r3, r0, 16
|
|
_08063B62:
|
|
cmp r1, 0
|
|
ble _08063B70
|
|
lsls r0, r4, 16
|
|
movs r2, 0x80
|
|
lsls r2, 13
|
|
adds r0, r2
|
|
lsrs r4, r0, 16
|
|
_08063B70:
|
|
cmp r1, 0
|
|
bge _08063B7C
|
|
lsls r0, r4, 16
|
|
ldr r1, _08063BBC @ =0xfff00000
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
_08063B7C:
|
|
ldr r2, _08063BC0 @ =gSaveBlock1Ptr
|
|
ldr r0, [r2]
|
|
ldrh r1, [r0]
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
lsls r1, r3, 16
|
|
asrs r1, 16
|
|
adds r1, r0
|
|
strh r1, [r7]
|
|
ldr r0, [r2]
|
|
ldrh r1, [r0, 0x2]
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
adds r1, r0
|
|
mov r2, r12
|
|
strh r1, [r2]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063BB0: .4byte gUnknown_300506C
|
|
_08063BB4: .4byte gUnknown_3005050
|
|
_08063BB8: .4byte gUnknown_3005068
|
|
_08063BBC: .4byte 0xfff00000
|
|
_08063BC0: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_8063B1C
|
|
|
|
thumb_func_start sub_8063BC4
|
|
sub_8063BC4: @ 8063BC4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
adds r4, r2, 0
|
|
adds r5, r3, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
mov r2, r8
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r2, r6, 0
|
|
mov r3, r8
|
|
bl sub_8063B1C
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
ldrh r0, [r6]
|
|
adds r4, r0
|
|
strh r4, [r6]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
mov r1, r8
|
|
ldrh r1, [r1]
|
|
adds r5, r1
|
|
mov r2, r8
|
|
strh r5, [r2]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8063BC4
|
|
|
|
thumb_func_start GetFieldObjectMovingCameraOffset
|
|
GetFieldObjectMovingCameraOffset: @ 8063C10
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
strh r0, [r1]
|
|
ldr r3, _08063C4C @ =gUnknown_3005050
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, 0
|
|
ble _08063C26
|
|
movs r0, 0x1
|
|
strh r0, [r2]
|
|
_08063C26:
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, 0
|
|
bge _08063C32
|
|
ldrh r0, [r2]
|
|
subs r0, 0x1
|
|
strh r0, [r2]
|
|
_08063C32:
|
|
ldr r2, [r3, 0x14]
|
|
cmp r2, 0
|
|
ble _08063C3E
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_08063C3E:
|
|
cmp r2, 0
|
|
bge _08063C48
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
_08063C48:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08063C4C: .4byte gUnknown_3005050
|
|
thumb_func_end GetFieldObjectMovingCameraOffset
|
|
|
|
thumb_func_start FieldObjectMoveDestCoords
|
|
FieldObjectMoveDestCoords: @ 8063C50
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r4, [r0, 0x10]
|
|
strh r4, [r2]
|
|
ldrh r0, [r0, 0x12]
|
|
strh r0, [r3]
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
bl MoveCoords
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectMoveDestCoords
|
|
|
|
thumb_func_start FieldObjectIsMovementOverridden
|
|
FieldObjectIsMovementOverridden: @ 8063C70
|
|
push {lr}
|
|
ldrb r1, [r0]
|
|
movs r0, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063C80
|
|
movs r0, 0
|
|
b _08063C82
|
|
_08063C80:
|
|
movs r0, 0x1
|
|
_08063C82:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectIsMovementOverridden
|
|
|
|
thumb_func_start FieldObjectIsSpecialAnimActive
|
|
FieldObjectIsSpecialAnimActive: @ 8063C88
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _08063C9E
|
|
ldrb r0, [r1, 0x1C]
|
|
cmp r0, 0xFF
|
|
beq _08063C9E
|
|
movs r0, 0x1
|
|
b _08063CA0
|
|
_08063C9E:
|
|
movs r0, 0
|
|
_08063CA0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectIsSpecialAnimActive
|
|
|
|
thumb_func_start FieldObjectSetHeldMovement
|
|
FieldObjectSetHeldMovement: @ 8063CA4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
bl sub_8112CAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08063CC8
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsMovementOverridden
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08063CCE
|
|
movs r0, 0x1
|
|
b _08063CF4
|
|
_08063CC8:
|
|
adds r0, r4, 0
|
|
bl FieldObjectClearAnimIfSpecialAnimActive
|
|
_08063CCE:
|
|
adds r0, r4, 0
|
|
bl npc_sync_anim_pause_bits
|
|
movs r3, 0
|
|
strb r5, [r4, 0x1C]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldr r2, _08063CFC @ =gSprites
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r3, [r0, 0x32]
|
|
movs r0, 0
|
|
_08063CF4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063CFC: .4byte gSprites
|
|
thumb_func_end FieldObjectSetHeldMovement
|
|
|
|
thumb_func_start FieldObjectForceSetSpecialAnim
|
|
FieldObjectForceSetSpecialAnim: @ 8063D00
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
bl FieldObjectClearAnimIfSpecialAnimActive
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetHeldMovement
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectForceSetSpecialAnim
|
|
|
|
thumb_func_start FieldObjectClearAnimIfSpecialAnimActive
|
|
FieldObjectClearAnimIfSpecialAnimActive: @ 8063D1C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _08063D2E
|
|
adds r0, r1, 0
|
|
bl FieldObjectClearAnim
|
|
_08063D2E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectClearAnimIfSpecialAnimActive
|
|
|
|
thumb_func_start FieldObjectClearAnim
|
|
FieldObjectClearAnim: @ 8063D34
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x1C]
|
|
ldrb r2, [r0]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x7F
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r3, _08063D64 @ =gSprites
|
|
ldrb r2, [r0, 0x4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
movs r2, 0
|
|
strh r2, [r1, 0x30]
|
|
ldrb r1, [r0, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
strh r2, [r0, 0x32]
|
|
bx lr
|
|
.align 2, 0
|
|
_08063D64: .4byte gSprites
|
|
thumb_func_end FieldObjectClearAnim
|
|
|
|
thumb_func_start FieldObjectCheckHeldMovementStatus
|
|
FieldObjectCheckHeldMovementStatus: @ 8063D68
|
|
push {lr}
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 25
|
|
cmp r0, 0
|
|
blt _08063D76
|
|
movs r0, 0x10
|
|
b _08063D78
|
|
_08063D76:
|
|
lsrs r0, r1, 7
|
|
_08063D78:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectCheckHeldMovementStatus
|
|
|
|
thumb_func_start FieldObjectClearHeldMovementIfFinished
|
|
FieldObjectClearHeldMovementIfFinished: @ 8063D7C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl FieldObjectCheckHeldMovementStatus
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08063D96
|
|
cmp r4, 0x10
|
|
beq _08063D96
|
|
adds r0, r5, 0
|
|
bl FieldObjectClearAnimIfSpecialAnimActive
|
|
_08063D96:
|
|
adds r0, r4, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectClearHeldMovementIfFinished
|
|
|
|
thumb_func_start FieldObjectGetSpecialAnim
|
|
FieldObjectGetSpecialAnim: @ 8063DA0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _08063DB0
|
|
movs r0, 0xFF
|
|
b _08063DB2
|
|
_08063DB0:
|
|
ldrb r0, [r1, 0x1C]
|
|
_08063DB2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectGetSpecialAnim
|
|
|
|
thumb_func_start FieldObjectStep
|
|
FieldObjectStep: @ 8063DB8
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
bl DoGroundEffects_OnSpawn
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80679C8
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsSpecialAnimActive
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08063DE2
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectExecSpecialAnim
|
|
b _08063DF8
|
|
_08063DE2:
|
|
ldrb r0, [r4, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08063DF8
|
|
_08063DEA:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl _call_via_r6
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063DEA
|
|
_08063DF8:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl DoGroundEffects_OnBeginStep
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl DoGroundEffects_OnFinishStep
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_obj_transfer_image_anim_pause_flag
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80679F8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectUpdateSubpriority
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectStep
|
|
|
|
thumb_func_start sub_8063E28
|
|
sub_8063E28: @ 8063E28
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl DoGroundEffects_OnSpawn
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80679C8
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsSpecialAnimActive
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08063E5C
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08063E5C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064544
|
|
_08063E5C:
|
|
ldrb r0, [r4, 0x1E]
|
|
bl MetatileBehavior_IsIce_2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08063E78
|
|
ldrb r0, [r4, 0x1E]
|
|
bl MetatileBehavior_IsUnknownMovement48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08063E80
|
|
_08063E78:
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
b _08063E88
|
|
_08063E80:
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
_08063E88:
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl DoGroundEffects_OnBeginStep
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl DoGroundEffects_OnFinishStep
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_obj_transfer_image_anim_pause_flag
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80679F8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectUpdateSubpriority
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8063E28
|
|
|
|
thumb_func_start sub_8063EB8
|
|
sub_8063EB8: @ 8063EB8
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08063EE0 @ =gUnknown_83A64EC
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063ED0
|
|
movs r4, 0
|
|
_08063ED0:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063EE0: .4byte gUnknown_83A64EC
|
|
thumb_func_end sub_8063EB8
|
|
|
|
thumb_func_start sub_8063EE4
|
|
sub_8063EE4: @ 8063EE4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08063F0C @ =gUnknown_83A64F1
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063EFC
|
|
movs r4, 0
|
|
_08063EFC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063F0C: .4byte gUnknown_83A64F1
|
|
thumb_func_end sub_8063EE4
|
|
|
|
thumb_func_start sub_8063F10
|
|
sub_8063F10: @ 8063F10
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x4
|
|
bls _08063F1C
|
|
movs r1, 0
|
|
_08063F1C:
|
|
ldr r0, _08063F28 @ =gUnknown_83A64F6
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063F28: .4byte gUnknown_83A64F6
|
|
thumb_func_end sub_8063F10
|
|
|
|
thumb_func_start sub_8063F2C
|
|
sub_8063F2C: @ 8063F2C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08063F54 @ =gUnknown_83A64FB
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063F44
|
|
movs r4, 0
|
|
_08063F44:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063F54: .4byte gUnknown_83A64FB
|
|
thumb_func_end sub_8063F2C
|
|
|
|
thumb_func_start sub_8063F58
|
|
sub_8063F58: @ 8063F58
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08063F80 @ =gUnknown_83A6500
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063F70
|
|
movs r4, 0
|
|
_08063F70:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063F80: .4byte gUnknown_83A6500
|
|
thumb_func_end sub_8063F58
|
|
|
|
thumb_func_start sub_8063F84
|
|
sub_8063F84: @ 8063F84
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08063FAC @ =gUnknown_83A6505
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063F9C
|
|
movs r4, 0
|
|
_08063F9C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063FAC: .4byte gUnknown_83A6505
|
|
thumb_func_end sub_8063F84
|
|
|
|
thumb_func_start sub_8063FB0
|
|
sub_8063FB0: @ 8063FB0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08063FD8 @ =gUnknown_83A650A
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063FC8
|
|
movs r4, 0
|
|
_08063FC8:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08063FD8: .4byte gUnknown_83A650A
|
|
thumb_func_end sub_8063FB0
|
|
|
|
thumb_func_start sub_8063FDC
|
|
sub_8063FDC: @ 8063FDC
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064004 @ =gUnknown_83A650F
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08063FF4
|
|
movs r4, 0
|
|
_08063FF4:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064004: .4byte gUnknown_83A650F
|
|
thumb_func_end sub_8063FDC
|
|
|
|
thumb_func_start sub_8064008
|
|
sub_8064008: @ 8064008
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064030 @ =gUnknown_83A6514
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064020
|
|
movs r4, 0
|
|
_08064020:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064030: .4byte gUnknown_83A6514
|
|
thumb_func_end sub_8064008
|
|
|
|
thumb_func_start sub_8064034
|
|
sub_8064034: @ 8064034
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806405C @ =gUnknown_83A6519
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806404C
|
|
movs r4, 0
|
|
_0806404C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806405C: .4byte gUnknown_83A6519
|
|
thumb_func_end sub_8064034
|
|
|
|
thumb_func_start sub_8064060
|
|
sub_8064060: @ 8064060
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064088 @ =gUnknown_83A651E
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064078
|
|
movs r4, 0
|
|
_08064078:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064088: .4byte gUnknown_83A651E
|
|
thumb_func_end sub_8064060
|
|
|
|
thumb_func_start sub_806408C
|
|
sub_806408C: @ 806408C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080640B4 @ =gUnknown_83A6523
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080640A4
|
|
movs r4, 0
|
|
_080640A4:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080640B4: .4byte gUnknown_83A6523
|
|
thumb_func_end sub_806408C
|
|
|
|
thumb_func_start sub_80640B8
|
|
sub_80640B8: @ 80640B8
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080640E0 @ =gUnknown_83A6528
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080640D0
|
|
movs r4, 0
|
|
_080640D0:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080640E0: .4byte gUnknown_83A6528
|
|
thumb_func_end sub_80640B8
|
|
|
|
thumb_func_start sub_80640E4
|
|
sub_80640E4: @ 80640E4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806410C @ =gUnknown_83A652D
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080640FC
|
|
movs r4, 0
|
|
_080640FC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806410C: .4byte gUnknown_83A652D
|
|
thumb_func_end sub_80640E4
|
|
|
|
thumb_func_start GetJumpLedgeAnimId
|
|
GetJumpLedgeAnimId: @ 8064110
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064138 @ =gUnknown_83A6532
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064128
|
|
movs r4, 0
|
|
_08064128:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064138: .4byte gUnknown_83A6532
|
|
thumb_func_end GetJumpLedgeAnimId
|
|
|
|
thumb_func_start sub_806413C
|
|
sub_806413C: @ 806413C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064164 @ =gUnknown_83A6537
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064154
|
|
movs r4, 0
|
|
_08064154:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064164: .4byte gUnknown_83A6537
|
|
thumb_func_end sub_806413C
|
|
|
|
thumb_func_start sub_8064168
|
|
sub_8064168: @ 8064168
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064190 @ =gUnknown_83A653C
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064180
|
|
movs r4, 0
|
|
_08064180:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064190: .4byte gUnknown_83A653C
|
|
thumb_func_end sub_8064168
|
|
|
|
thumb_func_start sub_8064194
|
|
sub_8064194: @ 8064194
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080641BC @ =gUnknown_83A6541
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080641AC
|
|
movs r4, 0
|
|
_080641AC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080641BC: .4byte gUnknown_83A6541
|
|
thumb_func_end sub_8064194
|
|
|
|
thumb_func_start sub_80641C0
|
|
sub_80641C0: @ 80641C0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080641E8 @ =gUnknown_83A6546
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080641D8
|
|
movs r4, 0
|
|
_080641D8:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080641E8: .4byte gUnknown_83A6546
|
|
thumb_func_end sub_80641C0
|
|
|
|
thumb_func_start sub_80641EC
|
|
sub_80641EC: @ 80641EC
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064214 @ =gUnknown_83A654B
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064204
|
|
movs r4, 0
|
|
_08064204:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064214: .4byte gUnknown_83A654B
|
|
thumb_func_end sub_80641EC
|
|
|
|
thumb_func_start GetStepInPlaceDelay32AnimId
|
|
GetStepInPlaceDelay32AnimId: @ 8064218
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064240 @ =gUnknown_83A6550
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064230
|
|
movs r4, 0
|
|
_08064230:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064240: .4byte gUnknown_83A6550
|
|
thumb_func_end GetStepInPlaceDelay32AnimId
|
|
|
|
thumb_func_start GetStepInPlaceDelay16AnimId
|
|
GetStepInPlaceDelay16AnimId: @ 8064244
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806426C @ =gUnknown_83A6555
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806425C
|
|
movs r4, 0
|
|
_0806425C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806426C: .4byte gUnknown_83A6555
|
|
thumb_func_end GetStepInPlaceDelay16AnimId
|
|
|
|
thumb_func_start sub_8064270
|
|
sub_8064270: @ 8064270
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064298 @ =gUnknown_83A655A
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064288
|
|
movs r4, 0
|
|
_08064288:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064298: .4byte gUnknown_83A655A
|
|
thumb_func_end sub_8064270
|
|
|
|
thumb_func_start GetStepInPlaceDelay4AnimId
|
|
GetStepInPlaceDelay4AnimId: @ 806429C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080642C4 @ =gUnknown_83A655F
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080642B4
|
|
movs r4, 0
|
|
_080642B4:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080642C4: .4byte gUnknown_83A655F
|
|
thumb_func_end GetStepInPlaceDelay4AnimId
|
|
|
|
thumb_func_start FieldObjectFaceOppositeDirection
|
|
FieldObjectFaceOppositeDirection: @ 80642C8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl GetOppositeDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8063EB8
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetHeldMovement
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectFaceOppositeDirection
|
|
|
|
thumb_func_start sub_80642F4
|
|
sub_80642F4: @ 80642F4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806431C @ =gUnknown_83A6564
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806430C
|
|
movs r4, 0
|
|
_0806430C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806431C: .4byte gUnknown_83A6564
|
|
thumb_func_end sub_80642F4
|
|
|
|
thumb_func_start sub_8064320
|
|
sub_8064320: @ 8064320
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064348 @ =gUnknown_83A6569
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064338
|
|
movs r4, 0
|
|
_08064338:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064348: .4byte gUnknown_83A6569
|
|
thumb_func_end sub_8064320
|
|
|
|
thumb_func_start sub_806434C
|
|
sub_806434C: @ 806434C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064374 @ =gUnknown_83A656E
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064364
|
|
movs r4, 0
|
|
_08064364:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064374: .4byte gUnknown_83A656E
|
|
thumb_func_end sub_806434C
|
|
|
|
thumb_func_start sub_8064378
|
|
sub_8064378: @ 8064378
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080643A0 @ =gUnknown_83A6573
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064390
|
|
movs r4, 0
|
|
_08064390:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080643A0: .4byte gUnknown_83A6573
|
|
thumb_func_end sub_8064378
|
|
|
|
thumb_func_start sub_80643A4
|
|
sub_80643A4: @ 80643A4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080643CC @ =gUnknown_83A6578
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080643BC
|
|
movs r4, 0
|
|
_080643BC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080643CC: .4byte gUnknown_83A6578
|
|
thumb_func_end sub_80643A4
|
|
|
|
thumb_func_start sub_80643D0
|
|
sub_80643D0: @ 80643D0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080643F8 @ =gUnknown_83A657D
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080643E8
|
|
movs r4, 0
|
|
_080643E8:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080643F8: .4byte gUnknown_83A657D
|
|
thumb_func_end sub_80643D0
|
|
|
|
thumb_func_start sub_80643FC
|
|
sub_80643FC: @ 80643FC
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064424 @ =gUnknown_83A6582
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064414
|
|
movs r4, 0
|
|
_08064414:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064424: .4byte gUnknown_83A6582
|
|
thumb_func_end sub_80643FC
|
|
|
|
thumb_func_start sub_8064428
|
|
sub_8064428: @ 8064428
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08064450 @ =gUnknown_83A6587
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08064440
|
|
movs r4, 0
|
|
_08064440:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064450: .4byte gUnknown_83A6587
|
|
thumb_func_end sub_8064428
|
|
|
|
thumb_func_start sub_8064454
|
|
sub_8064454: @ 8064454
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806447C @ =gUnknown_83A658C
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806446C
|
|
movs r4, 0
|
|
_0806446C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806447C: .4byte gUnknown_83A658C
|
|
thumb_func_end sub_8064454
|
|
|
|
thumb_func_start GetOppositeDirection
|
|
GetOppositeDirection: @ 8064480
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080644A4 @ =gUnknown_83A6591
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
subs r1, r4, 0x1
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x7
|
|
bhi _080644A8
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
b _080644AA
|
|
.align 2, 0
|
|
_080644A4: .4byte gUnknown_83A6591
|
|
_080644A8:
|
|
adds r0, r4, 0
|
|
_080644AA:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetOppositeDirection
|
|
|
|
thumb_func_start zffu_offset_calc
|
|
zffu_offset_calc: @ 80644B4
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080644C8 @ =gUnknown_83A6599
|
|
lsrs r0, 22
|
|
subs r0, 0x5
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080644C8: .4byte gUnknown_83A6599
|
|
thumb_func_end zffu_offset_calc
|
|
|
|
thumb_func_start state_to_direction
|
|
state_to_direction: @ 80644CC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r1, 0
|
|
beq _080644EC
|
|
cmp r2, 0
|
|
beq _080644EC
|
|
cmp r1, 0x4
|
|
bhi _080644EC
|
|
cmp r2, 0x4
|
|
bls _080644F0
|
|
_080644EC:
|
|
movs r0, 0
|
|
b _08064502
|
|
_080644F0:
|
|
adds r1, r2, 0
|
|
bl zffu_offset_calc
|
|
ldr r2, _08064508 @ =gUnknown_83A65A9
|
|
lsls r1, r4, 2
|
|
subs r1, 0x5
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
_08064502:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08064508: .4byte gUnknown_83A65A9
|
|
thumb_func_end state_to_direction
|
|
|
|
thumb_func_start FieldObjectExecSpecialAnim
|
|
FieldObjectExecSpecialAnim: @ 806450C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, _08064540 @ =gUnknown_83A65BC
|
|
ldrb r0, [r4, 0x1C]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r3, 0x32
|
|
ldrsh r2, [r1, r3]
|
|
ldr r0, [r0]
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldr r2, [r2]
|
|
adds r0, r4, 0
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08064538
|
|
ldrb r0, [r4]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
_08064538:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08064540: .4byte gUnknown_83A65BC
|
|
thumb_func_end FieldObjectExecSpecialAnim
|
|
|
|
thumb_func_start sub_8064544
|
|
sub_8064544: @ 8064544
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, _08064584 @ =gUnknown_83A65BC
|
|
ldrb r0, [r4, 0x1C]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r3, 0x32
|
|
ldrsh r2, [r1, r3]
|
|
ldr r0, [r0]
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldr r2, [r2]
|
|
adds r0, r4, 0
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806457C
|
|
ldrb r0, [r4]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r4, 0x5]
|
|
cmp r0, 0x61
|
|
bne _0806457C
|
|
adds r0, r4, 0
|
|
bl sub_806DE28
|
|
_0806457C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08064584: .4byte gUnknown_83A65BC
|
|
thumb_func_end sub_8064544
|
|
|
|
thumb_func_start sub_8064588
|
|
sub_8064588: @ 8064588
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _080645B4 @ =gUnknown_83A65BC
|
|
ldrb r0, [r4, 0x1C]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r2, 0x32
|
|
ldrsh r1, [r5, r2]
|
|
ldr r0, [r0]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080645B8
|
|
movs r0, 0
|
|
b _080645C2
|
|
.align 2, 0
|
|
_080645B4: .4byte gUnknown_83A65BC
|
|
_080645B8:
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080645C2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064588
|
|
|
|
thumb_func_start sub_80645C8
|
|
sub_80645C8: @ 80645C8
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
movs r0, 0
|
|
strb r4, [r3, 0x1C]
|
|
strh r0, [r1, 0x32]
|
|
ldr r0, _080645F0 @ =gUnknown_3005E88
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080645EA
|
|
ldrb r0, [r3, 0x8]
|
|
ldrb r1, [r3, 0x9]
|
|
ldrb r2, [r3, 0xA]
|
|
adds r3, r4, 0
|
|
bl sub_81124EC
|
|
_080645EA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080645F0: .4byte gUnknown_3005E88
|
|
thumb_func_end sub_80645C8
|
|
|
|
thumb_func_start an_look_any
|
|
an_look_any: @ 80645F4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r1, r2, 24
|
|
lsrs r1, 24
|
|
bl FieldObjectSetDirection
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_go_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl obj_npc_animation_step
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end an_look_any
|
|
|
|
thumb_func_start sub_8064638
|
|
sub_8064638: @ 8064638
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064638
|
|
|
|
thumb_func_start sub_8064648
|
|
sub_8064648: @ 8064648
|
|
push {lr}
|
|
movs r2, 0x2
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064648
|
|
|
|
thumb_func_start sub_8064658
|
|
sub_8064658: @ 8064658
|
|
push {lr}
|
|
movs r2, 0x3
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064658
|
|
|
|
thumb_func_start sub_8064668
|
|
sub_8064668: @ 8064668
|
|
push {lr}
|
|
movs r2, 0x4
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064668
|
|
|
|
thumb_func_start sub_8064678
|
|
sub_8064678: @ 8064678
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
mov r9, r1
|
|
adds r4, r2, 0
|
|
adds r6, r3, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldrh r1, [r0, 0x10]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
mov r1, r8
|
|
ldrh r0, [r1, 0x12]
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
strh r0, [r5]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl MoveCoords
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
mov r0, r8
|
|
bl npc_coords_shift
|
|
mov r0, r9
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl oamt_npc_ministep_reset
|
|
mov r2, r9
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
mov r1, r9
|
|
strh r0, [r1, 0x32]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064678
|
|
|
|
thumb_func_start do_go_anim
|
|
do_go_anim: @ 80646FC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
adds r5, r0, 0
|
|
mov r8, r1
|
|
adds r4, r3, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, sp
|
|
ldr r0, _08064754 @ =gUnknown_83A6884
|
|
ldm r0!, {r3,r6,r7}
|
|
stm r1!, {r3,r6,r7}
|
|
ldm r0!, {r3,r6}
|
|
stm r1!, {r3,r6}
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
adds r3, r4, 0
|
|
bl sub_8064678
|
|
lsls r4, 2
|
|
mov r7, sp
|
|
adds r1, r7, r4
|
|
ldrb r0, [r5, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl npc_apply_anim_looping
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08064754: .4byte gUnknown_83A6884
|
|
thumb_func_end do_go_anim
|
|
|
|
thumb_func_start do_run_anim
|
|
do_run_anim: @ 8064758
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r3, 0x1
|
|
bl sub_8064678
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_run_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end do_run_anim
|
|
|
|
thumb_func_start npc_obj_ministep_stop_on_arrival
|
|
npc_obj_ministep_stop_on_arrival: @ 8064788
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl obj_npc_ministep
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806479E
|
|
movs r0, 0
|
|
b _080647BA
|
|
_0806479E:
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
_080647BA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_obj_ministep_stop_on_arrival
|
|
|
|
thumb_func_start sub_80647C0
|
|
sub_80647C0: @ 80647C0
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
lsls r5, r2, 24
|
|
lsrs r5, 24
|
|
ldrh r1, [r6, 0x10]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, 0x12]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl MoveCoords
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
bl npc_coords_shift
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_8068BBC
|
|
mov r2, r8
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
strh r0, [r1, 0x32]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80647C0
|
|
|
|
thumb_func_start sub_8064830
|
|
sub_8064830: @ 8064830
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_80647C0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_go_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064830
|
|
|
|
thumb_func_start an_walk_any_2
|
|
an_walk_any_2: @ 806485C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8068BCC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064872
|
|
movs r0, 0
|
|
b _0806488E
|
|
_08064872:
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
_0806488E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end an_walk_any_2
|
|
|
|
thumb_func_start sub_8064894
|
|
sub_8064894: @ 8064894
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
lsls r5, r2, 24
|
|
lsrs r5, 24
|
|
ldrh r1, [r6, 0x10]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, 0x12]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl MoveCoords
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
bl npc_coords_shift
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_8068C58
|
|
mov r2, r8
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
strh r0, [r1, 0x32]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064894
|
|
|
|
thumb_func_start sub_8064904
|
|
sub_8064904: @ 8064904
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_8064894
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_go_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064904
|
|
|
|
thumb_func_start sub_8064930
|
|
sub_8064930: @ 8064930
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8068C68
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064946
|
|
movs r0, 0
|
|
b _08064962
|
|
_08064946:
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
_08064962:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064930
|
|
|
|
thumb_func_start sub_8064968
|
|
sub_8064968: @ 8064968
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8064904
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064988
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064968
|
|
|
|
thumb_func_start sub_8064988
|
|
sub_8064988: @ 8064988
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064930
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806499A
|
|
movs r0, 0
|
|
b _080649A0
|
|
_0806499A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080649A0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064988
|
|
|
|
thumb_func_start sub_80649A8
|
|
sub_80649A8: @ 80649A8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8064904
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80649C8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80649A8
|
|
|
|
thumb_func_start sub_80649C8
|
|
sub_80649C8: @ 80649C8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064930
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080649DA
|
|
movs r0, 0
|
|
b _080649E0
|
|
_080649DA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080649E0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80649C8
|
|
|
|
thumb_func_start sub_80649E8
|
|
sub_80649E8: @ 80649E8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8064904
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064A08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80649E8
|
|
|
|
thumb_func_start sub_8064A08
|
|
sub_8064A08: @ 8064A08
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064930
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064A1A
|
|
movs r0, 0
|
|
b _08064A20
|
|
_08064A1A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064A20:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064A08
|
|
|
|
thumb_func_start sub_8064A28
|
|
sub_8064A28: @ 8064A28
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8064904
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064A48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064A28
|
|
|
|
thumb_func_start sub_8064A48
|
|
sub_8064A48: @ 8064A48
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064930
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064A5A
|
|
movs r0, 0
|
|
b _08064A60
|
|
_08064A5A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064A60:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064A48
|
|
|
|
thumb_func_start sub_8064A68
|
|
sub_8064A68: @ 8064A68
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8064830
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064A88
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064A68
|
|
|
|
thumb_func_start sub_8064A88
|
|
sub_8064A88: @ 8064A88
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064A9A
|
|
movs r0, 0
|
|
b _08064AA0
|
|
_08064A9A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064AA0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064A88
|
|
|
|
thumb_func_start sub_8064AA8
|
|
sub_8064AA8: @ 8064AA8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8064830
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064AA8
|
|
|
|
thumb_func_start sub_8064AC8
|
|
sub_8064AC8: @ 8064AC8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064ADA
|
|
movs r0, 0
|
|
b _08064AE0
|
|
_08064ADA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064AE0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064AC8
|
|
|
|
thumb_func_start sub_8064AE8
|
|
sub_8064AE8: @ 8064AE8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8064830
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064B08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064AE8
|
|
|
|
thumb_func_start sub_8064B08
|
|
sub_8064B08: @ 8064B08
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064B1A
|
|
movs r0, 0
|
|
b _08064B20
|
|
_08064B1A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064B20:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064B08
|
|
|
|
thumb_func_start sub_8064B28
|
|
sub_8064B28: @ 8064B28
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8064830
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064B48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064B28
|
|
|
|
thumb_func_start sub_8064B48
|
|
sub_8064B48: @ 8064B48
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064B5A
|
|
movs r0, 0
|
|
b _08064B60
|
|
_08064B5A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064B60:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064B48
|
|
|
|
thumb_func_start sub_8064B68
|
|
sub_8064B68: @ 8064B68
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
lsls r5, r2, 24
|
|
lsrs r5, 24
|
|
ldrh r1, [r6, 0x10]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, 0x12]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl MoveCoords
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
bl npc_coords_shift
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_8068C08
|
|
mov r2, r8
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
strh r0, [r1, 0x32]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064B68
|
|
|
|
thumb_func_start sub_8064BD8
|
|
sub_8064BD8: @ 8064BD8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_8064B68
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_go_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8064BD8
|
|
|
|
thumb_func_start sub_8064C04
|
|
sub_8064C04: @ 8064C04
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8068C18
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064C1A
|
|
movs r0, 0
|
|
b _08064C36
|
|
_08064C1A:
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
_08064C36:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064C04
|
|
|
|
thumb_func_start sub_8064C3C
|
|
sub_8064C3C: @ 8064C3C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8064BD8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064C5C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064C3C
|
|
|
|
thumb_func_start sub_8064C5C
|
|
sub_8064C5C: @ 8064C5C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064C04
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064C6E
|
|
movs r0, 0
|
|
b _08064C74
|
|
_08064C6E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064C74:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064C5C
|
|
|
|
thumb_func_start sub_8064C7C
|
|
sub_8064C7C: @ 8064C7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8064BD8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064C9C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064C7C
|
|
|
|
thumb_func_start sub_8064C9C
|
|
sub_8064C9C: @ 8064C9C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064C04
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064CAE
|
|
movs r0, 0
|
|
b _08064CB4
|
|
_08064CAE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064CB4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064C9C
|
|
|
|
thumb_func_start sub_8064CBC
|
|
sub_8064CBC: @ 8064CBC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8064BD8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064CDC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064CBC
|
|
|
|
thumb_func_start sub_8064CDC
|
|
sub_8064CDC: @ 8064CDC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064C04
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064CEE
|
|
movs r0, 0
|
|
b _08064CF4
|
|
_08064CEE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064CF4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064CDC
|
|
|
|
thumb_func_start sub_8064CFC
|
|
sub_8064CFC: @ 8064CFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8064BD8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064D1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064CFC
|
|
|
|
thumb_func_start sub_8064D1C
|
|
sub_8064D1C: @ 8064D1C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8064C04
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064D2E
|
|
movs r0, 0
|
|
b _08064D34
|
|
_08064D2E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064D34:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064D1C
|
|
|
|
thumb_func_start sub_8064D3C
|
|
sub_8064D3C: @ 8064D3C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064D5C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064D3C
|
|
|
|
thumb_func_start sub_8064D5C
|
|
sub_8064D5C: @ 8064D5C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064D6E
|
|
movs r0, 0
|
|
b _08064D74
|
|
_08064D6E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064D74:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064D5C
|
|
|
|
thumb_func_start sub_8064D7C
|
|
sub_8064D7C: @ 8064D7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064D9C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064D7C
|
|
|
|
thumb_func_start sub_8064D9C
|
|
sub_8064D9C: @ 8064D9C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064DAE
|
|
movs r0, 0
|
|
b _08064DB4
|
|
_08064DAE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064DB4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064D9C
|
|
|
|
thumb_func_start sub_8064DBC
|
|
sub_8064DBC: @ 8064DBC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064DDC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064DBC
|
|
|
|
thumb_func_start sub_8064DDC
|
|
sub_8064DDC: @ 8064DDC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064DEE
|
|
movs r0, 0
|
|
b _08064DF4
|
|
_08064DEE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064DF4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064DDC
|
|
|
|
thumb_func_start sub_8064DFC
|
|
sub_8064DFC: @ 8064DFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8064E1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064DFC
|
|
|
|
thumb_func_start sub_8064E1C
|
|
sub_8064E1C: @ 8064E1C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08064E2E
|
|
movs r0, 0
|
|
b _08064E34
|
|
_08064E2E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08064E34:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064E1C
|
|
|
|
thumb_func_start sub_8064E3C
|
|
sub_8064E3C: @ 8064E3C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
adds r7, r0, 0
|
|
mov r10, r1
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x30]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, r8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r1, _08064EF4 @ =gUnknown_83A6958
|
|
add r0, sp, 0x4
|
|
movs r2, 0x6
|
|
bl memcpy
|
|
add r5, sp, 0xC
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
mov r6, sp
|
|
adds r6, 0xE
|
|
strh r0, [r6]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
movs r1, 0
|
|
ldrsh r3, [r0, r1]
|
|
str r3, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8063A6C
|
|
ldrh r1, [r5]
|
|
ldrh r0, [r7, 0x10]
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r6]
|
|
ldrh r0, [r7, 0x12]
|
|
adds r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r7, 0
|
|
bl npc_coords_shift
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
mov r3, r9
|
|
bl sub_8068D1C
|
|
movs r0, 0x1
|
|
mov r1, r10
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0x2C
|
|
add r10, r0
|
|
mov r0, r10
|
|
ldrb r1, [r0]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
ldrb r0, [r7]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r7]
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08064EF4: .4byte gUnknown_83A6958
|
|
thumb_func_end sub_8064E3C
|
|
|
|
thumb_func_start maybe_shadow_1
|
|
maybe_shadow_1: @ 8064EF8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, [sp, 0x10]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
bl sub_8064E3C
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_go_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
adds r0, r4, 0
|
|
bl DoShadowFieldEffect
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end maybe_shadow_1
|
|
|
|
thumb_func_start sub_8064F3C
|
|
sub_8064F3C: @ 8064F3C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r2, 0
|
|
ldr r1, _08064FC8 @ =gUnknown_83A695E
|
|
add r0, sp, 0x4
|
|
movs r2, 0x6
|
|
bl memcpy
|
|
adds r0, r7, 0
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x1
|
|
bne _08064FCC
|
|
movs r1, 0x36
|
|
ldrsh r0, [r7, r1]
|
|
lsls r0, 1
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
beq _08064FCC
|
|
add r4, sp, 0xC
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
mov r5, sp
|
|
adds r5, 0xE
|
|
strh r0, [r5]
|
|
ldrb r0, [r6, 0x18]
|
|
lsrs r0, 4
|
|
movs r2, 0x36
|
|
ldrsh r1, [r7, r2]
|
|
lsls r1, 1
|
|
add r1, sp
|
|
adds r1, 0x4
|
|
movs r2, 0
|
|
ldrsh r3, [r1, r2]
|
|
str r3, [sp]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8063A6C
|
|
ldrh r1, [r4]
|
|
ldrh r0, [r6, 0x10]
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r5]
|
|
ldrh r0, [r6, 0x12]
|
|
adds r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r0, r6, 0
|
|
bl npc_coords_shift
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
b _08064FF0
|
|
.align 2, 0
|
|
_08064FC8: .4byte gUnknown_83A695E
|
|
_08064FCC:
|
|
mov r1, r8
|
|
cmp r1, 0xFF
|
|
bne _08064FF0
|
|
adds r0, r6, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r6]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
adds r2, r7, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08064FF0:
|
|
mov r0, r8
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8064F3C
|
|
|
|
thumb_func_start sub_8065000
|
|
sub_8065000: @ 8065000
|
|
push {lr}
|
|
ldr r2, _08065010 @ =sub_8068D3C
|
|
bl sub_8064F3C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08065010: .4byte sub_8068D3C
|
|
thumb_func_end sub_8065000
|
|
|
|
thumb_func_start sub_8065014
|
|
sub_8065014: @ 8065014
|
|
push {lr}
|
|
ldr r2, _08065024 @ =sub_8068DC4
|
|
bl sub_8064F3C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08065024: .4byte sub_8068DC4
|
|
thumb_func_end sub_8065014
|
|
|
|
thumb_func_start sub_8065028
|
|
sub_8065028: @ 8065028
|
|
push {lr}
|
|
bl sub_8065000
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _0806503A
|
|
movs r0, 0
|
|
b _0806503C
|
|
_0806503A:
|
|
movs r0, 0x1
|
|
_0806503C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065028
|
|
|
|
thumb_func_start sub_8065040
|
|
sub_8065040: @ 8065040
|
|
push {lr}
|
|
bl sub_8065014
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _08065052
|
|
movs r0, 0
|
|
b _08065054
|
|
_08065052:
|
|
movs r0, 0x1
|
|
_08065054:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065040
|
|
|
|
thumb_func_start sub_8065058
|
|
sub_8065058: @ 8065058
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065000
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08065072
|
|
cmp r0, 0xFF
|
|
bne _0806509E
|
|
movs r0, 0x1
|
|
b _080650A0
|
|
_08065072:
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetOppositeDirection
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetDirection
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_go_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl obj_npc_animation_step
|
|
_0806509E:
|
|
movs r0, 0
|
|
_080650A0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065058
|
|
|
|
thumb_func_start sub_80650A8
|
|
sub_80650A8: @ 80650A8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80650D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80650A8
|
|
|
|
thumb_func_start sub_80650D4
|
|
sub_80650D4: @ 80650D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080650E8
|
|
movs r0, 0
|
|
b _080650F8
|
|
_080650E8:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080650F8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80650D4
|
|
|
|
thumb_func_start sub_8065100
|
|
sub_8065100: @ 8065100
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806512C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065100
|
|
|
|
thumb_func_start sub_806512C
|
|
sub_806512C: @ 806512C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065140
|
|
movs r0, 0
|
|
b _08065150
|
|
_08065140:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08065150:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806512C
|
|
|
|
thumb_func_start sub_8065158
|
|
sub_8065158: @ 8065158
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065184
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065158
|
|
|
|
thumb_func_start sub_8065184
|
|
sub_8065184: @ 8065184
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065198
|
|
movs r0, 0
|
|
b _080651A8
|
|
_08065198:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080651A8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065184
|
|
|
|
thumb_func_start sub_80651B0
|
|
sub_80651B0: @ 80651B0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x2
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80651DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80651B0
|
|
|
|
thumb_func_start sub_80651DC
|
|
sub_80651DC: @ 80651DC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080651F0
|
|
movs r0, 0
|
|
b _08065200
|
|
_080651F0:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08065200:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80651DC
|
|
|
|
thumb_func_start sub_8065208
|
|
sub_8065208: @ 8065208
|
|
movs r2, 0x1
|
|
strh r2, [r0, 0x32]
|
|
strh r1, [r0, 0x34]
|
|
bx lr
|
|
thumb_func_end sub_8065208
|
|
|
|
thumb_func_start sub_8065210
|
|
sub_8065210: @ 8065210
|
|
push {lr}
|
|
ldrh r0, [r1, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08065222
|
|
movs r0, 0
|
|
b _08065228
|
|
_08065222:
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0x1
|
|
_08065228:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065210
|
|
|
|
thumb_func_start sub_806522C
|
|
sub_806522C: @ 806522C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8065208
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8065210
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806522C
|
|
|
|
thumb_func_start sub_806524C
|
|
sub_806524C: @ 806524C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8065208
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8065210
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806524C
|
|
|
|
thumb_func_start sub_806526C
|
|
sub_806526C: @ 806526C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_8065208
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8065210
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806526C
|
|
|
|
thumb_func_start sub_806528C
|
|
sub_806528C: @ 806528C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_8065208
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8065210
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806528C
|
|
|
|
thumb_func_start sub_80652AC
|
|
sub_80652AC: @ 80652AC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
bl sub_8065208
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8065210
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80652AC
|
|
|
|
thumb_func_start sub_80652CC
|
|
sub_80652CC: @ 80652CC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80652EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80652CC
|
|
|
|
thumb_func_start sub_80652EC
|
|
sub_80652EC: @ 80652EC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080652FE
|
|
movs r0, 0
|
|
b _08065304
|
|
_080652FE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065304:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80652EC
|
|
|
|
thumb_func_start sub_806530C
|
|
sub_806530C: @ 806530C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806532C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806530C
|
|
|
|
thumb_func_start sub_806532C
|
|
sub_806532C: @ 806532C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806533E
|
|
movs r0, 0
|
|
b _08065344
|
|
_0806533E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065344:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806532C
|
|
|
|
thumb_func_start sub_806534C
|
|
sub_806534C: @ 806534C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806536C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806534C
|
|
|
|
thumb_func_start sub_806536C
|
|
sub_806536C: @ 806536C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806537E
|
|
movs r0, 0
|
|
b _08065384
|
|
_0806537E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065384:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806536C
|
|
|
|
thumb_func_start sub_806538C
|
|
sub_806538C: @ 806538C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80653AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806538C
|
|
|
|
thumb_func_start sub_80653AC
|
|
sub_80653AC: @ 80653AC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080653BE
|
|
movs r0, 0
|
|
b _080653C4
|
|
_080653BE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080653C4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80653AC
|
|
|
|
thumb_func_start sub_80653CC
|
|
sub_80653CC: @ 80653CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
bl obj_npc_ministep
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080653E0
|
|
movs r0, 0
|
|
b _080653F0
|
|
_080653E0:
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_080653F0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80653CC
|
|
|
|
thumb_func_start sub_80653F8
|
|
sub_80653F8: @ 80653F8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
beq _0806541A
|
|
movs r0, 0x1
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
_0806541A:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8064678
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065438
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80653F8
|
|
|
|
thumb_func_start sub_8065438
|
|
sub_8065438: @ 8065438
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl AnimateSprite
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80653CC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065456
|
|
movs r0, 0
|
|
b _0806545C
|
|
_08065456:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806545C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065438
|
|
|
|
thumb_func_start sub_8065464
|
|
sub_8065464: @ 8065464
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _08065486
|
|
movs r0, 0x2
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
_08065486:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_8064678
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80654A4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065464
|
|
|
|
thumb_func_start sub_80654A4
|
|
sub_80654A4: @ 80654A4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl AnimateSprite
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80653CC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080654C2
|
|
movs r0, 0
|
|
b _080654C8
|
|
_080654C2:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080654C8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80654A4
|
|
|
|
thumb_func_start sub_80654D0
|
|
sub_80654D0: @ 80654D0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x3
|
|
beq _080654F2
|
|
movs r0, 0x3
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
_080654F2:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_8064678
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80654D0
|
|
|
|
thumb_func_start sub_8065510
|
|
sub_8065510: @ 8065510
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl AnimateSprite
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80653CC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806552E
|
|
movs r0, 0
|
|
b _08065534
|
|
_0806552E:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08065534:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065510
|
|
|
|
thumb_func_start sub_806553C
|
|
sub_806553C: @ 806553C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x4
|
|
beq _0806555E
|
|
movs r0, 0x4
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
_0806555E:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_8064678
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806557C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806553C
|
|
|
|
thumb_func_start sub_806557C
|
|
sub_806557C: @ 806557C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl AnimateSprite
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80653CC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806559A
|
|
movs r0, 0
|
|
b _080655A0
|
|
_0806559A:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080655A0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806557C
|
|
|
|
thumb_func_start sub_80655A8
|
|
sub_80655A8: @ 80655A8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r1, r2, 24
|
|
lsrs r1, 24
|
|
bl FieldObjectSetDirection
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80655A8
|
|
|
|
thumb_func_start sub_80655D4
|
|
sub_80655D4: @ 80655D4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r5, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
beq _080655F6
|
|
movs r0, 0x1
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_080655F6:
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80655A8
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80655D4
|
|
|
|
thumb_func_start sub_8065610
|
|
sub_8065610: @ 8065610
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r5, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _08065632
|
|
movs r0, 0x2
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_08065632:
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_80655A8
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065610
|
|
|
|
thumb_func_start sub_806564C
|
|
sub_806564C: @ 806564C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r5, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x3
|
|
beq _0806566E
|
|
movs r0, 0x3
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_0806566E:
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
bl sub_80655A8
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806564C
|
|
|
|
thumb_func_start sub_8065688
|
|
sub_8065688: @ 8065688
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r5, 0x18]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0x4
|
|
beq _080656AA
|
|
movs r0, 0x4
|
|
bl FieldObjectDirectionToImageAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_080656AA:
|
|
adds r0, r4, 0
|
|
bl AnimateSprite
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_80655A8
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065688
|
|
|
|
thumb_func_start sub_80656C4
|
|
sub_80656C4: @ 80656C4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
adds r1, r2, 0
|
|
adds r4, r3, 0
|
|
ldr r5, [sp, 0x14]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
bl FieldObjectSetDirection
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl npc_apply_anim_looping
|
|
adds r2, r6, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
strh r5, [r6, 0x34]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80656C4
|
|
|
|
thumb_func_start sub_806570C
|
|
sub_806570C: @ 806570C
|
|
push {lr}
|
|
ldrh r0, [r1, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0806571E
|
|
movs r0, 0
|
|
b _08065730
|
|
_0806571E:
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x32]
|
|
adds r2, r1, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
_08065730:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806570C
|
|
|
|
thumb_func_start sub_8065734
|
|
sub_8065734: @ 8065734
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrh r1, [r4, 0x34]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806575E
|
|
adds r3, r4, 0
|
|
adds r3, 0x2C
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 26
|
|
adds r1, 0x1
|
|
movs r0, 0x3F
|
|
ands r1, r0
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_0806575E:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065734
|
|
|
|
thumb_func_start sub_8065770
|
|
sub_8065770: @ 8065770
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065734
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065770
|
|
|
|
thumb_func_start sub_80657A8
|
|
sub_80657A8: @ 80657A8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065734
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80657A8
|
|
|
|
thumb_func_start sub_80657E0
|
|
sub_80657E0: @ 80657E0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065734
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80657E0
|
|
|
|
thumb_func_start sub_8065818
|
|
sub_8065818: @ 8065818
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065734
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065818
|
|
|
|
thumb_func_start sub_8065850
|
|
sub_8065850: @ 8065850
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x10
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065850
|
|
|
|
thumb_func_start sub_8065888
|
|
sub_8065888: @ 8065888
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x10
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065888
|
|
|
|
thumb_func_start sub_80658C0
|
|
sub_80658C0: @ 80658C0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x10
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80658C0
|
|
|
|
thumb_func_start sub_80658F8
|
|
sub_80658F8: @ 80658F8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl get_go_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x10
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80658F8
|
|
|
|
thumb_func_start sub_8065930
|
|
sub_8065930: @ 8065930
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl get_go_fast_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065930
|
|
|
|
thumb_func_start sub_8065968
|
|
sub_8065968: @ 8065968
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl get_go_fast_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065968
|
|
|
|
thumb_func_start sub_80659A0
|
|
sub_80659A0: @ 80659A0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl get_go_fast_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80659A0
|
|
|
|
thumb_func_start sub_80659D8
|
|
sub_80659D8: @ 80659D8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl get_go_fast_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80659D8
|
|
|
|
thumb_func_start sub_8065A10
|
|
sub_8065A10: @ 8065A10
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl get_go_faster_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065A10
|
|
|
|
thumb_func_start sub_8065A48
|
|
sub_8065A48: @ 8065A48
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl get_go_faster_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065A48
|
|
|
|
thumb_func_start sub_8065A80
|
|
sub_8065A80: @ 8065A80
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl get_go_faster_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065A80
|
|
|
|
thumb_func_start sub_8065AB8
|
|
sub_8065AB8: @ 8065AB8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl get_go_faster_image_anim_num
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065AB8
|
|
|
|
thumb_func_start sub_8065AF0
|
|
sub_8065AF0: @ 8065AF0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065B10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065AF0
|
|
|
|
thumb_func_start sub_8065B10
|
|
sub_8065B10: @ 8065B10
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065B22
|
|
movs r0, 0
|
|
b _08065B28
|
|
_08065B22:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065B28:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065B10
|
|
|
|
thumb_func_start sub_8065B30
|
|
sub_8065B30: @ 8065B30
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065B50
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065B30
|
|
|
|
thumb_func_start sub_8065B50
|
|
sub_8065B50: @ 8065B50
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065B62
|
|
movs r0, 0
|
|
b _08065B68
|
|
_08065B62:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065B68:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065B50
|
|
|
|
thumb_func_start sub_8065B70
|
|
sub_8065B70: @ 8065B70
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065B90
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065B70
|
|
|
|
thumb_func_start sub_8065B90
|
|
sub_8065B90: @ 8065B90
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065BA2
|
|
movs r0, 0
|
|
b _08065BA8
|
|
_08065BA2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065BA8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065B90
|
|
|
|
thumb_func_start sub_8065BB0
|
|
sub_8065BB0: @ 8065BB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x2
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065BB0
|
|
|
|
thumb_func_start sub_8065BD0
|
|
sub_8065BD0: @ 8065BD0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065BE2
|
|
movs r0, 0
|
|
b _08065BE8
|
|
_08065BE2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065BE8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065BD0
|
|
|
|
thumb_func_start sub_8065BF0
|
|
sub_8065BF0: @ 8065BF0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065C10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065BF0
|
|
|
|
thumb_func_start sub_8065C10
|
|
sub_8065C10: @ 8065C10
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065C22
|
|
movs r0, 0
|
|
b _08065C28
|
|
_08065C22:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065C28:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065C10
|
|
|
|
thumb_func_start sub_8065C30
|
|
sub_8065C30: @ 8065C30
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x3
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065C50
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065C30
|
|
|
|
thumb_func_start sub_8065C50
|
|
sub_8065C50: @ 8065C50
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065C62
|
|
movs r0, 0
|
|
b _08065C68
|
|
_08065C62:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065C68:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065C50
|
|
|
|
thumb_func_start sub_8065C70
|
|
sub_8065C70: @ 8065C70
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x3
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065C90
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065C70
|
|
|
|
thumb_func_start sub_8065C90
|
|
sub_8065C90: @ 8065C90
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065CA2
|
|
movs r0, 0
|
|
b _08065CA8
|
|
_08065CA2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065CA8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065C90
|
|
|
|
thumb_func_start sub_8065CB0
|
|
sub_8065CB0: @ 8065CB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x3
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065CD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065CB0
|
|
|
|
thumb_func_start sub_8065CD0
|
|
sub_8065CD0: @ 8065CD0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065CE2
|
|
movs r0, 0
|
|
b _08065CE8
|
|
_08065CE2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065CE8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065CD0
|
|
|
|
thumb_func_start sub_8065CF0
|
|
sub_8065CF0: @ 8065CF0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x4
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065D10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065CF0
|
|
|
|
thumb_func_start sub_8065D10
|
|
sub_8065D10: @ 8065D10
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065D22
|
|
movs r0, 0
|
|
b _08065D28
|
|
_08065D22:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065D28:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065D10
|
|
|
|
thumb_func_start sub_8065D30
|
|
sub_8065D30: @ 8065D30
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x4
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065D50
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065D30
|
|
|
|
thumb_func_start sub_8065D50
|
|
sub_8065D50: @ 8065D50
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065D62
|
|
movs r0, 0
|
|
b _08065D68
|
|
_08065D62:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065D68:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065D50
|
|
|
|
thumb_func_start sub_8065D70
|
|
sub_8065D70: @ 8065D70
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x4
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065D90
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065D70
|
|
|
|
thumb_func_start sub_8065D90
|
|
sub_8065D90: @ 8065D90
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065DA2
|
|
movs r0, 0
|
|
b _08065DA8
|
|
_08065DA2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065DA8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065D90
|
|
|
|
thumb_func_start sub_8065DB0
|
|
sub_8065DB0: @ 8065DB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x4
|
|
bl do_go_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065DD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065DB0
|
|
|
|
thumb_func_start sub_8065DD0
|
|
sub_8065DD0: @ 8065DD0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065DE2
|
|
movs r0, 0
|
|
b _08065DE8
|
|
_08065DE2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065DE8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065DD0
|
|
|
|
thumb_func_start do_run_south_anim
|
|
do_run_south_anim: @ 8065DF0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl do_run_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065E10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_south_anim
|
|
|
|
thumb_func_start sub_8065E10
|
|
sub_8065E10: @ 8065E10
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065E22
|
|
movs r0, 0
|
|
b _08065E28
|
|
_08065E22:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065E28:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065E10
|
|
|
|
thumb_func_start do_run_north_anim
|
|
do_run_north_anim: @ 8065E30
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl do_run_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065E50
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_north_anim
|
|
|
|
thumb_func_start sub_8065E50
|
|
sub_8065E50: @ 8065E50
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065E62
|
|
movs r0, 0
|
|
b _08065E68
|
|
_08065E62:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065E68:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065E50
|
|
|
|
thumb_func_start do_run_west_anim
|
|
do_run_west_anim: @ 8065E70
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl do_run_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065E90
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_west_anim
|
|
|
|
thumb_func_start sub_8065E90
|
|
sub_8065E90: @ 8065E90
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065EA2
|
|
movs r0, 0
|
|
b _08065EA8
|
|
_08065EA2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065EA8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065E90
|
|
|
|
thumb_func_start do_run_east_anim
|
|
do_run_east_anim: @ 8065EB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl do_run_anim
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065ED0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_east_anim
|
|
|
|
thumb_func_start sub_8065ED0
|
|
sub_8065ED0: @ 8065ED0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065EE2
|
|
movs r0, 0
|
|
b _08065EE8
|
|
_08065EE2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065EE8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065ED0
|
|
|
|
thumb_func_start sub_8065EF0
|
|
sub_8065EF0: @ 8065EF0
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
lsls r5, r2, 24
|
|
lsrs r5, 24
|
|
ldrh r1, [r6, 0x10]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, 0x12]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r0, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl MoveCoords
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
bl npc_coords_shift
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_8068CA4
|
|
mov r2, r8
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
strh r0, [r1, 0x32]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8065EF0
|
|
|
|
thumb_func_start sub_8065F60
|
|
sub_8065F60: @ 8065F60
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_8065EF0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl get_run_image_anim_num
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8065F60
|
|
|
|
thumb_func_start sub_8065F8C
|
|
sub_8065F8C: @ 8065F8C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8068CB4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065FA2
|
|
movs r0, 0
|
|
b _08065FBE
|
|
_08065FA2:
|
|
adds r0, r4, 0
|
|
bl npc_coords_shift_still
|
|
ldrb r0, [r4]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
_08065FBE:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065F8C
|
|
|
|
thumb_func_start sub_8065FC4
|
|
sub_8065FC4: @ 8065FC4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8065F60
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8065FE4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065FC4
|
|
|
|
thumb_func_start sub_8065FE4
|
|
sub_8065FE4: @ 8065FE4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065F8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08065FF6
|
|
movs r0, 0
|
|
b _08065FFC
|
|
_08065FF6:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08065FFC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8065FE4
|
|
|
|
thumb_func_start sub_8066004
|
|
sub_8066004: @ 8066004
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8065F60
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066024
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066004
|
|
|
|
thumb_func_start sub_8066024
|
|
sub_8066024: @ 8066024
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065F8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066036
|
|
movs r0, 0
|
|
b _0806603C
|
|
_08066036:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_0806603C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066024
|
|
|
|
thumb_func_start sub_8066044
|
|
sub_8066044: @ 8066044
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8065F60
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066064
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066044
|
|
|
|
thumb_func_start sub_8066064
|
|
sub_8066064: @ 8066064
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065F8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066076
|
|
movs r0, 0
|
|
b _0806607C
|
|
_08066076:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_0806607C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066064
|
|
|
|
thumb_func_start sub_8066084
|
|
sub_8066084: @ 8066084
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8065F60
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80660A4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066084
|
|
|
|
thumb_func_start sub_80660A4
|
|
sub_80660A4: @ 80660A4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065F8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080660B6
|
|
movs r0, 0
|
|
b _080660BC
|
|
_080660B6:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080660BC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80660A4
|
|
|
|
thumb_func_start npc_set_direction_and_anim__an_proceed
|
|
npc_set_direction_and_anim__an_proceed: @ 80660C4
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
adds r1, r3, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl obj_anim_image_set_and_seek
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_set_direction_and_anim__an_proceed
|
|
|
|
thumb_func_start sub_80660F0
|
|
sub_80660F0: @ 80660F0
|
|
push {lr}
|
|
ldrb r2, [r0, 0x18]
|
|
lsrs r2, 4
|
|
adds r3, r1, 0
|
|
adds r3, 0x2A
|
|
ldrb r3, [r3]
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80660F0
|
|
|
|
thumb_func_start sub_8066108
|
|
sub_8066108: @ 8066108
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8068E9C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806611C
|
|
movs r0, 0
|
|
b _08066122
|
|
_0806611C:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08066122:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066108
|
|
|
|
thumb_func_start sub_8066128
|
|
sub_8066128: @ 8066128
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r1, 0
|
|
lsls r4, r2, 24
|
|
lsrs r4, 24
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8064E3C
|
|
adds r0, r4, 0
|
|
bl sub_8063480
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066128
|
|
|
|
thumb_func_start sub_806615C
|
|
sub_806615C: @ 806615C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806617C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806615C
|
|
|
|
thumb_func_start sub_806617C
|
|
sub_806617C: @ 806617C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066190
|
|
movs r0, 0
|
|
b _0806619E
|
|
_08066190:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_0806619E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806617C
|
|
|
|
thumb_func_start sub_80661A4
|
|
sub_80661A4: @ 80661A4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80661C4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80661A4
|
|
|
|
thumb_func_start sub_80661C4
|
|
sub_80661C4: @ 80661C4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080661D8
|
|
movs r0, 0
|
|
b _080661E6
|
|
_080661D8:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_080661E6:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80661C4
|
|
|
|
thumb_func_start sub_80661EC
|
|
sub_80661EC: @ 80661EC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806620C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80661EC
|
|
|
|
thumb_func_start sub_806620C
|
|
sub_806620C: @ 806620C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066220
|
|
movs r0, 0
|
|
b _0806622E
|
|
_08066220:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_0806622E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806620C
|
|
|
|
thumb_func_start sub_8066234
|
|
sub_8066234: @ 8066234
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066254
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066234
|
|
|
|
thumb_func_start sub_8066254
|
|
sub_8066254: @ 8066254
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066268
|
|
movs r0, 0
|
|
b _08066276
|
|
_08066268:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_08066276:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066254
|
|
|
|
thumb_func_start sub_806627C
|
|
sub_806627C: @ 806627C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806629C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806627C
|
|
|
|
thumb_func_start sub_806629C
|
|
sub_806629C: @ 806629C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080662AE
|
|
movs r0, 0
|
|
b _080662B4
|
|
_080662AE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080662B4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806629C
|
|
|
|
thumb_func_start sub_80662BC
|
|
sub_80662BC: @ 80662BC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80662DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80662BC
|
|
|
|
thumb_func_start sub_80662DC
|
|
sub_80662DC: @ 80662DC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080662EE
|
|
movs r0, 0
|
|
b _080662F4
|
|
_080662EE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080662F4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80662DC
|
|
|
|
thumb_func_start sub_80662FC
|
|
sub_80662FC: @ 80662FC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806631C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80662FC
|
|
|
|
thumb_func_start sub_806631C
|
|
sub_806631C: @ 806631C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806632E
|
|
movs r0, 0
|
|
b _08066334
|
|
_0806632E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08066334:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806631C
|
|
|
|
thumb_func_start sub_806633C
|
|
sub_806633C: @ 806633C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8066128
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806635C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806633C
|
|
|
|
thumb_func_start sub_806635C
|
|
sub_806635C: @ 806635C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_8065040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806636E
|
|
movs r0, 0
|
|
b _08066374
|
|
_0806636E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08066374:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806635C
|
|
|
|
thumb_func_start sub_806637C
|
|
sub_806637C: @ 806637C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r0, 0xFF
|
|
movs r1, 0
|
|
movs r2, 0
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080663C6
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r5, r2]
|
|
ldr r4, _080663D4 @ =gMapObjects
|
|
mov r2, sp
|
|
ldrb r2, [r2]
|
|
lsls r3, r2, 3
|
|
adds r3, r2
|
|
lsls r3, 2
|
|
adds r3, r4
|
|
movs r4, 0x10
|
|
ldrsh r2, [r3, r4]
|
|
movs r4, 0x12
|
|
ldrsh r3, [r3, r4]
|
|
bl sub_80635DC
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl an_look_any
|
|
_080663C6:
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080663D4: .4byte gMapObjects
|
|
thumb_func_end sub_806637C
|
|
|
|
thumb_func_start sub_80663D8
|
|
sub_80663D8: @ 80663D8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r0, 0xFF
|
|
movs r1, 0
|
|
movs r2, 0
|
|
mov r3, sp
|
|
bl TryGetFieldObjectIdByLocalIdAndMap
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806642A
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r5, r2]
|
|
ldr r4, _08066438 @ =gMapObjects
|
|
mov r2, sp
|
|
ldrb r2, [r2]
|
|
lsls r3, r2, 3
|
|
adds r3, r2
|
|
lsls r3, 2
|
|
adds r3, r4
|
|
movs r4, 0x10
|
|
ldrsh r2, [r3, r4]
|
|
movs r4, 0x12
|
|
ldrsh r3, [r3, r4]
|
|
bl sub_80635DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetOppositeDirection
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl an_look_any
|
|
_0806642A:
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08066438: .4byte gMapObjects
|
|
thumb_func_end sub_80663D8
|
|
|
|
thumb_func_start sub_806643C
|
|
sub_806643C: @ 806643C
|
|
ldrb r2, [r0, 0x1]
|
|
movs r3, 0x2
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_806643C
|
|
|
|
thumb_func_start sub_806644C
|
|
sub_806644C: @ 806644C
|
|
ldrb r3, [r0, 0x1]
|
|
movs r2, 0x3
|
|
negs r2, r2
|
|
ands r2, r3
|
|
strb r2, [r0, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_806644C
|
|
|
|
thumb_func_start sub_806645C
|
|
sub_806645C: @ 806645C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066488
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806645C
|
|
|
|
thumb_func_start sub_8066488
|
|
sub_8066488: @ 8066488
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806649C
|
|
movs r0, 0
|
|
b _080664AC
|
|
_0806649C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080664AC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066488
|
|
|
|
thumb_func_start sub_80664B4
|
|
sub_80664B4: @ 80664B4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80664E0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80664B4
|
|
|
|
thumb_func_start sub_80664E0
|
|
sub_80664E0: @ 80664E0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080664F4
|
|
movs r0, 0
|
|
b _08066504
|
|
_080664F4:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066504:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80664E0
|
|
|
|
thumb_func_start sub_806650C
|
|
sub_806650C: @ 806650C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066538
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806650C
|
|
|
|
thumb_func_start sub_8066538
|
|
sub_8066538: @ 8066538
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806654C
|
|
movs r0, 0
|
|
b _0806655C
|
|
_0806654C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806655C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066538
|
|
|
|
thumb_func_start sub_8066564
|
|
sub_8066564: @ 8066564
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066590
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066564
|
|
|
|
thumb_func_start sub_8066590
|
|
sub_8066590: @ 8066590
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080665A4
|
|
movs r0, 0
|
|
b _080665B4
|
|
_080665A4:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080665B4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066590
|
|
|
|
thumb_func_start sub_80665BC
|
|
sub_80665BC: @ 80665BC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80665E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80665BC
|
|
|
|
thumb_func_start sub_80665E8
|
|
sub_80665E8: @ 80665E8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080665FC
|
|
movs r0, 0
|
|
b _0806660C
|
|
_080665FC:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806660C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80665E8
|
|
|
|
thumb_func_start sub_8066614
|
|
sub_8066614: @ 8066614
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066640
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066614
|
|
|
|
thumb_func_start sub_8066640
|
|
sub_8066640: @ 8066640
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066654
|
|
movs r0, 0
|
|
b _08066664
|
|
_08066654:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066664:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066640
|
|
|
|
thumb_func_start sub_806666C
|
|
sub_806666C: @ 806666C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066698
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806666C
|
|
|
|
thumb_func_start sub_8066698
|
|
sub_8066698: @ 8066698
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080666AC
|
|
movs r0, 0
|
|
b _080666BC
|
|
_080666AC:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080666BC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066698
|
|
|
|
thumb_func_start sub_80666C4
|
|
sub_80666C4: @ 80666C4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80666F0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80666C4
|
|
|
|
thumb_func_start sub_80666F0
|
|
sub_80666F0: @ 80666F0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066704
|
|
movs r0, 0
|
|
b _08066714
|
|
_08066704:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066714:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80666F0
|
|
|
|
thumb_func_start sub_806671C
|
|
sub_806671C: @ 806671C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066748
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806671C
|
|
|
|
thumb_func_start sub_8066748
|
|
sub_8066748: @ 8066748
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065058
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806675C
|
|
movs r0, 0
|
|
b _0806676C
|
|
_0806675C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806676C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066748
|
|
|
|
thumb_func_start sub_8066774
|
|
sub_8066774: @ 8066774
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80667A0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066774
|
|
|
|
thumb_func_start sub_80667A0
|
|
sub_80667A0: @ 80667A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065058
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080667B4
|
|
movs r0, 0
|
|
b _080667C4
|
|
_080667B4:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080667C4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80667A0
|
|
|
|
thumb_func_start sub_80667CC
|
|
sub_80667CC: @ 80667CC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80667F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80667CC
|
|
|
|
thumb_func_start sub_80667F8
|
|
sub_80667F8: @ 80667F8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065058
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806680C
|
|
movs r0, 0
|
|
b _0806681C
|
|
_0806680C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806681C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80667F8
|
|
|
|
thumb_func_start sub_8066824
|
|
sub_8066824: @ 8066824
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl maybe_shadow_1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066850
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066824
|
|
|
|
thumb_func_start sub_8066850
|
|
sub_8066850: @ 8066850
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065058
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066864
|
|
movs r0, 0
|
|
b _08066874
|
|
_08066864:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066874:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066850
|
|
|
|
thumb_func_start sub_806687C
|
|
sub_806687C: @ 806687C
|
|
push {lr}
|
|
ldr r3, _08066890 @ =gUnknown_839FD5D
|
|
ldrb r2, [r0, 0x6]
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08066890: .4byte gUnknown_839FD5D
|
|
thumb_func_end sub_806687C
|
|
|
|
thumb_func_start sub_8066894
|
|
sub_8066894: @ 8066894
|
|
push {lr}
|
|
movs r2, 0x1
|
|
movs r3, 0x14
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066894
|
|
|
|
thumb_func_start sub_80668A4
|
|
sub_80668A4: @ 80668A4
|
|
ldrb r3, [r0, 0x3]
|
|
movs r2, 0x3
|
|
negs r2, r2
|
|
ands r2, r3
|
|
strb r2, [r0, 0x3]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_80668A4
|
|
|
|
thumb_func_start sub_80668B4
|
|
sub_80668B4: @ 80668B4
|
|
ldrb r2, [r0, 0x3]
|
|
movs r3, 0x2
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x3]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_80668B4
|
|
|
|
thumb_func_start sub_80668C4
|
|
sub_80668C4: @ 80668C4
|
|
ldrb r2, [r0, 0x1]
|
|
movs r3, 0x10
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_80668C4
|
|
|
|
thumb_func_start sub_80668D4
|
|
sub_80668D4: @ 80668D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
ldrb r1, [r0, 0xC]
|
|
lsls r1, 25
|
|
lsrs r1, 31
|
|
lsls r1, 4
|
|
ldrb r2, [r4, 0x1]
|
|
movs r0, 0x11
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80668D4
|
|
|
|
thumb_func_start sub_8066900
|
|
sub_8066900: @ 8066900
|
|
ldrb r2, [r0, 0x1]
|
|
movs r3, 0x20
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_8066900
|
|
|
|
thumb_func_start sub_8066910
|
|
sub_8066910: @ 8066910
|
|
ldrb r3, [r0, 0x1]
|
|
movs r2, 0x21
|
|
negs r2, r2
|
|
ands r2, r3
|
|
strb r2, [r0, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_8066910
|
|
|
|
thumb_func_start do_exclamation_mark_bubble_1
|
|
do_exclamation_mark_bubble_1: @ 8066920
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _08066940 @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0
|
|
bl FieldEffectStart
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08066940: .4byte gFieldEffectArguments
|
|
thumb_func_end do_exclamation_mark_bubble_1
|
|
|
|
thumb_func_start do_exclamation_mark_bubble_2
|
|
do_exclamation_mark_bubble_2: @ 8066944
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _08066964 @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0x21
|
|
bl FieldEffectStart
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08066964: .4byte gFieldEffectArguments
|
|
thumb_func_end do_exclamation_mark_bubble_2
|
|
|
|
thumb_func_start do_heart_bubble
|
|
do_heart_bubble: @ 8066968
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _08066988 @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0x2E
|
|
bl FieldEffectStart
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08066988: .4byte gFieldEffectArguments
|
|
thumb_func_end do_heart_bubble
|
|
|
|
thumb_func_start sub_806698C
|
|
sub_806698C: @ 806698C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _080669AC @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0x42
|
|
bl FieldEffectStart
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080669AC: .4byte gFieldEffectArguments
|
|
thumb_func_end sub_806698C
|
|
|
|
thumb_func_start sub_80669B0
|
|
sub_80669B0: @ 80669B0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _080669D0 @ =gFieldEffectArguments
|
|
adds r2, r1, 0x4
|
|
adds r3, r1, 0
|
|
adds r3, 0x8
|
|
bl FieldObjectGetLocalIdAndMap
|
|
movs r0, 0x40
|
|
bl FieldEffectStart
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080669D0: .4byte gFieldEffectArguments
|
|
thumb_func_end sub_80669B0
|
|
|
|
thumb_func_start sub_80669D4
|
|
sub_80669D4: @ 80669D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0x3F
|
|
bne _080669EA
|
|
adds r0, r4, 0
|
|
bl sub_80824EC
|
|
movs r0, 0
|
|
b _08066A12
|
|
_080669EA:
|
|
subs r0, 0x39
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08066A0C
|
|
adds r0, r4, 0
|
|
bl sub_80DCBB8
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066A18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08066A12
|
|
_08066A0C:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066A12:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80669D4
|
|
|
|
thumb_func_start sub_8066A18
|
|
sub_8066A18: @ 8066A18
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_80DCBE0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066A2A
|
|
movs r0, 0
|
|
b _08066A30
|
|
_08066A2A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08066A30:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066A18
|
|
|
|
thumb_func_start sub_8066A38
|
|
sub_8066A38: @ 8066A38
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl obj_anim_image_set_and_seek
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066A38
|
|
|
|
thumb_func_start sub_8066A54
|
|
sub_8066A54: @ 8066A54
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8068E9C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08066A70
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl SetFieldObjectStepTimer
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
_08066A70:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066A54
|
|
|
|
thumb_func_start sub_8066A78
|
|
sub_8066A78: @ 8066A78
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r2, [r4, 0x1]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 31
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
lsls r1, 5
|
|
subs r0, 0x22
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08066AAA
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x32]
|
|
_08066AAA:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066A78
|
|
|
|
thumb_func_start sub_8066AB4
|
|
sub_8066AB4: @ 8066AB4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl obj_anim_image_set_and_seek
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066AB4
|
|
|
|
thumb_func_start sub_8066AD0
|
|
sub_8066AD0: @ 8066AD0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8068E9C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08066AEC
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl SetFieldObjectStepTimer
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
_08066AEC:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066AD0
|
|
|
|
thumb_func_start sub_8066AF4
|
|
sub_8066AF4: @ 8066AF4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r2, [r4, 0x1]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 31
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
lsls r1, 5
|
|
subs r0, 0x22
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl RunFieldObjectStepTimer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08066B26
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x32]
|
|
_08066B26:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066AF4
|
|
|
|
thumb_func_start sub_8066B30
|
|
sub_8066B30: @ 8066B30
|
|
ldrb r2, [r0, 0x3]
|
|
movs r3, 0x4
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x3]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_8066B30
|
|
|
|
thumb_func_start sub_8066B40
|
|
sub_8066B40: @ 8066B40
|
|
ldrb r3, [r0, 0x3]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
ands r2, r3
|
|
strb r2, [r0, 0x3]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end sub_8066B40
|
|
|
|
thumb_func_start sub_8066B50
|
|
sub_8066B50: @ 8066B50
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r4, 0
|
|
bl InitSpriteAffineAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r4, 0x42
|
|
ldrb r1, [r4]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066B50
|
|
|
|
thumb_func_start sub_8066B80
|
|
sub_8066B80: @ 8066B80
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x1]
|
|
lsrs r1, 6
|
|
ldrb r2, [r4, 0x3]
|
|
lsrs r2, 6
|
|
movs r3, 0
|
|
adds r0, r4, 0
|
|
bl CalcCenterToCornerVec
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066B80
|
|
|
|
thumb_func_start sub_8066BB0
|
|
sub_8066BB0: @ 8066BB0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8064830
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnimIfDifferent
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8066BE4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066BB0
|
|
|
|
thumb_func_start sub_8066BE4
|
|
sub_8066BE4: @ 8066BE4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066BF6
|
|
movs r0, 0
|
|
b _08066C08
|
|
_08066BF6:
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08066C08:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066BE4
|
|
|
|
thumb_func_start sub_8066C10
|
|
sub_8066C10: @ 8066C10
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8064830
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl ChangeSpriteAffineAnimIfDifferent
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8066C44
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066C10
|
|
|
|
thumb_func_start sub_8066C44
|
|
sub_8066C44: @ 8066C44
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066C56
|
|
movs r0, 0
|
|
b _08066C68
|
|
_08066C56:
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08066C68:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066C44
|
|
|
|
thumb_func_start sub_8066C70
|
|
sub_8066C70: @ 8066C70
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r4, r2, 24
|
|
lsrs r4, 24
|
|
adds r1, r4, 0
|
|
bl FieldObjectSetDirection
|
|
adds r0, r5, 0
|
|
bl npc_coords_shift_still
|
|
adds r0, r4, 0
|
|
bl sub_80634E0
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl obj_npc_animation_step
|
|
adds r2, r6, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066C70
|
|
|
|
thumb_func_start sub_8066CB0
|
|
sub_8066CB0: @ 8066CB0
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8066C70
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066CB0
|
|
|
|
thumb_func_start sub_8066CC0
|
|
sub_8066CC0: @ 8066CC0
|
|
push {lr}
|
|
movs r2, 0x2
|
|
bl sub_8066C70
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066CC0
|
|
|
|
thumb_func_start sub_8066CD0
|
|
sub_8066CD0: @ 8066CD0
|
|
push {lr}
|
|
movs r2, 0x3
|
|
bl sub_8066C70
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066CD0
|
|
|
|
thumb_func_start sub_8066CE0
|
|
sub_8066CE0: @ 8066CE0
|
|
push {lr}
|
|
movs r2, 0x4
|
|
bl sub_8066C70
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066CE0
|
|
|
|
thumb_func_start sub_8066CF0
|
|
sub_8066CF0: @ 8066CF0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_8063490
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066CF0
|
|
|
|
thumb_func_start sub_8066D14
|
|
sub_8066D14: @ 8066D14
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_8063490
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066D14
|
|
|
|
thumb_func_start sub_8066D38
|
|
sub_8066D38: @ 8066D38
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_8063490
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066D38
|
|
|
|
thumb_func_start sub_8066D5C
|
|
sub_8066D5C: @ 8066D5C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_8063490
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066D5C
|
|
|
|
thumb_func_start sub_8066D80
|
|
sub_8066D80: @ 8066D80
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_80634B0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066D80
|
|
|
|
thumb_func_start sub_8066DA4
|
|
sub_8066DA4: @ 8066DA4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_80634B0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066DA4
|
|
|
|
thumb_func_start sub_8066DC8
|
|
sub_8066DC8: @ 8066DC8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_80634B0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066DC8
|
|
|
|
thumb_func_start sub_8066DEC
|
|
sub_8066DEC: @ 8066DEC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_80634B0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066DEC
|
|
|
|
thumb_func_start sub_8066E10
|
|
sub_8066E10: @ 8066E10
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_80634D0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066E10
|
|
|
|
thumb_func_start sub_8066E34
|
|
sub_8066E34: @ 8066E34
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_80634D0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066E34
|
|
|
|
thumb_func_start sub_8066E58
|
|
sub_8066E58: @ 8066E58
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_80634D0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066E58
|
|
|
|
thumb_func_start sub_8066E7C
|
|
sub_8066E7C: @ 8066E7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_80634D0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl npc_set_direction_and_anim__an_proceed
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066E7C
|
|
|
|
thumb_func_start sub_8066EA0
|
|
sub_8066EA0: @ 8066EA0
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
ldr r0, [sp, 0x14]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_8064E3C
|
|
adds r0, r4, 0
|
|
bl sub_8063490
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnimIfDifferent
|
|
adds r0, r6, 0
|
|
bl DoShadowFieldEffect
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8066EA0
|
|
|
|
thumb_func_start sub_8066EE4
|
|
sub_8066EE4: @ 8066EE4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066F10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066EE4
|
|
|
|
thumb_func_start sub_8066F10
|
|
sub_8066F10: @ 8066F10
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066F24
|
|
movs r0, 0
|
|
b _08066F34
|
|
_08066F24:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066F34:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066F10
|
|
|
|
thumb_func_start sub_8066F3C
|
|
sub_8066F3C: @ 8066F3C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066F68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066F3C
|
|
|
|
thumb_func_start sub_8066F68
|
|
sub_8066F68: @ 8066F68
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066F7C
|
|
movs r0, 0
|
|
b _08066F8C
|
|
_08066F7C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066F8C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066F68
|
|
|
|
thumb_func_start sub_8066F94
|
|
sub_8066F94: @ 8066F94
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8066FC0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066F94
|
|
|
|
thumb_func_start sub_8066FC0
|
|
sub_8066FC0: @ 8066FC0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08066FD4
|
|
movs r0, 0
|
|
b _08066FE4
|
|
_08066FD4:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08066FE4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066FC0
|
|
|
|
thumb_func_start sub_8066FEC
|
|
sub_8066FEC: @ 8066FEC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067018
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8066FEC
|
|
|
|
thumb_func_start sub_8067018
|
|
sub_8067018: @ 8067018
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806702C
|
|
movs r0, 0
|
|
b _0806703C
|
|
_0806702C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806703C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067018
|
|
|
|
thumb_func_start sub_8067044
|
|
sub_8067044: @ 8067044
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067070
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067044
|
|
|
|
thumb_func_start sub_8067070
|
|
sub_8067070: @ 8067070
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067084
|
|
movs r0, 0
|
|
b _08067094
|
|
_08067084:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08067094:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067070
|
|
|
|
thumb_func_start sub_806709C
|
|
sub_806709C: @ 806709C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80670C8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806709C
|
|
|
|
thumb_func_start sub_80670C8
|
|
sub_80670C8: @ 80670C8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080670DC
|
|
movs r0, 0
|
|
b _080670EC
|
|
_080670DC:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080670EC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80670C8
|
|
|
|
thumb_func_start sub_80670F4
|
|
sub_80670F4: @ 80670F4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067120
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80670F4
|
|
|
|
thumb_func_start sub_8067120
|
|
sub_8067120: @ 8067120
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067134
|
|
movs r0, 0
|
|
b _08067144
|
|
_08067134:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08067144:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067120
|
|
|
|
thumb_func_start sub_806714C
|
|
sub_806714C: @ 806714C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067178
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806714C
|
|
|
|
thumb_func_start sub_8067178
|
|
sub_8067178: @ 8067178
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806718C
|
|
movs r0, 0
|
|
b _0806719C
|
|
_0806718C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806719C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067178
|
|
|
|
thumb_func_start sub_80671A4
|
|
sub_80671A4: @ 80671A4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80671D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80671A4
|
|
|
|
thumb_func_start sub_80671D0
|
|
sub_80671D0: @ 80671D0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080671E4
|
|
movs r0, 0
|
|
b _080671F4
|
|
_080671E4:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080671F4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80671D0
|
|
|
|
thumb_func_start sub_80671FC
|
|
sub_80671FC: @ 80671FC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067228
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80671FC
|
|
|
|
thumb_func_start sub_8067228
|
|
sub_8067228: @ 8067228
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806723C
|
|
movs r0, 0
|
|
b _0806724C
|
|
_0806723C:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_0806724C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067228
|
|
|
|
thumb_func_start sub_8067254
|
|
sub_8067254: @ 8067254
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067280
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067254
|
|
|
|
thumb_func_start sub_8067280
|
|
sub_8067280: @ 8067280
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067294
|
|
movs r0, 0
|
|
b _080672A4
|
|
_08067294:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080672A4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067280
|
|
|
|
thumb_func_start sub_80672AC
|
|
sub_80672AC: @ 80672AC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x2
|
|
bl sub_8066EA0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80672D8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80672AC
|
|
|
|
thumb_func_start sub_80672D8
|
|
sub_80672D8: @ 80672D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8065028
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080672EC
|
|
movs r0, 0
|
|
b _080672FC
|
|
_080672EC:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4, 0x2]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080672FC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80672D8
|
|
|
|
thumb_func_start sub_8067304
|
|
sub_8067304: @ 8067304
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_80634E0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067304
|
|
|
|
thumb_func_start sub_806733C
|
|
sub_806733C: @ 806733C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_80634E0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806733C
|
|
|
|
thumb_func_start sub_8067374
|
|
sub_8067374: @ 8067374
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_80634E0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067374
|
|
|
|
thumb_func_start sub_80673AC
|
|
sub_80673AC: @ 80673AC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_80634E0
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl sub_80656C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806570C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80673AC
|
|
|
|
thumb_func_start sub_80673E4
|
|
sub_80673E4: @ 80673E4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl sub_8064678
|
|
ldrb r0, [r5, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_8063490
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl SeekSpriteAnim
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80673E4
|
|
|
|
thumb_func_start sub_806741C
|
|
sub_806741C: @ 806741C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_80673E4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806743C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806741C
|
|
|
|
thumb_func_start sub_806743C
|
|
sub_806743C: @ 806743C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806744E
|
|
movs r0, 0
|
|
b _08067454
|
|
_0806744E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08067454:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806743C
|
|
|
|
thumb_func_start sub_806745C
|
|
sub_806745C: @ 806745C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_80673E4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806747C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806745C
|
|
|
|
thumb_func_start sub_806747C
|
|
sub_806747C: @ 806747C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806748E
|
|
movs r0, 0
|
|
b _08067494
|
|
_0806748E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08067494:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806747C
|
|
|
|
thumb_func_start sub_806749C
|
|
sub_806749C: @ 806749C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_80673E4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80674BC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806749C
|
|
|
|
thumb_func_start sub_80674BC
|
|
sub_80674BC: @ 80674BC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080674CE
|
|
movs r0, 0
|
|
b _080674D4
|
|
_080674CE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080674D4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80674BC
|
|
|
|
thumb_func_start sub_80674DC
|
|
sub_80674DC: @ 80674DC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_80673E4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80674FC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80674DC
|
|
|
|
thumb_func_start sub_80674FC
|
|
sub_80674FC: @ 80674FC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806750E
|
|
movs r0, 0
|
|
b _08067514
|
|
_0806750E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08067514:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80674FC
|
|
|
|
thumb_func_start sub_806751C
|
|
sub_806751C: @ 806751C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl sub_8064678
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_80634E0
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806751C
|
|
|
|
thumb_func_start sub_806754C
|
|
sub_806754C: @ 806754C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_806751C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806756C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806754C
|
|
|
|
thumb_func_start sub_806756C
|
|
sub_806756C: @ 806756C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806757E
|
|
movs r0, 0
|
|
b _08067584
|
|
_0806757E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08067584:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806756C
|
|
|
|
thumb_func_start sub_806758C
|
|
sub_806758C: @ 806758C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_806751C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80675AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806758C
|
|
|
|
thumb_func_start sub_80675AC
|
|
sub_80675AC: @ 80675AC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080675BE
|
|
movs r0, 0
|
|
b _080675C4
|
|
_080675BE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080675C4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80675AC
|
|
|
|
thumb_func_start sub_80675CC
|
|
sub_80675CC: @ 80675CC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806751C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80675EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80675CC
|
|
|
|
thumb_func_start sub_80675EC
|
|
sub_80675EC: @ 80675EC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080675FE
|
|
movs r0, 0
|
|
b _08067604
|
|
_080675FE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08067604:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80675EC
|
|
|
|
thumb_func_start sub_806760C
|
|
sub_806760C: @ 806760C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_806751C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806762C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806760C
|
|
|
|
thumb_func_start sub_806762C
|
|
sub_806762C: @ 806762C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806763E
|
|
movs r0, 0
|
|
b _08067644
|
|
_0806763E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08067644:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806762C
|
|
|
|
thumb_func_start sub_806764C
|
|
sub_806764C: @ 806764C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl sub_8064678
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_80634C0
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_apply_anim_looping
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl SeekSpriteAnim
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806764C
|
|
|
|
thumb_func_start sub_8067684
|
|
sub_8067684: @ 8067684
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_806764C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80676A4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067684
|
|
|
|
thumb_func_start sub_80676A4
|
|
sub_80676A4: @ 80676A4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080676B6
|
|
movs r0, 0
|
|
b _080676BC
|
|
_080676B6:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080676BC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80676A4
|
|
|
|
thumb_func_start sub_80676C4
|
|
sub_80676C4: @ 80676C4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_806764C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80676E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80676C4
|
|
|
|
thumb_func_start sub_80676E4
|
|
sub_80676E4: @ 80676E4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080676F6
|
|
movs r0, 0
|
|
b _080676FC
|
|
_080676F6:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080676FC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80676E4
|
|
|
|
thumb_func_start sub_8067704
|
|
sub_8067704: @ 8067704
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806764C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067724
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067704
|
|
|
|
thumb_func_start sub_8067724
|
|
sub_8067724: @ 8067724
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067736
|
|
movs r0, 0
|
|
b _0806773C
|
|
_08067736:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_0806773C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067724
|
|
|
|
thumb_func_start sub_8067744
|
|
sub_8067744: @ 8067744
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_806764C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8067764
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067744
|
|
|
|
thumb_func_start sub_8067764
|
|
sub_8067764: @ 8067764
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08067776
|
|
movs r0, 0
|
|
b _0806777C
|
|
_08067776:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_0806777C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067764
|
|
|
|
thumb_func_start sub_8067784
|
|
sub_8067784: @ 8067784
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x14
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5, 0x1]
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
strh r1, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
strh r1, [r4, 0x3A]
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067784
|
|
|
|
thumb_func_start sub_80677C0
|
|
sub_80677C0: @ 80677C0
|
|
adds r1, 0x3F
|
|
ldrb r0, [r1]
|
|
lsls r0, 27
|
|
lsrs r0, 31
|
|
bx lr
|
|
thumb_func_end sub_80677C0
|
|
|
|
thumb_func_start sub_80677CC
|
|
sub_80677CC: @ 80677CC
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _08067854
|
|
cmp r1, 0x1
|
|
bgt _080677E4
|
|
cmp r1, 0
|
|
beq _080677EA
|
|
b _080678B6
|
|
_080677E4:
|
|
cmp r1, 0x2
|
|
beq _08067896
|
|
b _080678B6
|
|
_080677EA:
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0xA
|
|
strh r0, [r4, 0x3A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7F
|
|
ble _08067822
|
|
strh r1, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_08067822:
|
|
ldr r1, _08067850 @ =gSineTable
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
asrs r0, 7
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
lsls r1, 1
|
|
ldrb r2, [r5]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5]
|
|
b _080678B6
|
|
.align 2, 0
|
|
_08067850: .4byte gSineTable
|
|
_08067854:
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
movs r6, 0
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _0806788A
|
|
strh r6, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x14
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5, 0x1]
|
|
strh r6, [r4, 0x3C]
|
|
b _080678B6
|
|
_0806788A:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5]
|
|
b _080678B6
|
|
_08067896:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x50
|
|
ble _080678B6
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x1
|
|
b _080678B8
|
|
_080678B6:
|
|
movs r0, 0
|
|
_080678B8:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80677CC
|
|
|
|
thumb_func_start sub_80678C0
|
|
sub_80678C0: @ 80678C0
|
|
push {r4,lr}
|
|
ldrh r2, [r1, 0x3C]
|
|
adds r2, 0x4
|
|
movs r0, 0xFF
|
|
ands r2, r0
|
|
strh r2, [r1, 0x3C]
|
|
ldr r3, _080678EC @ =gSineTable
|
|
movs r4, 0x3C
|
|
ldrsh r0, [r1, r4]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
lsls r0, 16
|
|
asrs r0, 23
|
|
strh r0, [r1, 0x24]
|
|
movs r0, 0
|
|
cmp r2, 0
|
|
bne _080678E6
|
|
movs r0, 0x1
|
|
_080678E6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080678EC: .4byte gSineTable
|
|
thumb_func_end sub_80678C0
|
|
|
|
thumb_func_start sub_80678F0
|
|
sub_80678F0: @ 80678F0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1C
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80678F0
|
|
|
|
thumb_func_start sub_8067924
|
|
sub_8067924: @ 8067924
|
|
adds r1, 0x3F
|
|
ldrb r0, [r1]
|
|
lsls r0, 27
|
|
lsrs r0, 31
|
|
bx lr
|
|
thumb_func_end sub_8067924
|
|
|
|
thumb_func_start sub_8067930
|
|
sub_8067930: @ 8067930
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_8067930
|
|
|
|
thumb_func_start sub_8067934
|
|
sub_8067934: @ 8067934
|
|
adds r1, 0x2C
|
|
ldrb r0, [r1]
|
|
movs r2, 0x40
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_8067934
|
|
|
|
thumb_func_start sub_8067944
|
|
sub_8067944: @ 8067944
|
|
movs r0, 0
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r1, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8067944
|
|
|
|
thumb_func_start sub_8067954
|
|
sub_8067954: @ 8067954
|
|
push {lr}
|
|
adds r2, r1, 0
|
|
ldrh r0, [r2, 0x26]
|
|
subs r0, 0x8
|
|
strh r0, [r2, 0x26]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xA0
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _08067970
|
|
ldrh r0, [r2, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x32]
|
|
_08067970:
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8067954
|
|
|
|
thumb_func_start sub_8067978
|
|
sub_8067978: @ 8067978
|
|
ldr r0, _08067988 @ =0x0000ff60
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r1, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_08067988: .4byte 0x0000ff60
|
|
thumb_func_end sub_8067978
|
|
|
|
thumb_func_start sub_806798C
|
|
sub_806798C: @ 806798C
|
|
push {lr}
|
|
ldrh r0, [r1, 0x26]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080679A0
|
|
ldrh r0, [r1, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
_080679A0:
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806798C
|
|
|
|
thumb_func_start sub_80679A8
|
|
sub_80679A8: @ 80679A8
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_80679A8
|
|
|
|
thumb_func_start npc_obj_transfer_image_anim_pause_flag
|
|
npc_obj_transfer_image_anim_pause_flag: @ 80679AC
|
|
push {lr}
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080679C2
|
|
adds r0, r1, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080679C2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_obj_transfer_image_anim_pause_flag
|
|
|
|
thumb_func_start sub_80679C8
|
|
sub_80679C8: @ 80679C8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r3, [r4, 0x1]
|
|
lsls r0, r3, 28
|
|
cmp r0, 0
|
|
bge _080679F0
|
|
adds r2, r1, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
movs r1, 0x9
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
_080679F0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80679C8
|
|
|
|
thumb_func_start sub_80679F8
|
|
sub_80679F8: @ 80679F8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8067A10
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl npc_update_obj_anim_flag
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80679F8
|
|
|
|
thumb_func_start sub_8067A10
|
|
sub_8067A10: @ 8067A10
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5, 0x1]
|
|
ldrb r0, [r5, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r7, r0, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08067A74
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldr r2, _08067A6C @ =gSpriteCoordOffsetX
|
|
adds r0, r1
|
|
ldrh r2, [r2]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldr r2, _08067A70 @ =gSpriteCoordOffsetY
|
|
adds r0, r1
|
|
ldrh r2, [r2]
|
|
adds r0, r2
|
|
b _08067A9C
|
|
.align 2, 0
|
|
_08067A6C: .4byte gSpriteCoordOffsetX
|
|
_08067A70: .4byte gSpriteCoordOffsetY
|
|
_08067A74:
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
_08067A9C:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldrh r0, [r7, 0x8]
|
|
adds r0, r3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrh r0, [r7, 0xA]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
ldr r0, _08067B00 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r0, _08067B04 @ =0x00000401
|
|
ldr r4, _08067B08 @ =0x0000fff0
|
|
cmp r1, r0
|
|
bne _08067AC6
|
|
ldrb r0, [r5, 0x8]
|
|
cmp r0, 0x1
|
|
bne _08067AC6
|
|
subs r4, 0x10
|
|
_08067AC6:
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
bgt _08067AD6
|
|
lsls r1, r6, 16
|
|
lsls r0, r4, 16
|
|
cmp r1, r0
|
|
bge _08067ADE
|
|
_08067AD6:
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_08067ADE:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xAF
|
|
bgt _08067AF2
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _08067AFA
|
|
_08067AF2:
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_08067AFA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08067B00: .4byte gSaveBlock1Ptr
|
|
_08067B04: .4byte 0x00000401
|
|
_08067B08: .4byte 0x0000fff0
|
|
thumb_func_end sub_8067A10
|
|
|
|
thumb_func_start npc_update_obj_anim_flag
|
|
npc_update_obj_anim_flag: @ 8067B0C
|
|
push {lr}
|
|
adds r2, r1, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r3, 0x5
|
|
negs r3, r3
|
|
ands r3, r1
|
|
strb r3, [r2]
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x60
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08067B2E
|
|
movs r1, 0x4
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08067B2E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_update_obj_anim_flag
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|